⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fragmentprograms_p.h

📁 奇趣公司比较新的qt/emd版本
💻 H
📖 第 1 页 / 共 5 页
字号:
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the QtOpenGL module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef FRAGMENTPROGRAMS_H#define FRAGMENTPROGRAMS_H////  W A R N I N G//  -------------//// This file is not part of the Qt API.  It exists purely as an// implementation detail.  This header file may change from version to// version without notice, or even be removed.//// We mean it.//enum FragmentVariable {    VAR_BRUSH_TEXTURE,    VAR_LINEAR,    VAR_INV_MATRIX_M1,    VAR_INV_MASK_SIZE,    VAR_INV_MATRIX_M2,    VAR_PORTERDUFF_AB,    VAR_MASK_CHANNEL,    VAR_ELLIPSE_OFFSET,    VAR_PORTERDUFF_XYZ,    VAR_INV_DST_SIZE,    VAR_MASK_TEXTURE,    VAR_DST_TEXTURE,    VAR_PALETTE,    VAR_MASK_OFFSET,    VAR_INV_BRUSH_TEXTURE_SIZE,    VAR_FMP2_M_RADIUS2,    VAR_FMP,    VAR_INV_MATRIX_M0,    VAR_ANGLE,};enum FragmentBrushType {    FRAGMENT_PROGRAM_BRUSH_SOLID,    FRAGMENT_PROGRAM_BRUSH_RADIAL,    FRAGMENT_PROGRAM_BRUSH_CONICAL,    FRAGMENT_PROGRAM_BRUSH_LINEAR,    FRAGMENT_PROGRAM_BRUSH_TEXTURE,    FRAGMENT_PROGRAM_BRUSH_PATTERN,};enum FragmentCompositionModeType {    COMPOSITION_MODES_SIMPLE_PORTER_DUFF,    COMPOSITION_MODES_MULTIPLY,    COMPOSITION_MODES_SCREEN,    COMPOSITION_MODES_OVERLAY,    COMPOSITION_MODES_DARKEN,    COMPOSITION_MODES_LIGHTEN,    COMPOSITION_MODES_COLORDODGE,    COMPOSITION_MODES_COLORBURN,    COMPOSITION_MODES_HARDLIGHT,    COMPOSITION_MODES_SOFTLIGHT,    COMPOSITION_MODES_DIFFERENCE,    COMPOSITION_MODES_EXCLUSION,    COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK,    COMPOSITION_MODES_MULTIPLY_NOMASK,    COMPOSITION_MODES_SCREEN_NOMASK,    COMPOSITION_MODES_OVERLAY_NOMASK,    COMPOSITION_MODES_DARKEN_NOMASK,    COMPOSITION_MODES_LIGHTEN_NOMASK,    COMPOSITION_MODES_COLORDODGE_NOMASK,    COMPOSITION_MODES_COLORBURN_NOMASK,    COMPOSITION_MODES_HARDLIGHT_NOMASK,    COMPOSITION_MODES_SOFTLIGHT_NOMASK,    COMPOSITION_MODES_DIFFERENCE_NOMASK,    COMPOSITION_MODES_EXCLUSION_NOMASK,    COMPOSITION_MODE_BLEND_MODE_MASK,    COMPOSITION_MODE_BLEND_MODE_NOMASK,};enum FragmentMaskType {    FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA,    FRAGMENT_PROGRAM_MASK_ELLIPSE_AA,};static const unsigned int num_fragment_variables = 19;static const unsigned int num_fragment_brushes = 6;static const unsigned int num_fragment_composition_modes = 26;static const unsigned int num_fragment_masks = 2;static const char *FragmentProgram_FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA =    "!!ARBfp1.0\n"    "PARAM c[1] = { { 0.5, 2 } };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "TEMP R3;\n"    "TEMP R4;\n"    "ADD R4.x, fragment.position, c[0];\n"    "ADD R0.y, fragment.position, -c[0].x;\n"    "MAX R2.x, R0.y, fragment.texcoord[0].y;\n"    "ADD R0.x, fragment.position.y, c[0];\n"    "MIN R2.y, R0.x, fragment.texcoord[0].x;\n"    "ADD R3.x, fragment.position, -c[0];\n"    "ADD R1.zw, -fragment.texcoord[0], -fragment.texcoord[0];\n"    "MOV R3.y, R4.x;\n"    "MOV R0.yw, R2.x;\n"    "MOV R0.xz, R2.y;\n"    "MAD R0, fragment.texcoord[1].xxzz, R0, fragment.texcoord[1].yyww;\n"    "MAD R1.xy, fragment.position.x, c[0].y, -R0.zwzw;\n"    "MOV R0.w, R1.x;\n"    "MOV R1.x, R0.y;\n"    "MOV R0.z, R0.x;\n"    "SGE R2.zw, R1.xyxy, R0;\n"    "MAX R0.xy, R0.zwzw, R1;\n"    "MIN R0.zw, R0, R1.xyxy;\n"    "MAD R2.zw, R2, R1, fragment.texcoord[0];\n"    "ADD R1, R3.xyxy, -R0.zzww;\n"    "MAD R1, R1, R2.zzww, R2.x;\n"    "ADD R3.zw, R0.xyxy, R0;\n"    "ADD R3.y, R2, -R2.x;\n"    "ADD R2.zw, R1.xyyw, -R2.x;\n"    "ADD R4.zw, R4.x, -R0;\n"    "MUL R2.zw, R4, R2;\n"    "ADD R4.zw, R1.xyyw, R1.xyxz;\n"    "ADD R1.xz, R2.y, -R1;\n"    "MAD R2.zw, -R2, c[0].x, R3.y;\n"    "MAD R3.zw, R3, c[0].x, -R3.x;\n"    "MAD R3.zw, R3, R3.y, -R2;\n"    "ADD R1.y, R4.x, -R3.x;\n"    "MAD R4.zw, -R4, c[0].x, R2.y;\n"    "MUL R4.zw, R4, R1.y;\n"    "ADD R1.yw, R0.xxzy, -R3.x;\n"    "MUL R1.xy, R1.xzzw, R1.ywzw;\n"    "MAD R1.zw, R1.xyxy, c[0].x, -R4;\n"    "SGE R1.xy, R4.x, R0;\n"    "MUL R1.zw, R1.xyxy, R1;\n"    "MAD R1.xy, R1, R3.zwzw, R2.zwzw;\n"    "SGE R2.zw, R3.x, R0;\n"    "ADD R1.zw, R4, R1;\n"    "ADD R1.zw, R1, -R1.xyxy;\n"    "MAD R1.xy, R2.zwzw, R1.zwzw, R1;\n"    "ADD R1.xy, R1, -R3.y;\n"    "SGE R0.zw, R4.x, R0;\n"    "MAD R0.zw, R0, R1.xyxy, R3.y;\n"    "SGE R0.xy, R0, R3.x;\n"    "MUL R0.xy, R0.zwzw, R0;\n"    "ADD R0.x, R3.y, -R0;\n"    "SGE R0.z, R2.y, R2.x;\n"    "ADD R0.x, R0, -R0.y;\n"    "MUL result.color, R0.x, R0.z;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_MASK_ELLIPSE_AA =    "!!ARBfp1.0\n"    "PARAM c[6] = { program.local[0..3],\n"    "		{ -2, 1, -0.5, 2 },\n"    "		{ 3 } };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "ADD R0.xy, fragment.position, c[0];\n"    "MUL R1.xyz, R0.y, c[2];\n"    "MAD R0.xyz, R0.x, c[1], R1;\n"    "ADD R0.xyz, R0, c[3];\n"    "RCP R2.z, R0.z;\n"    "MUL R0.zw, R0.xyxy, R2.z;\n"    "MUL R2.xy, R0.zwzw, fragment.texcoord[0];\n"    "MOV R1.xy, c[1];\n"    "MOV R1.zw, c[2].xyxy;\n"    "MOV R0.x, c[1].z;\n"    "MOV R0.y, c[2].z;\n"    "MAD R0, -R0.xyxy, R0.zzww, R1.xzyw;\n"    "MUL R1.xy, R2, fragment.texcoord[0];\n"    "MUL R0, R0, R2.z;\n"    "MUL R1.xy, R1, c[4].x;\n"    "MUL R1.zw, R1.xyxy, R0.xyxz;\n"    "MUL R0.xy, R1, R0.ywzw;\n"    "ADD R0.w, R0.x, R0.y;\n"    "MUL R0.xy, R2, R2;\n"    "ADD R0.x, R0, R0.y;\n"    "ADD R0.z, R1, R1.w;\n"    "MUL R0.zw, R0, R0;\n"    "ADD R0.y, R0.z, R0.w;\n"    "RSQ R0.y, R0.y;\n"    "ADD R0.x, -R0, c[4].y;\n"    "MAD_SAT R0.x, R0.y, R0, -c[4].z;\n"    "MUL R0.y, -R0.x, c[4].w;\n"    "ADD R0.y, R0, c[5].x;\n"    "MUL R0.x, R0, R0;\n"    "MUL result.color, R0.x, R0.y;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SIMPLE_PORTER_DUFF =    "!!ARBfp1.0\n"    "PARAM c[7] = { program.local[0..3],\n"    "		{ 1 },\n"    "		program.local[5..6] };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "TEMP R3;\n"    "MUL R0.xy, fragment.position, c[3];\n"    "TEX R1, R0, texture[0], 2D;\n"    "MUL R0.xyz, R1, c[6].y;\n"    "MUL R2.xyz, R0, fragment.color.primary.w;\n"    "MUL R0.xyz, fragment.color.primary, c[6].x;\n"    "MAD R2.xyz, R0, R1.w, R2;\n"    "ADD R3.xy, fragment.position, c[0];\n"    "ADD R0.w, -R1, c[4].x;\n"    "MUL R0.xyz, fragment.color.primary, c[5].y;\n"    "MAD R2.xyz, R0, R0.w, R2;\n"    "MUL R0.xyz, R1, c[5].z;\n"    "ADD R0.w, -fragment.color.primary, c[4].x;\n"    "MAD R2.xyz, R0, R0.w, R2;\n"    "ADD R0.y, -R1.w, c[4].x;\n"    "MUL R0.x, fragment.color.primary.w, R1.w;\n"    "MUL R0.y, fragment.color.primary.w, R0;\n"    "MUL R0.z, R1.w, R0.w;\n"    "DP3 R2.w, R0, c[5];\n"    "MUL R3.xy, R3, c[1];\n"    "TEX R0, R3, texture[1], 2D;\n"    "ADD R2, R2, -R1;\n"    "DP4 R0.x, R0, c[2];\n"    "MAD result.color, R0.x, R2, R1;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_MULTIPLY =    "!!ARBfp1.0\n"    "PARAM c[5] = { program.local[0..3],\n"    "		{ 1 } };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "MUL R0.xy, fragment.position, c[3];\n"    "TEX R1, R0, texture[0], 2D;\n"    "ADD R0.x, -R1.w, c[4];\n"    "MUL R0.xyz, fragment.color.primary, R0.x;\n"    "MAD R0.xyz, fragment.color.primary, R1, R0;\n"    "ADD R0.w, -fragment.color.primary, c[4].x;\n"    "MAD R2.xyz, R1, R0.w, R0;\n"    "ADD R0.z, fragment.color.primary.w, R1.w;\n"    "MAD R2.w, -fragment.color.primary, R1, R0.z;\n"    "ADD R0.xy, fragment.position, c[0];\n"    "MUL R0.xy, R0, c[1];\n"    "TEX R0, R0, texture[1], 2D;\n"    "ADD R2, R2, -R1;\n"    "DP4 R0.x, R0, c[2];\n"    "MAD result.color, R0.x, R2, R1;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SCREEN =    "!!ARBfp1.0\n"    "PARAM c[4] = { program.local[0..3] };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "MUL R0.xy, fragment.position, c[3];\n"    "TEX R1, R0, texture[0], 2D;\n"    "ADD R0.xy, fragment.position, c[0];\n"    "ADD R2, fragment.color.primary, R1;\n"    "MUL R0.xy, R0, c[1];\n"    "MAD R2, -fragment.color.primary, R1, R2;\n"    "TEX R0, R0, texture[1], 2D;\n"    "ADD R2, R2, -R1;\n"    "DP4 R0.x, R0, c[2];\n"    "MAD result.color, R0.x, R2, R1;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_OVERLAY =    "!!ARBfp1.0\n"    "PARAM c[5] = { program.local[0..3],\n"    "		{ 2, 1 } };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "TEMP R3;\n"    "MUL R0.xy, fragment.position, c[3];\n"    "TEX R1, R0, texture[0], 2D;\n"    "ADD R0.w, -R1, c[4].y;\n"    "MUL R3.xyz, fragment.color.primary, R0.w;\n"    "ADD R2.xyz, fragment.color.primary.w, -fragment.color.primary;\n"    "ADD R0.xyz, R1.w, -R1;\n"    "MUL R0.xyz, R0, R2;\n"    "MUL R0.xyz, R0, c[4].x;\n"    "MAD R0.xyz, fragment.color.primary.w, R1.w, -R0;\n"    "MAD R0.xyz, fragment.color.primary, R0.w, R0;\n"    "MUL R2.xyz, fragment.color.primary, R1;\n"    "MAD R2.xyz, R2, c[4].x, R3;\n"    "ADD R0.w, -fragment.color.primary, c[4].y;\n"    "MAD R3.xyz, R1, R0.w, R0;\n"    "MAD R2.xyz, R1, R0.w, R2;\n"    "MUL R0.xyz, R1, c[4].x;\n"    "SGE R0.xyz, R0, R1.w;\n"    "ADD R3.xyz, R3, -R2;\n"    "MAD R2.xyz, R0, R3, R2;\n"    "ADD R0.z, fragment.color.primary.w, R1.w;\n"    "MAD R2.w, -fragment.color.primary, R1, R0.z;\n"    "ADD R0.xy, fragment.position, c[0];\n"    "MUL R0.xy, R0, c[1];\n"    "TEX R0, R0, texture[1], 2D;\n"    "ADD R2, R2, -R1;\n"    "DP4 R0.x, R0, c[2];\n"    "MAD result.color, R0.x, R2, R1;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_DARKEN =    "!!ARBfp1.0\n"    "PARAM c[5] = { program.local[0..3],\n"    "		{ 1 } };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "MUL R0.xy, fragment.position, c[3];\n"    "TEX R1, R0, texture[0], 2D;\n"    "MUL R2.xyz, R1, fragment.color.primary.w;\n"    "MUL R0.xyz, fragment.color.primary, R1.w;\n"    "MIN R0.xyz, R0, R2;\n"    "ADD R0.w, -R1, c[4].x;\n"    "MAD R0.xyz, fragment.color.primary, R0.w, R0;\n"    "ADD R0.w, -fragment.color.primary, c[4].x;\n"    "MAD R2.xyz, R1, R0.w, R0;\n"    "ADD R0.z, fragment.color.primary.w, R1.w;\n"    "MAD R2.w, -fragment.color.primary, R1, R0.z;\n"    "ADD R0.xy, fragment.position, c[0];\n"    "MUL R0.xy, R0, c[1];\n"    "TEX R0, R0, texture[1], 2D;\n"    "ADD R2, R2, -R1;\n"    "DP4 R0.x, R0, c[2];\n"    "MAD result.color, R0.x, R2, R1;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_LIGHTEN =    "!!ARBfp1.0\n"    "PARAM c[5] = { program.local[0..3],\n"    "		{ 1 } };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "MUL R0.xy, fragment.position, c[3];\n"    "TEX R1, R0, texture[0], 2D;\n"    "MUL R2.xyz, R1, fragment.color.primary.w;\n"    "MUL R0.xyz, fragment.color.primary, R1.w;\n"    "MAX R0.xyz, R0, R2;\n"    "ADD R0.w, -R1, c[4].x;\n"    "MAD R0.xyz, fragment.color.primary, R0.w, R0;\n"    "ADD R0.w, -fragment.color.primary, c[4].x;\n"    "MAD R2.xyz, R1, R0.w, R0;\n"    "ADD R0.z, fragment.color.primary.w, R1.w;\n"    "MAD R2.w, -fragment.color.primary, R1, R0.z;\n"    "ADD R0.xy, fragment.position, c[0];\n"    "MUL R0.xy, R0, c[1];\n"    "TEX R0, R0, texture[1], 2D;\n"    "ADD R2, R2, -R1;\n"    "DP4 R0.x, R0, c[2];\n"    "MAD result.color, R0.x, R2, R1;\n"    "END\n"    ;static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_COLORDODGE =    "!!ARBfp1.0\n"    "PARAM c[5] = { program.local[0..3],\n"    "		{ 1, 1e-06 } };\n"    "TEMP R0;\n"    "TEMP R1;\n"    "TEMP R2;\n"    "TEMP R3;\n"    "MUL R0.xy, fragment.position, c[3];\n"    "TEX R0, R0, texture[0], 2D;\n"    "ADD R1.y, -fragment.color.primary.w, c[4].x;\n"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -