Changeset 561 for trunk/src/opengl/util
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 4 deleted
- 22 edited
-
. (modified) (1 prop)
-
src/opengl/util/composition_mode_colorburn.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_colordodge.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_darken.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_difference.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_exclusion.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_hardlight.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_lighten.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_multiply.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_overlay.glsl (modified) (1 diff)
-
src/opengl/util/composition_mode_softlight.glsl (modified) (1 diff)
-
src/opengl/util/conical_brush.glsl (modified) (1 diff)
-
src/opengl/util/ellipse.glsl (deleted)
-
src/opengl/util/ellipse_aa.glsl (modified) (1 diff)
-
src/opengl/util/ellipse_aa_copy.glsl (deleted)
-
src/opengl/util/ellipse_aa_radial.glsl (deleted)
-
src/opengl/util/ellipse_functions.glsl (deleted)
-
src/opengl/util/fragmentprograms_p.h (modified) (211 diffs)
-
src/opengl/util/generator.cpp (modified) (7 diffs)
-
src/opengl/util/generator.pro (modified) (1 diff)
-
src/opengl/util/glsl_to_include.sh (modified) (1 diff)
-
src/opengl/util/masks.conf (modified) (1 diff)
-
src/opengl/util/pattern_brush.glsl (modified) (1 diff)
-
src/opengl/util/simple_porter_duff.glsl (modified) (1 diff)
-
src/opengl/util/texture_brush.glsl (modified) (1 diff)
-
src/opengl/util/trap_exact_aa.glsl (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/src/opengl/util/composition_mode_colorburn.glsl
r2 r561 6 6 { 7 7 vec4 result; 8 result.rgb = mix(src.rgb * (1 - dst.a) + dst.rgb * (1- src.a),9 src.a * (src.rgb * dst.a + dst.rgb * src.a - src.a * dst.a) / max(src.rgb, 0.00001) + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a),8 result.rgb = mix(src.rgb * (1 - src.a), 9 src.a * (src.rgb * dst.a + dst.rgb * src.a - src.a * dst.a) / max(src.rgb, 0.00001) + src.rgb * (1 - src.a), 10 10 step(src.a * dst.a, src.rgb * dst.a + dst.rgb * src.a)); 11 11 result.a = src.a + dst.a - src.a * dst.a; -
trunk/src/opengl/util/composition_mode_colordodge.glsl
r2 r561 6 6 { 7 7 vec4 result; 8 vec3 temp = src.rgb * (1 - dst.a) + dst.rgb * (1- src.a);9 result.rgb = mix(dst.rgb * src.a / max(1 - src.rgb / max(src.a, 0.000001), 0.000001) + temp,8 vec3 temp = src.rgb * (1 - src.a); 9 result.rgb = mix(dst.rgb * src.a / max(1 - src.rgb / max(src.a, 0.000001), 0.000001) + temp, 10 10 src.a * dst.a + temp, 11 11 step(src.a * dst.a, src.rgb * dst.a + dst.rgb * src.a)); -
trunk/src/opengl/util/composition_mode_darken.glsl
r2 r561 4 4 { 5 5 vec4 result; 6 result.rgb = min(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a);6 result.rgb = min(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1 - src.a); 7 7 result.a = src.a + dst.a - src.a * dst.a; 8 8 return result; -
trunk/src/opengl/util/composition_mode_difference.glsl
r2 r561 4 4 { 5 5 vec4 result; 6 result.rgb = src.rgb + dst.rgb - 2 * min(src.rgb * dst.a, dst.rgb * src.a);6 result.rgb = src.rgb + dst.rgb - 2 * min(src.rgb * dst.a, dst.rgb * src.a); 7 7 result.a = src.a + dst.a - src.a * dst.a; 8 8 return result; -
trunk/src/opengl/util/composition_mode_exclusion.glsl
r2 r561 4 4 { 5 5 vec4 result; 6 result.rgb = (src.rgb * dst.a + dst.rgb * src.a - 2 * src.rgb * dst.rgb) + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a);6 result.rgb = (src.rgb * dst.a + dst.rgb * src.a - 2 - src.a); 7 7 result.a = src.a + dst.a - src.a * dst.a; 8 8 return result; -
trunk/src/opengl/util/composition_mode_hardlight.glsl
r2 r561 6 6 { 7 7 vec4 result; 8 result.rgb = mix(2 * src.rgb * dst.rgb + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a),9 src.a * dst.a - 2 * (dst.a - dst.rgb) * (src.a - src.rgb) + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a),10 step(src.a, 2 * src.rgb));8 result.rgb = mix(2 - src.a), 9 src.a * dst.a - 2 - src.a), 10 step(src.a, 2 * src.rgb)); 11 11 result.a = src.a + dst.a - src.a * dst.a; 12 12 -
trunk/src/opengl/util/composition_mode_lighten.glsl
r2 r561 4 4 { 5 5 vec4 result; 6 result.rgb = max(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a);6 result.rgb = max(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1 - src.a); 7 7 result.a = src.a + dst.a - src.a * dst.a; 8 8 return result; -
trunk/src/opengl/util/composition_mode_multiply.glsl
r2 r561 4 4 { 5 5 vec4 result; 6 result.rgb = src.rgb * dst.rgb + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a);6 result.rgb = src.rgb * dst.rgb + src.rgb * (1 - src.a); 7 7 result.a = src.a + dst.a - src.a * dst.a; 8 8 return result; -
trunk/src/opengl/util/composition_mode_overlay.glsl
r2 r561 6 6 { 7 7 vec4 result; 8 result.rgb = mix(2 * src.rgb * dst.rgb + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a),9 src.a * dst.a - 2 * (dst.a - dst.rgb) * (src.a - src.rgb) + src.rgb * (1 - dst.a) + dst.rgb * (1- src.a),10 step(dst.a, 2 * dst.rgb));8 result.rgb = mix(2 - src.a), 9 src.a * dst.a - 2 - src.a), 10 step(dst.a, 2 * dst.rgb)); 11 11 result.a = src.a + dst.a - src.a * dst.a; 12 12 return result; -
trunk/src/opengl/util/composition_mode_softlight.glsl
r2 r561 1 // Dca' = 2.Sca < Sa ? 2 // Dca.(Sa - (1 - Dca/Da).(2.Sca - Sa)) + Sca.(1 - Da) + Dca.(1 - Sa) : 3 // (8.Dca <= Da ? 4 // Dca.(Sa - (1 - Dca/Da).(2.Sca - Sa).(3 - 8.Dca/Da)) + Sca.(1 - Da) + Dca.(1 - Sa) : 5 // (Dca.Sa + ((Dca/Da)^(0.5).Da - Dca).(2.Sca - Sa)) + Sca.(1 - Da) + Dca.(1 - Sa)) 1 // if 2.Sca <= Sa 2 // Dca' = Dca.(Sa + (2.Sca - Sa).(1 - Dca/Da)) + Sca.(1 - Da) + Dca.(1 - Sa) 3 // otherwise if 2.Sca > Sa and 4.Dca <= Da 4 // Dca' = Dca.Sa + Da.(2.Sca - Sa).(4.Dca/Da.(4.Dca/Da + 1).(Dca/Da - 1) + 7.Dca/Da) + Sca.(1 - Da) + Dca.(1 - Sa) 5 // otherwise if 2.Sca > Sa and 4.Dca > Da 6 // Dca' = Dca.Sa + Da.(2.Sca - Sa).((Dca/Da)^0.5 - Dca/Da) + Sca.(1 - Da) + Dca.(1 - Sa) 6 7 // Da' = Sa + Da - Sa.Da 8 7 9 vec4 composite(vec4 src, vec4 dst) 8 10 { 9 11 vec4 result; 10 12 float da = max(dst.a, 0.00001); 11 result.rgb = mix(dst.rgb * (src.a - (1 - dst.rgb / da) * (2 * src.rgb - src.a)), 12 mix(dst.rgb * (src.a - (1 - dst.rgb / da) * (2 * src.rgb - src.a) * (3 - 8 * dst.rgb / da)), 13 (dst.rgb * src.a + (sqrt(dst.rgb / da) * dst.a - dst.rgb) * (2 * src.rgb - src.a)), 14 step(dst.a, 8 * dst.rgb)), 15 step(src.a, 2 * src.rgb)) + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a); 13 vec3 dst_np = dst.rgb / da; 14 result.rgb = mix(dst.rgb * (src.a + (2.0 * src.rgb - src.a) * (1.0 - dst_np)), 15 mix(dst.rgb * src.a + dst.a * (2.0 * src.rgb - src.a) * ((16.0 * dst_np - 12.0) * dst_np + 3.0) * dst_np, 16 dst.rgb * src.a + dst.a * (2.0 * src.rgb - src.a) * (sqrt(dst_np) - dst_np), 17 step(dst.a, 4.0 * dst.rgb)), 18 step(src.a, 2.0 * src.rgb)) 19 + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a); 16 20 result.a = src.a + dst.a - src.a * dst.a; 17 21 return result; -
trunk/src/opengl/util/conical_brush.glsl
r2 r561 21 21 if (abs(A.y) == abs(A.x)) 22 22 A.y += 0.002; 23 float t = (atan 2(-A.y, A.x) + angle) / (2.0 * M_PI);23 float t = (atan(-A.y, A.x) + angle) / (2.0 * M_PI); 24 24 float val = t - floor(t); 25 25 return texture1D(palette, val); -
trunk/src/opengl/util/ellipse_aa.glsl
r2 r561 1 #include "ellipse_functions.glsl" 1 uniform vec3 inv_matrix_m0; 2 uniform vec3 inv_matrix_m1; 3 uniform vec3 inv_matrix_m2; 4 5 uniform vec2 ellipse_offset; 6 7 // ellipse equation 8 9 // s^2/a^2 + t^2/b^2 = 1 10 // 11 // implicit equation: 12 // g(s,t) = 1 - s^2/r_s^2 - t^2/r_t^2 13 14 // distance from ellipse: 15 // grad = [dg/dx dg/dy] 16 // d(s, t) ~= g(s, t) / |grad| 17 18 // dg/dx = dg/ds * ds/dx + dg/dt * dt/dx 19 // dg/dy = dg/ds * ds/dy + dg/dt * dt/dy 20 21 float ellipse_aa() 22 { 23 mat3 mat; 24 25 mat[0] = inv_matrix_m0; 26 mat[1] = inv_matrix_m1; 27 mat[2] = inv_matrix_m2; 28 29 vec3 hcoords = mat * vec3(gl_FragCoord.xy + ellipse_offset, 1); 30 float inv_w = 1.0 / hcoords.z; 31 vec2 st = hcoords.xy * inv_w; 32 33 vec4 xy = vec4(mat[0].xy, mat[1].xy); 34 vec2 h = vec2(mat[0].z, mat[1].z); 35 36 vec4 dstdxy = (xy.xzyw - h.xyxy * st.xxyy) * inv_w; 37 38 //dstdxy.x = (mat[0].x - mat[0].z * st.x) * inv_w; // ds/dx 39 //dstdxy.y = (mat[1].x - mat[1].z * st.x) * inv_w; // ds/dy 40 //dstdxy.z = (mat[0].y - mat[0].z * st.y) * inv_w; // dt/dx 41 //dstdxy.w = (mat[1].y - mat[1].z * st.y) * inv_w; // dt/dy 42 43 vec2 inv_r = gl_TexCoord[0].xy; 44 vec2 n = st * inv_r; 45 float g = 1.0 - dot(n, n); 46 47 vec2 dgdst = -2.0 * n * inv_r; 48 49 vec2 grad = vec2(dot(dgdst, dstdxy.xz), 50 dot(dgdst, dstdxy.yw)); 51 52 return smoothstep(-0.5, 0.5, g * inversesqrt(dot(grad, grad))); 53 } 2 54 3 55 void main() 4 56 { 5 gl_FragColor = ellipse_aa() ;57 gl_FragColor = ellipse_aa(); 6 58 } -
trunk/src/opengl/util/fragmentprograms_p.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information ([email protected]) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation ([email protected]) 5 6 ** 6 7 ** This file is part of the QtOpenGL module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you 37 ** @nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** 40 40 ****************************************************************************/ 41 #ifndef FRAGMENTPROGRAMS_H 42 #define FRAGMENTPROGRAMS_H 41 42 #ifndef FRAGMENTPROGRAMS_P_H 43 #define FRAGMENTPROGRAMS_P_H 43 44 44 45 // … … 72 73 VAR_FMP, 73 74 VAR_INV_MATRIX_M0, 74 VAR_ANGLE ,75 VAR_ANGLE 75 76 }; 76 77 … … 81 82 FRAGMENT_PROGRAM_BRUSH_LINEAR, 82 83 FRAGMENT_PROGRAM_BRUSH_TEXTURE, 83 FRAGMENT_PROGRAM_BRUSH_PATTERN ,84 FRAGMENT_PROGRAM_BRUSH_PATTERN 84 85 }; 85 86 … … 110 111 COMPOSITION_MODES_EXCLUSION_NOMASK, 111 112 COMPOSITION_MODE_BLEND_MODE_MASK, 112 COMPOSITION_MODE_BLEND_MODE_NOMASK ,113 COMPOSITION_MODE_BLEND_MODE_NOMASK 113 114 }; 114 115 115 116 enum FragmentMaskType { 116 117 FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA, 117 FRAGMENT_PROGRAM_MASK_ELLIPSE_AA ,118 FRAGMENT_PROGRAM_MASK_ELLIPSE_AA 118 119 }; 119 120 … … 132 133 "TEMP R3;\n" 133 134 "TEMP R4;\n" 134 "ADD R 4.x, fragment.position, c[0];\n"135 "ADD R;\n" 135 136 "ADD R0.y, fragment.position, -c[0].x;\n" 136 "MAX R 2.x, R0.y, fragment.texcoord[0].y;\n"137 "MAX R.y;\n" 137 138 "ADD R0.x, fragment.position.y, c[0];\n" 138 "MIN R2.y, R0.x, fragment.texcoord[0].x;\n" 139 "ADD R3.x, fragment.position, -c[0];\n" 140 "ADD R1.zw, -fragment.texcoord[0], -fragment.texcoord[0];\n" 141 "MOV R3.y, R4.x;\n" 142 "MOV R0.yw, R2.x;\n" 143 "MOV R0.xz, R2.y;\n" 139 "MIN R3.w, R0.x, fragment.texcoord[0].x;\n" 140 "ADD R2.z, fragment.position.x, -c[0].x;\n" 141 "MOV R2.w, R3.z;\n" 142 "MOV R0.yw, R4.x;\n" 143 "MOV R0.xz, R3.w;\n" 144 144 "MAD R0, fragment.texcoord[1].xxzz, R0, fragment.texcoord[1].yyww;\n" 145 "MAD R 1.xy, fragment.position.x, c[0].y, -R0.zwzw;\n"146 "MOV R 0.w, R1.x;\n"147 "MOV R 1.x, R0.y;\n"148 "MOV R 0.z, R0.x;\n"149 " SGE R2.zw, R1.xyxy, R0;\n"150 "M AX R0.xy, R0.zwzw, R1;\n"151 " MIN R0.zw, R0, R1.xyxy;\n"152 " MAD R2.zw, R2, R1,fragment.texcoord[0];\n"153 " ADD R1, R3.xyxy, -R0.zzww;\n"154 " MAD R1, R1, R2.zzww, R2.x;\n"155 " ADD R3.zw, R0.xyxy, R0;\n"156 "ADD R3. y, R2, -R2.x;\n"157 "ADD R 2.zw, R1.xyyw, -R2.x;\n"158 "ADD R 4.zw, R4.x, -R0;\n"159 " MUL R2.zw, R4, R2;\n"160 " ADD R4.zw, R1.xyyw, R1.xyxz;\n"161 " ADD R1.xz, R2.y, -R1;\n"162 "MAD R 2.zw, -R2, c[0].x, R3.y;\n"163 " MAD R3.zw, R3, c[0].x, -R3.x;\n"164 "M AD R3.zw, R3, R3.y, -R2;\n"165 "ADD R 1.y, R4.x, -R3.x;\n"166 " MAD R4.zw, -R4, c[0].x, R2.y;\n"167 "MUL R 4.zw, R4, R1.y;\n"168 "ADD R 1.yw, R0.xxzy, -R3.x;\n"169 "M UL R1.xy, R1.xzzw, R1.ywzw;\n"170 "MAD R 1.zw, R1.xyxy, c[0].x, -R4;\n"171 " SGE R1.xy, R4.x, R0;\n"172 " MUL R1.zw, R1.xyxy, R1;\n"173 "MAD R 1.xy, R1, R3.zwzw, R2.zwzw;\n"174 " SGE R2.zw, R3.x, R0;\n"175 " ADD R1.zw, R4, R1;\n"176 "ADD R 1.zw, R1, -R1.xyxy;\n"177 " MAD R1.xy, R2.zwzw, R1.zwzw, R1;\n"178 " ADD R1.xy, R1, -R3.y;\n"179 "SGE R0.zw, R 4.x, R0;\n"180 " MAD R0.zw, R0, R1.xyxy, R3.y;\n"181 "SGE R 0.xy, R0, R3.x;\n"182 "M UL R0.xy, R0.zwzw, R0;\n"183 " ADD R0.x, R3.y, -R0;\n"184 "SGE R0.z, R 2.y, R2.x;\n"185 " ADD R0.x, R0, -R0.y;\n"145 "MAD R;\n" 146 "MOV R;\n" 147 "MOV R;\n" 148 "MOV R;\n" 149 ";\n" 150 "M;\n" 151 ";\n" 152 "fragment.texcoord[0];\n" 153 "w;\n" 154 ";\n" 155 ";\n" 156 "ADD R3.;\n" 157 "ADD R;\n" 158 "ADD R;\n" 159 ";\n" 160 ";\n" 161 ";\n" 162 "MAD R;\n" 163 ";\n" 164 "M;\n" 165 "ADD R.x;\n" 166 ";\n" 167 "MUL R;\n" 168 "ADD R;\n" 169 "M;\n" 170 "MAD R;\n" 171 ";\n" 172 ", R1;\n" 173 "MAD R;\n" 174 ";\n" 175 ";\n" 176 "ADD R;\n" 177 ";\n" 178 ";\n" 179 "SGE R0.zw, R;\n" 180 ";\n" 181 "SGE R;\n" 182 "M;\n" 183 ";\n" 184 "SGE R0.z, R.x;\n" 185 ";\n" 186 186 "MUL result.color, R0.x, R0.z;\n" 187 187 "END\n" … … 196 196 "TEMP R1;\n" 197 197 "TEMP R2;\n" 198 "ADD R0.xy, fragment.position, c[ 0];\n"199 "MUL R1.xyz, R0.y, c[ 2];\n"200 "MAD R0.xyz, R0.x, c[ 1], R1;\n"201 "ADD R0.xyz, R0, c[ 3];\n"198 "ADD R0.xy, fragment.position, c[];\n" 199 "MUL R1.xyz, R0.y, c[];\n" 200 "MAD R0.xyz, R0.x, c[], R1;\n" 201 "ADD R0.xyz, R0, c[];\n" 202 202 "RCP R2.z, R0.z;\n" 203 203 "MUL R0.zw, R0.xyxy, R2.z;\n" 204 204 "MUL R2.xy, R0.zwzw, fragment.texcoord[0];\n" 205 "MOV R1.xy, c[ 1];\n"206 "MOV R1.zw, c[ 2].xyxy;\n"207 "MOV R0.x, c[ 1].z;\n"208 "MOV R0.y, c[ 2].z;\n"209 "MAD R0, -R0.xyxy, R0.zzww, R1.xzyw;\n"205 "MOV R1.xy, c[];\n" 206 "MOV R1.zw, c[].xyxy;\n" 207 "MOV R0.x, c[].z;\n" 208 "MOV R0.y, c[].z;\n" 209 "MAD R0, , R1.xzyw;\n" 210 210 "MUL R1.xy, R2, fragment.texcoord[0];\n" 211 "MUL R0, R 0, R2.z;\n"211 "MUL R0, R;\n" 212 212 "MUL R1.xy, R1, c[4].x;\n" 213 213 "MUL R1.zw, R1.xyxy, R0.xyxz;\n" 214 "MUL R0.xy, R1, R0.ywzw;\n" 215 "ADD R0.w, R0.x, R0.y;\n" 216 "MUL R0.xy, R2, R2;\n" 214 "MUL R0.zw, R1.xyxy, R0.xyyw;\n" 215 "ADD R0.y, R0.z, R0.w;\n" 216 "ADD R0.x, R1.z, R1.w;\n" 217 "MUL R0.xy, R0, R0;\n" 217 218 "ADD R0.x, R0, R0.y;\n" 218 "ADD R0.z, R1, R1.w;\n" 219 "MUL R0.zw, R0, R0;\n" 220 "ADD R0.y, R0.z, R0.w;\n" 221 "RSQ R0.y, R0.y;\n" 222 "ADD R0.x, -R0, c[4].y;\n" 223 "MAD_SAT R0.x, R0.y, R0, -c[4].z;\n" 219 "MUL R0.zw, R2.xyxy, R2.xyxy;\n" 220 "ADD R0.z, R0, R0.w;\n" 221 "ADD R0.y, -R0.z, c[4];\n" 222 "RSQ R0.x, R0.x;\n" 223 "MAD_SAT R0.x, R0, R0.y, -c[4].z;\n" 224 224 "MUL R0.y, -R0.x, c[4].w;\n" 225 225 "ADD R0.y, R0, c[5].x;\n" … … 231 231 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = 232 232 "!!ARBfp1.0\n" 233 "PARAM c[7] = { program.local[0..3],\n" 234 " { 1 },\n" 235 " program.local[5..6] };\n" 233 "PARAM c[7] = { program.local[0..5],\n" 234 " { 1 } };\n" 236 235 "TEMP R0;\n" 237 236 "TEMP R1;\n" … … 239 238 "TEMP R3;\n" 240 239 "MUL R0.xy, fragment.position, c[3];\n" 241 "TEX R1, R0, texture[0], 2D;\n" 242 "MUL R0.xyz, R1, c[6].y;\n" 243 "MUL R2.xyz, R0, fragment.color.primary.w;\n" 244 "MUL R0.xyz, fragment.color.primary, c[6].x;\n" 245 "MAD R2.xyz, R0, R1.w, R2;\n" 246 "ADD R3.xy, fragment.position, c[0];\n" 247 "ADD R0.w, -R1, c[4].x;\n" 248 "MUL R0.xyz, fragment.color.primary, c[5].y;\n" 249 "MAD R2.xyz, R0, R0.w, R2;\n" 250 "MUL R0.xyz, R1, c[5].z;\n" 251 "ADD R0.w, -fragment.color.primary, c[4].x;\n" 252 "MAD R2.xyz, R0, R0.w, R2;\n" 253 "ADD R0.y, -R1.w, c[4].x;\n" 254 "MUL R0.x, fragment.color.primary.w, R1.w;\n" 255 "MUL R0.y, fragment.color.primary.w, R0;\n" 256 "MUL R0.z, R1.w, R0.w;\n" 257 "DP3 R2.w, R0, c[5];\n" 258 "MUL R3.xy, R3, c[1];\n" 259 "TEX R0, R3, texture[1], 2D;\n" 260 "ADD R2, R2, -R1;\n" 261 "DP4 R0.x, R0, c[2];\n" 262 "MAD result.color, R0.x, R2, R1;\n" 240 "TEX R0, R0, texture[0], 2D;\n" 241 "MUL R1.xyz, R0, c[0].y;\n" 242 "MUL R2.xyz, fragment.color.primary.w, R1;\n" 243 "MUL R1.xyz, fragment.color.primary, c[0].x;\n" 244 "MAD R2.xyz, R0.w, R1, R2;\n" 245 "ADD R3.xy, fragment.position, c[4];\n" 246 "ADD R1.w, -R0, c[6].x;\n" 247 "MUL R1.xyz, fragment.color.primary, c[1].y;\n" 248 "MAD R2.xyz, R1.w, R1, R2;\n" 249 "MUL R1.xyz, R0, c[1].z;\n" 250 "ADD R2.w, -fragment.color.primary, c[6].x;\n" 251 "MAD R2.xyz, R2.w, R1, R2;\n" 252 "MUL R1.z, R0.w, R2.w;\n" 253 "MUL R1.x, fragment.color.primary.w, R0.w;\n" 254 "MUL R1.y, fragment.color.primary.w, R1.w;\n" 255 "DP3 R2.w, R1, c[1];\n" 256 "MUL R3.xy, R3, c[2];\n" 257 "TEX R1, R3, texture[1], 2D;\n" 258 "ADD R2, R2, -R0;\n" 259 "DP4 R1.x, R1, c[5];\n" 260 "MAD result.color, R1.x, R2, R0;\n" 263 261 "END\n" 264 262 ; … … 271 269 "TEMP R1;\n" 272 270 "TEMP R2;\n" 273 "MUL R0.xy, fragment.position, c[ 3];\n"274 "TEX R 1, R0, texture[0], 2D;\n"275 "ADD R 0.x, -R1.w, c[4];\n"276 "MUL R 0.xyz, fragment.color.primary, R0.x;\n"277 "MAD R 0.xyz, fragment.color.primary, R1, R0;\n"278 "ADD R 0.w, -fragment.color.primary, c[4].x;\n"279 "MAD R2.xyz, R 1, R0.w, R0;\n"280 "ADD R 0.z, fragment.color.primary.w, R1.w;\n"281 "MAD R2.w, -fragment.color.primary, R 1, R0.z;\n"282 "ADD R 0.xy, fragment.position, c[0];\n"283 "MUL R 0.xy, R0, c[1];\n"284 "TEX R 0, R0, texture[1], 2D;\n"285 "ADD R2, R2, -R 1;\n"286 "DP4 R 0.x, R0, c[2];\n"287 "MAD result.color, R 0.x, R2, R1;\n"271 "MUL R0.xy, fragment.position, c[];\n" 272 "TEX R, R0, texture[0], 2D;\n" 273 "ADD R.w, c[4];\n" 274 "MUL R.x;\n" 275 "MAD R;\n" 276 "ADD R.w, -fragment.color.primary, c[4].x;\n" 277 "MAD R2.xyz, R;\n" 278 "ADD R.w;\n" 279 "MAD R2.w, -fragment.color.primary, R.z;\n" 280 "ADD R];\n" 281 "MUL R];\n" 282 "TEX R, texture[1], 2D;\n" 283 "ADD R2, R2, -R;\n" 284 "DP4 R];\n" 285 "MAD result.color, R;\n" 288 286 "END\n" 289 287 ; … … 295 293 "TEMP R1;\n" 296 294 "TEMP R2;\n" 297 "MUL R0.xy, fragment.position, c[ 3];\n"298 "TEX R 1, R0, texture[0], 2D;\n"299 "ADD R 0.xy, fragment.position, c[0];\n"300 "ADD R2, fragment.color.primary, R 1;\n"301 "MUL R 0.xy, R0, c[1];\n"302 "MAD R2, -fragment.color.primary, R 1, R2;\n"303 "TEX R 0, R0, texture[1], 2D;\n"304 "ADD R2, R2, -R 1;\n"305 "DP4 R 0.x, R0, c[2];\n"306 "MAD result.color, R 0.x, R2, R1;\n"295 "MUL R0.xy, fragment.position, c[];\n" 296 "TEX R, R0, texture[0], 2D;\n" 297 "ADD R];\n" 298 "ADD R2, fragment.color.primary, R;\n" 299 "MUL R];\n" 300 "MAD R2, -fragment.color.primary, R, R2;\n" 301 "TEX R, texture[1], 2D;\n" 302 "ADD R2, R2, -R;\n" 303 "DP4 R];\n" 304 "MAD result.color, R;\n" 307 305 "END\n" 308 306 ; … … 316 314 "TEMP R2;\n" 317 315 "TEMP R3;\n" 318 "MUL R0.xy, fragment.position, c[ 3];\n"316 "MUL R0.xy, fragment.position, c[];\n" 319 317 "TEX R1, R0, texture[0], 2D;\n" 320 318 "ADD R0.w, -R1, c[4].y;\n" … … 337 335 "ADD R0.z, fragment.color.primary.w, R1.w;\n" 338 336 "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" 339 "ADD R0.xy, fragment.position, c[ 0];\n"340 "MUL R0.xy, R0, c[ 1];\n"337 "ADD R0.xy, fragment.position, c[];\n" 338 "MUL R0.xy, R0, c[];\n" 341 339 "TEX R0, R0, texture[1], 2D;\n" 342 340 "ADD R2, R2, -R1;\n" 343 "DP4 R0.x, R0, c[ 2];\n"341 "DP4 R0.x, R0, c[];\n" 344 342 "MAD result.color, R0.x, R2, R1;\n" 345 343 "END\n" … … 353 351 "TEMP R1;\n" 354 352 "TEMP R2;\n" 355 "MUL R0.xy, fragment.position, c[ 3];\n"356 "TEX R 1, R0, texture[0], 2D;\n"357 "MUL R2.xyz, R1, fragment.color.primary.w;\n"358 "MUL R 0.xyz, fragment.color.primary, R1.w;\n"359 "MIN R 0.xyz, R0, R2;\n"360 "ADD R 0.w, -R1, c[4].x;\n"361 "MAD R 0.xyz, fragment.color.primary, R0.w, R0;\n"362 "ADD R 0.w, -fragment.color.primary, c[4].x;\n"363 "MAD R2.xyz, R 1, R0.w, R0;\n"364 "ADD R 0.z, fragment.color.primary.w, R1.w;\n"365 "MAD R2.w, -fragment.color.primary, R 1, R0.z;\n"366 "ADD R 0.xy, fragment.position, c[0];\n"367 "MUL R 0.xy, R0, c[1];\n"368 "TEX R 0, R0, texture[1], 2D;\n"369 "ADD R2, R2, -R 1;\n"370 "DP4 R 0.x, R0, c[2];\n"371 "MAD result.color, R 0.x, R2, R1;\n"353 "MUL R0.xy, fragment.position, c[];\n" 354 "TEX R, R0, texture[0], 2D;\n" 355 "MUL R2.xyz, ;\n" 356 "MUL R.w;\n" 357 "MIN R, R2;\n" 358 "ADD R, c[4].x;\n" 359 "MAD R;\n" 360 "ADD R.w, -fragment.color.primary, c[4].x;\n" 361 "MAD R2.xyz, R;\n" 362 "ADD R.w;\n" 363 "MAD R2.w, -fragment.color.primary, R.z;\n" 364 "ADD R];\n" 365 "MUL R];\n" 366 "TEX R, texture[1], 2D;\n" 367 "ADD R2, R2, -R;\n" 368 "DP4 R];\n" 369 "MAD result.color, R;\n" 372 370 "END\n" 373 371 ; … … 380 378 "TEMP R1;\n" 381 379 "TEMP R2;\n" 382 "MUL R0.xy, fragment.position, c[ 3];\n"383 "TEX R 1, R0, texture[0], 2D;\n"384 "MUL R2.xyz, R1, fragment.color.primary.w;\n"385 "MUL R 0.xyz, fragment.color.primary, R1.w;\n"386 "MAX R 0.xyz, R0, R2;\n"387 "ADD R 0.w, -R1, c[4].x;\n"388 "MAD R 0.xyz, fragment.color.primary, R0.w, R0;\n"389 "ADD R 0.w, -fragment.color.primary, c[4].x;\n"390 "MAD R2.xyz, R 1, R0.w, R0;\n"391 "ADD R 0.z, fragment.color.primary.w, R1.w;\n"392 "MAD R2.w, -fragment.color.primary, R 1, R0.z;\n"393 "ADD R 0.xy, fragment.position, c[0];\n"394 "MUL R 0.xy, R0, c[1];\n"395 "TEX R 0, R0, texture[1], 2D;\n"396 "ADD R2, R2, -R 1;\n"397 "DP4 R 0.x, R0, c[2];\n"398 "MAD result.color, R 0.x, R2, R1;\n"380 "MUL R0.xy, fragment.position, c[];\n" 381 "TEX R, R0, texture[0], 2D;\n" 382 "MUL R2.xyz, ;\n" 383 "MUL R.w;\n" 384 "MAX R, R2;\n" 385 "ADD R, c[4].x;\n" 386 "MAD R;\n" 387 "ADD R.w, -fragment.color.primary, c[4].x;\n" 388 "MAD R2.xyz, R;\n" 389 "ADD R.w;\n" 390 "MAD R2.w, -fragment.color.primary, R.z;\n" 391 "ADD R];\n" 392 "MUL R];\n" 393 "TEX R, texture[1], 2D;\n" 394 "ADD R2, R2, -R;\n" 395 "DP4 R];\n" 396 "MAD result.color, R;\n" 399 397 "END\n" 400 398 ; … … 403 401 "!!ARBfp1.0\n" 404 402 "PARAM c[5] = { program.local[0..3],\n" 405 " { 1, 1e-0 6 } };\n"406 "TEMP R0;\n" 407 "TEMP R1;\n" 408 "TEMP R2;\n" 409 "TEMP R3;\n" 410 "MUL R0.xy, fragment.position, c[ 3];\n"403 " { 1, 1e-06 } };\n" 404 "TEMP R0;\n" 405 "TEMP R1;\n" 406 "TEMP R2;\n" 407 "TEMP R3;\n" 408 "MUL R0.xy, fragment.position, c[];\n" 411 409 "TEX R0, R0, texture[0], 2D;\n" 412 "ADD R1. y, -fragment.color.primary.w, c[4].x;\n"413 "MAX R1. x, fragment.color.primary.w, c[4].y;\n"414 "MUL R2.xyz, R0, R1. y;\n"410 "ADD R1.;\n" 411 "MAX R1.;\n" 412 "MUL R2.xyz, R0, R1.;\n" 415 413 "ADD R1.w, -R0, c[4].x;\n" 416 414 "MAD R3.xyz, fragment.color.primary, R1.w, R2;\n" 417 "RCP R1. x, R1.x;\n"418 "MAD R1.xyz, -fragment.color.primary, R1. x, c[4].x;\n"415 "RCP R1.;\n" 416 "MAD R1.xyz, -fragment.color.primary, R1., c[4].x;\n" 419 417 "MAX R1.xyz, R1, c[4].y;\n" 420 "MUL R2.xyz, R0, fragment.color.primary.w;\n"418 "MUL R2.xyz, ;\n" 421 419 "MUL R1.w, fragment.color.primary, R0;\n" 422 420 "RCP R1.x, R1.x;\n" … … 431 429 "ADD R1.z, fragment.color.primary.w, R0.w;\n" 432 430 "MAD R2.w, -fragment.color.primary, R0, R1.z;\n" 433 "ADD R1.xy, fragment.position, c[ 0];\n"434 "MUL R1.xy, R1, c[ 1];\n"431 "ADD R1.xy, fragment.position, c[];\n" 432 "MUL R1.xy, R1, c[];\n" 435 433 "TEX R1, R1, texture[1], 2D;\n" 436 434 "ADD R2, R2, -R0;\n" 437 "DP4 R1.x, R1, c[ 2];\n"435 "DP4 R1.x, R1, c[];\n" 438 436 "MAD result.color, R1.x, R2, R0;\n" 439 437 "END\n" … … 443 441 "!!ARBfp1.0\n" 444 442 "PARAM c[5] = { program.local[0..3],\n" 445 " { 1, 9.9999997e-0 6 } };\n"443 " { 1, 9.9999997e-06 } };\n" 446 444 "TEMP R0;\n" 447 445 "TEMP R1;\n" … … 449 447 "TEMP R3;\n" 450 448 "TEMP R4;\n" 451 "MUL R0.xy, fragment.position, c[ 3];\n"449 "MUL R0.xy, fragment.position, c[];\n" 452 450 "TEX R0, R0, texture[0], 2D;\n" 453 451 "ADD R1.w, -R0, c[4].x;\n" 454 "MUL R1.xyz, R0, fragment.color.primary.w;\n"452 "MUL R1.xyz, ;\n" 455 453 "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" 456 454 "MAD R1.xyz, -fragment.color.primary.w, R0.w, R2;\n" 457 455 "MUL R3.xyz, fragment.color.primary.w, R1;\n" 458 456 "MAX R1.xyz, fragment.color.primary, c[4].y;\n" 457 459 458 "MUL R4.xyz, fragment.color.primary, R1.w;\n" 460 459 "RCP R1.x, R1.x;\n" … … 462 461 "RCP R1.z, R1.z;\n" 463 462 "MAD R3.xyz, R3, R1, R4;\n" 464 "ADD R2.w, -fragment.color.primary, c[4].x;\n"465 463 "MUL R1.xyz, R0, R2.w;\n" 466 464 "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" 467 "ADD R2.w, -fragment.color.primary, c[4].x;\n"468 465 "MAD R3.xyz, R0, R2.w, R3;\n" 469 466 "MUL R1.w, fragment.color.primary, R0;\n" … … 473 470 "ADD R1.z, fragment.color.primary.w, R0.w;\n" 474 471 "MAD R2.w, -fragment.color.primary, R0, R1.z;\n" 475 "ADD R1.xy, fragment.position, c[ 0];\n"476 "MUL R1.xy, R1, c[ 1];\n"472 "ADD R1.xy, fragment.position, c[];\n" 473 "MUL R1.xy, R1, c[];\n" 477 474 "TEX R1, R1, texture[1], 2D;\n" 478 475 "ADD R2, R2, -R0;\n" 479 "DP4 R1.x, R1, c[ 2];\n"476 "DP4 R1.x, R1, c[];\n" 480 477 "MAD result.color, R1.x, R2, R0;\n" 481 478 "END\n" … … 490 487 "TEMP R2;\n" 491 488 "TEMP R3;\n" 492 "MUL R0.xy, fragment.position, c[ 3];\n"489 "MUL R0.xy, fragment.position, c[];\n" 493 490 "TEX R1, R0, texture[0], 2D;\n" 494 491 "ADD R0.w, -R1, c[4].y;\n" … … 511 508 "ADD R0.z, fragment.color.primary.w, R1.w;\n" 512 509 "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" 513 "ADD R0.xy, fragment.position, c[ 0];\n"514 "MUL R0.xy, R0, c[ 1];\n"510 "ADD R0.xy, fragment.position, c[];\n" 511 "MUL R0.xy, R0, c[];\n" 515 512 "TEX R0, R0, texture[1], 2D;\n" 516 513 "ADD R2, R2, -R1;\n" 517 "DP4 R0.x, R0, c[ 2];\n"514 "DP4 R0.x, R0, c[];\n" 518 515 "MAD result.color, R0.x, R2, R1;\n" 519 516 "END\n" … … 523 520 "!!ARBfp1.0\n" 524 521 "PARAM c[6] = { program.local[0..3],\n" 525 " { 1, 9.9999997e-06, 2, 8},\n"526 " { 3 } };\n"522 " { 1, },\n" 523 " { 3 } };\n" 527 524 "TEMP R0;\n" 528 525 "TEMP R1;\n" … … 531 528 "TEMP R4;\n" 532 529 "TEMP R5;\n" 533 "MUL R0.xy, fragment.position, c[ 3];\n"530 "MUL R0.xy, fragment.position, c[];\n" 534 531 "TEX R0, R0, texture[0], 2D;\n" 535 "MAX R1.x, R0.w, c[4].y;\n" 536 "RCP R1.w, R1.x;\n" 537 "MUL R2.xyz, R0, R1.w;\n" 538 "MUL R1.xyz, -R2, c[4].w;\n" 539 "RSQ R2.w, R2.x;\n" 540 "ADD R4.xyz, R1, c[5].x;\n" 541 "MAD R1.xyz, -R0, R1.w, c[4].x;\n" 542 "RSQ R2.z, R2.z;\n" 543 "RSQ R2.y, R2.y;\n" 544 "RCP R2.x, R2.w;\n" 545 "RCP R2.z, R2.z;\n" 546 "RCP R2.y, R2.y;\n" 547 "MAD R5.xyz, R2, R0.w, -R0;\n" 548 "MAD R2.xyz, fragment.color.primary, c[4].z, -fragment.color.primary.w;\n" 549 "MUL R3.xyz, R1, R2;\n" 550 "MAD R3.xyz, -R3, R4, fragment.color.primary.w;\n" 551 "MUL R4.xyz, R5, R2;\n" 552 "MAD R1.xyz, -R1, R2, fragment.color.primary.w;\n" 553 "MAD R5.xyz, R0, fragment.color.primary.w, R4;\n" 554 "MUL R3.xyz, R0, R3;\n" 555 "MUL R4.xyz, R0, c[4].w;\n" 556 "ADD R5.xyz, R5, -R3;\n" 557 "SGE R4.xyz, R4, R0.w;\n" 558 "MUL R4.xyz, R4, R5;\n" 559 "ADD R2.xyz, R3, R4;\n" 532 "MAX R1.x, R0.w, c[4].z;\n" 533 "RCP R1.x, R1.x;\n" 534 "MUL R2.xyz, R0, R1.x;\n" 535 "MAD R1.xyz, R2, c[5].x, -c[5].y;\n" 536 "MAD R3.xyz, R2, R1, c[5].z;\n" 537 "MAD R1.xyz, fragment.color.primary, c[4].y, -fragment.color.primary.w;\n" 538 "MUL R4.xyz, R0.w, R1;\n" 539 "MUL R5.xyz, R4, R3;\n" 540 "RSQ R1.w, R2.x;\n" 541 "RSQ R2.w, R2.z;\n" 542 "RCP R3.x, R1.w;\n" 543 "RSQ R1.w, R2.y;\n" 544 "MUL R5.xyz, R2, R5;\n" 545 "RCP R3.z, R2.w;\n" 546 "RCP R3.y, R1.w;\n" 547 "ADD R3.xyz, -R2, R3;\n" 548 "MUL R3.xyz, R4, R3;\n" 549 "ADD R2.xyz, -R2, c[4].x;\n" 550 "MAD R1.xyz, R1, R2, fragment.color.primary.w;\n" 551 "MUL R2.xyz, fragment.color.primary, c[4].y;\n" 552 "MAD R4.xyz, fragment.color.primary.w, R0, R5;\n" 553 "MAD R3.xyz, fragment.color.primary.w, R0, R3;\n" 554 "ADD R5.xyz, R3, -R4;\n" 555 "MUL R3.xyz, R0, c[4].w;\n" 556 "SGE R3.xyz, R3, R0.w;\n" 557 "MAD R3.xyz, R3, R5, R4;\n" 558 "MAD R3.xyz, -R0, R1, R3;\n" 560 559 "MUL R1.xyz, R0, R1;\n" 561 "MUL R3.xyz, fragment.color.primary, c[4].z;\n" 562 "ADD R2.xyz, R2, -R1;\n" 563 "SGE R3.xyz, R3, fragment.color.primary.w;\n" 564 "MUL R2.xyz, R3, R2;\n" 565 "ADD R1.xyz, R1, R2;\n" 566 "ADD R1.w, -R0, c[4].x;\n" 560 "SGE R2.xyz, R2, fragment.color.primary.w;\n" 561 "MAD R2.xyz, R2, R3, R1;\n" 562 "ADD R1.x, -R0.w, c[4];\n" 563 "MAD R2.xyz, fragment.color.primary, R1.x, R2;\n" 564 "ADD R1.x, -fragment.color.primary.w, c[4];\n" 565 "MAD R2.xyz, R0, R1.x, R2;\n" 566 "ADD R1.z, fragment.color.primary.w, R0.w;\n" 567 "MAD R2.w, -fragment.color.primary, R0, R1.z;\n" 568 "ADD R1.xy, fragment.position, c[2];\n" 569 "MUL R1.xy, R1, c[0];\n" 570 "TEX R1, R1, texture[1], 2D;\n" 571 "ADD R2, R2, -R0;\n" 572 "DP4 R1.x, R1, c[3];\n" 573 "MAD result.color, R1.x, R2, R0;\n" 574 "END\n" 575 ; 576 577 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_DIFFERENCE = 578 "!!ARBfp1.0\n" 579 "PARAM c[5] = { program.local[0..3],\n" 580 " { 2 } };\n" 581 "TEMP R0;\n" 582 "TEMP R1;\n" 583 "TEMP R2;\n" 584 "TEMP R3;\n" 585 "MUL R0.xy, fragment.position, c[1];\n" 586 "TEX R0, R0, texture[0], 2D;\n" 587 "ADD R1.xyz, fragment.color.primary, R0;\n" 588 "MUL R3.xyz, fragment.color.primary.w, R0;\n" 589 "MUL R2.xyz, fragment.color.primary, R0.w;\n" 590 "MIN R2.xyz, R2, R3;\n" 591 "MAD R2.xyz, -R2, c[4].x, R1;\n" 592 "ADD R1.z, fragment.color.primary.w, R0.w;\n" 593 "MAD R2.w, -fragment.color.primary, R0, R1.z;\n" 594 "ADD R1.xy, fragment.position, c[2];\n" 595 "MUL R1.xy, R1, c[0];\n" 596 "TEX R1, R1, texture[1], 2D;\n" 597 "ADD R2, R2, -R0;\n" 598 "DP4 R1.x, R1, c[3];\n" 599 "MAD result.color, R1.x, R2, R0;\n" 600 "END\n" 601 ; 602 603 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_EXCLUSION = 604 "!!ARBfp1.0\n" 605 "PARAM c[5] = { program.local[0..3],\n" 606 " { 2, 1 } };\n" 607 "TEMP R0;\n" 608 "TEMP R1;\n" 609 "TEMP R2;\n" 610 "MUL R0.xy, fragment.position, c[1];\n" 611 "TEX R0, R0, texture[0], 2D;\n" 612 "MUL R1.xyz, fragment.color.primary.w, R0;\n" 613 "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" 614 "MUL R1.xyz, fragment.color.primary, R0;\n" 615 "MAD R1.xyz, -R1, c[4].x, R2;\n" 616 "ADD R1.w, -R0, c[4].y;\n" 567 617 "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" 568 "ADD R1.w, -fragment.color.primary, c[4]. x;\n"618 "ADD R1.w, -fragment.color.primary, c[4].;\n" 569 619 "MAD R2.xyz, R0, R1.w, R1;\n" 570 620 "ADD R1.z, fragment.color.primary.w, R0.w;\n" 571 621 "MAD R2.w, -fragment.color.primary, R0, R1.z;\n" 572 "ADD R1.xy, fragment.position, c[ 0];\n"573 "MUL R1.xy, R1, c[ 1];\n"622 "ADD R1.xy, fragment.position, c[];\n" 623 "MUL R1.xy, R1, c[];\n" 574 624 "TEX R1, R1, texture[1], 2D;\n" 575 625 "ADD R2, R2, -R0;\n" 576 "DP4 R1.x, R1, c[ 2];\n"626 "DP4 R1.x, R1, c[];\n" 577 627 "MAD result.color, R1.x, R2, R0;\n" 578 628 "END\n" 579 629 ; 580 630 581 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_DIFFERENCE =582 "!!ARBfp1.0\n"583 "PARAM c[5] = { program.local[0..3],\n"584 " { 2 } };\n"585 "TEMP R0;\n"586 "TEMP R1;\n"587 "TEMP R2;\n"588 "TEMP R3;\n"589 "MUL R0.xy, fragment.position, c[3];\n"590 "TEX R1, R0, texture[0], 2D;\n"591 "MUL R2.xyz, R1, fragment.color.primary.w;\n"592 "MUL R0.xyz, fragment.color.primary, R1.w;\n"593 "MIN R0.xyz, R0, R2;\n"594 "ADD R3.xyz, fragment.color.primary, R1;\n"595 "MAD R2.xyz, -R0, c[4].x, R3;\n"596 "ADD R0.z, fragment.color.primary.w, R1.w;\n"597 "MAD R2.w, -fragment.color.primary, R1, R0.z;\n"598 "ADD R0.xy, fragment.position, c[0];\n"599 "MUL R0.xy, R0, c[1];\n"600 "TEX R0, R0, texture[1], 2D;\n"601 "ADD R2, R2, -R1;\n"602 "DP4 R0.x, R0, c[2];\n"603 "MAD result.color, R0.x, R2, R1;\n"604 "END\n"605 ;606 607 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_EXCLUSION =608 "!!ARBfp1.0\n"609 "PARAM c[5] = { program.local[0..3],\n"610 " { 1, 2 } };\n"611 "TEMP R0;\n"612 "TEMP R1;\n"613 "TEMP R2;\n"614 "MUL R0.xy, fragment.position, c[3];\n"615 "TEX R1, R0, texture[0], 2D;\n"616 "MUL R0.xyz, R1, fragment.color.primary.w;\n"617 "MAD R2.xyz, fragment.color.primary, R1.w, R0;\n"618 "MUL R0.xyz, fragment.color.primary, R1;\n"619 "MAD R0.xyz, -R0, c[4].y, R2;\n"620 "ADD R0.w, -R1, c[4].x;\n"621 "MAD R0.xyz, fragment.color.primary, R0.w, R0;\n"622 "ADD R0.w, -fragment.color.primary, c[4].x;\n"623 "MAD R2.xyz, R1, R0.w, R0;\n"624 "ADD R0.z, fragment.color.primary.w, R1.w;\n"625 "MAD R2.w, -fragment.color.primary, R1, R0.z;\n"626 "ADD R0.xy, fragment.position, c[0];\n"627 "MUL R0.xy, R0, c[1];\n"628 "TEX R0, R0, texture[1], 2D;\n"629 "ADD R2, R2, -R1;\n"630 "DP4 R0.x, R0, c[2];\n"631 "MAD result.color, R0.x, R2, R1;\n"632 "END\n"633 ;634 635 631 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 636 632 "!!ARBfp1.0\n" 637 "PARAM c[4] = { program.local[0],\n" 638 " { 1 },\n" 639 " program.local[2..3] };\n" 640 "TEMP R0;\n" 641 "TEMP R1;\n" 642 "TEMP R2;\n" 643 "MUL R0.xy, fragment.position, c[0];\n" 633 "PARAM c[4] = { program.local[0..2],\n" 634 " { 1 } };\n" 635 "TEMP R0;\n" 636 "TEMP R1;\n" 637 "TEMP R2;\n" 638 "MUL R0.xy, fragment.position, c[2];\n" 644 639 "TEX R0, R0, texture[0], 2D;\n" 645 "MUL R1.xyz, R0, c[3].y;\n" 646 "MUL R2.xyz, R1, fragment.color.primary.w;\n" 647 "MUL R1.xyz, fragment.color.primary, c[3].x;\n" 648 "MAD R2.xyz, R1, R0.w, R2;\n" 649 "MUL R0.xyz, R0, c[2].z;\n" 650 "ADD R1.w, -R0, c[1].x;\n" 651 "MUL R1.xyz, fragment.color.primary, c[2].y;\n" 652 "MAD R1.xyz, R1, R1.w, R2;\n" 653 "ADD R1.w, -fragment.color.primary, c[1].x;\n" 654 "MAD result.color.xyz, R0, R1.w, R1;\n" 655 "ADD R0.y, -R0.w, c[1].x;\n" 640 "MUL R1.xyz, R0, c[0].y;\n" 641 "MUL R2.xyz, fragment.color.primary.w, R1;\n" 642 "MUL R1.xyz, fragment.color.primary, c[0].x;\n" 643 "MAD R2.xyz, R0.w, R1, R2;\n" 644 "MUL R0.xyz, R0, c[1].z;\n" 645 "ADD R1.w, -R0, c[3].x;\n" 646 "MUL R1.xyz, fragment.color.primary, c[1].y;\n" 647 "MAD R1.xyz, R1.w, R1, R2;\n" 648 "ADD R2.x, -fragment.color.primary.w, c[3];\n" 649 "MAD result.color.xyz, R2.x, R0, R1;\n" 656 650 "MUL R0.x, fragment.color.primary.w, R0.w;\n" 657 "MUL R0.z, R0.w, R 1.w;\n"658 "MUL R0.y, fragment.color.primary.w, R 0;\n"659 "DP3 result.color.w, R0, c[ 2];\n"651 "MUL R0.z, R0.w, R;\n" 652 "MUL R0.y, fragment.color.primary.w, R;\n" 653 "DP3 result.color.w, R0, c[];\n" 660 654 "END\n" 661 655 ; … … 733 727 "MUL R0.xy, fragment.position, c[0];\n" 734 728 "TEX R0, R0, texture[0], 2D;\n" 735 "MUL R2.xyz, R0, fragment.color.primary.w;\n"729 "MUL R2.xyz, ;\n" 736 730 "MUL R1.xyz, fragment.color.primary, R0.w;\n" 737 731 "MIN R1.xyz, R1, R2;\n" … … 754 748 "MUL R0.xy, fragment.position, c[0];\n" 755 749 "TEX R0, R0, texture[0], 2D;\n" 756 "MUL R2.xyz, R0, fragment.color.primary.w;\n"750 "MUL R2.xyz, ;\n" 757 751 "MUL R1.xyz, fragment.color.primary, R0.w;\n" 758 752 "MAX R1.xyz, R1, R2;\n" … … 769 763 "!!ARBfp1.0\n" 770 764 "PARAM c[2] = { program.local[0],\n" 771 " { 1, 1e-0 6 } };\n"765 " { 1, 1e-06 } };\n" 772 766 "TEMP R0;\n" 773 767 "TEMP R1;\n" … … 783 777 "MAD R2.xyz, -fragment.color.primary, R2.x, c[1].x;\n" 784 778 "MAX R2.xyz, R2, c[1].y;\n" 785 "MUL R0.xyz, R0, fragment.color.primary.w;\n"779 "MUL R0.xyz, ;\n" 786 780 "MUL R1.w, fragment.color.primary, R0;\n" 787 781 "RCP R2.x, R2.x;\n" … … 802 796 "!!ARBfp1.0\n" 803 797 "PARAM c[2] = { program.local[0],\n" 804 " { 1, 9.9999997e-0 6 } };\n"798 " { 1, 9.9999997e-06 } };\n" 805 799 "TEMP R0;\n" 806 800 "TEMP R1;\n" … … 810 804 "MUL R0.xy, fragment.position, c[0];\n" 811 805 "TEX R0, R0, texture[0], 2D;\n" 812 "MUL R1.xyz, R0, fragment.color.primary.w;\n"806 "MUL R1.xyz, ;\n" 813 807 "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" 814 808 "MAD R1.xyz, -fragment.color.primary.w, R0.w, R2;\n" … … 823 817 "MAD R1.xyz, R3, R1, R4;\n" 824 818 "MUL R3.xyz, R0, R2.w;\n" 825 "ADD R2.w, -fragment.color.primary, c[1].x;\n"826 819 "MAD R0.xyz, R0, R2.w, R1;\n" 827 820 "MAD R1.xyz, fragment.color.primary, R1.w, R3;\n" … … 870 863 "!!ARBfp1.0\n" 871 864 "PARAM c[3] = { program.local[0],\n" 872 " { 1, 9.9999997e-06, 2, 8},\n"873 " { 3 } };\n"865 " { 1, },\n" 866 " { 3 } };\n" 874 867 "TEMP R0;\n" 875 868 "TEMP R1;\n" … … 880 873 "MUL R0.xy, fragment.position, c[0];\n" 881 874 "TEX R0, R0, texture[0], 2D;\n" 882 "MAX R1.x, R0.w, c[1].y;\n" 883 "RCP R1.w, R1.x;\n" 884 "MUL R2.xyz, R0, R1.w;\n" 885 "MUL R1.xyz, -R2, c[1].w;\n" 886 "ADD R4.xyz, R1, c[2].x;\n" 887 "MAD R1.xyz, -R0, R1.w, c[1].x;\n" 888 "RSQ R2.w, R2.x;\n" 889 "RSQ R2.z, R2.z;\n" 890 "RSQ R2.y, R2.y;\n" 891 "RCP R2.x, R2.w;\n" 892 "RCP R2.z, R2.z;\n" 893 "RCP R2.y, R2.y;\n" 894 "MAD R5.xyz, R2, R0.w, -R0;\n" 895 "MAD R2.xyz, fragment.color.primary, c[1].z, -fragment.color.primary.w;\n" 896 "MUL R3.xyz, R1, R2;\n" 897 "MAD R3.xyz, -R3, R4, fragment.color.primary.w;\n" 898 "MUL R4.xyz, R5, R2;\n" 899 "MAD R1.xyz, -R1, R2, fragment.color.primary.w;\n" 900 "MAD R5.xyz, R0, fragment.color.primary.w, R4;\n" 901 "MUL R3.xyz, R0, R3;\n" 902 "MUL R4.xyz, R0, c[1].w;\n" 903 "ADD R5.xyz, R5, -R3;\n" 904 "SGE R4.xyz, R4, R0.w;\n" 905 "MUL R4.xyz, R4, R5;\n" 906 "ADD R2.xyz, R3, R4;\n" 875 "MAX R1.x, R0.w, c[1].z;\n" 876 "RCP R1.x, R1.x;\n" 877 "MUL R2.xyz, R0, R1.x;\n" 878 "MAD R1.xyz, R2, c[2].x, -c[2].y;\n" 879 "MAD R3.xyz, R2, R1, c[2].z;\n" 880 "MAD R1.xyz, fragment.color.primary, c[1].y, -fragment.color.primary.w;\n" 881 "MUL R4.xyz, R0.w, R1;\n" 882 "MUL R5.xyz, R4, R3;\n" 883 "RSQ R1.w, R2.x;\n" 884 "RCP R3.x, R1.w;\n" 885 "RSQ R2.w, R2.z;\n" 886 "RSQ R1.w, R2.y;\n" 887 "MUL R5.xyz, R2, R5;\n" 888 "RCP R3.z, R2.w;\n" 889 "RCP R3.y, R1.w;\n" 890 "ADD R3.xyz, -R2, R3;\n" 891 "MUL R3.xyz, R4, R3;\n" 892 "ADD R2.xyz, -R2, c[1].x;\n" 893 "MAD R1.xyz, R1, R2, fragment.color.primary.w;\n" 894 "MUL R2.xyz, fragment.color.primary, c[1].y;\n" 895 "MAD R4.xyz, fragment.color.primary.w, R0, R5;\n" 896 "MAD R3.xyz, fragment.color.primary.w, R0, R3;\n" 897 "ADD R5.xyz, R3, -R4;\n" 898 "MUL R3.xyz, R0, c[1].w;\n" 899 "SGE R3.xyz, R3, R0.w;\n" 900 "MAD R3.xyz, R3, R5, R4;\n" 901 "MAD R3.xyz, -R0, R1, R3;\n" 907 902 "MUL R1.xyz, R0, R1;\n" 908 "MUL R3.xyz, fragment.color.primary, c[1].z;\n" 909 "ADD R2.xyz, R2, -R1;\n" 910 "SGE R3.xyz, R3, fragment.color.primary.w;\n" 911 "MUL R2.xyz, R3, R2;\n" 912 "ADD R1.xyz, R1, R2;\n" 913 "ADD R1.w, -R0, c[1].x;\n" 914 "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" 915 "ADD R1.w, fragment.color.primary, R0;\n" 916 "ADD R2.x, -fragment.color.primary.w, c[1];\n" 917 "MAD result.color.xyz, R0, R2.x, R1;\n" 918 "MAD result.color.w, -fragment.color.primary, R0, R1;\n" 903 "SGE R2.xyz, R2, fragment.color.primary.w;\n" 904 "MAD R2.xyz, R2, R3, R1;\n" 905 "ADD R1.x, -R0.w, c[1];\n" 906 "MAD R2.xyz, fragment.color.primary, R1.x, R2;\n" 907 "ADD R1.x, fragment.color.primary.w, R0.w;\n" 908 "ADD R1.y, -fragment.color.primary.w, c[1].x;\n" 909 "MAD result.color.xyz, R0, R1.y, R2;\n" 910 "MAD result.color.w, -fragment.color.primary, R0, R1.x;\n" 919 911 "END\n" 920 912 ; … … 929 921 "MUL R0.xy, fragment.position, c[0];\n" 930 922 "TEX R0, R0, texture[0], 2D;\n" 931 "MUL R2.xyz, R0, fragment.color.primary.w;\n"923 "MUL R2.xyz, ;\n" 932 924 "MUL R1.xyz, fragment.color.primary, R0.w;\n" 933 925 "ADD R1.w, fragment.color.primary, R0;\n" … … 942 934 "!!ARBfp1.0\n" 943 935 "PARAM c[2] = { program.local[0],\n" 944 " { 1, 2} };\n"936 " { } };\n" 945 937 "TEMP R0;\n" 946 938 "TEMP R1;\n" … … 948 940 "MUL R0.xy, fragment.position, c[0];\n" 949 941 "TEX R0, R0, texture[0], 2D;\n" 950 "MUL R1.xyz, R0, fragment.color.primary.w;\n"942 "MUL R1.xyz, ;\n" 951 943 "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" 952 944 "MUL R1.xyz, fragment.color.primary, R0;\n" 953 "MAD R1.xyz, -R1, c[1]. y, R2;\n"954 "ADD R1.w, -R0, c[1]. x;\n"945 "MAD R1.xyz, -R1, c[1]., R2;\n" 946 "ADD R1.w, -R0, c[1].;\n" 955 947 "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" 956 948 "ADD R1.w, fragment.color.primary, R0;\n" 957 "ADD R2.x, -fragment.color.primary.w, c[1] ;\n"949 "ADD R2.x, -fragment.color.primary.w, c[1];\n" 958 950 "MAD result.color.xyz, R0, R2.x, R1;\n" 959 951 "MAD result.color.w, -fragment.color.primary, R0, R1;\n" … … 965 957 "PARAM c[3] = { program.local[0..2] };\n" 966 958 "TEMP R0;\n" 967 "ADD R0.xy, fragment.position, c[ 0];\n"968 "MUL R0.xy, R0, c[ 1];\n"959 "ADD R0.xy, fragment.position, c[];\n" 960 "MUL R0.xy, R0, c[];\n" 969 961 "TEX R0, R0, texture[0], 2D;\n" 970 962 "DP4 R0.x, R0, c[2];\n" … … 975 967 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE_BLEND_MODE_NOMASK = 976 968 "!!ARBfp1.0\n" 977 "PARAM c[1] = { program.local[0] };\n"978 969 "MOV result.color, fragment.color.primary;\n" 979 970 "END\n" … … 982 973 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = 983 974 "!!ARBfp1.0\n" 984 "PARAM c[12] = { program.local[0..6],\n" 985 " { 2, 4, 1 },\n" 986 " program.local[8..11] };\n" 987 "TEMP R0;\n" 988 "TEMP R1;\n" 989 "TEMP R2;\n" 990 "TEMP R3;\n" 991 "MUL R0.xyz, fragment.position.y, c[4];\n" 992 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 993 "ADD R0.xyz, R0, c[5];\n" 975 "PARAM c[12] = { program.local[0..10],\n" 976 " { 2, 4, 1 } };\n" 977 "TEMP R0;\n" 978 "TEMP R1;\n" 979 "TEMP R2;\n" 980 "TEMP R3;\n" 981 "MUL R0.xyz, fragment.position.y, c[3];\n" 982 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 983 "ADD R0.xyz, R0, c[4];\n" 994 984 "RCP R0.z, R0.z;\n" 995 985 "MUL R0.xy, R0, R0.z;\n" 996 986 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 997 987 "ADD R0.z, R0, R0.w;\n" 998 "MUL R0.xy, R0, c[ 6];\n"988 "MUL R0.xy, R0, c[];\n" 999 989 "ADD R0.x, R0, R0.y;\n" 1000 "MUL R0.z, c[8].x, -R0;\n"1001 "MUL R0.y, R0. z, c[7];\n"1002 "MUL R0. x, R0, c[7];\n"1003 "MAD R0. y, R0.x, R0.x, -R0;\n"1004 "RSQ R0. z, R0.y;\n"1005 "RCP R0.z, R0. z;\n"1006 "ADD R 0.x, -R0, R0.z;\n"1007 "M UL R0.zw, fragment.position.xyxy, c[9].xyxy;\n"1008 " TEX R1, R0.zwzw, texture[0], 2D;\n"1009 " MOV R0.y, c[7].x;\n"1010 "MUL R0. y, c[8].x, R0;\n"1011 " RCP R0.y, R0.y;\n"1012 "MUL R 0.x, R0, R0.y;\n"1013 "TEX R 0, R0, texture[2], 1D;\n"1014 "MUL R2.xyz, R 1, c[11].y;\n"1015 "MUL R3.xyz, R 2, R0.w;\n"1016 "MUL R2.xyz, R 0, c[11].x;\n"1017 "MAD R2.xyz, R 2, R1.w, R3;\n"1018 "ADD R3.xy, fragment.position, c[ 0];\n"1019 "ADD R2.w, -R 1, c[7].z;\n"1020 "MUL R 0.xyz, R0, c[10].y;\n"1021 "MAD R2.xyz, R 0, R2.w, R2;\n"1022 "MUL R 0.xyz, R1, c[10].z;\n"1023 "ADD R3.z, -R 0.w, c[7];\n"1024 "MAD R2.xyz, R 0, R3.z, R2;\n"1025 "MUL R 0.y, R0.w, R2.w;\n"1026 "MUL R 0.x, R0.w, R1.w;\n"1027 "MUL R 0.z, R1.w, R3;\n"1028 "DP3 R2.w, R 0, c[10];\n"1029 "MUL R3.xy, R3, c[ 1];\n"1030 "TEX R 0, R3, texture[1], 2D;\n"1031 "ADD R2, R2, -R 1;\n"1032 "DP4 R 0.x, R0, c[2];\n"1033 "MAD result.color, R 0.x, R2, R1;\n"990 "MUL R0.z, ;\n" 991 "MUL R0.y, R0.;\n" 992 "MUL R0.;\n" 993 "MAD R0.;\n" 994 "RSQ R0.;\n" 995 "RCP R0.z, R0.;\n" 996 "ADD R, R0.z;\n" 997 "M;\n" 998 ";\n" 999 ";\n" 1000 "MUL R0.;\n" 1001 ";\n" 1002 "MUL R.y;\n" 1003 "TEX R, texture[2], 1D;\n" 1004 "MUL R2.xyz, R].y;\n" 1005 "MUL R3.xyz, R;\n" 1006 "MUL R2.xyz, R].x;\n" 1007 "MAD R2.xyz, R, R3;\n" 1008 "ADD R3.xy, fragment.position, c[];\n" 1009 "ADD R2.w, -R].z;\n" 1010 "MUL R].y;\n" 1011 "MAD R2.xyz, R, R2;\n" 1012 "MUL R].z;\n" 1013 "ADD R3.z, -R];\n" 1014 "MAD R2.xyz, R, R2;\n" 1015 "MUL R.w, R2.w;\n" 1016 "MUL R.w;\n" 1017 "MUL R.w, R3;\n" 1018 "DP3 R2.w, R];\n" 1019 "MUL R3.xy, R3, c[];\n" 1020 "TEX R, R3, texture[1], 2D;\n" 1021 "ADD R2, R2, -R;\n" 1022 "DP4 R];\n" 1023 "MAD result.color, R;\n" 1034 1024 "END\n" 1035 1025 ; … … 1037 1027 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_MULTIPLY = 1038 1028 "!!ARBfp1.0\n" 1039 "PARAM c[10] = { program.local[0..6],\n" 1040 " { 2, 4, 1 },\n" 1041 " program.local[8..9] };\n" 1042 "TEMP R0;\n" 1043 "TEMP R1;\n" 1044 "TEMP R2;\n" 1045 "MUL R0.xyz, fragment.position.y, c[4];\n" 1046 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 1047 "ADD R0.xyz, R0, c[5];\n" 1029 "PARAM c[10] = { program.local[0..8],\n" 1030 " { 2, 4, 1 } };\n" 1031 "TEMP R0;\n" 1032 "TEMP R1;\n" 1033 "TEMP R2;\n" 1034 "MUL R0.xyz, fragment.position.y, c[3];\n" 1035 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1036 "ADD R0.xyz, R0, c[4];\n" 1048 1037 "RCP R0.z, R0.z;\n" 1049 1038 "MUL R0.xy, R0, R0.z;\n" 1050 1039 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1051 "MUL R0.xy, R0, c[6];\n"1052 1040 "ADD R0.z, R0, R0.w;\n" 1041 1053 1042 "ADD R0.x, R0, R0.y;\n" 1054 "MUL R0.z, c[8].x, -R0;\n"1055 "MUL R0.y, R0. z, c[7];\n"1056 "MUL R0. x, R0, c[7];\n"1057 "MAD R0. y, R0.x, R0.x, -R0;\n"1058 "RSQ R0. y, R0.y;\n"1059 "RCP R0.z, R0. y;\n"1060 "ADD R 0.x, -R0, R0.z;\n"1061 "M UL R0.zw, fragment.position.xyxy, c[9].xyxy;\n"1062 " TEX R1, R0.zwzw, texture[0], 2D;\n"1063 " MOV R0.y, c[7].x;\n"1064 "MUL R0. y, c[8].x, R0;\n"1065 " RCP R0.y, R0.y;\n"1066 "MUL R 0.x, R0, R0.y;\n"1067 "TEX R 0, R0, texture[2], 1D;\n"1068 "ADD R2.x, -R 1.w, c[7].z;\n"1069 "MUL R2.xyz, R 0, R2.x;\n"1070 "MAD R 0.xyz, R0, R1, R2;\n"1071 "ADD R2.x, -R 0.w, c[7].z;\n"1072 "MAD R2.xyz, R 1, R2.x, R0;\n"1073 "ADD R 0.z, R0.w, R1.w;\n"1074 "MAD R2.w, -R 0, R1, R0.z;\n"1075 "ADD R 0.xy, fragment.position, c[0];\n"1076 "MUL R 0.xy, R0, c[1];\n"1077 "TEX R 0, R0, texture[1], 2D;\n"1078 "ADD R2, R2, -R 1;\n"1079 "DP4 R 0.x, R0, c[2];\n"1080 "MAD result.color, R 0.x, R2, R1;\n"1043 "MUL R0.z, ;\n" 1044 "MUL R0.y, R0.;\n" 1045 "MUL R0.;\n" 1046 "MAD R0.;\n" 1047 "RSQ R0.;\n" 1048 "RCP R0.z, R0.;\n" 1049 "ADD R, R0.z;\n" 1050 "M;\n" 1051 ";\n" 1052 ";\n" 1053 "MUL R0.;\n" 1054 ";\n" 1055 "MUL R.y;\n" 1056 "TEX R, texture[2], 1D;\n" 1057 "ADD R2.x, -R].z;\n" 1058 "MUL R2.xyz, R, R2.x;\n" 1059 "MAD R, R2;\n" 1060 "ADD R2.x, -R].z;\n" 1061 "MAD R2.xyz, R;\n" 1062 "ADD R.w;\n" 1063 "MAD R2.w, -R.z;\n" 1064 "ADD R];\n" 1065 "MUL R];\n" 1066 "TEX R, texture[1], 2D;\n" 1067 "ADD R2, R2, -R;\n" 1068 "DP4 R];\n" 1069 "MAD result.color, R;\n" 1081 1070 "END\n" 1082 1071 ; … … 1084 1073 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SCREEN = 1085 1074 "!!ARBfp1.0\n" 1086 "PARAM c[10] = { program.local[0..6],\n" 1087 " { 2, 4 },\n" 1088 " program.local[8..9] };\n" 1089 "TEMP R0;\n" 1090 "TEMP R1;\n" 1091 "TEMP R2;\n" 1092 "TEMP R3;\n" 1093 "MUL R0.xyz, fragment.position.y, c[4];\n" 1094 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 1095 "ADD R0.xyz, R0, c[5];\n" 1075 "PARAM c[10] = { program.local[0..8],\n" 1076 " { 2, 4 } };\n" 1077 "TEMP R0;\n" 1078 "TEMP R1;\n" 1079 "TEMP R2;\n" 1080 "TEMP R3;\n" 1081 "MUL R0.xyz, fragment.position.y, c[3];\n" 1082 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1083 "ADD R0.xyz, R0, c[4];\n" 1096 1084 "RCP R0.z, R0.z;\n" 1097 1085 "MUL R0.xy, R0, R0.z;\n" 1098 1086 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1099 "MUL R0.xy, R0, c[6];\n"1100 1087 "ADD R0.z, R0, R0.w;\n" 1088 1101 1089 "ADD R0.x, R0, R0.y;\n" 1102 "MUL R0.z, c[8].x, -R0;\n" 1103 "MUL R0.y, R0.z, c[7];\n" 1104 "MUL R0.x, R0, c[7];\n" 1105 "MAD R0.y, R0.x, R0.x, -R0;\n" 1106 "MOV R0.z, c[7].x;\n" 1107 "RSQ R0.y, R0.y;\n" 1108 "RCP R0.y, R0.y;\n" 1109 "MUL R0.z, c[8].x, R0;\n" 1110 "MUL R1.xy, fragment.position, c[9];\n" 1111 "ADD R3.xy, fragment.position, c[0];\n" 1090 "MUL R0.y, R0.x, c[9].x;\n" 1091 "MOV R0.x, c[9];\n" 1092 "MUL R0.z, -R0, c[1].x;\n" 1093 "MUL R0.z, R0, c[9].y;\n" 1094 "MAD R0.z, R0.y, R0.y, -R0;\n" 1095 "ADD R3.xy, fragment.position, c[7];\n" 1096 "MUL R0.w, R0.x, c[1].x;\n" 1097 "RSQ R0.z, R0.z;\n" 1098 "RCP R0.x, R0.z;\n" 1099 "RCP R0.z, R0.w;\n" 1100 "ADD R0.x, -R0.y, R0;\n" 1101 "MUL R0.z, R0.x, R0;\n" 1102 "TEX R1, R0.z, texture[2], 1D;\n" 1103 "MUL R0.xy, fragment.position, c[6];\n" 1104 "TEX R0, R0, texture[0], 2D;\n" 1105 "ADD R2, R1, R0;\n" 1106 "MAD R2, -R1, R0, R2;\n" 1107 "MUL R3.xy, R3, c[5];\n" 1108 "TEX R1, R3, texture[1], 2D;\n" 1109 "ADD R2, R2, -R0;\n" 1110 "DP4 R1.x, R1, c[8];\n" 1111 "MAD result.color, R1.x, R2, R0;\n" 1112 "END\n" 1113 ; 1114 1115 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_OVERLAY = 1116 "!!ARBfp1.0\n" 1117 "PARAM c[10] = { program.local[0..8],\n" 1118 " { 2, 4, 1 } };\n" 1119 "TEMP R0;\n" 1120 "TEMP R1;\n" 1121 "TEMP R2;\n" 1122 "TEMP R3;\n" 1123 "TEMP R4;\n" 1124 "MUL R0.xyz, fragment.position.y, c[3];\n" 1125 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1126 "ADD R0.xyz, R0, c[4];\n" 1127 "RCP R0.z, R0.z;\n" 1128 "MUL R0.xy, R0, R0.z;\n" 1129 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1130 "ADD R0.z, R0, R0.w;\n" 1131 "MUL R0.xy, R0, c[0];\n" 1132 "ADD R0.x, R0, R0.y;\n" 1133 "MUL R0.y, R0.x, c[9].x;\n" 1134 "MOV R0.x, c[9];\n" 1135 "MUL R0.z, -R0, c[1].x;\n" 1136 "MUL R0.z, R0, c[9].y;\n" 1137 "MAD R0.z, R0.y, R0.y, -R0;\n" 1138 "MUL R1.xy, fragment.position, c[6];\n" 1112 1139 "TEX R1, R1, texture[0], 2D;\n" 1113 "ADD R0.x, -R0, R0.y;\n" 1114 "RCP R0.z, R0.z;\n" 1140 "MUL R0.w, R0.x, c[1].x;\n" 1141 "RSQ R0.z, R0.z;\n" 1142 "RCP R0.x, R0.z;\n" 1143 "ADD R2.w, -R1, c[9].z;\n" 1144 "RCP R0.z, R0.w;\n" 1145 "ADD R0.x, -R0.y, R0;\n" 1115 1146 "MUL R0.x, R0, R0.z;\n" 1116 1147 "TEX R0, R0, texture[2], 1D;\n" 1117 "ADD R2, R0, R1;\n"1118 "MAD R2, -R0, R1, R2;\n"1119 "MUL R3.xy, R3, c[1];\n"1120 "TEX R0, R3, texture[1], 2D;\n"1121 "ADD R2, R2, -R1;\n"1122 "DP4 R0.x, R0, c[2];\n"1123 "MAD result.color, R0.x, R2, R1;\n"1124 "END\n"1125 ;1126 1127 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_OVERLAY =1128 "!!ARBfp1.0\n"1129 "PARAM c[10] = { program.local[0..6],\n"1130 " { 2, 4, 1 },\n"1131 " program.local[8..9] };\n"1132 "TEMP R0;\n"1133 "TEMP R1;\n"1134 "TEMP R2;\n"1135 "TEMP R3;\n"1136 "TEMP R4;\n"1137 "MUL R0.xyz, fragment.position.y, c[4];\n"1138 "MAD R0.xyz, fragment.position.x, c[3], R0;\n"1139 "ADD R0.xyz, R0, c[5];\n"1140 "RCP R0.z, R0.z;\n"1141 "MUL R0.xy, R0, R0.z;\n"1142 "MUL R0.zw, R0.xyxy, R0.xyxy;\n"1143 "MUL R0.xy, R0, c[6];\n"1144 "ADD R0.z, R0, R0.w;\n"1145 "ADD R0.x, R0, R0.y;\n"1146 "MUL R0.z, c[8].x, -R0;\n"1147 "MUL R0.y, R0.z, c[7];\n"1148 "MUL R0.x, R0, c[7];\n"1149 "MAD R0.y, R0.x, R0.x, -R0;\n"1150 "MOV R0.z, c[7].x;\n"1151 "RSQ R0.y, R0.y;\n"1152 "RCP R0.y, R0.y;\n"1153 "MUL R0.z, c[8].x, R0;\n"1154 "MUL R1.xy, fragment.position, c[9];\n"1155 "TEX R1, R1, texture[0], 2D;\n"1156 "ADD R0.x, -R0, R0.y;\n"1157 "RCP R0.z, R0.z;\n"1158 "MUL R0.x, R0, R0.z;\n"1159 "TEX R0, R0, texture[2], 1D;\n"1160 "ADD R2.w, -R1, c[7].z;\n"1161 1148 "ADD R3.xyz, R0.w, -R0;\n" 1162 1149 "ADD R2.xyz, R1.w, -R1;\n" 1163 1150 "MUL R2.xyz, R2, R3;\n" 1164 "MUL R2.xyz, R2, c[ 7].x;\n"1151 "MUL R2.xyz, R2, c[].x;\n" 1165 1152 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 1166 1153 "MUL R4.xyz, R0, R2.w;\n" 1167 1154 "MUL R3.xyz, R0, R1;\n" 1168 1155 "MAD R0.xyz, R0, R2.w, R2;\n" 1169 "ADD R2.x, -R0.w, c[ 7].z;\n"1170 "MAD R3.xyz, R3, c[ 7].x, R4;\n"1156 "ADD R2.x, -R0.w, c[].z;\n" 1157 "MAD R3.xyz, R3, c[].x, R4;\n" 1171 1158 "MAD R3.xyz, R1, R2.x, R3;\n" 1172 1159 "MAD R0.xyz, R1, R2.x, R0;\n" 1173 "MUL R2.xyz, R1, c[ 7].x;\n"1160 "MUL R2.xyz, R1, c[].x;\n" 1174 1161 "ADD R0.xyz, R0, -R3;\n" 1175 1162 "SGE R2.xyz, R2, R1.w;\n" … … 1177 1164 "ADD R0.z, R0.w, R1.w;\n" 1178 1165 "MAD R2.w, -R0, R1, R0.z;\n" 1179 "ADD R0.xy, fragment.position, c[ 0];\n"1180 "MUL R0.xy, R0, c[ 1];\n"1166 "ADD R0.xy, fragment.position, c[];\n" 1167 "MUL R0.xy, R0, c[];\n" 1181 1168 "TEX R0, R0, texture[1], 2D;\n" 1182 1169 "ADD R2, R2, -R1;\n" 1183 "DP4 R0.x, R0, c[ 2];\n"1170 "DP4 R0.x, R0, c[];\n" 1184 1171 "MAD result.color, R0.x, R2, R1;\n" 1185 1172 "END\n" … … 1188 1175 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DARKEN = 1189 1176 "!!ARBfp1.0\n" 1190 "PARAM c[10] = { program.local[0..6],\n" 1191 " { 2, 4, 1 },\n" 1192 " program.local[8..9] };\n" 1193 "TEMP R0;\n" 1194 "TEMP R1;\n" 1195 "TEMP R2;\n" 1196 "TEMP R3;\n" 1197 "MUL R0.xyz, fragment.position.y, c[4];\n" 1198 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 1199 "ADD R0.xyz, R0, c[5];\n" 1177 "PARAM c[10] = { program.local[0..8],\n" 1178 " { 2, 4, 1 } };\n" 1179 "TEMP R0;\n" 1180 "TEMP R1;\n" 1181 "TEMP R2;\n" 1182 "TEMP R3;\n" 1183 "MUL R0.xyz, fragment.position.y, c[3];\n" 1184 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1185 "ADD R0.xyz, R0, c[4];\n" 1200 1186 "RCP R0.z, R0.z;\n" 1201 1187 "MUL R0.xy, R0, R0.z;\n" 1202 1188 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1203 "MUL R0.xy, R0, c[6];\n"1204 1189 "ADD R0.z, R0, R0.w;\n" 1190 1205 1191 "ADD R0.x, R0, R0.y;\n" 1206 "MUL R0.z, c[8].x, -R0;\n" 1207 "MUL R0.y, R0.z, c[7];\n" 1208 "MUL R0.x, R0, c[7];\n" 1209 "MAD R0.y, R0.x, R0.x, -R0;\n" 1210 "MOV R0.z, c[7].x;\n" 1211 "RSQ R0.y, R0.y;\n" 1212 "RCP R0.y, R0.y;\n" 1213 "MUL R0.z, c[8].x, R0;\n" 1214 "MUL R1.xy, fragment.position, c[9];\n" 1215 "TEX R1, R1, texture[0], 2D;\n" 1216 "ADD R0.x, -R0, R0.y;\n" 1217 "RCP R0.z, R0.z;\n" 1192 "MUL R0.z, -R0, c[1].x;\n" 1193 "MUL R0.y, R0.x, c[9].x;\n" 1194 "MUL R0.z, R0, c[9].y;\n" 1195 "MAD R0.x, R0.y, R0.y, -R0.z;\n" 1196 "RSQ R0.z, R0.x;\n" 1197 "MOV R0.x, c[9];\n" 1198 "MUL R0.x, R0, c[1];\n" 1199 "RCP R0.z, R0.z;\n" 1200 "ADD R0.z, -R0.y, R0;\n" 1201 "RCP R0.w, R0.x;\n" 1202 "MUL R1.x, R0.z, R0.w;\n" 1203 "MUL R0.xy, fragment.position, c[6];\n" 1204 "TEX R0, R0, texture[0], 2D;\n" 1205 "TEX R1, R1, texture[2], 1D;\n" 1206 "MUL R3.xyz, R1.w, R0;\n" 1207 "MUL R2.xyz, R1, R0.w;\n" 1208 "MIN R2.xyz, R2, R3;\n" 1209 "ADD R2.w, -R0, c[9].z;\n" 1210 "MAD R1.xyz, R1, R2.w, R2;\n" 1211 "ADD R2.x, -R1.w, c[9].z;\n" 1212 "MAD R2.xyz, R0, R2.x, R1;\n" 1213 "ADD R1.z, R1.w, R0.w;\n" 1214 "MAD R2.w, -R1, R0, R1.z;\n" 1215 "ADD R1.xy, fragment.position, c[7];\n" 1216 "MUL R1.xy, R1, c[5];\n" 1217 "TEX R1, R1, texture[1], 2D;\n" 1218 "ADD R2, R2, -R0;\n" 1219 "DP4 R1.x, R1, c[8];\n" 1220 "MAD result.color, R1.x, R2, R0;\n" 1221 "END\n" 1222 ; 1223 1224 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_LIGHTEN = 1225 "!!ARBfp1.0\n" 1226 "PARAM c[10] = { program.local[0..8],\n" 1227 " { 2, 4, 1 } };\n" 1228 "TEMP R0;\n" 1229 "TEMP R1;\n" 1230 "TEMP R2;\n" 1231 "TEMP R3;\n" 1232 "MUL R0.xyz, fragment.position.y, c[3];\n" 1233 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1234 "ADD R0.xyz, R0, c[4];\n" 1235 "RCP R0.z, R0.z;\n" 1236 "MUL R0.xy, R0, R0.z;\n" 1237 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1238 "ADD R0.z, R0, R0.w;\n" 1239 "MUL R0.xy, R0, c[0];\n" 1240 "ADD R0.x, R0, R0.y;\n" 1241 "MUL R0.z, -R0, c[1].x;\n" 1242 "MUL R0.y, R0.x, c[9].x;\n" 1243 "MUL R0.z, R0, c[9].y;\n" 1244 "MAD R0.x, R0.y, R0.y, -R0.z;\n" 1245 "RSQ R0.z, R0.x;\n" 1246 "MOV R0.x, c[9];\n" 1247 "MUL R0.x, R0, c[1];\n" 1248 "RCP R0.z, R0.z;\n" 1249 "ADD R0.z, -R0.y, R0;\n" 1250 "RCP R0.w, R0.x;\n" 1251 "MUL R1.x, R0.z, R0.w;\n" 1252 "MUL R0.xy, fragment.position, c[6];\n" 1253 "TEX R0, R0, texture[0], 2D;\n" 1254 "TEX R1, R1, texture[2], 1D;\n" 1255 "MUL R3.xyz, R1.w, R0;\n" 1256 "MUL R2.xyz, R1, R0.w;\n" 1257 "MAX R2.xyz, R2, R3;\n" 1258 "ADD R2.w, -R0, c[9].z;\n" 1259 "MAD R1.xyz, R1, R2.w, R2;\n" 1260 "ADD R2.x, -R1.w, c[9].z;\n" 1261 "MAD R2.xyz, R0, R2.x, R1;\n" 1262 "ADD R1.z, R1.w, R0.w;\n" 1263 "MAD R2.w, -R1, R0, R1.z;\n" 1264 "ADD R1.xy, fragment.position, c[7];\n" 1265 "MUL R1.xy, R1, c[5];\n" 1266 "TEX R1, R1, texture[1], 2D;\n" 1267 "ADD R2, R2, -R0;\n" 1268 "DP4 R1.x, R1, c[8];\n" 1269 "MAD result.color, R1.x, R2, R0;\n" 1270 "END\n" 1271 ; 1272 1273 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORDODGE = 1274 "!!ARBfp1.0\n" 1275 "PARAM c[10] = { program.local[0..8],\n" 1276 " { 2, 4, 1, 1e-006 } };\n" 1277 "TEMP R0;\n" 1278 "TEMP R1;\n" 1279 "TEMP R2;\n" 1280 "TEMP R3;\n" 1281 "TEMP R4;\n" 1282 "MUL R0.xyz, fragment.position.y, c[3];\n" 1283 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1284 "ADD R0.xyz, R0, c[4];\n" 1285 "RCP R0.z, R0.z;\n" 1286 "MUL R0.xy, R0, R0.z;\n" 1287 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1288 "ADD R0.z, R0, R0.w;\n" 1289 "MUL R0.xy, R0, c[0];\n" 1290 "ADD R0.x, R0, R0.y;\n" 1291 "MUL R0.y, R0.x, c[9].x;\n" 1292 "MOV R0.x, c[9];\n" 1293 "MUL R0.z, -R0, c[1].x;\n" 1294 "MUL R0.z, R0, c[9].y;\n" 1295 "MAD R0.z, R0.y, R0.y, -R0;\n" 1296 "MUL R0.w, R0.x, c[1].x;\n" 1297 "RSQ R0.z, R0.z;\n" 1298 "RCP R0.x, R0.z;\n" 1299 "RCP R0.z, R0.w;\n" 1300 "ADD R0.x, -R0.y, R0;\n" 1218 1301 "MUL R0.x, R0, R0.z;\n" 1219 1302 "TEX R0, R0, texture[2], 1D;\n" 1220 "MUL R3.xyz, R1, R0.w;\n" 1221 "MUL R2.xyz, R0, R1.w;\n" 1222 "MIN R2.xyz, R2, R3;\n" 1223 "ADD R2.w, -R1, c[7].z;\n" 1224 "MAD R0.xyz, R0, R2.w, R2;\n" 1225 "ADD R2.x, -R0.w, c[7].z;\n" 1226 "MAD R2.xyz, R1, R2.x, R0;\n" 1227 "ADD R0.z, R0.w, R1.w;\n" 1228 "MAD R2.w, -R0, R1, R0.z;\n" 1229 "ADD R0.xy, fragment.position, c[0];\n" 1230 "MUL R0.xy, R0, c[1];\n" 1231 "TEX R0, R0, texture[1], 2D;\n" 1232 "ADD R2, R2, -R1;\n" 1233 "DP4 R0.x, R0, c[2];\n" 1234 "MAD result.color, R0.x, R2, R1;\n" 1235 "END\n" 1236 ; 1237 1238 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_LIGHTEN = 1239 "!!ARBfp1.0\n" 1240 "PARAM c[10] = { program.local[0..6],\n" 1241 " { 2, 4, 1 },\n" 1242 " program.local[8..9] };\n" 1243 "TEMP R0;\n" 1244 "TEMP R1;\n" 1245 "TEMP R2;\n" 1246 "TEMP R3;\n" 1247 "MUL R0.xyz, fragment.position.y, c[4];\n" 1248 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 1249 "ADD R0.xyz, R0, c[5];\n" 1250 "RCP R0.z, R0.z;\n" 1251 "MUL R0.xy, R0, R0.z;\n" 1252 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1253 "MUL R0.xy, R0, c[6];\n" 1254 "ADD R0.z, R0, R0.w;\n" 1255 "ADD R0.x, R0, R0.y;\n" 1256 "MUL R0.z, c[8].x, -R0;\n" 1257 "MUL R0.y, R0.z, c[7];\n" 1258 "MUL R0.x, R0, c[7];\n" 1259 "MAD R0.y, R0.x, R0.x, -R0;\n" 1260 "MOV R0.z, c[7].x;\n" 1261 "RSQ R0.y, R0.y;\n" 1262 "RCP R0.y, R0.y;\n" 1263 "MUL R0.z, c[8].x, R0;\n" 1264 "MUL R1.xy, fragment.position, c[9];\n" 1303 "MAX R1.x, R0.w, c[9].w;\n" 1304 "RCP R1.x, R1.x;\n" 1305 "MAD R1.xyz, -R0, R1.x, c[9].z;\n" 1306 "MAX R2.xyz, R1, c[9].w;\n" 1307 "MUL R1.xy, fragment.position, c[6];\n" 1265 1308 "TEX R1, R1, texture[0], 2D;\n" 1266 "ADD R0.x, -R0, R0.y;\n" 1267 "RCP R0.z, R0.z;\n" 1268 "MUL R0.x, R0, R0.z;\n" 1269 "TEX R0, R0, texture[2], 1D;\n" 1270 "MUL R3.xyz, R1, R0.w;\n" 1271 "MUL R2.xyz, R0, R1.w;\n" 1272 "MAX R2.xyz, R2, R3;\n" 1273 "ADD R2.w, -R1, c[7].z;\n" 1274 "MAD R0.xyz, R0, R2.w, R2;\n" 1275 "ADD R2.x, -R0.w, c[7].z;\n" 1276 "MAD R2.xyz, R1, R2.x, R0;\n" 1277 "ADD R0.z, R0.w, R1.w;\n" 1278 "MAD R2.w, -R0, R1, R0.z;\n" 1279 "ADD R0.xy, fragment.position, c[0];\n" 1280 "MUL R0.xy, R0, c[1];\n" 1281 "TEX R0, R0, texture[1], 2D;\n" 1282 "ADD R2, R2, -R1;\n" 1283 "DP4 R0.x, R0, c[2];\n" 1284 "MAD result.color, R0.x, R2, R1;\n" 1285 "END\n" 1286 ; 1287 1288 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORDODGE = 1289 "!!ARBfp1.0\n" 1290 "PARAM c[10] = { program.local[0..6],\n" 1291 " { 2, 4, 1, 1e-06 },\n" 1292 " program.local[8..9] };\n" 1293 "TEMP R0;\n" 1294 "TEMP R1;\n" 1295 "TEMP R2;\n" 1296 "TEMP R3;\n" 1297 "TEMP R4;\n" 1298 "MUL R0.xyz, fragment.position.y, c[4];\n" 1299 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 1300 "ADD R0.xyz, R0, c[5];\n" 1301 "RCP R0.z, R0.z;\n" 1302 "MUL R0.xy, R0, R0.z;\n" 1303 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1304 "MUL R0.xy, R0, c[6];\n" 1305 "ADD R0.z, R0, R0.w;\n" 1306 "ADD R0.x, R0, R0.y;\n" 1307 "MUL R0.z, c[8].x, -R0;\n" 1308 "MUL R0.y, R0.z, c[7];\n" 1309 "MUL R0.x, R0, c[7];\n" 1310 "MAD R0.y, R0.x, R0.x, -R0;\n" 1311 "MOV R0.z, c[7].x;\n" 1312 "RSQ R0.y, R0.y;\n" 1313 "RCP R0.y, R0.y;\n" 1314 "MUL R0.z, c[8].x, R0;\n" 1315 "ADD R0.x, -R0, R0.y;\n" 1316 "RCP R0.z, R0.z;\n" 1317 "MUL R0.x, R0, R0.z;\n" 1318 "TEX R0, R0, texture[2], 1D;\n" 1319 "MAX R1.x, R0.w, c[7].w;\n" 1320 "RCP R1.x, R1.x;\n" 1321 "MAD R1.xyz, -R0, R1.x, c[7].z;\n" 1322 "MAX R2.xyz, R1, c[7].w;\n" 1323 "MUL R1.xy, fragment.position, c[9];\n" 1324 "TEX R1, R1, texture[0], 2D;\n" 1325 "ADD R2.w, -R0, c[7].z;\n" 1309 "ADD R2.w, -R0, c[9].z;\n" 1326 1310 "MUL R3.xyz, R1, R2.w;\n" 1327 "ADD R2.w, -R1, c[ 7].z;\n"1311 "ADD R2.w, -R1, c[].z;\n" 1328 1312 "MAD R4.xyz, R0, R2.w, R3;\n" 1329 "MUL R3.xyz, R 1, R0.w;\n"1313 "MUL R3.xyz, R;\n" 1330 1314 "MUL R2.w, R0, R1;\n" 1331 1315 "MAD R0.xyz, R0, R1.w, R3;\n" … … 1340 1324 "ADD R0.z, R0.w, R1.w;\n" 1341 1325 "MAD R2.w, -R0, R1, R0.z;\n" 1342 "ADD R0.xy, fragment.position, c[ 0];\n"1343 "MUL R0.xy, R0, c[ 1];\n"1326 "ADD R0.xy, fragment.position, c[];\n" 1327 "MUL R0.xy, R0, c[];\n" 1344 1328 "TEX R0, R0, texture[1], 2D;\n" 1345 1329 "ADD R2, R2, -R1;\n" 1346 "DP4 R0.x, R0, c[ 2];\n"1330 "DP4 R0.x, R0, c[];\n" 1347 1331 "MAD result.color, R0.x, R2, R1;\n" 1348 1332 "END\n" … … 1351 1335 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORBURN = 1352 1336 "!!ARBfp1.0\n" 1353 "PARAM c[10] = { program.local[0..6],\n" 1354 " { 2, 4, 1, 9.9999997e-06 },\n" 1355 " program.local[8..9] };\n" 1337 "PARAM c[10] = { program.local[0..8],\n" 1338 " { 2, 4, 1, 9.9999997e-006 } };\n" 1356 1339 "TEMP R0;\n" 1357 1340 "TEMP R1;\n" … … 1360 1343 "TEMP R4;\n" 1361 1344 "TEMP R5;\n" 1362 "MUL R0.xyz, fragment.position.y, c[ 4];\n"1363 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"1364 "ADD R0.xyz, R0, c[ 5];\n"1345 "MUL R0.xyz, fragment.position.y, c[];\n" 1346 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 1347 "ADD R0.xyz, R0, c[];\n" 1365 1348 "RCP R0.z, R0.z;\n" 1366 1349 "MUL R0.xy, R0, R0.z;\n" 1367 1350 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1368 "MUL R0.xy, R0, c[6];\n"1369 1351 "ADD R0.z, R0, R0.w;\n" 1352 1370 1353 "ADD R0.x, R0, R0.y;\n" 1371 "MUL R0.z, c[8].x, -R0;\n"1372 "MUL R0.y, R0. z, c[7];\n"1373 "MUL R0. x, R0, c[7];\n"1374 "MAD R0. y, R0.x, R0.x, -R0;\n"1375 " MOV R0.z, c[7].x;\n"1376 " RSQ R0.y, R0.y;\n"1377 " RCP R0.y, R0.y;\n"1378 " MUL R0.z, c[8].x, R0;\n"1379 " MUL R1.xy, fragment.position, c[9];\n"1380 " TEX R1, R1, texture[0], 2D;\n"1381 " ADD R0.x, -R0, R0.y;\n"1382 " RCP R0.z, R0.z;\n"1383 "MUL R0.x, R0, R0. z;\n"1354 "MUL R0.z, ;\n" 1355 "MUL R0.y, R0.;\n" 1356 "MUL R0.;\n" 1357 "MAD R0.;\n" 1358 ".x;\n" 1359 ";\n" 1360 ";\n" 1361 ";\n" 1362 ";\n" 1363 ";\n" 1364 "y;\n" 1365 ";\n" 1366 "MUL R0.x, R0, R0.;\n" 1384 1367 "TEX R0, R0, texture[2], 1D;\n" 1385 "MUL R2.xyz, R 1, R0.w;\n"1368 "MUL R2.xyz, R;\n" 1386 1369 "MAD R3.xyz, R0, R1.w, R2;\n" 1387 1370 "MAD R2.xyz, -R0.w, R1.w, R3;\n" 1388 1371 "MUL R4.xyz, R0.w, R2;\n" 1389 "MAX R2.xyz, R0, c[ 7].w;\n"1390 "ADD R2.w, -R1, c[ 7].z;\n"1372 "MAX R2.xyz, R0, c[].w;\n" 1373 "ADD R2.w, -R1, c[].z;\n" 1391 1374 "MUL R5.xyz, R0, R2.w;\n" 1392 "ADD R3.w, -R0, c[ 7].z;\n"1375 "ADD R3.w, -R0, c[].z;\n" 1393 1376 "RCP R2.x, R2.x;\n" 1394 1377 "RCP R2.y, R2.y;\n" … … 1404 1387 "ADD R0.z, R0.w, R1.w;\n" 1405 1388 "MAD R2.w, -R0, R1, R0.z;\n" 1406 "ADD R0.xy, fragment.position, c[ 0];\n"1407 "MUL R0.xy, R0, c[ 1];\n"1389 "ADD R0.xy, fragment.position, c[];\n" 1390 "MUL R0.xy, R0, c[];\n" 1408 1391 "TEX R0, R0, texture[1], 2D;\n" 1409 1392 "ADD R2, R2, -R1;\n" 1410 "DP4 R0.x, R0, c[ 2];\n"1393 "DP4 R0.x, R0, c[];\n" 1411 1394 "MAD result.color, R0.x, R2, R1;\n" 1412 1395 "END\n" … … 1415 1398 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_HARDLIGHT = 1416 1399 "!!ARBfp1.0\n" 1417 "PARAM c[10] = { program.local[0..6],\n" 1418 " { 2, 4, 1 },\n" 1419 " program.local[8..9] };\n" 1400 "PARAM c[10] = { program.local[0..8],\n" 1401 " { 2, 4, 1 } };\n" 1420 1402 "TEMP R0;\n" 1421 1403 "TEMP R1;\n" … … 1423 1405 "TEMP R3;\n" 1424 1406 "TEMP R4;\n" 1425 "MUL R0.xyz, fragment.position.y, c[ 4];\n"1426 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"1427 "ADD R0.xyz, R0, c[ 5];\n"1407 "MUL R0.xyz, fragment.position.y, c[];\n" 1408 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 1409 "ADD R0.xyz, R0, c[];\n" 1428 1410 "RCP R0.z, R0.z;\n" 1429 1411 "MUL R0.xy, R0, R0.z;\n" 1430 1412 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1431 "MUL R0.xy, R0, c[6];\n"1432 1413 "ADD R0.z, R0, R0.w;\n" 1414 1433 1415 "ADD R0.x, R0, R0.y;\n" 1434 "MUL R0.z, c[8].x, -R0;\n" 1435 "MUL R0.y, R0.z, c[7];\n" 1436 "MUL R0.x, R0, c[7];\n" 1437 "MAD R0.y, R0.x, R0.x, -R0;\n" 1438 "MOV R0.z, c[7].x;\n" 1439 "RSQ R0.y, R0.y;\n" 1440 "RCP R0.y, R0.y;\n" 1441 "MUL R0.z, c[8].x, R0;\n" 1442 "MUL R1.xy, fragment.position, c[9];\n" 1416 "MUL R0.y, R0.x, c[9].x;\n" 1417 "MOV R0.x, c[9];\n" 1418 "MUL R0.z, -R0, c[1].x;\n" 1419 "MUL R0.z, R0, c[9].y;\n" 1420 "MAD R0.z, R0.y, R0.y, -R0;\n" 1421 "MUL R1.xy, fragment.position, c[6];\n" 1443 1422 "TEX R1, R1, texture[0], 2D;\n" 1444 "ADD R0.x, -R0, R0.y;\n" 1445 "RCP R0.z, R0.z;\n" 1423 "MUL R0.w, R0.x, c[1].x;\n" 1424 "RSQ R0.z, R0.z;\n" 1425 "RCP R0.x, R0.z;\n" 1426 "ADD R2.w, -R1, c[9].z;\n" 1427 "RCP R0.z, R0.w;\n" 1428 "ADD R0.x, -R0.y, R0;\n" 1446 1429 "MUL R0.x, R0, R0.z;\n" 1447 1430 "TEX R0, R0, texture[2], 1D;\n" 1448 "ADD R2.w, -R1, c[7].z;\n"1449 1431 "ADD R3.xyz, R0.w, -R0;\n" 1450 1432 "ADD R2.xyz, R1.w, -R1;\n" 1451 1433 "MUL R2.xyz, R2, R3;\n" 1452 "MUL R2.xyz, R2, c[ 7].x;\n"1434 "MUL R2.xyz, R2, c[].x;\n" 1453 1435 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 1454 1436 "MUL R4.xyz, R0, R2.w;\n" 1455 1437 "MAD R2.xyz, R0, R2.w, R2;\n" 1456 1438 "MUL R3.xyz, R0, R1;\n" 1457 "ADD R2.w, -R0, c[ 7].z;\n"1458 "MAD R3.xyz, R3, c[ 7].x, R4;\n"1459 "MUL R0.xyz, R0, c[ 7].x;\n"1439 "ADD R2.w, -R0, c[].z;\n" 1440 "MAD R3.xyz, R3, c[].x, R4;\n" 1441 "MUL R0.xyz, R0, c[].x;\n" 1460 1442 "SGE R0.xyz, R0, R0.w;\n" 1461 1443 "MAD R3.xyz, R1, R2.w, R3;\n" … … 1465 1447 "ADD R0.z, R0.w, R1.w;\n" 1466 1448 "MAD R2.w, -R0, R1, R0.z;\n" 1467 "ADD R0.xy, fragment.position, c[ 0];\n"1468 "MUL R0.xy, R0, c[ 1];\n"1449 "ADD R0.xy, fragment.position, c[];\n" 1450 "MUL R0.xy, R0, c[];\n" 1469 1451 "TEX R0, R0, texture[1], 2D;\n" 1470 1452 "ADD R2, R2, -R1;\n" 1471 "DP4 R0.x, R0, c[ 2];\n"1453 "DP4 R0.x, R0, c[];\n" 1472 1454 "MAD result.color, R0.x, R2, R1;\n" 1473 1455 "END\n" … … 1476 1458 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SOFTLIGHT = 1477 1459 "!!ARBfp1.0\n" 1478 "PARAM c[11] = { program.local[0..6],\n" 1479 " { 2, 4, 1, 9.9999997e-06 },\n" 1480 " program.local[8..9],\n" 1481 " { 8, 3 } };\n" 1460 "PARAM c[11] = { program.local[0..8],\n" 1461 " { 2, 4, 1, 9.9999997e-006 },\n" 1462 " { 16, 12, 3 } };\n" 1482 1463 "TEMP R0;\n" 1483 1464 "TEMP R1;\n" … … 1487 1468 "TEMP R5;\n" 1488 1469 "TEMP R6;\n" 1489 "MUL R0.xyz, fragment.position.y, c[ 4];\n"1490 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"1491 "ADD R0.xyz, R0, c[ 5];\n"1470 "MUL R0.xyz, fragment.position.y, c[];\n" 1471 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 1472 "ADD R0.xyz, R0, c[];\n" 1492 1473 "RCP R0.z, R0.z;\n" 1493 1474 "MUL R0.xy, R0, R0.z;\n" 1494 1475 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1495 "MUL R0.xy, R0, c[6];\n"1496 1476 "ADD R0.z, R0, R0.w;\n" 1477 1497 1478 "ADD R0.x, R0, R0.y;\n" 1498 "MUL R0.z, c[8].x, -R0;\n" 1499 "MUL R0.y, R0.z, c[7];\n" 1500 "MUL R0.zw, fragment.position.xyxy, c[9].xyxy;\n" 1479 "MUL R0.z, -R0, c[1].x;\n" 1480 "MUL R0.y, R0.z, c[9];\n" 1481 "MUL R0.x, R0, c[9];\n" 1482 "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" 1501 1483 "TEX R1, R0.zwzw, texture[0], 2D;\n" 1502 "MUL R0.x, R0, c[7];\n"1503 1484 "MAD R0.y, R0.x, R0.x, -R0;\n" 1504 "MAX R0.z, R1.w, c[7].w;\n"1505 "RCP R2.w, R0.z;\n"1506 "MUL R2.xyz, R1, R2.w;\n"1507 "MUL R6.xyz, -R2, c[10].x;\n"1508 "MAD R3.xyz, -R1, R2.w, c[7].z;\n"1509 1485 "RSQ R0.y, R0.y;\n" 1510 1486 "RCP R0.y, R0.y;\n" 1511 "ADD R0.x, -R0, R0.y;\n" 1512 "MOV R0.y, c[7].x;\n" 1513 "MUL R0.y, c[8].x, R0;\n" 1514 "RCP R0.y, R0.y;\n" 1515 "MUL R0.x, R0, R0.y;\n" 1487 "ADD R0.y, -R0.x, R0;\n" 1488 "MOV R0.x, c[9];\n" 1489 "MUL R0.x, R0, c[1];\n" 1490 "MAX R0.z, R1.w, c[9].w;\n" 1491 "RCP R0.z, R0.z;\n" 1492 "MUL R3.xyz, R1, R0.z;\n" 1493 "MAD R4.xyz, R3, c[10].x, -c[10].y;\n" 1494 "RCP R0.x, R0.x;\n" 1495 "MUL R0.x, R0.y, R0;\n" 1516 1496 "TEX R0, R0, texture[2], 1D;\n" 1517 "MAD R 4.xyz, R0, c[7].x, -R0.w;\n"1518 "M UL R5.xyz, R3, R4;\n"1519 "M AD R3.xyz, -R3, R4, R0.w;\n"1520 " ADD R6.xyz, R6, c[10].y;\n"1521 "RSQ R2. x, R2.x;\n"1522 "R SQ R2.z, R2.z;\n"1523 "RSQ R2. y, R2.y;\n"1524 " MAD R5.xyz, -R5, R6, R0.w;\n"1525 " MUL R3.xyz, R1, R3;\n"1526 " ADD R2.w, -R1, c[7].z;\n"1527 " RCP R2.x, R2.x;\n"1528 " RCP R2.z, R2.z;\n"1529 " RCP R2.y, R2.y;\n"1530 " MAD R2.xyz, R2, R1.w, -R1;\n"1531 "M UL R6.xyz, R2, R4;\n"1532 "MUL R 2.xyz, R1, R5;\n"1533 "MAD R 6.xyz, R1, R0.w, R6;\n"1534 "M UL R4.xyz, R0, c[7].x;\n"1535 " MUL R5.xyz, R1, c[10].x;\n"1536 " ADD R6.xyz, R6, -R2;\n"1537 "SGE R 5.xyz, R5, R1.w;\n"1538 "M UL R5.xyz, R5, R6;\n"1539 " ADD R2.xyz, R2, R5;\n"1540 "SGE R 4.xyz, R4, R0.w;\n"1541 " ADD R2.xyz, R2, -R3;\n"1542 " MUL R2.xyz, R4, R2;\n"1543 " ADD R2.xyz, R3, R2;\n"1544 "MAD R 0.xyz, R0, R2.w, R2;\n"1545 "ADD R 2.x, -R0.w, c[7].z;\n"1546 "MAD R2.xyz, R1, R 2.x, R0;\n"1497 "MAD R].x, -R0.w;\n" 1498 "M;\n" 1499 "M;\n" 1500 ";\n" 1501 "RSQ R2..x;\n" 1502 "R;\n" 1503 "RSQ R2..y;\n" 1504 ";\n" 1505 ";\n" 1506 ";\n" 1507 ";\n" 1508 ";\n" 1509 ";\n" 1510 ";\n" 1511 "M;\n" 1512 "MUL R;\n" 1513 "MAD R, R6;\n" 1514 "M;\n" 1515 ";\n" 1516 ";\n" 1517 "SGE R, R1.w;\n" 1518 "M;\n" 1519 ";\n" 1520 "SGE R, R0.w;\n" 1521 ";\n" 1522 ";\n" 1523 ", R2;\n" 1524 "MAD R.xyz, R0, R2.w, R2;\n" 1525 "ADD R].z;\n" 1526 "MAD R2.xyz, R1, R;\n" 1547 1527 "ADD R0.z, R0.w, R1.w;\n" 1548 1528 "MAD R2.w, -R0, R1, R0.z;\n" 1549 "ADD R0.xy, fragment.position, c[ 0];\n"1550 "MUL R0.xy, R0, c[ 1];\n"1529 "ADD R0.xy, fragment.position, c[];\n" 1530 "MUL R0.xy, R0, c[];\n" 1551 1531 "TEX R0, R0, texture[1], 2D;\n" 1552 1532 "ADD R2, R2, -R1;\n" 1553 "DP4 R0.x, R0, c[ 2];\n"1533 "DP4 R0.x, R0, c[];\n" 1554 1534 "MAD result.color, R0.x, R2, R1;\n" 1555 1535 "END\n" … … 1558 1538 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DIFFERENCE = 1559 1539 "!!ARBfp1.0\n" 1560 "PARAM c[10] = { program.local[0..6],\n" 1561 " { 2, 4 },\n" 1562 " program.local[8..9] };\n" 1563 "TEMP R0;\n" 1564 "TEMP R1;\n" 1565 "TEMP R2;\n" 1566 "TEMP R3;\n" 1567 "MUL R0.xyz, fragment.position.y, c[4];\n" 1568 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 1569 "ADD R0.xyz, R0, c[5];\n" 1540 "PARAM c[10] = { program.local[0..8],\n" 1541 " { 2, 4 } };\n" 1542 "TEMP R0;\n" 1543 "TEMP R1;\n" 1544 "TEMP R2;\n" 1545 "TEMP R3;\n" 1546 "MUL R0.xyz, fragment.position.y, c[3];\n" 1547 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1548 "ADD R0.xyz, R0, c[4];\n" 1570 1549 "RCP R0.z, R0.z;\n" 1571 1550 "MUL R0.xy, R0, R0.z;\n" 1572 1551 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1573 1552 "ADD R0.z, R0, R0.w;\n" 1574 "MUL R0.xy, R0, c[ 6];\n"1553 "MUL R0.xy, R0, c[];\n" 1575 1554 "ADD R0.x, R0, R0.y;\n" 1576 "MUL R0.z, c[8].x, -R0;\n"1577 "MUL R0.y, R0. z, c[7];\n"1578 "MUL R0. x, R0, c[7];\n"1579 "MAD R0. y, R0.x, R0.x, -R0;\n"1580 "RSQ R0.z, R0. y;\n"1581 " RCP R0.z, R0.z;\n"1582 " ADD R0.x, -R0, R0.z;\n"1583 " MUL R0.zw, fragment.position.xyxy, c[9].xyxy;\n"1584 " MOV R0.y, c[7].x;\n"1585 " MUL R0.y, c[8].x, R0;\n"1586 " RCP R0.y, R0.y;\n"1587 " TEX R1, R0.zwzw, texture[0], 2D;\n"1588 " MUL R0.x, R0, R0.y;\n"1589 "TEX R 0, R0, texture[2], 1D;\n"1590 "ADD R 3.xyz, R0, R1;\n"1591 "MUL R 2.xyz, R1, R0.w;\n"1592 "MUL R 0.xyz, R0, R1.w;\n"1593 "MIN R 0.xyz, R0, R2;\n"1594 "MAD R2.xyz, -R 0, c[7].x, R3;\n"1595 "ADD R 0.z, R0.w, R1.w;\n"1596 "MAD R2.w, -R 0, R1, R0.z;\n"1597 "ADD R 0.xy, fragment.position, c[0];\n"1598 "MUL R 0.xy, R0, c[1];\n"1599 "TEX R 0, R0, texture[1], 2D;\n"1600 "ADD R2, R2, -R 1;\n"1601 "DP4 R 0.x, R0, c[2];\n"1602 "MAD result.color, R 0.x, R2, R1;\n"1555 "MUL R0.z, ;\n" 1556 "MUL R0.y, R0.;\n" 1557 "MUL R0.;\n" 1558 "MAD R0.;\n" 1559 "RSQ R0.z, R0.;\n" 1560 ";\n" 1561 ";\n" 1562 ";\n" 1563 ";\n" 1564 ";\n" 1565 ";\n" 1566 ";\n" 1567 ";\n" 1568 "TEX R, texture[2], 1D;\n" 1569 "ADD R;\n" 1570 "MUL R;\n" 1571 "MUL R.w;\n" 1572 "MIN R;\n" 1573 "MAD R2.xyz, -R;\n" 1574 "ADD R.w;\n" 1575 "MAD R2.w, -R.z;\n" 1576 "ADD R];\n" 1577 "MUL R];\n" 1578 "TEX R, texture[1], 2D;\n" 1579 "ADD R2, R2, -R;\n" 1580 "DP4 R];\n" 1581 "MAD result.color, R;\n" 1603 1582 "END\n" 1604 1583 ; … … 1606 1585 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_EXCLUSION = 1607 1586 "!!ARBfp1.0\n" 1608 "PARAM c[10] = { program.local[0..6],\n" 1609 " { 2, 4, 1 },\n" 1610 " program.local[8..9] };\n" 1611 "TEMP R0;\n" 1612 "TEMP R1;\n" 1613 "TEMP R2;\n" 1614 "TEMP R3;\n" 1615 "MUL R0.xyz, fragment.position.y, c[4];\n" 1616 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 1617 "ADD R0.xyz, R0, c[5];\n" 1618 "RCP R0.z, R0.z;\n" 1619 "MUL R0.xy, R0, R0.z;\n" 1620 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1621 "MUL R0.xy, R0, c[6];\n" 1622 "ADD R0.z, R0, R0.w;\n" 1623 "ADD R0.x, R0, R0.y;\n" 1624 "MUL R0.z, c[8].x, -R0;\n" 1625 "MUL R0.y, R0.z, c[7];\n" 1626 "MUL R0.x, R0, c[7];\n" 1627 "MAD R0.y, R0.x, R0.x, -R0;\n" 1628 "MOV R0.z, c[7].x;\n" 1629 "RSQ R0.y, R0.y;\n" 1630 "RCP R0.y, R0.y;\n" 1631 "MUL R0.z, c[8].x, R0;\n" 1632 "MUL R1.xy, fragment.position, c[9];\n" 1633 "TEX R1, R1, texture[0], 2D;\n" 1634 "ADD R0.x, -R0, R0.y;\n" 1635 "RCP R0.z, R0.z;\n" 1636 "MUL R0.x, R0, R0.z;\n" 1637 "TEX R0, R0, texture[2], 1D;\n" 1638 "MUL R2.xyz, R1, R0.w;\n" 1639 "MAD R3.xyz, R0, R1.w, R2;\n" 1640 "MUL R2.xyz, R0, R1;\n" 1641 "MAD R2.xyz, -R2, c[7].x, R3;\n" 1642 "ADD R2.w, -R1, c[7].z;\n" 1643 "MAD R0.xyz, R0, R2.w, R2;\n" 1644 "ADD R2.x, -R0.w, c[7].z;\n" 1645 "MAD R2.xyz, R1, R2.x, R0;\n" 1646 "ADD R0.z, R0.w, R1.w;\n" 1647 "MAD R2.w, -R0, R1, R0.z;\n" 1648 "ADD R0.xy, fragment.position, c[0];\n" 1649 "MUL R0.xy, R0, c[1];\n" 1650 "TEX R0, R0, texture[1], 2D;\n" 1651 "ADD R2, R2, -R1;\n" 1652 "DP4 R0.x, R0, c[2];\n" 1653 "MAD result.color, R0.x, R2, R1;\n" 1654 "END\n" 1655 ; 1656 1657 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 1658 "!!ARBfp1.0\n" 1659 "PARAM c[9] = { program.local[0..3],\n" 1660 " { 2, 4, 1 },\n" 1661 " program.local[5..8] };\n" 1662 "TEMP R0;\n" 1663 "TEMP R1;\n" 1664 "TEMP R2;\n" 1665 "TEMP R3;\n" 1666 "MUL R0.xyz, fragment.position.y, c[1];\n" 1667 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 1668 "ADD R0.xyz, R0, c[2];\n" 1587 "PARAM c[10] = { program.local[0..8],\n" 1588 " { 2, 4, 1 } };\n" 1589 "TEMP R0;\n" 1590 "TEMP R1;\n" 1591 "TEMP R2;\n" 1592 "TEMP R3;\n" 1593 "MUL R0.xyz, fragment.position.y, c[3];\n" 1594 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1595 "ADD R0.xyz, R0, c[4];\n" 1669 1596 "RCP R0.z, R0.z;\n" 1670 1597 "MUL R0.xy, R0, R0.z;\n" 1671 1598 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1672 1599 "ADD R0.z, R0, R0.w;\n" 1673 "MUL R0.xy, R0, c[ 3];\n"1600 "MUL R0.xy, R0, c[];\n" 1674 1601 "ADD R0.x, R0, R0.y;\n" 1675 "MUL R0.z, c[5].x, -R0;\n" 1676 "MUL R0.y, R0.z, c[4];\n" 1677 "MUL R0.x, R0, c[4];\n" 1678 "MAD R0.y, R0.x, R0.x, -R0;\n" 1679 "RSQ R0.z, R0.y;\n" 1680 "RCP R0.z, R0.z;\n" 1681 "ADD R0.x, -R0, R0.z;\n" 1682 "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" 1602 "MUL R0.z, -R0, c[1].x;\n" 1603 "MUL R0.y, R0.x, c[9].x;\n" 1604 "MUL R0.z, R0, c[9].y;\n" 1605 "MAD R0.x, R0.y, R0.y, -R0.z;\n" 1606 "RSQ R0.z, R0.x;\n" 1607 "MOV R0.x, c[9];\n" 1608 "MUL R0.x, R0, c[1];\n" 1609 "RCP R0.z, R0.z;\n" 1610 "ADD R0.z, -R0.y, R0;\n" 1611 "RCP R0.w, R0.x;\n" 1612 "MUL R1.x, R0.z, R0.w;\n" 1613 "MUL R0.xy, fragment.position, c[6];\n" 1614 "TEX R0, R0, texture[0], 2D;\n" 1615 "TEX R1, R1, texture[2], 1D;\n" 1616 "MUL R2.xyz, R1.w, R0;\n" 1617 "MAD R3.xyz, R1, R0.w, R2;\n" 1618 "MUL R2.xyz, R1, R0;\n" 1619 "MAD R2.xyz, -R2, c[9].x, R3;\n" 1620 "ADD R2.w, -R0, c[9].z;\n" 1621 "MAD R1.xyz, R1, R2.w, R2;\n" 1622 "ADD R2.x, -R1.w, c[9].z;\n" 1623 "MAD R2.xyz, R0, R2.x, R1;\n" 1624 "ADD R1.z, R1.w, R0.w;\n" 1625 "MAD R2.w, -R1, R0, R1.z;\n" 1626 "ADD R1.xy, fragment.position, c[7];\n" 1627 "MUL R1.xy, R1, c[5];\n" 1628 "TEX R1, R1, texture[1], 2D;\n" 1629 "ADD R2, R2, -R0;\n" 1630 "DP4 R1.x, R1, c[8];\n" 1631 "MAD result.color, R1.x, R2, R0;\n" 1632 "END\n" 1633 ; 1634 1635 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 1636 "!!ARBfp1.0\n" 1637 "PARAM c[9] = { program.local[0..7],\n" 1638 " { 2, 4, 1 } };\n" 1639 "TEMP R0;\n" 1640 "TEMP R1;\n" 1641 "TEMP R2;\n" 1642 "TEMP R3;\n" 1643 "MUL R0.xyz, fragment.position.y, c[3];\n" 1644 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1645 "ADD R0.xyz, R0, c[4];\n" 1646 "RCP R0.z, R0.z;\n" 1647 "MUL R0.xy, R0, R0.z;\n" 1648 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1649 "ADD R0.z, R0, R0.w;\n" 1650 "MUL R0.xy, R0, c[0];\n" 1651 "ADD R0.x, R0, R0.y;\n" 1652 "MUL R0.z, -R0, c[1].x;\n" 1653 "MUL R0.y, R0.x, c[8].x;\n" 1654 "MUL R0.z, R0, c[8].y;\n" 1655 "MAD R0.x, R0.y, R0.y, -R0.z;\n" 1656 "RSQ R0.x, R0.x;\n" 1657 "RCP R0.z, R0.x;\n" 1658 "ADD R0.y, -R0, R0.z;\n" 1659 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 1683 1660 "TEX R1, R0.zwzw, texture[0], 2D;\n" 1684 "MUL R2.xyz, R1, c[ 8].y;\n"1685 "MOV R0. y, c[4].x;\n"1686 "MUL R0. y, c[5].x, R0;\n"1687 "RCP R0. y, R0.y;\n"1688 "MUL R0.x, R0 , R0.y;\n"1661 "MUL R2.xyz, R1, c[].y;\n" 1662 "MOV R0.;\n" 1663 "MUL R0.;\n" 1664 "RCP R0.;\n" 1665 "MUL R0.x, R0;\n" 1689 1666 "TEX R0, R0, texture[1], 1D;\n" 1690 "MUL R3.xyz, R 2, R0.w;\n"1691 "MUL R2.xyz, R0, c[ 8].x;\n"1692 "MAD R2.xyz, R 2, R1.w, R3;\n"1693 "ADD R2.w, -R1, c[ 4].z;\n"1694 "MUL R0.xyz, R0, c[ 7].y;\n"1695 "MAD R0.xyz, R 0, R2.w, R2;\n"1696 "ADD R2.x, -R0.w, c[ 4].z;\n"1697 "MUL R1.xyz, R1, c[ 7].z;\n"1698 "MAD result.color.xyz, R 1, R2.x, R0;\n"1667 "MUL R3.xyz, R;\n" 1668 "MUL R2.xyz, R0, c[].x;\n" 1669 "MAD R2.xyz, R, R3;\n" 1670 "ADD R2.w, -R1, c[].z;\n" 1671 "MUL R0.xyz, R0, c[].y;\n" 1672 "MAD R0.xyz, R, R2;\n" 1673 "ADD R2.x, -R0.w, c[].z;\n" 1674 "MUL R1.xyz, R1, c[].z;\n" 1675 "MAD result.color.xyz, R, R0;\n" 1699 1676 "MUL R0.x, R0.w, R1.w;\n" 1700 1677 "MUL R0.z, R1.w, R2.x;\n" 1701 1678 "MUL R0.y, R0.w, R2.w;\n" 1702 "DP3 result.color.w, R0, c[ 7];\n"1679 "DP3 result.color.w, R0, c[];\n" 1703 1680 "END\n" 1704 1681 ; … … 1706 1683 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_MULTIPLY_NOMASK = 1707 1684 "!!ARBfp1.0\n" 1708 "PARAM c[7] = { program.local[0..3],\n" 1709 " { 2, 4, 1 },\n" 1710 " program.local[5..6] };\n" 1711 "TEMP R0;\n" 1712 "TEMP R1;\n" 1713 "TEMP R2;\n" 1714 "MUL R0.xyz, fragment.position.y, c[1];\n" 1715 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 1716 "ADD R0.xyz, R0, c[2];\n" 1685 "PARAM c[7] = { program.local[0..5],\n" 1686 " { 2, 4, 1 } };\n" 1687 "TEMP R0;\n" 1688 "TEMP R1;\n" 1689 "TEMP R2;\n" 1690 "MUL R0.xyz, fragment.position.y, c[3];\n" 1691 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1692 "ADD R0.xyz, R0, c[4];\n" 1717 1693 "RCP R0.z, R0.z;\n" 1718 1694 "MUL R0.xy, R0, R0.z;\n" 1719 1695 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1720 "MUL R0.xy, R0, c[3];\n"1721 1696 "ADD R0.z, R0, R0.w;\n" 1697 1722 1698 "ADD R0.x, R0, R0.y;\n" 1723 "MUL R0.z, c[5].x, -R0;\n"1724 "MUL R0.y, R0. z, c[4];\n"1725 "MUL R0. x, R0, c[4];\n"1726 "MAD R0. y, R0.x, R0.x, -R0;\n"1727 "RSQ R0. y, R0.y;\n"1728 "RCP R0.z, R0. y;\n"1729 "ADD R0. x, -R0, R0.z;\n"1730 "MUL R0.zw, fragment.position.xyxy, c[ 6].xyxy;\n"1699 "MUL R0.z, ;\n" 1700 "MUL R0.y, R0.;\n" 1701 "MUL R0.;\n" 1702 "MAD R0.;\n" 1703 "RSQ R0.;\n" 1704 "RCP R0.z, R0.;\n" 1705 "ADD R0., -R0, R0.z;\n" 1706 "MUL R0.zw, fragment.position.xyxy, c[].xyxy;\n" 1731 1707 "TEX R1, R0.zwzw, texture[0], 2D;\n" 1732 "MOV R0. y, c[4].x;\n"1733 "MUL R0. y, c[5].x, R0;\n"1734 "RCP R0. y, R0.y;\n"1735 "MUL R0.x, R0 , R0.y;\n"1708 "MOV R0.;\n" 1709 "MUL R0.;\n" 1710 "RCP R0.;\n" 1711 "MUL R0.x, R0;\n" 1736 1712 "TEX R0, R0, texture[1], 1D;\n" 1737 "ADD R2.x, -R1.w, c[ 4].z;\n"1713 "ADD R2.x, -R1.w, c[].z;\n" 1738 1714 "MUL R2.xyz, R0, R2.x;\n" 1739 1715 "MAD R0.xyz, R0, R1, R2;\n" 1740 1716 "ADD R2.x, R0.w, R1.w;\n" 1741 "ADD R2.y, -R0.w, c[ 4].z;\n"1717 "ADD R2.y, -R0.w, c[].z;\n" 1742 1718 "MAD result.color.xyz, R1, R2.y, R0;\n" 1743 1719 "MAD result.color.w, -R0, R1, R2.x;\n" … … 1747 1723 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SCREEN_NOMASK = 1748 1724 "!!ARBfp1.0\n" 1749 "PARAM c[7] = { program.local[0..3],\n" 1750 " { 2, 4 },\n" 1751 " program.local[5..6] };\n" 1752 "TEMP R0;\n" 1753 "TEMP R1;\n" 1754 "TEMP R2;\n" 1755 "MUL R0.xyz, fragment.position.y, c[1];\n" 1756 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 1757 "ADD R0.xyz, R0, c[2];\n" 1725 "PARAM c[7] = { program.local[0..5],\n" 1726 " { 2, 4 } };\n" 1727 "TEMP R0;\n" 1728 "TEMP R1;\n" 1729 "TEMP R2;\n" 1730 "MUL R0.xyz, fragment.position.y, c[3];\n" 1731 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1732 "ADD R0.xyz, R0, c[4];\n" 1758 1733 "RCP R0.z, R0.z;\n" 1759 1734 "MUL R0.xy, R0, R0.z;\n" 1760 1735 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1761 1736 "ADD R0.z, R0, R0.w;\n" 1762 "MUL R0.xy, R0, c[ 3];\n"1737 "MUL R0.xy, R0, c[];\n" 1763 1738 "ADD R0.x, R0, R0.y;\n" 1764 "MUL R0.z, c[5].x, -R0;\n"1765 "MUL R0.y, R0. z, c[4];\n"1766 "MUL R0. x, R0, c[4];\n"1767 "MAD R0. y, R0.x, R0.x, -R0;\n"1768 "RSQ R0.z, R0. y;\n"1769 " RCP R0.z, R0.z;\n"1770 " ADD R0.x, -R0, R0.z;\n"1771 " MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n"1772 " MOV R0.y, c[4].x;\n"1773 " MUL R0.y, c[5].x, R0;\n"1774 " RCP R0.y, R0.y;\n"1739 "MUL R0.z, ;\n" 1740 "MUL R0.y, R0.;\n" 1741 "MUL R0.;\n" 1742 "MAD R0.;\n" 1743 "RSQ R0.z, R0.;\n" 1744 ";\n" 1745 ";\n" 1746 ";\n" 1747 ";\n" 1748 ";\n" 1749 "y;\n" 1775 1750 "TEX R1, R0.zwzw, texture[0], 2D;\n" 1776 1751 "MUL R0.x, R0, R0.y;\n" … … 1783 1758 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_OVERLAY_NOMASK = 1784 1759 "!!ARBfp1.0\n" 1785 "PARAM c[7] = { program.local[0..3],\n" 1786 " { 2, 4, 1 },\n" 1787 " program.local[5..6] };\n" 1788 "TEMP R0;\n" 1789 "TEMP R1;\n" 1790 "TEMP R2;\n" 1791 "TEMP R3;\n" 1792 "MUL R0.xyz, fragment.position.y, c[1];\n" 1793 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 1794 "ADD R0.xyz, R0, c[2];\n" 1760 "PARAM c[7] = { program.local[0..5],\n" 1761 " { 2, 4, 1 } };\n" 1762 "TEMP R0;\n" 1763 "TEMP R1;\n" 1764 "TEMP R2;\n" 1765 "TEMP R3;\n" 1766 "MUL R0.xyz, fragment.position.y, c[3];\n" 1767 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1768 "ADD R0.xyz, R0, c[4];\n" 1795 1769 "RCP R0.z, R0.z;\n" 1796 1770 "MUL R0.xy, R0, R0.z;\n" 1797 1771 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1798 "MUL R0.xy, R0, c[3];\n"1799 1772 "ADD R0.z, R0, R0.w;\n" 1773 1800 1774 "ADD R0.x, R0, R0.y;\n" 1801 "MUL R0.z, c[5].x, -R0;\n" 1802 "MUL R0.y, R0.z, c[4];\n" 1803 "MUL R0.x, R0, c[4];\n" 1804 "MAD R0.y, R0.x, R0.x, -R0;\n" 1805 "MOV R0.z, c[4].x;\n" 1806 "RSQ R0.y, R0.y;\n" 1807 "RCP R0.y, R0.y;\n" 1808 "MUL R0.z, c[5].x, R0;\n" 1809 "MUL R1.xy, fragment.position, c[6];\n" 1775 "MUL R0.y, R0.x, c[6].x;\n" 1776 "MOV R0.x, c[6];\n" 1777 "MUL R0.z, -R0, c[1].x;\n" 1778 "MUL R0.z, R0, c[6].y;\n" 1779 "MAD R0.z, R0.y, R0.y, -R0;\n" 1780 "MUL R1.xy, fragment.position, c[5];\n" 1810 1781 "TEX R1, R1, texture[0], 2D;\n" 1811 "ADD R0.x, -R0, R0.y;\n" 1812 "RCP R0.z, R0.z;\n" 1782 "MUL R0.w, R0.x, c[1].x;\n" 1783 "RSQ R0.z, R0.z;\n" 1784 "RCP R0.x, R0.z;\n" 1785 "ADD R2.w, -R1, c[6].z;\n" 1786 "RCP R0.z, R0.w;\n" 1787 "ADD R0.x, -R0.y, R0;\n" 1813 1788 "MUL R0.x, R0, R0.z;\n" 1814 1789 "TEX R0, R0, texture[1], 1D;\n" … … 1816 1791 "ADD R2.xyz, R1.w, -R1;\n" 1817 1792 "MUL R2.xyz, R2, R3;\n" 1818 "ADD R2.w, -R1, c[4].z;\n" 1819 "MUL R2.xyz, R2, c[4].x;\n" 1793 "MUL R2.xyz, R2, c[6].x;\n" 1820 1794 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 1821 1795 "MAD R2.xyz, R0, R2.w, R2;\n" 1822 1796 "MUL R3.xyz, R0, R2.w;\n" 1823 1797 "MUL R0.xyz, R0, R1;\n" 1824 "ADD R2.w, -R0, c[ 4].z;\n"1825 "MAD R0.xyz, R0, c[ 4].x, R3;\n"1798 "ADD R2.w, -R0, c[].z;\n" 1799 "MAD R0.xyz, R0, c[].x, R3;\n" 1826 1800 "MAD R0.xyz, R1, R2.w, R0;\n" 1827 1801 "MAD R2.xyz, R1, R2.w, R2;\n" 1828 "MUL R1.xyz, R1, c[ 4].x;\n"1802 "MUL R1.xyz, R1, c[].x;\n" 1829 1803 "ADD R2.w, R0, R1;\n" 1830 1804 "ADD R2.xyz, R2, -R0;\n" … … 1837 1811 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DARKEN_NOMASK = 1838 1812 "!!ARBfp1.0\n" 1839 "PARAM c[7] = { program.local[0..3],\n" 1840 " { 2, 4, 1 },\n" 1841 " program.local[5..6] };\n" 1842 "TEMP R0;\n" 1843 "TEMP R1;\n" 1844 "TEMP R2;\n" 1845 "TEMP R3;\n" 1846 "MUL R0.xyz, fragment.position.y, c[1];\n" 1847 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 1848 "ADD R0.xyz, R0, c[2];\n" 1813 "PARAM c[7] = { program.local[0..5],\n" 1814 " { 2, 4, 1 } };\n" 1815 "TEMP R0;\n" 1816 "TEMP R1;\n" 1817 "TEMP R2;\n" 1818 "TEMP R3;\n" 1819 "MUL R0.xyz, fragment.position.y, c[3];\n" 1820 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1821 "ADD R0.xyz, R0, c[4];\n" 1849 1822 "RCP R0.z, R0.z;\n" 1850 1823 "MUL R0.xy, R0, R0.z;\n" 1851 1824 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1852 "MUL R0.xy, R0, c[3];\n"1853 1825 "ADD R0.z, R0, R0.w;\n" 1826 1854 1827 "ADD R0.x, R0, R0.y;\n" 1855 "MUL R0.z, c[5].x, -R0;\n" 1856 "MUL R0.y, R0.z, c[4];\n" 1857 "MUL R0.x, R0, c[4];\n" 1858 "MAD R0.y, R0.x, R0.x, -R0;\n" 1859 "MOV R0.z, c[4].x;\n" 1860 "RSQ R0.y, R0.y;\n" 1861 "RCP R0.y, R0.y;\n" 1862 "MUL R0.z, c[5].x, R0;\n" 1863 "MUL R1.xy, fragment.position, c[6];\n" 1864 "TEX R1, R1, texture[0], 2D;\n" 1865 "ADD R0.x, -R0, R0.y;\n" 1866 "RCP R0.z, R0.z;\n" 1828 "MUL R0.z, -R0, c[1].x;\n" 1829 "MUL R0.y, R0.x, c[6].x;\n" 1830 "MUL R0.z, R0, c[6].y;\n" 1831 "MAD R0.x, R0.y, R0.y, -R0.z;\n" 1832 "RSQ R0.z, R0.x;\n" 1833 "MOV R0.x, c[6];\n" 1834 "MUL R0.w, R0.x, c[1].x;\n" 1835 "RCP R0.z, R0.z;\n" 1836 "ADD R0.x, -R0.y, R0.z;\n" 1837 "RCP R0.y, R0.w;\n" 1838 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 1839 "TEX R1, R0.zwzw, texture[0], 2D;\n" 1840 "MUL R0.x, R0, R0.y;\n" 1841 "TEX R0, R0, texture[1], 1D;\n" 1842 "MUL R2.xyz, R0, R1.w;\n" 1843 "MUL R3.xyz, R0.w, R1;\n" 1844 "MIN R2.xyz, R2, R3;\n" 1845 "ADD R2.w, -R1, c[6].z;\n" 1846 "MAD R0.xyz, R0, R2.w, R2;\n" 1847 "ADD R2.x, R0.w, R1.w;\n" 1848 "ADD R2.y, -R0.w, c[6].z;\n" 1849 "MAD result.color.xyz, R1, R2.y, R0;\n" 1850 "MAD result.color.w, -R0, R1, R2.x;\n" 1851 "END\n" 1852 ; 1853 1854 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_LIGHTEN_NOMASK = 1855 "!!ARBfp1.0\n" 1856 "PARAM c[7] = { program.local[0..5],\n" 1857 " { 2, 4, 1 } };\n" 1858 "TEMP R0;\n" 1859 "TEMP R1;\n" 1860 "TEMP R2;\n" 1861 "TEMP R3;\n" 1862 "MUL R0.xyz, fragment.position.y, c[3];\n" 1863 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1864 "ADD R0.xyz, R0, c[4];\n" 1865 "RCP R0.z, R0.z;\n" 1866 "MUL R0.xy, R0, R0.z;\n" 1867 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1868 "ADD R0.z, R0, R0.w;\n" 1869 "MUL R0.xy, R0, c[0];\n" 1870 "ADD R0.x, R0, R0.y;\n" 1871 "MUL R0.z, -R0, c[1].x;\n" 1872 "MUL R0.y, R0.x, c[6].x;\n" 1873 "MUL R0.z, R0, c[6].y;\n" 1874 "MAD R0.x, R0.y, R0.y, -R0.z;\n" 1875 "RSQ R0.z, R0.x;\n" 1876 "MOV R0.x, c[6];\n" 1877 "MUL R0.w, R0.x, c[1].x;\n" 1878 "RCP R0.z, R0.z;\n" 1879 "ADD R0.x, -R0.y, R0.z;\n" 1880 "RCP R0.y, R0.w;\n" 1881 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 1882 "TEX R1, R0.zwzw, texture[0], 2D;\n" 1883 "MUL R0.x, R0, R0.y;\n" 1884 "TEX R0, R0, texture[1], 1D;\n" 1885 "MUL R2.xyz, R0, R1.w;\n" 1886 "MUL R3.xyz, R0.w, R1;\n" 1887 "MAX R2.xyz, R2, R3;\n" 1888 "ADD R2.w, -R1, c[6].z;\n" 1889 "MAD R0.xyz, R0, R2.w, R2;\n" 1890 "ADD R2.x, R0.w, R1.w;\n" 1891 "ADD R2.y, -R0.w, c[6].z;\n" 1892 "MAD result.color.xyz, R1, R2.y, R0;\n" 1893 "MAD result.color.w, -R0, R1, R2.x;\n" 1894 "END\n" 1895 ; 1896 1897 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORDODGE_NOMASK = 1898 "!!ARBfp1.0\n" 1899 "PARAM c[7] = { program.local[0..5],\n" 1900 " { 2, 4, 1, 1e-006 } };\n" 1901 "TEMP R0;\n" 1902 "TEMP R1;\n" 1903 "TEMP R2;\n" 1904 "TEMP R3;\n" 1905 "MUL R0.xyz, fragment.position.y, c[3];\n" 1906 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 1907 "ADD R0.xyz, R0, c[4];\n" 1908 "RCP R0.z, R0.z;\n" 1909 "MUL R0.xy, R0, R0.z;\n" 1910 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1911 "ADD R0.z, R0, R0.w;\n" 1912 "MUL R0.xy, R0, c[0];\n" 1913 "ADD R0.x, R0, R0.y;\n" 1914 "MUL R0.y, R0.x, c[6].x;\n" 1915 "MOV R0.x, c[6];\n" 1916 "MUL R0.z, -R0, c[1].x;\n" 1917 "MUL R0.z, R0, c[6].y;\n" 1918 "MAD R0.z, R0.y, R0.y, -R0;\n" 1919 "MUL R0.w, R0.x, c[1].x;\n" 1920 "RSQ R0.z, R0.z;\n" 1921 "RCP R0.x, R0.z;\n" 1922 "RCP R0.z, R0.w;\n" 1923 "ADD R0.x, -R0.y, R0;\n" 1867 1924 "MUL R0.x, R0, R0.z;\n" 1868 1925 "TEX R0, R0, texture[1], 1D;\n" 1869 "MUL R2.xyz, R0, R1.w;\n" 1870 "MUL R3.xyz, R1, R0.w;\n" 1871 "MIN R2.xyz, R2, R3;\n" 1872 "ADD R2.w, -R1, c[4].z;\n" 1873 "MAD R0.xyz, R0, R2.w, R2;\n" 1874 "ADD R2.x, R0.w, R1.w;\n" 1875 "ADD R2.y, -R0.w, c[4].z;\n" 1876 "MAD result.color.xyz, R1, R2.y, R0;\n" 1877 "MAD result.color.w, -R0, R1, R2.x;\n" 1878 "END\n" 1879 ; 1880 1881 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_LIGHTEN_NOMASK = 1882 "!!ARBfp1.0\n" 1883 "PARAM c[7] = { program.local[0..3],\n" 1884 " { 2, 4, 1 },\n" 1885 " program.local[5..6] };\n" 1886 "TEMP R0;\n" 1887 "TEMP R1;\n" 1888 "TEMP R2;\n" 1889 "TEMP R3;\n" 1890 "MUL R0.xyz, fragment.position.y, c[1];\n" 1891 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 1892 "ADD R0.xyz, R0, c[2];\n" 1893 "RCP R0.z, R0.z;\n" 1894 "MUL R0.xy, R0, R0.z;\n" 1895 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1896 "MUL R0.xy, R0, c[3];\n" 1897 "ADD R0.z, R0, R0.w;\n" 1898 "ADD R0.x, R0, R0.y;\n" 1899 "MUL R0.z, c[5].x, -R0;\n" 1900 "MUL R0.y, R0.z, c[4];\n" 1901 "MUL R0.x, R0, c[4];\n" 1902 "MAD R0.y, R0.x, R0.x, -R0;\n" 1903 "MOV R0.z, c[4].x;\n" 1904 "RSQ R0.y, R0.y;\n" 1905 "RCP R0.y, R0.y;\n" 1906 "MUL R0.z, c[5].x, R0;\n" 1907 "MUL R1.xy, fragment.position, c[6];\n" 1926 "MAX R1.x, R0.w, c[6].w;\n" 1927 "RCP R1.x, R1.x;\n" 1928 "MAD R1.xyz, -R0, R1.x, c[6].z;\n" 1929 "MAX R2.xyz, R1, c[6].w;\n" 1930 "MUL R1.xy, fragment.position, c[5];\n" 1908 1931 "TEX R1, R1, texture[0], 2D;\n" 1909 "ADD R0.x, -R0, R0.y;\n" 1910 "RCP R0.z, R0.z;\n" 1911 "MUL R0.x, R0, R0.z;\n" 1912 "TEX R0, R0, texture[1], 1D;\n" 1913 "MUL R2.xyz, R0, R1.w;\n" 1914 "MUL R3.xyz, R1, R0.w;\n" 1915 "MAX R2.xyz, R2, R3;\n" 1916 "ADD R2.w, -R1, c[4].z;\n" 1917 "MAD R0.xyz, R0, R2.w, R2;\n" 1918 "ADD R2.x, R0.w, R1.w;\n" 1919 "ADD R2.y, -R0.w, c[4].z;\n" 1920 "MAD result.color.xyz, R1, R2.y, R0;\n" 1921 "MAD result.color.w, -R0, R1, R2.x;\n" 1922 "END\n" 1923 ; 1924 1925 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORDODGE_NOMASK = 1926 "!!ARBfp1.0\n" 1927 "PARAM c[7] = { program.local[0..3],\n" 1928 " { 2, 4, 1, 1e-06 },\n" 1929 " program.local[5..6] };\n" 1930 "TEMP R0;\n" 1931 "TEMP R1;\n" 1932 "TEMP R2;\n" 1933 "TEMP R3;\n" 1934 "MUL R0.xyz, fragment.position.y, c[1];\n" 1935 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 1936 "ADD R0.xyz, R0, c[2];\n" 1937 "RCP R0.z, R0.z;\n" 1938 "MUL R0.xy, R0, R0.z;\n" 1939 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1940 "MUL R0.xy, R0, c[3];\n" 1941 "ADD R0.z, R0, R0.w;\n" 1942 "ADD R0.x, R0, R0.y;\n" 1943 "MUL R0.z, c[5].x, -R0;\n" 1944 "MUL R0.y, R0.z, c[4];\n" 1945 "MUL R0.x, R0, c[4];\n" 1946 "MAD R0.y, R0.x, R0.x, -R0;\n" 1947 "MOV R0.z, c[4].x;\n" 1948 "RSQ R0.y, R0.y;\n" 1949 "RCP R0.y, R0.y;\n" 1950 "MUL R0.z, c[5].x, R0;\n" 1951 "ADD R0.x, -R0, R0.y;\n" 1952 "RCP R0.z, R0.z;\n" 1953 "MUL R0.x, R0, R0.z;\n" 1954 "TEX R0, R0, texture[1], 1D;\n" 1955 "MAX R1.x, R0.w, c[4].w;\n" 1956 "RCP R1.x, R1.x;\n" 1957 "MAD R1.xyz, -R0, R1.x, c[4].z;\n" 1958 "MAX R2.xyz, R1, c[4].w;\n" 1959 "MUL R1.xy, fragment.position, c[6];\n" 1960 "TEX R1, R1, texture[0], 2D;\n" 1961 "ADD R2.w, -R0, c[4].z;\n" 1932 "ADD R2.w, -R0, c[6].z;\n" 1962 1933 "MUL R3.xyz, R1, R2.w;\n" 1963 "ADD R2.w, -R1, c[ 4].z;\n"1934 "ADD R2.w, -R1, c[].z;\n" 1964 1935 "MAD R3.xyz, R0, R2.w, R3;\n" 1965 "MUL R1.xyz, R 1, R0.w;\n"1936 "MUL R1.xyz, R;\n" 1966 1937 "MAD R0.xyz, R0, R1.w, R1;\n" 1967 1938 "MUL R2.w, R0, R1;\n" … … 1981 1952 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORBURN_NOMASK = 1982 1953 "!!ARBfp1.0\n" 1983 "PARAM c[7] = { program.local[0..3],\n" 1984 " { 2, 4, 1, 9.9999997e-06 },\n" 1985 " program.local[5..6] };\n" 1954 "PARAM c[7] = { program.local[0..5],\n" 1955 " { 2, 4, 1, 9.9999997e-006 } };\n" 1986 1956 "TEMP R0;\n" 1987 1957 "TEMP R1;\n" … … 1990 1960 "TEMP R4;\n" 1991 1961 "TEMP R5;\n" 1992 "MUL R0.xyz, fragment.position.y, c[ 1];\n"1993 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"1994 "ADD R0.xyz, R0, c[ 2];\n"1962 "MUL R0.xyz, fragment.position.y, c[];\n" 1963 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 1964 "ADD R0.xyz, R0, c[];\n" 1995 1965 "RCP R0.z, R0.z;\n" 1996 1966 "MUL R0.xy, R0, R0.z;\n" 1997 1967 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 1998 "MUL R0.xy, R0, c[3];\n"1999 1968 "ADD R0.z, R0, R0.w;\n" 1969 2000 1970 "ADD R0.x, R0, R0.y;\n" 2001 "MUL R0.z, c[5].x, -R0;\n"2002 "MUL R0.y, R0. z, c[4];\n"2003 "MUL R0. x, R0, c[4];\n"2004 "MAD R0. y, R0.x, R0.x, -R0;\n"2005 " MOV R0.z, c[4].x;\n"2006 " RSQ R0.y, R0.y;\n"2007 " RCP R0.y, R0.y;\n"2008 " MUL R0.z, c[5].x, R0;\n"2009 " MUL R1.xy, fragment.position, c[6];\n"2010 " TEX R1, R1, texture[0], 2D;\n"2011 " ADD R0.x, -R0, R0.y;\n"2012 " RCP R0.z, R0.z;\n"2013 "MUL R0.x, R0, R0. z;\n"1971 "MUL R0.z, ;\n" 1972 "MUL R0.y, R0.;\n" 1973 "MUL R0.;\n" 1974 "MAD R0.;\n" 1975 ".x;\n" 1976 ";\n" 1977 ";\n" 1978 ";\n" 1979 ";\n" 1980 ";\n" 1981 "y;\n" 1982 ";\n" 1983 "MUL R0.x, R0, R0.;\n" 2014 1984 "TEX R0, R0, texture[1], 1D;\n" 2015 "MUL R2.xyz, R 1, R0.w;\n"1985 "MUL R2.xyz, R;\n" 2016 1986 "MAD R3.xyz, R0, R1.w, R2;\n" 2017 "ADD R2.w, -R1, c[ 4].z;\n"1987 "ADD R2.w, -R1, c[].z;\n" 2018 1988 "MAD R2.xyz, -R0.w, R1.w, R3;\n" 2019 1989 "MUL R4.xyz, R0.w, R2;\n" 2020 "MAX R2.xyz, R0, c[ 4].w;\n"1990 "MAX R2.xyz, R0, c[].w;\n" 2021 1991 "MUL R5.xyz, R0, R2.w;\n" 2022 "ADD R3.w, -R0, c[ 4].z;\n"1992 "ADD R3.w, -R0, c[].z;\n" 2023 1993 "RCP R2.x, R2.x;\n" 2024 1994 "RCP R2.y, R2.y;\n" … … 2039 2009 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_HARDLIGHT_NOMASK = 2040 2010 "!!ARBfp1.0\n" 2041 "PARAM c[7] = { program.local[0..3],\n" 2042 " { 2, 4, 1 },\n" 2043 " program.local[5..6] };\n" 2011 "PARAM c[7] = { program.local[0..5],\n" 2012 " { 2, 4, 1 } };\n" 2044 2013 "TEMP R0;\n" 2045 2014 "TEMP R1;\n" … … 2047 2016 "TEMP R3;\n" 2048 2017 "TEMP R4;\n" 2049 "MUL R0.xyz, fragment.position.y, c[ 1];\n"2050 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"2051 "ADD R0.xyz, R0, c[ 2];\n"2018 "MUL R0.xyz, fragment.position.y, c[];\n" 2019 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 2020 "ADD R0.xyz, R0, c[];\n" 2052 2021 "RCP R0.z, R0.z;\n" 2053 2022 "MUL R0.xy, R0, R0.z;\n" 2054 2023 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 2055 "MUL R0.xy, R0, c[3];\n"2056 2024 "ADD R0.z, R0, R0.w;\n" 2025 2057 2026 "ADD R0.x, R0, R0.y;\n" 2058 "MUL R0.z, c[5].x, -R0;\n" 2059 "MUL R0.y, R0.z, c[4];\n" 2060 "MUL R0.x, R0, c[4];\n" 2061 "MAD R0.y, R0.x, R0.x, -R0;\n" 2062 "MOV R0.z, c[4].x;\n" 2063 "RSQ R0.y, R0.y;\n" 2064 "RCP R0.y, R0.y;\n" 2065 "MUL R0.z, c[5].x, R0;\n" 2066 "MUL R1.xy, fragment.position, c[6];\n" 2027 "MUL R0.y, R0.x, c[6].x;\n" 2028 "MOV R0.x, c[6];\n" 2029 "MUL R0.z, -R0, c[1].x;\n" 2030 "MUL R0.z, R0, c[6].y;\n" 2031 "MAD R0.z, R0.y, R0.y, -R0;\n" 2032 "MUL R1.xy, fragment.position, c[5];\n" 2067 2033 "TEX R1, R1, texture[0], 2D;\n" 2068 "ADD R0.x, -R0, R0.y;\n" 2069 "RCP R0.z, R0.z;\n" 2034 "MUL R0.w, R0.x, c[1].x;\n" 2035 "RSQ R0.z, R0.z;\n" 2036 "RCP R0.x, R0.z;\n" 2037 "ADD R2.w, -R1, c[6].z;\n" 2038 "RCP R0.z, R0.w;\n" 2039 "ADD R0.x, -R0.y, R0;\n" 2070 2040 "MUL R0.x, R0, R0.z;\n" 2071 2041 "TEX R0, R0, texture[1], 1D;\n" 2072 "ADD R2.w, -R1, c[4].z;\n"2073 2042 "ADD R3.xyz, R0.w, -R0;\n" 2074 2043 "ADD R2.xyz, R1.w, -R1;\n" 2075 2044 "MUL R2.xyz, R2, R3;\n" 2076 "MUL R2.xyz, R2, c[ 4].x;\n"2045 "MUL R2.xyz, R2, c[].x;\n" 2077 2046 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 2078 2047 "MUL R4.xyz, R0, R2.w;\n" 2079 2048 "MUL R3.xyz, R0, R1;\n" 2080 2049 "MAD R2.xyz, R0, R2.w, R2;\n" 2081 "ADD R2.w, -R0, c[ 4].z;\n"2082 "MUL R0.xyz, R0, c[ 4].x;\n"2050 "ADD R2.w, -R0, c[].z;\n" 2051 "MUL R0.xyz, R0, c[].x;\n" 2083 2052 "MAD R2.xyz, R1, R2.w, R2;\n" 2084 "MAD R3.xyz, R3, c[ 4].x, R4;\n"2053 "MAD R3.xyz, R3, c[].x, R4;\n" 2085 2054 "MAD R1.xyz, R1, R2.w, R3;\n" 2086 2055 "ADD R2.w, R0, R1;\n" … … 2094 2063 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SOFTLIGHT_NOMASK = 2095 2064 "!!ARBfp1.0\n" 2096 "PARAM c[8] = { program.local[0..3],\n" 2097 " { 2, 4, 1, 9.9999997e-06 },\n" 2098 " program.local[5..6],\n" 2099 " { 8, 3 } };\n" 2065 "PARAM c[8] = { program.local[0..5],\n" 2066 " { 2, 4, 1, 9.9999997e-006 },\n" 2067 " { 16, 12, 3 } };\n" 2100 2068 "TEMP R0;\n" 2101 2069 "TEMP R1;\n" … … 2105 2073 "TEMP R5;\n" 2106 2074 "TEMP R6;\n" 2107 "MUL R0.xyz, fragment.position.y, c[ 1];\n"2108 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"2109 "ADD R0.xyz, R0, c[ 2];\n"2075 "MUL R0.xyz, fragment.position.y, c[];\n" 2076 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 2077 "ADD R0.xyz, R0, c[];\n" 2110 2078 "RCP R0.z, R0.z;\n" 2111 2079 "MUL R0.xy, R0, R0.z;\n" 2112 2080 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 2113 "MUL R0.xy, R0, c[3];\n"2114 2081 "ADD R0.z, R0, R0.w;\n" 2082 2115 2083 "ADD R0.x, R0, R0.y;\n" 2116 "MUL R0.z, c[5].x, -R0;\n" 2117 "MUL R0.y, R0.z, c[4];\n" 2118 "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" 2084 "MUL R0.z, -R0, c[1].x;\n" 2085 "MUL R0.y, R0.z, c[6];\n" 2086 "MUL R0.x, R0, c[6];\n" 2087 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 2119 2088 "TEX R1, R0.zwzw, texture[0], 2D;\n" 2120 "MUL R0.x, R0, c[4];\n"2121 2089 "MAD R0.y, R0.x, R0.x, -R0;\n" 2122 "MAX R0.z, R1.w, c[4].w;\n"2123 "RCP R2.w, R0.z;\n"2124 "MUL R2.xyz, R1, R2.w;\n"2125 "MUL R6.xyz, -R2, c[7].x;\n"2126 "MAD R3.xyz, -R1, R2.w, c[4].z;\n"2127 2090 "RSQ R0.y, R0.y;\n" 2128 2091 "RCP R0.y, R0.y;\n" 2129 "ADD R0.x, -R0, R0.y;\n" 2130 "MOV R0.y, c[4].x;\n" 2131 "MUL R0.y, c[5].x, R0;\n" 2132 "RCP R0.y, R0.y;\n" 2092 "ADD R0.y, -R0.x, R0;\n" 2093 "MOV R0.x, c[6];\n" 2094 "MUL R0.x, R0, c[1];\n" 2095 "MAX R0.z, R1.w, c[6].w;\n" 2096 "RCP R0.z, R0.z;\n" 2097 "MUL R3.xyz, R1, R0.z;\n" 2098 "MAD R4.xyz, R3, c[7].x, -c[7].y;\n" 2099 "RCP R0.x, R0.x;\n" 2100 "MUL R0.x, R0.y, R0;\n" 2101 "TEX R0, R0, texture[1], 1D;\n" 2102 "MAD R2.xyz, R0, c[6].x, -R0.w;\n" 2103 "MAD R4.xyz, R3, R4, c[7].z;\n" 2104 "MUL R5.xyz, R1.w, R2;\n" 2105 "MUL R6.xyz, R5, R4;\n" 2106 "RSQ R2.w, R3.x;\n" 2107 "RCP R4.x, R2.w;\n" 2108 "RSQ R2.w, R3.y;\n" 2109 "RSQ R3.w, R3.z;\n" 2110 "RCP R4.y, R2.w;\n" 2111 "RCP R4.z, R3.w;\n" 2112 "ADD R4.xyz, -R3, R4;\n" 2113 "MUL R6.xyz, R3, R6;\n" 2114 "MUL R4.xyz, R5, R4;\n" 2115 "ADD R3.xyz, -R3, c[6].z;\n" 2116 "MAD R2.xyz, R2, R3, R0.w;\n" 2117 "MUL R3.xyz, R0, c[6].x;\n" 2118 "MAD R5.xyz, R0.w, R1, R6;\n" 2119 "MAD R4.xyz, R0.w, R1, R4;\n" 2120 "ADD R6.xyz, R4, -R5;\n" 2121 "MUL R4.xyz, R1, c[6].y;\n" 2122 "SGE R4.xyz, R4, R1.w;\n" 2123 "MAD R4.xyz, R4, R6, R5;\n" 2124 "MAD R4.xyz, -R1, R2, R4;\n" 2125 "MUL R2.xyz, R1, R2;\n" 2126 "SGE R3.xyz, R3, R0.w;\n" 2127 "MAD R2.xyz, R3, R4, R2;\n" 2128 "ADD R2.w, -R1, c[6].z;\n" 2129 "MAD R2.xyz, R0, R2.w, R2;\n" 2130 "ADD R0.x, R0.w, R1.w;\n" 2131 "ADD R0.y, -R0.w, c[6].z;\n" 2132 "MAD result.color.xyz, R1, R0.y, R2;\n" 2133 "MAD result.color.w, -R0, R1, R0.x;\n" 2134 "END\n" 2135 ; 2136 2137 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DIFFERENCE_NOMASK = 2138 "!!ARBfp1.0\n" 2139 "PARAM c[7] = { program.local[0..5],\n" 2140 " { 2, 4 } };\n" 2141 "TEMP R0;\n" 2142 "TEMP R1;\n" 2143 "TEMP R2;\n" 2144 "TEMP R3;\n" 2145 "MUL R0.xyz, fragment.position.y, c[3];\n" 2146 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 2147 "ADD R0.xyz, R0, c[4];\n" 2148 "RCP R0.z, R0.z;\n" 2149 "MUL R0.xy, R0, R0.z;\n" 2150 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 2151 "ADD R0.z, R0, R0.w;\n" 2152 "MUL R0.xy, R0, c[0];\n" 2153 "ADD R0.x, R0, R0.y;\n" 2154 "MUL R0.z, -R0, c[1].x;\n" 2155 "MUL R0.y, R0.x, c[6].x;\n" 2156 "MUL R0.z, R0, c[6].y;\n" 2157 "MAD R0.x, R0.y, R0.y, -R0.z;\n" 2158 "RSQ R0.z, R0.x;\n" 2159 "MOV R0.x, c[6];\n" 2160 "MUL R0.w, R0.x, c[1].x;\n" 2161 "RCP R0.z, R0.z;\n" 2162 "ADD R0.x, -R0.y, R0.z;\n" 2163 "RCP R0.y, R0.w;\n" 2164 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 2165 "TEX R1, R0.zwzw, texture[0], 2D;\n" 2133 2166 "MUL R0.x, R0, R0.y;\n" 2134 2167 "TEX R0, R0, texture[1], 1D;\n" 2135 "MAD R4.xyz, R0, c[4].x, -R0.w;\n"2136 "MUL R5.xyz, R3, R4;\n"2137 "MAD R3.xyz, -R3, R4, R0.w;\n"2138 "ADD R6.xyz, R6, c[7].y;\n"2139 "RSQ R2.x, R2.x;\n"2140 "RSQ R2.z, R2.z;\n"2141 "RSQ R2.y, R2.y;\n"2142 "MAD R5.xyz, -R5, R6, R0.w;\n"2143 "MUL R3.xyz, R1, R3;\n"2144 "RCP R2.x, R2.x;\n"2145 "RCP R2.z, R2.z;\n"2146 "RCP R2.y, R2.y;\n"2147 "MAD R2.xyz, R2, R1.w, -R1;\n"2148 "MUL R6.xyz, R2, R4;\n"2149 "MUL R2.xyz, R1, R5;\n"2150 "MUL R4.xyz, R0, c[4].x;\n"2151 "MAD R6.xyz, R1, R0.w, R6;\n"2152 "MUL R5.xyz, R1, c[7].x;\n"2153 "ADD R6.xyz, R6, -R2;\n"2154 "SGE R5.xyz, R5, R1.w;\n"2155 "MUL R5.xyz, R5, R6;\n"2156 "ADD R2.xyz, R2, R5;\n"2157 "ADD R2.xyz, R2, -R3;\n"2158 "SGE R4.xyz, R4, R0.w;\n"2159 "MUL R2.xyz, R4, R2;\n"2160 "ADD R2.xyz, R3, R2;\n"2161 "ADD R2.w, -R1, c[4].z;\n"2162 "MAD R0.xyz, R0, R2.w, R2;\n"2163 "ADD R2.x, R0.w, R1.w;\n"2164 "ADD R2.y, -R0.w, c[4].z;\n"2165 "MAD result.color.xyz, R1, R2.y, R0;\n"2166 "MAD result.color.w, -R0, R1, R2.x;\n"2167 "END\n"2168 ;2169 2170 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DIFFERENCE_NOMASK =2171 "!!ARBfp1.0\n"2172 "PARAM c[7] = { program.local[0..3],\n"2173 " { 2, 4 },\n"2174 " program.local[5..6] };\n"2175 "TEMP R0;\n"2176 "TEMP R1;\n"2177 "TEMP R2;\n"2178 "TEMP R3;\n"2179 "MUL R0.xyz, fragment.position.y, c[1];\n"2180 "MAD R0.xyz, fragment.position.x, c[0], R0;\n"2181 "ADD R0.xyz, R0, c[2];\n"2182 "RCP R0.z, R0.z;\n"2183 "MUL R0.xy, R0, R0.z;\n"2184 "MUL R0.zw, R0.xyxy, R0.xyxy;\n"2185 "MUL R0.xy, R0, c[3];\n"2186 "ADD R0.z, R0, R0.w;\n"2187 "ADD R0.x, R0, R0.y;\n"2188 "MUL R0.z, c[5].x, -R0;\n"2189 "MUL R0.y, R0.z, c[4];\n"2190 "MUL R0.x, R0, c[4];\n"2191 "MAD R0.y, R0.x, R0.x, -R0;\n"2192 "MOV R0.z, c[4].x;\n"2193 "RSQ R0.y, R0.y;\n"2194 "RCP R0.y, R0.y;\n"2195 "MUL R0.z, c[5].x, R0;\n"2196 "MUL R1.xy, fragment.position, c[6];\n"2197 "TEX R1, R1, texture[0], 2D;\n"2198 "ADD R0.x, -R0, R0.y;\n"2199 "RCP R0.z, R0.z;\n"2200 "MUL R0.x, R0, R0.z;\n"2201 "TEX R0, R0, texture[1], 1D;\n"2202 2168 "MUL R2.xyz, R0, R1.w;\n" 2203 "MUL R3.xyz, R 1, R0.w;\n"2169 "MUL R3.xyz, R;\n" 2204 2170 "ADD R0.xyz, R0, R1;\n" 2205 2171 "MIN R2.xyz, R2, R3;\n" 2206 2172 "ADD R1.x, R0.w, R1.w;\n" 2207 "MAD result.color.xyz, -R2, c[ 4].x, R0;\n"2173 "MAD result.color.xyz, -R2, c[].x, R0;\n" 2208 2174 "MAD result.color.w, -R0, R1, R1.x;\n" 2209 2175 "END\n" … … 2212 2178 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_EXCLUSION_NOMASK = 2213 2179 "!!ARBfp1.0\n" 2214 "PARAM c[7] = { program.local[0..3],\n" 2215 " { 2, 4, 1 },\n" 2216 " program.local[5..6] };\n" 2217 "TEMP R0;\n" 2218 "TEMP R1;\n" 2219 "TEMP R2;\n" 2220 "TEMP R3;\n" 2221 "MUL R0.xyz, fragment.position.y, c[1];\n" 2222 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 2223 "ADD R0.xyz, R0, c[2];\n" 2180 "PARAM c[7] = { program.local[0..5],\n" 2181 " { 2, 4, 1 } };\n" 2182 "TEMP R0;\n" 2183 "TEMP R1;\n" 2184 "TEMP R2;\n" 2185 "TEMP R3;\n" 2186 "MUL R0.xyz, fragment.position.y, c[3];\n" 2187 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 2188 "ADD R0.xyz, R0, c[4];\n" 2224 2189 "RCP R0.z, R0.z;\n" 2225 2190 "MUL R0.xy, R0, R0.z;\n" 2226 2191 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 2227 "MUL R0.xy, R0, c[3];\n"2228 2192 "ADD R0.z, R0, R0.w;\n" 2193 2229 2194 "ADD R0.x, R0, R0.y;\n" 2230 "MUL R0.z, c[5].x, -R0;\n"2231 "MUL R0.y, R0. z, c[4];\n"2232 "MUL R0. x, R0, c[4];\n"2233 "MAD R0. y, R0.x, R0.x, -R0;\n"2234 " MOV R0.z, c[4].x;\n"2235 " RSQ R0.y, R0.y;\n"2236 " RCP R0.y, R0.y;\n"2237 " MUL R0.z, c[5].x, R0;\n"2238 " MUL R1.xy, fragment.position, c[6];\n"2239 " TEX R1, R1, texture[0], 2D;\n"2240 " ADD R0.x, -R0, R0.y;\n"2241 " RCP R0.z, R0.z;\n"2242 "MUL R0.x, R0, R0. z;\n"2195 "MUL R0.z, ;\n" 2196 "MUL R0.y, R0.;\n" 2197 "MUL R0.;\n" 2198 "MAD R0.;\n" 2199 ".x;\n" 2200 ";\n" 2201 ";\n" 2202 ";\n" 2203 ";\n" 2204 ";\n" 2205 "y;\n" 2206 ";\n" 2207 "MUL R0.x, R0, R0.;\n" 2243 2208 "TEX R0, R0, texture[1], 1D;\n" 2244 "MUL R2.xyz, R 1, R0.w;\n"2209 "MUL R2.xyz, R;\n" 2245 2210 "MAD R3.xyz, R0, R1.w, R2;\n" 2246 2211 "MUL R2.xyz, R0, R1;\n" 2247 "MAD R2.xyz, -R2, c[ 4].x, R3;\n"2248 "ADD R2.w, -R1, c[ 4].z;\n"2212 "MAD R2.xyz, -R2, c[].x, R3;\n" 2213 "ADD R2.w, -R1, c[].z;\n" 2249 2214 "MAD R0.xyz, R0, R2.w, R2;\n" 2250 2215 "ADD R2.x, R0.w, R1.w;\n" 2251 "ADD R2.y, -R0.w, c[ 4].z;\n"2216 "ADD R2.y, -R0.w, c[].z;\n" 2252 2217 "MAD result.color.xyz, R1, R2.y, R0;\n" 2253 2218 "MAD result.color.w, -R0, R1, R2.x;\n" … … 2257 2222 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODE_BLEND_MODE_MASK = 2258 2223 "!!ARBfp1.0\n" 2259 "PARAM c[9] = { program.local[0..3],\n" 2260 " { 2, 4 },\n" 2261 " program.local[5..8] };\n" 2262 "TEMP R0;\n" 2263 "TEMP R1;\n" 2264 "MUL R0.xyz, fragment.position.y, c[1];\n" 2265 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 2266 "ADD R0.xyz, R0, c[2];\n" 2224 "PARAM c[9] = { program.local[0..7],\n" 2225 " { 2, 4 } };\n" 2226 "TEMP R0;\n" 2227 "TEMP R1;\n" 2228 "MUL R0.xyz, fragment.position.y, c[3];\n" 2229 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 2230 "ADD R0.xyz, R0, c[4];\n" 2267 2231 "RCP R0.z, R0.z;\n" 2268 2232 "MUL R0.xy, R0, R0.z;\n" 2269 2233 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 2270 "MUL R0.xy, R0, c[3];\n"2271 2234 "ADD R0.z, R0, R0.w;\n" 2235 2272 2236 "ADD R0.x, R0, R0.y;\n" 2273 "MUL R0.z, c[5].x, -R0;\n"2274 "MUL R0.y, R0.z, c[ 4];\n"2275 "MUL R0.x, R0, c[ 4];\n"2237 "MUL R0.z, ;\n" 2238 "MUL R0.y, R0.z, c[];\n" 2239 "MUL R0.x, R0, c[];\n" 2276 2240 "MAD R0.y, R0.x, R0.x, -R0;\n" 2277 2241 "RSQ R0.y, R0.y;\n" 2278 2242 "RCP R0.y, R0.y;\n" 2279 2243 "ADD R1.x, -R0, R0.y;\n" 2280 "MOV R0. z, c[4].x;\n"2281 "MUL R0. z, c[5].x, R0;\n"2282 "RCP R1.y, R0. z;\n"2283 "ADD R0. xy, fragment.position, c[6];\n"2284 "MUL R0. xy, R0, c[7];\n"2285 "TEX R0, R0 , texture[0], 2D;\n"2244 "MOV R0.;\n" 2245 "MUL R0.;\n" 2246 "RCP R1.y, R0.;\n" 2247 "ADD R0.;\n" 2248 "MUL R0.;\n" 2249 "TEX R0, R0, texture[0], 2D;\n" 2286 2250 "MUL R1.x, R1, R1.y;\n" 2287 "DP4 R1.y, R0, c[ 8];\n"2251 "DP4 R1.y, R0, c[];\n" 2288 2252 "TEX R0, R1, texture[1], 1D;\n" 2289 2253 "MUL result.color, R0, R1.y;\n" … … 2293 2257 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODE_BLEND_MODE_NOMASK = 2294 2258 "!!ARBfp1.0\n" 2295 "PARAM c[6] = { program.local[0..3],\n" 2296 " { 2, 4 },\n" 2297 " program.local[5] };\n" 2298 "TEMP R0;\n" 2299 "MUL R0.xyz, fragment.position.y, c[1];\n" 2300 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 2301 "ADD R0.xyz, R0, c[2];\n" 2259 "PARAM c[6] = { program.local[0..4],\n" 2260 " { 2, 4 } };\n" 2261 "TEMP R0;\n" 2262 "MUL R0.xyz, fragment.position.y, c[3];\n" 2263 "MAD R0.xyz, fragment.position.x, c[2], R0;\n" 2264 "ADD R0.xyz, R0, c[4];\n" 2302 2265 "RCP R0.z, R0.z;\n" 2303 2266 "MUL R0.xy, R0, R0.z;\n" 2304 2267 "MUL R0.zw, R0.xyxy, R0.xyxy;\n" 2305 "MUL R0.xy, R0, c[3];\n" 2268 "MUL R0.xy, R0, c[0];\n" 2269 "ADD R0.z, R0, R0.w;\n" 2306 2270 "ADD R0.x, R0, R0.y;\n" 2307 "ADD R0.z, R0, R0.w;\n" 2308 "MUL R0.z, c[5].x, -R0;\n" 2309 "MUL R0.y, R0.z, c[4];\n" 2310 "MUL R0.x, R0, c[4];\n" 2311 "MAD R0.y, R0.x, R0.x, -R0;\n" 2312 "MOV R0.z, c[4].x;\n" 2313 "RSQ R0.y, R0.y;\n" 2314 "MUL R0.z, c[5].x, R0;\n" 2315 "RCP R0.y, R0.y;\n" 2316 "RCP R0.z, R0.z;\n" 2271 "MUL R0.z, -R0, c[1].x;\n" 2272 "MUL R0.y, R0.z, c[5];\n" 2273 "MUL R0.x, R0, c[5];\n" 2274 "MAD R0.z, R0.x, R0.x, -R0.y;\n" 2275 "MOV R0.y, c[5].x;\n" 2276 "RSQ R0.z, R0.z;\n" 2277 "MUL R0.w, R0.y, c[1].x;\n" 2278 "RCP R0.y, R0.z;\n" 2279 "RCP R0.z, R0.w;\n" 2317 2280 "ADD R0.x, -R0, R0.y;\n" 2318 2281 "MUL R0.x, R0, R0.z;\n" … … 2323 2286 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = 2324 2287 "!!ARBfp1.0\n" 2325 "PARAM c[13] = { program.local[0..5],\n" 2326 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2327 " { 2.3561945, 0.78539819, -1, 1 },\n" 2328 " program.local[8],\n" 2329 " { 0.15915494 },\n" 2330 " program.local[10..12] };\n" 2331 "TEMP R0;\n" 2332 "TEMP R1;\n" 2333 "TEMP R2;\n" 2334 "TEMP R3;\n" 2335 "MUL R0.xyz, fragment.position.y, c[4];\n" 2336 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2337 "ADD R0.xyz, R0, c[5];\n" 2338 "RCP R0.z, R0.z;\n" 2339 "MUL R0.xy, R0, R0.z;\n" 2340 "ABS R0.w, R0.x;\n" 2341 "ABS R0.z, R0.y;\n" 2342 "ADD R0.z, R0, -R0.w;\n" 2343 "ADD R0.w, R0.y, c[6].x;\n" 2344 "ABS R0.z, R0;\n" 2345 "CMP R0.y, -R0.z, R0, R0.w;\n" 2346 "ABS R0.z, -R0.y;\n" 2347 "ADD R0.z, R0, c[6].y;\n" 2348 "ADD R0.w, R0.x, R0.z;\n" 2349 "ADD R1.x, R0.z, -R0;\n" 2350 "RCP R1.y, R0.w;\n" 2351 "RCP R1.x, R1.x;\n" 2352 "MUL R0.w, R0, R1.x;\n" 2353 "ADD R0.z, R0.x, -R0;\n" 2354 "MUL R0.z, R0, R1.y;\n" 2355 "CMP R0.z, R0.x, R0.w, R0;\n" 2356 "MUL R0.w, R0.z, R0.z;\n" 2357 "MOV R1.x, c[7].y;\n" 2358 "CMP R0.x, R0, c[7], R1;\n" 2359 "MAD R0.w, R0, c[6].z, -c[6];\n" 2360 "MAD R0.x, R0.w, R0.z, R0;\n" 2361 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2362 "MAD R0.x, R0, R0.y, c[8];\n" 2363 "MUL R0.x, R0, c[9];\n" 2288 "PARAM c[13] = { program.local[0..9],\n" 2289 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 2290 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 2291 " { 0.33299461, 0.99999559, 1 } };\n" 2292 "TEMP R0;\n" 2293 "TEMP R1;\n" 2294 "TEMP R2;\n" 2295 "TEMP R3;\n" 2296 "MUL R0.xyz, fragment.position.y, c[2];\n" 2297 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2298 "ADD R0.xyz, R0, c[3];\n" 2299 "RCP R0.z, R0.z;\n" 2300 "MUL R0.xy, R0, R0.z;\n" 2301 "ABS R0.z, R0.x;\n" 2302 "ABS R0.w, R0.y;\n" 2303 "ADD R0.w, R0, -R0.z;\n" 2304 "ADD R1.x, R0.y, c[10].y;\n" 2305 "ABS R0.w, R0;\n" 2306 "CMP R0.y, -R0.w, R0, R1.x;\n" 2307 "ABS R0.w, -R0.y;\n" 2308 "MAX R1.x, R0.z, R0.w;\n" 2309 "RCP R1.y, R1.x;\n" 2310 "MIN R1.x, R0.z, R0.w;\n" 2311 "MUL R1.x, R1, R1.y;\n" 2312 "MUL R1.y, R1.x, R1.x;\n" 2313 "MAD R1.z, R1.y, c[11].x, c[11].y;\n" 2314 "MAD R1.z, R1, R1.y, -c[11];\n" 2315 "MAD R1.z, R1, R1.y, c[11].w;\n" 2316 "MAD R1.z, R1, R1.y, -c[12].x;\n" 2317 "MAD R1.y, R1.z, R1, c[12];\n" 2318 "MUL R1.x, R1.y, R1;\n" 2319 "ADD R1.y, -R1.x, c[10].w;\n" 2320 "ADD R0.z, -R0, R0.w;\n" 2321 "CMP R0.z, -R0, R1.y, R1.x;\n" 2322 "ADD R0.w, -R0.z, c[10].z;\n" 2323 "CMP R0.x, R0, R0.w, R0.z;\n" 2324 "CMP R0.x, -R0.y, -R0, R0;\n" 2325 "ADD R0.x, R0, c[0];\n" 2326 "MUL R1.x, R0, c[10];\n" 2327 "FLR R1.y, R1.x;\n" 2328 "MUL R0.xy, fragment.position, c[7];\n" 2329 "TEX R0, R0, texture[0], 2D;\n" 2330 "ADD R1.x, R1, -R1.y;\n" 2331 "TEX R1, R1, texture[2], 1D;\n" 2332 "MUL R2.xyz, R0, c[4].y;\n" 2333 "MUL R3.xyz, R1.w, R2;\n" 2334 "MUL R2.xyz, R1, c[4].x;\n" 2335 "MAD R2.xyz, R0.w, R2, R3;\n" 2336 "ADD R3.xy, fragment.position, c[8];\n" 2337 "ADD R2.w, -R0, c[12].z;\n" 2338 "MUL R1.xyz, R1, c[5].y;\n" 2339 "MAD R2.xyz, R2.w, R1, R2;\n" 2340 "MUL R1.xyz, R0, c[5].z;\n" 2341 "ADD R3.z, -R1.w, c[12];\n" 2342 "MAD R2.xyz, R3.z, R1, R2;\n" 2343 "MUL R1.y, R1.w, R2.w;\n" 2344 "MUL R1.x, R1.w, R0.w;\n" 2345 "MUL R1.z, R0.w, R3;\n" 2346 "DP3 R2.w, R1, c[5];\n" 2347 "MUL R3.xy, R3, c[6];\n" 2348 "TEX R1, R3, texture[1], 2D;\n" 2349 "ADD R2, R2, -R0;\n" 2350 "DP4 R1.x, R1, c[9];\n" 2351 "MAD result.color, R1.x, R2, R0;\n" 2352 "END\n" 2353 ; 2354 2355 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_MULTIPLY = 2356 "!!ARBfp1.0\n" 2357 "PARAM c[11] = { program.local[0..7],\n" 2358 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 2359 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 2360 " { 0.33299461, 0.99999559, 1 } };\n" 2361 "TEMP R0;\n" 2362 "TEMP R1;\n" 2363 "TEMP R2;\n" 2364 "MUL R0.xyz, fragment.position.y, c[2];\n" 2365 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2366 "ADD R0.xyz, R0, c[3];\n" 2367 "RCP R0.z, R0.z;\n" 2368 "MUL R0.xy, R0, R0.z;\n" 2369 "ABS R0.z, R0.x;\n" 2370 "ABS R0.w, R0.y;\n" 2371 "ADD R0.w, R0, -R0.z;\n" 2372 "ADD R1.x, R0.y, c[8].y;\n" 2373 "ABS R0.w, R0;\n" 2374 "CMP R0.y, -R0.w, R0, R1.x;\n" 2375 "ABS R0.w, -R0.y;\n" 2376 "MAX R1.x, R0.z, R0.w;\n" 2377 "RCP R1.y, R1.x;\n" 2378 "MIN R1.x, R0.z, R0.w;\n" 2379 "MUL R1.x, R1, R1.y;\n" 2380 "MUL R1.y, R1.x, R1.x;\n" 2381 "MAD R1.z, R1.y, c[9].x, c[9].y;\n" 2382 "MAD R1.z, R1, R1.y, -c[9];\n" 2383 "MAD R1.z, R1, R1.y, c[9].w;\n" 2384 "MAD R1.z, R1, R1.y, -c[10].x;\n" 2385 "MAD R1.y, R1.z, R1, c[10];\n" 2386 "MUL R1.x, R1.y, R1;\n" 2387 "ADD R1.y, -R1.x, c[8].w;\n" 2388 "ADD R0.z, -R0, R0.w;\n" 2389 "CMP R0.z, -R0, R1.y, R1.x;\n" 2390 "ADD R0.w, -R0.z, c[8].z;\n" 2391 "CMP R0.x, R0, R0.w, R0.z;\n" 2392 "CMP R0.x, -R0.y, -R0, R0;\n" 2393 "ADD R0.x, R0, c[0];\n" 2394 "MUL R1.x, R0, c[8];\n" 2395 "FLR R1.y, R1.x;\n" 2396 "MUL R0.xy, fragment.position, c[5];\n" 2397 "TEX R0, R0, texture[0], 2D;\n" 2398 "ADD R1.x, R1, -R1.y;\n" 2399 "TEX R1, R1, texture[2], 1D;\n" 2400 "ADD R2.x, -R0.w, c[10].z;\n" 2401 "MUL R2.xyz, R1, R2.x;\n" 2402 "MAD R1.xyz, R1, R0, R2;\n" 2403 "ADD R2.x, -R1.w, c[10].z;\n" 2404 "MAD R2.xyz, R0, R2.x, R1;\n" 2405 "ADD R1.z, R1.w, R0.w;\n" 2406 "MAD R2.w, -R1, R0, R1.z;\n" 2407 "ADD R1.xy, fragment.position, c[6];\n" 2408 "MUL R1.xy, R1, c[4];\n" 2409 "TEX R1, R1, texture[1], 2D;\n" 2410 "ADD R2, R2, -R0;\n" 2411 "DP4 R1.x, R1, c[7];\n" 2412 "MAD result.color, R1.x, R2, R0;\n" 2413 "END\n" 2414 ; 2415 2416 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SCREEN = 2417 "!!ARBfp1.0\n" 2418 "PARAM c[11] = { program.local[0..7],\n" 2419 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 2420 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 2421 " { 0.33299461, 0.99999559 } };\n" 2422 "TEMP R0;\n" 2423 "TEMP R1;\n" 2424 "TEMP R2;\n" 2425 "TEMP R3;\n" 2426 "MUL R0.xyz, fragment.position.y, c[2];\n" 2427 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2428 "ADD R0.xyz, R0, c[3];\n" 2429 "RCP R0.z, R0.z;\n" 2430 "MUL R0.xy, R0, R0.z;\n" 2431 "ADD R3.xy, fragment.position, c[6];\n" 2432 "ABS R0.z, R0.x;\n" 2433 "ABS R0.w, R0.y;\n" 2434 "ADD R0.w, R0, -R0.z;\n" 2435 "ADD R1.x, R0.y, c[8].y;\n" 2436 "ABS R0.w, R0;\n" 2437 "CMP R0.y, -R0.w, R0, R1.x;\n" 2438 "ABS R0.w, -R0.y;\n" 2439 "MAX R1.x, R0.z, R0.w;\n" 2440 "RCP R1.y, R1.x;\n" 2441 "MIN R1.x, R0.z, R0.w;\n" 2442 "MUL R1.x, R1, R1.y;\n" 2443 "MUL R1.y, R1.x, R1.x;\n" 2444 "MAD R1.z, R1.y, c[9].x, c[9].y;\n" 2445 "MAD R1.z, R1, R1.y, -c[9];\n" 2446 "MAD R1.z, R1, R1.y, c[9].w;\n" 2447 "MAD R1.z, R1, R1.y, -c[10].x;\n" 2448 "MAD R1.y, R1.z, R1, c[10];\n" 2449 "MUL R1.x, R1.y, R1;\n" 2450 "ADD R0.z, -R0, R0.w;\n" 2451 "ADD R1.y, -R1.x, c[8].w;\n" 2452 "CMP R0.z, -R0, R1.y, R1.x;\n" 2453 "ADD R0.w, -R0.z, c[8].z;\n" 2454 "CMP R0.x, R0, R0.w, R0.z;\n" 2455 "CMP R0.x, -R0.y, -R0, R0;\n" 2456 "ADD R0.x, R0, c[0];\n" 2457 "MUL R0.x, R0, c[8];\n" 2364 2458 "FLR R0.y, R0.x;\n" 2365 "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" 2366 "TEX R1, R0.zwzw, texture[0], 2D;\n" 2367 "ADD R0.x, R0, -R0.y;\n" 2368 "TEX R0, R0, texture[2], 1D;\n" 2369 "MUL R2.xyz, R1, c[12].y;\n" 2370 "MUL R3.xyz, R2, R0.w;\n" 2371 "MUL R2.xyz, R0, c[12].x;\n" 2372 "MAD R2.xyz, R2, R1.w, R3;\n" 2373 "ADD R3.xy, fragment.position, c[0];\n" 2374 "ADD R2.w, -R1, c[7];\n" 2375 "MUL R0.xyz, R0, c[11].y;\n" 2376 "MAD R2.xyz, R0, R2.w, R2;\n" 2377 "MUL R0.xyz, R1, c[11].z;\n" 2378 "ADD R3.z, -R0.w, c[7].w;\n" 2379 "MAD R2.xyz, R0, R3.z, R2;\n" 2380 "MUL R0.y, R0.w, R2.w;\n" 2381 "MUL R0.x, R0.w, R1.w;\n" 2382 "MUL R0.z, R1.w, R3;\n" 2383 "DP3 R2.w, R0, c[11];\n" 2384 "MUL R3.xy, R3, c[1];\n" 2385 "TEX R0, R3, texture[1], 2D;\n" 2386 "ADD R2, R2, -R1;\n" 2387 "DP4 R0.x, R0, c[2];\n" 2388 "MAD result.color, R0.x, R2, R1;\n" 2389 "END\n" 2390 ; 2391 2392 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_MULTIPLY = 2393 "!!ARBfp1.0\n" 2394 "PARAM c[11] = { program.local[0..5],\n" 2395 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2396 " { 2.3561945, 0.78539819, -1, 1 },\n" 2397 " program.local[8],\n" 2398 " { 0.15915494 },\n" 2399 " program.local[10] };\n" 2400 "TEMP R0;\n" 2401 "TEMP R1;\n" 2402 "TEMP R2;\n" 2403 "MUL R0.xyz, fragment.position.y, c[4];\n" 2404 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2405 "ADD R0.xyz, R0, c[5];\n" 2406 "RCP R0.z, R0.z;\n" 2407 "MUL R0.xy, R0, R0.z;\n" 2408 "ABS R0.w, R0.x;\n" 2409 "ABS R0.z, R0.y;\n" 2410 "ADD R0.z, R0, -R0.w;\n" 2411 "ADD R0.w, R0.y, c[6].x;\n" 2412 "ABS R0.z, R0;\n" 2413 "CMP R0.y, -R0.z, R0, R0.w;\n" 2414 "ABS R0.z, -R0.y;\n" 2415 "ADD R0.z, R0, c[6].y;\n" 2416 "ADD R0.w, R0.x, R0.z;\n" 2417 "ADD R1.x, R0.z, -R0;\n" 2418 "RCP R1.y, R0.w;\n" 2419 "RCP R1.x, R1.x;\n" 2420 "MUL R0.w, R0, R1.x;\n" 2421 "ADD R0.z, R0.x, -R0;\n" 2422 "MUL R0.z, R0, R1.y;\n" 2423 "CMP R0.z, R0.x, R0.w, R0;\n" 2424 "MUL R0.w, R0.z, R0.z;\n" 2425 "MOV R1.x, c[7].y;\n" 2426 "CMP R0.x, R0, c[7], R1;\n" 2427 "MAD R0.w, R0, c[6].z, -c[6];\n" 2428 "MAD R0.x, R0.w, R0.z, R0;\n" 2429 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2430 "MAD R0.x, R0, R0.y, c[8];\n" 2431 "MUL R0.x, R0, c[9];\n" 2432 "FLR R0.y, R0.x;\n" 2433 "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" 2434 "TEX R1, R0.zwzw, texture[0], 2D;\n" 2435 "ADD R0.x, R0, -R0.y;\n" 2436 "TEX R0, R0, texture[2], 1D;\n" 2437 "ADD R2.x, -R1.w, c[7].w;\n" 2438 "MUL R2.xyz, R0, R2.x;\n" 2439 "MAD R0.xyz, R0, R1, R2;\n" 2440 "ADD R2.x, -R0.w, c[7].w;\n" 2441 "MAD R2.xyz, R1, R2.x, R0;\n" 2442 "ADD R0.z, R0.w, R1.w;\n" 2443 "MAD R2.w, -R0, R1, R0.z;\n" 2444 "ADD R0.xy, fragment.position, c[0];\n" 2445 "MUL R0.xy, R0, c[1];\n" 2446 "TEX R0, R0, texture[1], 2D;\n" 2447 "ADD R2, R2, -R1;\n" 2448 "DP4 R0.x, R0, c[2];\n" 2449 "MAD result.color, R0.x, R2, R1;\n" 2450 "END\n" 2451 ; 2452 2453 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SCREEN = 2454 "!!ARBfp1.0\n" 2455 "PARAM c[11] = { program.local[0..5],\n" 2456 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2457 " { 2.3561945, 0.78539819, -1, 1 },\n" 2458 " program.local[8],\n" 2459 " { 0.15915494 },\n" 2460 " program.local[10] };\n" 2461 "TEMP R0;\n" 2462 "TEMP R1;\n" 2463 "TEMP R2;\n" 2464 "TEMP R3;\n" 2465 "MUL R0.xyz, fragment.position.y, c[4];\n" 2466 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2467 "ADD R0.xyz, R0, c[5];\n" 2468 "RCP R0.z, R0.z;\n" 2469 "MUL R0.xy, R0, R0.z;\n" 2470 "ADD R3.xy, fragment.position, c[0];\n" 2471 "ABS R0.w, R0.x;\n" 2472 "ABS R0.z, R0.y;\n" 2473 "ADD R0.z, R0, -R0.w;\n" 2474 "ADD R0.w, R0.y, c[6].x;\n" 2475 "ABS R0.z, R0;\n" 2476 "CMP R0.y, -R0.z, R0, R0.w;\n" 2477 "ABS R0.z, -R0.y;\n" 2478 "ADD R0.z, R0, c[6].y;\n" 2479 "ADD R0.w, R0.x, R0.z;\n" 2480 "ADD R1.x, R0.z, -R0;\n" 2481 "RCP R1.y, R0.w;\n" 2482 "RCP R1.x, R1.x;\n" 2483 "MUL R0.w, R0, R1.x;\n" 2484 "ADD R0.z, R0.x, -R0;\n" 2485 "MUL R0.z, R0, R1.y;\n" 2486 "CMP R0.z, R0.x, R0.w, R0;\n" 2487 "MUL R0.w, R0.z, R0.z;\n" 2488 "MOV R1.x, c[7].y;\n" 2489 "CMP R0.x, R0, c[7], R1;\n" 2490 "MAD R0.w, R0, c[6].z, -c[6];\n" 2491 "MUL R1.xy, fragment.position, c[10];\n" 2492 "TEX R1, R1, texture[0], 2D;\n" 2493 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2494 "MAD R0.x, R0.w, R0.z, R0;\n" 2495 "MAD R0.x, R0, R0.y, c[8];\n" 2496 "MUL R0.x, R0, c[9];\n" 2459 "ADD R0.z, R0.x, -R0.y;\n" 2460 "TEX R1, R0.z, texture[2], 1D;\n" 2461 "MUL R0.xy, fragment.position, c[5];\n" 2462 "TEX R0, R0, texture[0], 2D;\n" 2463 "ADD R2, R1, R0;\n" 2464 "MAD R2, -R1, R0, R2;\n" 2465 "MUL R3.xy, R3, c[4];\n" 2466 "TEX R1, R3, texture[1], 2D;\n" 2467 "ADD R2, R2, -R0;\n" 2468 "DP4 R1.x, R1, c[7];\n" 2469 "MAD result.color, R1.x, R2, R0;\n" 2470 "END\n" 2471 ; 2472 2473 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_OVERLAY = 2474 "!!ARBfp1.0\n" 2475 "PARAM c[11] = { program.local[0..7],\n" 2476 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 2477 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 2478 " { 3.141593, 0.15915494, 2, 1 } };\n" 2479 "TEMP R0;\n" 2480 "TEMP R1;\n" 2481 "TEMP R2;\n" 2482 "TEMP R3;\n" 2483 "TEMP R4;\n" 2484 "MUL R0.xyz, fragment.position.y, c[2];\n" 2485 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2486 "ADD R0.xyz, R0, c[3];\n" 2487 "RCP R0.z, R0.z;\n" 2488 "MUL R0.xy, R0, R0.z;\n" 2489 "ABS R0.z, R0.x;\n" 2490 "ABS R0.w, R0.y;\n" 2491 "ADD R0.w, R0, -R0.z;\n" 2492 "ADD R1.x, R0.y, c[8];\n" 2493 "ABS R0.w, R0;\n" 2494 "CMP R0.y, -R0.w, R0, R1.x;\n" 2495 "ABS R0.w, -R0.y;\n" 2496 "MAX R1.x, R0.z, R0.w;\n" 2497 "RCP R1.y, R1.x;\n" 2498 "MIN R1.x, R0.z, R0.w;\n" 2499 "MUL R1.x, R1, R1.y;\n" 2500 "MUL R1.y, R1.x, R1.x;\n" 2501 "MAD R1.z, R1.y, c[8].y, c[8];\n" 2502 "MAD R1.z, R1, R1.y, -c[8].w;\n" 2503 "MAD R1.z, R1, R1.y, c[9].x;\n" 2504 "MAD R1.z, R1, R1.y, -c[9].y;\n" 2505 "MAD R1.y, R1.z, R1, c[9].z;\n" 2506 "MUL R1.x, R1.y, R1;\n" 2507 "ADD R0.z, -R0, R0.w;\n" 2508 "ADD R1.y, -R1.x, c[9].w;\n" 2509 "CMP R0.z, -R0, R1.y, R1.x;\n" 2510 "ADD R0.w, -R0.z, c[10].x;\n" 2511 "CMP R0.x, R0, R0.w, R0.z;\n" 2512 "CMP R0.x, -R0.y, -R0, R0;\n" 2513 "ADD R0.x, R0, c[0];\n" 2514 "MUL R0.x, R0, c[10].y;\n" 2497 2515 "FLR R0.y, R0.x;\n" 2498 2516 "ADD R0.x, R0, -R0.y;\n" 2499 2517 "TEX R0, R0, texture[2], 1D;\n" 2500 "ADD R2, R0, R1;\n" 2501 "MAD R2, -R0, R1, R2;\n" 2502 "MUL R3.xy, R3, c[1];\n" 2503 "TEX R0, R3, texture[1], 2D;\n" 2504 "ADD R2, R2, -R1;\n" 2505 "DP4 R0.x, R0, c[2];\n" 2506 "MAD result.color, R0.x, R2, R1;\n" 2507 "END\n" 2508 ; 2509 2510 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_OVERLAY = 2511 "!!ARBfp1.0\n" 2512 "PARAM c[11] = { program.local[0..5],\n" 2513 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2514 " { 2.3561945, 0.78539819, -1, 1 },\n" 2515 " program.local[8],\n" 2516 " { 0.15915494, 2 },\n" 2517 " program.local[10] };\n" 2518 "TEMP R0;\n" 2519 "TEMP R1;\n" 2520 "TEMP R2;\n" 2521 "TEMP R3;\n" 2522 "TEMP R4;\n" 2523 "MUL R0.xyz, fragment.position.y, c[4];\n" 2524 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2525 "ADD R0.xyz, R0, c[5];\n" 2526 "RCP R0.z, R0.z;\n" 2527 "MUL R0.xy, R0, R0.z;\n" 2528 "ABS R0.w, R0.x;\n" 2529 "ABS R0.z, R0.y;\n" 2530 "ADD R0.z, R0, -R0.w;\n" 2531 "ADD R0.w, R0.y, c[6].x;\n" 2532 "ABS R0.z, R0;\n" 2533 "CMP R0.y, -R0.z, R0, R0.w;\n" 2534 "ABS R0.z, -R0.y;\n" 2535 "ADD R0.z, R0, c[6].y;\n" 2536 "ADD R0.w, R0.x, R0.z;\n" 2537 "ADD R1.x, R0.z, -R0;\n" 2538 "RCP R1.y, R0.w;\n" 2539 "RCP R1.x, R1.x;\n" 2540 "MUL R0.w, R0, R1.x;\n" 2541 "ADD R0.z, R0.x, -R0;\n" 2542 "MUL R0.z, R0, R1.y;\n" 2543 "CMP R0.z, R0.x, R0.w, R0;\n" 2544 "MUL R0.w, R0.z, R0.z;\n" 2545 "MOV R1.x, c[7].y;\n" 2546 "CMP R0.x, R0, c[7], R1;\n" 2547 "MAD R0.w, R0, c[6].z, -c[6];\n" 2548 "MUL R1.xy, fragment.position, c[10];\n" 2518 "MUL R1.xy, fragment.position, c[5];\n" 2549 2519 "TEX R1, R1, texture[0], 2D;\n" 2550 "ADD R2.w, -R1, c[7];\n" 2551 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2552 "MAD R0.x, R0.w, R0.z, R0;\n" 2553 "MAD R0.x, R0, R0.y, c[8];\n" 2554 "MUL R0.x, R0, c[9];\n" 2555 "FLR R0.y, R0.x;\n" 2556 "ADD R0.x, R0, -R0.y;\n" 2557 "TEX R0, R0, texture[2], 1D;\n" 2520 "ADD R2.w, -R1, c[10];\n" 2558 2521 "ADD R3.xyz, R0.w, -R0;\n" 2559 2522 "ADD R2.xyz, R1.w, -R1;\n" 2560 2523 "MUL R2.xyz, R2, R3;\n" 2561 "MUL R2.xyz, R2, c[ 9].y;\n"2524 "MUL R2.xyz, R2, c[;\n" 2562 2525 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 2563 2526 "MUL R4.xyz, R0, R2.w;\n" 2564 2527 "MUL R3.xyz, R0, R1;\n" 2565 2528 "MAD R0.xyz, R0, R2.w, R2;\n" 2566 "ADD R2.x, -R0.w, c[ 7].w;\n"2567 "MAD R3.xyz, R3, c[ 9].y, R4;\n"2529 "ADD R2.x, -R0.w, c[].w;\n" 2530 "MAD R3.xyz, R3, c[, R4;\n" 2568 2531 "MAD R3.xyz, R1, R2.x, R3;\n" 2569 2532 "MAD R0.xyz, R1, R2.x, R0;\n" 2570 "MUL R2.xyz, R1, c[ 9].y;\n"2533 "MUL R2.xyz, R1, c[;\n" 2571 2534 "ADD R0.xyz, R0, -R3;\n" 2572 2535 "SGE R2.xyz, R2, R1.w;\n" … … 2574 2537 "ADD R0.z, R0.w, R1.w;\n" 2575 2538 "MAD R2.w, -R0, R1, R0.z;\n" 2576 "ADD R0.xy, fragment.position, c[ 0];\n"2577 "MUL R0.xy, R0, c[ 1];\n"2539 "ADD R0.xy, fragment.position, c[];\n" 2540 "MUL R0.xy, R0, c[];\n" 2578 2541 "TEX R0, R0, texture[1], 2D;\n" 2579 2542 "ADD R2, R2, -R1;\n" 2580 "DP4 R0.x, R0, c[ 2];\n"2543 "DP4 R0.x, R0, c[];\n" 2581 2544 "MAD result.color, R0.x, R2, R1;\n" 2582 2545 "END\n" … … 2585 2548 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DARKEN = 2586 2549 "!!ARBfp1.0\n" 2587 "PARAM c[11] = { program.local[0..5],\n" 2588 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2589 " { 2.3561945, 0.78539819, -1, 1 },\n" 2590 " program.local[8],\n" 2591 " { 0.15915494 },\n" 2592 " program.local[10] };\n" 2593 "TEMP R0;\n" 2594 "TEMP R1;\n" 2595 "TEMP R2;\n" 2596 "TEMP R3;\n" 2597 "MUL R0.xyz, fragment.position.y, c[4];\n" 2598 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2599 "ADD R0.xyz, R0, c[5];\n" 2600 "RCP R0.z, R0.z;\n" 2601 "MUL R0.xy, R0, R0.z;\n" 2602 "ABS R0.w, R0.x;\n" 2603 "ABS R0.z, R0.y;\n" 2604 "ADD R0.z, R0, -R0.w;\n" 2605 "ADD R0.w, R0.y, c[6].x;\n" 2606 "ABS R0.z, R0;\n" 2607 "CMP R0.y, -R0.z, R0, R0.w;\n" 2608 "ABS R0.z, -R0.y;\n" 2609 "ADD R0.z, R0, c[6].y;\n" 2610 "ADD R0.w, R0.x, R0.z;\n" 2611 "ADD R1.x, R0.z, -R0;\n" 2612 "RCP R1.y, R0.w;\n" 2613 "RCP R1.x, R1.x;\n" 2614 "MUL R0.w, R0, R1.x;\n" 2615 "ADD R0.z, R0.x, -R0;\n" 2616 "MUL R0.z, R0, R1.y;\n" 2617 "CMP R0.z, R0.x, R0.w, R0;\n" 2618 "MUL R0.w, R0.z, R0.z;\n" 2619 "MOV R1.x, c[7].y;\n" 2620 "CMP R0.x, R0, c[7], R1;\n" 2621 "MAD R0.w, R0, c[6].z, -c[6];\n" 2622 "MUL R1.xy, fragment.position, c[10];\n" 2623 "TEX R1, R1, texture[0], 2D;\n" 2624 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2625 "MAD R0.x, R0.w, R0.z, R0;\n" 2626 "MAD R0.x, R0, R0.y, c[8];\n" 2627 "MUL R0.x, R0, c[9];\n" 2550 "PARAM c[11] = { program.local[0..7],\n" 2551 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 2552 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 2553 " { 0.33299461, 0.99999559, 1 } };\n" 2554 "TEMP R0;\n" 2555 "TEMP R1;\n" 2556 "TEMP R2;\n" 2557 "TEMP R3;\n" 2558 "MUL R0.xyz, fragment.position.y, c[2];\n" 2559 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2560 "ADD R0.xyz, R0, c[3];\n" 2561 "RCP R0.z, R0.z;\n" 2562 "MUL R0.xy, R0, R0.z;\n" 2563 "ABS R0.z, R0.x;\n" 2564 "ABS R0.w, R0.y;\n" 2565 "ADD R0.w, R0, -R0.z;\n" 2566 "ADD R1.x, R0.y, c[8].y;\n" 2567 "ABS R0.w, R0;\n" 2568 "CMP R0.y, -R0.w, R0, R1.x;\n" 2569 "ABS R0.w, -R0.y;\n" 2570 "MAX R1.x, R0.z, R0.w;\n" 2571 "RCP R1.y, R1.x;\n" 2572 "MIN R1.x, R0.z, R0.w;\n" 2573 "MUL R1.x, R1, R1.y;\n" 2574 "MUL R1.y, R1.x, R1.x;\n" 2575 "MAD R1.z, R1.y, c[9].x, c[9].y;\n" 2576 "MAD R1.z, R1, R1.y, -c[9];\n" 2577 "MAD R1.z, R1, R1.y, c[9].w;\n" 2578 "MAD R1.z, R1, R1.y, -c[10].x;\n" 2579 "MAD R1.y, R1.z, R1, c[10];\n" 2580 "MUL R1.x, R1.y, R1;\n" 2581 "ADD R1.y, -R1.x, c[8].w;\n" 2582 "ADD R0.z, -R0, R0.w;\n" 2583 "CMP R0.z, -R0, R1.y, R1.x;\n" 2584 "ADD R0.w, -R0.z, c[8].z;\n" 2585 "CMP R0.x, R0, R0.w, R0.z;\n" 2586 "CMP R0.x, -R0.y, -R0, R0;\n" 2587 "ADD R0.x, R0, c[0];\n" 2588 "MUL R0.z, R0.x, c[8].x;\n" 2589 "FLR R0.w, R0.z;\n" 2590 "ADD R1.x, R0.z, -R0.w;\n" 2591 "MUL R0.xy, fragment.position, c[5];\n" 2592 "TEX R0, R0, texture[0], 2D;\n" 2593 "TEX R1, R1, texture[2], 1D;\n" 2594 "MUL R3.xyz, R1.w, R0;\n" 2595 "MUL R2.xyz, R1, R0.w;\n" 2596 "MIN R2.xyz, R2, R3;\n" 2597 "ADD R2.w, -R0, c[10].z;\n" 2598 "MAD R1.xyz, R1, R2.w, R2;\n" 2599 "ADD R2.x, -R1.w, c[10].z;\n" 2600 "MAD R2.xyz, R0, R2.x, R1;\n" 2601 "ADD R1.z, R1.w, R0.w;\n" 2602 "MAD R2.w, -R1, R0, R1.z;\n" 2603 "ADD R1.xy, fragment.position, c[6];\n" 2604 "MUL R1.xy, R1, c[4];\n" 2605 "TEX R1, R1, texture[1], 2D;\n" 2606 "ADD R2, R2, -R0;\n" 2607 "DP4 R1.x, R1, c[7];\n" 2608 "MAD result.color, R1.x, R2, R0;\n" 2609 "END\n" 2610 ; 2611 2612 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_LIGHTEN = 2613 "!!ARBfp1.0\n" 2614 "PARAM c[11] = { program.local[0..7],\n" 2615 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 2616 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 2617 " { 0.33299461, 0.99999559, 1 } };\n" 2618 "TEMP R0;\n" 2619 "TEMP R1;\n" 2620 "TEMP R2;\n" 2621 "TEMP R3;\n" 2622 "MUL R0.xyz, fragment.position.y, c[2];\n" 2623 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2624 "ADD R0.xyz, R0, c[3];\n" 2625 "RCP R0.z, R0.z;\n" 2626 "MUL R0.xy, R0, R0.z;\n" 2627 "ABS R0.z, R0.x;\n" 2628 "ABS R0.w, R0.y;\n" 2629 "ADD R0.w, R0, -R0.z;\n" 2630 "ADD R1.x, R0.y, c[8].y;\n" 2631 "ABS R0.w, R0;\n" 2632 "CMP R0.y, -R0.w, R0, R1.x;\n" 2633 "ABS R0.w, -R0.y;\n" 2634 "MAX R1.x, R0.z, R0.w;\n" 2635 "RCP R1.y, R1.x;\n" 2636 "MIN R1.x, R0.z, R0.w;\n" 2637 "MUL R1.x, R1, R1.y;\n" 2638 "MUL R1.y, R1.x, R1.x;\n" 2639 "MAD R1.z, R1.y, c[9].x, c[9].y;\n" 2640 "MAD R1.z, R1, R1.y, -c[9];\n" 2641 "MAD R1.z, R1, R1.y, c[9].w;\n" 2642 "MAD R1.z, R1, R1.y, -c[10].x;\n" 2643 "MAD R1.y, R1.z, R1, c[10];\n" 2644 "MUL R1.x, R1.y, R1;\n" 2645 "ADD R1.y, -R1.x, c[8].w;\n" 2646 "ADD R0.z, -R0, R0.w;\n" 2647 "CMP R0.z, -R0, R1.y, R1.x;\n" 2648 "ADD R0.w, -R0.z, c[8].z;\n" 2649 "CMP R0.x, R0, R0.w, R0.z;\n" 2650 "CMP R0.x, -R0.y, -R0, R0;\n" 2651 "ADD R0.x, R0, c[0];\n" 2652 "MUL R0.z, R0.x, c[8].x;\n" 2653 "FLR R0.w, R0.z;\n" 2654 "ADD R1.x, R0.z, -R0.w;\n" 2655 "MUL R0.xy, fragment.position, c[5];\n" 2656 "TEX R0, R0, texture[0], 2D;\n" 2657 "TEX R1, R1, texture[2], 1D;\n" 2658 "MUL R3.xyz, R1.w, R0;\n" 2659 "MUL R2.xyz, R1, R0.w;\n" 2660 "MAX R2.xyz, R2, R3;\n" 2661 "ADD R2.w, -R0, c[10].z;\n" 2662 "MAD R1.xyz, R1, R2.w, R2;\n" 2663 "ADD R2.x, -R1.w, c[10].z;\n" 2664 "MAD R2.xyz, R0, R2.x, R1;\n" 2665 "ADD R1.z, R1.w, R0.w;\n" 2666 "MAD R2.w, -R1, R0, R1.z;\n" 2667 "ADD R1.xy, fragment.position, c[6];\n" 2668 "MUL R1.xy, R1, c[4];\n" 2669 "TEX R1, R1, texture[1], 2D;\n" 2670 "ADD R2, R2, -R0;\n" 2671 "DP4 R1.x, R1, c[7];\n" 2672 "MAD result.color, R1.x, R2, R0;\n" 2673 "END\n" 2674 ; 2675 2676 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORDODGE = 2677 "!!ARBfp1.0\n" 2678 "PARAM c[11] = { program.local[0..7],\n" 2679 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 2680 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 2681 " { 3.141593, 0.15915494, 1, 1e-006 } };\n" 2682 "TEMP R0;\n" 2683 "TEMP R1;\n" 2684 "TEMP R2;\n" 2685 "TEMP R3;\n" 2686 "TEMP R4;\n" 2687 "MUL R0.xyz, fragment.position.y, c[2];\n" 2688 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2689 "ADD R0.xyz, R0, c[3];\n" 2690 "RCP R0.z, R0.z;\n" 2691 "MUL R0.xy, R0, R0.z;\n" 2692 "ABS R0.z, R0.x;\n" 2693 "ABS R0.w, R0.y;\n" 2694 "ADD R0.w, R0, -R0.z;\n" 2695 "ADD R1.x, R0.y, c[8];\n" 2696 "ABS R0.w, R0;\n" 2697 "CMP R0.y, -R0.w, R0, R1.x;\n" 2698 "ABS R0.w, -R0.y;\n" 2699 "MAX R1.x, R0.z, R0.w;\n" 2700 "RCP R1.y, R1.x;\n" 2701 "MIN R1.x, R0.z, R0.w;\n" 2702 "MUL R1.x, R1, R1.y;\n" 2703 "MUL R1.y, R1.x, R1.x;\n" 2704 "MAD R1.z, R1.y, c[8].y, c[8];\n" 2705 "MAD R1.z, R1, R1.y, -c[8].w;\n" 2706 "MAD R1.z, R1, R1.y, c[9].x;\n" 2707 "MAD R1.z, R1, R1.y, -c[9].y;\n" 2708 "MAD R1.y, R1.z, R1, c[9].z;\n" 2709 "MUL R1.x, R1.y, R1;\n" 2710 "ADD R1.y, -R1.x, c[9].w;\n" 2711 "ADD R0.z, -R0, R0.w;\n" 2712 "CMP R0.z, -R0, R1.y, R1.x;\n" 2713 "ADD R0.w, -R0.z, c[10].x;\n" 2714 "CMP R0.x, R0, R0.w, R0.z;\n" 2715 "CMP R0.x, -R0.y, -R0, R0;\n" 2716 "ADD R0.x, R0, c[0];\n" 2717 "MUL R0.x, R0, c[10].y;\n" 2628 2718 "FLR R0.y, R0.x;\n" 2629 2719 "ADD R0.x, R0, -R0.y;\n" 2630 2720 "TEX R0, R0, texture[2], 1D;\n" 2631 "MUL R3.xyz, R1, R0.w;\n" 2632 "MUL R2.xyz, R0, R1.w;\n" 2633 "MIN R2.xyz, R2, R3;\n" 2634 "ADD R2.w, -R1, c[7];\n" 2635 "MAD R0.xyz, R0, R2.w, R2;\n" 2636 "ADD R2.x, -R0.w, c[7].w;\n" 2637 "MAD R2.xyz, R1, R2.x, R0;\n" 2638 "ADD R0.z, R0.w, R1.w;\n" 2639 "MAD R2.w, -R0, R1, R0.z;\n" 2640 "ADD R0.xy, fragment.position, c[0];\n" 2641 "MUL R0.xy, R0, c[1];\n" 2642 "TEX R0, R0, texture[1], 2D;\n" 2643 "ADD R2, R2, -R1;\n" 2644 "DP4 R0.x, R0, c[2];\n" 2645 "MAD result.color, R0.x, R2, R1;\n" 2646 "END\n" 2647 ; 2648 2649 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_LIGHTEN = 2650 "!!ARBfp1.0\n" 2651 "PARAM c[11] = { program.local[0..5],\n" 2652 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2653 " { 2.3561945, 0.78539819, -1, 1 },\n" 2654 " program.local[8],\n" 2655 " { 0.15915494 },\n" 2656 " program.local[10] };\n" 2657 "TEMP R0;\n" 2658 "TEMP R1;\n" 2659 "TEMP R2;\n" 2660 "TEMP R3;\n" 2661 "MUL R0.xyz, fragment.position.y, c[4];\n" 2662 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2663 "ADD R0.xyz, R0, c[5];\n" 2664 "RCP R0.z, R0.z;\n" 2665 "MUL R0.xy, R0, R0.z;\n" 2666 "ABS R0.w, R0.x;\n" 2667 "ABS R0.z, R0.y;\n" 2668 "ADD R0.z, R0, -R0.w;\n" 2669 "ADD R0.w, R0.y, c[6].x;\n" 2670 "ABS R0.z, R0;\n" 2671 "CMP R0.y, -R0.z, R0, R0.w;\n" 2672 "ABS R0.z, -R0.y;\n" 2673 "ADD R0.z, R0, c[6].y;\n" 2674 "ADD R0.w, R0.x, R0.z;\n" 2675 "ADD R1.x, R0.z, -R0;\n" 2676 "RCP R1.y, R0.w;\n" 2721 "MAX R1.x, R0.w, c[10].w;\n" 2677 2722 "RCP R1.x, R1.x;\n" 2678 "MUL R0.w, R0, R1.x;\n" 2679 "ADD R0.z, R0.x, -R0;\n" 2680 "MUL R0.z, R0, R1.y;\n" 2681 "CMP R0.z, R0.x, R0.w, R0;\n" 2682 "MUL R0.w, R0.z, R0.z;\n" 2683 "MOV R1.x, c[7].y;\n" 2684 "CMP R0.x, R0, c[7], R1;\n" 2685 "MAD R0.w, R0, c[6].z, -c[6];\n" 2686 "MUL R1.xy, fragment.position, c[10];\n" 2723 "MAD R1.xyz, -R0, R1.x, c[10].z;\n" 2724 "MAX R2.xyz, R1, c[10].w;\n" 2725 "MUL R1.xy, fragment.position, c[5];\n" 2687 2726 "TEX R1, R1, texture[0], 2D;\n" 2688 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2689 "MAD R0.x, R0.w, R0.z, R0;\n" 2690 "MAD R0.x, R0, R0.y, c[8];\n" 2691 "MUL R0.x, R0, c[9];\n" 2692 "FLR R0.y, R0.x;\n" 2693 "ADD R0.x, R0, -R0.y;\n" 2694 "TEX R0, R0, texture[2], 1D;\n" 2695 "MUL R3.xyz, R1, R0.w;\n" 2696 "MUL R2.xyz, R0, R1.w;\n" 2697 "MAX R2.xyz, R2, R3;\n" 2698 "ADD R2.w, -R1, c[7];\n" 2699 "MAD R0.xyz, R0, R2.w, R2;\n" 2700 "ADD R2.x, -R0.w, c[7].w;\n" 2701 "MAD R2.xyz, R1, R2.x, R0;\n" 2702 "ADD R0.z, R0.w, R1.w;\n" 2703 "MAD R2.w, -R0, R1, R0.z;\n" 2704 "ADD R0.xy, fragment.position, c[0];\n" 2705 "MUL R0.xy, R0, c[1];\n" 2706 "TEX R0, R0, texture[1], 2D;\n" 2707 "ADD R2, R2, -R1;\n" 2708 "DP4 R0.x, R0, c[2];\n" 2709 "MAD result.color, R0.x, R2, R1;\n" 2710 "END\n" 2711 ; 2712 2713 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORDODGE = 2714 "!!ARBfp1.0\n" 2715 "PARAM c[11] = { program.local[0..5],\n" 2716 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2717 " { 2.3561945, 0.78539819, -1, 1 },\n" 2718 " program.local[8],\n" 2719 " { 0.15915494, 1e-06 },\n" 2720 " program.local[10] };\n" 2721 "TEMP R0;\n" 2722 "TEMP R1;\n" 2723 "TEMP R2;\n" 2724 "TEMP R3;\n" 2725 "TEMP R4;\n" 2726 "MUL R0.xyz, fragment.position.y, c[4];\n" 2727 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2728 "ADD R0.xyz, R0, c[5];\n" 2729 "RCP R0.z, R0.z;\n" 2730 "MUL R0.xy, R0, R0.z;\n" 2731 "ABS R0.w, R0.x;\n" 2732 "ABS R0.z, R0.y;\n" 2733 "ADD R0.z, R0, -R0.w;\n" 2734 "ADD R0.w, R0.y, c[6].x;\n" 2735 "ABS R0.z, R0;\n" 2736 "CMP R0.y, -R0.z, R0, R0.w;\n" 2737 "ABS R0.z, -R0.y;\n" 2738 "ADD R0.z, R0, c[6].y;\n" 2739 "ADD R0.w, R0.x, R0.z;\n" 2740 "ADD R1.x, R0.z, -R0;\n" 2741 "RCP R1.y, R0.w;\n" 2742 "RCP R1.x, R1.x;\n" 2743 "MUL R0.w, R0, R1.x;\n" 2744 "ADD R0.z, R0.x, -R0;\n" 2745 "MUL R0.z, R0, R1.y;\n" 2746 "CMP R0.z, R0.x, R0.w, R0;\n" 2747 "MUL R0.w, R0.z, R0.z;\n" 2748 "MOV R1.x, c[7].y;\n" 2749 "CMP R0.x, R0, c[7], R1;\n" 2750 "MAD R0.w, R0, c[6].z, -c[6];\n" 2751 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2752 "MAD R0.x, R0.w, R0.z, R0;\n" 2753 "MAD R0.x, R0, R0.y, c[8];\n" 2754 "MUL R0.x, R0, c[9];\n" 2755 "FLR R0.y, R0.x;\n" 2756 "ADD R0.x, R0, -R0.y;\n" 2757 "TEX R0, R0, texture[2], 1D;\n" 2758 "MAX R1.x, R0.w, c[9].y;\n" 2759 "RCP R1.x, R1.x;\n" 2760 "MAD R1.xyz, -R0, R1.x, c[7].w;\n" 2761 "MAX R2.xyz, R1, c[9].y;\n" 2762 "MUL R1.xy, fragment.position, c[10];\n" 2763 "TEX R1, R1, texture[0], 2D;\n" 2764 "ADD R2.w, -R0, c[7];\n" 2727 "ADD R2.w, -R0, c[10].z;\n" 2765 2728 "MUL R3.xyz, R1, R2.w;\n" 2766 "ADD R2.w, -R1, c[ 7];\n"2729 "ADD R2.w, -R1, c[;\n" 2767 2730 "MAD R4.xyz, R0, R2.w, R3;\n" 2768 "MUL R3.xyz, R 1, R0.w;\n"2731 "MUL R3.xyz, R;\n" 2769 2732 "MUL R2.w, R0, R1;\n" 2770 2733 "MAD R0.xyz, R0, R1.w, R3;\n" … … 2779 2742 "ADD R0.z, R0.w, R1.w;\n" 2780 2743 "MAD R2.w, -R0, R1, R0.z;\n" 2781 "ADD R0.xy, fragment.position, c[ 0];\n"2782 "MUL R0.xy, R0, c[ 1];\n"2744 "ADD R0.xy, fragment.position, c[];\n" 2745 "MUL R0.xy, R0, c[];\n" 2783 2746 "TEX R0, R0, texture[1], 2D;\n" 2784 2747 "ADD R2, R2, -R1;\n" 2785 "DP4 R0.x, R0, c[ 2];\n"2748 "DP4 R0.x, R0, c[];\n" 2786 2749 "MAD result.color, R0.x, R2, R1;\n" 2787 2750 "END\n" … … 2790 2753 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORBURN = 2791 2754 "!!ARBfp1.0\n" 2792 "PARAM c[11] = { program.local[0..5],\n" 2793 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2794 " { 2.3561945, 0.78539819, -1, 1 },\n" 2795 " program.local[8],\n" 2796 " { 0.15915494, 9.9999997e-06 },\n" 2797 " program.local[10] };\n" 2755 "PARAM c[11] = { program.local[0..7],\n" 2756 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 2757 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 2758 " { 3.141593, 0.15915494, 1, 9.9999997e-006 } };\n" 2798 2759 "TEMP R0;\n" 2799 2760 "TEMP R1;\n" … … 2802 2763 "TEMP R4;\n" 2803 2764 "TEMP R5;\n" 2804 "MUL R0.xyz, fragment.position.y, c[ 4];\n"2805 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"2806 "ADD R0.xyz, R0, c[ 5];\n"2765 "MUL R0.xyz, fragment.position.y, c[];\n" 2766 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 2767 "ADD R0.xyz, R0, c[];\n" 2807 2768 "RCP R0.z, R0.z;\n" 2808 2769 "MUL R0.xy, R0, R0.z;\n" … … 2810 2771 "ABS R0.z, R0.y;\n" 2811 2772 "ADD R0.z, R0, -R0.w;\n" 2812 "ADD R 0.w, R0.y, c[6].x;\n"2773 "ADD R;\n" 2813 2774 "ABS R0.z, R0;\n" 2814 "CMP R0.y, -R0.z, R0, R 0.w;\n"2775 "CMP R0.y, -R0.z, R0, R;\n" 2815 2776 "ABS R0.z, -R0.y;\n" 2816 "ADD R0.z, R0, c[6].y;\n" 2817 "ADD R0.w, R0.x, R0.z;\n" 2818 "ADD R1.x, R0.z, -R0;\n" 2819 "RCP R1.y, R0.w;\n" 2820 "RCP R1.x, R1.x;\n" 2821 "MUL R0.w, R0, R1.x;\n" 2822 "ADD R0.z, R0.x, -R0;\n" 2823 "MUL R0.z, R0, R1.y;\n" 2824 "CMP R0.z, R0.x, R0.w, R0;\n" 2825 "MUL R0.w, R0.z, R0.z;\n" 2826 "MOV R1.x, c[7].y;\n" 2827 "CMP R0.x, R0, c[7], R1;\n" 2828 "MAD R0.w, R0, c[6].z, -c[6];\n" 2829 "MUL R1.xy, fragment.position, c[10];\n" 2830 "TEX R1, R1, texture[0], 2D;\n" 2831 "ADD R2.w, -R1, c[7];\n" 2832 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2833 "MAD R0.x, R0.w, R0.z, R0;\n" 2834 "MAD R0.x, R0, R0.y, c[8];\n" 2835 "MUL R0.x, R0, c[9];\n" 2777 "MAX R1.x, R0.w, R0.z;\n" 2778 "RCP R1.y, R1.x;\n" 2779 "MIN R1.x, R0.w, R0.z;\n" 2780 "MUL R1.x, R1, R1.y;\n" 2781 "MUL R1.y, R1.x, R1.x;\n" 2782 "MAD R1.z, R1.y, c[8].y, c[8];\n" 2783 "MAD R1.z, R1, R1.y, -c[8].w;\n" 2784 "MAD R1.z, R1, R1.y, c[9].x;\n" 2785 "MAD R1.z, R1, R1.y, -c[9].y;\n" 2786 "MAD R1.y, R1.z, R1, c[9].z;\n" 2787 "MUL R1.x, R1.y, R1;\n" 2788 "ADD R1.y, -R1.x, c[9].w;\n" 2789 "ADD R0.z, -R0.w, R0;\n" 2790 "CMP R0.z, -R0, R1.y, R1.x;\n" 2791 "ADD R0.w, -R0.z, c[10].x;\n" 2792 "CMP R0.x, R0, R0.w, R0.z;\n" 2793 "CMP R0.x, -R0.y, -R0, R0;\n" 2794 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 2795 "TEX R1, R0.zwzw, texture[0], 2D;\n" 2796 "ADD R0.x, R0, c[0];\n" 2797 "MUL R0.x, R0, c[10].y;\n" 2836 2798 "FLR R0.y, R0.x;\n" 2837 2799 "ADD R0.x, R0, -R0.y;\n" 2838 2800 "TEX R0, R0, texture[2], 1D;\n" 2839 "MUL R2.xyz, R 1, R0.w;\n"2801 "MUL R2.xyz, R;\n" 2840 2802 "MAD R3.xyz, R0, R1.w, R2;\n" 2841 2803 "MAD R2.xyz, -R0.w, R1.w, R3;\n" 2842 2804 "MUL R4.xyz, R0.w, R2;\n" 2843 "MAX R2.xyz, R0, c[9].y;\n" 2844 "ADD R3.w, -R0, c[7];\n" 2805 "MAX R2.xyz, R0, c[10].w;\n" 2806 "ADD R2.w, -R1, c[10].z;\n" 2807 "ADD R3.w, -R0, c[10].z;\n" 2845 2808 "MUL R5.xyz, R0, R2.w;\n" 2846 2809 "RCP R2.x, R2.x;\n" … … 2857 2820 "ADD R0.z, R0.w, R1.w;\n" 2858 2821 "MAD R2.w, -R0, R1, R0.z;\n" 2859 "ADD R0.xy, fragment.position, c[ 0];\n"2860 "MUL R0.xy, R0, c[ 1];\n"2822 "ADD R0.xy, fragment.position, c[];\n" 2823 "MUL R0.xy, R0, c[];\n" 2861 2824 "TEX R0, R0, texture[1], 2D;\n" 2862 2825 "ADD R2, R2, -R1;\n" 2863 "DP4 R0.x, R0, c[ 2];\n"2826 "DP4 R0.x, R0, c[];\n" 2864 2827 "MAD result.color, R0.x, R2, R1;\n" 2865 2828 "END\n" … … 2868 2831 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_HARDLIGHT = 2869 2832 "!!ARBfp1.0\n" 2870 "PARAM c[11] = { program.local[0..5],\n" 2871 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2872 " { 2.3561945, 0.78539819, -1, 1 },\n" 2873 " program.local[8],\n" 2874 " { 0.15915494, 2 },\n" 2875 " program.local[10] };\n" 2833 "PARAM c[11] = { program.local[0..7],\n" 2834 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 2835 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 2836 " { 3.141593, 0.15915494, 2, 1 } };\n" 2876 2837 "TEMP R0;\n" 2877 2838 "TEMP R1;\n" … … 2879 2840 "TEMP R3;\n" 2880 2841 "TEMP R4;\n" 2881 "MUL R0.xyz, fragment.position.y, c[4];\n" 2882 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 2883 "ADD R0.xyz, R0, c[5];\n" 2884 "RCP R0.z, R0.z;\n" 2885 "MUL R0.xy, R0, R0.z;\n" 2886 "ABS R0.w, R0.x;\n" 2887 "ABS R0.z, R0.y;\n" 2888 "ADD R0.z, R0, -R0.w;\n" 2889 "ADD R0.w, R0.y, c[6].x;\n" 2890 "ABS R0.z, R0;\n" 2891 "CMP R0.y, -R0.z, R0, R0.w;\n" 2892 "ABS R0.z, -R0.y;\n" 2893 "ADD R0.z, R0, c[6].y;\n" 2894 "ADD R0.w, R0.x, R0.z;\n" 2895 "ADD R1.x, R0.z, -R0;\n" 2896 "RCP R1.y, R0.w;\n" 2897 "RCP R1.x, R1.x;\n" 2898 "MUL R0.w, R0, R1.x;\n" 2899 "ADD R0.z, R0.x, -R0;\n" 2900 "MUL R0.z, R0, R1.y;\n" 2901 "CMP R0.z, R0.x, R0.w, R0;\n" 2902 "MUL R0.w, R0.z, R0.z;\n" 2903 "MOV R1.x, c[7].y;\n" 2904 "CMP R0.x, R0, c[7], R1;\n" 2905 "MAD R0.w, R0, c[6].z, -c[6];\n" 2906 "MUL R1.xy, fragment.position, c[10];\n" 2907 "TEX R1, R1, texture[0], 2D;\n" 2908 "ADD R2.w, -R1, c[7];\n" 2909 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2910 "MAD R0.x, R0.w, R0.z, R0;\n" 2911 "MAD R0.x, R0, R0.y, c[8];\n" 2912 "MUL R0.x, R0, c[9];\n" 2842 "MUL R0.xyz, fragment.position.y, c[2];\n" 2843 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 2844 "ADD R0.xyz, R0, c[3];\n" 2845 "RCP R0.z, R0.z;\n" 2846 "MUL R0.xy, R0, R0.z;\n" 2847 "ABS R0.z, R0.x;\n" 2848 "ABS R0.w, R0.y;\n" 2849 "ADD R0.w, R0, -R0.z;\n" 2850 "ADD R1.x, R0.y, c[8];\n" 2851 "ABS R0.w, R0;\n" 2852 "CMP R0.y, -R0.w, R0, R1.x;\n" 2853 "ABS R0.w, -R0.y;\n" 2854 "MAX R1.x, R0.z, R0.w;\n" 2855 "RCP R1.y, R1.x;\n" 2856 "MIN R1.x, R0.z, R0.w;\n" 2857 "MUL R1.x, R1, R1.y;\n" 2858 "MUL R1.y, R1.x, R1.x;\n" 2859 "MAD R1.z, R1.y, c[8].y, c[8];\n" 2860 "MAD R1.z, R1, R1.y, -c[8].w;\n" 2861 "MAD R1.z, R1, R1.y, c[9].x;\n" 2862 "MAD R1.z, R1, R1.y, -c[9].y;\n" 2863 "MAD R1.y, R1.z, R1, c[9].z;\n" 2864 "MUL R1.x, R1.y, R1;\n" 2865 "ADD R0.z, -R0, R0.w;\n" 2866 "ADD R1.y, -R1.x, c[9].w;\n" 2867 "CMP R0.z, -R0, R1.y, R1.x;\n" 2868 "ADD R0.w, -R0.z, c[10].x;\n" 2869 "CMP R0.x, R0, R0.w, R0.z;\n" 2870 "CMP R0.x, -R0.y, -R0, R0;\n" 2871 "ADD R0.x, R0, c[0];\n" 2872 "MUL R0.x, R0, c[10].y;\n" 2913 2873 "FLR R0.y, R0.x;\n" 2914 2874 "ADD R0.x, R0, -R0.y;\n" 2915 2875 "TEX R0, R0, texture[2], 1D;\n" 2876 2877 2878 2916 2879 "ADD R3.xyz, R0.w, -R0;\n" 2917 2880 "ADD R2.xyz, R1.w, -R1;\n" 2918 2881 "MUL R2.xyz, R2, R3;\n" 2919 "MUL R2.xyz, R2, c[ 9].y;\n"2882 "MUL R2.xyz, R2, c[;\n" 2920 2883 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 2921 2884 "MUL R4.xyz, R0, R2.w;\n" 2922 2885 "MAD R2.xyz, R0, R2.w, R2;\n" 2923 2886 "MUL R3.xyz, R0, R1;\n" 2924 "ADD R2.w, -R0, c[ 7];\n"2925 "MAD R3.xyz, R3, c[ 9].y, R4;\n"2926 "MUL R0.xyz, R0, c[ 9].y;\n"2887 "ADD R2.w, -R0, c[];\n" 2888 "MAD R3.xyz, R3, c[, R4;\n" 2889 "MUL R0.xyz, R0, c[;\n" 2927 2890 "SGE R0.xyz, R0, R0.w;\n" 2928 2891 "MAD R3.xyz, R1, R2.w, R3;\n" … … 2932 2895 "ADD R0.z, R0.w, R1.w;\n" 2933 2896 "MAD R2.w, -R0, R1, R0.z;\n" 2934 "ADD R0.xy, fragment.position, c[ 0];\n"2935 "MUL R0.xy, R0, c[ 1];\n"2897 "ADD R0.xy, fragment.position, c[];\n" 2898 "MUL R0.xy, R0, c[];\n" 2936 2899 "TEX R0, R0, texture[1], 2D;\n" 2937 2900 "ADD R2, R2, -R1;\n" 2938 "DP4 R0.x, R0, c[ 2];\n"2901 "DP4 R0.x, R0, c[];\n" 2939 2902 "MAD result.color, R0.x, R2, R1;\n" 2940 2903 "END\n" … … 2943 2906 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SOFTLIGHT = 2944 2907 "!!ARBfp1.0\n" 2945 "PARAM c[12] = { program.local[0..5],\n" 2946 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 2947 " { 2.3561945, 0.78539819, -1, 1 },\n" 2948 " program.local[8],\n" 2949 " { 0.15915494, 9.9999997e-06, 2, 8 },\n" 2950 " program.local[10],\n" 2908 "PARAM c[13] = { program.local[0..7],\n" 2909 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 2910 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 2911 " { 3.141593, 0.15915494, 1, 2 },\n" 2912 " { 9.9999997e-006, 4, 16, 12 },\n" 2951 2913 " { 3 } };\n" 2952 2914 "TEMP R0;\n" … … 2957 2919 "TEMP R5;\n" 2958 2920 "TEMP R6;\n" 2959 "MUL R0.xyz, fragment.position.y, c[ 4];\n"2960 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"2961 "ADD R0.xyz, R0, c[ 5];\n"2921 "MUL R0.xyz, fragment.position.y, c[];\n" 2922 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 2923 "ADD R0.xyz, R0, c[];\n" 2962 2924 "RCP R0.z, R0.z;\n" 2963 2925 "MUL R0.xy, R0, R0.z;\n" … … 2965 2927 "ABS R0.z, R0.y;\n" 2966 2928 "ADD R0.z, R0, -R0.w;\n" 2967 "ADD R 0.w, R0.y, c[6].x;\n"2929 "ADD R;\n" 2968 2930 "ABS R0.z, R0;\n" 2969 "CMP R0.y, -R0.z, R0, R 0.w;\n"2931 "CMP R0.y, -R0.z, R0, R;\n" 2970 2932 "ABS R0.z, -R0.y;\n" 2971 "ADD R0.z, R0, c[6].y;\n" 2972 "ADD R0.w, R0.x, R0.z;\n" 2973 "ADD R1.x, R0.z, -R0;\n" 2974 "RCP R1.y, R0.w;\n" 2975 "RCP R1.x, R1.x;\n" 2976 "MUL R0.w, R0, R1.x;\n" 2977 "ADD R0.z, R0.x, -R0;\n" 2978 "MUL R0.z, R0, R1.y;\n" 2979 "CMP R0.z, R0.x, R0.w, R0;\n" 2980 "MOV R1.x, c[7].y;\n" 2981 "MUL R0.w, R0.z, R0.z;\n" 2982 "CMP R0.x, R0, c[7], R1;\n" 2983 "MAD R0.w, R0, c[6].z, -c[6];\n" 2984 "MAD R0.x, R0.w, R0.z, R0;\n" 2985 "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" 2933 "MAX R1.x, R0.w, R0.z;\n" 2934 "RCP R1.y, R1.x;\n" 2935 "MIN R1.x, R0.w, R0.z;\n" 2936 "MUL R1.x, R1, R1.y;\n" 2937 "MUL R1.y, R1.x, R1.x;\n" 2938 "MAD R1.z, R1.y, c[8].y, c[8];\n" 2939 "MAD R1.z, R1, R1.y, -c[8].w;\n" 2940 "MAD R1.z, R1, R1.y, c[9].x;\n" 2941 "MAD R1.z, R1, R1.y, -c[9].y;\n" 2942 "MAD R1.y, R1.z, R1, c[9].z;\n" 2943 "MUL R1.x, R1.y, R1;\n" 2944 "ADD R1.y, -R1.x, c[9].w;\n" 2945 "ADD R0.z, -R0.w, R0;\n" 2946 "CMP R0.z, -R0, R1.y, R1.x;\n" 2947 "ADD R0.w, -R0.z, c[10].x;\n" 2948 "CMP R0.x, R0, R0.w, R0.z;\n" 2949 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 2986 2950 "TEX R1, R0.zwzw, texture[0], 2D;\n" 2987 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 2988 "MAD R0.x, R0, R0.y, c[8];\n" 2989 "MUL R0.x, R0, c[9];\n" 2990 "FLR R0.y, R0.x;\n" 2991 "MAX R0.z, R1.w, c[9].y;\n" 2992 "RCP R2.w, R0.z;\n" 2993 "MUL R2.xyz, R1, R2.w;\n" 2994 "RSQ R3.w, R2.x;\n" 2995 "RSQ R4.y, R2.z;\n" 2996 "RCP R4.x, R3.w;\n" 2997 "ADD R0.x, R0, -R0.y;\n" 2998 "TEX R0, R0, texture[2], 1D;\n" 2999 "MAD R3.xyz, R0, c[9].z, -R0.w;\n" 3000 "RSQ R3.w, R2.y;\n" 3001 "RCP R4.z, R4.y;\n" 3002 "RCP R4.y, R3.w;\n" 3003 "MAD R4.xyz, R4, R1.w, -R1;\n" 3004 "MUL R6.xyz, R4, R3;\n" 3005 "MUL R4.xyz, -R2, c[9].w;\n" 3006 "MAD R2.xyz, -R1, R2.w, c[7].w;\n" 3007 "ADD R5.xyz, R4, c[11].x;\n" 3008 "MUL R4.xyz, R2, R3;\n" 3009 "MAD R4.xyz, -R4, R5, R0.w;\n" 3010 "MAD R2.xyz, -R2, R3, R0.w;\n" 3011 "MAD R5.xyz, R1, R0.w, R6;\n" 3012 "MUL R4.xyz, R1, R4;\n" 3013 "MUL R6.xyz, R1, c[9].w;\n" 3014 "ADD R5.xyz, R5, -R4;\n" 3015 "SGE R6.xyz, R6, R1.w;\n" 3016 "MUL R5.xyz, R6, R5;\n" 3017 "ADD R3.xyz, R4, R5;\n" 3018 "MUL R2.xyz, R1, R2;\n" 3019 "MUL R4.xyz, R0, c[9].z;\n" 3020 "ADD R3.xyz, R3, -R2;\n" 3021 "SGE R4.xyz, R4, R0.w;\n" 3022 "MUL R3.xyz, R4, R3;\n" 3023 "ADD R2.xyz, R2, R3;\n" 3024 "ADD R2.w, -R1, c[7];\n" 3025 "MAD R0.xyz, R0, R2.w, R2;\n" 3026 "ADD R2.x, -R0.w, c[7].w;\n" 3027 "MAD R2.xyz, R1, R2.x, R0;\n" 3028 "ADD R0.z, R0.w, R1.w;\n" 3029 "MAD R2.w, -R0, R1, R0.z;\n" 3030 "ADD R0.xy, fragment.position, c[0];\n" 3031 "MUL R0.xy, R0, c[1];\n" 3032 "TEX R0, R0, texture[1], 2D;\n" 3033 "ADD R2, R2, -R1;\n" 3034 "DP4 R0.x, R0, c[2];\n" 3035 "MAD result.color, R0.x, R2, R1;\n" 3036 "END\n" 3037 ; 3038 3039 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DIFFERENCE = 3040 "!!ARBfp1.0\n" 3041 "PARAM c[11] = { program.local[0..5],\n" 3042 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3043 " { 2.3561945, 0.78539819, -1, 1 },\n" 3044 " program.local[8],\n" 3045 " { 0.15915494, 2 },\n" 3046 " program.local[10] };\n" 3047 "TEMP R0;\n" 3048 "TEMP R1;\n" 3049 "TEMP R2;\n" 3050 "TEMP R3;\n" 3051 "MUL R0.xyz, fragment.position.y, c[4];\n" 3052 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 3053 "ADD R0.xyz, R0, c[5];\n" 3054 "RCP R0.z, R0.z;\n" 3055 "MUL R0.xy, R0, R0.z;\n" 3056 "ABS R0.w, R0.x;\n" 3057 "ABS R0.z, R0.y;\n" 3058 "ADD R0.z, R0, -R0.w;\n" 3059 "ADD R0.w, R0.y, c[6].x;\n" 3060 "ABS R0.z, R0;\n" 3061 "CMP R0.y, -R0.z, R0, R0.w;\n" 3062 "ABS R0.z, -R0.y;\n" 3063 "ADD R0.z, R0, c[6].y;\n" 3064 "ADD R0.w, R0.x, R0.z;\n" 3065 "ADD R1.x, R0.z, -R0;\n" 3066 "RCP R1.y, R0.w;\n" 3067 "RCP R1.x, R1.x;\n" 3068 "MUL R0.w, R0, R1.x;\n" 3069 "ADD R0.z, R0.x, -R0;\n" 3070 "MUL R0.z, R0, R1.y;\n" 3071 "CMP R0.z, R0.x, R0.w, R0;\n" 3072 "MUL R0.w, R0.z, R0.z;\n" 3073 "MOV R1.x, c[7].y;\n" 3074 "CMP R0.x, R0, c[7], R1;\n" 3075 "MAD R0.w, R0, c[6].z, -c[6];\n" 3076 "MAD R0.x, R0.w, R0.z, R0;\n" 3077 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 3078 "MAD R0.x, R0, R0.y, c[8];\n" 3079 "MUL R0.x, R0, c[9];\n" 3080 "FLR R0.y, R0.x;\n" 3081 "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" 3082 "TEX R1, R0.zwzw, texture[0], 2D;\n" 3083 "ADD R0.x, R0, -R0.y;\n" 3084 "TEX R0, R0, texture[2], 1D;\n" 3085 "ADD R3.xyz, R0, R1;\n" 3086 "MUL R2.xyz, R1, R0.w;\n" 3087 "MUL R0.xyz, R0, R1.w;\n" 3088 "MIN R0.xyz, R0, R2;\n" 3089 "MAD R2.xyz, -R0, c[9].y, R3;\n" 3090 "ADD R0.z, R0.w, R1.w;\n" 3091 "MAD R2.w, -R0, R1, R0.z;\n" 3092 "ADD R0.xy, fragment.position, c[0];\n" 3093 "MUL R0.xy, R0, c[1];\n" 3094 "TEX R0, R0, texture[1], 2D;\n" 3095 "ADD R2, R2, -R1;\n" 3096 "DP4 R0.x, R0, c[2];\n" 3097 "MAD result.color, R0.x, R2, R1;\n" 3098 "END\n" 3099 ; 3100 3101 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_EXCLUSION = 3102 "!!ARBfp1.0\n" 3103 "PARAM c[11] = { program.local[0..5],\n" 3104 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3105 " { 2.3561945, 0.78539819, -1, 1 },\n" 3106 " program.local[8],\n" 3107 " { 0.15915494, 2 },\n" 3108 " program.local[10] };\n" 3109 "TEMP R0;\n" 3110 "TEMP R1;\n" 3111 "TEMP R2;\n" 3112 "TEMP R3;\n" 3113 "MUL R0.xyz, fragment.position.y, c[4];\n" 3114 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 3115 "ADD R0.xyz, R0, c[5];\n" 3116 "RCP R0.z, R0.z;\n" 3117 "MUL R0.xy, R0, R0.z;\n" 3118 "ABS R0.w, R0.x;\n" 3119 "ABS R0.z, R0.y;\n" 3120 "ADD R0.z, R0, -R0.w;\n" 3121 "ADD R0.w, R0.y, c[6].x;\n" 3122 "ABS R0.z, R0;\n" 3123 "CMP R0.y, -R0.z, R0, R0.w;\n" 3124 "ABS R0.z, -R0.y;\n" 3125 "ADD R0.z, R0, c[6].y;\n" 3126 "ADD R0.w, R0.x, R0.z;\n" 3127 "ADD R1.x, R0.z, -R0;\n" 3128 "RCP R1.y, R0.w;\n" 3129 "RCP R1.x, R1.x;\n" 3130 "MUL R0.w, R0, R1.x;\n" 3131 "ADD R0.z, R0.x, -R0;\n" 3132 "MUL R0.z, R0, R1.y;\n" 3133 "CMP R0.z, R0.x, R0.w, R0;\n" 3134 "MUL R0.w, R0.z, R0.z;\n" 3135 "MOV R1.x, c[7].y;\n" 3136 "CMP R0.x, R0, c[7], R1;\n" 3137 "MAD R0.w, R0, c[6].z, -c[6];\n" 3138 "MUL R1.xy, fragment.position, c[10];\n" 3139 "TEX R1, R1, texture[0], 2D;\n" 3140 "CMP R0.y, -R0, c[7].z, c[7].w;\n" 3141 "MAD R0.x, R0.w, R0.z, R0;\n" 3142 "MAD R0.x, R0, R0.y, c[8];\n" 3143 "MUL R0.x, R0, c[9];\n" 2951 "CMP R0.x, -R0.y, -R0, R0;\n" 2952 "MAX R0.z, R1.w, c[11].x;\n" 2953 "RCP R2.x, R0.z;\n" 2954 "MUL R3.xyz, R1, R2.x;\n" 2955 "MAD R4.xyz, R3, c[11].z, -c[11].w;\n" 2956 "ADD R0.x, R0, c[0];\n" 2957 "MUL R0.x, R0, c[10].y;\n" 3144 2958 "FLR R0.y, R0.x;\n" 3145 2959 "ADD R0.x, R0, -R0.y;\n" 3146 2960 "TEX R0, R0, texture[2], 1D;\n" 3147 "MUL R2.xyz, R1, R0.w;\n" 3148 "MAD R3.xyz, R0, R1.w, R2;\n" 3149 "MUL R2.xyz, R0, R1;\n" 3150 "MAD R2.xyz, -R2, c[9].y, R3;\n" 3151 "ADD R2.w, -R1, c[7];\n" 3152 "MAD R0.xyz, R0, R2.w, R2;\n" 3153 "ADD R2.x, -R0.w, c[7].w;\n" 3154 "MAD R2.xyz, R1, R2.x, R0;\n" 2961 "MAD R2.xyz, R0, c[10].w, -R0.w;\n" 2962 "MAD R4.xyz, R3, R4, c[12].x;\n" 2963 "MUL R5.xyz, R1.w, R2;\n" 2964 "MUL R6.xyz, R5, R4;\n" 2965 "RSQ R2.w, R3.x;\n" 2966 "RCP R4.x, R2.w;\n" 2967 "RSQ R2.w, R3.y;\n" 2968 "RSQ R3.w, R3.z;\n" 2969 "RCP R4.y, R2.w;\n" 2970 "RCP R4.z, R3.w;\n" 2971 "ADD R4.xyz, -R3, R4;\n" 2972 "MUL R6.xyz, R3, R6;\n" 2973 "MUL R4.xyz, R5, R4;\n" 2974 "ADD R3.xyz, -R3, c[10].z;\n" 2975 "MAD R2.xyz, R2, R3, R0.w;\n" 2976 "MUL R3.xyz, R0, c[10].w;\n" 2977 "MAD R5.xyz, R0.w, R1, R6;\n" 2978 "MAD R4.xyz, R0.w, R1, R4;\n" 2979 "ADD R6.xyz, R4, -R5;\n" 2980 "MUL R4.xyz, R1, c[11].y;\n" 2981 "SGE R4.xyz, R4, R1.w;\n" 2982 "MAD R4.xyz, R4, R6, R5;\n" 2983 "MAD R4.xyz, -R1, R2, R4;\n" 2984 "SGE R3.xyz, R3, R0.w;\n" 2985 "MUL R2.xyz, R1, R2;\n" 2986 "ADD R2.w, -R1, c[10].z;\n" 2987 "MAD R2.xyz, R3, R4, R2;\n" 2988 "MAD R2.xyz, R0, R2.w, R2;\n" 2989 "ADD R0.x, -R0.w, c[10].z;\n" 2990 "MAD R2.xyz, R1, R0.x, R2;\n" 3155 2991 "ADD R0.z, R0.w, R1.w;\n" 3156 2992 "MAD R2.w, -R0, R1, R0.z;\n" 3157 "ADD R0.xy, fragment.position, c[ 0];\n"3158 "MUL R0.xy, R0, c[ 1];\n"2993 "ADD R0.xy, fragment.position, c[];\n" 2994 "MUL R0.xy, R0, c[];\n" 3159 2995 "TEX R0, R0, texture[1], 2D;\n" 3160 2996 "ADD R2, R2, -R1;\n" 3161 "DP4 R0.x, R0, c[ 2];\n"2997 "DP4 R0.x, R0, c[];\n" 3162 2998 "MAD result.color, R0.x, R2, R1;\n" 3163 2999 "END\n" 3164 3000 ; 3165 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3166 3129 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 3167 3130 "!!ARBfp1.0\n" 3168 "PARAM c[10] = { program.local[0..2],\n" 3169 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3170 " { 2.3561945, 0.78539819, -1, 1 },\n" 3171 " program.local[5],\n" 3172 " { 0.15915494 },\n" 3173 " program.local[7..9] };\n" 3174 "TEMP R0;\n" 3175 "TEMP R1;\n" 3176 "TEMP R2;\n" 3177 "TEMP R3;\n" 3178 "MUL R0.xyz, fragment.position.y, c[1];\n" 3179 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 3180 "ADD R0.xyz, R0, c[2];\n" 3181 "RCP R0.z, R0.z;\n" 3182 "MUL R0.xy, R0, R0.z;\n" 3183 "ABS R0.w, R0.x;\n" 3184 "ABS R0.z, R0.y;\n" 3185 "ADD R0.z, R0, -R0.w;\n" 3186 "ADD R0.w, R0.y, c[3].x;\n" 3187 "ABS R0.z, R0;\n" 3188 "CMP R0.y, -R0.z, R0, R0.w;\n" 3189 "ABS R0.z, -R0.y;\n" 3190 "ADD R0.z, R0, c[3].y;\n" 3191 "ADD R0.w, R0.x, R0.z;\n" 3192 "ADD R1.x, R0.z, -R0;\n" 3193 "RCP R1.y, R0.w;\n" 3194 "RCP R1.x, R1.x;\n" 3195 "MUL R0.w, R0, R1.x;\n" 3196 "ADD R0.z, R0.x, -R0;\n" 3197 "MUL R0.z, R0, R1.y;\n" 3198 "CMP R0.z, R0.x, R0.w, R0;\n" 3199 "MUL R0.w, R0.z, R0.z;\n" 3200 "MOV R1.x, c[4].y;\n" 3201 "CMP R0.x, R0, c[4], R1;\n" 3202 "MAD R0.w, R0, c[3].z, -c[3];\n" 3203 "MAD R0.x, R0.w, R0.z, R0;\n" 3204 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3205 "MAD R0.x, R0, R0.y, c[5];\n" 3206 "MUL R0.x, R0, c[6];\n" 3131 "PARAM c[10] = { program.local[0..6],\n" 3132 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 3133 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 3134 " { 0.33299461, 0.99999559, 1 } };\n" 3135 "TEMP R0;\n" 3136 "TEMP R1;\n" 3137 "TEMP R2;\n" 3138 "TEMP R3;\n" 3139 "MUL R0.xyz, fragment.position.y, c[2];\n" 3140 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 3141 "ADD R0.xyz, R0, c[3];\n" 3142 "RCP R0.z, R0.z;\n" 3143 "MUL R0.xy, R0, R0.z;\n" 3144 "ABS R0.z, R0.x;\n" 3145 "ABS R0.w, R0.y;\n" 3146 "ADD R0.w, R0, -R0.z;\n" 3147 "ADD R1.x, R0.y, c[7].y;\n" 3148 "ABS R0.w, R0;\n" 3149 "CMP R0.y, -R0.w, R0, R1.x;\n" 3150 "ABS R0.w, -R0.y;\n" 3151 "MAX R1.x, R0.z, R0.w;\n" 3152 "RCP R1.y, R1.x;\n" 3153 "MIN R1.x, R0.z, R0.w;\n" 3154 "MUL R1.x, R1, R1.y;\n" 3155 "MUL R1.y, R1.x, R1.x;\n" 3156 "MAD R1.z, R1.y, c[8].x, c[8].y;\n" 3157 "MAD R1.z, R1, R1.y, -c[8];\n" 3158 "MAD R1.z, R1, R1.y, c[8].w;\n" 3159 "MAD R1.z, R1, R1.y, -c[9].x;\n" 3160 "MAD R1.y, R1.z, R1, c[9];\n" 3161 "MUL R1.x, R1.y, R1;\n" 3162 "ADD R0.z, -R0, R0.w;\n" 3163 "ADD R1.y, -R1.x, c[7].w;\n" 3164 "CMP R0.z, -R0, R1.y, R1.x;\n" 3165 "ADD R0.w, -R0.z, c[7].z;\n" 3166 "CMP R0.x, R0, R0.w, R0.z;\n" 3167 "CMP R0.x, -R0.y, -R0, R0;\n" 3168 "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" 3169 "TEX R1, R0.zwzw, texture[0], 2D;\n" 3170 "MUL R2.xyz, R1, c[4].y;\n" 3171 "ADD R0.x, R0, c[0];\n" 3172 "MUL R0.x, R0, c[7];\n" 3207 3173 "FLR R0.y, R0.x;\n" 3208 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n"3209 "TEX R1, R0.zwzw, texture[0], 2D;\n"3210 "MUL R2.xyz, R1, c[9].y;\n"3211 3174 "ADD R0.x, R0, -R0.y;\n" 3212 3175 "TEX R0, R0, texture[1], 1D;\n" 3213 "MUL R3.xyz, R 2, R0.w;\n"3214 "MUL R2.xyz, R0, c[ 9].x;\n"3215 "MAD R2.xyz, R 2, R1.w, R3;\n"3216 "ADD R2.w, -R1, c[ 4];\n"3217 "MUL R0.xyz, R0, c[ 8].y;\n"3218 "MAD R0.xyz, R 0, R2.w, R2;\n"3219 "ADD R2.x, -R0.w, c[ 4].w;\n"3220 "MUL R1.xyz, R1, c[ 8].z;\n"3221 "MAD result.color.xyz, R 1, R2.x, R0;\n"3176 "MUL R3.xyz, R;\n" 3177 "MUL R2.xyz, R0, c[].x;\n" 3178 "MAD R2.xyz, R, R3;\n" 3179 "ADD R2.w, -R1, c[;\n" 3180 "MUL R0.xyz, R0, c[].y;\n" 3181 "MAD R0.xyz, R, R2;\n" 3182 "ADD R2.x, -R0.w, c[;\n" 3183 "MUL R1.xyz, R1, c[].z;\n" 3184 "MAD result.color.xyz, R, R0;\n" 3222 3185 "MUL R0.x, R0.w, R1.w;\n" 3223 3186 "MUL R0.z, R1.w, R2.x;\n" 3224 3187 "MUL R0.y, R0.w, R2.w;\n" 3225 "DP3 result.color.w, R0, c[ 8];\n"3188 "DP3 result.color.w, R0, c[];\n" 3226 3189 "END\n" 3227 3190 ; … … 3229 3192 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_MULTIPLY_NOMASK = 3230 3193 "!!ARBfp1.0\n" 3231 "PARAM c[8] = { program.local[0..2],\n" 3232 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3233 " { 2.3561945, 0.78539819, -1, 1 },\n" 3234 " program.local[5],\n" 3235 " { 0.15915494 },\n" 3236 " program.local[7] };\n" 3237 "TEMP R0;\n" 3238 "TEMP R1;\n" 3239 "TEMP R2;\n" 3240 "MUL R0.xyz, fragment.position.y, c[1];\n" 3241 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 3242 "ADD R0.xyz, R0, c[2];\n" 3243 "RCP R0.z, R0.z;\n" 3244 "MUL R0.xy, R0, R0.z;\n" 3245 "ABS R0.w, R0.x;\n" 3246 "ABS R0.z, R0.y;\n" 3247 "ADD R0.z, R0, -R0.w;\n" 3248 "ADD R0.w, R0.y, c[3].x;\n" 3249 "ABS R0.z, R0;\n" 3250 "CMP R0.y, -R0.z, R0, R0.w;\n" 3251 "ABS R0.z, -R0.y;\n" 3252 "ADD R0.z, R0, c[3].y;\n" 3253 "ADD R0.w, R0.x, R0.z;\n" 3254 "ADD R1.x, R0.z, -R0;\n" 3255 "RCP R1.y, R0.w;\n" 3256 "RCP R1.x, R1.x;\n" 3257 "MUL R0.w, R0, R1.x;\n" 3258 "ADD R0.z, R0.x, -R0;\n" 3259 "MUL R0.z, R0, R1.y;\n" 3260 "CMP R0.z, R0.x, R0.w, R0;\n" 3261 "MUL R0.w, R0.z, R0.z;\n" 3262 "MOV R1.x, c[4].y;\n" 3263 "CMP R0.x, R0, c[4], R1;\n" 3264 "MAD R0.w, R0, c[3].z, -c[3];\n" 3265 "MAD R0.x, R0.w, R0.z, R0;\n" 3266 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3267 "MAD R0.x, R0, R0.y, c[5];\n" 3268 "MUL R0.x, R0, c[6];\n" 3194 "PARAM c[8] = { program.local[0..4],\n" 3195 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 3196 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 3197 " { 0.33299461, 0.99999559, 1 } };\n" 3198 "TEMP R0;\n" 3199 "TEMP R1;\n" 3200 "TEMP R2;\n" 3201 "MUL R0.xyz, fragment.position.y, c[2];\n" 3202 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 3203 "ADD R0.xyz, R0, c[3];\n" 3204 "RCP R0.z, R0.z;\n" 3205 "MUL R0.xy, R0, R0.z;\n" 3206 "ABS R0.z, R0.x;\n" 3207 "ABS R0.w, R0.y;\n" 3208 "ADD R0.w, R0, -R0.z;\n" 3209 "ADD R1.x, R0.y, c[5].y;\n" 3210 "ABS R0.w, R0;\n" 3211 "CMP R0.y, -R0.w, R0, R1.x;\n" 3212 "ABS R0.w, -R0.y;\n" 3213 "MAX R1.x, R0.z, R0.w;\n" 3214 "RCP R1.y, R1.x;\n" 3215 "MIN R1.x, R0.z, R0.w;\n" 3216 "MUL R1.x, R1, R1.y;\n" 3217 "MUL R1.y, R1.x, R1.x;\n" 3218 "MAD R1.z, R1.y, c[6].x, c[6].y;\n" 3219 "MAD R1.z, R1, R1.y, -c[6];\n" 3220 "MAD R1.z, R1, R1.y, c[6].w;\n" 3221 "MAD R1.z, R1, R1.y, -c[7].x;\n" 3222 "MAD R1.y, R1.z, R1, c[7];\n" 3223 "MUL R1.x, R1.y, R1;\n" 3224 "ADD R0.z, -R0, R0.w;\n" 3225 "ADD R1.y, -R1.x, c[5].w;\n" 3226 "CMP R0.z, -R0, R1.y, R1.x;\n" 3227 "ADD R0.w, -R0.z, c[5].z;\n" 3228 "CMP R0.x, R0, R0.w, R0.z;\n" 3229 "CMP R0.x, -R0.y, -R0, R0;\n" 3230 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 3231 "TEX R1, R0.zwzw, texture[0], 2D;\n" 3232 "ADD R0.x, R0, c[0];\n" 3233 "MUL R0.x, R0, c[5];\n" 3269 3234 "FLR R0.y, R0.x;\n" 3270 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n"3271 "TEX R1, R0.zwzw, texture[0], 2D;\n"3272 3235 "ADD R0.x, R0, -R0.y;\n" 3273 3236 "TEX R0, R0, texture[1], 1D;\n" 3274 "ADD R2.x, -R1.w, c[ 4].w;\n"3237 "ADD R2.x, -R1.w, c[;\n" 3275 3238 "MUL R2.xyz, R0, R2.x;\n" 3276 3239 "MAD R0.xyz, R0, R1, R2;\n" 3277 3240 "ADD R2.x, R0.w, R1.w;\n" 3278 "ADD R2.y, -R0.w, c[ 4].w;\n"3241 "ADD R2.y, -R0.w, c[;\n" 3279 3242 "MAD result.color.xyz, R1, R2.y, R0;\n" 3280 3243 "MAD result.color.w, -R0, R1, R2.x;\n" … … 3284 3247 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SCREEN_NOMASK = 3285 3248 "!!ARBfp1.0\n" 3286 "PARAM c[8] = { program.local[0..2],\n" 3287 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3288 " { 2.3561945, 0.78539819, -1, 1 },\n" 3289 " program.local[5],\n" 3290 " { 0.15915494 },\n" 3291 " program.local[7] };\n" 3292 "TEMP R0;\n" 3293 "TEMP R1;\n" 3294 "TEMP R2;\n" 3295 "MUL R0.xyz, fragment.position.y, c[1];\n" 3296 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 3297 "ADD R0.xyz, R0, c[2];\n" 3298 "RCP R0.z, R0.z;\n" 3299 "MUL R0.xy, R0, R0.z;\n" 3300 "ABS R0.w, R0.x;\n" 3301 "ABS R0.z, R0.y;\n" 3302 "ADD R0.z, R0, -R0.w;\n" 3303 "ADD R0.w, R0.y, c[3].x;\n" 3304 "ABS R0.z, R0;\n" 3305 "CMP R0.y, -R0.z, R0, R0.w;\n" 3306 "ABS R0.z, -R0.y;\n" 3307 "ADD R0.z, R0, c[3].y;\n" 3308 "ADD R0.w, R0.x, R0.z;\n" 3309 "ADD R1.x, R0.z, -R0;\n" 3310 "RCP R1.y, R0.w;\n" 3311 "RCP R1.x, R1.x;\n" 3312 "MUL R0.w, R0, R1.x;\n" 3313 "ADD R0.z, R0.x, -R0;\n" 3314 "MUL R0.z, R0, R1.y;\n" 3315 "CMP R0.z, R0.x, R0.w, R0;\n" 3316 "MUL R0.w, R0.z, R0.z;\n" 3317 "MOV R1.x, c[4].y;\n" 3318 "CMP R0.x, R0, c[4], R1;\n" 3319 "MAD R0.w, R0, c[3].z, -c[3];\n" 3320 "MAD R0.x, R0.w, R0.z, R0;\n" 3321 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3322 "MAD R0.x, R0, R0.y, c[5];\n" 3323 "MUL R0.x, R0, c[6];\n" 3249 "PARAM c[8] = { program.local[0..4],\n" 3250 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 3251 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 3252 " { 0.33299461, 0.99999559 } };\n" 3253 "TEMP R0;\n" 3254 "TEMP R1;\n" 3255 "TEMP R2;\n" 3256 "MUL R0.xyz, fragment.position.y, c[2];\n" 3257 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 3258 "ADD R0.xyz, R0, c[3];\n" 3259 "RCP R0.z, R0.z;\n" 3260 "MUL R0.xy, R0, R0.z;\n" 3261 "ABS R0.z, R0.x;\n" 3262 "ABS R0.w, R0.y;\n" 3263 "ADD R0.w, R0, -R0.z;\n" 3264 "ADD R1.x, R0.y, c[5].y;\n" 3265 "ABS R0.w, R0;\n" 3266 "CMP R0.y, -R0.w, R0, R1.x;\n" 3267 "ABS R0.w, -R0.y;\n" 3268 "MAX R1.x, R0.z, R0.w;\n" 3269 "RCP R1.y, R1.x;\n" 3270 "MIN R1.x, R0.z, R0.w;\n" 3271 "MUL R1.x, R1, R1.y;\n" 3272 "MUL R1.y, R1.x, R1.x;\n" 3273 "MAD R1.z, R1.y, c[6].x, c[6].y;\n" 3274 "MAD R1.z, R1, R1.y, -c[6];\n" 3275 "MAD R1.z, R1, R1.y, c[6].w;\n" 3276 "MAD R1.z, R1, R1.y, -c[7].x;\n" 3277 "MAD R1.y, R1.z, R1, c[7];\n" 3278 "MUL R1.x, R1.y, R1;\n" 3279 "ADD R0.z, -R0, R0.w;\n" 3280 "ADD R1.y, -R1.x, c[5].w;\n" 3281 "CMP R0.z, -R0, R1.y, R1.x;\n" 3282 "ADD R0.w, -R0.z, c[5].z;\n" 3283 "CMP R0.x, R0, R0.w, R0.z;\n" 3284 "CMP R0.x, -R0.y, -R0, R0;\n" 3285 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 3286 "ADD R0.x, R0, c[0];\n" 3287 "MUL R0.x, R0, c[5];\n" 3324 3288 "FLR R0.y, R0.x;\n" 3325 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n"3326 3289 "TEX R1, R0.zwzw, texture[0], 2D;\n" 3327 3290 "ADD R0.x, R0, -R0.y;\n" … … 3334 3297 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_OVERLAY_NOMASK = 3335 3298 "!!ARBfp1.0\n" 3336 "PARAM c[8] = { program.local[0..2],\n" 3337 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3338 " { 2.3561945, 0.78539819, -1, 1 },\n" 3339 " program.local[5],\n" 3340 " { 0.15915494, 2 },\n" 3341 " program.local[7] };\n" 3342 "TEMP R0;\n" 3343 "TEMP R1;\n" 3344 "TEMP R2;\n" 3345 "TEMP R3;\n" 3346 "MUL R0.xyz, fragment.position.y, c[1];\n" 3347 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 3348 "ADD R0.xyz, R0, c[2];\n" 3349 "RCP R0.z, R0.z;\n" 3350 "MUL R0.xy, R0, R0.z;\n" 3351 "ABS R0.w, R0.x;\n" 3352 "ABS R0.z, R0.y;\n" 3353 "ADD R0.z, R0, -R0.w;\n" 3354 "ADD R0.w, R0.y, c[3].x;\n" 3355 "ABS R0.z, R0;\n" 3356 "CMP R0.y, -R0.z, R0, R0.w;\n" 3357 "ABS R0.z, -R0.y;\n" 3358 "ADD R0.z, R0, c[3].y;\n" 3359 "ADD R0.w, R0.x, R0.z;\n" 3360 "ADD R1.x, R0.z, -R0;\n" 3361 "RCP R1.y, R0.w;\n" 3362 "RCP R1.x, R1.x;\n" 3363 "MUL R0.w, R0, R1.x;\n" 3364 "ADD R0.z, R0.x, -R0;\n" 3365 "MUL R0.z, R0, R1.y;\n" 3366 "CMP R0.z, R0.x, R0.w, R0;\n" 3367 "MUL R0.w, R0.z, R0.z;\n" 3368 "MOV R1.x, c[4].y;\n" 3369 "CMP R0.x, R0, c[4], R1;\n" 3370 "MAD R0.w, R0, c[3].z, -c[3];\n" 3371 "MUL R1.xy, fragment.position, c[7];\n" 3372 "TEX R1, R1, texture[0], 2D;\n" 3373 "ADD R2.w, -R1, c[4];\n" 3374 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3375 "MAD R0.x, R0.w, R0.z, R0;\n" 3376 "MAD R0.x, R0, R0.y, c[5];\n" 3377 "MUL R0.x, R0, c[6];\n" 3299 "PARAM c[8] = { program.local[0..4],\n" 3300 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 3301 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 3302 " { 3.141593, 0.15915494, 2, 1 } };\n" 3303 "TEMP R0;\n" 3304 "TEMP R1;\n" 3305 "TEMP R2;\n" 3306 "TEMP R3;\n" 3307 "MUL R0.xyz, fragment.position.y, c[2];\n" 3308 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 3309 "ADD R0.xyz, R0, c[3];\n" 3310 "RCP R0.z, R0.z;\n" 3311 "MUL R0.xy, R0, R0.z;\n" 3312 "ABS R0.z, R0.x;\n" 3313 "ABS R0.w, R0.y;\n" 3314 "ADD R0.w, R0, -R0.z;\n" 3315 "ADD R1.x, R0.y, c[5];\n" 3316 "ABS R0.w, R0;\n" 3317 "CMP R0.y, -R0.w, R0, R1.x;\n" 3318 "ABS R0.w, -R0.y;\n" 3319 "MAX R1.x, R0.z, R0.w;\n" 3320 "RCP R1.y, R1.x;\n" 3321 "MIN R1.x, R0.z, R0.w;\n" 3322 "MUL R1.x, R1, R1.y;\n" 3323 "MUL R1.y, R1.x, R1.x;\n" 3324 "MAD R1.z, R1.y, c[5].y, c[5];\n" 3325 "MAD R1.z, R1, R1.y, -c[5].w;\n" 3326 "MAD R1.z, R1, R1.y, c[6].x;\n" 3327 "MAD R1.z, R1, R1.y, -c[6].y;\n" 3328 "MAD R1.y, R1.z, R1, c[6].z;\n" 3329 "MUL R1.x, R1.y, R1;\n" 3330 "ADD R0.z, -R0, R0.w;\n" 3331 "ADD R1.y, -R1.x, c[6].w;\n" 3332 "CMP R0.z, -R0, R1.y, R1.x;\n" 3333 "ADD R0.w, -R0.z, c[7].x;\n" 3334 "CMP R0.x, R0, R0.w, R0.z;\n" 3335 "CMP R0.x, -R0.y, -R0, R0;\n" 3336 "ADD R0.x, R0, c[0];\n" 3337 "MUL R0.x, R0, c[7].y;\n" 3378 3338 "FLR R0.y, R0.x;\n" 3379 3339 "ADD R0.x, R0, -R0.y;\n" 3380 3340 "TEX R0, R0, texture[1], 1D;\n" 3341 3342 3381 3343 "ADD R3.xyz, R0.w, -R0;\n" 3382 3344 "ADD R2.xyz, R1.w, -R1;\n" 3383 3345 "MUL R2.xyz, R2, R3;\n" 3384 "MUL R2.xyz, R2, c[6].y;\n" 3346 "ADD R2.w, -R1, c[7];\n" 3347 "MUL R2.xyz, R2, c[7].z;\n" 3385 3348 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 3386 3349 "MAD R2.xyz, R0, R2.w, R2;\n" 3387 3350 "MUL R3.xyz, R0, R2.w;\n" 3388 3351 "MUL R0.xyz, R0, R1;\n" 3389 "ADD R2.w, -R0, c[ 4];\n"3390 "MAD R0.xyz, R0, c[ 6].y, R3;\n"3352 "ADD R2.w, -R0, c[];\n" 3353 "MAD R0.xyz, R0, c[, R3;\n" 3391 3354 "MAD R0.xyz, R1, R2.w, R0;\n" 3392 3355 "MAD R2.xyz, R1, R2.w, R2;\n" 3393 "MUL R1.xyz, R1, c[ 6].y;\n"3356 "MUL R1.xyz, R1, c[;\n" 3394 3357 "ADD R2.w, R0, R1;\n" 3395 3358 "ADD R2.xyz, R2, -R0;\n" … … 3402 3365 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DARKEN_NOMASK = 3403 3366 "!!ARBfp1.0\n" 3404 "PARAM c[8] = { program.local[0.. 2],\n"3405 " { 0. 0020000001, 9.9999997e-10, 0.1963, 0.9817},\n"3406 " { 2.3561945, 0.78539819, -1, 1},\n"3407 " program.local[5],\n"3408 " { 0.15915494 },\n"3409 " program.local[7] };\n"3410 "TEMP R 0;\n"3411 "TEMP R 1;\n"3412 " TEMP R2;\n"3413 " TEMP R3;\n"3414 " MUL R0.xyz, fragment.position.y, c[1];\n"3415 " MAD R0.xyz, fragment.position.x, c[0], R0;\n"3416 " ADD R0.xyz, R0, c[2];\n"3417 " RCP R0.z, R0.z;\n"3418 " MUL R0.xy, R0, R0.z;\n"3419 "A BS R0.w, R0.x;\n"3420 "A BS R0.z, R0.y;\n"3421 "A DD R0.z, R0, -R0.w;\n"3422 " ADD R0.w, R0.y, c[3].x;\n"3423 "ABS R0. z, R0;\n"3424 " CMP R0.y, -R0.z, R0, R0.w;\n"3425 " ABS R0.z, -R0.y;\n"3426 " ADD R0.z, R0, c[3].y;\n"3427 " ADD R0.w, R0.x, R0.z;\n"3428 " ADD R1.x, R0.z, -R0;\n"3429 " RCP R1.y, R0.w;\n"3430 " RCP R1.x, R1.x;\n"3431 "M UL R0.w, R0, R1.x;\n"3432 " ADD R0.z, R0.x, -R0;\n"3433 "M UL R0.z, R0, R1.y;\n"3434 " CMP R0.z, R0.x, R0.w, R0;\n"3435 " MUL R0.w, R0.z, R0.z;\n"3436 " MOV R1.x, c[4].y;\n"3437 "CMP R0. x, R0, c[4], R1;\n"3438 " MAD R0.w, R0, c[3].z, -c[3];\n"3439 " MUL R1.xy, fragment.position, c[7];\n"3440 " TEX R1, R1, texture[0], 2D;\n"3441 " CMP R0.y, -R0, c[4].z, c[4].w;\n"3442 " MAD R0.x, R0.w, R0.z, R0;\n"3443 " MAD R0.x, R0, R0.y, c[5];\n"3444 "MUL R0.x, R0, c[ 6];\n"3367 "PARAM c[8] = { program.local[0..],\n" 3368 " { 0. },\n" 3369 " { },\n" 3370 " \n" 3371 "\n" 3372 ";\n" 3373 "TEMP R;\n" 3374 "TEMP R;\n" 3375 ";\n" 3376 ";\n" 3377 "];\n" 3378 ";\n" 3379 ";\n" 3380 ";\n" 3381 ";\n" 3382 "A;\n" 3383 "A.y;\n" 3384 "A;\n" 3385 ".x;\n" 3386 "ABS R0.;\n" 3387 ", R0.w;\n" 3388 ";\n" 3389 ";\n" 3390 ";\n" 3391 ";\n" 3392 ";\n" 3393 ";\n" 3394 "M;\n" 3395 ";\n" 3396 "M;\n" 3397 ";\n" 3398 ";\n" 3399 ";\n" 3400 "CMP R0.;\n" 3401 ";\n" 3402 ";\n" 3403 ";\n" 3404 ";\n" 3405 ";\n" 3406 "];\n" 3407 "MUL R0.x, R0, c[];\n" 3445 3408 "FLR R0.y, R0.x;\n" 3446 3409 "ADD R0.x, R0, -R0.y;\n" 3447 3410 "TEX R0, R0, texture[1], 1D;\n" 3448 3411 "MUL R2.xyz, R0, R1.w;\n" 3449 "MUL R3.xyz, R 1, R0.w;\n"3412 "MUL R3.xyz, R;\n" 3450 3413 "MIN R2.xyz, R2, R3;\n" 3451 "ADD R2.w, -R1, c[ 4];\n"3414 "ADD R2.w, -R1, c[;\n" 3452 3415 "MAD R0.xyz, R0, R2.w, R2;\n" 3453 3416 "ADD R2.x, R0.w, R1.w;\n" 3454 "ADD R2.y, -R0.w, c[ 4].w;\n"3417 "ADD R2.y, -R0.w, c[;\n" 3455 3418 "MAD result.color.xyz, R1, R2.y, R0;\n" 3456 3419 "MAD result.color.w, -R0, R1, R2.x;\n" … … 3460 3423 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_LIGHTEN_NOMASK = 3461 3424 "!!ARBfp1.0\n" 3462 "PARAM c[8] = { program.local[0.. 2],\n"3463 " { 0. 0020000001, 9.9999997e-10, 0.1963, 0.9817},\n"3464 " { 2.3561945, 0.78539819, -1, 1},\n"3465 " program.local[5],\n"3466 " { 0.15915494 },\n"3467 " program.local[7] };\n"3468 "TEMP R 0;\n"3469 "TEMP R 1;\n"3470 " TEMP R2;\n"3471 " TEMP R3;\n"3472 " MUL R0.xyz, fragment.position.y, c[1];\n"3473 " MAD R0.xyz, fragment.position.x, c[0], R0;\n"3474 " ADD R0.xyz, R0, c[2];\n"3475 " RCP R0.z, R0.z;\n"3476 " MUL R0.xy, R0, R0.z;\n"3477 "A BS R0.w, R0.x;\n"3478 "A BS R0.z, R0.y;\n"3479 "A DD R0.z, R0, -R0.w;\n"3480 " ADD R0.w, R0.y, c[3].x;\n"3481 "ABS R0. z, R0;\n"3482 " CMP R0.y, -R0.z, R0, R0.w;\n"3483 " ABS R0.z, -R0.y;\n"3484 " ADD R0.z, R0, c[3].y;\n"3485 " ADD R0.w, R0.x, R0.z;\n"3486 " ADD R1.x, R0.z, -R0;\n"3487 " RCP R1.y, R0.w;\n"3488 " RCP R1.x, R1.x;\n"3489 "M UL R0.w, R0, R1.x;\n"3490 " ADD R0.z, R0.x, -R0;\n"3491 "M UL R0.z, R0, R1.y;\n"3492 " CMP R0.z, R0.x, R0.w, R0;\n"3493 " MUL R0.w, R0.z, R0.z;\n"3494 " MOV R1.x, c[4].y;\n"3495 "CMP R0. x, R0, c[4], R1;\n"3496 " MAD R0.w, R0, c[3].z, -c[3];\n"3497 " MUL R1.xy, fragment.position, c[7];\n"3498 " TEX R1, R1, texture[0], 2D;\n"3499 " CMP R0.y, -R0, c[4].z, c[4].w;\n"3500 " MAD R0.x, R0.w, R0.z, R0;\n"3501 " MAD R0.x, R0, R0.y, c[5];\n"3502 "MUL R0.x, R0, c[ 6];\n"3425 "PARAM c[8] = { program.local[0..],\n" 3426 " { 0. },\n" 3427 " { },\n" 3428 " \n" 3429 "\n" 3430 ";\n" 3431 "TEMP R;\n" 3432 "TEMP R;\n" 3433 ";\n" 3434 ";\n" 3435 "];\n" 3436 ";\n" 3437 ";\n" 3438 ";\n" 3439 ";\n" 3440 "A;\n" 3441 "A.y;\n" 3442 "A;\n" 3443 ".x;\n" 3444 "ABS R0.;\n" 3445 ", R0.w;\n" 3446 ";\n" 3447 ";\n" 3448 ";\n" 3449 ";\n" 3450 ";\n" 3451 ";\n" 3452 "M;\n" 3453 ";\n" 3454 "M;\n" 3455 ";\n" 3456 ";\n" 3457 ";\n" 3458 "CMP R0.;\n" 3459 ";\n" 3460 ";\n" 3461 ";\n" 3462 ";\n" 3463 ";\n" 3464 "];\n" 3465 "MUL R0.x, R0, c[];\n" 3503 3466 "FLR R0.y, R0.x;\n" 3504 3467 "ADD R0.x, R0, -R0.y;\n" 3505 3468 "TEX R0, R0, texture[1], 1D;\n" 3506 3469 "MUL R2.xyz, R0, R1.w;\n" 3507 "MUL R3.xyz, R 1, R0.w;\n"3470 "MUL R3.xyz, R;\n" 3508 3471 "MAX R2.xyz, R2, R3;\n" 3509 "ADD R2.w, -R1, c[ 4];\n"3472 "ADD R2.w, -R1, c[;\n" 3510 3473 "MAD R0.xyz, R0, R2.w, R2;\n" 3511 3474 "ADD R2.x, R0.w, R1.w;\n" 3512 "ADD R2.y, -R0.w, c[ 4].w;\n"3475 "ADD R2.y, -R0.w, c[;\n" 3513 3476 "MAD result.color.xyz, R1, R2.y, R0;\n" 3514 3477 "MAD result.color.w, -R0, R1, R2.x;\n" … … 3518 3481 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORDODGE_NOMASK = 3519 3482 "!!ARBfp1.0\n" 3520 "PARAM c[8] = { program.local[0.. 2],\n"3521 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817},\n"3522 " { 2.3561945, 0.78539819, -1, 1},\n"3523 " program.local[5],\n"3524 " { 0.15915494, 1e-06 },\n"3525 " program.local[7] };\n"3526 "TEMP R 0;\n"3527 "TEMP R 1;\n"3528 " TEMP R2;\n"3529 " TEMP R3;\n"3530 " MUL R0.xyz, fragment.position.y, c[1];\n"3531 " MAD R0.xyz, fragment.position.x, c[0], R0;\n"3532 " ADD R0.xyz, R0, c[2];\n"3533 " RCP R0.z, R0.z;\n"3534 " MUL R0.xy, R0, R0.z;\n"3535 "A BS R0.w, R0.x;\n"3536 "A BS R0.z, R0.y;\n"3537 "A DD R0.z, R0, -R0.w;\n"3538 " ADD R0.w, R0.y, c[3].x;\n"3539 "ABS R0. z, R0;\n"3540 " CMP R0.y, -R0.z, R0, R0.w;\n"3541 " ABS R0.z, -R0.y;\n"3542 " ADD R0.z, R0, c[3].y;\n"3543 " ADD R0.w, R0.x, R0.z;\n"3544 " ADD R1.x, R0.z, -R0;\n"3545 " RCP R1.y, R0.w;\n"3546 " RCP R1.x, R1.x;\n"3547 "M UL R0.w, R0, R1.x;\n"3548 " ADD R0.z, R0.x, -R0;\n"3549 "M UL R0.z, R0, R1.y;\n"3550 " CMP R0.z, R0.x, R0.w, R0;\n"3551 " MUL R0.w, R0.z, R0.z;\n"3552 " MOV R1.x, c[4].y;\n"3553 "CMP R0. x, R0, c[4], R1;\n"3554 " MAD R0.w, R0, c[3].z, -c[3];\n"3555 "CMP R0. y, -R0, c[4].z, c[4].w;\n"3556 " MAD R0.x, R0.w, R0.z, R0;\n"3557 " MAD R0.x, R0, R0.y, c[5];\n"3558 "MUL R0.x, R0, c[ 6];\n"3483 "PARAM c[8] = { program.local[0..],\n" 3484 " { 0.0020000001, },\n" 3485 " { },\n" 3486 " \n" 3487 "\n" 3488 ";\n" 3489 "TEMP R;\n" 3490 "TEMP R;\n" 3491 ";\n" 3492 ";\n" 3493 "];\n" 3494 ";\n" 3495 ";\n" 3496 ";\n" 3497 ";\n" 3498 "A;\n" 3499 "A;\n" 3500 "A;\n" 3501 ".x;\n" 3502 "ABS R0.;\n" 3503 ", R0.w;\n" 3504 ";\n" 3505 ";\n" 3506 ";\n" 3507 ";\n" 3508 ";\n" 3509 ";\n" 3510 "M.x;\n" 3511 ";\n" 3512 "M;\n" 3513 ";\n" 3514 ";\n" 3515 ";\n" 3516 "CMP R0.;\n" 3517 ";\n" 3518 "CMP R0.;\n" 3519 ", R0;\n" 3520 "];\n" 3521 "MUL R0.x, R0, c[;\n" 3559 3522 "FLR R0.y, R0.x;\n" 3560 3523 "ADD R0.x, R0, -R0.y;\n" 3561 3524 "TEX R0, R0, texture[1], 1D;\n" 3562 "MAX R1.x, R0.w, c[ 6].y;\n"3525 "MAX R1.x, R0.w, c[;\n" 3563 3526 "RCP R1.x, R1.x;\n" 3564 "MAD R1.xyz, -R0, R1.x, c[ 4].w;\n"3565 "MAX R2.xyz, R1, c[ 6].y;\n"3566 "MUL R1.xy, fragment.position, c[ 7];\n"3527 "MAD R1.xyz, -R0, R1.x, c[;\n" 3528 "MAX R2.xyz, R1, c[;\n" 3529 "MUL R1.xy, fragment.position, c[];\n" 3567 3530 "TEX R1, R1, texture[0], 2D;\n" 3568 "ADD R2.w, -R0, c[ 4];\n"3531 "ADD R2.w, -R0, c[;\n" 3569 3532 "MUL R3.xyz, R1, R2.w;\n" 3570 "ADD R2.w, -R1, c[ 4];\n"3533 "ADD R2.w, -R1, c[;\n" 3571 3534 "MAD R3.xyz, R0, R2.w, R3;\n" 3572 "MUL R1.xyz, R 1, R0.w;\n"3535 "MUL R1.xyz, R;\n" 3573 3536 "MAD R0.xyz, R0, R1.w, R1;\n" 3574 3537 "MUL R2.w, R0, R1;\n" … … 3588 3551 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORBURN_NOMASK = 3589 3552 "!!ARBfp1.0\n" 3590 "PARAM c[8] = { program.local[0..2],\n" 3591 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3592 " { 2.3561945, 0.78539819, -1, 1 },\n" 3593 " program.local[5],\n" 3594 " { 0.15915494, 9.9999997e-06 },\n" 3595 " program.local[7] };\n" 3553 "PARAM c[8] = { program.local[0..4],\n" 3554 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 3555 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 3556 " { 3.141593, 0.15915494, 1, 9.9999997e-006 } };\n" 3596 3557 "TEMP R0;\n" 3597 3558 "TEMP R1;\n" … … 3600 3561 "TEMP R4;\n" 3601 3562 "TEMP R5;\n" 3602 "MUL R0.xyz, fragment.position.y, c[ 1];\n"3603 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"3604 "ADD R0.xyz, R0, c[ 2];\n"3563 "MUL R0.xyz, fragment.position.y, c[];\n" 3564 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 3565 "ADD R0.xyz, R0, c[];\n" 3605 3566 "RCP R0.z, R0.z;\n" 3606 3567 "MUL R0.xy, R0, R0.z;\n" … … 3608 3569 "ABS R0.z, R0.y;\n" 3609 3570 "ADD R0.z, R0, -R0.w;\n" 3610 "ADD R 0.w, R0.y, c[3].x;\n"3571 "ADD R;\n" 3611 3572 "ABS R0.z, R0;\n" 3612 "CMP R0.y, -R0.z, R0, R 0.w;\n"3573 "CMP R0.y, -R0.z, R0, R;\n" 3613 3574 "ABS R0.z, -R0.y;\n" 3614 "ADD R0.z, R0, c[3].y;\n" 3615 "ADD R0.w, R0.x, R0.z;\n" 3616 "ADD R1.x, R0.z, -R0;\n" 3617 "RCP R1.y, R0.w;\n" 3618 "RCP R1.x, R1.x;\n" 3619 "MUL R0.w, R0, R1.x;\n" 3620 "ADD R0.z, R0.x, -R0;\n" 3621 "MUL R0.z, R0, R1.y;\n" 3622 "CMP R0.z, R0.x, R0.w, R0;\n" 3623 "MUL R0.w, R0.z, R0.z;\n" 3624 "MOV R1.x, c[4].y;\n" 3625 "CMP R0.x, R0, c[4], R1;\n" 3626 "MAD R0.w, R0, c[3].z, -c[3];\n" 3627 "MUL R1.xy, fragment.position, c[7];\n" 3628 "TEX R1, R1, texture[0], 2D;\n" 3629 "ADD R2.w, -R1, c[4];\n" 3630 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3631 "MAD R0.x, R0.w, R0.z, R0;\n" 3632 "MAD R0.x, R0, R0.y, c[5];\n" 3633 "MUL R0.x, R0, c[6];\n" 3575 "MAX R1.x, R0.w, R0.z;\n" 3576 "RCP R1.y, R1.x;\n" 3577 "MIN R1.x, R0.w, R0.z;\n" 3578 "MUL R1.x, R1, R1.y;\n" 3579 "MUL R1.y, R1.x, R1.x;\n" 3580 "MAD R1.z, R1.y, c[5].y, c[5];\n" 3581 "MAD R1.z, R1, R1.y, -c[5].w;\n" 3582 "MAD R1.z, R1, R1.y, c[6].x;\n" 3583 "MAD R1.z, R1, R1.y, -c[6].y;\n" 3584 "MAD R1.y, R1.z, R1, c[6].z;\n" 3585 "MUL R1.x, R1.y, R1;\n" 3586 "ADD R1.y, -R1.x, c[6].w;\n" 3587 "ADD R0.z, -R0.w, R0;\n" 3588 "CMP R0.z, -R0, R1.y, R1.x;\n" 3589 "ADD R0.w, -R0.z, c[7].x;\n" 3590 "CMP R0.x, R0, R0.w, R0.z;\n" 3591 "CMP R0.x, -R0.y, -R0, R0;\n" 3592 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 3593 "TEX R1, R0.zwzw, texture[0], 2D;\n" 3594 "ADD R0.x, R0, c[0];\n" 3595 "MUL R0.x, R0, c[7].y;\n" 3634 3596 "FLR R0.y, R0.x;\n" 3635 3597 "ADD R0.x, R0, -R0.y;\n" 3636 3598 "TEX R0, R0, texture[1], 1D;\n" 3637 "MUL R2.xyz, R 1, R0.w;\n"3599 "MUL R2.xyz, R;\n" 3638 3600 "MAD R3.xyz, R0, R1.w, R2;\n" 3601 3639 3602 "MAD R2.xyz, -R0.w, R1.w, R3;\n" 3640 3603 "MUL R4.xyz, R0.w, R2;\n" 3641 "MAX R2.xyz, R0, c[ 6].y;\n"3604 "MAX R2.xyz, R0, c[;\n" 3642 3605 "MUL R5.xyz, R0, R2.w;\n" 3643 "ADD R3.w, -R0, c[ 4];\n"3606 "ADD R3.w, -R0, c[;\n" 3644 3607 "RCP R2.x, R2.x;\n" 3645 3608 "RCP R2.y, R2.y;\n" … … 3660 3623 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_HARDLIGHT_NOMASK = 3661 3624 "!!ARBfp1.0\n" 3662 "PARAM c[8] = { program.local[0..2],\n" 3663 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3664 " { 2.3561945, 0.78539819, -1, 1 },\n" 3665 " program.local[5],\n" 3666 " { 0.15915494, 2 },\n" 3667 " program.local[7] };\n" 3625 "PARAM c[8] = { program.local[0..4],\n" 3626 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 3627 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 3628 " { 3.141593, 0.15915494, 2, 1 } };\n" 3668 3629 "TEMP R0;\n" 3669 3630 "TEMP R1;\n" … … 3671 3632 "TEMP R3;\n" 3672 3633 "TEMP R4;\n" 3673 "MUL R0.xyz, fragment.position.y, c[1];\n" 3674 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 3675 "ADD R0.xyz, R0, c[2];\n" 3676 "RCP R0.z, R0.z;\n" 3677 "MUL R0.xy, R0, R0.z;\n" 3678 "ABS R0.w, R0.x;\n" 3679 "ABS R0.z, R0.y;\n" 3680 "ADD R0.z, R0, -R0.w;\n" 3681 "ADD R0.w, R0.y, c[3].x;\n" 3682 "ABS R0.z, R0;\n" 3683 "CMP R0.y, -R0.z, R0, R0.w;\n" 3684 "ABS R0.z, -R0.y;\n" 3685 "ADD R0.z, R0, c[3].y;\n" 3686 "ADD R0.w, R0.x, R0.z;\n" 3687 "ADD R1.x, R0.z, -R0;\n" 3688 "RCP R1.y, R0.w;\n" 3689 "RCP R1.x, R1.x;\n" 3690 "MUL R0.w, R0, R1.x;\n" 3691 "ADD R0.z, R0.x, -R0;\n" 3692 "MUL R0.z, R0, R1.y;\n" 3693 "CMP R0.z, R0.x, R0.w, R0;\n" 3694 "MUL R0.w, R0.z, R0.z;\n" 3695 "MOV R1.x, c[4].y;\n" 3696 "CMP R0.x, R0, c[4], R1;\n" 3697 "MAD R0.w, R0, c[3].z, -c[3];\n" 3698 "MUL R1.xy, fragment.position, c[7];\n" 3699 "TEX R1, R1, texture[0], 2D;\n" 3700 "ADD R2.w, -R1, c[4];\n" 3701 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3702 "MAD R0.x, R0.w, R0.z, R0;\n" 3703 "MAD R0.x, R0, R0.y, c[5];\n" 3704 "MUL R0.x, R0, c[6];\n" 3634 "MUL R0.xyz, fragment.position.y, c[2];\n" 3635 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 3636 "ADD R0.xyz, R0, c[3];\n" 3637 "RCP R0.z, R0.z;\n" 3638 "MUL R0.xy, R0, R0.z;\n" 3639 "ABS R0.z, R0.x;\n" 3640 "ABS R0.w, R0.y;\n" 3641 "ADD R0.w, R0, -R0.z;\n" 3642 "ADD R1.x, R0.y, c[5];\n" 3643 "ABS R0.w, R0;\n" 3644 "CMP R0.y, -R0.w, R0, R1.x;\n" 3645 "ABS R0.w, -R0.y;\n" 3646 "MAX R1.x, R0.z, R0.w;\n" 3647 "RCP R1.y, R1.x;\n" 3648 "MIN R1.x, R0.z, R0.w;\n" 3649 "MUL R1.x, R1, R1.y;\n" 3650 "MUL R1.y, R1.x, R1.x;\n" 3651 "MAD R1.z, R1.y, c[5].y, c[5];\n" 3652 "MAD R1.z, R1, R1.y, -c[5].w;\n" 3653 "MAD R1.z, R1, R1.y, c[6].x;\n" 3654 "MAD R1.z, R1, R1.y, -c[6].y;\n" 3655 "MAD R1.y, R1.z, R1, c[6].z;\n" 3656 "MUL R1.x, R1.y, R1;\n" 3657 "ADD R0.z, -R0, R0.w;\n" 3658 "ADD R1.y, -R1.x, c[6].w;\n" 3659 "CMP R0.z, -R0, R1.y, R1.x;\n" 3660 "ADD R0.w, -R0.z, c[7].x;\n" 3661 "CMP R0.x, R0, R0.w, R0.z;\n" 3662 "CMP R0.x, -R0.y, -R0, R0;\n" 3663 "ADD R0.x, R0, c[0];\n" 3664 "MUL R0.x, R0, c[7].y;\n" 3705 3665 "FLR R0.y, R0.x;\n" 3706 3666 "ADD R0.x, R0, -R0.y;\n" 3707 3667 "TEX R0, R0, texture[1], 1D;\n" 3668 3669 3670 3708 3671 "ADD R3.xyz, R0.w, -R0;\n" 3709 3672 "ADD R2.xyz, R1.w, -R1;\n" 3710 3673 "MUL R2.xyz, R2, R3;\n" 3711 "MUL R2.xyz, R2, c[ 6].y;\n"3674 "MUL R2.xyz, R2, c[;\n" 3712 3675 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 3713 3676 "MUL R4.xyz, R0, R2.w;\n" 3714 3677 "MUL R3.xyz, R0, R1;\n" 3715 3678 "MAD R2.xyz, R0, R2.w, R2;\n" 3716 "ADD R2.w, -R0, c[ 4];\n"3717 "MUL R0.xyz, R0, c[ 6].y;\n"3679 "ADD R2.w, -R0, c[];\n" 3680 "MUL R0.xyz, R0, c[;\n" 3718 3681 "MAD R2.xyz, R1, R2.w, R2;\n" 3719 "MAD R3.xyz, R3, c[ 6].y, R4;\n"3682 "MAD R3.xyz, R3, c[, R4;\n" 3720 3683 "MAD R1.xyz, R1, R2.w, R3;\n" 3721 3684 "ADD R2.w, R0, R1;\n" … … 3729 3692 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SOFTLIGHT_NOMASK = 3730 3693 "!!ARBfp1.0\n" 3731 "PARAM c[9] = { program.local[0..2],\n" 3732 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3733 " { 2.3561945, 0.78539819, -1, 1 },\n" 3734 " program.local[5],\n" 3735 " { 0.15915494, 9.9999997e-06, 2, 8 },\n" 3736 " program.local[7],\n" 3694 "PARAM c[10] = { program.local[0..4],\n" 3695 " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" 3696 " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" 3697 " { 3.141593, 0.15915494, 1, 2 },\n" 3698 " { 9.9999997e-006, 4, 16, 12 },\n" 3737 3699 " { 3 } };\n" 3738 3700 "TEMP R0;\n" … … 3743 3705 "TEMP R5;\n" 3744 3706 "TEMP R6;\n" 3745 "MUL R0.xyz, fragment.position.y, c[ 1];\n"3746 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"3747 "ADD R0.xyz, R0, c[ 2];\n"3707 "MUL R0.xyz, fragment.position.y, c[];\n" 3708 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 3709 "ADD R0.xyz, R0, c[];\n" 3748 3710 "RCP R0.z, R0.z;\n" 3749 3711 "MUL R0.xy, R0, R0.z;\n" … … 3751 3713 "ABS R0.z, R0.y;\n" 3752 3714 "ADD R0.z, R0, -R0.w;\n" 3753 "ADD R 0.w, R0.y, c[3].x;\n"3715 "ADD R;\n" 3754 3716 "ABS R0.z, R0;\n" 3755 "CMP R0.y, -R0.z, R0, R 0.w;\n"3717 "CMP R0.y, -R0.z, R0, R;\n" 3756 3718 "ABS R0.z, -R0.y;\n" 3757 "ADD R0.z, R0, c[3].y;\n" 3758 "ADD R0.w, R0.x, R0.z;\n" 3759 "ADD R1.x, R0.z, -R0;\n" 3760 "RCP R1.y, R0.w;\n" 3761 "RCP R1.x, R1.x;\n" 3762 "MUL R0.w, R0, R1.x;\n" 3763 "ADD R0.z, R0.x, -R0;\n" 3764 "MUL R0.z, R0, R1.y;\n" 3765 "CMP R0.z, R0.x, R0.w, R0;\n" 3766 "MOV R1.x, c[4].y;\n" 3767 "MUL R0.w, R0.z, R0.z;\n" 3768 "CMP R0.x, R0, c[4], R1;\n" 3769 "MAD R0.w, R0, c[3].z, -c[3];\n" 3770 "MAD R0.x, R0.w, R0.z, R0;\n" 3771 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 3719 "MAX R1.x, R0.w, R0.z;\n" 3720 "RCP R1.y, R1.x;\n" 3721 "MIN R1.x, R0.w, R0.z;\n" 3722 "MUL R1.x, R1, R1.y;\n" 3723 "MUL R1.y, R1.x, R1.x;\n" 3724 "MAD R1.z, R1.y, c[5].y, c[5];\n" 3725 "MAD R1.z, R1, R1.y, -c[5].w;\n" 3726 "MAD R1.z, R1, R1.y, c[6].x;\n" 3727 "MAD R1.z, R1, R1.y, -c[6].y;\n" 3728 "MAD R1.y, R1.z, R1, c[6].z;\n" 3729 "MUL R1.x, R1.y, R1;\n" 3730 "ADD R1.y, -R1.x, c[6].w;\n" 3731 "ADD R0.z, -R0.w, R0;\n" 3732 "CMP R0.z, -R0, R1.y, R1.x;\n" 3733 "ADD R0.w, -R0.z, c[7].x;\n" 3734 "CMP R0.x, R0, R0.w, R0.z;\n" 3735 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 3772 3736 "TEX R1, R0.zwzw, texture[0], 2D;\n" 3773 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3774 "MAD R0.x, R0, R0.y, c[5];\n" 3775 "MUL R0.x, R0, c[6];\n" 3776 "FLR R0.y, R0.x;\n" 3777 "MAX R0.z, R1.w, c[6].y;\n" 3778 "RCP R2.w, R0.z;\n" 3779 "MUL R2.xyz, R1, R2.w;\n" 3780 "RSQ R3.w, R2.x;\n" 3781 "RSQ R4.y, R2.z;\n" 3782 "RCP R4.x, R3.w;\n" 3783 "ADD R0.x, R0, -R0.y;\n" 3784 "TEX R0, R0, texture[1], 1D;\n" 3785 "MAD R3.xyz, R0, c[6].z, -R0.w;\n" 3786 "RSQ R3.w, R2.y;\n" 3787 "RCP R4.z, R4.y;\n" 3788 "RCP R4.y, R3.w;\n" 3789 "MAD R4.xyz, R4, R1.w, -R1;\n" 3790 "MUL R6.xyz, R4, R3;\n" 3791 "MUL R4.xyz, -R2, c[6].w;\n" 3792 "MAD R2.xyz, -R1, R2.w, c[4].w;\n" 3793 "ADD R5.xyz, R4, c[8].x;\n" 3794 "MUL R4.xyz, R2, R3;\n" 3795 "MAD R4.xyz, -R4, R5, R0.w;\n" 3796 "MAD R2.xyz, -R2, R3, R0.w;\n" 3797 "MAD R5.xyz, R1, R0.w, R6;\n" 3798 "MUL R4.xyz, R1, R4;\n" 3799 "MUL R6.xyz, R1, c[6].w;\n" 3800 "ADD R5.xyz, R5, -R4;\n" 3801 "SGE R6.xyz, R6, R1.w;\n" 3802 "MUL R5.xyz, R6, R5;\n" 3803 "ADD R3.xyz, R4, R5;\n" 3804 "MUL R2.xyz, R1, R2;\n" 3805 "MUL R4.xyz, R0, c[6].z;\n" 3806 "ADD R3.xyz, R3, -R2;\n" 3807 "SGE R4.xyz, R4, R0.w;\n" 3808 "MUL R3.xyz, R4, R3;\n" 3809 "ADD R2.xyz, R2, R3;\n" 3810 "ADD R2.w, -R1, c[4];\n" 3811 "MAD R0.xyz, R0, R2.w, R2;\n" 3812 "ADD R2.x, R0.w, R1.w;\n" 3813 "ADD R2.y, -R0.w, c[4].w;\n" 3814 "MAD result.color.xyz, R1, R2.y, R0;\n" 3815 "MAD result.color.w, -R0, R1, R2.x;\n" 3816 "END\n" 3817 ; 3818 3819 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DIFFERENCE_NOMASK = 3820 "!!ARBfp1.0\n" 3821 "PARAM c[8] = { program.local[0..2],\n" 3822 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3823 " { 2.3561945, 0.78539819, -1, 1 },\n" 3824 " program.local[5],\n" 3825 " { 0.15915494, 2 },\n" 3826 " program.local[7] };\n" 3827 "TEMP R0;\n" 3828 "TEMP R1;\n" 3829 "TEMP R2;\n" 3830 "TEMP R3;\n" 3831 "MUL R0.xyz, fragment.position.y, c[1];\n" 3832 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 3833 "ADD R0.xyz, R0, c[2];\n" 3834 "RCP R0.z, R0.z;\n" 3835 "MUL R0.xy, R0, R0.z;\n" 3836 "ABS R0.w, R0.x;\n" 3837 "ABS R0.z, R0.y;\n" 3838 "ADD R0.z, R0, -R0.w;\n" 3839 "ADD R0.w, R0.y, c[3].x;\n" 3840 "ABS R0.z, R0;\n" 3841 "CMP R0.y, -R0.z, R0, R0.w;\n" 3842 "ABS R0.z, -R0.y;\n" 3843 "ADD R0.z, R0, c[3].y;\n" 3844 "ADD R0.w, R0.x, R0.z;\n" 3845 "ADD R1.x, R0.z, -R0;\n" 3846 "RCP R1.y, R0.w;\n" 3847 "RCP R1.x, R1.x;\n" 3848 "MUL R0.w, R0, R1.x;\n" 3849 "ADD R0.z, R0.x, -R0;\n" 3850 "MUL R0.z, R0, R1.y;\n" 3851 "CMP R0.z, R0.x, R0.w, R0;\n" 3852 "MUL R0.w, R0.z, R0.z;\n" 3853 "MOV R1.x, c[4].y;\n" 3854 "CMP R0.x, R0, c[4], R1;\n" 3855 "MAD R0.w, R0, c[3].z, -c[3];\n" 3856 "MUL R1.xy, fragment.position, c[7];\n" 3857 "TEX R1, R1, texture[0], 2D;\n" 3858 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 3859 "MAD R0.x, R0.w, R0.z, R0;\n" 3860 "MAD R0.x, R0, R0.y, c[5];\n" 3861 "MUL R0.x, R0, c[6];\n" 3737 "CMP R0.x, -R0.y, -R0, R0;\n" 3738 "MAX R0.z, R1.w, c[8].x;\n" 3739 "RCP R2.x, R0.z;\n" 3740 "MUL R3.xyz, R1, R2.x;\n" 3741 "MAD R4.xyz, R3, c[8].z, -c[8].w;\n" 3742 "ADD R0.x, R0, c[0];\n" 3743 "MUL R0.x, R0, c[7].y;\n" 3862 3744 "FLR R0.y, R0.x;\n" 3863 3745 "ADD R0.x, R0, -R0.y;\n" 3864 3746 "TEX R0, R0, texture[1], 1D;\n" 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3865 3828 "MUL R2.xyz, R0, R1.w;\n" 3866 "MUL R3.xyz, R 1, R0.w;\n"3829 "MUL R3.xyz, R;\n" 3867 3830 "ADD R0.xyz, R0, R1;\n" 3868 3831 "MIN R2.xyz, R2, R3;\n" 3869 3832 "ADD R1.x, R0.w, R1.w;\n" 3870 "MAD result.color.xyz, -R2, c[ 6].y, R0;\n"3833 "MAD result.color.xyz, -R2, c[, R0;\n" 3871 3834 "MAD result.color.w, -R0, R1, R1.x;\n" 3872 3835 "END\n" … … 3875 3838 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_EXCLUSION_NOMASK = 3876 3839 "!!ARBfp1.0\n" 3877 "PARAM c[8] = { program.local[0.. 2],\n"3878 " { 0. 0020000001, 9.9999997e-10, 0.1963, 0.9817},\n"3879 " { 2.3561945, 0.78539819, -1, 1},\n"3880 " program.local[5],\n"3881 " { 0.15915494, 2 },\n"3882 " program.local[7] };\n"3883 "TEMP R 0;\n"3884 "TEMP R 1;\n"3885 " TEMP R2;\n"3886 " TEMP R3;\n"3887 " MUL R0.xyz, fragment.position.y, c[1];\n"3888 " MAD R0.xyz, fragment.position.x, c[0], R0;\n"3889 " ADD R0.xyz, R0, c[2];\n"3890 " RCP R0.z, R0.z;\n"3891 " MUL R0.xy, R0, R0.z;\n"3892 "A BS R0.w, R0.x;\n"3893 "A BS R0.z, R0.y;\n"3894 "A DD R0.z, R0, -R0.w;\n"3895 " ADD R0.w, R0.y, c[3].x;\n"3896 "ABS R0. z, R0;\n"3897 " CMP R0.y, -R0.z, R0, R0.w;\n"3898 " ABS R0.z, -R0.y;\n"3899 " ADD R0.z, R0, c[3].y;\n"3900 " ADD R0.w, R0.x, R0.z;\n"3901 " ADD R1.x, R0.z, -R0;\n"3902 " RCP R1.y, R0.w;\n"3903 " RCP R1.x, R1.x;\n"3904 "M UL R0.w, R0, R1.x;\n"3905 " ADD R0.z, R0.x, -R0;\n"3906 "M UL R0.z, R0, R1.y;\n"3907 " CMP R0.z, R0.x, R0.w, R0;\n"3908 " MUL R0.w, R0.z, R0.z;\n"3909 " MOV R1.x, c[4].y;\n"3910 "CMP R0. x, R0, c[4], R1;\n"3911 " MAD R0.w, R0, c[3].z, -c[3];\n"3912 " MUL R1.xy, fragment.position, c[7];\n"3913 " TEX R1, R1, texture[0], 2D;\n"3914 " CMP R0.y, -R0, c[4].z, c[4].w;\n"3915 " MAD R0.x, R0.w, R0.z, R0;\n"3916 " MAD R0.x, R0, R0.y, c[5];\n"3917 "MUL R0.x, R0, c[ 6];\n"3840 "PARAM c[8] = { program.local[0..],\n" 3841 " { 0. },\n" 3842 " { },\n" 3843 " \n" 3844 "\n" 3845 ";\n" 3846 "TEMP R;\n" 3847 "TEMP R;\n" 3848 ";\n" 3849 ";\n" 3850 "];\n" 3851 ";\n" 3852 ";\n" 3853 ";\n" 3854 ";\n" 3855 "A;\n" 3856 "A.y;\n" 3857 "A;\n" 3858 ".x;\n" 3859 "ABS R0.;\n" 3860 ", R0.w;\n" 3861 ";\n" 3862 ";\n" 3863 ";\n" 3864 ";\n" 3865 ";\n" 3866 ";\n" 3867 "M;\n" 3868 ";\n" 3869 "M;\n" 3870 ";\n" 3871 ";\n" 3872 ";\n" 3873 "CMP R0.;\n" 3874 ";\n" 3875 ";\n" 3876 ";\n" 3877 ";\n" 3878 ";\n" 3879 "];\n" 3880 "MUL R0.x, R0, c[];\n" 3918 3881 "FLR R0.y, R0.x;\n" 3919 3882 "ADD R0.x, R0, -R0.y;\n" 3920 3883 "TEX R0, R0, texture[1], 1D;\n" 3921 "MUL R2.xyz, R 1, R0.w;\n"3884 "MUL R2.xyz, R;\n" 3922 3885 "MAD R3.xyz, R0, R1.w, R2;\n" 3923 3886 "MUL R2.xyz, R0, R1;\n" 3924 "MAD R2.xyz, -R2, c[ 6].y, R3;\n"3925 "ADD R2.w, -R1, c[ 4];\n"3887 "MAD R2.xyz, -R2, c[, R3;\n" 3888 "ADD R2.w, -R1, c[];\n" 3926 3889 "MAD R0.xyz, R0, R2.w, R2;\n" 3927 3890 "ADD R2.x, R0.w, R1.w;\n" 3928 "ADD R2.y, -R0.w, c[ 4].w;\n"3891 "ADD R2.y, -R0.w, c[].w;\n" 3929 3892 "MAD result.color.xyz, R1, R2.y, R0;\n" 3930 3893 "MAD result.color.w, -R0, R1, R2.x;\n" … … 3934 3897 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODE_BLEND_MODE_MASK = 3935 3898 "!!ARBfp1.0\n" 3936 "PARAM c[10] = { program.local[0.. 2],\n"3937 " { 0. 0020000001, 9.9999997e-10, 0.1963, 0.9817},\n"3938 " { 2.3561945, 0.78539819, -1, 1},\n"3939 " program.local[5],\n"3940 " { 0.15915494 },\n"3941 " program.local[7..9] };\n"3942 " TEMP R0;\n"3943 " TEMP R1;\n"3944 " MUL R0.xyz, fragment.position.y, c[1];\n"3945 " MAD R0.xyz, fragment.position.x, c[0], R0;\n"3946 " ADD R0.xyz, R0, c[2];\n"3947 " RCP R0.z, R0.z;\n"3948 " MUL R0.xy, R0, R0.z;\n"3949 "A BS R0.w, R0.x;\n"3950 "A BS R0.z, R0.y;\n"3951 "A DD R0.z, R0, -R0.w;\n"3952 " ADD R0.w, R0.y, c[3].x;\n"3953 "ABS R0. z, R0;\n"3954 " CMP R0.y, -R0.z, R0, R0.w;\n"3955 " ABS R0.z, -R0.y;\n"3956 " ADD R0.z, R0, c[3].y;\n"3957 " ADD R0.w, R0.x, R0.z;\n"3958 " ADD R1.x, R0.z, -R0;\n"3959 " RCP R1.y, R0.w;\n"3960 " RCP R1.x, R1.x;\n"3961 "M UL R0.w, R0, R1.x;\n"3962 " ADD R0.z, R0.x, -R0;\n"3963 "M UL R0.z, R0, R1.y;\n"3964 " CMP R0.z, R0.x, R0.w, R0;\n"3965 " MUL R0.w, R0.z, R0.z;\n"3966 " MOV R1.x, c[4].y;\n"3967 "CMP R0. x, R0, c[4], R1;\n"3968 " MAD R0.w, R0, c[3].z, -c[3];\n"3969 " MAD R0.x, R0.w, R0.z, R0;\n"3970 "CMP R0. y, -R0, c[4].z, c[4].w;\n"3971 " MAD R0.z, R0.x, R0.y, c[5].x;\n"3972 "MUL R1.x, R0 .z, c[6];\n"3899 "PARAM c[10] = { program.local[0..],\n" 3900 " { 0. },\n" 3901 " { },\n" 3902 " \n" 3903 "\n" 3904 ";\n" 3905 ";\n" 3906 ";\n" 3907 "];\n" 3908 ";\n" 3909 ";\n" 3910 ";\n" 3911 ";\n" 3912 "A;\n" 3913 "A.y;\n" 3914 "A;\n" 3915 ".x;\n" 3916 "ABS R0.;\n" 3917 ", R0.w;\n" 3918 ";\n" 3919 ";\n" 3920 ";\n" 3921 ";\n" 3922 ";\n" 3923 ";\n" 3924 "M;\n" 3925 ";\n" 3926 "M;\n" 3927 ";\n" 3928 ";\n" 3929 ";\n" 3930 "CMP R0.;\n" 3931 ";\n" 3932 ";\n" 3933 "CMP R0.;\n" 3934 ";\n" 3935 "MUL R1.x, R0];\n" 3973 3936 "FLR R1.y, R1.x;\n" 3974 "ADD R0. xy, fragment.position, c[7];\n"3975 "MUL R0.xy, R0 , c[8];\n"3937 "ADD R0.;\n" 3938 "MUL R0.xy, R0];\n" 3976 3939 "TEX R0, R0, texture[0], 2D;\n" 3977 3940 "ADD R1.x, R1, -R1.y;\n" 3978 "DP4 R1.y, R0, c[ 9];\n"3941 "DP4 R1.y, R0, c[];\n" 3979 3942 "TEX R0, R1, texture[1], 1D;\n" 3980 3943 "MUL result.color, R0, R1.y;\n" … … 3984 3947 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODE_BLEND_MODE_NOMASK = 3985 3948 "!!ARBfp1.0\n" 3986 "PARAM c[7] = { program.local[0..2],\n" 3987 " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" 3988 " { 2.3561945, 0.78539819, -1, 1 },\n" 3989 " program.local[5],\n" 3990 " { 0.15915494 } };\n" 3991 "TEMP R0;\n" 3992 "TEMP R1;\n" 3993 "MUL R0.xyz, fragment.position.y, c[1];\n" 3994 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 3995 "ADD R0.xyz, R0, c[2];\n" 3996 "RCP R0.z, R0.z;\n" 3997 "MUL R0.xy, R0, R0.z;\n" 3998 "ABS R0.w, R0.x;\n" 3999 "ABS R0.z, R0.y;\n" 4000 "ADD R0.z, R0, -R0.w;\n" 4001 "ADD R0.w, R0.y, c[3].x;\n" 4002 "ABS R0.z, R0;\n" 4003 "CMP R0.y, -R0.z, R0, R0.w;\n" 4004 "ABS R0.z, -R0.y;\n" 4005 "ADD R0.z, R0, c[3].y;\n" 4006 "ADD R0.w, R0.x, R0.z;\n" 4007 "ADD R1.x, R0.z, -R0;\n" 4008 "RCP R1.x, R1.x;\n" 4009 "RCP R1.y, R0.w;\n" 4010 "MUL R0.w, R0, R1.x;\n" 4011 "ADD R0.z, R0.x, -R0;\n" 4012 "MUL R0.z, R0, R1.y;\n" 4013 "CMP R0.z, R0.x, R0.w, R0;\n" 4014 "MUL R0.w, R0.z, R0.z;\n" 4015 "MOV R1.x, c[4].y;\n" 4016 "CMP R0.y, -R0, c[4].z, c[4].w;\n" 4017 "MAD R0.w, R0, c[3].z, -c[3];\n" 4018 "CMP R0.x, R0, c[4], R1;\n" 4019 "MAD R0.x, R0.w, R0.z, R0;\n" 4020 "MAD R0.x, R0, R0.y, c[5];\n" 4021 "MUL R0.x, R0, c[6];\n" 3949 "PARAM c[7] = { program.local[0..3],\n" 3950 " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" 3951 " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" 3952 " { 0.33299461, 0.99999559 } };\n" 3953 "TEMP R0;\n" 3954 "TEMP R1;\n" 3955 "MUL R0.xyz, fragment.position.y, c[2];\n" 3956 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 3957 "ADD R0.xyz, R0, c[3];\n" 3958 "RCP R0.z, R0.z;\n" 3959 "MUL R0.xy, R0, R0.z;\n" 3960 "ABS R0.z, R0.x;\n" 3961 "ABS R0.w, R0.y;\n" 3962 "ADD R0.w, R0, -R0.z;\n" 3963 "ADD R1.x, R0.y, c[4].y;\n" 3964 "ABS R0.w, R0;\n" 3965 "CMP R0.y, -R0.w, R0, R1.x;\n" 3966 "ABS R0.w, -R0.y;\n" 3967 "MAX R1.x, R0.z, R0.w;\n" 3968 "RCP R1.y, R1.x;\n" 3969 "MIN R1.x, R0.z, R0.w;\n" 3970 "MUL R1.x, R1, R1.y;\n" 3971 "MUL R1.y, R1.x, R1.x;\n" 3972 "MAD R1.z, R1.y, c[5].x, c[5].y;\n" 3973 "MAD R1.z, R1, R1.y, -c[5];\n" 3974 "MAD R1.z, R1, R1.y, c[5].w;\n" 3975 "MAD R1.z, R1, R1.y, -c[6].x;\n" 3976 "MAD R1.y, R1.z, R1, c[6];\n" 3977 "MUL R1.x, R1.y, R1;\n" 3978 "ADD R0.z, -R0, R0.w;\n" 3979 "ADD R1.y, -R1.x, c[4].w;\n" 3980 "CMP R0.z, -R0, R1.y, R1.x;\n" 3981 "ADD R0.w, -R0.z, c[4].z;\n" 3982 "CMP R0.x, R0, R0.w, R0.z;\n" 3983 "CMP R0.x, -R0.y, -R0, R0;\n" 3984 "ADD R0.x, R0, c[0];\n" 3985 "MUL R0.x, R0, c[4];\n" 4022 3986 "FLR R0.y, R0.x;\n" 4023 3987 "ADD R0.x, R0, -R0.y;\n" … … 4028 3992 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = 4029 3993 "!!ARBfp1.0\n" 4030 "PARAM c[11] = { program.local[0..7],\n" 4031 " { 1 },\n" 4032 " program.local[9..10] };\n" 4033 "TEMP R0;\n" 4034 "TEMP R1;\n" 4035 "TEMP R2;\n" 4036 "TEMP R3;\n" 4037 "MUL R0.xyz, fragment.position.y, c[4];\n" 4038 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 4039 "ADD R0.xyz, R0, c[5];\n" 4040 "RCP R0.z, R0.z;\n" 4041 "MUL R0.xy, R0, R0.z;\n" 4042 "MUL R0.xy, R0, c[6];\n" 4043 "ADD R0.x, R0, R0.y;\n" 4044 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 4045 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4046 "MUL R0.x, R0, c[6].z;\n" 4047 "TEX R0, R0, texture[2], 1D;\n" 4048 "MUL R2.xyz, R1, c[10].y;\n" 4049 "MUL R3.xyz, R2, R0.w;\n" 4050 "MUL R2.xyz, R0, c[10].x;\n" 4051 "MAD R2.xyz, R2, R1.w, R3;\n" 4052 "ADD R3.xy, fragment.position, c[0];\n" 4053 "MUL R0.xyz, R0, c[9].y;\n" 4054 "ADD R2.w, -R1, c[8].x;\n" 4055 "MAD R2.xyz, R0, R2.w, R2;\n" 4056 "MUL R0.xyz, R1, c[9].z;\n" 4057 "ADD R2.w, -R0, c[8].x;\n" 4058 "MAD R2.xyz, R0, R2.w, R2;\n" 4059 "ADD R0.y, -R1.w, c[8].x;\n" 4060 "MUL R0.z, R1.w, R2.w;\n" 4061 "MUL R0.x, R0.w, R1.w;\n" 4062 "MUL R0.y, R0.w, R0;\n" 4063 "DP3 R2.w, R0, c[9];\n" 4064 "MUL R3.xy, R3, c[1];\n" 4065 "TEX R0, R3, texture[1], 2D;\n" 4066 "ADD R2, R2, -R1;\n" 4067 "DP4 R0.x, R0, c[2];\n" 4068 "MAD result.color, R0.x, R2, R1;\n" 3994 "PARAM c[11] = { program.local[0..9],\n" 3995 " { 1 } };\n" 3996 "TEMP R0;\n" 3997 "TEMP R1;\n" 3998 "TEMP R2;\n" 3999 "TEMP R3;\n" 4000 "MUL R0.xyz, fragment.position.y, c[2];\n" 4001 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4002 "ADD R0.xyz, R0, c[3];\n" 4003 "RCP R0.z, R0.z;\n" 4004 "MUL R0.xy, R0, R0.z;\n" 4005 "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" 4006 "ADD R1.x, R0.z, R0.w;\n" 4007 "MUL R0.xy, fragment.position, c[7];\n" 4008 "TEX R0, R0, texture[0], 2D;\n" 4009 "MUL R1.x, R1, c[0].z;\n" 4010 "TEX R1, R1, texture[2], 1D;\n" 4011 "MUL R2.xyz, R0, c[4].y;\n" 4012 "MUL R3.xyz, R1.w, R2;\n" 4013 "MUL R2.xyz, R1, c[4].x;\n" 4014 "MAD R2.xyz, R0.w, R2, R3;\n" 4015 "ADD R3.xy, fragment.position, c[8];\n" 4016 "ADD R2.w, -R0, c[10].x;\n" 4017 "MUL R1.xyz, R1, c[5].y;\n" 4018 "MAD R2.xyz, R2.w, R1, R2;\n" 4019 "MUL R1.xyz, R0, c[5].z;\n" 4020 "ADD R3.z, -R1.w, c[10].x;\n" 4021 "MAD R2.xyz, R3.z, R1, R2;\n" 4022 "MUL R1.y, R1.w, R2.w;\n" 4023 "MUL R1.x, R1.w, R0.w;\n" 4024 "MUL R1.z, R0.w, R3;\n" 4025 "DP3 R2.w, R1, c[5];\n" 4026 "MUL R3.xy, R3, c[6];\n" 4027 "TEX R1, R3, texture[1], 2D;\n" 4028 "ADD R2, R2, -R0;\n" 4029 "DP4 R1.x, R1, c[9];\n" 4030 "MAD result.color, R1.x, R2, R0;\n" 4069 4031 "END\n" 4070 4032 ; … … 4077 4039 "TEMP R1;\n" 4078 4040 "TEMP R2;\n" 4079 "MUL R0.xyz, fragment.position.y, c[4];\n" 4080 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 4081 "ADD R0.xyz, R0, c[5];\n" 4082 "RCP R0.z, R0.z;\n" 4083 "MUL R0.xy, R0, R0.z;\n" 4084 "MUL R0.xy, R0, c[6];\n" 4041 "MUL R0.xyz, fragment.position.y, c[2];\n" 4042 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4043 "ADD R0.xyz, R0, c[3];\n" 4044 "RCP R0.z, R0.z;\n" 4045 "MUL R0.xy, R0, R0.z;\n" 4046 "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" 4047 "ADD R1.x, R0.z, R0.w;\n" 4048 "MUL R0.xy, fragment.position, c[5];\n" 4049 "TEX R0, R0, texture[0], 2D;\n" 4050 "MUL R1.x, R1, c[0].z;\n" 4051 "TEX R1, R1, texture[2], 1D;\n" 4052 "ADD R2.x, -R0.w, c[8];\n" 4053 "MUL R2.xyz, R1, R2.x;\n" 4054 "MAD R1.xyz, R1, R0, R2;\n" 4055 "ADD R2.x, -R1.w, c[8];\n" 4056 "MAD R2.xyz, R0, R2.x, R1;\n" 4057 "ADD R1.z, R1.w, R0.w;\n" 4058 "MAD R2.w, -R1, R0, R1.z;\n" 4059 "ADD R1.xy, fragment.position, c[6];\n" 4060 "MUL R1.xy, R1, c[4];\n" 4061 "TEX R1, R1, texture[1], 2D;\n" 4062 "ADD R2, R2, -R0;\n" 4063 "DP4 R1.x, R1, c[7];\n" 4064 "MAD result.color, R1.x, R2, R0;\n" 4065 "END\n" 4066 ; 4067 4068 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SCREEN = 4069 "!!ARBfp1.0\n" 4070 "PARAM c[8] = { program.local[0..7] };\n" 4071 "TEMP R0;\n" 4072 "TEMP R1;\n" 4073 "TEMP R2;\n" 4074 "TEMP R3;\n" 4075 "MUL R0.xyz, fragment.position.y, c[2];\n" 4076 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4077 "ADD R0.xyz, R0, c[3];\n" 4078 "RCP R0.z, R0.z;\n" 4079 "MUL R0.xy, R0, R0.z;\n" 4080 "MUL R0.xy, R0, c[0];\n" 4085 4081 "ADD R0.x, R0, R0.y;\n" 4086 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 4087 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4088 "MUL R0.x, R0, c[6].z;\n" 4089 "TEX R0, R0, texture[2], 1D;\n" 4090 "ADD R2.x, -R1.w, c[8];\n" 4091 "MUL R2.xyz, R0, R2.x;\n" 4092 "MAD R0.xyz, R0, R1, R2;\n" 4093 "ADD R2.x, -R0.w, c[8];\n" 4094 "MAD R2.xyz, R1, R2.x, R0;\n" 4095 "ADD R0.z, R0.w, R1.w;\n" 4096 "MAD R2.w, -R0, R1, R0.z;\n" 4097 "ADD R0.xy, fragment.position, c[0];\n" 4098 "MUL R0.xy, R0, c[1];\n" 4099 "TEX R0, R0, texture[1], 2D;\n" 4100 "ADD R2, R2, -R1;\n" 4101 "DP4 R0.x, R0, c[2];\n" 4102 "MAD result.color, R0.x, R2, R1;\n" 4103 "END\n" 4104 ; 4105 4106 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SCREEN = 4107 "!!ARBfp1.0\n" 4108 "PARAM c[8] = { program.local[0..7] };\n" 4109 "TEMP R0;\n" 4110 "TEMP R1;\n" 4111 "TEMP R2;\n" 4112 "TEMP R3;\n" 4113 "MUL R0.xyz, fragment.position.y, c[4];\n" 4114 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 4115 "ADD R0.xyz, R0, c[5];\n" 4116 "RCP R0.z, R0.z;\n" 4117 "MUL R0.xy, R0, R0.z;\n" 4118 "MUL R0.xy, R0, c[6];\n" 4119 "ADD R0.x, R0, R0.y;\n" 4120 "MUL R0.x, R0, c[6].z;\n" 4121 "MUL R1.xy, fragment.position, c[7];\n" 4122 "ADD R3.xy, fragment.position, c[0];\n" 4123 "TEX R1, R1, texture[0], 2D;\n" 4124 "TEX R0, R0, texture[2], 1D;\n" 4125 "ADD R2, R0, R1;\n" 4126 "MAD R2, -R0, R1, R2;\n" 4127 "MUL R3.xy, R3, c[1];\n" 4128 "TEX R0, R3, texture[1], 2D;\n" 4129 "ADD R2, R2, -R1;\n" 4130 "DP4 R0.x, R0, c[2];\n" 4131 "MAD result.color, R0.x, R2, R1;\n" 4082 "MUL R0.z, R0.x, c[0];\n" 4083 "ADD R3.xy, fragment.position, c[6];\n" 4084 "TEX R1, R0.z, texture[2], 1D;\n" 4085 "MUL R0.xy, fragment.position, c[5];\n" 4086 "TEX R0, R0, texture[0], 2D;\n" 4087 "ADD R2, R1, R0;\n" 4088 "MAD R2, -R1, R0, R2;\n" 4089 "MUL R3.xy, R3, c[4];\n" 4090 "TEX R1, R3, texture[1], 2D;\n" 4091 "ADD R2, R2, -R0;\n" 4092 "DP4 R1.x, R1, c[7];\n" 4093 "MAD result.color, R1.x, R2, R0;\n" 4132 4094 "END\n" 4133 4095 ; … … 4142 4104 "TEMP R3;\n" 4143 4105 "TEMP R4;\n" 4144 "MUL R0.xyz, fragment.position.y, c[ 4];\n"4145 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"4146 "ADD R0.xyz, R0, c[ 5];\n"4147 "RCP R0.z, R0.z;\n" 4148 "MUL R0.xy, R0, R0.z;\n" 4149 "MUL R0.xy, R0, c[ 6];\n"4106 "MUL R0.xyz, fragment.position.y, c[];\n" 4107 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4108 "ADD R0.xyz, R0, c[];\n" 4109 "RCP R0.z, R0.z;\n" 4110 "MUL R0.xy, R0, R0.z;\n" 4111 "MUL R0.xy, R0, c[];\n" 4150 4112 "ADD R0.x, R0, R0.y;\n" 4151 "MUL R0.x, R0, c[ 6].z;\n"4113 "MUL R0.x, R0, c[].z;\n" 4152 4114 "TEX R0, R0, texture[2], 1D;\n" 4153 "MUL R1.xy, fragment.position, c[ 7];\n"4115 "MUL R1.xy, fragment.position, c[];\n" 4154 4116 "TEX R1, R1, texture[0], 2D;\n" 4155 4117 "ADD R2.w, -R1, c[8].y;\n" … … 4172 4134 "ADD R0.z, R0.w, R1.w;\n" 4173 4135 "MAD R2.w, -R0, R1, R0.z;\n" 4174 "ADD R0.xy, fragment.position, c[ 0];\n"4175 "MUL R0.xy, R0, c[ 1];\n"4136 "ADD R0.xy, fragment.position, c[];\n" 4137 "MUL R0.xy, R0, c[];\n" 4176 4138 "TEX R0, R0, texture[1], 2D;\n" 4177 4139 "ADD R2, R2, -R1;\n" 4178 "DP4 R0.x, R0, c[ 2];\n"4140 "DP4 R0.x, R0, c[];\n" 4179 4141 "MAD result.color, R0.x, R2, R1;\n" 4180 4142 "END\n" … … 4189 4151 "TEMP R2;\n" 4190 4152 "TEMP R3;\n" 4191 "MUL R0.xyz, fragment.position.y, c[ 4];\n"4192 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"4193 "ADD R0.xyz, R0, c[ 5];\n"4194 "RCP R0.z, R0.z;\n" 4195 "MUL R0.xy, R0, R0.z;\n" 4196 "MUL R0.xy, R0, c[ 6];\n"4197 "ADD R0. x, R0, R0.y;\n"4198 "MUL R 0.x, R0, c[6].z;\n"4199 "MUL R 1.xy, fragment.position, c[7];\n"4200 "TEX R 1, R1, texture[0], 2D;\n"4201 "TEX R 0, R0, texture[2], 1D;\n"4202 "MUL R3.xyz, R1 , R0.w;\n"4203 "MUL R2.xyz, R 0, R1.w;\n"4153 "MUL R0.xyz, fragment.position.y, c[];\n" 4154 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4155 "ADD R0.xyz, R0, c[];\n" 4156 "RCP R0.z, R0.z;\n" 4157 "MUL R0.xy, R0, R0.z;\n" 4158 "MUL R0.xy, R0, c[];\n" 4159 "ADD R0., R0.y;\n" 4160 "MUL R].z;\n" 4161 "MUL R];\n" 4162 "TEX R, texture[0], 2D;\n" 4163 "TEX R, texture[2], 1D;\n" 4164 "MUL R3.xyz, R1;\n" 4165 "MUL R2.xyz, R.w;\n" 4204 4166 "MIN R2.xyz, R2, R3;\n" 4205 "ADD R2.w, -R 1, c[8].x;\n"4206 "MAD R 0.xyz, R0, R2.w, R2;\n"4207 "ADD R2.x, -R 0.w, c[8];\n"4208 "MAD R2.xyz, R 1, R2.x, R0;\n"4209 "ADD R 0.z, R0.w, R1.w;\n"4210 "MAD R2.w, -R 0, R1, R0.z;\n"4211 "ADD R 0.xy, fragment.position, c[0];\n"4212 "MUL R 0.xy, R0, c[1];\n"4213 "TEX R 0, R0, texture[1], 2D;\n"4214 "ADD R2, R2, -R 1;\n"4215 "DP4 R 0.x, R0, c[2];\n"4216 "MAD result.color, R 0.x, R2, R1;\n"4167 "ADD R2.w, -R, c[8].x;\n" 4168 "MAD R, R2.w, R2;\n" 4169 "ADD R2.x, -R.w, c[8];\n" 4170 "MAD R2.xyz, R;\n" 4171 "ADD R.w;\n" 4172 "MAD R2.w, -R.z;\n" 4173 "ADD R];\n" 4174 "MUL R];\n" 4175 "TEX R, texture[1], 2D;\n" 4176 "ADD R2, R2, -R;\n" 4177 "DP4 R];\n" 4178 "MAD result.color, R;\n" 4217 4179 "END\n" 4218 4180 ; … … 4226 4188 "TEMP R2;\n" 4227 4189 "TEMP R3;\n" 4228 "MUL R0.xyz, fragment.position.y, c[4];\n" 4229 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 4230 "ADD R0.xyz, R0, c[5];\n" 4231 "RCP R0.z, R0.z;\n" 4232 "MUL R0.xy, R0, R0.z;\n" 4233 "MUL R0.xy, R0, c[6];\n" 4190 "MUL R0.xyz, fragment.position.y, c[2];\n" 4191 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4192 "ADD R0.xyz, R0, c[3];\n" 4193 "RCP R0.z, R0.z;\n" 4194 "MUL R0.xy, R0, R0.z;\n" 4195 "MUL R0.xy, R0, c[0];\n" 4196 "ADD R0.z, R0.x, R0.y;\n" 4197 "MUL R1.x, R0.z, c[0].z;\n" 4198 "MUL R0.xy, fragment.position, c[5];\n" 4199 "TEX R0, R0, texture[0], 2D;\n" 4200 "TEX R1, R1, texture[2], 1D;\n" 4201 "MUL R3.xyz, R1.w, R0;\n" 4202 "MUL R2.xyz, R1, R0.w;\n" 4203 "MAX R2.xyz, R2, R3;\n" 4204 "ADD R2.w, -R0, c[8].x;\n" 4205 "MAD R1.xyz, R1, R2.w, R2;\n" 4206 "ADD R2.x, -R1.w, c[8];\n" 4207 "MAD R2.xyz, R0, R2.x, R1;\n" 4208 "ADD R1.z, R1.w, R0.w;\n" 4209 "MAD R2.w, -R1, R0, R1.z;\n" 4210 "ADD R1.xy, fragment.position, c[6];\n" 4211 "MUL R1.xy, R1, c[4];\n" 4212 "TEX R1, R1, texture[1], 2D;\n" 4213 "ADD R2, R2, -R0;\n" 4214 "DP4 R1.x, R1, c[7];\n" 4215 "MAD result.color, R1.x, R2, R0;\n" 4216 "END\n" 4217 ; 4218 4219 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_COLORDODGE = 4220 "!!ARBfp1.0\n" 4221 "PARAM c[9] = { program.local[0..7],\n" 4222 " { 1, 1e-006 } };\n" 4223 "TEMP R0;\n" 4224 "TEMP R1;\n" 4225 "TEMP R2;\n" 4226 "TEMP R3;\n" 4227 "TEMP R4;\n" 4228 "MUL R0.xyz, fragment.position.y, c[2];\n" 4229 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4230 "ADD R0.xyz, R0, c[3];\n" 4231 "RCP R0.z, R0.z;\n" 4232 "MUL R0.xy, R0, R0.z;\n" 4233 "MUL R0.xy, R0, c[0];\n" 4234 4234 "ADD R0.x, R0, R0.y;\n" 4235 "MUL R0.x, R0, c[6].z;\n" 4236 "MUL R1.xy, fragment.position, c[7];\n" 4237 "TEX R1, R1, texture[0], 2D;\n" 4238 "TEX R0, R0, texture[2], 1D;\n" 4239 "MUL R3.xyz, R1, R0.w;\n" 4240 "MUL R2.xyz, R0, R1.w;\n" 4241 "MAX R2.xyz, R2, R3;\n" 4242 "ADD R2.w, -R1, c[8].x;\n" 4243 "MAD R0.xyz, R0, R2.w, R2;\n" 4244 "ADD R2.x, -R0.w, c[8];\n" 4245 "MAD R2.xyz, R1, R2.x, R0;\n" 4246 "ADD R0.z, R0.w, R1.w;\n" 4247 "MAD R2.w, -R0, R1, R0.z;\n" 4248 "ADD R0.xy, fragment.position, c[0];\n" 4249 "MUL R0.xy, R0, c[1];\n" 4250 "TEX R0, R0, texture[1], 2D;\n" 4251 "ADD R2, R2, -R1;\n" 4252 "DP4 R0.x, R0, c[2];\n" 4253 "MAD result.color, R0.x, R2, R1;\n" 4254 "END\n" 4255 ; 4256 4257 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_COLORDODGE = 4258 "!!ARBfp1.0\n" 4259 "PARAM c[9] = { program.local[0..7],\n" 4260 " { 1, 1e-06 } };\n" 4261 "TEMP R0;\n" 4262 "TEMP R1;\n" 4263 "TEMP R2;\n" 4264 "TEMP R3;\n" 4265 "TEMP R4;\n" 4266 "MUL R0.xyz, fragment.position.y, c[4];\n" 4267 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 4268 "ADD R0.xyz, R0, c[5];\n" 4269 "RCP R0.z, R0.z;\n" 4270 "MUL R0.xy, R0, R0.z;\n" 4271 "MUL R0.xy, R0, c[6];\n" 4272 "ADD R0.x, R0, R0.y;\n" 4273 "MUL R0.x, R0, c[6].z;\n" 4235 "MUL R0.x, R0, c[0].z;\n" 4274 4236 "TEX R0, R0, texture[2], 1D;\n" 4275 4237 "MAX R1.x, R0.w, c[8].y;\n" … … 4277 4239 "MAD R2.xyz, -R0, R1.x, c[8].x;\n" 4278 4240 "MAX R2.xyz, R2, c[8].y;\n" 4279 "MUL R1.xy, fragment.position, c[ 7];\n"4241 "MUL R1.xy, fragment.position, c[];\n" 4280 4242 "TEX R1, R1, texture[0], 2D;\n" 4281 4243 "ADD R2.w, -R0, c[8].x;\n" … … 4283 4245 "ADD R2.w, -R1, c[8].x;\n" 4284 4246 "MAD R4.xyz, R0, R2.w, R3;\n" 4285 "MUL R3.xyz, R 1, R0.w;\n"4247 "MUL R3.xyz, R;\n" 4286 4248 "MUL R2.w, R0, R1;\n" 4287 4249 "MAD R0.xyz, R0, R1.w, R3;\n" … … 4296 4258 "ADD R0.z, R0.w, R1.w;\n" 4297 4259 "MAD R2.w, -R0, R1, R0.z;\n" 4298 "ADD R0.xy, fragment.position, c[ 0];\n"4299 "MUL R0.xy, R0, c[ 1];\n"4260 "ADD R0.xy, fragment.position, c[];\n" 4261 "MUL R0.xy, R0, c[];\n" 4300 4262 "TEX R0, R0, texture[1], 2D;\n" 4301 4263 "ADD R2, R2, -R1;\n" 4302 "DP4 R0.x, R0, c[ 2];\n"4264 "DP4 R0.x, R0, c[];\n" 4303 4265 "MAD result.color, R0.x, R2, R1;\n" 4304 4266 "END\n" … … 4308 4270 "!!ARBfp1.0\n" 4309 4271 "PARAM c[9] = { program.local[0..7],\n" 4310 " { 1, 9.9999997e-0 6 } };\n"4272 " { 1, 9.9999997e-06 } };\n" 4311 4273 "TEMP R0;\n" 4312 4274 "TEMP R1;\n" … … 4315 4277 "TEMP R4;\n" 4316 4278 "TEMP R5;\n" 4317 "MUL R0.xyz, fragment.position.y, c[ 4];\n"4318 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"4319 "ADD R0.xyz, R0, c[ 5];\n"4320 "RCP R0.z, R0.z;\n" 4321 "MUL R0.xy, R0, R0.z;\n" 4322 "MUL R0.xy, R0, c[ 6];\n"4279 "MUL R0.xyz, fragment.position.y, c[];\n" 4280 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4281 "ADD R0.xyz, R0, c[];\n" 4282 "RCP R0.z, R0.z;\n" 4283 "MUL R0.xy, R0, R0.z;\n" 4284 "MUL R0.xy, R0, c[];\n" 4323 4285 "ADD R0.x, R0, R0.y;\n" 4324 "MUL R0.x, R0, c[6].z;\n" 4286 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 4287 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4288 "MUL R0.x, R0, c[0].z;\n" 4325 4289 "TEX R0, R0, texture[2], 1D;\n" 4326 "MUL R1.xy, fragment.position, c[7];\n" 4327 "TEX R1, R1, texture[0], 2D;\n" 4328 "MUL R2.xyz, R1, R0.w;\n" 4290 "MUL R2.xyz, R0.w, R1;\n" 4329 4291 "MAD R3.xyz, R0, R1.w, R2;\n" 4330 4292 "MAD R2.xyz, -R0.w, R1.w, R3;\n" … … 4341 4303 "MAD R0.xyz, R0, R2.w, R4;\n" 4342 4304 "MUL R2.w, R0, R1;\n" 4343 "ADD R3.w, -R0, c[8].x;\n"4344 4305 "MAD R2.xyz, R1, R3.w, R2;\n" 4345 4306 "ADD R2.xyz, R2, -R0;\n" … … 4348 4309 "ADD R0.z, R0.w, R1.w;\n" 4349 4310 "MAD R2.w, -R0, R1, R0.z;\n" 4350 "ADD R0.xy, fragment.position, c[ 0];\n"4351 "MUL R0.xy, R0, c[ 1];\n"4311 "ADD R0.xy, fragment.position, c[];\n" 4312 "MUL R0.xy, R0, c[];\n" 4352 4313 "TEX R0, R0, texture[1], 2D;\n" 4353 4314 "ADD R2, R2, -R1;\n" 4354 "DP4 R0.x, R0, c[ 2];\n"4315 "DP4 R0.x, R0, c[];\n" 4355 4316 "MAD result.color, R0.x, R2, R1;\n" 4356 4317 "END\n" … … 4366 4327 "TEMP R3;\n" 4367 4328 "TEMP R4;\n" 4368 "MUL R0.xyz, fragment.position.y, c[ 4];\n"4369 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"4370 "ADD R0.xyz, R0, c[ 5];\n"4371 "RCP R0.z, R0.z;\n" 4372 "MUL R0.xy, R0, R0.z;\n" 4373 "MUL R0.xy, R0, c[ 6];\n"4329 "MUL R0.xyz, fragment.position.y, c[];\n" 4330 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4331 "ADD R0.xyz, R0, c[];\n" 4332 "RCP R0.z, R0.z;\n" 4333 "MUL R0.xy, R0, R0.z;\n" 4334 "MUL R0.xy, R0, c[];\n" 4374 4335 "ADD R0.x, R0, R0.y;\n" 4375 "MUL R0.x, R0, c[ 6].z;\n"4336 "MUL R0.x, R0, c[].z;\n" 4376 4337 "TEX R0, R0, texture[2], 1D;\n" 4377 "MUL R1.xy, fragment.position, c[ 7];\n"4338 "MUL R1.xy, fragment.position, c[];\n" 4378 4339 "TEX R1, R1, texture[0], 2D;\n" 4379 4340 "ADD R2.w, -R1, c[8].y;\n" … … 4396 4357 "ADD R0.z, R0.w, R1.w;\n" 4397 4358 "MAD R2.w, -R0, R1, R0.z;\n" 4398 "ADD R0.xy, fragment.position, c[ 0];\n"4399 "MUL R0.xy, R0, c[ 1];\n"4359 "ADD R0.xy, fragment.position, c[];\n" 4360 "MUL R0.xy, R0, c[];\n" 4400 4361 "TEX R0, R0, texture[1], 2D;\n" 4401 4362 "ADD R2, R2, -R1;\n" 4402 "DP4 R0.x, R0, c[ 2];\n"4363 "DP4 R0.x, R0, c[];\n" 4403 4364 "MAD result.color, R0.x, R2, R1;\n" 4404 4365 "END\n" … … 4408 4369 "!!ARBfp1.0\n" 4409 4370 "PARAM c[10] = { program.local[0..7],\n" 4410 " { 1, 9.9999997e-06, 2, 8},\n"4411 " { 3 } };\n"4371 " { 1, },\n" 4372 " { 3 } };\n" 4412 4373 "TEMP R0;\n" 4413 4374 "TEMP R1;\n" … … 4417 4378 "TEMP R5;\n" 4418 4379 "TEMP R6;\n" 4419 "MUL R2.xyz, fragment.position.y, c[4];\n" 4420 "MAD R3.xyz, fragment.position.x, c[3], R2;\n" 4421 "MUL R0.xy, fragment.position, c[7];\n" 4422 "TEX R1, R0, texture[0], 2D;\n" 4423 "MAX R0.x, R1.w, c[8].y;\n" 4424 "RCP R2.w, R0.x;\n" 4425 "MUL R0.xyz, R1, R2.w;\n" 4426 "RSQ R0.w, R0.x;\n" 4427 "RSQ R2.y, R0.y;\n" 4428 "ADD R3.xyz, R3, c[5];\n" 4429 "RCP R2.x, R0.w;\n" 4430 "RCP R0.w, R3.z;\n" 4431 "MUL R3.xy, R3, R0.w;\n" 4432 "RSQ R0.w, R0.z;\n" 4433 "RCP R2.z, R0.w;\n" 4434 "RCP R2.y, R2.y;\n" 4435 "MAD R6.xyz, R2, R1.w, -R1;\n" 4436 "MUL R2.xyz, -R0, c[8].w;\n" 4437 "ADD R5.xyz, R2, c[9].x;\n" 4438 "MAD R2.xyz, -R1, R2.w, c[8].x;\n" 4439 "MUL R3.xy, R3, c[6];\n" 4440 "ADD R0.w, R3.x, R3.y;\n" 4441 "MUL R0.w, R0, c[6].z;\n" 4442 "TEX R0, R0.w, texture[2], 1D;\n" 4443 "MAD R3.xyz, R0, c[8].z, -R0.w;\n" 4444 "MUL R4.xyz, R2, R3;\n" 4445 "MAD R4.xyz, -R4, R5, R0.w;\n" 4446 "MUL R5.xyz, R6, R3;\n" 4447 "MAD R2.xyz, -R2, R3, R0.w;\n" 4448 "MAD R6.xyz, R1, R0.w, R5;\n" 4449 "MUL R4.xyz, R1, R4;\n" 4450 "MUL R5.xyz, R1, c[8].w;\n" 4451 "ADD R6.xyz, R6, -R4;\n" 4452 "SGE R5.xyz, R5, R1.w;\n" 4453 "MUL R5.xyz, R5, R6;\n" 4454 "ADD R3.xyz, R4, R5;\n" 4380 "MUL R0.xyz, fragment.position.y, c[2];\n" 4381 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4382 "ADD R0.xyz, R0, c[3];\n" 4383 "RCP R0.z, R0.z;\n" 4384 "MUL R0.xy, R0, R0.z;\n" 4385 "MUL R0.xy, R0, c[0];\n" 4386 "ADD R0.x, R0, R0.y;\n" 4387 "MUL R1.xy, fragment.position, c[5];\n" 4388 "TEX R1, R1, texture[0], 2D;\n" 4389 "MAX R0.z, R1.w, c[8];\n" 4390 "RCP R0.z, R0.z;\n" 4391 "MUL R3.xyz, R1, R0.z;\n" 4392 "MAD R2.xyz, R3, c[9].x, -c[9].y;\n" 4393 "MUL R0.x, R0, c[0].z;\n" 4394 "TEX R0, R0, texture[2], 1D;\n" 4395 "MAD R4.xyz, R3, R2, c[9].z;\n" 4396 "MAD R2.xyz, R0, c[8].y, -R0.w;\n" 4397 "MUL R5.xyz, R1.w, R2;\n" 4398 "MUL R6.xyz, R5, R4;\n" 4399 "RSQ R2.w, R3.x;\n" 4400 "RCP R4.x, R2.w;\n" 4401 "RSQ R2.w, R3.y;\n" 4402 "RSQ R3.w, R3.z;\n" 4403 "RCP R4.y, R2.w;\n" 4404 "RCP R4.z, R3.w;\n" 4405 "ADD R4.xyz, -R3, R4;\n" 4406 "MUL R6.xyz, R3, R6;\n" 4407 "MUL R4.xyz, R5, R4;\n" 4408 "ADD R3.xyz, -R3, c[8].x;\n" 4409 "MAD R2.xyz, R2, R3, R0.w;\n" 4410 "MUL R3.xyz, R0, c[8].y;\n" 4411 "MAD R5.xyz, R0.w, R1, R6;\n" 4412 "MAD R4.xyz, R0.w, R1, R4;\n" 4413 "ADD R6.xyz, R4, -R5;\n" 4414 "MUL R4.xyz, R1, c[8].w;\n" 4415 "SGE R4.xyz, R4, R1.w;\n" 4416 "MAD R4.xyz, R4, R6, R5;\n" 4417 "MAD R4.xyz, -R1, R2, R4;\n" 4418 "SGE R3.xyz, R3, R0.w;\n" 4455 4419 "MUL R2.xyz, R1, R2;\n" 4456 "MUL R4.xyz, R0, c[8].z;\n"4457 "ADD R3.xyz, R3, -R2;\n"4458 "SGE R4.xyz, R4, R0.w;\n"4459 "MUL R3.xyz, R4, R3;\n"4460 "ADD R2.xyz, R2, R3;\n"4461 4420 "ADD R2.w, -R1, c[8].x;\n" 4462 "MAD R0.xyz, R0, R2.w, R2;\n" 4463 "ADD R2.x, -R0.w, c[8];\n" 4464 "MAD R2.xyz, R1, R2.x, R0;\n" 4421 "MAD R2.xyz, R3, R4, R2;\n" 4422 "MAD R2.xyz, R0, R2.w, R2;\n" 4423 "ADD R0.x, -R0.w, c[8];\n" 4424 "MAD R2.xyz, R1, R0.x, R2;\n" 4465 4425 "ADD R0.z, R0.w, R1.w;\n" 4466 4426 "MAD R2.w, -R0, R1, R0.z;\n" 4467 "ADD R0.xy, fragment.position, c[ 0];\n"4468 "MUL R0.xy, R0, c[ 1];\n"4427 "ADD R0.xy, fragment.position, c[];\n" 4428 "MUL R0.xy, R0, c[];\n" 4469 4429 "TEX R0, R0, texture[1], 2D;\n" 4470 4430 "ADD R2, R2, -R1;\n" 4471 "DP4 R0.x, R0, c[ 2];\n"4431 "DP4 R0.x, R0, c[];\n" 4472 4432 "MAD result.color, R0.x, R2, R1;\n" 4473 4433 "END\n" … … 4482 4442 "TEMP R2;\n" 4483 4443 "TEMP R3;\n" 4484 "MUL R0.xyz, fragment.position.y, c[4];\n" 4485 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 4486 "ADD R0.xyz, R0, c[5];\n" 4487 "RCP R0.z, R0.z;\n" 4488 "MUL R0.xy, R0, R0.z;\n" 4489 "MUL R0.xy, R0, c[6];\n" 4444 "MUL R0.xyz, fragment.position.y, c[2];\n" 4445 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4446 "ADD R0.xyz, R0, c[3];\n" 4447 "RCP R0.z, R0.z;\n" 4448 "MUL R0.xy, R0, R0.z;\n" 4449 "MUL R0.xy, R0, c[0];\n" 4450 "ADD R0.z, R0.x, R0.y;\n" 4451 "MUL R1.x, R0.z, c[0].z;\n" 4452 "MUL R0.xy, fragment.position, c[5];\n" 4453 "TEX R0, R0, texture[0], 2D;\n" 4454 "TEX R1, R1, texture[2], 1D;\n" 4455 "ADD R2.xyz, R1, R0;\n" 4456 "MUL R3.xyz, R1.w, R0;\n" 4457 "MUL R1.xyz, R1, R0.w;\n" 4458 "MIN R1.xyz, R1, R3;\n" 4459 "MAD R2.xyz, -R1, c[8].x, R2;\n" 4460 "ADD R1.z, R1.w, R0.w;\n" 4461 "MAD R2.w, -R1, R0, R1.z;\n" 4462 "ADD R1.xy, fragment.position, c[6];\n" 4463 "MUL R1.xy, R1, c[4];\n" 4464 "TEX R1, R1, texture[1], 2D;\n" 4465 "ADD R2, R2, -R0;\n" 4466 "DP4 R1.x, R1, c[7];\n" 4467 "MAD result.color, R1.x, R2, R0;\n" 4468 "END\n" 4469 ; 4470 4471 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_EXCLUSION = 4472 "!!ARBfp1.0\n" 4473 "PARAM c[9] = { program.local[0..7],\n" 4474 " { 2, 1 } };\n" 4475 "TEMP R0;\n" 4476 "TEMP R1;\n" 4477 "TEMP R2;\n" 4478 "TEMP R3;\n" 4479 "MUL R0.xyz, fragment.position.y, c[2];\n" 4480 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4481 "ADD R0.xyz, R0, c[3];\n" 4482 "RCP R0.z, R0.z;\n" 4483 "MUL R0.xy, R0, R0.z;\n" 4484 "MUL R0.xy, R0, c[0];\n" 4485 "ADD R0.z, R0.x, R0.y;\n" 4486 "MUL R1.x, R0.z, c[0].z;\n" 4487 "MUL R0.xy, fragment.position, c[5];\n" 4488 "TEX R0, R0, texture[0], 2D;\n" 4489 "TEX R1, R1, texture[2], 1D;\n" 4490 "MUL R2.xyz, R1.w, R0;\n" 4491 "MAD R3.xyz, R1, R0.w, R2;\n" 4492 "MUL R2.xyz, R1, R0;\n" 4493 "MAD R2.xyz, -R2, c[8].x, R3;\n" 4494 "ADD R2.w, -R0, c[8].y;\n" 4495 "MAD R1.xyz, R1, R2.w, R2;\n" 4496 "ADD R2.x, -R1.w, c[8].y;\n" 4497 "MAD R2.xyz, R0, R2.x, R1;\n" 4498 "ADD R1.z, R1.w, R0.w;\n" 4499 "MAD R2.w, -R1, R0, R1.z;\n" 4500 "ADD R1.xy, fragment.position, c[6];\n" 4501 "MUL R1.xy, R1, c[4];\n" 4502 "TEX R1, R1, texture[1], 2D;\n" 4503 "ADD R2, R2, -R0;\n" 4504 "DP4 R1.x, R1, c[7];\n" 4505 "MAD result.color, R1.x, R2, R0;\n" 4506 "END\n" 4507 ; 4508 4509 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 4510 "!!ARBfp1.0\n" 4511 "PARAM c[8] = { program.local[0..6],\n" 4512 " { 1 } };\n" 4513 "TEMP R0;\n" 4514 "TEMP R1;\n" 4515 "TEMP R2;\n" 4516 "TEMP R3;\n" 4517 "MUL R0.xyz, fragment.position.y, c[2];\n" 4518 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4519 "ADD R0.xyz, R0, c[3];\n" 4520 "RCP R0.z, R0.z;\n" 4521 "MUL R0.xy, R0, R0.z;\n" 4522 "MUL R0.xy, R0, c[0];\n" 4490 4523 "ADD R0.x, R0, R0.y;\n" 4491 "MUL R0.zw, fragment.position.xyxy, c[ 7].xyxy;\n"4524 "MUL R0.zw, fragment.position.xyxy, c[].xyxy;\n" 4492 4525 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4493 "MUL R0.x, R0, c[6].z;\n" 4494 "TEX R0, R0, texture[2], 1D;\n" 4495 "ADD R3.xyz, R0, R1;\n" 4496 "MUL R2.xyz, R1, R0.w;\n" 4497 "MUL R0.xyz, R0, R1.w;\n" 4498 "MIN R0.xyz, R0, R2;\n" 4499 "MAD R2.xyz, -R0, c[8].x, R3;\n" 4500 "ADD R0.z, R0.w, R1.w;\n" 4501 "MAD R2.w, -R0, R1, R0.z;\n" 4502 "ADD R0.xy, fragment.position, c[0];\n" 4503 "MUL R0.xy, R0, c[1];\n" 4504 "TEX R0, R0, texture[1], 2D;\n" 4505 "ADD R2, R2, -R1;\n" 4506 "DP4 R0.x, R0, c[2];\n" 4507 "MAD result.color, R0.x, R2, R1;\n" 4508 "END\n" 4509 ; 4510 4511 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_EXCLUSION = 4512 "!!ARBfp1.0\n" 4513 "PARAM c[9] = { program.local[0..7],\n" 4514 " { 1, 2 } };\n" 4515 "TEMP R0;\n" 4516 "TEMP R1;\n" 4517 "TEMP R2;\n" 4518 "TEMP R3;\n" 4519 "MUL R0.xyz, fragment.position.y, c[4];\n" 4520 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 4521 "ADD R0.xyz, R0, c[5];\n" 4522 "RCP R0.z, R0.z;\n" 4523 "MUL R0.xy, R0, R0.z;\n" 4524 "MUL R0.xy, R0, c[6];\n" 4525 "ADD R0.x, R0, R0.y;\n" 4526 "MUL R0.x, R0, c[6].z;\n" 4527 "MUL R1.xy, fragment.position, c[7];\n" 4528 "TEX R1, R1, texture[0], 2D;\n" 4529 "TEX R0, R0, texture[2], 1D;\n" 4530 "MUL R2.xyz, R1, R0.w;\n" 4531 "MAD R3.xyz, R0, R1.w, R2;\n" 4532 "MUL R2.xyz, R0, R1;\n" 4533 "MAD R2.xyz, -R2, c[8].y, R3;\n" 4534 "ADD R2.w, -R1, c[8].x;\n" 4535 "MAD R0.xyz, R0, R2.w, R2;\n" 4536 "ADD R2.x, -R0.w, c[8];\n" 4537 "MAD R2.xyz, R1, R2.x, R0;\n" 4538 "ADD R0.z, R0.w, R1.w;\n" 4539 "MAD R2.w, -R0, R1, R0.z;\n" 4540 "ADD R0.xy, fragment.position, c[0];\n" 4541 "MUL R0.xy, R0, c[1];\n" 4542 "TEX R0, R0, texture[1], 2D;\n" 4543 "ADD R2, R2, -R1;\n" 4544 "DP4 R0.x, R0, c[2];\n" 4545 "MAD result.color, R0.x, R2, R1;\n" 4546 "END\n" 4547 ; 4548 4549 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 4550 "!!ARBfp1.0\n" 4551 "PARAM c[8] = { program.local[0..4],\n" 4552 " { 1 },\n" 4553 " program.local[6..7] };\n" 4554 "TEMP R0;\n" 4555 "TEMP R1;\n" 4556 "TEMP R2;\n" 4557 "TEMP R3;\n" 4558 "MUL R0.xyz, fragment.position.y, c[1];\n" 4559 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 4560 "ADD R0.xyz, R0, c[2];\n" 4561 "RCP R0.z, R0.z;\n" 4562 "MUL R0.xy, R0, R0.z;\n" 4563 "MUL R0.xy, R0, c[3];\n" 4526 "MUL R2.xyz, R1, c[4].y;\n" 4527 "MUL R0.x, R0, c[0].z;\n" 4528 "TEX R0, R0, texture[1], 1D;\n" 4529 "MUL R3.xyz, R0.w, R2;\n" 4530 "MUL R2.xyz, R0, c[4].x;\n" 4531 "MAD R2.xyz, R1.w, R2, R3;\n" 4532 "ADD R2.w, -R1, c[7].x;\n" 4533 "MUL R0.xyz, R0, c[5].y;\n" 4534 "MAD R0.xyz, R2.w, R0, R2;\n" 4535 "ADD R2.x, -R0.w, c[7];\n" 4536 "MUL R1.xyz, R1, c[5].z;\n" 4537 "MAD result.color.xyz, R2.x, R1, R0;\n" 4538 "MUL R0.x, R0.w, R1.w;\n" 4539 "MUL R0.z, R1.w, R2.x;\n" 4540 "MUL R0.y, R0.w, R2.w;\n" 4541 "DP3 result.color.w, R0, c[5];\n" 4542 "END\n" 4543 ; 4544 4545 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_MULTIPLY_NOMASK = 4546 "!!ARBfp1.0\n" 4547 "PARAM c[6] = { program.local[0..4],\n" 4548 " { 1 } };\n" 4549 "TEMP R0;\n" 4550 "TEMP R1;\n" 4551 "TEMP R2;\n" 4552 "MUL R0.xyz, fragment.position.y, c[2];\n" 4553 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4554 "ADD R0.xyz, R0, c[3];\n" 4555 "RCP R0.z, R0.z;\n" 4556 "MUL R0.xy, R0, R0.z;\n" 4557 "MUL R0.xy, R0, c[0];\n" 4564 4558 "ADD R0.x, R0, R0.y;\n" 4565 4559 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 4566 4560 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4567 "MUL R2.xyz, R1, c[7].y;\n" 4568 "MUL R0.x, R0, c[3].z;\n" 4569 "TEX R0, R0, texture[1], 1D;\n" 4570 "MUL R3.xyz, R2, R0.w;\n" 4571 "MUL R2.xyz, R0, c[7].x;\n" 4572 "MAD R2.xyz, R2, R1.w, R3;\n" 4573 "MUL R0.xyz, R0, c[6].y;\n" 4574 "ADD R2.w, -R1, c[5].x;\n" 4575 "MAD R0.xyz, R0, R2.w, R2;\n" 4576 "ADD R2.x, -R0.w, c[5];\n" 4577 "MUL R1.xyz, R1, c[6].z;\n" 4578 "MAD result.color.xyz, R1, R2.x, R0;\n" 4579 "ADD R0.y, -R1.w, c[5].x;\n" 4580 "MUL R0.x, R0.w, R1.w;\n" 4581 "MUL R0.z, R1.w, R2.x;\n" 4582 "MUL R0.y, R0.w, R0;\n" 4583 "DP3 result.color.w, R0, c[6];\n" 4584 "END\n" 4585 ; 4586 4587 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_MULTIPLY_NOMASK = 4588 "!!ARBfp1.0\n" 4589 "PARAM c[6] = { program.local[0..4],\n" 4590 " { 1 } };\n" 4591 "TEMP R0;\n" 4592 "TEMP R1;\n" 4593 "TEMP R2;\n" 4594 "MUL R0.xyz, fragment.position.y, c[1];\n" 4595 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 4596 "ADD R0.xyz, R0, c[2];\n" 4597 "RCP R0.z, R0.z;\n" 4598 "MUL R0.xy, R0, R0.z;\n" 4599 "MUL R0.xy, R0, c[3];\n" 4600 "ADD R0.x, R0, R0.y;\n" 4601 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 4602 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4603 "MUL R0.x, R0, c[3].z;\n" 4561 "MUL R0.x, R0, c[0].z;\n" 4604 4562 "TEX R0, R0, texture[1], 1D;\n" 4605 4563 "ADD R2.x, -R1.w, c[5];\n" … … 4619 4577 "TEMP R1;\n" 4620 4578 "TEMP R2;\n" 4621 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4622 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4623 "ADD R0.xyz, R0, c[ 2];\n"4624 "RCP R0.z, R0.z;\n" 4625 "MUL R0.xy, R0, R0.z;\n" 4626 "MUL R0.xy, R0, c[ 3];\n"4579 "MUL R0.xyz, fragment.position.y, c[];\n" 4580 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4581 "ADD R0.xyz, R0, c[];\n" 4582 "RCP R0.z, R0.z;\n" 4583 "MUL R0.xy, R0, R0.z;\n" 4584 "MUL R0.xy, R0, c[];\n" 4627 4585 "ADD R0.x, R0, R0.y;\n" 4628 4586 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 4629 4587 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4630 "MUL R0.x, R0, c[ 3].z;\n"4588 "MUL R0.x, R0, c[].z;\n" 4631 4589 "TEX R0, R0, texture[1], 1D;\n" 4632 4590 "ADD R2, R0, R1;\n" … … 4643 4601 "TEMP R2;\n" 4644 4602 "TEMP R3;\n" 4645 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4646 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4647 "ADD R0.xyz, R0, c[ 2];\n"4648 "RCP R0.z, R0.z;\n" 4649 "MUL R0.xy, R0, R0.z;\n" 4650 "MUL R0.xy, R0, c[ 3];\n"4603 "MUL R0.xyz, fragment.position.y, c[];\n" 4604 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4605 "ADD R0.xyz, R0, c[];\n" 4606 "RCP R0.z, R0.z;\n" 4607 "MUL R0.xy, R0, R0.z;\n" 4608 "MUL R0.xy, R0, c[];\n" 4651 4609 "ADD R0.x, R0, R0.y;\n" 4652 "MUL R0.x, R0, c[ 3].z;\n"4610 "MUL R0.x, R0, c[].z;\n" 4653 4611 "TEX R0, R0, texture[1], 1D;\n" 4654 4612 "MUL R1.xy, fragment.position, c[4];\n" … … 4684 4642 "TEMP R2;\n" 4685 4643 "TEMP R3;\n" 4686 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4687 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4688 "ADD R0.xyz, R0, c[ 2];\n"4689 "RCP R0.z, R0.z;\n" 4690 "MUL R0.xy, R0, R0.z;\n" 4691 "MUL R0.xy, R0, c[ 3];\n"4644 "MUL R0.xyz, fragment.position.y, c[];\n" 4645 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4646 "ADD R0.xyz, R0, c[];\n" 4647 "RCP R0.z, R0.z;\n" 4648 "MUL R0.xy, R0, R0.z;\n" 4649 "MUL R0.xy, R0, c[];\n" 4692 4650 "ADD R0.x, R0, R0.y;\n" 4693 "MUL R0. x, R0, c[3].z;\n"4694 " MUL R1.xy, fragment.position, c[4];\n"4695 " TEX R1, R1, texture[0], 2D;\n"4651 "MUL R0.;\n" 4652 ";\n" 4653 ";\n" 4696 4654 "TEX R0, R0, texture[1], 1D;\n" 4697 4655 "MUL R2.xyz, R0, R1.w;\n" 4698 "MUL R3.xyz, R 1, R0.w;\n"4656 "MUL R3.xyz, R;\n" 4699 4657 "MIN R2.xyz, R2, R3;\n" 4700 4658 "ADD R2.w, -R1, c[5].x;\n" … … 4715 4673 "TEMP R2;\n" 4716 4674 "TEMP R3;\n" 4717 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4718 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4719 "ADD R0.xyz, R0, c[ 2];\n"4720 "RCP R0.z, R0.z;\n" 4721 "MUL R0.xy, R0, R0.z;\n" 4722 "MUL R0.xy, R0, c[ 3];\n"4675 "MUL R0.xyz, fragment.position.y, c[];\n" 4676 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4677 "ADD R0.xyz, R0, c[];\n" 4678 "RCP R0.z, R0.z;\n" 4679 "MUL R0.xy, R0, R0.z;\n" 4680 "MUL R0.xy, R0, c[];\n" 4723 4681 "ADD R0.x, R0, R0.y;\n" 4724 "MUL R0. x, R0, c[3].z;\n"4725 " MUL R1.xy, fragment.position, c[4];\n"4726 " TEX R1, R1, texture[0], 2D;\n"4682 "MUL R0.;\n" 4683 ";\n" 4684 ";\n" 4727 4685 "TEX R0, R0, texture[1], 1D;\n" 4728 4686 "MUL R2.xyz, R0, R1.w;\n" 4729 "MUL R3.xyz, R 1, R0.w;\n"4687 "MUL R3.xyz, R;\n" 4730 4688 "MAX R2.xyz, R2, R3;\n" 4731 4689 "ADD R2.w, -R1, c[5].x;\n" … … 4741 4699 "!!ARBfp1.0\n" 4742 4700 "PARAM c[6] = { program.local[0..4],\n" 4743 " { 1, 1e-0 6 } };\n"4744 "TEMP R0;\n" 4745 "TEMP R1;\n" 4746 "TEMP R2;\n" 4747 "TEMP R3;\n" 4748 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4749 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4750 "ADD R0.xyz, R0, c[ 2];\n"4751 "RCP R0.z, R0.z;\n" 4752 "MUL R0.xy, R0, R0.z;\n" 4753 "MUL R0.xy, R0, c[ 3];\n"4701 " { 1, 1e-06 } };\n" 4702 "TEMP R0;\n" 4703 "TEMP R1;\n" 4704 "TEMP R2;\n" 4705 "TEMP R3;\n" 4706 "MUL R0.xyz, fragment.position.y, c[];\n" 4707 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4708 "ADD R0.xyz, R0, c[];\n" 4709 "RCP R0.z, R0.z;\n" 4710 "MUL R0.xy, R0, R0.z;\n" 4711 "MUL R0.xy, R0, c[];\n" 4754 4712 "ADD R0.x, R0, R0.y;\n" 4755 "MUL R0.x, R0, c[ 3].z;\n"4713 "MUL R0.x, R0, c[].z;\n" 4756 4714 "TEX R0, R0, texture[1], 1D;\n" 4757 4715 "MAX R1.x, R0.w, c[5].y;\n" … … 4765 4723 "ADD R2.w, -R1, c[5].x;\n" 4766 4724 "MAD R2.xyz, R0, R2.w, R2;\n" 4767 "MUL R1.xyz, R 1, R0.w;\n"4725 "MUL R1.xyz, R;\n" 4768 4726 "MAD R0.xyz, R0, R1.w, R1;\n" 4769 4727 "MUL R2.w, R0, R1;\n" … … 4784 4742 "!!ARBfp1.0\n" 4785 4743 "PARAM c[6] = { program.local[0..4],\n" 4786 " { 1, 9.9999997e-0 6 } };\n"4744 " { 1, 9.9999997e-06 } };\n" 4787 4745 "TEMP R0;\n" 4788 4746 "TEMP R1;\n" … … 4791 4749 "TEMP R4;\n" 4792 4750 "TEMP R5;\n" 4793 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4794 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4795 "ADD R0.xyz, R0, c[ 2];\n"4796 "RCP R0.z, R0.z;\n" 4797 "MUL R0.xy, R0, R0.z;\n" 4798 "MUL R0.xy, R0, c[ 3];\n"4751 "MUL R0.xyz, fragment.position.y, c[];\n" 4752 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4753 "ADD R0.xyz, R0, c[];\n" 4754 "RCP R0.z, R0.z;\n" 4755 "MUL R0.xy, R0, R0.z;\n" 4756 "MUL R0.xy, R0, c[];\n" 4799 4757 "ADD R0.x, R0, R0.y;\n" 4800 "MUL R0.x, R0, c[3].z;\n" 4758 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 4759 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4760 "MUL R0.x, R0, c[0].z;\n" 4801 4761 "TEX R0, R0, texture[1], 1D;\n" 4802 "MUL R1.xy, fragment.position, c[4];\n" 4803 "TEX R1, R1, texture[0], 2D;\n" 4804 "MUL R2.xyz, R1, R0.w;\n" 4762 "MUL R2.xyz, R0.w, R1;\n" 4805 4763 "MAD R3.xyz, R0, R1.w, R2;\n" 4806 4764 "ADD R2.w, -R1, c[5].x;\n" … … 4815 4773 "MAD R2.xyz, R4, R2, R5;\n" 4816 4774 "MUL R4.xyz, R1, R3.w;\n" 4775 4817 4776 "MAD R0.xyz, R0, R2.w, R4;\n" 4818 "ADD R3.w, -R0, c[5].x;\n"4819 "MAD R1.xyz, R1, R3.w, R2;\n"4820 4777 "MUL R2.x, R0.w, R1.w;\n" 4821 4778 "ADD R2.w, R0, R1;\n" … … 4836 4793 "TEMP R3;\n" 4837 4794 "TEMP R4;\n" 4838 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4839 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4840 "ADD R0.xyz, R0, c[ 2];\n"4841 "RCP R0.z, R0.z;\n" 4842 "MUL R0.xy, R0, R0.z;\n" 4843 "MUL R0.xy, R0, c[ 3];\n"4795 "MUL R0.xyz, fragment.position.y, c[];\n" 4796 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4797 "ADD R0.xyz, R0, c[];\n" 4798 "RCP R0.z, R0.z;\n" 4799 "MUL R0.xy, R0, R0.z;\n" 4800 "MUL R0.xy, R0, c[];\n" 4844 4801 "ADD R0.x, R0, R0.y;\n" 4845 "MUL R0.x, R0, c[ 3].z;\n"4802 "MUL R0.x, R0, c[].z;\n" 4846 4803 "TEX R0, R0, texture[1], 1D;\n" 4847 4804 "MUL R1.xy, fragment.position, c[4];\n" … … 4872 4829 "!!ARBfp1.0\n" 4873 4830 "PARAM c[7] = { program.local[0..4],\n" 4874 " { 1, 9.9999997e-06, 2, 8},\n"4875 " { 3 } };\n"4831 " { 1, },\n" 4832 " { 3 } };\n" 4876 4833 "TEMP R0;\n" 4877 4834 "TEMP R1;\n" … … 4881 4838 "TEMP R5;\n" 4882 4839 "TEMP R6;\n" 4883 "MUL R2.xyz, fragment.position.y, c[1];\n" 4884 "MAD R3.xyz, fragment.position.x, c[0], R2;\n" 4885 "MUL R0.xy, fragment.position, c[4];\n" 4886 "TEX R1, R0, texture[0], 2D;\n" 4887 "MAX R0.x, R1.w, c[5].y;\n" 4888 "RCP R2.w, R0.x;\n" 4889 "MUL R0.xyz, R1, R2.w;\n" 4890 "RSQ R0.w, R0.x;\n" 4891 "RSQ R2.y, R0.y;\n" 4892 "ADD R3.xyz, R3, c[2];\n" 4893 "RCP R2.x, R0.w;\n" 4894 "RCP R0.w, R3.z;\n" 4895 "MUL R3.xy, R3, R0.w;\n" 4896 "RSQ R0.w, R0.z;\n" 4897 "RCP R2.z, R0.w;\n" 4898 "RCP R2.y, R2.y;\n" 4899 "MAD R6.xyz, R2, R1.w, -R1;\n" 4900 "MUL R2.xyz, -R0, c[5].w;\n" 4901 "ADD R5.xyz, R2, c[6].x;\n" 4902 "MAD R2.xyz, -R1, R2.w, c[5].x;\n" 4903 "MUL R3.xy, R3, c[3];\n" 4904 "ADD R0.w, R3.x, R3.y;\n" 4905 "MUL R0.w, R0, c[3].z;\n" 4906 "TEX R0, R0.w, texture[1], 1D;\n" 4907 "MAD R3.xyz, R0, c[5].z, -R0.w;\n" 4908 "MUL R4.xyz, R2, R3;\n" 4909 "MAD R4.xyz, -R4, R5, R0.w;\n" 4910 "MUL R5.xyz, R6, R3;\n" 4911 "MAD R2.xyz, -R2, R3, R0.w;\n" 4912 "MAD R6.xyz, R1, R0.w, R5;\n" 4913 "MUL R4.xyz, R1, R4;\n" 4914 "MUL R5.xyz, R1, c[5].w;\n" 4915 "ADD R6.xyz, R6, -R4;\n" 4916 "SGE R5.xyz, R5, R1.w;\n" 4917 "MUL R5.xyz, R5, R6;\n" 4918 "ADD R3.xyz, R4, R5;\n" 4840 "MUL R0.xyz, fragment.position.y, c[2];\n" 4841 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4842 "ADD R0.xyz, R0, c[3];\n" 4843 "RCP R0.z, R0.z;\n" 4844 "MUL R0.xy, R0, R0.z;\n" 4845 "MUL R0.xy, R0, c[0];\n" 4846 "ADD R0.x, R0, R0.y;\n" 4847 "MUL R1.xy, fragment.position, c[4];\n" 4848 "TEX R1, R1, texture[0], 2D;\n" 4849 "MAX R0.z, R1.w, c[5];\n" 4850 "RCP R0.z, R0.z;\n" 4851 "MUL R3.xyz, R1, R0.z;\n" 4852 "MAD R2.xyz, R3, c[6].x, -c[6].y;\n" 4853 "MUL R0.x, R0, c[0].z;\n" 4854 "TEX R0, R0, texture[1], 1D;\n" 4855 "MAD R4.xyz, R3, R2, c[6].z;\n" 4856 "MAD R2.xyz, R0, c[5].y, -R0.w;\n" 4857 "MUL R5.xyz, R1.w, R2;\n" 4858 "MUL R6.xyz, R5, R4;\n" 4859 "RSQ R2.w, R3.x;\n" 4860 "RCP R4.x, R2.w;\n" 4861 "RSQ R2.w, R3.y;\n" 4862 "RSQ R3.w, R3.z;\n" 4863 "RCP R4.y, R2.w;\n" 4864 "RCP R4.z, R3.w;\n" 4865 "ADD R4.xyz, -R3, R4;\n" 4866 "MUL R6.xyz, R3, R6;\n" 4867 "MUL R4.xyz, R5, R4;\n" 4868 "ADD R3.xyz, -R3, c[5].x;\n" 4869 "MAD R2.xyz, R2, R3, R0.w;\n" 4870 "MUL R3.xyz, R0, c[5].y;\n" 4871 "MAD R5.xyz, R0.w, R1, R6;\n" 4872 "MAD R4.xyz, R0.w, R1, R4;\n" 4873 "ADD R6.xyz, R4, -R5;\n" 4874 "MUL R4.xyz, R1, c[5].w;\n" 4875 "SGE R4.xyz, R4, R1.w;\n" 4876 "MAD R4.xyz, R4, R6, R5;\n" 4877 "MAD R4.xyz, -R1, R2, R4;\n" 4919 4878 "MUL R2.xyz, R1, R2;\n" 4920 "MUL R4.xyz, R0, c[5].z;\n" 4921 "ADD R3.xyz, R3, -R2;\n" 4922 "SGE R4.xyz, R4, R0.w;\n" 4923 "MUL R3.xyz, R4, R3;\n" 4924 "ADD R2.xyz, R2, R3;\n" 4879 "SGE R3.xyz, R3, R0.w;\n" 4880 "MAD R2.xyz, R3, R4, R2;\n" 4925 4881 "ADD R2.w, -R1, c[5].x;\n" 4926 "MAD R 0.xyz, R0, R2.w, R2;\n"4927 "ADD R 2.x, R0.w, R1.w;\n"4928 "ADD R 2.y, -R0.w, c[5].x;\n"4929 "MAD result.color.xyz, R1, R 2.y, R0;\n"4930 "MAD result.color.w, -R0, R1, R 2.x;\n"4882 "MAD R.xyz, R0, R2.w, R2;\n" 4883 "ADD R.x, R0.w, R1.w;\n" 4884 "ADD R.y, -R0.w, c[5].x;\n" 4885 "MAD result.color.xyz, R1, R;\n" 4886 "MAD result.color.w, -R0, R1, R.x;\n" 4931 4887 "END\n" 4932 4888 ; … … 4940 4896 "TEMP R2;\n" 4941 4897 "TEMP R3;\n" 4942 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4943 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4944 "ADD R0.xyz, R0, c[ 2];\n"4945 "RCP R0.z, R0.z;\n" 4946 "MUL R0.xy, R0, R0.z;\n" 4947 "MUL R0.xy, R0, c[ 3];\n"4898 "MUL R0.xyz, fragment.position.y, c[];\n" 4899 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4900 "ADD R0.xyz, R0, c[];\n" 4901 "RCP R0.z, R0.z;\n" 4902 "MUL R0.xy, R0, R0.z;\n" 4903 "MUL R0.xy, R0, c[];\n" 4948 4904 "ADD R0.x, R0, R0.y;\n" 4949 "MUL R0.x, R0, c[3].z;\n" 4950 "MUL R1.xy, fragment.position, c[4];\n" 4905 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 4906 "TEX R1, R0.zwzw, texture[0], 2D;\n" 4907 "MUL R0.x, R0, c[0].z;\n" 4951 4908 "TEX R0, R0, texture[1], 1D;\n" 4952 "TEX R1, R1, texture[0], 2D;\n"4953 4909 "MUL R2.xyz, R0, R1.w;\n" 4954 "MUL R3.xyz, R 1, R0.w;\n"4910 "MUL R3.xyz, R;\n" 4955 4911 "ADD R0.xyz, R0, R1;\n" 4956 4912 "MIN R2.xyz, R2, R3;\n" … … 4964 4920 "!!ARBfp1.0\n" 4965 4921 "PARAM c[6] = { program.local[0..4],\n" 4966 " { 1, 2} };\n"4967 "TEMP R0;\n" 4968 "TEMP R1;\n" 4969 "TEMP R2;\n" 4970 "TEMP R3;\n" 4971 "MUL R0.xyz, fragment.position.y, c[ 1];\n"4972 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"4973 "ADD R0.xyz, R0, c[ 2];\n"4974 "RCP R0.z, R0.z;\n" 4975 "MUL R0.xy, R0, R0.z;\n" 4976 "MUL R0.xy, R0, c[ 3];\n"4922 " { } };\n" 4923 "TEMP R0;\n" 4924 "TEMP R1;\n" 4925 "TEMP R2;\n" 4926 "TEMP R3;\n" 4927 "MUL R0.xyz, fragment.position.y, c[];\n" 4928 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4929 "ADD R0.xyz, R0, c[];\n" 4930 "RCP R0.z, R0.z;\n" 4931 "MUL R0.xy, R0, R0.z;\n" 4932 "MUL R0.xy, R0, c[];\n" 4977 4933 "ADD R0.x, R0, R0.y;\n" 4978 "MUL R0. x, R0, c[3].z;\n"4979 " MUL R1.xy, fragment.position, c[4];\n"4980 " TEX R1, R1, texture[0], 2D;\n"4934 "MUL R0.;\n" 4935 ";\n" 4936 ";\n" 4981 4937 "TEX R0, R0, texture[1], 1D;\n" 4982 "MUL R2.xyz, R 1, R0.w;\n"4938 "MUL R2.xyz, R;\n" 4983 4939 "MAD R3.xyz, R0, R1.w, R2;\n" 4984 4940 "MUL R2.xyz, R0, R1;\n" 4985 "MAD R2.xyz, -R2, c[5]. y, R3;\n"4986 "ADD R2.w, -R1, c[5]. x;\n"4941 "MAD R2.xyz, -R2, c[5]., R3;\n" 4942 "ADD R2.w, -R1, c[5].;\n" 4987 4943 "MAD R0.xyz, R0, R2.w, R2;\n" 4988 4944 "ADD R2.x, R0.w, R1.w;\n" 4989 "ADD R2.y, -R0.w, c[5] .x;\n"4945 "ADD R2.y, -R0.w, c[5];\n" 4990 4946 "MAD result.color.xyz, R1, R2.y, R0;\n" 4991 4947 "MAD result.color.w, -R0, R1, R2.x;\n" … … 4998 4954 "TEMP R0;\n" 4999 4955 "TEMP R1;\n" 5000 "MUL R0.xyz, fragment.position.y, c[ 1];\n"5001 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"5002 "ADD R0.xyz, R0, c[ 2];\n"4956 "MUL R0.xyz, fragment.position.y, c[];\n" 4957 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4958 "ADD R0.xyz, R0, c[];\n" 5003 4959 "RCP R0.z, R0.z;\n" 5004 4960 "MUL R0.zw, R0.xyxy, R0.z;\n" 5005 "MUL R0.zw, R0, c[ 3].xyxy;\n"4961 "MUL R0.zw, R0, c[].xyxy;\n" 5006 4962 "ADD R1.x, R0.z, R0.w;\n" 5007 "ADD R0.xy, fragment.position, c[ 4];\n"5008 "MUL R0.xy, R0, c[ 5];\n"4963 "ADD R0.xy, fragment.position, c[];\n" 4964 "MUL R0.xy, R0, c[];\n" 5009 4965 "TEX R0, R0, texture[0], 2D;\n" 5010 4966 "DP4 R1.y, R0, c[6];\n" 5011 "MUL R1.x, R1, c[ 3].z;\n"4967 "MUL R1.x, R1, c[].z;\n" 5012 4968 "TEX R0, R1, texture[1], 1D;\n" 5013 4969 "MUL result.color, R0, R1.y;\n" … … 5019 4975 "PARAM c[4] = { program.local[0..3] };\n" 5020 4976 "TEMP R0;\n" 5021 "MUL R0.xyz, fragment.position.y, c[ 1];\n"5022 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"5023 "ADD R0.xyz, R0, c[ 2];\n"5024 "RCP R0.z, R0.z;\n" 5025 "MUL R0.xy, R0, R0.z;\n" 5026 "MUL R0.xy, R0, c[ 3];\n"4977 "MUL R0.xyz, fragment.position.y, c[];\n" 4978 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 4979 "ADD R0.xyz, R0, c[];\n" 4980 "RCP R0.z, R0.z;\n" 4981 "MUL R0.xy, R0, R0.z;\n" 4982 "MUL R0.xy, R0, c[];\n" 5027 4983 "ADD R0.x, R0, R0.y;\n" 5028 "MUL R0.x, R0, c[ 3].z;\n"4984 "MUL R0.x, R0, c[].z;\n" 5029 4985 "TEX result.color, R0, texture[0], 1D;\n" 5030 4986 "END\n" … … 5033 4989 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = 5034 4990 "!!ARBfp1.0\n" 5035 "PARAM c[11] = { program.local[0..7],\n" 5036 " { 1 },\n" 5037 " program.local[9..10] };\n" 5038 "TEMP R0;\n" 5039 "TEMP R1;\n" 5040 "TEMP R2;\n" 5041 "TEMP R3;\n" 5042 "MUL R0.xyz, fragment.position.y, c[4];\n" 5043 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5044 "ADD R0.xyz, R0, c[5];\n" 5045 "RCP R0.z, R0.z;\n" 5046 "MUL R0.xy, R0, R0.z;\n" 5047 "MUL R0.xy, R0, c[6];\n" 5048 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 5049 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5050 "MOV R0.y, -R0;\n" 5051 "TEX R0, R0, texture[2], 2D;\n" 5052 "MUL R2.xyz, R1, c[10].y;\n" 5053 "MUL R3.xyz, R2, R0.w;\n" 5054 "MUL R2.xyz, R0, c[10].x;\n" 5055 "MAD R2.xyz, R2, R1.w, R3;\n" 5056 "ADD R3.xy, fragment.position, c[0];\n" 5057 "MUL R0.xyz, R0, c[9].y;\n" 5058 "ADD R2.w, -R1, c[8].x;\n" 5059 "MAD R2.xyz, R0, R2.w, R2;\n" 5060 "ADD R2.w, -R0, c[8].x;\n" 5061 "MUL R0.xyz, R1, c[9].z;\n" 5062 "MAD R2.xyz, R0, R2.w, R2;\n" 5063 "ADD R0.y, -R1.w, c[8].x;\n" 5064 "MUL R0.z, R1.w, R2.w;\n" 5065 "MUL R0.x, R0.w, R1.w;\n" 5066 "MUL R0.y, R0.w, R0;\n" 5067 "DP3 R2.w, R0, c[9];\n" 5068 "MUL R3.xy, R3, c[1];\n" 5069 "TEX R0, R3, texture[1], 2D;\n" 5070 "ADD R2, R2, -R1;\n" 5071 "DP4 R0.x, R0, c[2];\n" 5072 "MAD result.color, R0.x, R2, R1;\n" 4991 "PARAM c[11] = { program.local[0..9],\n" 4992 " { 1 } };\n" 4993 "TEMP R0;\n" 4994 "TEMP R1;\n" 4995 "TEMP R2;\n" 4996 "TEMP R3;\n" 4997 "MUL R0.xyz, fragment.position.y, c[2];\n" 4998 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 4999 "ADD R1.xyz, R0, c[3];\n" 5000 "RCP R0.z, R1.z;\n" 5001 "MUL R1.xy, R1, R0.z;\n" 5002 "MUL R0.xy, fragment.position, c[7];\n" 5003 "TEX R0, R0, texture[0], 2D;\n" 5004 "MUL R1.xy, R1, c[0];\n" 5005 "TEX R1, R1, texture[2], 2D;\n" 5006 "MUL R2.xyz, R0, c[4].y;\n" 5007 "MUL R3.xyz, R1.w, R2;\n" 5008 "MUL R2.xyz, R1, c[4].x;\n" 5009 "MAD R2.xyz, R0.w, R2, R3;\n" 5010 "ADD R3.xy, fragment.position, c[8];\n" 5011 "ADD R2.w, -R0, c[10].x;\n" 5012 "MUL R1.xyz, R1, c[5].y;\n" 5013 "MAD R2.xyz, R2.w, R1, R2;\n" 5014 "MUL R1.xyz, R0, c[5].z;\n" 5015 "ADD R3.z, -R1.w, c[10].x;\n" 5016 "MAD R2.xyz, R3.z, R1, R2;\n" 5017 "MUL R1.y, R1.w, R2.w;\n" 5018 "MUL R1.x, R1.w, R0.w;\n" 5019 "MUL R1.z, R0.w, R3;\n" 5020 "DP3 R2.w, R1, c[5];\n" 5021 "MUL R3.xy, R3, c[6];\n" 5022 "TEX R1, R3, texture[1], 2D;\n" 5023 "ADD R2, R2, -R0;\n" 5024 "DP4 R1.x, R1, c[9];\n" 5025 "MAD result.color, R1.x, R2, R0;\n" 5073 5026 "END\n" 5074 5027 ; … … 5081 5034 "TEMP R1;\n" 5082 5035 "TEMP R2;\n" 5083 "MUL R0.xyz, fragment.position.y, c[4];\n" 5084 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5085 "ADD R0.xyz, R0, c[5];\n" 5086 "RCP R1.x, R0.z;\n" 5087 "MUL R0.xy, R0, R1.x;\n" 5088 "MUL R0.xy, R0, c[6];\n" 5089 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 5090 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5091 "MOV R0.y, -R0;\n" 5092 "TEX R0, R0, texture[2], 2D;\n" 5036 "MUL R0.xyz, fragment.position.y, c[2];\n" 5037 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5038 "ADD R1.xyz, R0, c[3];\n" 5039 "RCP R0.z, R1.z;\n" 5040 "MUL R1.xy, R1, R0.z;\n" 5041 "MUL R0.xy, fragment.position, c[5];\n" 5042 "TEX R0, R0, texture[0], 2D;\n" 5043 "MUL R1.xy, R1, c[0];\n" 5044 "TEX R1, R1, texture[2], 2D;\n" 5045 "ADD R2.x, -R0.w, c[8];\n" 5046 "MUL R2.xyz, R1, R2.x;\n" 5047 "MAD R1.xyz, R1, R0, R2;\n" 5093 5048 "ADD R2.x, -R1.w, c[8];\n" 5094 "MUL R2.xyz, R0, R2.x;\n" 5095 "MAD R0.xyz, R0, R1, R2;\n" 5096 "ADD R2.x, -R0.w, c[8];\n" 5097 "MAD R2.xyz, R1, R2.x, R0;\n" 5098 "ADD R0.z, R0.w, R1.w;\n" 5099 "MAD R2.w, -R0, R1, R0.z;\n" 5100 "ADD R0.xy, fragment.position, c[0];\n" 5101 "MUL R0.xy, R0, c[1];\n" 5102 "TEX R0, R0, texture[1], 2D;\n" 5103 "ADD R2, R2, -R1;\n" 5104 "DP4 R0.x, R0, c[2];\n" 5105 "MAD result.color, R0.x, R2, R1;\n" 5049 "MAD R2.xyz, R0, R2.x, R1;\n" 5050 "ADD R1.z, R1.w, R0.w;\n" 5051 "MAD R2.w, -R1, R0, R1.z;\n" 5052 "ADD R1.xy, fragment.position, c[6];\n" 5053 "MUL R1.xy, R1, c[4];\n" 5054 "TEX R1, R1, texture[1], 2D;\n" 5055 "ADD R2, R2, -R0;\n" 5056 "DP4 R1.x, R1, c[7];\n" 5057 "MAD result.color, R1.x, R2, R0;\n" 5106 5058 "END\n" 5107 5059 ; … … 5114 5066 "TEMP R2;\n" 5115 5067 "TEMP R3;\n" 5116 "MUL R0.xyz, fragment.position.y, c[4];\n" 5117 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5118 "ADD R0.xyz, R0, c[5];\n" 5119 "RCP R0.z, R0.z;\n" 5120 "MUL R0.xy, R0, R0.z;\n" 5121 "MUL R0.xy, R0, c[6];\n" 5122 "MOV R0.y, -R0;\n" 5123 "MUL R1.xy, fragment.position, c[7];\n" 5124 "ADD R3.xy, fragment.position, c[0];\n" 5125 "TEX R1, R1, texture[0], 2D;\n" 5126 "TEX R0, R0, texture[2], 2D;\n" 5127 "ADD R2, R0, R1;\n" 5128 "MAD R2, -R0, R1, R2;\n" 5129 "MUL R3.xy, R3, c[1];\n" 5130 "TEX R0, R3, texture[1], 2D;\n" 5131 "ADD R2, R2, -R1;\n" 5132 "DP4 R0.x, R0, c[2];\n" 5133 "MAD result.color, R0.x, R2, R1;\n" 5068 "MUL R0.xyz, fragment.position.y, c[2];\n" 5069 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5070 "ADD R0.xyz, R0, c[3];\n" 5071 "RCP R0.z, R0.z;\n" 5072 "MUL R0.xy, R0, R0.z;\n" 5073 "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" 5074 "ADD R3.xy, fragment.position, c[6];\n" 5075 "TEX R1, R0.zwzw, texture[2], 2D;\n" 5076 "MUL R0.xy, fragment.position, c[5];\n" 5077 "TEX R0, R0, texture[0], 2D;\n" 5078 "ADD R2, R1, R0;\n" 5079 "MAD R2, -R1, R0, R2;\n" 5080 "MUL R3.xy, R3, c[4];\n" 5081 "TEX R1, R3, texture[1], 2D;\n" 5082 "ADD R2, R2, -R0;\n" 5083 "DP4 R1.x, R1, c[7];\n" 5084 "MAD result.color, R1.x, R2, R0;\n" 5134 5085 "END\n" 5135 5086 ; … … 5144 5095 "TEMP R3;\n" 5145 5096 "TEMP R4;\n" 5146 "MUL R0.xyz, fragment.position.y, c[4];\n" 5147 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5148 "ADD R0.xyz, R0, c[5];\n" 5149 "RCP R0.z, R0.z;\n" 5150 "MUL R0.xy, R0, R0.z;\n" 5151 "MUL R0.xy, R0, c[6];\n" 5152 "MOV R0.y, -R0;\n" 5097 "MUL R0.xyz, fragment.position.y, c[2];\n" 5098 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5099 "ADD R0.xyz, R0, c[3];\n" 5100 "RCP R0.z, R0.z;\n" 5101 "MUL R0.xy, R0, R0.z;\n" 5102 "MUL R0.xy, R0, c[0];\n" 5153 5103 "TEX R0, R0, texture[2], 2D;\n" 5154 "MUL R1.xy, fragment.position, c[ 7];\n"5104 "MUL R1.xy, fragment.position, c[];\n" 5155 5105 "TEX R1, R1, texture[0], 2D;\n" 5156 5106 "ADD R2.w, -R1, c[8].y;\n" … … 5173 5123 "ADD R0.z, R0.w, R1.w;\n" 5174 5124 "MAD R2.w, -R0, R1, R0.z;\n" 5175 "ADD R0.xy, fragment.position, c[ 0];\n"5176 "MUL R0.xy, R0, c[ 1];\n"5125 "ADD R0.xy, fragment.position, c[];\n" 5126 "MUL R0.xy, R0, c[];\n" 5177 5127 "TEX R0, R0, texture[1], 2D;\n" 5178 5128 "ADD R2, R2, -R1;\n" 5179 "DP4 R0.x, R0, c[ 2];\n"5129 "DP4 R0.x, R0, c[];\n" 5180 5130 "MAD result.color, R0.x, R2, R1;\n" 5181 5131 "END\n" … … 5190 5140 "TEMP R2;\n" 5191 5141 "TEMP R3;\n" 5192 "MUL R0.xyz, fragment.position.y, c[4];\n" 5193 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5194 "ADD R0.xyz, R0, c[5];\n" 5195 "RCP R0.z, R0.z;\n" 5196 "MUL R0.xy, R0, R0.z;\n" 5197 "MUL R0.xy, R0, c[6];\n" 5198 "MOV R0.y, -R0;\n" 5199 "MUL R1.xy, fragment.position, c[7];\n" 5200 "TEX R1, R1, texture[0], 2D;\n" 5201 "TEX R0, R0, texture[2], 2D;\n" 5202 "MUL R3.xyz, R1, R0.w;\n" 5203 "MUL R2.xyz, R0, R1.w;\n" 5142 "MUL R0.xyz, fragment.position.y, c[2];\n" 5143 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5144 "ADD R0.xyz, R0, c[3];\n" 5145 "RCP R0.z, R0.z;\n" 5146 "MUL R0.zw, R0.xyxy, R0.z;\n" 5147 "MUL R1.xy, R0.zwzw, c[0];\n" 5148 "MUL R0.xy, fragment.position, c[5];\n" 5149 "TEX R0, R0, texture[0], 2D;\n" 5150 "TEX R1, R1, texture[2], 2D;\n" 5151 "MUL R3.xyz, R1.w, R0;\n" 5152 "MUL R2.xyz, R1, R0.w;\n" 5204 5153 "MIN R2.xyz, R2, R3;\n" 5205 "ADD R2.w, -R 1, c[8].x;\n"5206 "MAD R 0.xyz, R0, R2.w, R2;\n"5207 "ADD R2.x, -R 0.w, c[8];\n"5208 "MAD R2.xyz, R 1, R2.x, R0;\n"5209 "ADD R 0.z, R0.w, R1.w;\n"5210 "MAD R2.w, -R 0, R1, R0.z;\n"5211 "ADD R 0.xy, fragment.position, c[0];\n"5212 "MUL R 0.xy, R0, c[1];\n"5213 "TEX R 0, R0, texture[1], 2D;\n"5214 "ADD R2, R2, -R 1;\n"5215 "DP4 R 0.x, R0, c[2];\n"5216 "MAD result.color, R 0.x, R2, R1;\n"5154 "ADD R2.w, -R, c[8].x;\n" 5155 "MAD R, R2.w, R2;\n" 5156 "ADD R2.x, -R.w, c[8];\n" 5157 "MAD R2.xyz, R;\n" 5158 "ADD R.w;\n" 5159 "MAD R2.w, -R.z;\n" 5160 "ADD R];\n" 5161 "MUL R];\n" 5162 "TEX R, texture[1], 2D;\n" 5163 "ADD R2, R2, -R;\n" 5164 "DP4 R];\n" 5165 "MAD result.color, R;\n" 5217 5166 "END\n" 5218 5167 ; … … 5226 5175 "TEMP R2;\n" 5227 5176 "TEMP R3;\n" 5228 "MUL R0.xyz, fragment.position.y, c[4];\n" 5229 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5230 "ADD R0.xyz, R0, c[5];\n" 5231 "RCP R0.z, R0.z;\n" 5232 "MUL R0.xy, R0, R0.z;\n" 5233 "MUL R0.xy, R0, c[6];\n" 5234 "MOV R0.y, -R0;\n" 5235 "MUL R1.xy, fragment.position, c[7];\n" 5236 "TEX R1, R1, texture[0], 2D;\n" 5237 "TEX R0, R0, texture[2], 2D;\n" 5238 "MUL R3.xyz, R1, R0.w;\n" 5239 "MUL R2.xyz, R0, R1.w;\n" 5177 "MUL R0.xyz, fragment.position.y, c[2];\n" 5178 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5179 "ADD R0.xyz, R0, c[3];\n" 5180 "RCP R0.z, R0.z;\n" 5181 "MUL R0.zw, R0.xyxy, R0.z;\n" 5182 "MUL R1.xy, R0.zwzw, c[0];\n" 5183 "MUL R0.xy, fragment.position, c[5];\n" 5184 "TEX R0, R0, texture[0], 2D;\n" 5185 "TEX R1, R1, texture[2], 2D;\n" 5186 "MUL R3.xyz, R1.w, R0;\n" 5187 "MUL R2.xyz, R1, R0.w;\n" 5240 5188 "MAX R2.xyz, R2, R3;\n" 5241 "ADD R2.w, -R 1, c[8].x;\n"5242 "MAD R 0.xyz, R0, R2.w, R2;\n"5243 "ADD R2.x, -R 0.w, c[8];\n"5244 "MAD R2.xyz, R 1, R2.x, R0;\n"5245 "ADD R 0.z, R0.w, R1.w;\n"5246 "MAD R2.w, -R 0, R1, R0.z;\n"5247 "ADD R 0.xy, fragment.position, c[0];\n"5248 "MUL R 0.xy, R0, c[1];\n"5249 "TEX R 0, R0, texture[1], 2D;\n"5250 "ADD R2, R2, -R 1;\n"5251 "DP4 R 0.x, R0, c[2];\n"5252 "MAD result.color, R 0.x, R2, R1;\n"5189 "ADD R2.w, -R, c[8].x;\n" 5190 "MAD R, R2.w, R2;\n" 5191 "ADD R2.x, -R.w, c[8];\n" 5192 "MAD R2.xyz, R;\n" 5193 "ADD R.w;\n" 5194 "MAD R2.w, -R.z;\n" 5195 "ADD R];\n" 5196 "MUL R];\n" 5197 "TEX R, texture[1], 2D;\n" 5198 "ADD R2, R2, -R;\n" 5199 "DP4 R];\n" 5200 "MAD result.color, R;\n" 5253 5201 "END\n" 5254 5202 ; … … 5257 5205 "!!ARBfp1.0\n" 5258 5206 "PARAM c[9] = { program.local[0..7],\n" 5259 " { 1, 1e-0 6 } };\n"5207 " { 1, 1e-06 } };\n" 5260 5208 "TEMP R0;\n" 5261 5209 "TEMP R1;\n" … … 5263 5211 "TEMP R3;\n" 5264 5212 "TEMP R4;\n" 5265 "MUL R0.xyz, fragment.position.y, c[4];\n" 5266 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5267 "ADD R0.xyz, R0, c[5];\n" 5268 "RCP R0.z, R0.z;\n" 5269 "MUL R0.xy, R0, R0.z;\n" 5270 "MUL R0.xy, R0, c[6];\n" 5271 "MOV R0.y, -R0;\n" 5213 "MUL R0.xyz, fragment.position.y, c[2];\n" 5214 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5215 "ADD R0.xyz, R0, c[3];\n" 5216 "RCP R0.z, R0.z;\n" 5217 "MUL R0.xy, R0, R0.z;\n" 5218 "MUL R0.xy, R0, c[0];\n" 5272 5219 "TEX R0, R0, texture[2], 2D;\n" 5273 5220 "MAX R1.x, R0.w, c[8].y;\n" 5274 5221 "RCP R1.x, R1.x;\n" 5275 "MAD R 1.xyz, -R0, R1.x, c[8].x;\n"5276 "MAX R2.xyz, R 1, c[8].y;\n"5277 "MUL R1.xy, fragment.position, c[ 7];\n"5222 "MAD R.xyz, -R0, R1.x, c[8].x;\n" 5223 "MAX R2.xyz, R, c[8].y;\n" 5224 "MUL R1.xy, fragment.position, c[];\n" 5278 5225 "TEX R1, R1, texture[0], 2D;\n" 5279 5226 "ADD R2.w, -R0, c[8].x;\n" … … 5281 5228 "ADD R2.w, -R1, c[8].x;\n" 5282 5229 "MAD R4.xyz, R0, R2.w, R3;\n" 5283 "MUL R3.xyz, R 1, R0.w;\n"5230 "MUL R3.xyz, R;\n" 5284 5231 "MUL R2.w, R0, R1;\n" 5285 5232 "MAD R0.xyz, R0, R1.w, R3;\n" … … 5294 5241 "ADD R0.z, R0.w, R1.w;\n" 5295 5242 "MAD R2.w, -R0, R1, R0.z;\n" 5296 "ADD R0.xy, fragment.position, c[ 0];\n"5297 "MUL R0.xy, R0, c[ 1];\n"5243 "ADD R0.xy, fragment.position, c[];\n" 5244 "MUL R0.xy, R0, c[];\n" 5298 5245 "TEX R0, R0, texture[1], 2D;\n" 5299 5246 "ADD R2, R2, -R1;\n" 5300 "DP4 R0.x, R0, c[ 2];\n"5247 "DP4 R0.x, R0, c[];\n" 5301 5248 "MAD result.color, R0.x, R2, R1;\n" 5302 5249 "END\n" … … 5306 5253 "!!ARBfp1.0\n" 5307 5254 "PARAM c[9] = { program.local[0..7],\n" 5308 " { 1, 9.9999997e-0 6 } };\n"5255 " { 1, 9.9999997e-06 } };\n" 5309 5256 "TEMP R0;\n" 5310 5257 "TEMP R1;\n" … … 5313 5260 "TEMP R4;\n" 5314 5261 "TEMP R5;\n" 5315 "MUL R0.xyz, fragment.position.y, c[4];\n" 5316 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5317 "ADD R0.xyz, R0, c[5];\n" 5318 "RCP R0.z, R0.z;\n" 5319 "MUL R0.xy, R0, R0.z;\n" 5320 "MUL R0.xy, R0, c[6];\n" 5321 "MOV R0.y, -R0;\n" 5262 "MUL R0.xyz, fragment.position.y, c[2];\n" 5263 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5264 "ADD R0.xyz, R0, c[3];\n" 5265 "RCP R0.z, R0.z;\n" 5266 "MUL R0.xy, R0, R0.z;\n" 5267 "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" 5268 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5269 "MUL R0.xy, R0, c[0];\n" 5322 5270 "TEX R0, R0, texture[2], 2D;\n" 5323 "MUL R1.xy, fragment.position, c[7];\n" 5324 "TEX R1, R1, texture[0], 2D;\n" 5325 "MUL R2.xyz, R1, R0.w;\n" 5271 "MUL R2.xyz, R0.w, R1;\n" 5326 5272 "MAD R3.xyz, R0, R1.w, R2;\n" 5327 5273 "MAD R2.xyz, -R0.w, R1.w, R3;\n" … … 5338 5284 "MAD R0.xyz, R0, R2.w, R4;\n" 5339 5285 "MUL R2.w, R0, R1;\n" 5340 "ADD R3.w, -R0, c[8].x;\n"5341 5286 "MAD R2.xyz, R1, R3.w, R2;\n" 5342 5287 "ADD R2.xyz, R2, -R0;\n" … … 5345 5290 "ADD R0.z, R0.w, R1.w;\n" 5346 5291 "MAD R2.w, -R0, R1, R0.z;\n" 5347 "ADD R0.xy, fragment.position, c[ 0];\n"5348 "MUL R0.xy, R0, c[ 1];\n"5292 "ADD R0.xy, fragment.position, c[];\n" 5293 "MUL R0.xy, R0, c[];\n" 5349 5294 "TEX R0, R0, texture[1], 2D;\n" 5350 5295 "ADD R2, R2, -R1;\n" 5351 "DP4 R0.x, R0, c[ 2];\n"5296 "DP4 R0.x, R0, c[];\n" 5352 5297 "MAD result.color, R0.x, R2, R1;\n" 5353 5298 "END\n" … … 5363 5308 "TEMP R3;\n" 5364 5309 "TEMP R4;\n" 5365 "MUL R0.xyz, fragment.position.y, c[4];\n" 5366 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5367 "ADD R0.xyz, R0, c[5];\n" 5368 "RCP R0.z, R0.z;\n" 5369 "MUL R0.xy, R0, R0.z;\n" 5370 "MUL R0.xy, R0, c[6];\n" 5371 "MOV R0.y, -R0;\n" 5310 "MUL R0.xyz, fragment.position.y, c[2];\n" 5311 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5312 "ADD R0.xyz, R0, c[3];\n" 5313 "RCP R0.z, R0.z;\n" 5314 "MUL R0.xy, R0, R0.z;\n" 5315 "MUL R0.xy, R0, c[0];\n" 5372 5316 "TEX R0, R0, texture[2], 2D;\n" 5373 "MUL R1.xy, fragment.position, c[ 7];\n"5317 "MUL R1.xy, fragment.position, c[];\n" 5374 5318 "TEX R1, R1, texture[0], 2D;\n" 5375 5319 "ADD R2.w, -R1, c[8].y;\n" … … 5392 5336 "ADD R0.z, R0.w, R1.w;\n" 5393 5337 "MAD R2.w, -R0, R1, R0.z;\n" 5394 "ADD R0.xy, fragment.position, c[ 0];\n"5395 "MUL R0.xy, R0, c[ 1];\n"5338 "ADD R0.xy, fragment.position, c[];\n" 5339 "MUL R0.xy, R0, c[];\n" 5396 5340 "TEX R0, R0, texture[1], 2D;\n" 5397 5341 "ADD R2, R2, -R1;\n" 5398 "DP4 R0.x, R0, c[ 2];\n"5342 "DP4 R0.x, R0, c[];\n" 5399 5343 "MAD result.color, R0.x, R2, R1;\n" 5400 5344 "END\n" … … 5404 5348 "!!ARBfp1.0\n" 5405 5349 "PARAM c[10] = { program.local[0..7],\n" 5406 " { 1, 9.9999997e-06, 2, 8},\n"5407 " { 3 } };\n"5350 " { 1, },\n" 5351 " { 3 } };\n" 5408 5352 "TEMP R0;\n" 5409 5353 "TEMP R1;\n" … … 5413 5357 "TEMP R5;\n" 5414 5358 "TEMP R6;\n" 5415 "MUL R0.xyz, fragment.position.y, c[4];\n" 5416 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5417 "ADD R0.xyz, R0, c[5];\n" 5418 "RCP R0.z, R0.z;\n" 5419 "MUL R0.xy, R0, R0.z;\n" 5420 "MUL R0.xy, R0, c[6];\n" 5421 "MUL R1.xy, fragment.position, c[7];\n" 5359 "MUL R0.xyz, fragment.position.y, c[2];\n" 5360 "MUL R1.xy, fragment.position, c[5];\n" 5422 5361 "TEX R1, R1, texture[0], 2D;\n" 5423 "MAX R0.z, R1.w, c[8].y;\n" 5424 "RCP R2.w, R0.z;\n" 5425 "MUL R2.xyz, R1, R2.w;\n" 5426 "MUL R6.xyz, -R2, c[8].w;\n" 5427 "MAD R3.xyz, -R1, R2.w, c[8].x;\n" 5428 "MOV R0.y, -R0;\n" 5362 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5363 "ADD R0.xyz, R0, c[3];\n" 5364 "RCP R0.z, R0.z;\n" 5365 "MUL R0.xy, R0, R0.z;\n" 5366 "MAX R0.w, R1, c[8].z;\n" 5367 "RCP R0.w, R0.w;\n" 5368 "MUL R3.xyz, R1, R0.w;\n" 5369 "MAD R2.xyz, R3, c[9].x, -c[9].y;\n" 5370 "MUL R0.xy, R0, c[0];\n" 5429 5371 "TEX R0, R0, texture[2], 2D;\n" 5430 "MAD R4.xyz, R0, c[8].z, -R0.w;\n" 5431 "MUL R5.xyz, R3, R4;\n" 5432 "MAD R3.xyz, -R3, R4, R0.w;\n" 5433 "ADD R6.xyz, R6, c[9].x;\n" 5434 "RSQ R2.x, R2.x;\n" 5435 "RSQ R2.z, R2.z;\n" 5436 "RSQ R2.y, R2.y;\n" 5437 "MAD R5.xyz, -R5, R6, R0.w;\n" 5438 "MUL R3.xyz, R1, R3;\n" 5372 "MAD R4.xyz, R3, R2, c[9].z;\n" 5373 "MAD R2.xyz, R0, c[8].y, -R0.w;\n" 5374 "MUL R5.xyz, R1.w, R2;\n" 5375 "MUL R6.xyz, R5, R4;\n" 5376 "RSQ R2.w, R3.x;\n" 5377 "RCP R4.x, R2.w;\n" 5378 "RSQ R2.w, R3.y;\n" 5379 "RSQ R3.w, R3.z;\n" 5380 "RCP R4.y, R2.w;\n" 5381 "RCP R4.z, R3.w;\n" 5382 "ADD R4.xyz, -R3, R4;\n" 5383 "MUL R6.xyz, R3, R6;\n" 5384 "MUL R4.xyz, R5, R4;\n" 5385 "ADD R3.xyz, -R3, c[8].x;\n" 5386 "MAD R2.xyz, R2, R3, R0.w;\n" 5387 "MUL R3.xyz, R0, c[8].y;\n" 5388 "MAD R5.xyz, R0.w, R1, R6;\n" 5389 "MAD R4.xyz, R0.w, R1, R4;\n" 5390 "ADD R6.xyz, R4, -R5;\n" 5391 "MUL R4.xyz, R1, c[8].w;\n" 5392 "SGE R4.xyz, R4, R1.w;\n" 5393 "MAD R4.xyz, R4, R6, R5;\n" 5394 "MAD R4.xyz, -R1, R2, R4;\n" 5395 "SGE R3.xyz, R3, R0.w;\n" 5396 "MUL R2.xyz, R1, R2;\n" 5439 5397 "ADD R2.w, -R1, c[8].x;\n" 5440 "RCP R2.x, R2.x;\n" 5441 "RCP R2.z, R2.z;\n" 5442 "RCP R2.y, R2.y;\n" 5443 "MAD R2.xyz, R2, R1.w, -R1;\n" 5444 "MUL R6.xyz, R2, R4;\n" 5445 "MUL R2.xyz, R1, R5;\n" 5446 "MAD R6.xyz, R1, R0.w, R6;\n" 5447 "MUL R4.xyz, R0, c[8].z;\n" 5448 "MUL R5.xyz, R1, c[8].w;\n" 5449 "ADD R6.xyz, R6, -R2;\n" 5450 "SGE R5.xyz, R5, R1.w;\n" 5451 "MUL R5.xyz, R5, R6;\n" 5452 "ADD R2.xyz, R2, R5;\n" 5453 "SGE R4.xyz, R4, R0.w;\n" 5454 "ADD R2.xyz, R2, -R3;\n" 5455 "MUL R2.xyz, R4, R2;\n" 5456 "ADD R2.xyz, R3, R2;\n" 5457 "MAD R0.xyz, R0, R2.w, R2;\n" 5458 "ADD R2.x, -R0.w, c[8];\n" 5459 "MAD R2.xyz, R1, R2.x, R0;\n" 5398 "MAD R2.xyz, R3, R4, R2;\n" 5399 "MAD R2.xyz, R0, R2.w, R2;\n" 5400 "ADD R0.x, -R0.w, c[8];\n" 5401 "MAD R2.xyz, R1, R0.x, R2;\n" 5460 5402 "ADD R0.z, R0.w, R1.w;\n" 5461 5403 "MAD R2.w, -R0, R1, R0.z;\n" 5462 "ADD R0.xy, fragment.position, c[ 0];\n"5463 "MUL R0.xy, R0, c[ 1];\n"5404 "ADD R0.xy, fragment.position, c[];\n" 5405 "MUL R0.xy, R0, c[];\n" 5464 5406 "TEX R0, R0, texture[1], 2D;\n" 5465 5407 "ADD R2, R2, -R1;\n" 5466 "DP4 R0.x, R0, c[ 2];\n"5408 "DP4 R0.x, R0, c[];\n" 5467 5409 "MAD result.color, R0.x, R2, R1;\n" 5468 5410 "END\n" … … 5477 5419 "TEMP R2;\n" 5478 5420 "TEMP R3;\n" 5479 "MUL R0.xyz, fragment.position.y, c[4];\n" 5480 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5481 "ADD R0.xyz, R0, c[5];\n" 5482 "RCP R0.z, R0.z;\n" 5483 "MUL R0.xy, R0, R0.z;\n" 5484 "MUL R0.xy, R0, c[6];\n" 5485 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 5486 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5487 "MOV R0.y, -R0;\n" 5488 "TEX R0, R0, texture[2], 2D;\n" 5489 "ADD R3.xyz, R0, R1;\n" 5490 "MUL R2.xyz, R1, R0.w;\n" 5491 "MUL R0.xyz, R0, R1.w;\n" 5492 "MIN R0.xyz, R0, R2;\n" 5493 "MAD R2.xyz, -R0, c[8].x, R3;\n" 5494 "ADD R0.z, R0.w, R1.w;\n" 5495 "MAD R2.w, -R0, R1, R0.z;\n" 5496 "ADD R0.xy, fragment.position, c[0];\n" 5497 "MUL R0.xy, R0, c[1];\n" 5421 "MUL R0.xyz, fragment.position.y, c[2];\n" 5422 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5423 "ADD R0.xyz, R0, c[3];\n" 5424 "RCP R0.z, R0.z;\n" 5425 "MUL R0.zw, R0.xyxy, R0.z;\n" 5426 "MUL R1.xy, R0.zwzw, c[0];\n" 5427 "MUL R0.xy, fragment.position, c[5];\n" 5428 "TEX R0, R0, texture[0], 2D;\n" 5429 "TEX R1, R1, texture[2], 2D;\n" 5430 "ADD R2.xyz, R1, R0;\n" 5431 "MUL R3.xyz, R1.w, R0;\n" 5432 "MUL R1.xyz, R1, R0.w;\n" 5433 "MIN R1.xyz, R1, R3;\n" 5434 "MAD R2.xyz, -R1, c[8].x, R2;\n" 5435 "ADD R1.z, R1.w, R0.w;\n" 5436 "MAD R2.w, -R1, R0, R1.z;\n" 5437 "ADD R1.xy, fragment.position, c[6];\n" 5438 "MUL R1.xy, R1, c[4];\n" 5439 "TEX R1, R1, texture[1], 2D;\n" 5440 "ADD R2, R2, -R0;\n" 5441 "DP4 R1.x, R1, c[7];\n" 5442 "MAD result.color, R1.x, R2, R0;\n" 5443 "END\n" 5444 ; 5445 5446 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_EXCLUSION = 5447 "!!ARBfp1.0\n" 5448 "PARAM c[9] = { program.local[0..7],\n" 5449 " { 2, 1 } };\n" 5450 "TEMP R0;\n" 5451 "TEMP R1;\n" 5452 "TEMP R2;\n" 5453 "TEMP R3;\n" 5454 "MUL R0.xyz, fragment.position.y, c[2];\n" 5455 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5456 "ADD R0.xyz, R0, c[3];\n" 5457 "RCP R0.z, R0.z;\n" 5458 "MUL R0.zw, R0.xyxy, R0.z;\n" 5459 "MUL R1.xy, R0.zwzw, c[0];\n" 5460 "MUL R0.xy, fragment.position, c[5];\n" 5461 "TEX R0, R0, texture[0], 2D;\n" 5462 "TEX R1, R1, texture[2], 2D;\n" 5463 "MUL R2.xyz, R1.w, R0;\n" 5464 "MAD R3.xyz, R1, R0.w, R2;\n" 5465 "MUL R2.xyz, R1, R0;\n" 5466 "MAD R2.xyz, -R2, c[8].x, R3;\n" 5467 "ADD R2.w, -R0, c[8].y;\n" 5468 "MAD R1.xyz, R1, R2.w, R2;\n" 5469 "ADD R2.x, -R1.w, c[8].y;\n" 5470 "MAD R2.xyz, R0, R2.x, R1;\n" 5471 "ADD R1.z, R1.w, R0.w;\n" 5472 "MAD R2.w, -R1, R0, R1.z;\n" 5473 "ADD R1.xy, fragment.position, c[6];\n" 5474 "MUL R1.xy, R1, c[4];\n" 5475 "TEX R1, R1, texture[1], 2D;\n" 5476 "ADD R2, R2, -R0;\n" 5477 "DP4 R1.x, R1, c[7];\n" 5478 "MAD result.color, R1.x, R2, R0;\n" 5479 "END\n" 5480 ; 5481 5482 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 5483 "!!ARBfp1.0\n" 5484 "PARAM c[8] = { program.local[0..6],\n" 5485 " { 1 } };\n" 5486 "TEMP R0;\n" 5487 "TEMP R1;\n" 5488 "TEMP R2;\n" 5489 "TEMP R3;\n" 5490 "MUL R0.xyz, fragment.position.y, c[2];\n" 5491 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5492 "ADD R0.xyz, R0, c[3];\n" 5493 "RCP R0.z, R0.z;\n" 5494 "MUL R0.xy, R0, R0.z;\n" 5495 "MUL R1.xy, fragment.position, c[6];\n" 5496 "TEX R1, R1, texture[0], 2D;\n" 5497 "MUL R2.xyz, R1, c[4].y;\n" 5498 "MUL R0.xy, R0, c[0];\n" 5498 5499 "TEX R0, R0, texture[1], 2D;\n" 5499 "ADD R2, R2, -R1;\n" 5500 "DP4 R0.x, R0, c[2];\n" 5501 "MAD result.color, R0.x, R2, R1;\n" 5502 "END\n" 5503 ; 5504 5505 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_EXCLUSION = 5506 "!!ARBfp1.0\n" 5507 "PARAM c[9] = { program.local[0..7],\n" 5508 " { 1, 2 } };\n" 5509 "TEMP R0;\n" 5510 "TEMP R1;\n" 5511 "TEMP R2;\n" 5512 "TEMP R3;\n" 5513 "MUL R0.xyz, fragment.position.y, c[4];\n" 5514 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 5515 "ADD R0.xyz, R0, c[5];\n" 5516 "RCP R0.z, R0.z;\n" 5517 "MUL R0.xy, R0, R0.z;\n" 5518 "MUL R0.xy, R0, c[6];\n" 5519 "MOV R0.y, -R0;\n" 5520 "MUL R1.xy, fragment.position, c[7];\n" 5521 "TEX R1, R1, texture[0], 2D;\n" 5522 "TEX R0, R0, texture[2], 2D;\n" 5523 "MUL R2.xyz, R1, R0.w;\n" 5524 "MAD R3.xyz, R0, R1.w, R2;\n" 5525 "MUL R2.xyz, R0, R1;\n" 5526 "MAD R2.xyz, -R2, c[8].y, R3;\n" 5527 "ADD R2.w, -R1, c[8].x;\n" 5528 "MAD R0.xyz, R0, R2.w, R2;\n" 5529 "ADD R2.x, -R0.w, c[8];\n" 5530 "MAD R2.xyz, R1, R2.x, R0;\n" 5531 "ADD R0.z, R0.w, R1.w;\n" 5532 "MAD R2.w, -R0, R1, R0.z;\n" 5533 "ADD R0.xy, fragment.position, c[0];\n" 5534 "MUL R0.xy, R0, c[1];\n" 5535 "TEX R0, R0, texture[1], 2D;\n" 5536 "ADD R2, R2, -R1;\n" 5537 "DP4 R0.x, R0, c[2];\n" 5538 "MAD result.color, R0.x, R2, R1;\n" 5539 "END\n" 5540 ; 5541 5542 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 5543 "!!ARBfp1.0\n" 5544 "PARAM c[8] = { program.local[0..4],\n" 5545 " { 1 },\n" 5546 " program.local[6..7] };\n" 5547 "TEMP R0;\n" 5548 "TEMP R1;\n" 5549 "TEMP R2;\n" 5550 "TEMP R3;\n" 5551 "MUL R0.xyz, fragment.position.y, c[1];\n" 5552 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5553 "ADD R0.xyz, R0, c[2];\n" 5554 "RCP R0.z, R0.z;\n" 5555 "MUL R0.xy, R0, R0.z;\n" 5556 "MUL R0.xy, R0, c[3];\n" 5557 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 5558 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5559 "MUL R2.xyz, R1, c[7].y;\n" 5560 "MOV R0.y, -R0;\n" 5561 "TEX R0, R0, texture[1], 2D;\n" 5562 "MUL R3.xyz, R2, R0.w;\n" 5563 "MUL R2.xyz, R0, c[7].x;\n" 5564 "MAD R2.xyz, R2, R1.w, R3;\n" 5565 "MUL R0.xyz, R0, c[6].y;\n" 5566 "ADD R2.w, -R1, c[5].x;\n" 5567 "MAD R0.xyz, R0, R2.w, R2;\n" 5568 "ADD R2.x, -R0.w, c[5];\n" 5569 "MUL R1.xyz, R1, c[6].z;\n" 5570 "MAD result.color.xyz, R1, R2.x, R0;\n" 5571 "ADD R0.y, -R1.w, c[5].x;\n" 5500 "MUL R3.xyz, R0.w, R2;\n" 5501 "MUL R2.xyz, R0, c[4].x;\n" 5502 "MAD R2.xyz, R1.w, R2, R3;\n" 5503 "ADD R2.w, -R1, c[7].x;\n" 5504 "MUL R0.xyz, R0, c[5].y;\n" 5505 "MAD R0.xyz, R2.w, R0, R2;\n" 5506 "ADD R2.x, -R0.w, c[7];\n" 5507 "MUL R1.xyz, R1, c[5].z;\n" 5508 "MAD result.color.xyz, R2.x, R1, R0;\n" 5572 5509 "MUL R0.x, R0.w, R1.w;\n" 5573 5510 "MUL R0.z, R1.w, R2.x;\n" 5574 "MUL R0.y, R0.w, R 0;\n"5575 "DP3 result.color.w, R0, c[ 6];\n"5511 "MUL R0.y, R0.w, R;\n" 5512 "DP3 result.color.w, R0, c[];\n" 5576 5513 "END\n" 5577 5514 ; … … 5584 5521 "TEMP R1;\n" 5585 5522 "TEMP R2;\n" 5586 "MUL R0.xyz, fragment.position.y, c[1];\n" 5587 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5588 "ADD R0.xyz, R0, c[2];\n" 5589 "RCP R1.x, R0.z;\n" 5590 "MUL R0.xy, R0, R1.x;\n" 5591 "MUL R0.xy, R0, c[3];\n" 5592 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 5593 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5594 "MOV R0.y, -R0;\n" 5523 "MUL R0.xyz, fragment.position.y, c[2];\n" 5524 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5525 "ADD R0.xyz, R0, c[3];\n" 5526 "RCP R0.z, R0.z;\n" 5527 "MUL R0.xy, R0, R0.z;\n" 5528 "MUL R1.xy, fragment.position, c[4];\n" 5529 "TEX R1, R1, texture[0], 2D;\n" 5530 "MUL R0.xy, R0, c[0];\n" 5595 5531 "TEX R0, R0, texture[1], 2D;\n" 5596 5532 "ADD R2.x, -R1.w, c[5];\n" … … 5610 5546 "TEMP R1;\n" 5611 5547 "TEMP R2;\n" 5612 "MUL R0.xyz, fragment.position.y, c[1];\n" 5613 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5614 "ADD R0.xyz, R0, c[2];\n" 5615 "RCP R0.z, R0.z;\n" 5616 "MUL R0.xy, R0, R0.z;\n" 5617 "MUL R0.xy, R0, c[3];\n" 5548 "MUL R0.xyz, fragment.position.y, c[2];\n" 5549 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5550 "ADD R0.xyz, R0, c[3];\n" 5551 "RCP R0.z, R0.z;\n" 5552 "MUL R0.xy, R0, R0.z;\n" 5618 5553 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 5619 5554 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5620 "M OV R0.y, -R0;\n"5555 "M;\n" 5621 5556 "TEX R0, R0, texture[1], 2D;\n" 5622 5557 "ADD R2, R0, R1;\n" … … 5633 5568 "TEMP R2;\n" 5634 5569 "TEMP R3;\n" 5635 "MUL R0.xyz, fragment.position.y, c[1];\n" 5636 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5637 "ADD R0.xyz, R0, c[2];\n" 5638 "RCP R0.z, R0.z;\n" 5639 "MUL R0.xy, R0, R0.z;\n" 5640 "MUL R0.xy, R0, c[3];\n" 5641 "MOV R0.y, -R0;\n" 5570 "MUL R0.xyz, fragment.position.y, c[2];\n" 5571 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5572 "ADD R0.xyz, R0, c[3];\n" 5573 "RCP R0.z, R0.z;\n" 5574 "MUL R0.xy, R0, R0.z;\n" 5575 "MUL R0.xy, R0, c[0];\n" 5642 5576 "TEX R0, R0, texture[1], 2D;\n" 5643 5577 "MUL R1.xy, fragment.position, c[4];\n" … … 5673 5607 "TEMP R2;\n" 5674 5608 "TEMP R3;\n" 5675 "MUL R0.xyz, fragment.position.y, c[1];\n" 5676 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5677 "ADD R0.xyz, R0, c[2];\n" 5678 "RCP R0.z, R0.z;\n" 5679 "MUL R0.xy, R0, R0.z;\n" 5680 "MUL R0.xy, R0, c[3];\n" 5681 "MOV R0.y, -R0;\n" 5682 "MUL R1.xy, fragment.position, c[4];\n" 5683 "TEX R1, R1, texture[0], 2D;\n" 5609 "MUL R0.xyz, fragment.position.y, c[2];\n" 5610 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5611 "ADD R0.xyz, R0, c[3];\n" 5612 "RCP R0.z, R0.z;\n" 5613 "MUL R0.xy, R0, R0.z;\n" 5614 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 5615 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5616 "MUL R0.xy, R0, c[0];\n" 5684 5617 "TEX R0, R0, texture[1], 2D;\n" 5685 5618 "MUL R2.xyz, R0, R1.w;\n" 5686 "MUL R3.xyz, R 1, R0.w;\n"5619 "MUL R3.xyz, R;\n" 5687 5620 "MIN R2.xyz, R2, R3;\n" 5688 5621 "ADD R2.w, -R1, c[5].x;\n" … … 5703 5636 "TEMP R2;\n" 5704 5637 "TEMP R3;\n" 5705 "MUL R0.xyz, fragment.position.y, c[1];\n" 5706 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5707 "ADD R0.xyz, R0, c[2];\n" 5708 "RCP R0.z, R0.z;\n" 5709 "MUL R0.xy, R0, R0.z;\n" 5710 "MUL R0.xy, R0, c[3];\n" 5711 "MOV R0.y, -R0;\n" 5712 "MUL R1.xy, fragment.position, c[4];\n" 5713 "TEX R1, R1, texture[0], 2D;\n" 5638 "MUL R0.xyz, fragment.position.y, c[2];\n" 5639 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5640 "ADD R0.xyz, R0, c[3];\n" 5641 "RCP R0.z, R0.z;\n" 5642 "MUL R0.xy, R0, R0.z;\n" 5643 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 5644 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5645 "MUL R0.xy, R0, c[0];\n" 5714 5646 "TEX R0, R0, texture[1], 2D;\n" 5715 5647 "MUL R2.xyz, R0, R1.w;\n" 5716 "MUL R3.xyz, R 1, R0.w;\n"5648 "MUL R3.xyz, R;\n" 5717 5649 "MAX R2.xyz, R2, R3;\n" 5718 5650 "ADD R2.w, -R1, c[5].x;\n" … … 5728 5660 "!!ARBfp1.0\n" 5729 5661 "PARAM c[6] = { program.local[0..4],\n" 5730 " { 1, 1e-06 } };\n" 5731 "TEMP R0;\n" 5732 "TEMP R1;\n" 5733 "TEMP R2;\n" 5734 "TEMP R3;\n" 5735 "MUL R0.xyz, fragment.position.y, c[1];\n" 5736 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5737 "ADD R0.xyz, R0, c[2];\n" 5738 "RCP R0.z, R0.z;\n" 5739 "MUL R0.xy, R0, R0.z;\n" 5740 "MUL R0.xy, R0, c[3];\n" 5741 "MOV R0.y, -R0;\n" 5662 " { 1, 1e-006 } };\n" 5663 "TEMP R0;\n" 5664 "TEMP R1;\n" 5665 "TEMP R2;\n" 5666 "TEMP R3;\n" 5667 "MUL R0.xyz, fragment.position.y, c[2];\n" 5668 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5669 "ADD R0.xyz, R0, c[3];\n" 5670 "RCP R0.z, R0.z;\n" 5671 "MUL R0.xy, R0, R0.z;\n" 5672 "MUL R0.xy, R0, c[0];\n" 5742 5673 "TEX R0, R0, texture[1], 2D;\n" 5743 5674 "MAX R1.x, R0.w, c[5].y;\n" 5744 5675 "RCP R1.x, R1.x;\n" 5745 "MAD R 1.xyz, -R0, R1.x, c[5].x;\n"5746 "MAX R 2.xyz, R1, c[5].y;\n"5676 "MAD R.xyz, -R0, R1.x, c[5].x;\n" 5677 "MAX R, c[5].y;\n" 5747 5678 "MUL R1.xy, fragment.position, c[4];\n" 5748 5679 "TEX R1, R1, texture[0], 2D;\n" 5749 "ADD R2. w, -R0, c[5].x;\n"5750 "MUL R 3.xyz, R1, R2.w;\n"5680 "ADD R2.;\n" 5681 "MUL R;\n" 5751 5682 "ADD R2.w, -R1, c[5].x;\n" 5752 "MAD R 3.xyz, R0, R2.w, R3;\n"5753 "MUL R1.xyz, R 1, R0.w;\n"5683 "MAD R;\n" 5684 "MUL R1.xyz, R;\n" 5754 5685 "MAD R0.xyz, R0, R1.w, R1;\n" 5755 5686 "MUL R2.w, R0, R1;\n" 5756 "RCP R 2.x, R2.x;\n"5757 "RCP R 2.y, R2.y;\n"5758 "RCP R 2.z, R2.z;\n"5759 "MAD R 2.xyz, R1, R2, R3;\n"5760 "MAD R 3.xyz, R0.w, R1.w, R3;\n"5687 "RCP R.x;\n" 5688 "RCP R.y;\n" 5689 "RCP R.z;\n" 5690 "MAD R;\n" 5691 "MAD R;\n" 5761 5692 "ADD R1.x, R0.w, R1.w;\n" 5762 "ADD R 3.xyz, R3, -R2;\n"5693 "ADD R;\n" 5763 5694 "SGE R0.xyz, R0, R2.w;\n" 5764 "MAD result.color.xyz, R0, R 3, R2;\n"5695 "MAD result.color.xyz, R0, R;\n" 5765 5696 "MAD result.color.w, -R0, R1, R1.x;\n" 5766 5697 "END\n" … … 5770 5701 "!!ARBfp1.0\n" 5771 5702 "PARAM c[6] = { program.local[0..4],\n" 5772 " { 1, 9.9999997e-0 6 } };\n"5703 " { 1, 9.9999997e-06 } };\n" 5773 5704 "TEMP R0;\n" 5774 5705 "TEMP R1;\n" … … 5777 5708 "TEMP R4;\n" 5778 5709 "TEMP R5;\n" 5779 "MUL R0.xyz, fragment.position.y, c[1];\n" 5780 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5781 "ADD R0.xyz, R0, c[2];\n" 5782 "RCP R0.z, R0.z;\n" 5783 "MUL R0.xy, R0, R0.z;\n" 5784 "MUL R0.xy, R0, c[3];\n" 5785 "MOV R0.y, -R0;\n" 5710 "MUL R0.xyz, fragment.position.y, c[2];\n" 5711 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5712 "ADD R0.xyz, R0, c[3];\n" 5713 "RCP R0.z, R0.z;\n" 5714 "MUL R0.xy, R0, R0.z;\n" 5715 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 5716 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5717 "MUL R0.xy, R0, c[0];\n" 5786 5718 "TEX R0, R0, texture[1], 2D;\n" 5787 "MUL R1.xy, fragment.position, c[4];\n" 5788 "TEX R1, R1, texture[0], 2D;\n" 5789 "MUL R2.xyz, R1, R0.w;\n" 5719 "MUL R2.xyz, R0.w, R1;\n" 5790 5720 "MAD R3.xyz, R0, R1.w, R2;\n" 5791 5721 "ADD R2.w, -R1, c[5].x;\n" … … 5800 5730 "MAD R2.xyz, R4, R2, R5;\n" 5801 5731 "MUL R4.xyz, R1, R3.w;\n" 5732 5802 5733 "MAD R0.xyz, R0, R2.w, R4;\n" 5803 "ADD R3.w, -R0, c[5].x;\n"5804 "MAD R1.xyz, R1, R3.w, R2;\n"5805 5734 "MUL R2.x, R0.w, R1.w;\n" 5806 5735 "ADD R2.w, R0, R1;\n" … … 5821 5750 "TEMP R3;\n" 5822 5751 "TEMP R4;\n" 5823 "MUL R0.xyz, fragment.position.y, c[1];\n" 5824 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5825 "ADD R0.xyz, R0, c[2];\n" 5826 "RCP R0.z, R0.z;\n" 5827 "MUL R0.xy, R0, R0.z;\n" 5828 "MUL R0.xy, R0, c[3];\n" 5829 "MOV R0.y, -R0;\n" 5752 "MUL R0.xyz, fragment.position.y, c[2];\n" 5753 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5754 "ADD R0.xyz, R0, c[3];\n" 5755 "RCP R0.z, R0.z;\n" 5756 "MUL R0.xy, R0, R0.z;\n" 5757 "MUL R0.xy, R0, c[0];\n" 5830 5758 "TEX R0, R0, texture[1], 2D;\n" 5831 5759 "MUL R1.xy, fragment.position, c[4];\n" … … 5837 5765 "MUL R2.xyz, R2, c[5].x;\n" 5838 5766 "MAD R2.xyz, R0.w, R1.w, -R2;\n" 5767 5839 5768 "MUL R4.xyz, R0, R2.w;\n" 5840 5769 "MUL R3.xyz, R0, R1;\n" 5841 "M AD R2.xyz, R0, R2.w, R2;\n"5770 "M;\n" 5842 5771 "ADD R2.w, -R0, c[5].y;\n" 5843 "MUL R0.xyz, R0, c[5].x;\n"5844 "MAD R2.xyz, R1, R2.w, R2;\n"5845 5772 "MAD R3.xyz, R3, c[5].x, R4;\n" 5846 "MAD R1.xyz, R1, R2.w, R3;\n" 5847 "ADD R2.w, R0, R1;\n" 5848 "ADD R2.xyz, R2, -R1;\n" 5773 "MAD R3.xyz, R1, R2.w, R3;\n" 5774 "MAD R1.xyz, R1, R2.w, R2;\n" 5775 "ADD R2.x, R0.w, R1.w;\n" 5776 "ADD R1.xyz, R1, -R3;\n" 5849 5777 "SGE R0.xyz, R0, R0.w;\n" 5850 "MAD result.color.xyz, R0, R 2, R1;\n"5851 "MAD result.color.w, -R0, R1, R2 ;\n"5778 "MAD result.color.xyz, R0, R;\n" 5779 "MAD result.color.w, -R0, R1, R2;\n" 5852 5780 "END\n" 5853 5781 ; … … 5856 5784 "!!ARBfp1.0\n" 5857 5785 "PARAM c[7] = { program.local[0..4],\n" 5858 " { 1, 9.9999997e-06, 2, 8},\n"5859 " { 3 } };\n"5786 " { 1, },\n" 5787 " { 3 } };\n" 5860 5788 "TEMP R0;\n" 5861 5789 "TEMP R1;\n" … … 5865 5793 "TEMP R5;\n" 5866 5794 "TEMP R6;\n" 5867 "MUL R0.xyz, fragment.position.y, c[1];\n" 5868 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5869 "ADD R0.xyz, R0, c[2];\n" 5870 "RCP R0.z, R0.z;\n" 5871 "MUL R0.xy, R0, R0.z;\n" 5872 "MUL R0.xy, R0, c[3];\n" 5795 "MUL R0.xyz, fragment.position.y, c[2];\n" 5873 5796 "MUL R1.xy, fragment.position, c[4];\n" 5874 5797 "TEX R1, R1, texture[0], 2D;\n" 5875 "MAX R0.z, R1.w, c[5].y;\n" 5876 "RCP R2.w, R0.z;\n" 5877 "MUL R2.xyz, R1, R2.w;\n" 5878 "MUL R6.xyz, -R2, c[5].w;\n" 5879 "MAD R3.xyz, -R1, R2.w, c[5].x;\n" 5880 "MOV R0.y, -R0;\n" 5798 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5799 "ADD R0.xyz, R0, c[3];\n" 5800 "RCP R0.z, R0.z;\n" 5801 "MUL R0.xy, R0, R0.z;\n" 5802 "MAX R0.w, R1, c[5].z;\n" 5803 "RCP R0.w, R0.w;\n" 5804 "MUL R3.xyz, R1, R0.w;\n" 5805 "MAD R2.xyz, R3, c[6].x, -c[6].y;\n" 5806 "MUL R0.xy, R0, c[0];\n" 5881 5807 "TEX R0, R0, texture[1], 2D;\n" 5882 "MAD R4.xyz, R 0, c[5].z, -R0.w;\n"5883 "M UL R5.xyz, R3, R4;\n"5884 "M AD R3.xyz, -R3, R4, R0.w;\n"5885 " ADD R6.xyz, R6, c[6].x;\n"5886 "RSQ R2. x, R2.x;\n"5887 "R SQ R2.z, R2.z;\n"5888 "RSQ R2. y, R2.y;\n"5889 " MAD R5.xyz, -R5, R6, R0.w;\n"5890 " MUL R3.xyz, R1, R3;\n"5891 "RCP R 2.x, R2.x;\n"5892 " RCP R2.z, R2.z;\n"5893 " RCP R2.y, R2.y;\n"5894 "M AD R2.xyz, R2, R1.w, -R1;\n"5895 " MUL R6.xyz, R2, R4;\n"5896 "M UL R2.xyz, R1, R5;\n"5897 "MUL R 4.xyz, R0, c[5].z;\n"5898 "MAD R 6.xyz, R1, R0.w, R6;\n"5899 "M UL R5.xyz, R1, c[5].w;\n"5900 "ADD R6.xyz, R 6, -R2;\n"5901 " SGE R5.xyz, R5, R1.w;\n"5902 " MUL R5.xyz, R5, R6;\n"5903 " ADD R2.xyz, R2, R5;\n"5904 " ADD R2.xyz, R2, -R3;\n"5905 " SGE R4.xyz, R4, R0.w;\n"5906 " MUL R2.xyz, R4, R2;\n"5907 " ADD R2.xyz, R3, R2;\n"5808 "MAD R4.xyz, R;\n" 5809 "M;\n" 5810 "M;\n" 5811 ";\n" 5812 "RSQ R2..x;\n" 5813 "R;\n" 5814 "RSQ R2..y;\n" 5815 ";\n" 5816 ";\n" 5817 "RCP R;\n" 5818 ";\n" 5819 ";\n" 5820 "M;\n" 5821 ";\n" 5822 "M;\n" 5823 "MUL R;\n" 5824 "MAD R, R6;\n" 5825 "M;\n" 5826 "ADD R6.xyz, R;\n" 5827 ".w;\n" 5828 ";\n" 5829 ", R5;\n" 5830 ";\n" 5831 ";\n" 5832 ";\n" 5833 ", R2;\n" 5908 5834 "ADD R2.w, -R1, c[5].x;\n" 5909 "MAD R 0.xyz, R0, R2.w, R2;\n"5910 "ADD R 2.x, R0.w, R1.w;\n"5911 "ADD R 2.y, -R0.w, c[5].x;\n"5912 "MAD result.color.xyz, R1, R 2.y, R0;\n"5913 "MAD result.color.w, -R0, R1, R 2.x;\n"5835 "MAD R.xyz, R0, R2.w, R2;\n" 5836 "ADD R.x, R0.w, R1.w;\n" 5837 "ADD R.y, -R0.w, c[5].x;\n" 5838 "MAD result.color.xyz, R1, R;\n" 5839 "MAD result.color.w, -R0, R1, R.x;\n" 5914 5840 "END\n" 5915 5841 ; … … 5923 5849 "TEMP R2;\n" 5924 5850 "TEMP R3;\n" 5925 "MUL R0.xyz, fragment.position.y, c[ 1];\n"5926 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"5927 "ADD R0.xyz, R0, c[ 2];\n"5928 "RCP R0.z, R0.z;\n" 5929 "MUL R0.xy, R0, R0.z;\n" 5930 "MUL R0. xy, R0, c[3];\n"5931 " MOV R0.y, -R0;\n"5932 "MUL R 1.xy, fragment.position, c[4];\n"5851 "MUL R0.xyz, fragment.position.y, c[];\n" 5852 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 5853 "ADD R0.xyz, R0, c[];\n" 5854 "RCP R0.z, R0.z;\n" 5855 "MUL R0.xy, R0, R0.z;\n" 5856 "MUL R0.;\n" 5857 ";\n" 5858 "MUL R];\n" 5933 5859 "TEX R0, R0, texture[1], 2D;\n" 5934 "TEX R1, R1, texture[0], 2D;\n"5935 5860 "MUL R2.xyz, R0, R1.w;\n" 5936 "MUL R3.xyz, R 1, R0.w;\n"5861 "MUL R3.xyz, R;\n" 5937 5862 "ADD R0.xyz, R0, R1;\n" 5938 5863 "MIN R2.xyz, R2, R3;\n" … … 5946 5871 "!!ARBfp1.0\n" 5947 5872 "PARAM c[6] = { program.local[0..4],\n" 5948 " { 1, 2 } };\n" 5949 "TEMP R0;\n" 5950 "TEMP R1;\n" 5951 "TEMP R2;\n" 5952 "TEMP R3;\n" 5953 "MUL R0.xyz, fragment.position.y, c[1];\n" 5954 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 5955 "ADD R0.xyz, R0, c[2];\n" 5956 "RCP R0.z, R0.z;\n" 5957 "MUL R0.xy, R0, R0.z;\n" 5958 "MUL R0.xy, R0, c[3];\n" 5959 "MOV R0.y, -R0;\n" 5960 "MUL R1.xy, fragment.position, c[4];\n" 5961 "TEX R1, R1, texture[0], 2D;\n" 5873 " { 2, 1 } };\n" 5874 "TEMP R0;\n" 5875 "TEMP R1;\n" 5876 "TEMP R2;\n" 5877 "TEMP R3;\n" 5878 "MUL R0.xyz, fragment.position.y, c[2];\n" 5879 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5880 "ADD R0.xyz, R0, c[3];\n" 5881 "RCP R0.z, R0.z;\n" 5882 "MUL R0.xy, R0, R0.z;\n" 5883 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 5884 "TEX R1, R0.zwzw, texture[0], 2D;\n" 5885 "MUL R0.xy, R0, c[0];\n" 5962 5886 "TEX R0, R0, texture[1], 2D;\n" 5963 "MUL R2.xyz, R 1, R0.w;\n"5887 "MUL R2.xyz, R;\n" 5964 5888 "MAD R3.xyz, R0, R1.w, R2;\n" 5965 5889 "MUL R2.xyz, R0, R1;\n" 5966 "MAD R2.xyz, -R2, c[5]. y, R3;\n"5967 "ADD R2.w, -R1, c[5]. x;\n"5890 "MAD R2.xyz, -R2, c[5]., R3;\n" 5891 "ADD R2.w, -R1, c[5].;\n" 5968 5892 "MAD R0.xyz, R0, R2.w, R2;\n" 5969 5893 "ADD R2.x, R0.w, R1.w;\n" 5970 "ADD R2.y, -R0.w, c[5] .x;\n"5894 "ADD R2.y, -R0.w, c[5];\n" 5971 5895 "MAD result.color.xyz, R1, R2.y, R0;\n" 5972 5896 "MAD result.color.w, -R0, R1, R2.x;\n" … … 5979 5903 "TEMP R0;\n" 5980 5904 "TEMP R1;\n" 5981 "MUL R0.xyz, fragment.position.y, c[ 1];\n"5982 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"5983 "ADD R1.xyz, R0, c[ 2];\n"5905 "MUL R0.xyz, fragment.position.y, c[];\n" 5906 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 5907 "ADD R1.xyz, R0, c[];\n" 5984 5908 "RCP R0.z, R1.z;\n" 5985 5909 "MUL R1.xy, R1, R0.z;\n" 5986 "ADD R0.xy, fragment.position, c[ 4];\n"5987 "MUL R0.xy, R0, c[ 5];\n"5910 "ADD R0.xy, fragment.position, c[];\n" 5911 "MUL R0.xy, R0, c[];\n" 5988 5912 "TEX R0, R0, texture[0], 2D;\n" 5989 5913 "DP4 R1.z, R0, c[6];\n" 5990 "MUL R1.xy, R1, c[3];\n" 5991 "MOV R0.x, R1;\n" 5992 "MOV R0.y, -R1;\n" 5993 "TEX R0, R0, texture[1], 2D;\n" 5914 "MUL R1.xy, R1, c[0];\n" 5915 "TEX R0, R1, texture[1], 2D;\n" 5994 5916 "MUL result.color, R0, R1.z;\n" 5995 5917 "END\n" … … 6000 5922 "PARAM c[4] = { program.local[0..3] };\n" 6001 5923 "TEMP R0;\n" 6002 "MUL R0.xyz, fragment.position.y, c[1];\n" 6003 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 6004 "ADD R0.xyz, R0, c[2];\n" 6005 "RCP R0.z, R0.z;\n" 6006 "MUL R0.xy, R0, R0.z;\n" 6007 "MUL R0.xy, R0, c[3];\n" 6008 "MOV R0.y, -R0;\n" 5924 "MUL R0.xyz, fragment.position.y, c[2];\n" 5925 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5926 "ADD R0.xyz, R0, c[3];\n" 5927 "RCP R0.z, R0.z;\n" 5928 "MUL R0.xy, R0, R0.z;\n" 5929 "MUL R0.xy, R0, c[0];\n" 6009 5930 "TEX result.color, R0, texture[0], 2D;\n" 6010 5931 "END\n" … … 6013 5934 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = 6014 5935 "!!ARBfp1.0\n" 6015 "PARAM c[11] = { program.local[0..7],\n" 6016 " { 1 },\n" 6017 " program.local[9..10] };\n" 6018 "TEMP R0;\n" 6019 "TEMP R1;\n" 6020 "TEMP R2;\n" 6021 "TEMP R3;\n" 6022 "MUL R0.xyz, fragment.position.y, c[4];\n" 6023 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 6024 "ADD R0.xyz, R0, c[5];\n" 6025 "RCP R0.z, R0.z;\n" 6026 "MUL R0.xy, R0, R0.z;\n" 6027 "MUL R0.xy, R0, c[6];\n" 6028 "MOV R0.y, -R0;\n" 6029 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 6030 "TEX R1, R0.zwzw, texture[0], 2D;\n" 6031 "TEX R0.x, R0, texture[2], 2D;\n" 6032 "MUL R0, fragment.color.primary, R0.x;\n" 6033 "MUL R2.xyz, R1, c[10].y;\n" 6034 "MUL R3.xyz, R2, R0.w;\n" 6035 "MUL R2.xyz, R0, c[10].x;\n" 6036 "MAD R2.xyz, R2, R1.w, R3;\n" 6037 "ADD R3.xy, fragment.position, c[0];\n" 6038 "MUL R0.xyz, R0, c[9].y;\n" 6039 "ADD R2.w, -R1, c[8].x;\n" 6040 "MAD R2.xyz, R0, R2.w, R2;\n" 6041 "ADD R2.w, -R0, c[8].x;\n" 6042 "MUL R0.xyz, R1, c[9].z;\n" 6043 "MAD R2.xyz, R0, R2.w, R2;\n" 6044 "ADD R0.y, -R1.w, c[8].x;\n" 6045 "MUL R0.z, R1.w, R2.w;\n" 6046 "MUL R0.x, R0.w, R1.w;\n" 6047 "MUL R0.y, R0.w, R0;\n" 6048 "DP3 R2.w, R0, c[9];\n" 6049 "MUL R3.xy, R3, c[1];\n" 6050 "TEX R0, R3, texture[1], 2D;\n" 6051 "ADD R2, R2, -R1;\n" 6052 "DP4 R0.x, R0, c[2];\n" 6053 "MAD result.color, R0.x, R2, R1;\n" 5936 "PARAM c[11] = { program.local[0..9],\n" 5937 " { 1 } };\n" 5938 "TEMP R0;\n" 5939 "TEMP R1;\n" 5940 "TEMP R2;\n" 5941 "TEMP R3;\n" 5942 "MUL R0.xyz, fragment.position.y, c[2];\n" 5943 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5944 "ADD R0.xyz, R0, c[3];\n" 5945 "RCP R0.z, R0.z;\n" 5946 "MUL R0.xy, R0, R0.z;\n" 5947 "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" 5948 "TEX R1.x, R0.zwzw, texture[2], 2D;\n" 5949 "MUL R0.xy, fragment.position, c[7];\n" 5950 "TEX R0, R0, texture[0], 2D;\n" 5951 "ADD R1.x, -R1, c[10];\n" 5952 "MUL R1, fragment.color.primary, R1.x;\n" 5953 "MUL R2.xyz, R0, c[4].y;\n" 5954 "MUL R3.xyz, R1.w, R2;\n" 5955 "MUL R2.xyz, R1, c[4].x;\n" 5956 "MAD R2.xyz, R0.w, R2, R3;\n" 5957 "ADD R3.xy, fragment.position, c[8];\n" 5958 "ADD R2.w, -R0, c[10].x;\n" 5959 "MUL R1.xyz, R1, c[5].y;\n" 5960 "MAD R2.xyz, R2.w, R1, R2;\n" 5961 "MUL R1.xyz, R0, c[5].z;\n" 5962 "ADD R3.z, -R1.w, c[10].x;\n" 5963 "MAD R2.xyz, R3.z, R1, R2;\n" 5964 "MUL R1.y, R1.w, R2.w;\n" 5965 "MUL R1.x, R1.w, R0.w;\n" 5966 "MUL R1.z, R0.w, R3;\n" 5967 "DP3 R2.w, R1, c[5];\n" 5968 "MUL R3.xy, R3, c[6];\n" 5969 "TEX R1, R3, texture[1], 2D;\n" 5970 "ADD R2, R2, -R0;\n" 5971 "DP4 R1.x, R1, c[9];\n" 5972 "MAD result.color, R1.x, R2, R0;\n" 6054 5973 "END\n" 6055 5974 ; … … 6062 5981 "TEMP R1;\n" 6063 5982 "TEMP R2;\n" 6064 "MUL R0.xyz, fragment.position.y, c[4];\n" 6065 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 6066 "ADD R0.xyz, R0, c[5];\n" 6067 "RCP R0.z, R0.z;\n" 6068 "MUL R0.xy, R0, R0.z;\n" 6069 "MUL R0.xy, R0, c[6];\n" 6070 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" 6071 "TEX R1, R0.zwzw, texture[0], 2D;\n" 6072 "MOV R0.y, -R0;\n" 5983 "MUL R0.xyz, fragment.position.y, c[2];\n" 5984 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 5985 "ADD R0.xyz, R0, c[3];\n" 5986 "RCP R0.z, R0.z;\n" 5987 "MUL R0.xy, R0, R0.z;\n" 5988 "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" 5989 "TEX R1.x, R0.zwzw, texture[2], 2D;\n" 5990 "MUL R0.xy, fragment.position, c[5];\n" 5991 "TEX R0, R0, texture[0], 2D;\n" 5992 "ADD R1.x, -R1, c[8];\n" 5993 "MUL R1, fragment.color.primary, R1.x;\n" 5994 "ADD R2.x, -R0.w, c[8];\n" 5995 "MUL R2.xyz, R1, R2.x;\n" 5996 "MAD R1.xyz, R1, R0, R2;\n" 5997 "ADD R2.x, -R1.w, c[8];\n" 5998 "MAD R2.xyz, R0, R2.x, R1;\n" 5999 "ADD R1.z, R1.w, R0.w;\n" 6000 "MAD R2.w, -R1, R0, R1.z;\n" 6001 "ADD R1.xy, fragment.position, c[6];\n" 6002 "MUL R1.xy, R1, c[4];\n" 6003 "TEX R1, R1, texture[1], 2D;\n" 6004 "ADD R2, R2, -R0;\n" 6005 "DP4 R1.x, R1, c[7];\n" 6006 "MAD result.color, R1.x, R2, R0;\n" 6007 "END\n" 6008 ; 6009 6010 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SCREEN = 6011 "!!ARBfp1.0\n" 6012 "PARAM c[9] = { program.local[0..7],\n" 6013 " { 1 } };\n" 6014 "TEMP R0;\n" 6015 "TEMP R1;\n" 6016 "TEMP R2;\n" 6017 "TEMP R3;\n" 6018 "MUL R0.xyz, fragment.position.y, c[2];\n" 6019 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6020 "ADD R0.xyz, R0, c[3];\n" 6021 "RCP R0.z, R0.z;\n" 6022 "MUL R0.xy, R0, R0.z;\n" 6023 "MUL R0.xy, R0, c[0];\n" 6073 6024 "TEX R0.x, R0, texture[2], 2D;\n" 6074 "MUL R0, fragment.color.primary, R0.x;\n" 6075 "ADD R2.x, -R1.w, c[8];\n" 6076 "MUL R2.xyz, R0, R2.x;\n" 6077 "MAD R0.xyz, R0, R1, R2;\n" 6078 "ADD R2.x, -R0.w, c[8];\n" 6079 "MAD R2.xyz, R1, R2.x, R0;\n" 6080 "ADD R0.z, R0.w, R1.w;\n" 6081 "MAD R2.w, -R0, R1, R0.z;\n" 6082 "ADD R0.xy, fragment.position, c[0];\n" 6083 "MUL R0.xy, R0, c[1];\n" 6084 "TEX R0, R0, texture[1], 2D;\n" 6085 "ADD R2, R2, -R1;\n" 6086 "DP4 R0.x, R0, c[2];\n" 6087 "MAD result.color, R0.x, R2, R1;\n" 6088 "END\n" 6089 ; 6090 6091 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SCREEN = 6092 "!!ARBfp1.0\n" 6093 "PARAM c[8] = { program.local[0..7] };\n" 6094 "TEMP R0;\n" 6095 "TEMP R1;\n" 6096 "TEMP R2;\n" 6097 "TEMP R3;\n" 6098 "MUL R0.xyz, fragment.position.y, c[4];\n" 6099 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 6100 "ADD R0.xyz, R0, c[5];\n" 6101 "RCP R0.z, R0.z;\n" 6102 "MUL R0.xy, R0, R0.z;\n" 6103 "MUL R0.xy, R0, c[6];\n" 6104 "MOV R0.y, -R0;\n" 6105 "TEX R1.x, R0, texture[2], 2D;\n" 6106 "MUL R0.xy, fragment.position, c[7];\n" 6107 "ADD R3.xy, fragment.position, c[0];\n" 6025 "ADD R0.z, -R0.x, c[8].x;\n" 6026 "ADD R3.xy, fragment.position, c[6];\n" 6027 "MUL R1, fragment.color.primary, R0.z;\n" 6028 "MUL R0.xy, fragment.position, c[5];\n" 6108 6029 "TEX R0, R0, texture[0], 2D;\n" 6109 "MUL R1, fragment.color.primary, R1.x;\n"6110 6030 "ADD R2, R1, R0;\n" 6111 6031 "MAD R2, -R1, R0, R2;\n" 6112 "MUL R3.xy, R3, c[ 1];\n"6032 "MUL R3.xy, R3, c[];\n" 6113 6033 "TEX R1, R3, texture[1], 2D;\n" 6114 6034 "ADD R2, R2, -R0;\n" 6115 "DP4 R1.x, R1, c[ 2];\n"6035 "DP4 R1.x, R1, c[];\n" 6116 6036 "MAD result.color, R1.x, R2, R0;\n" 6117 6037 "END\n" … … 6121 6041 "!!ARBfp1.0\n" 6122 6042 "PARAM c[9] = { program.local[0..7],\n" 6123 " { 2, 1} };\n"6043 " { } };\n" 6124 6044 "TEMP R0;\n" 6125 6045 "TEMP R1;\n" … … 6127 6047 "TEMP R3;\n" 6128 6048 "TEMP R4;\n" 6129 "MUL R0.xyz, fragment.position.y, c[ 4];\n"6130 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"6131 "ADD R0.xyz, R0, c[ 5];\n"6132 "RCP R0.z, R0.z;\n" 6133 "MUL R0.xy, R0, R0.z;\n" 6134 "MUL R0.xy, R0, c[ 6];\n"6135 " MOV R0.y, -R0;\n"6136 " TEX R1.x, R0, texture[2], 2D;\n"6137 "MUL R1, fragment.color.primary, R 1.x;\n"6138 "MUL R0. xy, fragment.position, c[7];\n"6139 "TEX R0, R0 , texture[0], 2D;\n"6140 "ADD R2.w, -R0, c[8]. y;\n"6049 "MUL R0.xyz, fragment.position.y, c[];\n" 6050 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6051 "ADD R0.xyz, R0, c[];\n" 6052 "RCP R0.z, R0.z;\n" 6053 "MUL R0.xy, R0, R0.z;\n" 6054 "MUL R0.xy, R0, c[];\n" 6055 ";\n" 6056 ";\n" 6057 "MUL R1, fragment.color.primary, R.x;\n" 6058 "MUL R0.;\n" 6059 "TEX R0, R0, texture[0], 2D;\n" 6060 "ADD R2.w, -R0, c[8].;\n" 6141 6061 "ADD R3.xyz, R1.w, -R1;\n" 6142 6062 "ADD R2.xyz, R0.w, -R0;\n" 6143 6063 "MUL R2.xyz, R2, R3;\n" 6144 "MUL R2.xyz, R2, c[8]. x;\n"6064 "MUL R2.xyz, R2, c[8].;\n" 6145 6065 "MAD R2.xyz, R1.w, R0.w, -R2;\n" 6146 6066 "MUL R4.xyz, R1, R2.w;\n" 6147 6067 "MUL R3.xyz, R1, R0;\n" 6148 6068 "MAD R1.xyz, R1, R2.w, R2;\n" 6149 "ADD R2.x, -R1.w, c[8] .y;\n"6150 "MAD R3.xyz, R3, c[8]. x, R4;\n"6069 "ADD R2.x, -R1.w, c[8];\n" 6070 "MAD R3.xyz, R3, c[8]., R4;\n" 6151 6071 "MAD R3.xyz, R0, R2.x, R3;\n" 6152 6072 "MAD R1.xyz, R0, R2.x, R1;\n" 6153 "MUL R2.xyz, R0, c[8]. x;\n"6073 "MUL R2.xyz, R0, c[8].;\n" 6154 6074 "ADD R1.xyz, R1, -R3;\n" 6155 6075 "SGE R2.xyz, R2, R0.w;\n" … … 6157 6077 "ADD R1.z, R1.w, R0.w;\n" 6158 6078 "MAD R2.w, -R1, R0, R1.z;\n" 6159 "ADD R1.xy, fragment.position, c[ 0];\n"6160 "MUL R1.xy, R1, c[ 1];\n"6079 "ADD R1.xy, fragment.position, c[];\n" 6080 "MUL R1.xy, R1, c[];\n" 6161 6081 "TEX R1, R1, texture[1], 2D;\n" 6162 6082 "ADD R2, R2, -R0;\n" 6163 "DP4 R1.x, R1, c[ 2];\n"6083 "DP4 R1.x, R1, c[];\n" 6164 6084 "MAD result.color, R1.x, R2, R0;\n" 6165 6085 "END\n" … … 6174 6094 "TEMP R2;\n" 6175 6095 "TEMP R3;\n" 6176 "MUL R0.xyz, fragment.position.y, c[ 4];\n"6177 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"6178 "ADD R0.xyz, R0, c[ 5];\n"6179 "RCP R0.z, R0.z;\n" 6180 "MUL R0.xy, R0, R0.z;\n" 6181 "MUL R0.xy, R0, c[ 6];\n"6182 " MOV R0.y, -R0;\n"6183 " TEX R0.x, R0, texture[2], 2D;\n"6184 " MUL R1.xy, fragment.position, c[7];\n"6185 " TEX R1, R1, texture[0], 2D;\n"6186 "MUL R 0, fragment.color.primary, R0.x;\n"6187 "MUL R3.xyz, R1 , R0.w;\n"6188 "MUL R2.xyz, R 0, R1.w;\n"6096 "MUL R0.xyz, fragment.position.y, c[];\n" 6097 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6098 "ADD R0.xyz, R0, c[];\n" 6099 "RCP R0.z, R0.z;\n" 6100 "MUL R0.xy, R0, R0.z;\n" 6101 "MUL R0.xy, R0, c[];\n" 6102 ";\n" 6103 ";\n" 6104 ";\n" 6105 ";\n" 6106 "MUL R.x;\n" 6107 "MUL R3.xyz, R1;\n" 6108 "MUL R2.xyz, R.w;\n" 6189 6109 "MIN R2.xyz, R2, R3;\n" 6190 "ADD R2.w, -R 1, c[8].x;\n"6191 "MAD R 0.xyz, R0, R2.w, R2;\n"6192 "ADD R2.x, -R 0.w, c[8];\n"6193 "MAD R2.xyz, R 1, R2.x, R0;\n"6194 "ADD R 0.z, R0.w, R1.w;\n"6195 "MAD R2.w, -R 0, R1, R0.z;\n"6196 "ADD R 0.xy, fragment.position, c[0];\n"6197 "MUL R 0.xy, R0, c[1];\n"6198 "TEX R 0, R0, texture[1], 2D;\n"6199 "ADD R2, R2, -R 1;\n"6200 "DP4 R 0.x, R0, c[2];\n"6201 "MAD result.color, R 0.x, R2, R1;\n"6110 "ADD R2.w, -R, c[8].x;\n" 6111 "MAD R, R2.w, R2;\n" 6112 "ADD R2.x, -R.w, c[8];\n" 6113 "MAD R2.xyz, R;\n" 6114 "ADD R.w;\n" 6115 "MAD R2.w, -R.z;\n" 6116 "ADD R];\n" 6117 "MUL R];\n" 6118 "TEX R, texture[1], 2D;\n" 6119 "ADD R2, R2, -R;\n" 6120 "DP4 R];\n" 6121 "MAD result.color, R;\n" 6202 6122 "END\n" 6203 6123 ; … … 6211 6131 "TEMP R2;\n" 6212 6132 "TEMP R3;\n" 6213 "MUL R0.xyz, fragment.position.y, c[4];\n" 6214 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 6215 "ADD R0.xyz, R0, c[5];\n" 6216 "RCP R0.z, R0.z;\n" 6217 "MUL R0.xy, R0, R0.z;\n" 6218 "MUL R0.xy, R0, c[6];\n" 6219 "MOV R0.y, -R0;\n" 6133 "MUL R0.xyz, fragment.position.y, c[2];\n" 6134 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6135 "ADD R0.xyz, R0, c[3];\n" 6136 "RCP R0.z, R0.z;\n" 6137 "MUL R0.xy, R0, R0.z;\n" 6138 "MUL R0.xy, R0, c[0];\n" 6139 "TEX R1.x, R0, texture[2], 2D;\n" 6140 "MUL R0.xy, fragment.position, c[5];\n" 6141 "TEX R0, R0, texture[0], 2D;\n" 6142 "ADD R1.x, -R1, c[8];\n" 6143 "MUL R1, fragment.color.primary, R1.x;\n" 6144 "MUL R3.xyz, R1.w, R0;\n" 6145 "MUL R2.xyz, R1, R0.w;\n" 6146 "MAX R2.xyz, R2, R3;\n" 6147 "ADD R2.w, -R0, c[8].x;\n" 6148 "MAD R1.xyz, R1, R2.w, R2;\n" 6149 "ADD R2.x, -R1.w, c[8];\n" 6150 "MAD R2.xyz, R0, R2.x, R1;\n" 6151 "ADD R1.z, R1.w, R0.w;\n" 6152 "MAD R2.w, -R1, R0, R1.z;\n" 6153 "ADD R1.xy, fragment.position, c[6];\n" 6154 "MUL R1.xy, R1, c[4];\n" 6155 "TEX R1, R1, texture[1], 2D;\n" 6156 "ADD R2, R2, -R0;\n" 6157 "DP4 R1.x, R1, c[7];\n" 6158 "MAD result.color, R1.x, R2, R0;\n" 6159 "END\n" 6160 ; 6161 6162 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_COLORDODGE = 6163 "!!ARBfp1.0\n" 6164 "PARAM c[9] = { program.local[0..7],\n" 6165 " { 1, 1e-006 } };\n" 6166 "TEMP R0;\n" 6167 "TEMP R1;\n" 6168 "TEMP R2;\n" 6169 "TEMP R3;\n" 6170 "TEMP R4;\n" 6171 "MUL R0.xyz, fragment.position.y, c[2];\n" 6172 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6173 "ADD R0.xyz, R0, c[3];\n" 6174 "RCP R0.z, R0.z;\n" 6175 "MUL R0.xy, R0, R0.z;\n" 6176 "MUL R0.xy, R0, c[0];\n" 6220 6177 "TEX R0.x, R0, texture[2], 2D;\n" 6221 "MUL R1.xy, fragment.position, c[7];\n" 6222 "TEX R1, R1, texture[0], 2D;\n" 6223 "MUL R0, fragment.color.primary, R0.x;\n" 6224 "MUL R3.xyz, R1, R0.w;\n" 6225 "MUL R2.xyz, R0, R1.w;\n" 6226 "MAX R2.xyz, R2, R3;\n" 6227 "ADD R2.w, -R1, c[8].x;\n" 6228 "MAD R0.xyz, R0, R2.w, R2;\n" 6229 "ADD R2.x, -R0.w, c[8];\n" 6230 "MAD R2.xyz, R1, R2.x, R0;\n" 6231 "ADD R0.z, R0.w, R1.w;\n" 6232 "MAD R2.w, -R0, R1, R0.z;\n" 6233 "ADD R0.xy, fragment.position, c[0];\n" 6234 "MUL R0.xy, R0, c[1];\n" 6235 "TEX R0, R0, texture[1], 2D;\n" 6236 "ADD R2, R2, -R1;\n" 6237 "DP4 R0.x, R0, c[2];\n" 6238 "MAD result.color, R0.x, R2, R1;\n" 6239 "END\n" 6240 ; 6241 6242 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_COLORDODGE = 6243 "!!ARBfp1.0\n" 6244 "PARAM c[9] = { program.local[0..7],\n" 6245 " { 1, 1e-06 } };\n" 6246 "TEMP R0;\n" 6247 "TEMP R1;\n" 6248 "TEMP R2;\n" 6249 "TEMP R3;\n" 6250 "TEMP R4;\n" 6251 "MUL R0.xyz, fragment.position.y, c[4];\n" 6252 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 6253 "ADD R0.xyz, R0, c[5];\n" 6254 "RCP R0.z, R0.z;\n" 6255 "MUL R0.xy, R0, R0.z;\n" 6256 "MUL R0.xy, R0, c[6];\n" 6257 "MOV R0.y, -R0;\n" 6258 "TEX R0.x, R0, texture[2], 2D;\n" 6178 "ADD R0.x, -R0, c[8];\n" 6259 6179 "MUL R1, fragment.color.primary, R0.x;\n" 6260 6180 "MAX R0.x, R1.w, c[8].y;\n" 6261 6181 "RCP R0.x, R0.x;\n" 6262 "MAD R 0.xyz, -R1, R0.x, c[8].x;\n"6263 "MAX R2.xyz, R 0, c[8].y;\n"6264 "MUL R0.xy, fragment.position, c[ 7];\n"6182 "MAD R.xyz, -R1, R0.x, c[8].x;\n" 6183 "MAX R2.xyz, R, c[8].y;\n" 6184 "MUL R0.xy, fragment.position, c[];\n" 6265 6185 "TEX R0, R0, texture[0], 2D;\n" 6266 6186 "ADD R2.w, -R1, c[8].x;\n" … … 6268 6188 "ADD R2.w, -R0, c[8].x;\n" 6269 6189 "MAD R4.xyz, R1, R2.w, R3;\n" 6270 "MUL R3.xyz, R 0, R1.w;\n"6190 "MUL R3.xyz, R;\n" 6271 6191 "MUL R2.w, R1, R0;\n" 6272 6192 "MAD R1.xyz, R1, R0.w, R3;\n" … … 6281 6201 "ADD R1.z, R1.w, R0.w;\n" 6282 6202 "MAD R2.w, -R1, R0, R1.z;\n" 6283 "ADD R1.xy, fragment.position, c[ 0];\n"6284 "MUL R1.xy, R1, c[ 1];\n"6203 "ADD R1.xy, fragment.position, c[];\n" 6204 "MUL R1.xy, R1, c[];\n" 6285 6205 "TEX R1, R1, texture[1], 2D;\n" 6286 6206 "ADD R2, R2, -R0;\n" 6287 "DP4 R1.x, R1, c[ 2];\n"6207 "DP4 R1.x, R1, c[];\n" 6288 6208 "MAD result.color, R1.x, R2, R0;\n" 6289 6209 "END\n" … … 6293 6213 "!!ARBfp1.0\n" 6294 6214 "PARAM c[9] = { program.local[0..7],\n" 6295 " { 1, 9.9999997e-0 6 } };\n"6215 " { 1, 9.9999997e-06 } };\n" 6296 6216 "TEMP R0;\n" 6297 6217 "TEMP R1;\n" … … 6300 6220 "TEMP R4;\n" 6301 6221 "TEMP R5;\n" 6302 "MUL R0.xyz, fragment.position.y, c[ 4];\n"6303 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"6304 "ADD R0.xyz, R0, c[ 5];\n"6305 "RCP R0.z, R0.z;\n" 6306 "MUL R0.xy, R0, R0.z;\n" 6307 "MUL R0.xy, R0, c[ 6];\n"6308 " MOV R0.y, -R0;\n"6309 " TEX R1.x, R0, texture[2], 2D;\n"6222 "MUL R0.xyz, fragment.position.y, c[];\n" 6223 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6224 "ADD R0.xyz, R0, c[];\n" 6225 "RCP R0.z, R0.z;\n" 6226 "MUL R0.xy, R0, R0.z;\n" 6227 "MUL R0.xy, R0, c[];\n" 6228 ";\n" 6229 ";\n" 6310 6230 "MUL R1, fragment.color.primary, R1.x;\n" 6311 "MUL R0. xy, fragment.position, c[7];\n"6312 "TEX R0, R0 , texture[0], 2D;\n"6313 "MUL R2.xyz, R 0, R1.w;\n"6231 "MUL R0.;\n" 6232 "TEX R0, R0, texture[0], 2D;\n" 6233 "MUL R2.xyz, R;\n" 6314 6234 "MAD R3.xyz, R1, R0.w, R2;\n" 6315 6235 "MAD R2.xyz, -R1.w, R0.w, R3;\n" … … 6326 6246 "MAD R1.xyz, R1, R2.w, R4;\n" 6327 6247 "MUL R2.w, R1, R0;\n" 6328 "ADD R3.w, -R1, c[8].x;\n"6329 6248 "MAD R2.xyz, R0, R3.w, R2;\n" 6330 6249 "ADD R2.xyz, R2, -R1;\n" … … 6333 6252 "ADD R1.z, R1.w, R0.w;\n" 6334 6253 "MAD R2.w, -R1, R0, R1.z;\n" 6335 "ADD R1.xy, fragment.position, c[ 0];\n"6336 "MUL R1.xy, R1, c[ 1];\n"6254 "ADD R1.xy, fragment.position, c[];\n" 6255 "MUL R1.xy, R1, c[];\n" 6337 6256 "TEX R1, R1, texture[1], 2D;\n" 6338 6257 "ADD R2, R2, -R0;\n" 6339 "DP4 R1.x, R1, c[ 2];\n"6258 "DP4 R1.x, R1, c[];\n" 6340 6259 "MAD result.color, R1.x, R2, R0;\n" 6341 6260 "END\n" … … 6345 6264 "!!ARBfp1.0\n" 6346 6265 "PARAM c[9] = { program.local[0..7],\n" 6347 " { 2, 1} };\n"6266 " { } };\n" 6348 6267 "TEMP R0;\n" 6349 6268 "TEMP R1;\n" … … 6351 6270 "TEMP R3;\n" 6352 6271 "TEMP R4;\n" 6353 "MUL R0.xyz, fragment.position.y, c[ 4];\n"6354 "MAD R0.xyz, fragment.position.x, c[ 3], R0;\n"6355 "ADD R0.xyz, R0, c[ 5];\n"6356 "RCP R0.z, R0.z;\n" 6357 "MUL R0.xy, R0, R0.z;\n" 6358 "MUL R0.xy, R0, c[ 6];\n"6359 " MOV R0.y, -R0;\n"6360 " TEX R1.x, R0, texture[2], 2D;\n"6361 "MUL R1, fragment.color.primary, R 1.x;\n"6362 "MUL R0. xy, fragment.position, c[7];\n"6363 "TEX R0, R0 , texture[0], 2D;\n"6364 "ADD R2.w, -R0, c[8]. y;\n"6272 "MUL R0.xyz, fragment.position.y, c[];\n" 6273 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6274 "ADD R0.xyz, R0, c[];\n" 6275 "RCP R0.z, R0.z;\n" 6276 "MUL R0.xy, R0, R0.z;\n" 6277 "MUL R0.xy, R0, c[];\n" 6278 ";\n" 6279 ";\n" 6280 "MUL R1, fragment.color.primary, R.x;\n" 6281 "MUL R0.;\n" 6282 "TEX R0, R0, texture[0], 2D;\n" 6283 "ADD R2.w, -R0, c[8].;\n" 6365 6284 "ADD R3.xyz, R1.w, -R1;\n" 6366 6285 "ADD R2.xyz, R0.w, -R0;\n" 6367 6286 "MUL R2.xyz, R2, R3;\n" 6368 "MUL R2.xyz, R2, c[8]. x;\n"6287 "MUL R2.xyz, R2, c[8].;\n" 6369 6288 "MAD R2.xyz, R1.w, R0.w, -R2;\n" 6370 6289 "MUL R4.xyz, R1, R2.w;\n" 6371 6290 "MAD R2.xyz, R1, R2.w, R2;\n" 6372 6291 "MUL R3.xyz, R1, R0;\n" 6373 "ADD R2.w, -R1, c[8]. y;\n"6374 "MAD R3.xyz, R3, c[8]. x, R4;\n"6375 "MUL R1.xyz, R1, c[8]. x;\n"6292 "ADD R2.w, -R1, c[8].;\n" 6293 "MAD R3.xyz, R3, c[8]., R4;\n" 6294 "MUL R1.xyz, R1, c[8].;\n" 6376 6295 "SGE R1.xyz, R1, R1.w;\n" 6377 6296 "MAD R3.xyz, R0, R2.w, R3;\n" … … 6381 6300 "ADD R1.z, R1.w, R0.w;\n" 6382 6301 "MAD R2.w, -R1, R0, R1.z;\n" 6383 "ADD R1.xy, fragment.position, c[ 0];\n"6384 "MUL R1.xy, R1, c[ 1];\n"6302 "ADD R1.xy, fragment.position, c[];\n" 6303 "MUL R1.xy, R1, c[];\n" 6385 6304 "TEX R1, R1, texture[1], 2D;\n" 6386 6305 "ADD R2, R2, -R0;\n" 6387 "DP4 R1.x, R1, c[ 2];\n"6306 "DP4 R1.x, R1, c[];\n" 6388 6307 "MAD result.color, R1.x, R2, R0;\n" 6389 6308 "END\n" … … 6393 6312 "!!ARBfp1.0\n" 6394 6313 "PARAM c[10] = { program.local[0..7],\n" 6395 " { 1, 9.9999997e-06, 2, 8},\n"6396 " { 3 } };\n"6314 " { 1, },\n" 6315 " { 3 } };\n" 6397 6316 "TEMP R0;\n" 6398 6317 "TEMP R1;\n" … … 6401 6320 "TEMP R4;\n" 6402 6321 "TEMP R5;\n" 6403 "MUL R0.xyz, fragment.position.y, c[4];\n" 6404 "MAD R0.xyz, fragment.position.x, c[3], R0;\n" 6405 "ADD R1.xyz, R0, c[5];\n" 6406 "RCP R0.z, R1.z;\n" 6407 "MUL R1.xy, R1, R0.z;\n" 6408 "MUL R1.xy, R1, c[6];\n" 6409 "MOV R1.y, -R1;\n" 6410 "MUL R0.xy, fragment.position, c[7];\n" 6322 "TEMP R6;\n" 6323 "MUL R0.xyz, fragment.position.y, c[2];\n" 6324 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6325 "ADD R1.xyz, R0, c[3];\n" 6326 "RCP R1.z, R1.z;\n" 6327 "MUL R1.xy, R1, R1.z;\n" 6328 "MUL R1.xy, R1, c[0];\n" 6329 "TEX R1.x, R1, texture[2], 2D;\n" 6330 "MUL R0.xy, fragment.position, c[5];\n" 6411 6331 "TEX R0, R0, texture[0], 2D;\n" 6412 "MAX R1.z, R0.w, c[8].y;\n" 6413 "RCP R2.w, R1.z;\n" 6414 "MUL R2.xyz, R0, R2.w;\n" 6415 "MUL R5.xyz, -R2, c[8].w;\n" 6416 "MAD R4.xyz, -R0, R2.w, c[8].x;\n" 6417 "TEX R1.x, R1, texture[2], 2D;\n" 6332 "MAX R1.z, R0.w, c[8];\n" 6333 "RCP R1.z, R1.z;\n" 6334 "MUL R3.xyz, R0, R1.z;\n" 6335 "MAD R2.xyz, R3, c[9].x, -c[9].y;\n" 6336 "ADD R1.x, -R1, c[8];\n" 6418 6337 "MUL R1, fragment.color.primary, R1.x;\n" 6419 "MAD R3.xyz, R1, c[8].z, -R1.w;\n" 6420 "RSQ R2.x, R2.x;\n" 6421 "RSQ R2.z, R2.z;\n" 6422 "RSQ R2.y, R2.y;\n" 6423 "MUL R4.xyz, R4, R3;\n" 6424 "ADD R5.xyz, R5, c[9].x;\n" 6425 "MUL R5.xyz, R4, R5;\n" 6426 "ADD R4.xyz, R1.w, -R4;\n" 6338 "MAD R4.xyz, R3, R2, c[9].z;\n" 6339 "MAD R2.xyz, R1, c[8].y, -R1.w;\n" 6340 "MUL R5.xyz, R0.w, R2;\n" 6341 "MUL R6.xyz, R5, R4;\n" 6342 "RSQ R2.w, R3.x;\n" 6343 "RCP R4.x, R2.w;\n" 6344 "RSQ R2.w, R3.y;\n" 6345 "RSQ R3.w, R3.z;\n" 6346 "RCP R4.y, R2.w;\n" 6347 "RCP R4.z, R3.w;\n" 6348 "ADD R4.xyz, -R3, R4;\n" 6349 "MUL R6.xyz, R3, R6;\n" 6350 "MUL R4.xyz, R5, R4;\n" 6351 "ADD R3.xyz, -R3, c[8].x;\n" 6352 "MAD R2.xyz, R2, R3, R1.w;\n" 6353 "MUL R3.xyz, R1, c[8].y;\n" 6354 "MAD R5.xyz, R1.w, R0, R6;\n" 6355 "MAD R4.xyz, R1.w, R0, R4;\n" 6356 "ADD R6.xyz, R4, -R5;\n" 6357 "MUL R4.xyz, R0, c[8].w;\n" 6358 "SGE R4.xyz, R4, R0.w;\n" 6359 "MAD R4.xyz, R4, R6, R5;\n" 6360 "MAD R4.xyz, -R0, R2, R4;\n" 6361 "SGE R3.xyz, R3, R1.w;\n" 6362 "MUL R2.xyz, R0, R2;\n" 6427 6363 "ADD R2.w, -R0, c[8].x;\n" 6428 "RCP R2.x, R2.x;\n" 6429 "RCP R2.z, R2.z;\n" 6430 "RCP R2.y, R2.y;\n" 6431 "MAD R2.xyz, R2, R0.w, -R0;\n" 6432 "MUL R3.xyz, R2, R3;\n" 6433 "ADD R2.xyz, R1.w, -R5;\n" 6434 "MAD R5.xyz, R0, R1.w, R3;\n" 6435 "MUL R2.xyz, R0, R2;\n" 6436 "MUL R3.xyz, R0, c[8].w;\n" 6437 "ADD R5.xyz, R5, -R2;\n" 6438 "SGE R3.xyz, R3, R0.w;\n" 6439 "MUL R3.xyz, R3, R5;\n" 6440 "ADD R2.xyz, R2, R3;\n" 6441 "MUL R3.xyz, R0, R4;\n" 6442 "MUL R4.xyz, R1, c[8].z;\n" 6443 "SGE R4.xyz, R4, R1.w;\n" 6444 "ADD R2.xyz, R2, -R3;\n" 6445 "MUL R2.xyz, R4, R2;\n" 6446 "ADD R2.xyz, R3, R2;\n" 6364 "MAD R2.xyz, R3, R4, R2;\n" 6365 "MAD R2.xyz, R1, R2.w, R2;\n" 6366 "ADD R1.x, -R1.w, c[8];\n" 6367 "MAD R2.xyz, R0, R1.x, R2;\n" 6368 "ADD R1.z, R1.w, R0.w;\n" 6369 "MAD R2.w, -R1, R0, R1.z;\n" 6370 "ADD R1.xy, fragment.position, c[6];\n" 6371 "MUL R1.xy, R1, c[4];\n" 6372 "TEX R1, R1, texture[1], 2D;\n" 6373 "ADD R2, R2, -R0;\n" 6374 "DP4 R1.x, R1, c[7];\n" 6375 "MAD result.color, R1.x, R2, R0;\n" 6376 "END\n" 6377 ; 6378 6379 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_DIFFERENCE = 6380 "!!ARBfp1.0\n" 6381 "PARAM c[9] = { program.local[0..7],\n" 6382 " { 1, 2 } };\n" 6383 "TEMP R0;\n" 6384 "TEMP R1;\n" 6385 "TEMP R2;\n" 6386 "TEMP R3;\n" 6387 "MUL R0.xyz, fragment.position.y, c[2];\n" 6388 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6389 "ADD R0.xyz, R0, c[3];\n" 6390 "RCP R0.z, R0.z;\n" 6391 "MUL R0.xy, R0, R0.z;\n" 6392 "MUL R0.xy, R0, c[0];\n" 6393 "TEX R1.x, R0, texture[2], 2D;\n" 6394 "MUL R0.xy, fragment.position, c[5];\n" 6395 "ADD R1.x, -R1, c[8];\n" 6396 "TEX R0, R0, texture[0], 2D;\n" 6397 "MUL R1, fragment.color.primary, R1.x;\n" 6398 "ADD R2.xyz, R1, R0;\n" 6399 "MUL R3.xyz, R1.w, R0;\n" 6400 "MUL R1.xyz, R1, R0.w;\n" 6401 "MIN R1.xyz, R1, R3;\n" 6402 "MAD R2.xyz, -R1, c[8].y, R2;\n" 6403 "ADD R1.z, R1.w, R0.w;\n" 6404 "MAD R2.w, -R1, R0, R1.z;\n" 6405 "ADD R1.xy, fragment.position, c[6];\n" 6406 "MUL R1.xy, R1, c[4];\n" 6407 "TEX R1, R1, texture[1], 2D;\n" 6408 "ADD R2, R2, -R0;\n" 6409 "DP4 R1.x, R1, c[7];\n" 6410 "MAD result.color, R1.x, R2, R0;\n" 6411 "END\n" 6412 ; 6413 6414 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_EXCLUSION = 6415 "!!ARBfp1.0\n" 6416 "PARAM c[9] = { program.local[0..7],\n" 6417 " { 1, 2 } };\n" 6418 "TEMP R0;\n" 6419 "TEMP R1;\n" 6420 "TEMP R2;\n" 6421 "TEMP R3;\n" 6422 "MUL R0.xyz, fragment.position.y, c[2];\n" 6423 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6424 "ADD R0.xyz, R0, c[3];\n" 6425 "RCP R0.z, R0.z;\n" 6426 "MUL R0.xy, R0, R0.z;\n" 6427 "MUL R0.xy, R0, c[0];\n" 6428 "TEX R1.x, R0, texture[2], 2D;\n" 6429 "MUL R0.xy, fragment.position, c[5];\n" 6430 "TEX R0, R0, texture[0], 2D;\n" 6431 "ADD R1.x, -R1, c[8];\n" 6432 "MUL R1, fragment.color.primary, R1.x;\n" 6433 "MUL R2.xyz, R1.w, R0;\n" 6434 "MAD R3.xyz, R1, R0.w, R2;\n" 6435 "MUL R2.xyz, R1, R0;\n" 6436 "MAD R2.xyz, -R2, c[8].y, R3;\n" 6437 "ADD R2.w, -R0, c[8].x;\n" 6447 6438 "MAD R1.xyz, R1, R2.w, R2;\n" 6448 6439 "ADD R2.x, -R1.w, c[8];\n" … … 6450 6441 "ADD R1.z, R1.w, R0.w;\n" 6451 6442 "MAD R2.w, -R1, R0, R1.z;\n" 6452 "ADD R1.xy, fragment.position, c[ 0];\n"6453 "MUL R1.xy, R1, c[ 1];\n"6443 "ADD R1.xy, fragment.position, c[];\n" 6444 "MUL R1.xy, R1, c[];\n" 6454 6445 "TEX R1, R1, texture[1], 2D;\n" 6455 6446 "ADD R2, R2, -R0;\n" 6456 "DP4 R1.x, R1, c[ 2];\n"6447 "DP4 R1.x, R1, c[];\n" 6457 6448 "MAD result.color, R1.x, R2, R0;\n" 6458 6449 "END\n" 6459 6450 ; 6460 6451 6461 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_DIFFERENCE =6462 "!!ARBfp1.0\n"6463 "PARAM c[9] = { program.local[0..7],\n"6464 " { 2 } };\n"6465 "TEMP R0;\n"6466 "TEMP R1;\n"6467 "TEMP R2;\n"6468 "TEMP R3;\n"6469 "MUL R0.xyz, fragment.position.y, c[4];\n"6470 "MAD R0.xyz, fragment.position.x, c[3], R0;\n"6471 "ADD R0.xyz, R0, c[5];\n"6472 "RCP R0.z, R0.z;\n"6473 "MUL R0.xy, R0, R0.z;\n"6474 "MUL R0.xy, R0, c[6];\n"6475 "MOV R0.y, -R0;\n"6476 "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n"6477 "TEX R1, R0.zwzw, texture[0], 2D;\n"6478 "TEX R0.x, R0, texture[2], 2D;\n"6479 "MUL R0, fragment.color.primary, R0.x;\n"6480 "ADD R3.xyz, R0, R1;\n"6481 "MUL R2.xyz, R1, R0.w;\n"6482 "MUL R0.xyz, R0, R1.w;\n"6483 "MIN R0.xyz, R0, R2;\n"6484 "MAD R2.xyz, -R0, c[8].x, R3;\n"6485 "ADD R0.z, R0.w, R1.w;\n"6486 "MAD R2.w, -R0, R1, R0.z;\n"6487 "ADD R0.xy, fragment.position, c[0];\n"6488 "MUL R0.xy, R0, c[1];\n"6489 "TEX R0, R0, texture[1], 2D;\n"6490 "ADD R2, R2, -R1;\n"6491 "DP4 R0.x, R0, c[2];\n"6492 "MAD result.color, R0.x, R2, R1;\n"6493 "END\n"6494 ;6495 6496 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_EXCLUSION =6497 "!!ARBfp1.0\n"6498 "PARAM c[9] = { program.local[0..7],\n"6499 " { 1, 2 } };\n"6500 "TEMP R0;\n"6501 "TEMP R1;\n"6502 "TEMP R2;\n"6503 "TEMP R3;\n"6504 "MUL R0.xyz, fragment.position.y, c[4];\n"6505 "MAD R0.xyz, fragment.position.x, c[3], R0;\n"6506 "ADD R0.xyz, R0, c[5];\n"6507 "RCP R0.z, R0.z;\n"6508 "MUL R0.xy, R0, R0.z;\n"6509 "MUL R0.xy, R0, c[6];\n"6510 "MOV R0.y, -R0;\n"6511 "TEX R0.x, R0, texture[2], 2D;\n"6512 "MUL R1.xy, fragment.position, c[7];\n"6513 "TEX R1, R1, texture[0], 2D;\n"6514 "MUL R0, fragment.color.primary, R0.x;\n"6515 "MUL R2.xyz, R1, R0.w;\n"6516 "MAD R3.xyz, R0, R1.w, R2;\n"6517 "MUL R2.xyz, R0, R1;\n"6518 "MAD R2.xyz, -R2, c[8].y, R3;\n"6519 "ADD R2.w, -R1, c[8].x;\n"6520 "MAD R0.xyz, R0, R2.w, R2;\n"6521 "ADD R2.x, -R0.w, c[8];\n"6522 "MAD R2.xyz, R1, R2.x, R0;\n"6523 "ADD R0.z, R0.w, R1.w;\n"6524 "MAD R2.w, -R0, R1, R0.z;\n"6525 "ADD R0.xy, fragment.position, c[0];\n"6526 "MUL R0.xy, R0, c[1];\n"6527 "TEX R0, R0, texture[1], 2D;\n"6528 "ADD R2, R2, -R1;\n"6529 "DP4 R0.x, R0, c[2];\n"6530 "MAD result.color, R0.x, R2, R1;\n"6531 "END\n"6532 ;6533 6534 6452 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = 6535 6453 "!!ARBfp1.0\n" 6536 "PARAM c[8] = { program.local[0..4],\n" 6537 " { 1 },\n" 6538 " program.local[6..7] };\n" 6539 "TEMP R0;\n" 6540 "TEMP R1;\n" 6541 "TEMP R2;\n" 6542 "TEMP R3;\n" 6543 "MUL R0.xyz, fragment.position.y, c[1];\n" 6544 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 6545 "ADD R0.xyz, R0, c[2];\n" 6546 "RCP R0.z, R0.z;\n" 6547 "MUL R0.xy, R0, R0.z;\n" 6548 "MUL R0.xy, R0, c[3];\n" 6549 "MOV R0.w, -R0.y;\n" 6550 "MOV R0.z, R0.x;\n" 6551 "TEX R1.x, R0.zwzw, texture[1], 2D;\n" 6552 "MUL R0.xy, fragment.position, c[4];\n" 6553 "TEX R0, R0, texture[0], 2D;\n" 6554 "MUL R2.xyz, R0, c[7].y;\n" 6454 "PARAM c[8] = { program.local[0..6],\n" 6455 " { 1 } };\n" 6456 "TEMP R0;\n" 6457 "TEMP R1;\n" 6458 "TEMP R2;\n" 6459 "TEMP R3;\n" 6460 "MUL R0.xyz, fragment.position.y, c[2];\n" 6461 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6462 "ADD R0.xyz, R0, c[3];\n" 6463 "RCP R0.z, R0.z;\n" 6464 "MUL R0.xy, R0, R0.z;\n" 6465 "MUL R0.xy, R0, c[0];\n" 6466 "TEX R1.x, R0, texture[1], 2D;\n" 6467 "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" 6468 "TEX R0, R0.zwzw, texture[0], 2D;\n" 6469 "MUL R2.xyz, R0, c[4].y;\n" 6470 "ADD R1.x, -R1, c[7];\n" 6555 6471 "MUL R1, fragment.color.primary, R1.x;\n" 6556 "MUL R3.xyz, R2, R1.w;\n" 6557 "MUL R2.xyz, R1, c[7].x;\n" 6558 "MUL R0.xyz, R0, c[6].z;\n" 6559 "MAD R2.xyz, R2, R0.w, R3;\n" 6560 "MUL R1.xyz, R1, c[6].y;\n" 6561 "ADD R2.w, -R0, c[5].x;\n" 6562 "MAD R1.xyz, R1, R2.w, R2;\n" 6563 "ADD R2.x, -R1.w, c[5];\n" 6564 "MAD result.color.xyz, R0, R2.x, R1;\n" 6565 "ADD R0.y, -R0.w, c[5].x;\n" 6472 "MUL R3.xyz, R1.w, R2;\n" 6473 "MUL R2.xyz, R1, c[4].x;\n" 6474 "MUL R0.xyz, R0, c[5].z;\n" 6475 "MAD R2.xyz, R0.w, R2, R3;\n" 6476 "ADD R2.w, -R0, c[7].x;\n" 6477 "MUL R1.xyz, R1, c[5].y;\n" 6478 "MAD R1.xyz, R2.w, R1, R2;\n" 6479 "ADD R2.x, -R1.w, c[7];\n" 6480 "MAD result.color.xyz, R2.x, R0, R1;\n" 6566 6481 "MUL R0.x, R1.w, R0.w;\n" 6567 6482 "MUL R0.z, R0.w, R2.x;\n" 6568 "MUL R0.y, R1.w, R 0;\n"6569 "DP3 result.color.w, R0, c[ 6];\n"6483 "MUL R0.y, R1.w, R;\n" 6484 "DP3 result.color.w, R0, c[];\n" 6570 6485 "END\n" 6571 6486 ; … … 6578 6493 "TEMP R1;\n" 6579 6494 "TEMP R2;\n" 6580 "MUL R0.xyz, fragment.position.y, c[ 1];\n"6581 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"6582 "ADD R0.xyz, R0, c[ 2];\n"6583 "RCP R0.z, R0.z;\n" 6584 "MUL R0. zw, R0.xyxy, R0.z;\n"6585 "MUL R 1.xy, R0.zwzw, c[3];\n"6586 " MOV R1.y, -R1;\n"6587 "MUL R0. xy, fragment.position, c[4];\n"6588 "TEX R0, R0 , texture[0], 2D;\n"6589 " TEX R1.x, R1, texture[1], 2D;\n"6495 "MUL R0.xyz, fragment.position.y, c[];\n" 6496 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6497 "ADD R0.xyz, R0, c[];\n" 6498 "RCP R0.z, R0.z;\n" 6499 "MUL R0., R0.z;\n" 6500 "MUL R];\n" 6501 ";\n" 6502 "MUL R0.;\n" 6503 "TEX R0, R0, texture[0], 2D;\n" 6504 ";\n" 6590 6505 "MUL R1, fragment.color.primary, R1.x;\n" 6591 6506 "ADD R2.x, -R0.w, c[5];\n" … … 6601 6516 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SCREEN_NOMASK = 6602 6517 "!!ARBfp1.0\n" 6603 "PARAM c[ 5] = { program.local[0..4] };\n"6604 " TEMP R0;\n"6605 "TEMP R 1;\n"6606 "TEMP R 2;\n"6607 " MUL R0.xyz, fragment.position.y, c[1];\n"6608 "M AD R0.xyz, fragment.position.x, c[0], R0;\n"6609 " ADD R0.xyz, R0, c[2];\n"6610 " RCP R0.z, R0.z;\n"6611 " MUL R0.xy, R0, R0.z;\n"6612 "MUL R0.xy, R0, c[3];\n"6613 "M OV R0.w, -R0.y;\n"6614 " MOV R0.z, R0.x;\n"6615 " TEX R1.x, R0.zwzw, texture[1], 2D;\n"6616 "MUL R0. xy, fragment.position, c[4];\n"6617 "TEX R0, R0 , texture[0], 2D;\n"6518 "PARAM c[\n" 6519 ";\n" 6520 "TEMP R;\n" 6521 "TEMP R;\n" 6522 ";\n" 6523 "M;\n" 6524 ";\n" 6525 ";\n" 6526 ", R0.z;\n" 6527 "MUL R0.xy, R0, ;\n" 6528 "M;\n" 6529 ";\n" 6530 ";\n" 6531 "MUL R0.;\n" 6532 "TEX R0, R0, texture[0], 2D;\n" 6618 6533 "MUL R1, fragment.color.primary, R1.x;\n" 6619 6534 "ADD R2, R1, R0;\n" … … 6625 6540 "!!ARBfp1.0\n" 6626 6541 "PARAM c[6] = { program.local[0..4],\n" 6627 " { 2, 1} };\n"6628 "TEMP R0;\n" 6629 "TEMP R1;\n" 6630 "TEMP R2;\n" 6631 "TEMP R3;\n" 6632 "MUL R0.xyz, fragment.position.y, c[ 1];\n"6633 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"6634 "ADD R0.xyz, R0, c[ 2];\n"6635 "RCP R0.z, R0.z;\n" 6636 "MUL R0.xy, R0, R0.z;\n" 6637 "MUL R0.xy, R0, c[ 3];\n"6638 " MOV R0.y, -R0;\n"6639 " TEX R1.x, R0, texture[1], 2D;\n"6640 "MUL R1, fragment.color.primary, R 1.x;\n"6641 "MUL R0. xy, fragment.position, c[4];\n"6642 "TEX R0, R0 , texture[0], 2D;\n"6542 " { } };\n" 6543 "TEMP R0;\n" 6544 "TEMP R1;\n" 6545 "TEMP R2;\n" 6546 "TEMP R3;\n" 6547 "MUL R0.xyz, fragment.position.y, c[];\n" 6548 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6549 "ADD R0.xyz, R0, c[];\n" 6550 "RCP R0.z, R0.z;\n" 6551 "MUL R0.xy, R0, R0.z;\n" 6552 "MUL R0.xy, R0, c[];\n" 6553 ";\n" 6554 ";\n" 6555 "MUL R1, fragment.color.primary, R.x;\n" 6556 "MUL R0.;\n" 6557 "TEX R0, R0, texture[0], 2D;\n" 6643 6558 "ADD R3.xyz, R1.w, -R1;\n" 6644 6559 "ADD R2.xyz, R0.w, -R0;\n" 6645 6560 "MUL R2.xyz, R2, R3;\n" 6646 "ADD R2.w, -R0, c[5]. y;\n"6647 "MUL R2.xyz, R2, c[5]. x;\n"6561 "ADD R2.w, -R0, c[5].;\n" 6562 "MUL R2.xyz, R2, c[5].;\n" 6648 6563 "MAD R2.xyz, R1.w, R0.w, -R2;\n" 6649 6564 "MAD R2.xyz, R1, R2.w, R2;\n" 6650 6565 "MUL R3.xyz, R1, R2.w;\n" 6651 6566 "MUL R1.xyz, R1, R0;\n" 6652 "ADD R2.w, -R1, c[5]. y;\n"6653 "MAD R1.xyz, R1, c[5]. x, R3;\n"6567 "ADD R2.w, -R1, c[5].;\n" 6568 "MAD R1.xyz, R1, c[5]., R3;\n" 6654 6569 "MAD R1.xyz, R0, R2.w, R1;\n" 6655 6570 "MAD R2.xyz, R0, R2.w, R2;\n" 6656 "MUL R0.xyz, R0, c[5]. x;\n"6571 "MUL R0.xyz, R0, c[5].;\n" 6657 6572 "ADD R2.w, R1, R0;\n" 6658 6573 "ADD R2.xyz, R2, -R1;\n" … … 6671 6586 "TEMP R2;\n" 6672 6587 "TEMP R3;\n" 6673 "MUL R0.xyz, fragment.position.y, c[ 1];\n"6674 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"6675 "ADD R0.xyz, R0, c[ 2];\n"6676 "RCP R0.z, R0.z;\n" 6677 "MUL R0.xy, R0, R0.z;\n" 6678 "MUL R0.xy, R0, c[ 3];\n"6679 " MOV R0.y, -R0;\n"6680 " TEX R1.x, R0, texture[1], 2D;\n"6681 "MUL R0. xy, fragment.position, c[4];\n"6682 "TEX R0, R0 , texture[0], 2D;\n"6588 "MUL R0.xyz, fragment.position.y, c[];\n" 6589 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6590 "ADD R0.xyz, R0, c[];\n" 6591 "RCP R0.z, R0.z;\n" 6592 "MUL R0.xy, R0, R0.z;\n" 6593 "MUL R0.xy, R0, c[];\n" 6594 ";\n" 6595 ";\n" 6596 "MUL R0.;\n" 6597 "TEX R0, R0, texture[0], 2D;\n" 6683 6598 "MUL R1, fragment.color.primary, R1.x;\n" 6684 6599 "MUL R2.xyz, R1, R0.w;\n" 6685 "MUL R3.xyz, R 0, R1.w;\n"6600 "MUL R3.xyz, R;\n" 6686 6601 "MIN R2.xyz, R2, R3;\n" 6687 6602 "ADD R2.w, -R0, c[5].x;\n" … … 6702 6617 "TEMP R2;\n" 6703 6618 "TEMP R3;\n" 6704 "MUL R0.xyz, fragment.position.y, c[ 1];\n"6705 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"6706 "ADD R0.xyz, R0, c[ 2];\n"6707 "RCP R0.z, R0.z;\n" 6708 "MUL R0.xy, R0, R0.z;\n" 6709 "MUL R0.xy, R0, c[ 3];\n"6710 " MOV R0.y, -R0;\n"6711 " TEX R1.x, R0, texture[1], 2D;\n"6712 "MUL R0. xy, fragment.position, c[4];\n"6713 "TEX R0, R0 , texture[0], 2D;\n"6619 "MUL R0.xyz, fragment.position.y, c[];\n" 6620 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6621 "ADD R0.xyz, R0, c[];\n" 6622 "RCP R0.z, R0.z;\n" 6623 "MUL R0.xy, R0, R0.z;\n" 6624 "MUL R0.xy, R0, c[];\n" 6625 ";\n" 6626 ";\n" 6627 "MUL R0.;\n" 6628 "TEX R0, R0, texture[0], 2D;\n" 6714 6629 "MUL R1, fragment.color.primary, R1.x;\n" 6715 6630 "MUL R2.xyz, R1, R0.w;\n" 6716 "MUL R3.xyz, R 0, R1.w;\n"6631 "MUL R3.xyz, R;\n" 6717 6632 "MAX R2.xyz, R2, R3;\n" 6718 6633 "ADD R2.w, -R0, c[5].x;\n" … … 6728 6643 "!!ARBfp1.0\n" 6729 6644 "PARAM c[6] = { program.local[0..4],\n" 6730 " { 1, 1e-06 } };\n" 6731 "TEMP R0;\n" 6732 "TEMP R1;\n" 6733 "TEMP R2;\n" 6734 "TEMP R3;\n" 6735 "MUL R0.xyz, fragment.position.y, c[1];\n" 6736 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 6737 "ADD R0.xyz, R0, c[2];\n" 6738 "RCP R0.z, R0.z;\n" 6739 "MUL R0.xy, R0, R0.z;\n" 6740 "MUL R0.xy, R0, c[3];\n" 6741 "MOV R0.y, -R0;\n" 6645 " { 1, 1e-006 } };\n" 6646 "TEMP R0;\n" 6647 "TEMP R1;\n" 6648 "TEMP R2;\n" 6649 "TEMP R3;\n" 6650 "MUL R0.xyz, fragment.position.y, c[2];\n" 6651 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6652 "ADD R0.xyz, R0, c[3];\n" 6653 "RCP R0.z, R0.z;\n" 6654 "MUL R0.xy, R0, R0.z;\n" 6655 "MUL R0.xy, R0, c[0];\n" 6742 6656 "TEX R0.x, R0, texture[1], 2D;\n" 6657 6743 6658 "MUL R1, fragment.color.primary, R0.x;\n" 6744 6659 "MAX R0.x, R1.w, c[5].y;\n" 6745 6660 "RCP R0.x, R0.x;\n" 6746 "MAD R 0.xyz, -R1, R0.x, c[5].x;\n"6747 "MAX R 2.xyz, R0, c[5].y;\n"6661 "MAD R.xyz, -R1, R0.x, c[5].x;\n" 6662 "MAX R, c[5].y;\n" 6748 6663 "MUL R0.xy, fragment.position, c[4];\n" 6749 6664 "TEX R0, R0, texture[0], 2D;\n" 6750 "ADD R2. w, -R1, c[5].x;\n"6751 "MUL R 3.xyz, R0, R2.w;\n"6665 "ADD R2.;\n" 6666 "MUL R;\n" 6752 6667 "ADD R2.w, -R0, c[5].x;\n" 6753 "MAD R 3.xyz, R1, R2.w, R3;\n"6754 "MUL R0.xyz, R 0, R1.w;\n"6755 "RCP R 2.x, R2.x;\n"6756 "RCP R 2.y, R2.y;\n"6757 "RCP R 2.z, R2.z;\n"6758 "MAD R 2.xyz, R0, R2, R3;\n"6668 "MAD R;\n" 6669 "MUL R0.xyz, R;\n" 6670 "RCP R.x;\n" 6671 "RCP R.y;\n" 6672 "RCP R.z;\n" 6673 "MAD R;\n" 6759 6674 "MAD R0.xyz, R1, R0.w, R0;\n" 6760 "MAD R 3.xyz, R1.w, R0.w, R3;\n"6675 "MAD R;\n" 6761 6676 "MUL R2.w, R1, R0;\n" 6762 6677 "ADD R1.x, R1.w, R0.w;\n" 6763 "ADD R 3.xyz, R3, -R2;\n"6678 "ADD R;\n" 6764 6679 "SGE R0.xyz, R0, R2.w;\n" 6765 "MAD result.color.xyz, R0, R 3, R2;\n"6680 "MAD result.color.xyz, R0, R;\n" 6766 6681 "MAD result.color.w, -R1, R0, R1.x;\n" 6767 6682 "END\n" … … 6771 6686 "!!ARBfp1.0\n" 6772 6687 "PARAM c[6] = { program.local[0..4],\n" 6773 " { 1, 9.9999997e-0 6 } };\n"6688 " { 1, 9.9999997e-06 } };\n" 6774 6689 "TEMP R0;\n" 6775 6690 "TEMP R1;\n" … … 6778 6693 "TEMP R4;\n" 6779 6694 "TEMP R5;\n" 6780 "MUL R0.xyz, fragment.position.y, c[ 1];\n"6781 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"6782 "ADD R0.xyz, R0, c[ 2];\n"6783 "RCP R0.z, R0.z;\n" 6784 "MUL R0.xy, R0, R0.z;\n" 6785 "MUL R0.xy, R0, c[ 3];\n"6786 " MOV R0.y, -R0;\n"6787 " TEX R1.x, R0, texture[1], 2D;\n"6695 "MUL R0.xyz, fragment.position.y, c[];\n" 6696 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6697 "ADD R0.xyz, R0, c[];\n" 6698 "RCP R0.z, R0.z;\n" 6699 "MUL R0.xy, R0, R0.z;\n" 6700 "MUL R0.xy, R0, c[];\n" 6701 ";\n" 6702 ";\n" 6788 6703 "MUL R1, fragment.color.primary, R1.x;\n" 6789 "MUL R0. xy, fragment.position, c[4];\n"6790 "TEX R0, R0 , texture[0], 2D;\n"6791 "MUL R2.xyz, R 0, R1.w;\n"6704 "MUL R0.;\n" 6705 "TEX R0, R0, texture[0], 2D;\n" 6706 "MUL R2.xyz, R;\n" 6792 6707 "MAD R3.xyz, R1, R0.w, R2;\n" 6793 6708 "ADD R2.w, -R0, c[5].x;\n" … … 6802 6717 "MAD R2.xyz, R4, R2, R5;\n" 6803 6718 "MUL R4.xyz, R0, R3.w;\n" 6719 6804 6720 "MAD R1.xyz, R1, R2.w, R4;\n" 6805 "ADD R3.w, -R1, c[5].x;\n"6806 "MAD R0.xyz, R0, R3.w, R2;\n"6807 6721 "MUL R2.x, R1.w, R0.w;\n" 6808 6722 "ADD R2.w, R1, R0;\n" … … 6817 6731 "!!ARBfp1.0\n" 6818 6732 "PARAM c[6] = { program.local[0..4],\n" 6819 " { 2, 1} };\n"6733 " { } };\n" 6820 6734 "TEMP R0;\n" 6821 6735 "TEMP R1;\n" … … 6823 6737 "TEMP R3;\n" 6824 6738 "TEMP R4;\n" 6825 "MUL R0.xyz, fragment.position.y, c[ 1];\n"6826 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"6827 "ADD R0.xyz, R0, c[ 2];\n"6828 "RCP R0.z, R0.z;\n" 6829 "MUL R0.xy, R0, R0.z;\n" 6830 "MUL R0.xy, R0, c[ 3];\n"6831 " MOV R0.y, -R0;\n"6832 " TEX R1.x, R0, texture[1], 2D;\n"6833 "MUL R1, fragment.color.primary, R 1.x;\n"6834 "MUL R0. xy, fragment.position, c[4];\n"6835 "TEX R0, R0 , texture[0], 2D;\n"6836 "ADD R2.w, -R0, c[5]. y;\n"6739 "MUL R0.xyz, fragment.position.y, c[];\n" 6740 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6741 "ADD R0.xyz, R0, c[];\n" 6742 "RCP R0.z, R0.z;\n" 6743 "MUL R0.xy, R0, R0.z;\n" 6744 "MUL R0.xy, R0, c[];\n" 6745 ";\n" 6746 ";\n" 6747 "MUL R1, fragment.color.primary, R.x;\n" 6748 "MUL R0.;\n" 6749 "TEX R0, R0, texture[0], 2D;\n" 6750 "ADD R2.w, -R0, c[5].;\n" 6837 6751 "ADD R3.xyz, R1.w, -R1;\n" 6838 6752 "ADD R2.xyz, R0.w, -R0;\n" 6839 6753 "MUL R2.xyz, R2, R3;\n" 6840 "MUL R2.xyz, R2, c[5]. x;\n"6754 "MUL R2.xyz, R2, c[5].;\n" 6841 6755 "MAD R2.xyz, R1.w, R0.w, -R2;\n" 6756 6842 6757 "MUL R4.xyz, R1, R2.w;\n" 6843 6758 "MUL R3.xyz, R1, R0;\n" 6844 "MAD R2.xyz, R1, R2.w, R2;\n" 6845 "ADD R2.w, -R1, c[5].y;\n" 6846 "MUL R1.xyz, R1, c[5].x;\n" 6847 "MAD R2.xyz, R0, R2.w, R2;\n" 6848 "MAD R3.xyz, R3, c[5].x, R4;\n" 6849 "MAD R0.xyz, R0, R2.w, R3;\n" 6850 "ADD R2.w, R1, R0;\n" 6851 "ADD R2.xyz, R2, -R0;\n" 6759 "MUL R1.xyz, R1, c[5].y;\n" 6760 "ADD R2.w, -R1, c[5].x;\n" 6761 "MAD R3.xyz, R3, c[5].y, R4;\n" 6762 "MAD R3.xyz, R0, R2.w, R3;\n" 6763 "MAD R0.xyz, R0, R2.w, R2;\n" 6764 "ADD R2.x, R1.w, R0.w;\n" 6765 "ADD R0.xyz, R0, -R3;\n" 6852 6766 "SGE R1.xyz, R1, R1.w;\n" 6853 "MAD result.color.xyz, R1, R 2, R0;\n"6854 "MAD result.color.w, -R1, R0, R2 ;\n"6767 "MAD result.color.xyz, R1, R;\n" 6768 "MAD result.color.w, -R1, R0, R2;\n" 6855 6769 "END\n" 6856 6770 ; … … 6859 6773 "!!ARBfp1.0\n" 6860 6774 "PARAM c[7] = { program.local[0..4],\n" 6861 " { 1, 9.9999997e-06, 2, 8},\n"6862 " { 3 } };\n"6775 " { 1, },\n" 6776 " { 3 } };\n" 6863 6777 "TEMP R0;\n" 6864 6778 "TEMP R1;\n" … … 6867 6781 "TEMP R4;\n" 6868 6782 "TEMP R5;\n" 6869 "MUL R0.xyz, fragment.position.y, c[1];\n" 6870 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 6871 "ADD R1.xyz, R0, c[2];\n" 6872 "RCP R0.z, R1.z;\n" 6873 "MUL R1.xy, R1, R0.z;\n" 6874 "MUL R1.xy, R1, c[3];\n" 6875 "MOV R1.y, -R1;\n" 6783 "TEMP R6;\n" 6784 "MUL R0.xyz, fragment.position.y, c[2];\n" 6785 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6786 "ADD R1.xyz, R0, c[3];\n" 6787 "RCP R1.z, R1.z;\n" 6788 "MUL R1.xy, R1, R1.z;\n" 6789 "MUL R1.xy, R1, c[0];\n" 6790 "TEX R1.x, R1, texture[1], 2D;\n" 6876 6791 "MUL R0.xy, fragment.position, c[4];\n" 6877 6792 "TEX R0, R0, texture[0], 2D;\n" 6878 "MAX R1.z, R0.w, c[5].y;\n" 6879 "RCP R2.w, R1.z;\n" 6880 "MUL R2.xyz, R0, R2.w;\n" 6881 "MUL R5.xyz, -R2, c[5].w;\n" 6882 "MAD R4.xyz, -R0, R2.w, c[5].x;\n" 6883 "TEX R1.x, R1, texture[1], 2D;\n" 6793 "MAX R1.z, R0.w, c[5];\n" 6794 "RCP R1.z, R1.z;\n" 6795 "MUL R3.xyz, R0, R1.z;\n" 6796 "MAD R2.xyz, R3, c[6].x, -c[6].y;\n" 6797 "ADD R1.x, -R1, c[5];\n" 6884 6798 "MUL R1, fragment.color.primary, R1.x;\n" 6885 "MAD R3.xyz, R1, c[5].z, -R1.w;\n" 6886 "RSQ R2.x, R2.x;\n" 6887 "RSQ R2.z, R2.z;\n" 6888 "RSQ R2.y, R2.y;\n" 6889 "MUL R4.xyz, R4, R3;\n" 6890 "ADD R5.xyz, R5, c[6].x;\n" 6891 "MUL R5.xyz, R4, R5;\n" 6892 "ADD R4.xyz, R1.w, -R4;\n" 6893 "RCP R2.x, R2.x;\n" 6894 "RCP R2.z, R2.z;\n" 6895 "RCP R2.y, R2.y;\n" 6896 "MAD R2.xyz, R2, R0.w, -R0;\n" 6897 "MUL R3.xyz, R2, R3;\n" 6898 "ADD R2.xyz, R1.w, -R5;\n" 6899 "MAD R5.xyz, R0, R1.w, R3;\n" 6799 "MAD R4.xyz, R3, R2, c[6].z;\n" 6800 "MAD R2.xyz, R1, c[5].y, -R1.w;\n" 6801 "MUL R5.xyz, R0.w, R2;\n" 6802 "MUL R6.xyz, R5, R4;\n" 6803 "RSQ R2.w, R3.x;\n" 6804 "RCP R4.x, R2.w;\n" 6805 "RSQ R2.w, R3.y;\n" 6806 "RSQ R3.w, R3.z;\n" 6807 "RCP R4.y, R2.w;\n" 6808 "RCP R4.z, R3.w;\n" 6809 "ADD R4.xyz, -R3, R4;\n" 6810 "MUL R6.xyz, R3, R6;\n" 6811 "MUL R4.xyz, R5, R4;\n" 6812 "ADD R3.xyz, -R3, c[5].x;\n" 6813 "MAD R2.xyz, R2, R3, R1.w;\n" 6814 "MUL R3.xyz, R1, c[5].y;\n" 6815 "MAD R5.xyz, R1.w, R0, R6;\n" 6816 "MAD R4.xyz, R1.w, R0, R4;\n" 6817 "ADD R6.xyz, R4, -R5;\n" 6818 "MUL R4.xyz, R0, c[5].w;\n" 6819 "SGE R4.xyz, R4, R0.w;\n" 6820 "MAD R4.xyz, R4, R6, R5;\n" 6821 "MAD R4.xyz, -R0, R2, R4;\n" 6900 6822 "MUL R2.xyz, R0, R2;\n" 6901 "MUL R3.xyz, R0, c[5].w;\n" 6902 "ADD R5.xyz, R5, -R2;\n" 6903 "SGE R3.xyz, R3, R0.w;\n" 6904 "MUL R3.xyz, R3, R5;\n" 6905 "ADD R2.xyz, R2, R3;\n" 6906 "MUL R3.xyz, R0, R4;\n" 6907 "MUL R4.xyz, R1, c[5].z;\n" 6908 "ADD R2.xyz, R2, -R3;\n" 6909 "SGE R4.xyz, R4, R1.w;\n" 6910 "MUL R2.xyz, R4, R2;\n" 6911 "ADD R2.xyz, R3, R2;\n" 6823 "SGE R3.xyz, R3, R1.w;\n" 6824 "MAD R2.xyz, R3, R4, R2;\n" 6912 6825 "ADD R2.w, -R0, c[5].x;\n" 6913 "MAD R 1.xyz, R1, R2.w, R2;\n"6914 "ADD R 2.x, R1.w, R0.w;\n"6915 "ADD R 2.y, -R1.w, c[5].x;\n"6916 "MAD result.color.xyz, R0, R 2.y, R1;\n"6917 "MAD result.color.w, -R1, R0, R 2.x;\n"6826 "MAD R.xyz, R1, R2.w, R2;\n" 6827 "ADD R.x, R1.w, R0.w;\n" 6828 "ADD R.y, -R1.w, c[5].x;\n" 6829 "MAD result.color.xyz, R0, R;\n" 6830 "MAD result.color.w, -R1, R0, R.x;\n" 6918 6831 "END\n" 6919 6832 ; … … 6922 6835 "!!ARBfp1.0\n" 6923 6836 "PARAM c[6] = { program.local[0..4],\n" 6924 " { 2 } };\n" 6925 "TEMP R0;\n" 6926 "TEMP R1;\n" 6927 "TEMP R2;\n" 6928 "TEMP R3;\n" 6929 "MUL R0.xyz, fragment.position.y, c[1];\n" 6930 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 6931 "ADD R0.xyz, R0, c[2];\n" 6932 "RCP R0.z, R0.z;\n" 6933 "MUL R0.xy, R0, R0.z;\n" 6934 "MUL R0.xy, R0, c[3];\n" 6935 "MOV R0.y, -R0;\n" 6936 "TEX R1.x, R0, texture[1], 2D;\n" 6937 "MUL R0.xy, fragment.position, c[4];\n" 6837 " { 1, 2 } };\n" 6838 "TEMP R0;\n" 6839 "TEMP R1;\n" 6840 "TEMP R2;\n" 6841 "TEMP R3;\n" 6842 "MUL R0.xyz, fragment.position.y, c[2];\n" 6843 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6844 "ADD R0.xyz, R0, c[3];\n" 6845 "RCP R0.z, R0.z;\n" 6846 "MUL R0.xy, R0, R0.z;\n" 6847 "MUL R0.xy, R0, c[0];\n" 6848 "TEX R0.x, R0, texture[1], 2D;\n" 6849 "ADD R1.x, -R0, c[5];\n" 6850 "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" 6851 "TEX R0, R0.zwzw, texture[0], 2D;\n" 6938 6852 "MUL R1, fragment.color.primary, R1.x;\n" 6939 "TEX R0, R0, texture[0], 2D;\n" 6940 "MUL R3.xyz, R0, R1.w;\n" 6853 "MUL R3.xyz, R1.w, R0;\n" 6941 6854 "MUL R2.xyz, R1, R0.w;\n" 6942 6855 "ADD R0.xyz, R1, R0;\n" 6943 6856 "MIN R2.xyz, R2, R3;\n" 6944 6857 "ADD R1.x, R1.w, R0.w;\n" 6945 "MAD result.color.xyz, -R2, c[5]. x, R0;\n"6858 "MAD result.color.xyz, -R2, c[5]., R0;\n" 6946 6859 "MAD result.color.w, -R1, R0, R1.x;\n" 6947 6860 "END\n" … … 6956 6869 "TEMP R2;\n" 6957 6870 "TEMP R3;\n" 6958 "MUL R0.xyz, fragment.position.y, c[ 1];\n"6959 "MAD R0.xyz, fragment.position.x, c[ 0], R0;\n"6960 "ADD R0.xyz, R0, c[ 2];\n"6961 "RCP R0.z, R0.z;\n" 6962 "MUL R0.xy, R0, R0.z;\n" 6963 "MUL R0.xy, R0, c[ 3];\n"6964 " MOV R0.y, -R0;\n"6965 " TEX R1.x, R0, texture[1], 2D;\n"6966 "MUL R0. xy, fragment.position, c[4];\n"6967 "TEX R0, R0 , texture[0], 2D;\n"6871 "MUL R0.xyz, fragment.position.y, c[];\n" 6872 "MAD R0.xyz, fragment.position.x, c[], R0;\n" 6873 "ADD R0.xyz, R0, c[];\n" 6874 "RCP R0.z, R0.z;\n" 6875 "MUL R0.xy, R0, R0.z;\n" 6876 "MUL R0.xy, R0, c[];\n" 6877 ";\n" 6878 ";\n" 6879 "MUL R0.;\n" 6880 "TEX R0, R0, texture[0], 2D;\n" 6968 6881 "MUL R1, fragment.color.primary, R1.x;\n" 6969 "MUL R2.xyz, R 0, R1.w;\n"6882 "MUL R2.xyz, R;\n" 6970 6883 "MAD R3.xyz, R1, R0.w, R2;\n" 6971 6884 "MUL R2.xyz, R1, R0;\n" … … 6982 6895 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODE_BLEND_MODE_MASK = 6983 6896 "!!ARBfp1.0\n" 6984 "PARAM c[7] = { program.local[0..6] };\n" 6985 "TEMP R0;\n" 6986 "TEMP R1;\n" 6987 "MUL R0.xyz, fragment.position.y, c[1];\n" 6988 "MAD R0.xyz, fragment.position.x, c[0], R0;\n" 6989 "ADD R1.xyz, R0, c[2];\n" 6990 "RCP R0.z, R1.z;\n" 6991 "MUL R0.zw, R1.xyxy, R0.z;\n" 6992 "MUL R1.xy, R0.zwzw, c[3];\n" 6993 "MOV R1.y, -R1;\n" 6994 "ADD R0.xy, fragment.position, c[4];\n" 6995 "MUL R0.xy, R0, c[5];\n" 6897 "PARAM c[8] = { program.local[0..6],\n" 6898 " { 1 } };\n" 6899 "TEMP R0;\n" 6900 "TEMP R1;\n" 6901 "MUL R0.xyz, fragment.position.y, c[2];\n" 6902 "MAD R0.xyz, fragment.position.x, c[1], R0;\n" 6903 "ADD R0.xyz, R0, c[3];\n" 6904 "RCP R0.z, R0.z;\n" 6905 "MUL R0.zw, R0.xyxy, R0.z;\n" 6906 "MUL R0.zw, R0, c[0].xyxy;\n" 6907 "TEX R1.x, R0.zwzw, texture[1], 2D;\n" 6908 "ADD R0.xy, fragment.position, c[5];\n" 6909 "MUL R0.xy, R0, c[4];\n" 6996 6910 "TEX R0, R0, texture[0], 2D;\n" 6997 " TEX R1.x, R1, texture[1], 2D;\n"6998 " DP4 R0.x, R0, c[6];\n"6999 "MUL R 1, fragment.color.primary, R1.x;\n"7000 "MUL result.color, R 1, R0.x;\n"6911 ";\n" 6912 "];\n" 6913 "MUL R, fragment.color.primary, R1.x;\n" 6914 "MUL result.color, R;\n" 7001 6915 "END\n" 7002 6916 ; … … 7004 6918 static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODE_BLEND_MODE_NOMASK = 7005 6919 "!!ARBfp1.0\n" 7006 "PARAM c[ 4] = { program.local[0..3] };\n"7007 " TEMP R0;\n"7008 " MUL R0.xyz, fragment.position.y, c[1];\n"7009 "M AD R0.xyz, fragment.position.x, c[0], R0;\n"7010 " ADD R0.xyz, R0, c[2];\n"7011 " RCP R0.z, R0.z;\n"7012 " MUL R0.xy, R0, R0.z;\n"7013 "MUL R0.xy, R0, c[3];\n"7014 "M OV R0.y, -R0;\n"6920 "PARAM c[\n" 6921 ";\n" 6922 ";\n" 6923 "M;\n" 6924 ";\n" 6925 ";\n" 6926 ", R0.z;\n" 6927 "MUL R0.xy, R0, ;\n" 6928 "M;\n" 7015 6929 "TEX R0.x, R0, texture[0], 2D;\n" 6930 7016 6931 "MUL result.color, fragment.color.primary, R0.x;\n" 7017 6932 "END\n" … … 7196 7111 static int painter_variable_locations[num_fragment_brushes][num_fragment_composition_modes][num_fragment_variables] = { 7197 7112 { 7198 { -1, -1, -1, 1, -1, 6, 2, -1, 5, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7199 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7200 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7201 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7202 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7203 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7204 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7205 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7206 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7207 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7208 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7209 { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, },7210 { -1, -1, -1, -1, -1, 3, -1, -1, 2, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, },7113 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7114 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7115 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7116 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7117 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7118 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7119 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7120 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7121 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7122 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7123 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7124 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7125 { -1, -1, -1, -1, -1, , -1, 0, -1, -1, -1, -1, -1, -1, -1, }, 7211 7126 { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, 7212 7127 { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, … … 7220 7135 { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, 7221 7136 { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, 7222 { -1, -1, -1, 1, -1, -1, 2, -1, -1, -1, 0, -1, -1, 0, -1, -1, -1, -1, -1, },7137 { -1, -1, -1, , -1, -1, -1, -1, -1, }, 7223 7138 { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, 7224 7139 }, 7225 7140 { 7226 { -1, -1, 4, 1, 5, 11, 2, -1, 10, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7227 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7228 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7229 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7230 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7231 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7232 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7233 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7234 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7235 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7236 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7237 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, },7238 { -1, -1, 1, -1, 2, 8, -1, -1, 7, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7239 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7240 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7241 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7242 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7243 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7244 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7245 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7246 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7247 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7248 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7249 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, },7250 { -1, -1, 1, 7, 2, -1, 8, -1, -1, -1, 0, -1, 1, 6, -1, 5, 3, 0, -1, },7251 { -1, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 5, 3, 0, -1, },7141 { -1, -1, , -1, }, 7142 { -1, -1, , -1, }, 7143 { -1, -1, , -1, }, 7144 { -1, -1, , -1, }, 7145 { -1, -1, , -1, }, 7146 { -1, -1, , -1, }, 7147 { -1, -1, , -1, }, 7148 { -1, -1, , -1, }, 7149 { -1, -1, , -1, }, 7150 { -1, -1, , -1, }, 7151 { -1, -1, , -1, }, 7152 { -1, -1, , -1, }, 7153 { -1, -1, , -1, }, 7154 { -1, -1, , -1, }, 7155 { -1, -1, , -1, }, 7156 { -1, -1, , -1, }, 7157 { -1, -1, , -1, }, 7158 { -1, -1, , -1, }, 7159 { -1, -1, , -1, }, 7160 { -1, -1, , -1, }, 7161 { -1, -1, , -1, }, 7162 { -1, -1, , -1, }, 7163 { -1, -1, , -1, }, 7164 { -1, -1, , -1, }, 7165 { -1, -1, , -1, }, 7166 { -1, -1, , -1, }, 7252 7167 }, 7253 7168 { 7254 { -1, -1, 4, 1, 5, 12, 2, -1, 11, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7255 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7256 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7257 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7258 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7259 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7260 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7261 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7262 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7263 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7264 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7265 { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, },7266 { -1, -1, 1, -1, 2, 9, -1, -1, 8, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7267 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7268 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7269 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7270 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7271 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7272 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7273 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7274 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7275 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7276 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7277 { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, },7278 { -1, -1, 1, 8, 2, -1, 9, -1, -1, -1, 0, -1, 1, 7, -1, -1, -1, 0, 5, },7279 { -1, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, 5, },7169 { -1, -1, , }, 7170 { -1, -1, , }, 7171 { -1, -1, , }, 7172 { -1, -1, , }, 7173 { -1, -1, , }, 7174 { -1, -1, , }, 7175 { -1, -1, , }, 7176 { -1, -1, , }, 7177 { -1, -1, , }, 7178 { -1, -1, , }, 7179 { -1, -1, , }, 7180 { -1, -1, , }, 7181 { -1, -1, , }, 7182 { -1, -1, , }, 7183 { -1, -1, , }, 7184 { -1, -1, , }, 7185 { -1, -1, , }, 7186 { -1, -1, , }, 7187 { -1, -1, , }, 7188 { -1, -1, , }, 7189 { -1, -1, , }, 7190 { -1, -1, , }, 7191 { -1, -1, , }, 7192 { -1, -1, , }, 7193 { -1, -1, , }, 7194 { -1, -1, , }, 7280 7195 }, 7281 7196 { 7282 { -1, 6, 4, 1, 5, 10, 2, -1, 9, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7283 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7284 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7285 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7286 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7287 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7288 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7289 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7290 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7291 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7292 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7293 { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, },7294 { -1, 3, 1, -1, 2, 7, -1, -1, 6, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7295 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7296 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7297 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7298 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7299 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7300 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7301 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7302 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7303 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7304 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7305 { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, },7306 { -1, 3, 1, 5, 2, -1, 6, -1, -1, -1, 0, -1, 1, 4, -1, -1, -1, 0, -1, },7307 { -1, 3, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, -1, },7197 { -1, , -1, }, 7198 { -1, , -1, }, 7199 { -1, , -1, }, 7200 { -1, , -1, }, 7201 { -1, , -1, }, 7202 { -1, , -1, }, 7203 { -1, , -1, }, 7204 { -1, , -1, }, 7205 { -1, , -1, }, 7206 { -1, , -1, }, 7207 { -1, , -1, }, 7208 { -1, , -1, }, 7209 { -1, , -1, }, 7210 { -1, , -1, }, 7211 { -1, , -1, }, 7212 { -1, , -1, }, 7213 { -1, , -1, }, 7214 { -1, , -1, }, 7215 { -1, , -1, }, 7216 { -1, , -1, }, 7217 { -1, , -1, }, 7218 { -1, , -1, }, 7219 { -1, , -1, }, 7220 { -1, , -1, }, 7221 { -1, , -1, }, 7222 { -1, , -1, }, 7308 7223 }, 7309 7224 { 7310 { 2, -1, 4, 1, 5, 10, 2, -1, 9, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7311 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7312 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7313 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7314 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7315 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7316 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7317 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7318 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7319 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7320 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7321 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7322 { 1, -1, 1, -1, 2, 7, -1, -1, 6, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7323 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7324 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7325 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7326 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7327 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7328 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7329 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7330 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7331 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7332 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7333 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7334 { 1, -1, 1, 5, 2, -1, 6, -1, -1, -1, 0, -1, -1, 4, 3, -1, -1, 0, -1, },7335 { 0, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, -1, },7225 { 2, -1, , -1, }, 7226 { 2, -1, , -1, }, 7227 { 2, -1, , -1, }, 7228 { 2, -1, , -1, }, 7229 { 2, -1, , -1, }, 7230 { 2, -1, , -1, }, 7231 { 2, -1, , -1, }, 7232 { 2, -1, , -1, }, 7233 { 2, -1, , -1, }, 7234 { 2, -1, , -1, }, 7235 { 2, -1, , -1, }, 7236 { 2, -1, , -1, }, 7237 { 1, -1, , -1, }, 7238 { 1, -1, , -1, }, 7239 { 1, -1, , -1, }, 7240 { 1, -1, , -1, }, 7241 { 1, -1, , -1, }, 7242 { 1, -1, , -1, }, 7243 { 1, -1, , -1, }, 7244 { 1, -1, , -1, }, 7245 { 1, -1, , -1, }, 7246 { 1, -1, , -1, }, 7247 { 1, -1, , -1, }, 7248 { 1, -1, , -1, }, 7249 { 1, -1, , -1, }, 7250 { 0, -1, , -1, }, 7336 7251 }, 7337 7252 { 7338 { 2, -1, 4, 1, 5, 10, 2, -1, 9, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7339 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7340 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7341 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7342 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7343 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7344 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7345 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7346 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7347 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7348 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7349 { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, },7350 { 1, -1, 1, -1, 2, 7, -1, -1, 6, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7351 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7352 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7353 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7354 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7355 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7356 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7357 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7358 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7359 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7360 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7361 { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, },7362 { 1, -1, 1, 5, 2, -1, 6, -1, -1, -1, 0, -1, -1, 4, 3, -1, -1, 0, -1, },7363 { 0, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, -1, },7253 { 2, -1, , -1, }, 7254 { 2, -1, , -1, }, 7255 { 2, -1, , -1, }, 7256 { 2, -1, , -1, }, 7257 { 2, -1, , -1, }, 7258 { 2, -1, , -1, }, 7259 { 2, -1, , -1, }, 7260 { 2, -1, , -1, }, 7261 { 2, -1, , -1, }, 7262 { 2, -1, , -1, }, 7263 { 2, -1, , -1, }, 7264 { 2, -1, , -1, }, 7265 { 1, -1, , -1, }, 7266 { 1, -1, , -1, }, 7267 { 1, -1, , -1, }, 7268 { 1, -1, , -1, }, 7269 { 1, -1, , -1, }, 7270 { 1, -1, , -1, }, 7271 { 1, -1, , -1, }, 7272 { 1, -1, , -1, }, 7273 { 1, -1, , -1, }, 7274 { 1, -1, , -1, }, 7275 { 1, -1, , -1, }, 7276 { 1, -1, , -1, }, 7277 { 1, -1, , -1, }, 7278 { 0, -1, , -1, }, 7364 7279 }, 7365 7280 }; … … 7367 7282 static int mask_variable_locations[num_fragment_masks][num_fragment_variables] = { 7368 7283 { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, 7369 { -1, -1, 2, -1, 3, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, },7284 { -1, -1, , -1, }, 7370 7285 }; 7371 7286 -
trunk/src/opengl/util/generator.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information ([email protected]) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation ([email protected]) 5 6 ** 6 7 ** This file is part of the QtOpenGL module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you 37 ** @nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 49 49 50 50 #include <QtDebug> 51 51 52 52 53 QT_BEGIN_NAMESPACE 53 54 54 55 QT_USE_NAMESPACE 56 57 55 58 56 59 typedef QPair<QString, QString> QStringPair; … … 117 120 118 121 if (lineStream.atEnd()) { 119 qDebug() << "Error in file" << confFile << "(" << enumerator << ")";122 qDebug() << "Error in file" << confFile << ; 120 123 exit(0); 121 124 } … … 243 246 } 244 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 245 272 void writeIncludeFile(const QSet<QString> &variables, 246 273 const QList<QStringPair> &brushes, … … 257 284 QTextStream out(&includeFile); 258 285 259 QLatin1String tab(" "); 260 261 out << "#ifndef FRAGMENTPROGRAMS_H\n" 262 << "#define FRAGMENTPROGRAMS_H\n\n"; 263 264 out << "enum FragmentVariable {\n"; 265 foreach (QString str, variables) 266 out << tab << "VAR_" << str.toUpper() << ",\n"; 267 out << "};\n\n"; 268 269 out << "enum FragmentBrushType {\n"; 270 foreach (QStringPair brush, brushes) 271 out << tab << brush.first << ",\n"; 272 out << "};\n\n"; 273 274 out << "enum FragmentCompositionModeType {\n"; 275 foreach (QStringPair mode, compositionModes) 276 out << tab << mode.first << ",\n"; 277 out << "};\n\n"; 278 279 out << "enum FragmentMaskType {\n"; 280 foreach (QStringPair mask, masks) 281 out << tab << mask.first << ",\n"; 282 out << "};\n\n"; 286 QLatin1String tab(TAB); 287 288 out << "/****************************************************************************\n" 289 "**\n" 290 "** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).\n" 291 "** All rights reserved.\n" 292 "** Contact: Nokia Corporation ([email protected])\n" 293 "**\n" 294 "** This file is part of the QtOpenGL module of the Qt Toolkit.\n" 295 "**\n" 296 "** $QT_BEGIN_LICENSE:LGPL$\n" 297 "** Commercial Usage\n" 298 "** Licensees holding valid Qt Commercial licenses may use this file in\n" 299 "** accordance with the Qt Commercial License Agreement provided with the\n" 300 "** Software or, alternatively, in accordance with the terms contained in\n" 301 "** a written agreement between you and Nokia.\n" 302 "**\n" 303 "** GNU Lesser General Public License Usage\n" 304 "** Alternatively, this file may be used under the terms of the GNU Lesser\n" 305 "** General Public License version 2.1 as published by the Free Software\n" 306 "** Foundation and appearing in the file LICENSE.LGPL included in the\n" 307 "** packaging of this file. Please review the following information to\n" 308 "** ensure the GNU Lesser General Public License version 2.1 requirements\n" 309 "** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.\n" 310 "**\n" 311 "** In addition, as a special exception, Nokia gives you certain additional\n" 312 "** rights. These rights are described in the Nokia Qt LGPL Exception\n" 313 "** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.\n" 314 "**\n" 315 "** GNU General Public License Usage\n" 316 "** Alternatively, this file may be used under the terms of the GNU\n" 317 "** General Public License version 3.0 as published by the Free Software\n" 318 "** Foundation and appearing in the file LICENSE.GPL included in the\n" 319 "** packaging of this file. Please review the following information to\n" 320 "** ensure the GNU General Public License version 3.0 requirements will be\n" 321 "** met: http://www.gnu.org/copyleft/gpl.html.\n" 322 "**\n" 323 "** If you have questions regarding the use of this file, please contact\n" 324 "** Nokia at [email protected].\n" 325 "** $QT_END_LICENSE$\n" 326 "**\n" 327 "****************************************************************************/\n" 328 "\n" 329 "#ifndef FRAGMENTPROGRAMS_P_H\n" 330 "#define FRAGMENTPROGRAMS_P_H\n" 331 "\n" 332 "//\n" 333 "// W A R N I N G\n" 334 "// -------------\n" 335 "//\n" 336 "// This file is not part of the Qt API. It exists purely as an\n" 337 "// implementation detail. This header file may change from version to\n" 338 "// version without notice, or even be removed.\n" 339 "//\n" 340 "// We mean it.\n" 341 "//\n" 342 "\n"; 343 344 writeVariablesEnum(out, "FragmentVariable", variables); 345 writeTypesEnum(out, "FragmentBrushType", brushes); 346 writeTypesEnum(out, "FragmentCompositionModeType", compositionModes); 347 writeTypesEnum(out, "FragmentMaskType", masks); 283 348 284 349 out << "static const unsigned int num_fragment_variables = " << variables.size() << ";\n\n"; -
trunk/src/opengl/util/generator.pro
r2 r561 10 10 # Input 11 11 SOURCES += generator.cpp 12 13 -
trunk/src/opengl/util/glsl_to_include.sh
r2 r561 1 1 #! /bin/sh 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 2 42 3 43 # Compile a .glsl file to a file that can be included in a C++ program -
trunk/src/opengl/util/masks.conf
r2 r561 1 1 FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA trap_exact_aa.glsl 2 2 FRAGMENT_PROGRAM_MASK_ELLIPSE_AA ellipse_aa.glsl 3 #FRAGMENT_PROGRAM_MASK_ELLIPSE ellipse.glsl -
trunk/src/opengl/util/pattern_brush.glsl
r2 r561 18 18 coords *= inv_brush_texture_size; 19 19 20 coords.y = -coords.y; 21 22 float alpha = texture2D(brush_texture, coords).r; 20 float alpha = 1.0 - texture2D(brush_texture, coords).r; 23 21 24 22 return gl_Color * alpha; -
trunk/src/opengl/util/simple_porter_duff.glsl
r2 r561 8 8 result.xyz = porterduff_ab.x * src.xyz * dst.a 9 9 + porterduff_ab.y * dst.xyz * src.a 10 + porterduff_xyz.y * src.xyz * (1 - dst.a)11 + porterduff_xyz.z * dst.xyz * (1 - src.a);10 + porterduff_xyz.y * src.xyz * (1 - dst.a) 11 + porterduff_xyz.z * dst.xyz * (1 - src.a); 12 12 13 result.a = dot(porterduff_xyz, vec3(src.a * dst.a, src.a * (1 - dst.a), dst.a * (1- src.a)));13 result.a = dot(porterduff_xyz, vec3(src.a * dst.a, src.a * (1 - src.a))); 14 14 15 15 return result; -
trunk/src/opengl/util/texture_brush.glsl
r2 r561 18 18 coords *= inv_brush_texture_size; 19 19 20 coords.y = -coords.y;21 22 20 return texture2D(brush_texture, coords); 23 21 } -
trunk/src/opengl/util/trap_exact_aa.glsl
r2 r561 15 15 16 16 // transform right line to left to be able to use same calculations for both 17 vecX.zw = 2 * gl_FragCoord.x - vecX.zw;17 vecX.zw = 2 * gl_FragCoord.x - vecX.zw; 18 18 19 19 vec2 topX = vec2(vecX.x, vecX.z); … … 34 34 vec2 temp = mix(area - 0.5 * (right - bottomXTemp) * (intersectY.yw - bottom), // left < bottom < right < top 35 35 (0.5 * (topXTemp + bottomXTemp) - left) * area, // left < bottom < top < right 36 step(topXTemp, right ));36 step(topXTemp, right)); 37 37 38 38 vec2 excluded = 0.5 * (top - intersectY.xz) * (topXTemp - left); // bottom < left < top < right 39 39 40 40 excluded = mix((top - 0.5 * (intersectY.yw + intersectY.xz)) * (right - left), // bottom < left < right < top 41 excluded, step(topXTemp, right ));41 excluded, step(topXTemp, right)); 42 42 43 43 excluded = mix(temp, // left < bottom < right (see calculation of temp) 44 excluded, step(bottomXTemp, left ));44 excluded, step(bottomXTemp, left)); 45 45 46 46 excluded = mix(vec2(area, area), // right < bottom < top 47 excluded, step(bottomXTemp, right ));47 excluded, step(bottomXTemp, right)); 48 48 49 49 excluded *= step(left, topXTemp); … … 54 54 void main() 55 55 { 56 gl_FragColor = quad_aa() ;56 gl_FragColor = quad_aa(); 57 57 } 58 58
Note:
See TracChangeset
for help on using the changeset viewer.
