diff options
20 files changed, 1009 insertions, 1063 deletions
diff --git a/src/opengl/util/composition_mode_colorburn.glsl b/src/opengl/util/composition_mode_colorburn.glsl index a5a153f..c913b97 100644 --- a/src/opengl/util/composition_mode_colorburn.glsl +++ b/src/opengl/util/composition_mode_colorburn.glsl @@ -5,8 +5,8 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - result.rgb = mix(src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a), - 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), + result.rgb = mix(src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a), + src.a * (src.rgb * dst.a + dst.rgb * src.a - src.a * dst.a) / max(src.rgb, 0.00001) + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a), step(src.a * dst.a, src.rgb * dst.a + dst.rgb * src.a)); result.a = src.a + dst.a - src.a * dst.a; return result; diff --git a/src/opengl/util/composition_mode_colordodge.glsl b/src/opengl/util/composition_mode_colordodge.glsl index c194441..b75e83c 100644 --- a/src/opengl/util/composition_mode_colordodge.glsl +++ b/src/opengl/util/composition_mode_colordodge.glsl @@ -5,8 +5,8 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - vec3 temp = src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a); - result.rgb = mix(dst.rgb * src.a / max(1 - src.rgb / max(src.a, 0.000001), 0.000001) + temp, + vec3 temp = src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a); + result.rgb = mix(dst.rgb * src.a / max(1.0 - src.rgb / max(src.a, 0.000001), 0.000001) + temp, src.a * dst.a + temp, step(src.a * dst.a, src.rgb * dst.a + dst.rgb * src.a)); diff --git a/src/opengl/util/composition_mode_darken.glsl b/src/opengl/util/composition_mode_darken.glsl index c1e83fd..8bbb82b 100644 --- a/src/opengl/util/composition_mode_darken.glsl +++ b/src/opengl/util/composition_mode_darken.glsl @@ -3,7 +3,7 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - result.rgb = min(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a); + result.rgb = min(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a); result.a = src.a + dst.a - src.a * dst.a; return result; } diff --git a/src/opengl/util/composition_mode_difference.glsl b/src/opengl/util/composition_mode_difference.glsl index ca13ce7..3c46ec7 100644 --- a/src/opengl/util/composition_mode_difference.glsl +++ b/src/opengl/util/composition_mode_difference.glsl @@ -3,7 +3,7 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - result.rgb = src.rgb + dst.rgb - 2 * min(src.rgb * dst.a, dst.rgb * src.a); + result.rgb = src.rgb + dst.rgb - 2.0 * min(src.rgb * dst.a, dst.rgb * src.a); result.a = src.a + dst.a - src.a * dst.a; return result; } diff --git a/src/opengl/util/composition_mode_exclusion.glsl b/src/opengl/util/composition_mode_exclusion.glsl index ccd1183..59c2da9 100644 --- a/src/opengl/util/composition_mode_exclusion.glsl +++ b/src/opengl/util/composition_mode_exclusion.glsl @@ -3,7 +3,7 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - 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); + result.rgb = (src.rgb * dst.a + dst.rgb * src.a - 2.0 * src.rgb * dst.rgb) + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a); result.a = src.a + dst.a - src.a * dst.a; return result; } diff --git a/src/opengl/util/composition_mode_hardlight.glsl b/src/opengl/util/composition_mode_hardlight.glsl index 9dd4de3..4ea3550 100644 --- a/src/opengl/util/composition_mode_hardlight.glsl +++ b/src/opengl/util/composition_mode_hardlight.glsl @@ -5,9 +5,9 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - result.rgb = mix(2 * src.rgb * dst.rgb + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a), - src.a * dst.a - 2 * (dst.a - dst.rgb) * (src.a - src.rgb) + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a), - step(src.a, 2 * src.rgb)); + result.rgb = mix(2.0 * src.rgb * dst.rgb + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a), + src.a * dst.a - 2.0 * (dst.a - dst.rgb) * (src.a - src.rgb) + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a), + step(src.a, 2.0 * src.rgb)); result.a = src.a + dst.a - src.a * dst.a; return result; diff --git a/src/opengl/util/composition_mode_lighten.glsl b/src/opengl/util/composition_mode_lighten.glsl index 1fbd27a..13ef507 100644 --- a/src/opengl/util/composition_mode_lighten.glsl +++ b/src/opengl/util/composition_mode_lighten.glsl @@ -3,7 +3,7 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - result.rgb = max(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a); + result.rgb = max(src.rgb * dst.a, dst.rgb * src.a) + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a); result.a = src.a + dst.a - src.a * dst.a; return result; } diff --git a/src/opengl/util/composition_mode_multiply.glsl b/src/opengl/util/composition_mode_multiply.glsl index 268345a..f90b7f0 100644 --- a/src/opengl/util/composition_mode_multiply.glsl +++ b/src/opengl/util/composition_mode_multiply.glsl @@ -3,7 +3,7 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - result.rgb = src.rgb * dst.rgb + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a); + result.rgb = src.rgb * dst.rgb + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a); result.a = src.a + dst.a - src.a * dst.a; return result; } diff --git a/src/opengl/util/composition_mode_overlay.glsl b/src/opengl/util/composition_mode_overlay.glsl index a9b7226..f621bde 100644 --- a/src/opengl/util/composition_mode_overlay.glsl +++ b/src/opengl/util/composition_mode_overlay.glsl @@ -5,9 +5,9 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; - result.rgb = mix(2 * src.rgb * dst.rgb + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a), - src.a * dst.a - 2 * (dst.a - dst.rgb) * (src.a - src.rgb) + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a), - step(dst.a, 2 * dst.rgb)); + result.rgb = mix(2.0 * src.rgb * dst.rgb + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a), + src.a * dst.a - 2.0 * (dst.a - dst.rgb) * (src.a - src.rgb) + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a), + step(dst.a, 2.0 * dst.rgb)); result.a = src.a + dst.a - src.a * dst.a; return result; } diff --git a/src/opengl/util/composition_mode_softlight.glsl b/src/opengl/util/composition_mode_softlight.glsl index 0237827..4777b74 100644 --- a/src/opengl/util/composition_mode_softlight.glsl +++ b/src/opengl/util/composition_mode_softlight.glsl @@ -8,11 +8,11 @@ vec4 composite(vec4 src, vec4 dst) { vec4 result; float da = max(dst.a, 0.00001); - result.rgb = mix(dst.rgb * (src.a - (1 - dst.rgb / da) * (2 * src.rgb - src.a)), - mix(dst.rgb * (src.a - (1 - dst.rgb / da) * (2 * src.rgb - src.a) * (3 - 8 * dst.rgb / da)), - (dst.rgb * src.a + (sqrt(dst.rgb / da) * dst.a - dst.rgb) * (2 * src.rgb - src.a)), - step(dst.a, 8 * dst.rgb)), - step(src.a, 2 * src.rgb)) + src.rgb * (1 - dst.a) + dst.rgb * (1 - src.a); + result.rgb = mix(dst.rgb * (src.a - (1.0 - dst.rgb / da) * (2.0 * src.rgb - src.a)), + mix(dst.rgb * (src.a - (1.0 - dst.rgb / da) * (2.0 * src.rgb - src.a) * (3.0 - 8.0 * dst.rgb / da)), + (dst.rgb * src.a + (sqrt(dst.rgb / da) * dst.a - dst.rgb) * (2.0 * src.rgb - src.a)), + step(dst.a, 8.0 * dst.rgb)), + step(src.a, 2.0 * src.rgb)) + src.rgb * (1.0 - dst.a) + dst.rgb * (1.0 - src.a); result.a = src.a + dst.a - src.a * dst.a; return result; } diff --git a/src/opengl/util/conical_brush.glsl b/src/opengl/util/conical_brush.glsl index 83ee2f5..b3ec1d7 100644 --- a/src/opengl/util/conical_brush.glsl +++ b/src/opengl/util/conical_brush.glsl @@ -20,7 +20,7 @@ vec4 brush() /* float val = fmod((atan2(-A.y, A.x) + angle) / (2.0 * M_PI), 1); */ if (abs(A.y) == abs(A.x)) A.y += 0.002; - float t = (atan2(-A.y, A.x) + angle) / (2.0 * M_PI); + float t = (atan(-A.y, A.x) + angle) / (2.0 * M_PI); float val = t - floor(t); return texture1D(palette, val); } diff --git a/src/opengl/util/ellipse.glsl b/src/opengl/util/ellipse.glsl deleted file mode 100644 index 860ae77..0000000 --- a/src/opengl/util/ellipse.glsl +++ /dev/null @@ -1,6 +0,0 @@ -#include "ellipse_functions.glsl" - -void main() -{ - gl_FragColor = ellipse(); -} diff --git a/src/opengl/util/ellipse_aa.glsl b/src/opengl/util/ellipse_aa.glsl index f7a6454..257e3bb 100644 --- a/src/opengl/util/ellipse_aa.glsl +++ b/src/opengl/util/ellipse_aa.glsl @@ -1,6 +1,58 @@ -#include "ellipse_functions.glsl" +uniform vec3 inv_matrix_m0; +uniform vec3 inv_matrix_m1; +uniform vec3 inv_matrix_m2; + +uniform vec2 ellipse_offset; + +// ellipse equation + +// s^2/a^2 + t^2/b^2 = 1 +// +// implicit equation: +// g(s,t) = 1 - s^2/r_s^2 - t^2/r_t^2 + +// distance from ellipse: +// grad = [dg/dx dg/dy] +// d(s, t) ~= g(s, t) / |grad| + +// dg/dx = dg/ds * ds/dx + dg/dt * dt/dx +// dg/dy = dg/ds * ds/dy + dg/dt * dt/dy + +float ellipse_aa() +{ + mat3 mat; + + mat[0] = inv_matrix_m0; + mat[1] = inv_matrix_m1; + mat[2] = inv_matrix_m2; + + vec3 hcoords = mat * vec3(gl_FragCoord.xy + ellipse_offset, 1); + float inv_w = 1.0 / hcoords.z; + vec2 st = hcoords.xy * inv_w; + + vec4 xy = vec4(mat[0].xy, mat[1].xy); + vec2 h = vec2(mat[0].z, mat[1].z); + + vec4 dstdxy = (xy.xzyw - h.xyxy * st.xxyy) * inv_w; + + //dstdxy.x = (mat[0].x - mat[0].z * st.x) * inv_w; // ds/dx + //dstdxy.y = (mat[1].x - mat[1].z * st.x) * inv_w; // ds/dy + //dstdxy.z = (mat[0].y - mat[0].z * st.y) * inv_w; // dt/dx + //dstdxy.w = (mat[1].y - mat[1].z * st.y) * inv_w; // dt/dy + + vec2 inv_r = gl_TexCoord[0].xy; + vec2 n = st * inv_r; + float g = 1.0 - dot(n, n); + + vec2 dgdst = -2.0 * n * inv_r; + + vec2 grad = vec2(dot(dgdst, dstdxy.xz), + dot(dgdst, dstdxy.yw)); + + return smoothstep(-0.5, 0.5, g * inversesqrt(dot(grad, grad))); +} void main() { - gl_FragColor = ellipse_aa(); + gl_FragColor = ellipse_aa().xxxx; } diff --git a/src/opengl/util/ellipse_aa_copy.glsl b/src/opengl/util/ellipse_aa_copy.glsl deleted file mode 100644 index 5372f58..0000000 --- a/src/opengl/util/ellipse_aa_copy.glsl +++ /dev/null @@ -1,11 +0,0 @@ -uniform vec2 r; // r_x and r_y - -uniform sampler2D texture; -uniform vec2 inv_texture_size; - -#include "ellipse_functions.glsl" - -void main() -{ - gl_FragColor = ellipse_aa() * texture2D(texture, gl_FragCoord.xy * inv_texture_size); -} diff --git a/src/opengl/util/ellipse_aa_radial.glsl b/src/opengl/util/ellipse_aa_radial.glsl deleted file mode 100644 index 0878f99..0000000 --- a/src/opengl/util/ellipse_aa_radial.glsl +++ /dev/null @@ -1,24 +0,0 @@ -#include "ellipse_functions.glsl" - -uniform sampler1D palette; -uniform vec2 fmp; -uniform float fmp2_m_radius2; -uniform vec4 inv_matrix; -uniform vec2 inv_matrix_offset; - -void main() -{ - // float2 A = frag_coord.xy;//mul(inv_matrix, frag_coord.xy) + inv_matrix_offset; - mat2 mat; - mat[0][0] = inv_matrix.x; - mat[0][1] = inv_matrix.y; - mat[1][0] = inv_matrix.z; - mat[1][1] = inv_matrix.w; - vec2 A = gl_FragCoord.xy * mat + inv_matrix_offset; - vec2 B = fmp; - float a = fmp2_m_radius2; - float b = 2.0*dot(A, B); - float c = -dot(A, A); - float val = (-b + sqrt(b*b - 4.0*a*c)) / (2.0*a); - gl_FragColor = texture1D(palette, val) * ellipse_aa(); -} diff --git a/src/opengl/util/ellipse_functions.glsl b/src/opengl/util/ellipse_functions.glsl deleted file mode 100644 index eed18e8..0000000 --- a/src/opengl/util/ellipse_functions.glsl +++ /dev/null @@ -1,63 +0,0 @@ -uniform vec3 inv_matrix_m0; -uniform vec3 inv_matrix_m1; -uniform vec3 inv_matrix_m2; - -uniform vec2 ellipse_offset; - -float ellipse() -{ - vec2 st = gl_TexCoord[0].st; - - if (dot(st, st) > 1) - discard; - - return 1.0; -} - -// ellipse equation - -// s^2/a^2 + t^2/b^2 = 1 -// -// implicit equation: -// g(s,t) = 1 - s^2/r_s^2 - t^2/r_t^2 - -// distance from ellipse: -// grad = [dg/dx dg/dy] -// d(s, t) ~= g(s, t) / |grad| - -// dg/dx = dg/ds * ds/dx + dg/dt * dt/dx -// dg/dy = dg/ds * ds/dy + dg/dt * dt/dy - -float ellipse_aa() -{ - mat3 mat; - - mat[0] = inv_matrix_m0; - mat[1] = inv_matrix_m1; - mat[2] = inv_matrix_m2; - - vec3 hcoords = mat * vec3(gl_FragCoord.xy + ellipse_offset, 1); - float inv_w = 1.0 / hcoords.z; - vec2 st = hcoords.xy * inv_w; - - vec4 xy = vec4(mat[0].xy, mat[1].xy); - vec2 h = vec2(mat[0].z, mat[1].z); - - vec4 dstdxy = (xy.xzyw - h.xyxy * st.xxyy) * inv_w; - - //dstdxy.x = (mat[0].x - mat[0].z * st.x) * inv_w; // ds/dx - //dstdxy.y = (mat[1].x - mat[1].z * st.x) * inv_w; // ds/dy - //dstdxy.z = (mat[0].y - mat[0].z * st.y) * inv_w; // dt/dx - //dstdxy.w = (mat[1].y - mat[1].z * st.y) * inv_w; // dt/dy - - vec2 inv_r = gl_TexCoord[0].xy; - vec2 n = st * inv_r; - float g = 1.0 - dot(n, n); - - vec2 dgdst = -2.0 * n * inv_r; - - vec2 grad = vec2(dot(dgdst, dstdxy.xz), - dot(dgdst, dstdxy.yw)); - - return smoothstep(-0.5, 0.5, g * inversesqrt(dot(grad, grad))); -} diff --git a/src/opengl/util/fragmentprograms_p.h b/src/opengl/util/fragmentprograms_p.h index f61f275..89cd182 100644 --- a/src/opengl/util/fragmentprograms_p.h +++ b/src/opengl/util/fragmentprograms_p.h @@ -132,58 +132,57 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA = "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "ADD R4.x, fragment.position, c[0];\n" + "ADD R3.z, fragment.position.x, c[0].x;\n" "ADD R0.y, fragment.position, -c[0].x;\n" - "MAX R3.w, fragment.texcoord[0].y, R0.y;\n" + "MAX R4.x, fragment.texcoord[0].y, R0.y;\n" "ADD R0.x, fragment.position.y, c[0];\n" - "MIN R3.z, R0.x, fragment.texcoord[0].x;\n" + "MIN R3.w, R0.x, fragment.texcoord[0].x;\n" "ADD R2.z, fragment.position.x, -c[0].x;\n" - "MOV R0.yw, R3.w;\n" - "MOV R0.xz, R3.z;\n" - "MAD R1, fragment.texcoord[1].xxzz, R0, fragment.texcoord[1].yyww;\n" - "MAD R1.zw, fragment.position.x, c[0].y, -R1;\n" - "MOV R0.z, R1.x;\n" - "MOV R0.w, R1.z;\n" - "MOV R0.y, R1.w;\n" - "MOV R0.x, R1.y;\n" - "MIN R2.xy, R0.zwzw, R0;\n" - "SGE R1.xy, R0, R0.zwzw;\n" - "ADD R1.zw, -fragment.texcoord[0], -fragment.texcoord[0];\n" - "MAX R0.xy, R0.zwzw, R0;\n" - "MAD R3.xy, R1, R1.zwzw, fragment.texcoord[0].zwzw;\n" - "MOV R2.w, R4.x;\n" - "ADD R1, -R2.xxyy, R2.zwzw;\n" - "MAD R1, R1, R3.xxyy, R3.w;\n" - "ADD R3.xy, R1.ywzw, R1.xzzw;\n" - "ADD R4.zw, R3.z, -R1.xyxz;\n" - "ADD R1.zw, -R3.w, R1.xyyw;\n" - "ADD R1.xy, R4.x, -R2;\n" - "MUL R1.xy, R1, R1.zwzw;\n" - "MAD R3.xy, -R3, c[0].x, R3.z;\n" - "ADD R2.w, R4.x, -R2.z;\n" - "MUL R0.zw, R3.xyxy, R2.w;\n" - "ADD R2.w, R3.z, -R3;\n" - "ADD R3.xy, -R2.z, R0;\n" + "MOV R2.w, R3.z;\n" + "MOV R0.yw, R4.x;\n" + "MOV R0.xz, R3.w;\n" + "MAD R0, fragment.texcoord[1].xxzz, R0, fragment.texcoord[1].yyww;\n" + "MAD R0.zw, fragment.position.x, c[0].y, -R0;\n" + "MOV R2.x, R0;\n" + "MOV R2.y, R0.z;\n" + "MOV R1.w, R0;\n" + "MOV R1.z, R0.y;\n" + "MIN R1.xy, R2, R1.zwzw;\n" + "SGE R0.xy, R1.zwzw, R2;\n" + "ADD R0.zw, -fragment.texcoord[0], -fragment.texcoord[0];\n" + "MAD R3.xy, R0, R0.zwzw, fragment.texcoord[0].zwzw;\n" + "ADD R0, -R1.xxyy, R2.zwzw;\n" + "MAD R0, R0, R3.xxyy, R4.x;\n" + "ADD R3.xy, R0.ywzw, R0.xzzw;\n" + "ADD R4.zw, R3.w, -R0.xyxz;\n" + "ADD R0.zw, -R4.x, R0.xyyw;\n" + "ADD R0.xy, R3.z, -R1;\n" + "MAX R1.zw, R2.xyxy, R1;\n" + "MUL R0.xy, R0, R0.zwzw;\n" + "MAD R3.xy, -R3, c[0].x, R3.w;\n" + "ADD R2.w, R3.z, -R2.z;\n" + "MUL R2.xy, R3, R2.w;\n" + "ADD R2.w, R3, -R4.x;\n" + "ADD R3.xy, -R2.z, R1.zwzw;\n" "MUL R3.xy, R4.zwzw, R3;\n" - "ADD R4.zw, R2.xyxy, R0.xyxy;\n" - "MAD R1.zw, R4, c[0].x, -R2.z;\n" - "MAD R1.xy, -R1, c[0].x, R2.w;\n" - "MAD R4.zw, R2.w, R1, -R1.xyxy;\n" - "SGE R1.zw, R4.x, R0.xyxy;\n" - "MAD R3.xy, R3, c[0].x, -R0.zwzw;\n" - "MAD R1.xy, R1.zwzw, R4.zwzw, R1;\n" - "MAD R0.zw, R1, R3.xyxy, R0;\n" - "ADD R1.zw, R0, -R1.xyxy;\n" - "SGE R0.zw, R2.z, R2.xyxy;\n" - "MAD R0.zw, R0, R1, R1.xyxy;\n" - "ADD R0.zw, -R2.w, R0;\n" - "SGE R1.xy, R4.x, R2;\n" - "MAD R0.zw, R1.xyxy, R0, R2.w;\n" - "SGE R0.xy, R0, R2.z;\n" - "MUL R0.xy, R0.zwzw, R0;\n" - "ADD R0.x, R2.w, -R0;\n" - "SGE R0.z, R3, R3.w;\n" - "ADD R0.x, R0, -R0.y;\n" + "ADD R4.zw, R1.xyxy, R1;\n" + "MAD R0.zw, R4, c[0].x, -R2.z;\n" + "MAD R0.xy, -R0, c[0].x, R2.w;\n" + "MAD R4.zw, R0, R2.w, -R0.xyxy;\n" + "SGE R0.zw, R3.z, R1;\n" + "MAD R0.xy, R0.zwzw, R4.zwzw, R0;\n" + "MAD R3.xy, R3, c[0].x, -R2;\n" + "MAD R0.zw, R0, R3.xyxy, R2.xyxy;\n" + "ADD R2.xy, R0.zwzw, -R0;\n" + "SGE R0.zw, R2.z, R1.xyxy;\n" + "MAD R0.xy, R0.zwzw, R2, R0;\n" + "SGE R0.zw, R1, R2.z;\n" + "ADD R0.xy, R0, -R2.w;\n" + "SGE R1.xy, R3.z, R1;\n" + "MAD R0.xy, R1, R0, R2.w;\n" + "MAD R0.x, -R0, R0.z, R2.w;\n" + "SGE R0.z, R3.w, R4.x;\n" + "MAD R0.x, -R0.y, R0.w, R0;\n" "MUL result.color, R0.x, R0.z;\n" "END\n" ; @@ -201,27 +200,27 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_MASK_ELLIPSE_AA = "MAD R0.xyz, R0.x, c[0], R1;\n" "ADD R0.xyz, R0, c[2];\n" "RCP R2.z, R0.z;\n" - "MUL R1.zw, R0.xyxy, R2.z;\n" - "MUL R2.xy, R1.zwzw, fragment.texcoord[0];\n" - "MOV R1.x, c[0].z;\n" - "MOV R1.y, c[1].z;\n" - "MOV R0.xy, c[0];\n" - "MOV R0.zw, c[1].xyxy;\n" - "MAD R0, R1.zzww, -R1.xyxy, R0.xzyw;\n" + "MUL R0.zw, R0.xyxy, R2.z;\n" + "MUL R2.xy, R0.zwzw, fragment.texcoord[0];\n" + "MOV R1.xy, c[0];\n" + "MOV R1.zw, c[1].xyxy;\n" + "MOV R0.x, c[0].z;\n" + "MOV R0.y, c[1].z;\n" + "MAD R0, R0.zzww, -R0.xyxy, R1.xzyw;\n" "MUL R1.xy, R2, fragment.texcoord[0];\n" "MUL R0, R2.z, R0;\n" "MUL R1.xy, R1, c[4].x;\n" "MUL R1.zw, R1.xyxy, R0.xyxz;\n" - "MUL R0.xy, R1, R0.ywzw;\n" - "ADD R0.w, R0.x, R0.y;\n" - "MUL R0.xy, R2, R2;\n" - "ADD R0.x, R0, R0.y;\n" - "ADD R0.z, R1, R1.w;\n" - "MUL R0.zw, R0, R0;\n" + "MUL R0.zw, R1.xyxy, R0.xyyw;\n" "ADD R0.y, R0.z, R0.w;\n" - "RSQ R0.y, R0.y;\n" - "ADD R0.x, -R0, c[4].y;\n" - "MAD_SAT R0.x, R0.y, R0, -c[4].z;\n" + "ADD R0.x, R1.z, R1.w;\n" + "MUL R0.xy, R0, R0;\n" + "ADD R0.x, R0, R0.y;\n" + "MUL R0.zw, R2.xyxy, R2.xyxy;\n" + "ADD R0.z, R0, R0.w;\n" + "ADD R0.y, -R0.z, c[4];\n" + "RSQ R0.x, R0.x;\n" + "MAD_SAT R0.x, R0, R0.y, -c[4].z;\n" "MUL R0.y, -R0.x, c[4].w;\n" "ADD R0.y, R0, c[5].x;\n" "MUL R0.x, R0, R0;\n" @@ -408,13 +407,13 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R3;\n" "MUL R0.xy, fragment.position, c[1];\n" "TEX R0, R0, texture[0], 2D;\n" - "ADD R1.y, -fragment.color.primary.w, c[4].x;\n" - "MAX R1.x, fragment.color.primary.w, c[4].y;\n" - "MUL R2.xyz, R0, R1.y;\n" + "ADD R1.x, -fragment.color.primary.w, c[4];\n" + "MAX R1.y, fragment.color.primary.w, c[4];\n" + "MUL R2.xyz, R0, R1.x;\n" "ADD R1.w, -R0, c[4].x;\n" "MAD R3.xyz, fragment.color.primary, R1.w, R2;\n" - "RCP R1.x, R1.x;\n" - "MAD R1.xyz, -fragment.color.primary, R1.x, c[4].x;\n" + "RCP R1.y, R1.y;\n" + "MAD R1.xyz, -fragment.color.primary, R1.y, c[4].x;\n" "MAX R1.xyz, R1, c[4].y;\n" "MUL R2.xyz, fragment.color.primary.w, R0;\n" "MUL R1.w, fragment.color.primary, R0;\n" @@ -520,8 +519,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SOFTLIGHT = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..3],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -530,39 +529,39 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R5;\n" "MUL R0.xy, fragment.position, c[1];\n" "TEX R0, R0, texture[0], 2D;\n" - "MAX R1.x, R0.w, c[4].y;\n" + "MAX R1.x, R0.w, c[4].z;\n" "RCP R1.w, R1.x;\n" - "MUL R2.xyz, R0, R1.w;\n" - "MUL R1.xyz, -R2, c[5].x;\n" - "RSQ R2.w, R2.x;\n" - "ADD R4.xyz, R1, c[4].w;\n" + "MUL R1.xyz, R0, R1.w;\n" + "MUL R4.xyz, -R1, c[4].w;\n" + "RSQ R2.x, R1.x;\n" + "RSQ R2.z, R1.z;\n" + "RSQ R2.y, R1.y;\n" "MAD R1.xyz, -R0, R1.w, c[4].x;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "RCP R2.x, R2.w;\n" + "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R5.xyz, R0.w, R2, -R0;\n" - "MAD R2.xyz, fragment.color.primary, c[4].z, -fragment.color.primary.w;\n" - "MUL R3.xyz, R1, R2;\n" - "MAD R3.xyz, -R3, R4, fragment.color.primary.w;\n" - "MUL R4.xyz, R5, R2;\n" + "MAD R3.xyz, R0.w, R2, -R0;\n" + "MAD R2.xyz, fragment.color.primary, c[4].y, -fragment.color.primary.w;\n" + "MUL R3.xyz, R2, R3;\n" + "ADD R5.xyz, R4, c[5].x;\n" + "MUL R4.xyz, R1, R2;\n" "MAD R1.xyz, -R1, R2, fragment.color.primary.w;\n" - "MUL R3.xyz, R0, R3;\n" - "MAD R4.xyz, fragment.color.primary.w, R0, R4;\n" - "ADD R5.xyz, R4, -R3;\n" - "MUL R4.xyz, R0, c[5].x;\n" - "SGE R2.xyz, R4, R0.w;\n" - "MAD R2.xyz, R2, R5, R3;\n" + "MUL R2.xyz, fragment.color.primary, c[4].y;\n" + "MAD R5.xyz, -R4, R5, fragment.color.primary.w;\n" + "MAD R3.xyz, fragment.color.primary.w, R0, R3;\n" + "MAD R4.xyz, -R0, R5, R3;\n" + "MUL R3.xyz, R0, c[4].w;\n" + "MUL R5.xyz, R0, R5;\n" + "SGE R3.xyz, R3, R0.w;\n" + "MAD R3.xyz, R3, R4, R5;\n" + "MAD R3.xyz, -R0, R1, R3;\n" "MUL R1.xyz, R0, R1;\n" - "MUL R3.xyz, fragment.color.primary, c[4].z;\n" - "ADD R2.xyz, R2, -R1;\n" - "SGE R3.xyz, R3, fragment.color.primary.w;\n" - "MAD R1.xyz, R3, R2, R1;\n" - "ADD R1.w, -R0, c[4].x;\n" - "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" - "ADD R1.w, -fragment.color.primary, c[4].x;\n" - "MAD R2.xyz, R0, R1.w, R1;\n" + "SGE R2.xyz, R2, fragment.color.primary.w;\n" + "MAD R2.xyz, R2, R3, R1;\n" + "ADD R1.x, -R0.w, c[4];\n" + "MAD R2.xyz, fragment.color.primary, R1.x, R2;\n" + "ADD R1.x, -fragment.color.primary.w, c[4];\n" + "MAD R2.xyz, R0, R1.x, R2;\n" "ADD R1.z, fragment.color.primary.w, R0.w;\n" "MAD R2.w, -fragment.color.primary, R0, R1.z;\n" "ADD R1.xy, fragment.position, c[2];\n" @@ -862,8 +861,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SOFTLIGHT_NOMASK = "!!ARBfp1.0\n" "PARAM c[3] = { program.local[0],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -872,41 +871,41 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R5;\n" "MUL R0.xy, fragment.position, c[0];\n" "TEX R0, R0, texture[0], 2D;\n" - "MAX R1.x, R0.w, c[1].y;\n" + "MAX R1.x, R0.w, c[1].z;\n" "RCP R1.w, R1.x;\n" - "MUL R2.xyz, R0, R1.w;\n" - "MUL R1.xyz, -R2, c[2].x;\n" - "ADD R4.xyz, R1, c[1].w;\n" - "MAD R1.xyz, -R0, R1.w, c[1].x;\n" - "RSQ R2.w, R2.x;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "RCP R2.x, R2.w;\n" + "MUL R1.xyz, R0, R1.w;\n" + "MUL R4.xyz, -R1, c[1].w;\n" + "RSQ R2.x, R1.x;\n" + "RSQ R2.z, R1.z;\n" + "RSQ R2.y, R1.y;\n" + "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R5.xyz, R0.w, R2, -R0;\n" - "MAD R2.xyz, fragment.color.primary, c[1].z, -fragment.color.primary.w;\n" - "MUL R3.xyz, R1, R2;\n" - "MAD R3.xyz, -R3, R4, fragment.color.primary.w;\n" - "MUL R4.xyz, R5, R2;\n" + "MAD R3.xyz, R0.w, R2, -R0;\n" + "MAD R2.xyz, fragment.color.primary, c[1].y, -fragment.color.primary.w;\n" + "MUL R3.xyz, R2, R3;\n" + "MAD R3.xyz, fragment.color.primary.w, R0, R3;\n" + "MAD R1.xyz, -R0, R1.w, c[1].x;\n" + "ADD R5.xyz, R4, c[2].x;\n" + "MUL R4.xyz, R1, R2;\n" "MAD R1.xyz, -R1, R2, fragment.color.primary.w;\n" - "MUL R3.xyz, R0, R3;\n" - "MAD R4.xyz, fragment.color.primary.w, R0, R4;\n" - "ADD R5.xyz, R4, -R3;\n" - "MUL R4.xyz, R0, c[2].x;\n" - "SGE R2.xyz, R4, R0.w;\n" - "MAD R2.xyz, R2, R5, R3;\n" + "MAD R5.xyz, -R4, R5, fragment.color.primary.w;\n" + "MAD R4.xyz, -R0, R5, R3;\n" + "MUL R3.xyz, R0, c[1].w;\n" + "MUL R2.xyz, fragment.color.primary, c[1].y;\n" + "MUL R5.xyz, R0, R5;\n" + "SGE R3.xyz, R3, R0.w;\n" + "MAD R3.xyz, R3, R4, R5;\n" + "MAD R3.xyz, -R0, R1, R3;\n" "MUL R1.xyz, R0, R1;\n" - "MUL R3.xyz, fragment.color.primary, c[1].z;\n" - "ADD R2.xyz, R2, -R1;\n" - "SGE R3.xyz, R3, fragment.color.primary.w;\n" - "MAD R1.xyz, R3, R2, R1;\n" - "ADD R1.w, -R0, c[1].x;\n" - "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" - "ADD R1.w, fragment.color.primary, R0;\n" - "ADD R2.x, -fragment.color.primary.w, c[1];\n" - "MAD result.color.xyz, R0, R2.x, R1;\n" - "MAD result.color.w, -fragment.color.primary, R0, R1;\n" + "SGE R2.xyz, R2, fragment.color.primary.w;\n" + "MAD R2.xyz, R2, R3, R1;\n" + "ADD R1.x, -R0.w, c[1];\n" + "MAD R2.xyz, fragment.color.primary, R1.x, R2;\n" + "ADD R1.x, fragment.color.primary.w, R0.w;\n" + "ADD R1.y, -fragment.color.primary.w, c[1].x;\n" + "MAD result.color.xyz, R0, R1.y, R2;\n" + "MAD result.color.w, -fragment.color.primary, R0, R1.x;\n" "END\n" ; @@ -1086,18 +1085,18 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "ADD R0.z, R0, R0.w;\n" "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[9].x;\n" + "MOV R0.x, c[9];\n" "MUL R0.z, -R0, c[1].x;\n" + "MUL R0.z, R0, c[9].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" "ADD R3.xy, fragment.position, c[7];\n" - "MUL R0.y, R0.z, c[9];\n" - "MUL R0.x, R0, c[9];\n" - "MAD R0.z, R0.x, R0.x, -R0.y;\n" - "MOV R0.y, c[9].x;\n" + "MUL R0.w, R0.x, c[1].x;\n" "RSQ R0.z, R0.z;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "ADD R0.x, -R0, R0.z;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, R0.x, R0.y;\n" + "RCP R0.x, R0.z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.z, R0.x, R0;\n" "TEX R1, R0.z, texture[2], 1D;\n" "MUL R0.xy, fragment.position, c[6];\n" "TEX R0, R0, texture[0], 2D;\n" @@ -1126,24 +1125,24 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[9].x;\n" + "MOV R0.x, c[9];\n" "MUL R0.z, -R0, c[1].x;\n" + "MUL R0.z, R0, c[9].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" "MUL R1.xy, fragment.position, c[6];\n" "TEX R1, R1, texture[0], 2D;\n" - "MUL R0.y, R0.z, c[9];\n" - "MUL R0.x, R0, c[9];\n" - "MAD R0.z, R0.x, R0.x, -R0.y;\n" - "MOV R0.y, c[9].x;\n" + "MUL R0.w, R0.x, c[1].x;\n" "RSQ R0.z, R0.z;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "ADD R0.x, -R0, R0.z;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" + "RCP R0.x, R0.z;\n" "ADD R2.w, -R1, c[9].z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" + "TEX R0, R0, texture[2], 1D;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" @@ -1284,20 +1283,20 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[9].x;\n" + "MOV R0.x, c[9];\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[9];\n" - "MUL R0.x, R0, c[9];\n" - "MAD R0.z, R0.x, R0.x, -R0.y;\n" - "MOV R0.y, c[9].x;\n" + "MUL R0.z, R0, c[9].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" + "MUL R0.w, R0.x, c[1].x;\n" "RSQ R0.z, R0.z;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "ADD R0.x, -R0, R0.z;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" + "RCP R0.x, R0.z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" "TEX R0, R0, texture[2], 1D;\n" "MAX R1.x, R0.w, c[9].w;\n" "RCP R1.x, R1.x;\n" @@ -1351,17 +1350,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[9];\n" - "MUL R0.x, R0, c[9];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" + "MUL R0.y, R0.x, c[9].x;\n" + "MUL R0.z, R0, c[9].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.z, R0.x;\n" + "MOV R0.x, c[9];\n" + "MUL R0.w, R0.x, c[1].x;\n" "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" + "ADD R0.x, -R0.y, R0.z;\n" + "RCP R0.y, R0.w;\n" "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[9].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" "MUL R0.x, R0, R0.y;\n" "TEX R0, R0, texture[2], 1D;\n" "MUL R2.xyz, R0.w, R1;\n" @@ -1409,24 +1408,24 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[9].x;\n" + "MOV R0.x, c[9];\n" "MUL R0.z, -R0, c[1].x;\n" + "MUL R0.z, R0, c[9].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" "MUL R1.xy, fragment.position, c[6];\n" "TEX R1, R1, texture[0], 2D;\n" - "MUL R0.y, R0.z, c[9];\n" - "MUL R0.x, R0, c[9];\n" - "MAD R0.z, R0.x, R0.x, -R0.y;\n" - "MOV R0.y, c[9].x;\n" + "MUL R0.w, R0.x, c[1].x;\n" "RSQ R0.z, R0.z;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "ADD R0.x, -R0, R0.z;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" + "RCP R0.x, R0.z;\n" "ADD R2.w, -R1, c[9].z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" + "TEX R0, R0, texture[2], 1D;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" @@ -1458,7 +1457,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..8],\n" " { 2, 4, 1, 9.9999997e-006 },\n" - " { 3, 8 } };\n" + " { 8, 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -1470,65 +1469,65 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MAD R0.xyz, fragment.position.x, c[2], R0;\n" "ADD R0.xyz, R0, c[4];\n" "RCP R0.z, R0.z;\n" + "MUL R1.xy, fragment.position, c[6];\n" + "TEX R1, R1, texture[0], 2D;\n" + "MAX R0.w, R1, c[9];\n" + "RCP R2.w, R0.w;\n" + "MUL R5.xyz, R1, R2.w;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[9].x;\n" + "MOV R0.x, c[9];\n" + "RSQ R2.x, R5.x;\n" + "RSQ R2.z, R5.z;\n" + "RSQ R2.y, R5.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[9];\n" - "MUL R0.x, R0, c[9];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[9].x;\n" - "MUL R1.y, R0.z, c[1].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "ADD R1.x, -R0, R0.y;\n" - "RCP R1.y, R1.y;\n" - "MUL R0.xy, fragment.position, c[6];\n" - "TEX R0, R0, texture[0], 2D;\n" - "MAX R1.z, R0.w, c[9].w;\n" - "RCP R2.w, R1.z;\n" - "MUL R2.xyz, R0, R2.w;\n" - "MAD R6.xyz, -R2, c[10].y, c[10].x;\n" - "MAD R3.xyz, -R0, R2.w, c[9].z;\n" - "RSQ R2.w, R2.x;\n" - "RCP R2.x, R2.w;\n" - "MUL R1.x, R1, R1.y;\n" - "TEX R1, R1, texture[2], 1D;\n" - "MAD R4.xyz, R1, c[9].x, -R1.w;\n" - "MUL R5.xyz, R3, R4;\n" - "MAD R5.xyz, -R5, R6, R1.w;\n" - "MAD R3.xyz, -R3, R4, R1.w;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "MUL R5.xyz, R0, R5;\n" - "MUL R3.xyz, R0, R3;\n" - "ADD R2.w, -R0, c[9].z;\n" + "MUL R0.z, R0, c[9].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" + "MUL R0.w, R0.x, c[1].x;\n" + "RSQ R0.z, R0.z;\n" + "RCP R0.x, R0.z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" + "TEX R0, R0, texture[2], 1D;\n" + "MAD R3.xyz, R0, c[9].x, -R0.w;\n" + "MAD R6.xyz, -R5, c[10].x, c[10].y;\n" + "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R0.w, R2, -R0;\n" - "MUL R2.xyz, R2, R4;\n" - "MAD R2.xyz, R1.w, R0, R2;\n" - "ADD R6.xyz, R2, -R5;\n" - "MUL R4.xyz, R1, c[9].x;\n" - "MUL R2.xyz, R0, c[10].y;\n" - "SGE R2.xyz, R2, R0.w;\n" - "MAD R2.xyz, R2, R6, R5;\n" + "MAD R2.xyz, R1.w, R2, -R1;\n" + "MUL R2.xyz, R3, R2;\n" + "MAD R4.xyz, R0.w, R1, R2;\n" + "MAD R2.xyz, -R1, R2.w, c[9].z;\n" + "MUL R5.xyz, R2, R3;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MAD R2.xyz, -R2, R3, R0.w;\n" + "MUL R3.xyz, R0, c[9].x;\n" + "MUL R4.xyz, R1, c[10].x;\n" + "SGE R3.xyz, R3, R0.w;\n" + "ADD R2.w, -R1, c[9].z;\n" + "MUL R6.xyz, R1, R6;\n" "SGE R4.xyz, R4, R1.w;\n" - "ADD R2.xyz, R2, -R3;\n" - "MAD R2.xyz, R4, R2, R3;\n" - "MAD R1.xyz, R1, R2.w, R2;\n" - "ADD R2.x, -R1.w, c[9].z;\n" - "MAD R2.xyz, R0, R2.x, R1;\n" - "ADD R1.z, R1.w, R0.w;\n" - "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[7];\n" - "MUL R1.xy, R1, c[5];\n" - "TEX R1, R1, texture[1], 2D;\n" - "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[8];\n" - "MAD result.color, R1.x, R2, R0;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" + "MUL R2.xyz, R1, R2;\n" + "MAD R2.xyz, R3, R4, R2;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, -R0.w, c[9].z;\n" + "MAD R2.xyz, R1, R0.x, R2;\n" + "ADD R0.z, R0.w, R1.w;\n" + "MAD R2.w, -R0, R1, R0.z;\n" + "ADD R0.xy, fragment.position, c[7];\n" + "MUL R0.xy, R0, c[5];\n" + "TEX R0, R0, texture[1], 2D;\n" + "ADD R2, R2, -R1;\n" + "DP4 R0.x, R0, c[8];\n" + "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -1643,23 +1642,23 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[8];\n" - "MUL R0.x, R0, c[8];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.z, R0.y;\n" - "ADD R0.x, -R0, R0.z;\n" + "MUL R0.y, R0.x, c[8].x;\n" + "MUL R0.z, R0, c[8].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.x, R0.x;\n" + "RCP R0.z, R0.x;\n" + "ADD R0.y, -R0, R0.z;\n" "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" "MUL R2.xyz, R1, c[5].y;\n" - "MOV R0.y, c[8].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" + "MOV R0.x, c[8];\n" + "MUL R0.x, R0, c[1];\n" + "RCP R0.x, R0.x;\n" + "MUL R0.x, R0.y, R0;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R3.xyz, R0.w, R2;\n" "MUL R2.xyz, R0, c[5].x;\n" @@ -1690,22 +1689,22 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.z, R0.y;\n" - "ADD R0.x, -R0, R0.z;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.x, R0.x;\n" + "RCP R0.z, R0.x;\n" + "ADD R0.y, -R0, R0.z;\n" "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" + "MOV R0.x, c[6];\n" + "MUL R0.x, R0, c[1];\n" + "RCP R0.x, R0.x;\n" + "MUL R0.x, R0.y, R0;\n" "TEX R0, R0, texture[1], 1D;\n" "ADD R2.x, -R1.w, c[6].z;\n" "MUL R2.xyz, R0, R2.x;\n" @@ -1734,16 +1733,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.z, R0.x;\n" + "MOV R0.x, c[6];\n" + "MUL R0.w, R0.x, c[1].x;\n" "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" + "ADD R0.x, -R0.y, R0.z;\n" + "RCP R0.y, R0.w;\n" "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" "MUL R0.x, R0, R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" @@ -1766,27 +1765,27 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MOV R0.x, c[6];\n" "MUL R0.z, -R0, c[1].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.z, R0.x, R0.x, -R0.y;\n" - "MOV R0.y, c[6].x;\n" + "MUL R0.w, R0.x, c[1].x;\n" "RSQ R0.z, R0.z;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "ADD R0.x, -R0, R0.z;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" + "RCP R0.x, R0.z;\n" + "ADD R2.w, -R1, c[6].z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" "TEX R0, R0, texture[1], 1D;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[6].z;\n" "MUL R2.xyz, R2, c[6].x;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MAD R2.xyz, R0, R2.w, R2;\n" @@ -1823,17 +1822,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.z, R0.x;\n" + "MOV R0.x, c[6];\n" + "MUL R0.w, R0.x, c[1].x;\n" "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" + "ADD R0.x, -R0.y, R0.z;\n" + "RCP R0.y, R0.w;\n" "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" "MUL R0.x, R0, R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" @@ -1866,17 +1865,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.z, R0.x;\n" + "MOV R0.x, c[6];\n" + "MUL R0.w, R0.x, c[1].x;\n" "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" + "ADD R0.x, -R0.y, R0.z;\n" + "RCP R0.y, R0.w;\n" "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" "MUL R0.x, R0, R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" @@ -1905,20 +1904,20 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MOV R0.x, c[6];\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.z, R0.x, R0.x, -R0.y;\n" - "MOV R0.y, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" + "MUL R0.w, R0.x, c[1].x;\n" "RSQ R0.z, R0.z;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "ADD R0.x, -R0, R0.z;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" + "RCP R0.x, R0.z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" "TEX R0, R0, texture[1], 1D;\n" "MAX R1.x, R0.w, c[6].w;\n" "RCP R1.x, R1.x;\n" @@ -1966,17 +1965,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.z, R0.x;\n" + "MOV R0.x, c[6];\n" + "MUL R0.w, R0.x, c[1].x;\n" "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" + "ADD R0.x, -R0.y, R0.z;\n" + "RCP R0.y, R0.w;\n" "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" "MUL R0.x, R0, R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0.w, R1;\n" @@ -2018,24 +2017,24 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MOV R0.x, c[6];\n" "MUL R0.z, -R0, c[1].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.z, R0.x, R0.x, -R0.y;\n" - "MOV R0.y, c[6].x;\n" + "MUL R0.w, R0.x, c[1].x;\n" "RSQ R0.z, R0.z;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "ADD R0.x, -R0, R0.z;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" - "TEX R0, R0, texture[1], 1D;\n" + "RCP R0.x, R0.z;\n" "ADD R2.w, -R1, c[6].z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" + "TEX R0, R0, texture[1], 1D;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" @@ -2061,7 +2060,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..5],\n" " { 2, 4, 1, 9.9999997e-006 },\n" - " { 3, 8 } };\n" + " { 8, 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2073,59 +2072,59 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MAD R0.xyz, fragment.position.x, c[2], R0;\n" "ADD R0.xyz, R0, c[4];\n" "RCP R0.z, R0.z;\n" + "MUL R1.xy, fragment.position, c[5];\n" + "TEX R1, R1, texture[0], 2D;\n" + "MAX R0.w, R1, c[6];\n" + "RCP R2.w, R0.w;\n" + "MUL R5.xyz, R1, R2.w;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MOV R0.x, c[6];\n" + "RSQ R2.x, R5.x;\n" + "RSQ R2.z, R5.z;\n" + "RSQ R2.y, R5.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MAX R0.z, R1.w, c[6].w;\n" - "RCP R2.w, R0.z;\n" - "MUL R2.xyz, R1, R2.w;\n" - "MAD R6.xyz, -R2, c[7].y, c[7].x;\n" - "MAD R3.xyz, -R1, R2.w, c[6].z;\n" - "RSQ R2.w, R2.x;\n" - "RCP R2.x, R2.w;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "ADD R0.x, -R0, R0.y;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.z, R0.y, R0.y, -R0;\n" + "MUL R0.w, R0.x, c[1].x;\n" + "RSQ R0.z, R0.z;\n" + "RCP R0.x, R0.z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0.y, R0;\n" + "MUL R0.x, R0, R0.z;\n" "TEX R0, R0, texture[1], 1D;\n" - "MAD R4.xyz, R0, c[6].x, -R0.w;\n" - "MUL R5.xyz, R3, R4;\n" - "MAD R5.xyz, -R5, R6, R0.w;\n" - "MAD R3.xyz, -R3, R4, R0.w;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "MUL R5.xyz, R1, R5;\n" - "MUL R3.xyz, R1, R3;\n" + "MAD R3.xyz, R0, c[6].x, -R0.w;\n" + "MAD R6.xyz, -R5, c[7].x, c[7].y;\n" + "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" "MAD R2.xyz, R1.w, R2, -R1;\n" - "MUL R2.xyz, R2, R4;\n" - "MAD R2.xyz, R0.w, R1, R2;\n" - "ADD R6.xyz, R2, -R5;\n" - "MUL R4.xyz, R0, c[6].x;\n" - "MUL R2.xyz, R1, c[7].y;\n" - "SGE R2.xyz, R2, R1.w;\n" - "MAD R2.xyz, R2, R6, R5;\n" - "ADD R2.xyz, R2, -R3;\n" - "SGE R4.xyz, R4, R0.w;\n" - "MAD R2.xyz, R4, R2, R3;\n" + "MUL R2.xyz, R3, R2;\n" + "MAD R4.xyz, R0.w, R1, R2;\n" + "MAD R2.xyz, -R1, R2.w, c[6].z;\n" + "MUL R5.xyz, R2, R3;\n" + "MAD R2.xyz, -R2, R3, R0.w;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MUL R3.xyz, R0, c[6].x;\n" + "MUL R4.xyz, R1, c[7].x;\n" + "MUL R6.xyz, R1, R6;\n" + "SGE R4.xyz, R4, R1.w;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" + "MUL R2.xyz, R1, R2;\n" + "SGE R3.xyz, R3, R0.w;\n" + "MAD R2.xyz, R3, R4, R2;\n" "ADD R2.w, -R1, c[6].z;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, R0.w, R1.w;\n" - "ADD R2.y, -R0.w, c[6].z;\n" - "MAD result.color.xyz, R1, R2.y, R0;\n" - "MAD result.color.w, -R0, R1, R2.x;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, R0.w, R1.w;\n" + "ADD R0.y, -R0.w, c[6].z;\n" + "MAD result.color.xyz, R1, R0.y, R2;\n" + "MAD result.color.w, -R0, R1, R0.x;\n" "END\n" ; @@ -2147,16 +2146,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.z, R0.x;\n" + "MOV R0.x, c[6];\n" + "MUL R0.w, R0.x, c[1].x;\n" "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" + "ADD R0.x, -R0.y, R0.z;\n" + "RCP R0.y, R0.w;\n" "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" "MUL R0.x, R0, R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" @@ -2188,17 +2187,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" - "MUL R0.y, R0.z, c[6];\n" - "MUL R0.x, R0, c[6];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" + "MUL R0.y, R0.x, c[6].x;\n" + "MUL R0.z, R0, c[6].y;\n" + "MAD R0.x, R0.y, R0.y, -R0.z;\n" + "RSQ R0.z, R0.x;\n" + "MOV R0.x, c[6];\n" + "MUL R0.w, R0.x, c[1].x;\n" "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" + "ADD R0.x, -R0.y, R0.z;\n" + "RCP R0.y, R0.w;\n" "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[6].x;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.y, R0.y;\n" "MUL R0.x, R0, R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0.w, R1;\n" @@ -2226,8 +2225,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" - "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" "MUL R0.y, R0.z, c[8];\n" @@ -2236,12 +2235,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "RSQ R0.y, R0.y;\n" "RCP R0.y, R0.y;\n" "ADD R1.x, -R0, R0.y;\n" - "MOV R0.z, c[8].x;\n" - "MUL R0.z, R0, c[1].x;\n" - "RCP R1.y, R0.z;\n" - "ADD R0.xy, fragment.position, c[6];\n" - "MUL R0.xy, R0, c[5];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MOV R0.x, c[8];\n" + "MUL R0.x, R0, c[1];\n" + "RCP R1.y, R0.x;\n" + "ADD R0.zw, fragment.position.xyxy, c[6].xyxy;\n" + "MUL R0.zw, R0, c[5].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R1.x, R1, R1.y;\n" "DP4 R1.y, R0, c[7];\n" "TEX R0, R1, texture[1], 1D;\n" @@ -2261,19 +2260,19 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" "MUL R0.xy, R0, c[0];\n" - "ADD R0.x, R0, R0.y;\n" "ADD R0.z, R0, R0.w;\n" + "ADD R0.x, R0, R0.y;\n" "MUL R0.z, -R0, c[1].x;\n" "MUL R0.y, R0.z, c[5];\n" "MUL R0.x, R0, c[5];\n" "MAD R0.z, R0.x, R0.x, -R0.y;\n" "MOV R0.y, c[5].x;\n" "RSQ R0.z, R0.z;\n" - "MUL R0.y, R0, c[1].x;\n" - "RCP R0.z, R0.z;\n" - "RCP R0.y, R0.y;\n" - "ADD R0.x, -R0, R0.z;\n" - "MUL R0.x, R0, R0.y;\n" + "MUL R0.w, R0.y, c[1].x;\n" + "RCP R0.y, R0.z;\n" + "RCP R0.z, R0.w;\n" + "ADD R0.x, -R0, R0.y;\n" + "MUL R0.x, R0, R0.z;\n" "TEX result.color, R0, texture[0], 1D;\n" "END\n" ; @@ -2281,9 +2280,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = "!!ARBfp1.0\n" "PARAM c[13] = { program.local[0..9],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2350,9 +2349,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_MULTIPLY = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2411,9 +2410,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SCREEN = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2468,9 +2467,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_OVERLAY = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 2, 1 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2543,9 +2542,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DARKEN = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2607,9 +2606,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_LIGHTEN = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2671,9 +2670,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORDODGE = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 1, 1e-006 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2748,9 +2747,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORBURN = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 1, 9.9999997e-006 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2762,16 +2761,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "ABS R0.z, R0.x;\n" - "ABS R0.w, R0.y;\n" - "ADD R0.w, R0, -R0.z;\n" + "ABS R0.w, R0.x;\n" + "ABS R0.z, R0.y;\n" + "ADD R0.z, R0, -R0.w;\n" "ADD R1.x, R0.y, c[8];\n" - "ABS R0.w, R0;\n" - "CMP R0.y, -R0.w, R0, R1.x;\n" - "ABS R0.w, -R0.y;\n" - "MAX R1.x, R0.z, R0.w;\n" + "ABS R0.z, R0;\n" + "CMP R0.y, -R0.z, R0, R1.x;\n" + "ABS R0.z, -R0.y;\n" + "MAX R1.x, R0.w, R0.z;\n" "RCP R1.y, R1.x;\n" - "MIN R1.x, R0.z, R0.w;\n" + "MIN R1.x, R0.w, R0.z;\n" "MUL R1.x, R1, R1.y;\n" "MUL R1.y, R1.x, R1.x;\n" "MAD R1.z, R1.y, c[8].y, c[8];\n" @@ -2780,8 +2779,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "MAD R1.z, R1, R1.y, -c[9].y;\n" "MAD R1.y, R1.z, R1, c[9].z;\n" "MUL R1.x, R1.y, R1;\n" - "ADD R0.z, -R0, R0.w;\n" "ADD R1.y, -R1.x, c[9].w;\n" + "ADD R0.z, -R0.w, R0;\n" "CMP R0.z, -R0, R1.y, R1.x;\n" "ADD R0.w, -R0.z, c[10].x;\n" "CMP R0.x, R0, R0.w, R0.z;\n" @@ -2826,9 +2825,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_HARDLIGHT = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 2, 1 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2901,10 +2900,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SOFTLIGHT = "!!ARBfp1.0\n" "PARAM c[12] = { program.local[0..7],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1, 9.9999997e-006 },\n" - " { 2, 3, 8 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 1, 2 },\n" + " { 9.9999997e-006, 8, 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2917,86 +2916,86 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "ABS R0.z, R0.x;\n" - "ABS R0.w, R0.y;\n" - "ADD R0.w, R0, -R0.z;\n" - "ADD R1.x, R0.y, c[8].y;\n" - "ABS R0.w, R0;\n" - "CMP R0.y, -R0.w, R0, R1.x;\n" - "ABS R0.w, -R0.y;\n" - "MAX R1.x, R0.z, R0.w;\n" + "ABS R0.w, R0.x;\n" + "ABS R0.z, R0.y;\n" + "ADD R0.z, R0, -R0.w;\n" + "ADD R1.x, R0.y, c[8];\n" + "ABS R0.z, R0;\n" + "CMP R0.y, -R0.z, R0, R1.x;\n" + "ABS R0.z, -R0.y;\n" + "MAX R1.x, R0.w, R0.z;\n" "RCP R1.y, R1.x;\n" - "MIN R1.x, R0.z, R0.w;\n" + "MIN R1.x, R0.w, R0.z;\n" "MUL R1.x, R1, R1.y;\n" "MUL R1.y, R1.x, R1.x;\n" - "MAD R1.z, R1.y, c[9].x, c[9].y;\n" - "MAD R1.z, R1, R1.y, -c[9];\n" - "MAD R1.z, R1, R1.y, c[9].w;\n" - "MAD R1.z, R1, R1.y, -c[10].x;\n" - "MAD R1.y, R1.z, R1, c[10];\n" + "MAD R1.z, R1.y, c[8].y, c[8];\n" + "MAD R1.z, R1, R1.y, -c[8].w;\n" + "MAD R1.z, R1, R1.y, c[9].x;\n" + "MAD R1.z, R1, R1.y, -c[9].y;\n" + "MAD R1.y, R1.z, R1, c[9].z;\n" "MUL R1.x, R1.y, R1;\n" - "ADD R1.y, -R1.x, c[8].w;\n" - "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[9].w;\n" + "ADD R0.z, -R0.w, R0;\n" "CMP R0.z, -R0, R1.y, R1.x;\n" - "ADD R0.w, -R0.z, c[8].z;\n" + "ADD R0.w, -R0.z, c[10].x;\n" "CMP R0.x, R0, R0.w, R0.z;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" "CMP R0.x, -R0.y, -R0, R0;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MAX R0.y, R1.w, c[11].x;\n" + "RCP R2.w, R0.y;\n" + "MUL R5.xyz, R1, R2.w;\n" + "RSQ R2.x, R5.x;\n" + "RSQ R2.z, R5.z;\n" + "RSQ R2.y, R5.y;\n" "ADD R0.x, R0, c[0];\n" - "MUL R1.x, R0, c[8];\n" - "FLR R1.y, R1.x;\n" - "MUL R0.xy, fragment.position, c[5];\n" - "TEX R0, R0, texture[0], 2D;\n" - "MAX R2.x, R0.w, c[10].w;\n" - "RCP R2.w, R2.x;\n" - "MUL R2.xyz, R0, R2.w;\n" - "MAD R6.xyz, -R2, c[11].z, c[11].y;\n" - "MAD R3.xyz, -R0, R2.w, c[10].z;\n" - "RSQ R2.w, R2.x;\n" - "RCP R2.x, R2.w;\n" - "ADD R1.x, R1, -R1.y;\n" - "TEX R1, R1, texture[2], 1D;\n" - "MAD R4.xyz, R1, c[11].x, -R1.w;\n" - "MUL R5.xyz, R3, R4;\n" - "MAD R5.xyz, -R5, R6, R1.w;\n" - "MAD R3.xyz, -R3, R4, R1.w;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "MUL R5.xyz, R0, R5;\n" - "MUL R3.xyz, R0, R3;\n" - "ADD R2.w, -R0, c[10].z;\n" + "MUL R0.x, R0, c[10].y;\n" + "FLR R0.y, R0.x;\n" + "ADD R0.x, R0, -R0.y;\n" + "TEX R0, R0, texture[2], 1D;\n" + "MAD R3.xyz, R0, c[10].w, -R0.w;\n" + "MAD R6.xyz, -R5, c[11].y, c[11].z;\n" + "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R0.w, R2, -R0;\n" - "MUL R2.xyz, R2, R4;\n" - "MAD R2.xyz, R1.w, R0, R2;\n" - "ADD R6.xyz, R2, -R5;\n" - "MUL R4.xyz, R1, c[11].x;\n" - "MUL R2.xyz, R0, c[11].z;\n" - "SGE R2.xyz, R2, R0.w;\n" - "MAD R2.xyz, R2, R6, R5;\n" + "MAD R2.xyz, R1.w, R2, -R1;\n" + "MUL R2.xyz, R3, R2;\n" + "MAD R4.xyz, R0.w, R1, R2;\n" + "MAD R2.xyz, -R1, R2.w, c[10].z;\n" + "MUL R5.xyz, R2, R3;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MAD R2.xyz, -R2, R3, R0.w;\n" + "MUL R3.xyz, R0, c[10].w;\n" + "MUL R4.xyz, R1, c[11].y;\n" + "SGE R3.xyz, R3, R0.w;\n" + "ADD R2.w, -R1, c[10].z;\n" + "MUL R6.xyz, R1, R6;\n" "SGE R4.xyz, R4, R1.w;\n" - "ADD R2.xyz, R2, -R3;\n" - "MAD R2.xyz, R4, R2, R3;\n" - "MAD R1.xyz, R1, R2.w, R2;\n" - "ADD R2.x, -R1.w, c[10].z;\n" - "MAD R2.xyz, R0, R2.x, R1;\n" - "ADD R1.z, R1.w, R0.w;\n" - "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[6];\n" - "MUL R1.xy, R1, c[4];\n" - "TEX R1, R1, texture[1], 2D;\n" - "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[7];\n" - "MAD result.color, R1.x, R2, R0;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" + "MUL R2.xyz, R1, R2;\n" + "MAD R2.xyz, R3, R4, R2;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, -R0.w, c[10].z;\n" + "MAD R2.xyz, R1, R0.x, R2;\n" + "ADD R0.z, R0.w, R1.w;\n" + "MAD R2.w, -R0, R1, R0.z;\n" + "ADD R0.xy, fragment.position, c[6];\n" + "MUL R0.xy, R0, c[4];\n" + "TEX R0, R0, texture[1], 2D;\n" + "ADD R2, R2, -R1;\n" + "DP4 R0.x, R0, c[7];\n" + "MAD result.color, R0.x, R2, R1;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DIFFERENCE = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 2 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 2 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3056,9 +3055,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_EXCLUSION = "!!ARBfp1.0\n" "PARAM c[11] = { program.local[0..7],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 2, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3121,9 +3120,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = "!!ARBfp1.0\n" "PARAM c[10] = { program.local[0..6],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3184,9 +3183,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_MULTIPLY_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3239,9 +3238,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SCREEN_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3289,9 +3288,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_OVERLAY_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 2, 1 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3357,9 +3356,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DARKEN_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3415,9 +3414,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_LIGHTEN_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3473,9 +3472,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORDODGE_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 1, 1e-006 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3543,9 +3542,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORBURN_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 1, 9.9999997e-006 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3557,16 +3556,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "ABS R0.z, R0.x;\n" - "ABS R0.w, R0.y;\n" - "ADD R0.w, R0, -R0.z;\n" + "ABS R0.w, R0.x;\n" + "ABS R0.z, R0.y;\n" + "ADD R0.z, R0, -R0.w;\n" "ADD R1.x, R0.y, c[5];\n" - "ABS R0.w, R0;\n" - "CMP R0.y, -R0.w, R0, R1.x;\n" - "ABS R0.w, -R0.y;\n" - "MAX R1.x, R0.z, R0.w;\n" + "ABS R0.z, R0;\n" + "CMP R0.y, -R0.z, R0, R1.x;\n" + "ABS R0.z, -R0.y;\n" + "MAX R1.x, R0.w, R0.z;\n" "RCP R1.y, R1.x;\n" - "MIN R1.x, R0.z, R0.w;\n" + "MIN R1.x, R0.w, R0.z;\n" "MUL R1.x, R1, R1.y;\n" "MUL R1.y, R1.x, R1.x;\n" "MAD R1.z, R1.y, c[5].y, c[5];\n" @@ -3575,8 +3574,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "MAD R1.z, R1, R1.y, -c[6].y;\n" "MAD R1.y, R1.z, R1, c[6].z;\n" "MUL R1.x, R1.y, R1;\n" - "ADD R0.z, -R0, R0.w;\n" "ADD R1.y, -R1.x, c[6].w;\n" + "ADD R0.z, -R0.w, R0;\n" "CMP R0.z, -R0, R1.y, R1.x;\n" "ADD R0.w, -R0.z, c[7].x;\n" "CMP R0.x, R0, R0.w, R0.z;\n" @@ -3615,9 +3614,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_HARDLIGHT_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.0020000001, -0.01348047, 0.057477314, 0.12123907 },\n" - " { 0.19563593, 0.33299461, 0.99999565, 1.5707964 },\n" - " { 3.1415927, 0.15915494, 2, 1 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3684,10 +3683,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SOFTLIGHT_NOMASK = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..4],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 1, 9.9999997e-006 },\n" - " { 2, 3, 8 } };\n" + " { 0.0020000001, -0.01348047, 0.05747731, 0.1212391 },\n" + " { 0.1956359, 0.33299461, 0.99999559, 1.570796 },\n" + " { 3.141593, 0.15915494, 1, 2 },\n" + " { 9.9999997e-006, 8, 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3700,80 +3699,80 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "ABS R0.z, R0.x;\n" - "ABS R0.w, R0.y;\n" - "ADD R0.w, R0, -R0.z;\n" - "ADD R1.x, R0.y, c[5].y;\n" - "ABS R0.w, R0;\n" - "CMP R0.y, -R0.w, R0, R1.x;\n" - "ABS R0.w, -R0.y;\n" - "MAX R1.x, R0.z, R0.w;\n" + "ABS R0.w, R0.x;\n" + "ABS R0.z, R0.y;\n" + "ADD R0.z, R0, -R0.w;\n" + "ADD R1.x, R0.y, c[5];\n" + "ABS R0.z, R0;\n" + "CMP R0.y, -R0.z, R0, R1.x;\n" + "ABS R0.z, -R0.y;\n" + "MAX R1.x, R0.w, R0.z;\n" "RCP R1.y, R1.x;\n" - "MIN R1.x, R0.z, R0.w;\n" + "MIN R1.x, R0.w, R0.z;\n" "MUL R1.x, R1, R1.y;\n" "MUL R1.y, R1.x, R1.x;\n" - "MAD R1.z, R1.y, c[6].x, c[6].y;\n" - "MAD R1.z, R1, R1.y, -c[6];\n" - "MAD R1.z, R1, R1.y, c[6].w;\n" - "MAD R1.z, R1, R1.y, -c[7].x;\n" - "MAD R1.y, R1.z, R1, c[7];\n" + "MAD R1.z, R1.y, c[5].y, c[5];\n" + "MAD R1.z, R1, R1.y, -c[5].w;\n" + "MAD R1.z, R1, R1.y, c[6].x;\n" + "MAD R1.z, R1, R1.y, -c[6].y;\n" + "MAD R1.y, R1.z, R1, c[6].z;\n" "MUL R1.x, R1.y, R1;\n" - "ADD R0.z, -R0, R0.w;\n" - "ADD R1.y, -R1.x, c[5].w;\n" + "ADD R1.y, -R1.x, c[6].w;\n" + "ADD R0.z, -R0.w, R0;\n" "CMP R0.z, -R0, R1.y, R1.x;\n" - "ADD R0.w, -R0.z, c[5].z;\n" + "ADD R0.w, -R0.z, c[7].x;\n" "CMP R0.x, R0, R0.w, R0.z;\n" - "CMP R0.x, -R0.y, -R0, R0;\n" "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MAX R2.x, R1.w, c[7].w;\n" - "RCP R2.w, R2.x;\n" - "MUL R2.xyz, R1, R2.w;\n" - "MAD R6.xyz, -R2, c[8].z, c[8].y;\n" - "MAD R3.xyz, -R1, R2.w, c[7].z;\n" - "RSQ R2.w, R2.x;\n" - "RCP R2.x, R2.w;\n" + "MAX R0.y, R1.w, c[8].x;\n" + "RCP R2.w, R0.y;\n" + "MUL R5.xyz, R1, R2.w;\n" + "RSQ R2.x, R5.x;\n" + "RSQ R2.z, R5.z;\n" + "RSQ R2.y, R5.y;\n" "ADD R0.x, R0, c[0];\n" - "MUL R0.x, R0, c[5];\n" + "MUL R0.x, R0, c[7].y;\n" "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" - "MAD R4.xyz, R0, c[8].x, -R0.w;\n" - "MUL R5.xyz, R3, R4;\n" - "MAD R5.xyz, -R5, R6, R0.w;\n" - "MAD R3.xyz, -R3, R4, R0.w;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "MUL R5.xyz, R1, R5;\n" - "MUL R3.xyz, R1, R3;\n" + "MAD R3.xyz, R0, c[7].w, -R0.w;\n" + "MAD R6.xyz, -R5, c[8].y, c[8].z;\n" + "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" "MAD R2.xyz, R1.w, R2, -R1;\n" - "MUL R2.xyz, R2, R4;\n" - "MAD R2.xyz, R0.w, R1, R2;\n" - "ADD R6.xyz, R2, -R5;\n" - "MUL R4.xyz, R0, c[8].x;\n" - "MUL R2.xyz, R1, c[8].z;\n" - "SGE R2.xyz, R2, R1.w;\n" - "MAD R2.xyz, R2, R6, R5;\n" - "ADD R2.xyz, R2, -R3;\n" - "SGE R4.xyz, R4, R0.w;\n" - "MAD R2.xyz, R4, R2, R3;\n" + "MUL R2.xyz, R3, R2;\n" + "MAD R4.xyz, R0.w, R1, R2;\n" + "MAD R2.xyz, -R1, R2.w, c[7].z;\n" + "MUL R5.xyz, R2, R3;\n" + "MAD R2.xyz, -R2, R3, R0.w;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MUL R3.xyz, R0, c[7].w;\n" + "MUL R4.xyz, R1, c[8].y;\n" + "MUL R6.xyz, R1, R6;\n" + "SGE R4.xyz, R4, R1.w;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" + "MUL R2.xyz, R1, R2;\n" + "SGE R3.xyz, R3, R0.w;\n" + "MAD R2.xyz, R3, R4, R2;\n" "ADD R2.w, -R1, c[7].z;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, R0.w, R1.w;\n" - "ADD R2.y, -R0.w, c[7].z;\n" - "MAD result.color.xyz, R1, R2.y, R0;\n" - "MAD result.color.w, -R0, R1, R2.x;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, R0.w, R1.w;\n" + "ADD R0.y, -R0.w, c[7].z;\n" + "MAD result.color.xyz, R1, R0.y, R2;\n" + "MAD result.color.w, -R0, R1, R0.x;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DIFFERENCE_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 2 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 2 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3827,9 +3826,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_EXCLUSION_NOMASK = "!!ARBfp1.0\n" "PARAM c[8] = { program.local[0..4],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565, 2, 1 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559, 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3886,9 +3885,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODE_BLEND_MODE_MASK = "!!ARBfp1.0\n" "PARAM c[10] = { program.local[0..6],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559 } };\n" "TEMP R0;\n" "TEMP R1;\n" "MUL R0.xyz, fragment.position.y, c[2];\n" @@ -3920,11 +3919,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "ADD R0.w, -R0.z, c[7].z;\n" "CMP R0.x, R0, R0.w, R0.z;\n" "CMP R0.x, -R0.y, -R0, R0;\n" - "ADD R0.z, R0.x, c[0].x;\n" - "MUL R1.x, R0.z, c[7];\n" + "ADD R0.x, R0, c[0];\n" + "MUL R1.x, R0, c[7];\n" "FLR R1.y, R1.x;\n" - "ADD R0.xy, fragment.position, c[5];\n" - "MUL R0.xy, R0, c[4];\n" + "ADD R0.zw, fragment.position.xyxy, c[5].xyxy;\n" + "MUL R0.xy, R0.zwzw, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" "ADD R1.x, R1, -R1.y;\n" "DP4 R1.y, R0, c[6];\n" @@ -3936,9 +3935,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODE_BLEND_MODE_NOMASK = "!!ARBfp1.0\n" "PARAM c[7] = { program.local[0..3],\n" - " { 0.15915494, 0.0020000001, 3.1415927, 1.5707964 },\n" - " { -0.01348047, 0.057477314, 0.12123907, 0.19563593 },\n" - " { 0.33299461, 0.99999565 } };\n" + " { 0.15915494, 0.0020000001, 3.141593, 1.570796 },\n" + " { -0.01348047, 0.05747731, 0.1212391, 0.1956359 },\n" + " { 0.33299461, 0.99999559 } };\n" "TEMP R0;\n" "TEMP R1;\n" "MUL R0.xyz, fragment.position.y, c[2];\n" @@ -4357,8 +4356,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SOFTLIGHT = "!!ARBfp1.0\n" "PARAM c[10] = { program.local[0..7],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -4366,58 +4365,58 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R4;\n" "TEMP R5;\n" "TEMP R6;\n" - "MUL R2.xyz, fragment.position.y, c[2];\n" - "MAD R3.xyz, fragment.position.x, c[1], R2;\n" "MUL R0.xy, fragment.position, c[5];\n" - "TEX R0, R0, texture[0], 2D;\n" - "MAX R1.x, R0.w, c[8].y;\n" - "RCP R2.w, R1.x;\n" - "MUL R1.xyz, R0, R2.w;\n" - "RSQ R1.w, R1.x;\n" - "RSQ R2.y, R1.y;\n" - "ADD R3.xyz, R3, c[3];\n" - "RCP R2.x, R1.w;\n" - "RCP R1.w, R3.z;\n" - "MUL R3.xy, R3, R1.w;\n" - "RSQ R1.w, R1.z;\n" - "RCP R2.z, R1.w;\n" - "RCP R2.y, R2.y;\n" - "MAD R6.xyz, R0.w, R2, -R0;\n" - "MUL R2.xyz, -R1, c[9].x;\n" - "ADD R5.xyz, R2, c[8].w;\n" - "MAD R2.xyz, -R0, R2.w, c[8].x;\n" - "MUL R3.xy, R3, c[0];\n" - "ADD R1.w, R3.x, R3.y;\n" - "MUL R1.w, R1, c[0].z;\n" - "TEX R1, R1.w, texture[2], 1D;\n" - "MAD R3.xyz, R1, c[8].z, -R1.w;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R1.w;\n" - "MAD R2.xyz, -R2, R3, R1.w;\n" - "MUL R5.xyz, R6, R3;\n" - "MUL R4.xyz, R0, R4;\n" - "MAD R5.xyz, R1.w, R0, R5;\n" - "ADD R6.xyz, R5, -R4;\n" - "MUL R5.xyz, R0, c[9].x;\n" - "SGE R3.xyz, R5, R0.w;\n" - "MAD R3.xyz, R3, R6, R4;\n" - "MUL R2.xyz, R0, R2;\n" - "MUL R4.xyz, R1, c[8].z;\n" + "TEX R1, R0, texture[0], 2D;\n" + "MAX R0.w, R1, c[8].z;\n" + "RCP R2.w, R0.w;\n" + "MUL R2.xyz, R1, R2.w;\n" + "RSQ R0.w, R2.x;\n" + "MUL R5.xyz, -R2, c[8].w;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R0.xyz, R0, c[3];\n" + "RCP R0.z, R0.z;\n" + "MUL R0.xy, R0, R0.z;\n" + "MUL R0.xy, R0, c[0];\n" + "ADD R0.x, R0, R0.y;\n" + "RSQ R0.z, R2.y;\n" + "RSQ R0.y, R2.z;\n" + "MAD R2.xyz, -R1, R2.w, c[8].x;\n" + "RCP R3.x, R0.w;\n" + "RCP R3.y, R0.z;\n" + "RCP R3.z, R0.y;\n" + "MUL R0.x, R0, c[0].z;\n" + "TEX R0, R0, texture[2], 1D;\n" + "MAD R4.xyz, R1.w, R3, -R1;\n" + "MAD R3.xyz, R0, c[8].y, -R0.w;\n" + "MUL R4.xyz, R3, R4;\n" + "ADD R6.xyz, R5, c[9].x;\n" + "MUL R5.xyz, R2, R3;\n" + "MAD R2.xyz, -R2, R3, R0.w;\n" + "MUL R3.xyz, R0, c[8].y;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R4.xyz, R0.w, R1, R4;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MUL R4.xyz, R1, c[8].w;\n" + "SGE R3.xyz, R3, R0.w;\n" + "ADD R2.w, -R1, c[8].x;\n" + "MUL R6.xyz, R1, R6;\n" "SGE R4.xyz, R4, R1.w;\n" - "ADD R3.xyz, R3, -R2;\n" - "MAD R2.xyz, R4, R3, R2;\n" - "ADD R2.w, -R0, c[8].x;\n" - "MAD R1.xyz, R1, R2.w, R2;\n" - "ADD R2.x, -R1.w, c[8];\n" - "MAD R2.xyz, R0, R2.x, R1;\n" - "ADD R1.z, R1.w, R0.w;\n" - "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[6];\n" - "MUL R1.xy, R1, c[4];\n" - "TEX R1, R1, texture[1], 2D;\n" - "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[7];\n" - "MAD result.color, R1.x, R2, R0;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" + "MUL R2.xyz, R1, R2;\n" + "MAD R2.xyz, R3, R4, R2;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, -R0.w, c[8];\n" + "MAD R2.xyz, R1, R0.x, R2;\n" + "ADD R0.z, R0.w, R1.w;\n" + "MAD R2.w, -R0, R1, R0.z;\n" + "ADD R0.xy, fragment.position, c[6];\n" + "MUL R0.xy, R0, c[4];\n" + "TEX R0, R0, texture[1], 2D;\n" + "ADD R2, R2, -R1;\n" + "DP4 R0.x, R0, c[7];\n" + "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -4816,8 +4815,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SOFTLIGHT_NOMASK = "!!ARBfp1.0\n" "PARAM c[7] = { program.local[0..4],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -4825,52 +4824,52 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R4;\n" "TEMP R5;\n" "TEMP R6;\n" - "MUL R2.xyz, fragment.position.y, c[2];\n" - "MAD R3.xyz, fragment.position.x, c[1], R2;\n" "MUL R0.xy, fragment.position, c[4];\n" "TEX R1, R0, texture[0], 2D;\n" - "MAX R0.x, R1.w, c[5].y;\n" - "RCP R2.w, R0.x;\n" - "MUL R0.xyz, R1, R2.w;\n" - "RSQ R0.w, R0.x;\n" - "RSQ R2.y, R0.y;\n" - "ADD R3.xyz, R3, c[3];\n" - "RCP R2.x, R0.w;\n" - "RCP R0.w, R3.z;\n" - "MUL R3.xy, R3, R0.w;\n" - "RSQ R0.w, R0.z;\n" - "RCP R2.z, R0.w;\n" - "RCP R2.y, R2.y;\n" - "MAD R6.xyz, R1.w, R2, -R1;\n" - "MUL R2.xyz, -R0, c[6].x;\n" - "ADD R5.xyz, R2, c[5].w;\n" + "MAX R0.w, R1, c[5].z;\n" + "RCP R2.w, R0.w;\n" + "MUL R2.xyz, R1, R2.w;\n" + "RSQ R0.w, R2.x;\n" + "MUL R5.xyz, -R2, c[5].w;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R0.xyz, R0, c[3];\n" + "RCP R0.z, R0.z;\n" + "MUL R0.xy, R0, R0.z;\n" + "MUL R0.xy, R0, c[0];\n" + "ADD R0.x, R0, R0.y;\n" + "RSQ R0.z, R2.y;\n" + "RSQ R0.y, R2.z;\n" "MAD R2.xyz, -R1, R2.w, c[5].x;\n" - "MUL R3.xy, R3, c[0];\n" - "ADD R0.w, R3.x, R3.y;\n" - "MUL R0.w, R0, c[0].z;\n" - "TEX R0, R0.w, texture[1], 1D;\n" - "MAD R3.xyz, R0, c[5].z, -R0.w;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R0.w;\n" - "MUL R5.xyz, R6, R3;\n" + "RCP R3.x, R0.w;\n" + "RCP R3.y, R0.z;\n" + "RCP R3.z, R0.y;\n" + "MUL R0.x, R0, c[0].z;\n" + "TEX R0, R0, texture[1], 1D;\n" + "MAD R4.xyz, R1.w, R3, -R1;\n" + "MAD R3.xyz, R0, c[5].y, -R0.w;\n" + "MUL R4.xyz, R3, R4;\n" + "ADD R6.xyz, R5, c[6].x;\n" + "MUL R5.xyz, R2, R3;\n" "MAD R2.xyz, -R2, R3, R0.w;\n" - "MUL R4.xyz, R1, R4;\n" - "MAD R5.xyz, R0.w, R1, R5;\n" - "ADD R6.xyz, R5, -R4;\n" - "MUL R5.xyz, R1, c[6].x;\n" - "SGE R3.xyz, R5, R1.w;\n" - "MAD R3.xyz, R3, R6, R4;\n" + "MUL R3.xyz, R0, c[5].y;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R4.xyz, R0.w, R1, R4;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MUL R4.xyz, R1, c[5].w;\n" + "MUL R6.xyz, R1, R6;\n" + "SGE R4.xyz, R4, R1.w;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" "MUL R2.xyz, R1, R2;\n" - "MUL R4.xyz, R0, c[5].z;\n" - "ADD R3.xyz, R3, -R2;\n" - "SGE R4.xyz, R4, R0.w;\n" - "MAD R2.xyz, R4, R3, R2;\n" + "SGE R3.xyz, R3, R0.w;\n" + "MAD R2.xyz, R3, R4, R2;\n" "ADD R2.w, -R1, c[5].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, R0.w, R1.w;\n" - "ADD R2.y, -R0.w, c[5].x;\n" - "MAD result.color.xyz, R1, R2.y, R0;\n" - "MAD result.color.w, -R0, R1, R2.x;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, R0.w, R1.w;\n" + "ADD R0.y, -R0.w, c[5].x;\n" + "MAD result.color.xyz, R1, R0.y, R2;\n" + "MAD result.color.w, -R0, R1, R0.x;\n" "END\n" ; @@ -5334,8 +5333,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_SOFTLIGHT = "!!ARBfp1.0\n" "PARAM c[10] = { program.local[0..7],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -5344,55 +5343,55 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R5;\n" "TEMP R6;\n" "MUL R0.xy, fragment.position, c[5];\n" - "TEX R0, R0, texture[0], 2D;\n" - "MAX R1.x, R0.w, c[8].y;\n" - "RCP R2.w, R1.x;\n" - "MUL R1.xyz, R0, R2.w;\n" - "RSQ R1.w, R1.x;\n" - "RCP R2.x, R1.w;\n" - "RSQ R1.w, R1.y;\n" - "RSQ R2.z, R1.z;\n" - "MUL R3.xyz, fragment.position.y, c[2];\n" - "MAD R3.xyz, fragment.position.x, c[1], R3;\n" - "ADD R3.xyz, R3, c[3];\n" - "RCP R2.y, R1.w;\n" - "RCP R1.w, R3.z;\n" - "MUL R3.xy, R3, R1.w;\n" - "RCP R2.z, R2.z;\n" - "MAD R6.xyz, R0.w, R2, -R0;\n" - "MUL R2.xyz, -R1, c[9].x;\n" - "ADD R5.xyz, R2, c[8].w;\n" - "MAD R2.xyz, -R0, R2.w, c[8].x;\n" - "MUL R3.xy, R3, c[0];\n" - "TEX R1, R3, texture[2], 2D;\n" - "MAD R3.xyz, R1, c[8].z, -R1.w;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R1.w;\n" - "MAD R2.xyz, -R2, R3, R1.w;\n" - "MUL R5.xyz, R6, R3;\n" - "MUL R4.xyz, R0, R4;\n" - "MAD R5.xyz, R1.w, R0, R5;\n" - "ADD R6.xyz, R5, -R4;\n" - "MUL R5.xyz, R0, c[9].x;\n" - "SGE R3.xyz, R5, R0.w;\n" - "MAD R3.xyz, R3, R6, R4;\n" - "MUL R2.xyz, R0, R2;\n" - "MUL R4.xyz, R1, c[8].z;\n" + "TEX R1, R0, texture[0], 2D;\n" + "MAX R0.x, R1.w, c[8].z;\n" + "RCP R2.w, R0.x;\n" + "MUL R2.xyz, R1, R2.w;\n" + "RSQ R0.w, R2.x;\n" + "RCP R3.x, R0.w;\n" + "RSQ R0.w, R2.y;\n" + "MUL R5.xyz, -R2, c[8].w;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R0.xyz, R0, c[3];\n" + "RCP R0.z, R0.z;\n" + "MUL R0.xy, R0, R0.z;\n" + "RSQ R0.z, R2.z;\n" + "MAD R2.xyz, -R1, R2.w, c[8].x;\n" + "RCP R3.y, R0.w;\n" + "RCP R3.z, R0.z;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R0, R0, texture[2], 2D;\n" + "MAD R4.xyz, R1.w, R3, -R1;\n" + "MAD R3.xyz, R0, c[8].y, -R0.w;\n" + "MUL R4.xyz, R3, R4;\n" + "ADD R6.xyz, R5, c[9].x;\n" + "MUL R5.xyz, R2, R3;\n" + "MAD R2.xyz, -R2, R3, R0.w;\n" + "MUL R3.xyz, R0, c[8].y;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R4.xyz, R0.w, R1, R4;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MUL R4.xyz, R1, c[8].w;\n" + "SGE R3.xyz, R3, R0.w;\n" + "ADD R2.w, -R1, c[8].x;\n" + "MUL R6.xyz, R1, R6;\n" "SGE R4.xyz, R4, R1.w;\n" - "ADD R3.xyz, R3, -R2;\n" - "MAD R2.xyz, R4, R3, R2;\n" - "ADD R2.w, -R0, c[8].x;\n" - "MAD R1.xyz, R1, R2.w, R2;\n" - "ADD R2.x, -R1.w, c[8];\n" - "MAD R2.xyz, R0, R2.x, R1;\n" - "ADD R1.z, R1.w, R0.w;\n" - "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[6];\n" - "MUL R1.xy, R1, c[4];\n" - "TEX R1, R1, texture[1], 2D;\n" - "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[7];\n" - "MAD result.color, R1.x, R2, R0;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" + "MUL R2.xyz, R1, R2;\n" + "MAD R2.xyz, R3, R4, R2;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, -R0.w, c[8];\n" + "MAD R2.xyz, R1, R0.x, R2;\n" + "ADD R0.z, R0.w, R1.w;\n" + "MAD R2.w, -R0, R1, R0.z;\n" + "ADD R0.xy, fragment.position, c[6];\n" + "MUL R0.xy, R0, c[4];\n" + "TEX R0, R0, texture[1], 2D;\n" + "ADD R2, R2, -R1;\n" + "DP4 R0.x, R0, c[7];\n" + "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -5476,10 +5475,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "MUL R0.xyz, fragment.position.y, c[2];\n" "MAD R0.xyz, fragment.position.x, c[1], R0;\n" "ADD R0.xyz, R0, c[3];\n" - "RCP R1.x, R0.z;\n" - "MUL R0.xy, R0, R1.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" + "RCP R0.z, R0.z;\n" + "MUL R0.xy, R0, R0.z;\n" + "MUL R1.xy, fragment.position, c[6];\n" + "TEX R1, R1, texture[0], 2D;\n" "MUL R2.xyz, R1, c[4].y;\n" "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" @@ -5509,10 +5508,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "MUL R0.xyz, fragment.position.y, c[2];\n" "MAD R0.xyz, fragment.position.x, c[1], R0;\n" "ADD R0.xyz, R0, c[3];\n" - "RCP R1.x, R0.z;\n" - "MUL R0.xy, R0, R1.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" + "RCP R0.z, R0.z;\n" + "MUL R0.xy, R0, R0.z;\n" + "MUL R1.xy, fragment.position, c[4];\n" + "TEX R1, R1, texture[0], 2D;\n" "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "ADD R2.x, -R1.w, c[5];\n" @@ -5769,8 +5768,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_SOFTLIGHT_NOMASK = "!!ARBfp1.0\n" "PARAM c[7] = { program.local[0..4],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -5780,48 +5779,48 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R6;\n" "MUL R0.xy, fragment.position, c[4];\n" "TEX R1, R0, texture[0], 2D;\n" - "MAX R0.x, R1.w, c[5].y;\n" + "MAX R0.x, R1.w, c[5].z;\n" "RCP R2.w, R0.x;\n" - "MUL R0.xyz, R1, R2.w;\n" - "RSQ R0.w, R0.x;\n" - "RCP R2.x, R0.w;\n" - "RSQ R0.w, R0.y;\n" - "RSQ R2.z, R0.z;\n" - "MUL R3.xyz, fragment.position.y, c[2];\n" - "MAD R3.xyz, fragment.position.x, c[1], R3;\n" - "ADD R3.xyz, R3, c[3];\n" - "RCP R2.y, R0.w;\n" - "RCP R0.w, R3.z;\n" - "MUL R3.xy, R3, R0.w;\n" - "RCP R2.z, R2.z;\n" - "MAD R6.xyz, R1.w, R2, -R1;\n" - "MUL R2.xyz, -R0, c[6].x;\n" - "ADD R5.xyz, R2, c[5].w;\n" + "MUL R2.xyz, R1, R2.w;\n" + "RSQ R0.w, R2.x;\n" + "RCP R3.x, R0.w;\n" + "RSQ R0.w, R2.y;\n" + "MUL R5.xyz, -R2, c[5].w;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R0.xyz, R0, c[3];\n" + "RCP R0.z, R0.z;\n" + "MUL R0.xy, R0, R0.z;\n" + "RSQ R0.z, R2.z;\n" "MAD R2.xyz, -R1, R2.w, c[5].x;\n" - "MUL R3.xy, R3, c[0];\n" - "TEX R0, R3, texture[1], 2D;\n" - "MAD R3.xyz, R0, c[5].z, -R0.w;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R0.w;\n" - "MUL R5.xyz, R6, R3;\n" + "RCP R3.y, R0.w;\n" + "RCP R3.z, R0.z;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R0, R0, texture[1], 2D;\n" + "MAD R4.xyz, R1.w, R3, -R1;\n" + "MAD R3.xyz, R0, c[5].y, -R0.w;\n" + "MUL R4.xyz, R3, R4;\n" + "ADD R6.xyz, R5, c[6].x;\n" + "MUL R5.xyz, R2, R3;\n" "MAD R2.xyz, -R2, R3, R0.w;\n" - "MUL R4.xyz, R1, R4;\n" - "MAD R5.xyz, R0.w, R1, R5;\n" - "ADD R6.xyz, R5, -R4;\n" - "MUL R5.xyz, R1, c[6].x;\n" - "SGE R3.xyz, R5, R1.w;\n" - "MAD R3.xyz, R3, R6, R4;\n" + "MUL R3.xyz, R0, c[5].y;\n" + "MAD R6.xyz, -R5, R6, R0.w;\n" + "MAD R4.xyz, R0.w, R1, R4;\n" + "MAD R5.xyz, -R1, R6, R4;\n" + "MUL R4.xyz, R1, c[5].w;\n" + "MUL R6.xyz, R1, R6;\n" + "SGE R4.xyz, R4, R1.w;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R1, R2, R4;\n" "MUL R2.xyz, R1, R2;\n" - "MUL R4.xyz, R0, c[5].z;\n" - "ADD R3.xyz, R3, -R2;\n" - "SGE R4.xyz, R4, R0.w;\n" - "MAD R2.xyz, R4, R3, R2;\n" + "SGE R3.xyz, R3, R0.w;\n" + "MAD R2.xyz, R3, R4, R2;\n" "ADD R2.w, -R1, c[5].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, R0.w, R1.w;\n" - "ADD R2.y, -R0.w, c[5].x;\n" - "MAD result.color.xyz, R1, R2.y, R0;\n" - "MAD result.color.w, -R0, R1, R2.x;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "ADD R0.x, R0.w, R1.w;\n" + "ADD R0.y, -R0.w, c[5].x;\n" + "MAD result.color.xyz, R1, R0.y, R2;\n" + "MAD result.color.w, -R0, R1, R0.x;\n" "END\n" ; @@ -6033,10 +6032,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.xy, R0, c[0];\n" - "TEX R1.x, R0, texture[2], 2D;\n" - "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[5];\n" - "TEX R0, R0, texture[0], 2D;\n" + "TEX R0.x, R0, texture[2], 2D;\n" + "MUL R1, fragment.color.primary, R0.x;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "ADD R2.w, -R0, c[8].y;\n" "ADD R3.xyz, R1.w, -R1;\n" "ADD R2.xyz, R0.w, -R0;\n" @@ -6201,11 +6200,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" - "TEX R1.x, R0.zwzw, texture[2], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R1.x, R0, texture[2], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[5];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R2.xyz, R1.w, R0;\n" "MAD R3.xyz, R1, R0.w, R2;\n" "MAD R2.xyz, -R1.w, R0.w, R3;\n" @@ -6251,10 +6250,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.xy, R0, c[0];\n" - "TEX R1.x, R0, texture[2], 2D;\n" - "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[5];\n" - "TEX R0, R0, texture[0], 2D;\n" + "TEX R0.x, R0, texture[2], 2D;\n" + "MUL R1, fragment.color.primary, R0.x;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "ADD R2.w, -R0, c[8].y;\n" "ADD R3.xyz, R1.w, -R1;\n" "ADD R2.xyz, R0.w, -R0;\n" @@ -6286,8 +6285,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SOFTLIGHT = "!!ARBfp1.0\n" "PARAM c[10] = { program.local[0..7],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -6297,47 +6296,47 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R6;\n" "MUL R0.xy, fragment.position, c[5];\n" "TEX R0, R0, texture[0], 2D;\n" - "MAX R1.x, R0.w, c[8].y;\n" + "MAX R1.x, R0.w, c[8].z;\n" "RCP R2.w, R1.x;\n" - "MUL R1.xyz, R0, R2.w;\n" - "RSQ R1.w, R1.x;\n" - "RCP R2.x, R1.w;\n" - "RSQ R1.w, R1.y;\n" - "RCP R2.y, R1.w;\n" - "MUL R3.xyz, fragment.position.y, c[2];\n" - "MAD R3.xyz, fragment.position.x, c[1], R3;\n" - "ADD R3.xyz, R3, c[3];\n" - "RCP R2.z, R3.z;\n" - "MUL R3.xy, R3, R2.z;\n" - "MUL R3.xy, R3, c[0];\n" - "RSQ R1.w, R1.z;\n" - "RCP R2.z, R1.w;\n" - "MAD R6.xyz, R0.w, R2, -R0;\n" - "MUL R2.xyz, -R1, c[9].x;\n" - "ADD R5.xyz, R2, c[8].w;\n" + "MUL R2.xyz, R0, R2.w;\n" + "RSQ R1.w, R2.x;\n" + "RCP R3.x, R1.w;\n" + "RSQ R1.w, R2.y;\n" + "MUL R5.xyz, -R2, c[8].w;\n" + "MUL R1.xyz, fragment.position.y, c[2];\n" + "MAD R1.xyz, fragment.position.x, c[1], R1;\n" + "ADD R1.xyz, R1, c[3];\n" + "RCP R1.z, R1.z;\n" + "MUL R1.xy, R1, R1.z;\n" + "RSQ R1.z, R2.z;\n" + "MUL R1.xy, R1, c[0];\n" "MAD R2.xyz, -R0, R2.w, c[8].x;\n" - "TEX R3.x, R3, texture[2], 2D;\n" - "MUL R1, fragment.color.primary, R3.x;\n" - "MAD R3.xyz, R1, c[8].z, -R1.w;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R1.w;\n" + "RCP R3.y, R1.w;\n" + "RCP R3.z, R1.z;\n" + "TEX R1.x, R1, texture[2], 2D;\n" + "MUL R1, fragment.color.primary, R1.x;\n" + "MAD R4.xyz, R0.w, R3, -R0;\n" + "MAD R3.xyz, R1, c[8].y, -R1.w;\n" + "MUL R4.xyz, R3, R4;\n" + "ADD R6.xyz, R5, c[9].x;\n" + "MUL R5.xyz, R2, R3;\n" "MAD R2.xyz, -R2, R3, R1.w;\n" - "MUL R5.xyz, R6, R3;\n" - "MUL R4.xyz, R0, R4;\n" - "MAD R5.xyz, R1.w, R0, R5;\n" - "ADD R6.xyz, R5, -R4;\n" - "MUL R5.xyz, R0, c[9].x;\n" - "SGE R3.xyz, R5, R0.w;\n" - "MAD R3.xyz, R3, R6, R4;\n" - "MUL R2.xyz, R0, R2;\n" - "MUL R4.xyz, R1, c[8].z;\n" - "SGE R4.xyz, R4, R1.w;\n" - "ADD R3.xyz, R3, -R2;\n" - "MAD R2.xyz, R4, R3, R2;\n" + "MUL R3.xyz, R1, c[8].y;\n" + "MAD R6.xyz, -R5, R6, R1.w;\n" + "MAD R4.xyz, R1.w, R0, R4;\n" + "MAD R5.xyz, -R0, R6, R4;\n" + "MUL R4.xyz, R0, c[8].w;\n" + "SGE R3.xyz, R3, R1.w;\n" "ADD R2.w, -R0, c[8].x;\n" - "MAD R1.xyz, R1, R2.w, R2;\n" - "ADD R2.x, -R1.w, c[8];\n" - "MAD R2.xyz, R0, R2.x, R1;\n" + "MUL R6.xyz, R0, R6;\n" + "SGE R4.xyz, R4, R0.w;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R0, R2, R4;\n" + "MUL R2.xyz, R0, R2;\n" + "MAD R2.xyz, R3, R4, R2;\n" + "MAD R2.xyz, R1, R2.w, R2;\n" + "ADD R1.x, -R1.w, c[8];\n" + "MAD R2.xyz, R0, R1.x, R2;\n" "ADD R1.z, R1.w, R0.w;\n" "MAD R2.w, -R1, R0, R1.z;\n" "ADD R1.xy, fragment.position, c[6];\n" @@ -6432,10 +6431,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MAD R0.xyz, fragment.position.x, c[1], R0;\n" "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" - "MUL R0.zw, R0.xyxy, R0.z;\n" - "MUL R1.xy, R0.zwzw, c[0];\n" - "MUL R0.xy, fragment.position, c[6];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.xy, R0, R0.z;\n" + "MUL R1.xy, R0, c[0];\n" + "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R2.xyz, R0, c[4].y;\n" "TEX R1.x, R1, texture[1], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" @@ -6466,10 +6465,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MAD R0.xyz, fragment.position.x, c[1], R0;\n" "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" - "MUL R0.zw, R0.xyxy, R0.z;\n" - "MUL R1.xy, R0.zwzw, c[0];\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.xy, R0, R0.z;\n" + "MUL R1.xy, R0, c[0];\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "TEX R1.x, R1, texture[1], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" "ADD R2.x, -R0.w, c[5];\n" @@ -6493,10 +6492,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" - "TEX R1.x, R0.zwzw, texture[1], 2D;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" "ADD R2, R1, R0;\n" "MAD result.color, -R1, R0, R2;\n" @@ -6517,10 +6516,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.xy, R0, c[0];\n" - "TEX R1.x, R0, texture[1], 2D;\n" - "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "TEX R0.x, R0, texture[1], 2D;\n" + "MUL R1, fragment.color.primary, R0.x;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "ADD R3.xyz, R1.w, -R1;\n" "ADD R2.xyz, R0.w, -R0;\n" "MUL R2.xyz, R2, R3;\n" @@ -6556,10 +6555,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" - "TEX R1.x, R0.zwzw, texture[1], 2D;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" "MUL R2.xyz, R1, R0.w;\n" "MUL R3.xyz, R1.w, R0;\n" @@ -6586,10 +6585,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" - "TEX R1.x, R0.zwzw, texture[1], 2D;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" "MUL R2.xyz, R1, R0.w;\n" "MUL R3.xyz, R1.w, R0;\n" @@ -6660,11 +6659,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" - "TEX R1.x, R0.zwzw, texture[1], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R1.x, R0, texture[1], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R2.xyz, R1.w, R0;\n" "MAD R3.xyz, R1, R0.w, R2;\n" "ADD R2.w, -R0, c[5].x;\n" @@ -6704,10 +6703,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.xy, R0, c[0];\n" - "TEX R1.x, R0, texture[1], 2D;\n" - "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "TEX R0.x, R0, texture[1], 2D;\n" + "MUL R1, fragment.color.primary, R0.x;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "ADD R2.w, -R0, c[5].y;\n" "ADD R3.xyz, R1.w, -R1;\n" "ADD R2.xyz, R0.w, -R0;\n" @@ -6733,8 +6732,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SOFTLIGHT_NOMASK = "!!ARBfp1.0\n" "PARAM c[7] = { program.local[0..4],\n" - " { 1, 9.9999997e-006, 2, 3 },\n" - " { 8 } };\n" + " { 1, 2, 9.9999997e-006, 8 },\n" + " { 3 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -6744,49 +6743,49 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R6;\n" "MUL R0.xy, fragment.position, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" - "MAX R1.x, R0.w, c[5].y;\n" + "MAX R1.x, R0.w, c[5].z;\n" "RCP R2.w, R1.x;\n" - "MUL R1.xyz, R0, R2.w;\n" - "RSQ R1.w, R1.x;\n" - "RCP R2.x, R1.w;\n" - "RSQ R1.w, R1.y;\n" - "RCP R2.y, R1.w;\n" - "MUL R3.xyz, fragment.position.y, c[2];\n" - "MAD R3.xyz, fragment.position.x, c[1], R3;\n" - "ADD R3.xyz, R3, c[3];\n" - "RCP R2.z, R3.z;\n" - "MUL R3.xy, R3, R2.z;\n" - "MUL R3.xy, R3, c[0];\n" - "RSQ R1.w, R1.z;\n" - "RCP R2.z, R1.w;\n" - "MAD R6.xyz, R0.w, R2, -R0;\n" - "MUL R2.xyz, -R1, c[6].x;\n" - "ADD R5.xyz, R2, c[5].w;\n" + "MUL R2.xyz, R0, R2.w;\n" + "RSQ R1.w, R2.x;\n" + "RCP R3.x, R1.w;\n" + "RSQ R1.w, R2.y;\n" + "MUL R5.xyz, -R2, c[5].w;\n" + "MUL R1.xyz, fragment.position.y, c[2];\n" + "MAD R1.xyz, fragment.position.x, c[1], R1;\n" + "ADD R1.xyz, R1, c[3];\n" + "RCP R1.z, R1.z;\n" + "MUL R1.xy, R1, R1.z;\n" + "RSQ R1.z, R2.z;\n" + "MUL R1.xy, R1, c[0];\n" "MAD R2.xyz, -R0, R2.w, c[5].x;\n" - "TEX R3.x, R3, texture[1], 2D;\n" - "MUL R1, fragment.color.primary, R3.x;\n" - "MAD R3.xyz, R1, c[5].z, -R1.w;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R1.w;\n" - "MUL R5.xyz, R6, R3;\n" + "RCP R3.y, R1.w;\n" + "RCP R3.z, R1.z;\n" + "TEX R1.x, R1, texture[1], 2D;\n" + "MUL R1, fragment.color.primary, R1.x;\n" + "MAD R4.xyz, R0.w, R3, -R0;\n" + "MAD R3.xyz, R1, c[5].y, -R1.w;\n" + "MUL R4.xyz, R3, R4;\n" + "ADD R6.xyz, R5, c[6].x;\n" + "MUL R5.xyz, R2, R3;\n" "MAD R2.xyz, -R2, R3, R1.w;\n" - "MUL R4.xyz, R0, R4;\n" - "MAD R5.xyz, R1.w, R0, R5;\n" - "ADD R6.xyz, R5, -R4;\n" - "MUL R5.xyz, R0, c[6].x;\n" - "SGE R3.xyz, R5, R0.w;\n" - "MAD R3.xyz, R3, R6, R4;\n" + "MUL R3.xyz, R1, c[5].y;\n" + "MAD R6.xyz, -R5, R6, R1.w;\n" + "MAD R4.xyz, R1.w, R0, R4;\n" + "MAD R5.xyz, -R0, R6, R4;\n" + "MUL R4.xyz, R0, c[5].w;\n" + "MUL R6.xyz, R0, R6;\n" + "SGE R4.xyz, R4, R0.w;\n" + "MAD R4.xyz, R4, R5, R6;\n" + "MAD R4.xyz, -R0, R2, R4;\n" "MUL R2.xyz, R0, R2;\n" - "MUL R4.xyz, R1, c[5].z;\n" - "ADD R3.xyz, R3, -R2;\n" - "SGE R4.xyz, R4, R1.w;\n" - "MAD R2.xyz, R4, R3, R2;\n" + "SGE R3.xyz, R3, R1.w;\n" + "MAD R2.xyz, R3, R4, R2;\n" "ADD R2.w, -R0, c[5].x;\n" - "MAD R1.xyz, R1, R2.w, R2;\n" - "ADD R2.x, R1.w, R0.w;\n" - "ADD R2.y, -R1.w, c[5].x;\n" - "MAD result.color.xyz, R0, R2.y, R1;\n" - "MAD result.color.w, -R1, R0, R2.x;\n" + "MAD R2.xyz, R1, R2.w, R2;\n" + "ADD R1.x, R1.w, R0.w;\n" + "ADD R1.y, -R1.w, c[5].x;\n" + "MAD result.color.xyz, R0, R1.y, R2;\n" + "MAD result.color.w, -R1, R0, R1.x;\n" "END\n" ; @@ -6803,10 +6802,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" - "TEX R1.x, R0.zwzw, texture[1], 2D;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" "MUL R3.xyz, R1.w, R0;\n" "MUL R2.xyz, R1, R0.w;\n" @@ -6831,10 +6830,10 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "ADD R0.xyz, R0, c[3];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" - "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" - "TEX R1.x, R0.zwzw, texture[1], 2D;\n" - "MUL R0.xy, fragment.position, c[4];\n" - "TEX R0, R0, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R0, R0.zwzw, texture[0], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" "MUL R2.xyz, R1.w, R0;\n" "MAD R3.xyz, R1, R0.w, R2;\n" @@ -6864,9 +6863,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MUL R0.xy, R0, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" "TEX R1.x, R1, texture[1], 2D;\n" - "DP4 R0.x, R0, c[6];\n" - "MUL R1, fragment.color.primary, R1.x;\n" - "MUL result.color, R1, R0.x;\n" + "DP4 R1.y, R0, c[6];\n" + "MUL R0, fragment.color.primary, R1.x;\n" + "MUL result.color, R0, R1.y;\n" "END\n" ; diff --git a/src/opengl/util/masks.conf b/src/opengl/util/masks.conf index 733ac81..d853d0b 100644 --- a/src/opengl/util/masks.conf +++ b/src/opengl/util/masks.conf @@ -1,3 +1,2 @@ FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA trap_exact_aa.glsl FRAGMENT_PROGRAM_MASK_ELLIPSE_AA ellipse_aa.glsl -#FRAGMENT_PROGRAM_MASK_ELLIPSE ellipse.glsl diff --git a/src/opengl/util/simple_porter_duff.glsl b/src/opengl/util/simple_porter_duff.glsl index 83aef48..4cb0599 100644 --- a/src/opengl/util/simple_porter_duff.glsl +++ b/src/opengl/util/simple_porter_duff.glsl @@ -7,10 +7,10 @@ vec4 composite(vec4 src, vec4 dst) result.xyz = porterduff_ab.x * src.xyz * dst.a + porterduff_ab.y * dst.xyz * src.a - + porterduff_xyz.y * src.xyz * (1 - dst.a) - + porterduff_xyz.z * dst.xyz * (1 - src.a); + + porterduff_xyz.y * src.xyz * (1.0 - dst.a) + + porterduff_xyz.z * dst.xyz * (1.0 - src.a); - result.a = dot(porterduff_xyz, vec3(src.a * dst.a, src.a * (1 - dst.a), dst.a * (1 - src.a))); + result.a = dot(porterduff_xyz, vec3(src.a * dst.a, src.a * (1.0 - dst.a), dst.a * (1.0 - src.a))); return result; } diff --git a/src/opengl/util/trap_exact_aa.glsl b/src/opengl/util/trap_exact_aa.glsl index b96f87d..1637f43 100644 --- a/src/opengl/util/trap_exact_aa.glsl +++ b/src/opengl/util/trap_exact_aa.glsl @@ -14,7 +14,7 @@ float quad_aa() vec2 invA = gl_TexCoord[0].zw; // transform right line to left to be able to use same calculations for both - vecX.zw = 2 * gl_FragCoord.x - vecX.zw; + vecX.zw = 2.0 * gl_FragCoord.x - vecX.zw; vec2 topX = vec2(vecX.x, vecX.z); vec2 bottomX = vec2(vecX.y, vecX.w); @@ -33,18 +33,18 @@ float quad_aa() vec2 temp = mix(area - 0.5 * (right - bottomXTemp) * (intersectY.yw - bottom), // left < bottom < right < top (0.5 * (topXTemp + bottomXTemp) - left) * area, // left < bottom < top < right - step(topXTemp, right)); + step(topXTemp, right.xx)); vec2 excluded = 0.5 * (top - intersectY.xz) * (topXTemp - left); // bottom < left < top < right excluded = mix((top - 0.5 * (intersectY.yw + intersectY.xz)) * (right - left), // bottom < left < right < top - excluded, step(topXTemp, right)); + excluded, step(topXTemp, right.xx)); excluded = mix(temp, // left < bottom < right (see calculation of temp) - excluded, step(bottomXTemp, left)); + excluded, step(bottomXTemp, left.xx)); excluded = mix(vec2(area, area), // right < bottom < top - excluded, step(bottomXTemp, right)); + excluded, step(bottomXTemp, right.xx)); excluded *= step(left, topXTemp); @@ -53,6 +53,6 @@ float quad_aa() void main() { - gl_FragColor = quad_aa(); + gl_FragColor = quad_aa().xxxx; } |