From fffe92c1c46f8a78b7d2bcef08d18a3550e91293 Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Thu, 27 Aug 2009 13:55:43 +0200 Subject: Fix y orientation of pixmap brushes and pixmaptiles in gl1 engine Reviewed-by: Samuel --- src/opengl/qpaintengine_opengl.cpp | 8 - src/opengl/util/fragmentprograms_p.h | 6893 +++++++++++++++++----------------- src/opengl/util/generator.pro | 2 + src/opengl/util/texture_brush.glsl | 2 - 4 files changed, 3375 insertions(+), 3530 deletions(-) diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp index ade67d3..ac41ab0 100644 --- a/src/opengl/qpaintengine_opengl.cpp +++ b/src/opengl/qpaintengine_opengl.cpp @@ -4351,13 +4351,6 @@ void QOpenGLPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pm, con GLdouble tc_w = r.width()/pm.width(); GLdouble tc_h = r.height()/pm.height(); - // Rotate the texture so that it is aligned correctly and the - // wrapping is done correctly - glMatrixMode(GL_TEXTURE); - glPushMatrix(); - glRotatef(180.0, 0.0, 1.0, 0.0); - glRotatef(180.0, 0.0, 0.0, 1.0); - q_vertexType vertexArray[4*2]; q_vertexType texCoordArray[4*2]; @@ -4376,7 +4369,6 @@ void QOpenGLPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pm, con glDrawArrays(GL_TRIANGLE_FAN, 0, 4); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); - glPopMatrix(); glDisable(GL_TEXTURE_2D); #ifndef QT_OPENGL_ES diff --git a/src/opengl/util/fragmentprograms_p.h b/src/opengl/util/fragmentprograms_p.h index 9451eda..6decaca 100644 --- a/src/opengl/util/fragmentprograms_p.h +++ b/src/opengl/util/fragmentprograms_p.h @@ -1,57 +1,6 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtOpenGL module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain -** additional rights. These rights are described in the Nokia Qt LGPL -** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://qt.nokia.com/contact. -** $QT_END_LICENSE$ -** -****************************************************************************/ #ifndef FRAGMENTPROGRAMS_H #define FRAGMENTPROGRAMS_H -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - enum FragmentVariable { VAR_BRUSH_TEXTURE, VAR_LINEAR, @@ -71,7 +20,7 @@ enum FragmentVariable { VAR_FMP2_M_RADIUS2, VAR_FMP, VAR_INV_MATRIX_M0, - VAR_ANGLE + VAR_ANGLE, }; enum FragmentBrushType { @@ -80,7 +29,7 @@ enum FragmentBrushType { FRAGMENT_PROGRAM_BRUSH_CONICAL, FRAGMENT_PROGRAM_BRUSH_LINEAR, FRAGMENT_PROGRAM_BRUSH_TEXTURE, - FRAGMENT_PROGRAM_BRUSH_PATTERN + FRAGMENT_PROGRAM_BRUSH_PATTERN, }; enum FragmentCompositionModeType { @@ -109,12 +58,12 @@ enum FragmentCompositionModeType { COMPOSITION_MODES_DIFFERENCE_NOMASK, COMPOSITION_MODES_EXCLUSION_NOMASK, COMPOSITION_MODE_BLEND_MODE_MASK, - COMPOSITION_MODE_BLEND_MODE_NOMASK + COMPOSITION_MODE_BLEND_MODE_NOMASK, }; enum FragmentMaskType { FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA, - FRAGMENT_PROGRAM_MASK_ELLIPSE_AA + FRAGMENT_PROGRAM_MASK_ELLIPSE_AA, }; static const unsigned int num_fragment_variables = 19; @@ -133,55 +82,55 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_MASK_TRAPEZOID_AA = "TEMP R4;\n" "ADD R4.x, fragment.position, c[0];\n" "ADD R0.y, fragment.position, -c[0].x;\n" - "MAX R2.x, R0.y, fragment.texcoord[0].y;\n" + "MAX R3.w, fragment.texcoord[0].y, R0.y;\n" "ADD R0.x, fragment.position.y, c[0];\n" - "MIN R2.y, R0.x, fragment.texcoord[0].x;\n" - "ADD R3.x, fragment.position, -c[0];\n" + "MIN R3.z, 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" - "MOV R3.y, R4.x;\n" - "MOV R0.yw, R2.x;\n" - "MOV R0.xz, R2.y;\n" - "MAD R0, fragment.texcoord[1].xxzz, R0, fragment.texcoord[1].yyww;\n" - "MAD R1.xy, fragment.position.x, c[0].y, -R0.zwzw;\n" - "MOV R0.w, R1.x;\n" - "MOV R1.x, R0.y;\n" - "MOV R0.z, R0.x;\n" - "SGE R2.zw, R1.xyxy, R0;\n" - "MAX R0.xy, R0.zwzw, R1;\n" - "MIN R0.zw, R0, R1.xyxy;\n" - "MAD R2.zw, R2, R1, fragment.texcoord[0];\n" - "ADD R1, R3.xyxy, -R0.zzww;\n" - "MAD R1, R1, R2.zzww, R2.x;\n" - "ADD R3.zw, R0.xyxy, R0;\n" - "ADD R3.y, R2, -R2.x;\n" - "ADD R2.zw, R1.xyyw, -R2.x;\n" - "ADD R4.zw, R4.x, -R0;\n" - "MUL R2.zw, R4, R2;\n" - "ADD R4.zw, R1.xyyw, R1.xyxz;\n" - "ADD R1.xz, R2.y, -R1;\n" - "MAD R2.zw, -R2, c[0].x, R3.y;\n" - "MAD R3.zw, R3, c[0].x, -R3.x;\n" - "MAD R3.zw, R3, R3.y, -R2;\n" - "ADD R1.y, R4.x, -R3.x;\n" - "MAD R4.zw, -R4, c[0].x, R2.y;\n" - "MUL R4.zw, R4, R1.y;\n" - "ADD R1.yw, R0.xxzy, -R3.x;\n" - "MUL R1.xy, R1.xzzw, R1.ywzw;\n" - "MAD R1.zw, R1.xyxy, c[0].x, -R4;\n" - "SGE R1.xy, R4.x, R0;\n" - "MUL R1.zw, R1.xyxy, R1;\n" - "MAD R1.xy, R1, R3.zwzw, R2.zwzw;\n" - "SGE R2.zw, R3.x, R0;\n" - "ADD R1.zw, R4, R1;\n" - "ADD R1.zw, R1, -R1.xyxy;\n" - "MAD R1.xy, R2.zwzw, R1.zwzw, R1;\n" - "ADD R1.xy, R1, -R3.y;\n" - "SGE R0.zw, R4.x, R0;\n" - "MAD R0.zw, R0, R1.xyxy, R3.y;\n" - "SGE R0.xy, R0, R3.x;\n" + "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" + "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, R3.y, -R0;\n" - "SGE R0.z, R2.y, R2.x;\n" + "ADD R0.x, R2.w, -R0;\n" + "SGE R0.z, R3, R3.w;\n" "ADD R0.x, R0, -R0.y;\n" "MUL result.color, R0.x, R0.z;\n" "END\n" @@ -195,20 +144,20 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_MASK_ELLIPSE_AA = "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R1.xyz, R0.y, c[2];\n" - "MAD R0.xyz, R0.x, c[1], R1;\n" - "ADD R0.xyz, R0, c[3];\n" + "ADD R0.xy, fragment.position, c[3];\n" + "MUL R1.xyz, R0.y, c[1];\n" + "MAD R0.xyz, R0.x, c[0], R1;\n" + "ADD R0.xyz, R0, c[2];\n" "RCP R2.z, R0.z;\n" - "MUL R0.zw, R0.xyxy, R2.z;\n" - "MUL R2.xy, R0.zwzw, fragment.texcoord[0];\n" - "MOV R1.xy, c[1];\n" - "MOV R1.zw, c[2].xyxy;\n" - "MOV R0.x, c[1].z;\n" - "MOV R0.y, c[2].z;\n" - "MAD R0, -R0.xyxy, R0.zzww, R1.xzyw;\n" + "MUL R1.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 R1.xy, R2, fragment.texcoord[0];\n" - "MUL R0, R0, R2.z;\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" @@ -230,36 +179,34 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_MASK_ELLIPSE_AA = static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 1 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "MUL R0.xy, fragment.position, c[3];\n" - "TEX R1, R0, texture[0], 2D;\n" - "MUL R0.xyz, R1, c[6].y;\n" - "MUL R2.xyz, R0, fragment.color.primary.w;\n" - "MUL R0.xyz, fragment.color.primary, c[6].x;\n" - "MAD R2.xyz, R0, R1.w, R2;\n" - "ADD R3.xy, fragment.position, c[0];\n" - "ADD R0.w, -R1, c[4].x;\n" - "MUL R0.xyz, fragment.color.primary, c[5].y;\n" - "MAD R2.xyz, R0, R0.w, R2;\n" - "MUL R0.xyz, R1, c[5].z;\n" - "ADD R0.w, -fragment.color.primary, c[4].x;\n" - "MAD R2.xyz, R0, R0.w, R2;\n" - "ADD R0.y, -R1.w, c[4].x;\n" - "MUL R0.x, fragment.color.primary.w, R1.w;\n" - "MUL R0.y, fragment.color.primary.w, R0;\n" - "MUL R0.z, R1.w, R0.w;\n" - "DP3 R2.w, R0, c[5];\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.xyz, R0, c[0].y;\n" + "MUL R2.xyz, fragment.color.primary.w, R1;\n" + "MUL R1.xyz, fragment.color.primary, c[0].x;\n" + "MAD R2.xyz, R0.w, R1, R2;\n" + "ADD R3.xy, fragment.position, c[4];\n" + "ADD R1.w, -R0, c[6].x;\n" + "MUL R1.xyz, fragment.color.primary, c[1].y;\n" + "MAD R2.xyz, R1.w, R1, R2;\n" + "MUL R1.xyz, R0, c[1].z;\n" + "ADD R2.w, -fragment.color.primary, c[6].x;\n" + "MAD R2.xyz, R2.w, R1, R2;\n" + "MUL R1.z, R0.w, R2.w;\n" + "MUL R1.x, fragment.color.primary.w, R0.w;\n" + "MUL R1.y, fragment.color.primary.w, R1.w;\n" + "DP3 R2.w, R1, c[1];\n" + "MUL R3.xy, R3, c[2];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[5];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -270,21 +217,21 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xy, fragment.position, c[3];\n" - "TEX R1, R0, texture[0], 2D;\n" - "ADD R0.x, -R1.w, c[4];\n" - "MUL R0.xyz, fragment.color.primary, R0.x;\n" - "MAD R0.xyz, fragment.color.primary, R1, R0;\n" - "ADD R0.w, -fragment.color.primary, c[4].x;\n" - "MAD R2.xyz, R1, R0.w, R0;\n" - "ADD R0.z, fragment.color.primary.w, R1.w;\n" - "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, fragment.position, c[1];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R1.x, -R0.w, c[4];\n" + "MUL R1.xyz, fragment.color.primary, R1.x;\n" + "MAD R1.xyz, fragment.color.primary, R0, R1;\n" + "ADD R1.w, -fragment.color.primary, c[4].x;\n" + "MAD R2.xyz, R0, R1.w, R1;\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" + "MUL R1.xy, R1, c[0];\n" + "TEX R1, R1, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[3];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -294,16 +241,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xy, fragment.position, c[3];\n" - "TEX R1, R0, texture[0], 2D;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "ADD R2, fragment.color.primary, R1;\n" - "MUL R0.xy, R0, c[1];\n" - "MAD R2, -fragment.color.primary, R1, R2;\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, fragment.position, c[1];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R1.xy, fragment.position, c[2];\n" + "ADD R2, fragment.color.primary, R0;\n" + "MUL R1.xy, R1, c[0];\n" + "MAD R2, -fragment.color.primary, R0, R2;\n" + "TEX R1, R1, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[3];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -315,7 +262,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xy, fragment.position, c[3];\n" + "MUL R0.xy, fragment.position, c[1];\n" "TEX R1, R0, texture[0], 2D;\n" "ADD R0.w, -R1, c[4].y;\n" "MUL R3.xyz, fragment.color.primary, R0.w;\n" @@ -336,11 +283,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "MAD R2.xyz, R0, R3, R2;\n" "ADD R0.z, fragment.color.primary.w, R1.w;\n" "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" + "ADD R0.xy, fragment.position, c[2];\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" + "DP4 R0.x, R0, c[3];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -352,23 +299,23 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xy, fragment.position, c[3];\n" - "TEX R1, R0, texture[0], 2D;\n" - "MUL R2.xyz, R1, fragment.color.primary.w;\n" - "MUL R0.xyz, fragment.color.primary, R1.w;\n" - "MIN R0.xyz, R0, R2;\n" - "ADD R0.w, -R1, c[4].x;\n" - "MAD R0.xyz, fragment.color.primary, R0.w, R0;\n" - "ADD R0.w, -fragment.color.primary, c[4].x;\n" - "MAD R2.xyz, R1, R0.w, R0;\n" - "ADD R0.z, fragment.color.primary.w, R1.w;\n" - "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, fragment.position, c[1];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R2.xyz, fragment.color.primary.w, R0;\n" + "MUL R1.xyz, fragment.color.primary, R0.w;\n" + "MIN R1.xyz, R1, R2;\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" + "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" + "MUL R1.xy, R1, c[0];\n" + "TEX R1, R1, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[3];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -379,35 +326,35 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xy, fragment.position, c[3];\n" - "TEX R1, R0, texture[0], 2D;\n" - "MUL R2.xyz, R1, fragment.color.primary.w;\n" - "MUL R0.xyz, fragment.color.primary, R1.w;\n" - "MAX R0.xyz, R0, R2;\n" - "ADD R0.w, -R1, c[4].x;\n" - "MAD R0.xyz, fragment.color.primary, R0.w, R0;\n" - "ADD R0.w, -fragment.color.primary, c[4].x;\n" - "MAD R2.xyz, R1, R0.w, R0;\n" - "ADD R0.z, fragment.color.primary.w, R1.w;\n" - "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, fragment.position, c[1];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R2.xyz, fragment.color.primary.w, R0;\n" + "MUL R1.xyz, fragment.color.primary, R0.w;\n" + "MAX R1.xyz, R1, R2;\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" + "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" + "MUL R1.xy, R1, c[0];\n" + "TEX R1, R1, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[3];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_COLORDODGE = "!!ARBfp1.0\n" "PARAM c[5] = { program.local[0..3],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xy, fragment.position, c[3];\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" @@ -417,7 +364,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "RCP R1.x, R1.x;\n" "MAD R1.xyz, -fragment.color.primary, R1.x, c[4].x;\n" "MAX R1.xyz, R1, c[4].y;\n" - "MUL R2.xyz, R0, fragment.color.primary.w;\n" + "MUL R2.xyz, fragment.color.primary.w, R0;\n" "MUL R1.w, fragment.color.primary, R0;\n" "RCP R1.x, R1.x;\n" "RCP R1.y, R1.y;\n" @@ -430,11 +377,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "MAD R2.xyz, R2, R3, R1;\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[0];\n" - "MUL R1.xy, R1, c[1];\n" + "ADD R1.xy, fragment.position, c[2];\n" + "MUL R1.xy, R1, c[0];\n" "TEX R1, R1, texture[1], 2D;\n" "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[2];\n" + "DP4 R1.x, R1, c[3];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -442,29 +389,28 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_COLORBURN = "!!ARBfp1.0\n" "PARAM c[5] = { program.local[0..3],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xy, fragment.position, c[3];\n" + "MUL R0.xy, fragment.position, c[1];\n" "TEX R0, R0, texture[0], 2D;\n" "ADD R1.w, -R0, c[4].x;\n" - "MUL R1.xyz, R0, fragment.color.primary.w;\n" + "MUL R1.xyz, fragment.color.primary.w, R0;\n" "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" "MAD R1.xyz, -fragment.color.primary.w, R0.w, R2;\n" "MUL R3.xyz, fragment.color.primary.w, R1;\n" "MAX R1.xyz, fragment.color.primary, c[4].y;\n" + "ADD R2.w, -fragment.color.primary, c[4].x;\n" "MUL R4.xyz, fragment.color.primary, R1.w;\n" "RCP R1.x, R1.x;\n" "RCP R1.y, R1.y;\n" "RCP R1.z, R1.z;\n" "MAD R3.xyz, R3, R1, R4;\n" - "ADD R2.w, -fragment.color.primary, c[4].x;\n" "MUL R1.xyz, R0, R2.w;\n" "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" - "ADD R2.w, -fragment.color.primary, c[4].x;\n" "MAD R3.xyz, R0, R2.w, R3;\n" "MUL R1.w, fragment.color.primary, R0;\n" "ADD R3.xyz, R3, -R1;\n" @@ -472,11 +418,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "MAD R2.xyz, R2, R3, R1;\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[0];\n" - "MUL R1.xy, R1, c[1];\n" + "ADD R1.xy, fragment.position, c[2];\n" + "MUL R1.xy, R1, c[0];\n" "TEX R1, R1, texture[1], 2D;\n" "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[2];\n" + "DP4 R1.x, R1, c[3];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -489,7 +435,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xy, fragment.position, c[3];\n" + "MUL R0.xy, fragment.position, c[1];\n" "TEX R1, R0, texture[0], 2D;\n" "ADD R0.w, -R1, c[4].y;\n" "MUL R3.xyz, fragment.color.primary, R0.w;\n" @@ -510,11 +456,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "MAD R2.xyz, R0, R3, R2;\n" "ADD R0.z, fragment.color.primary.w, R1.w;\n" "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" + "ADD R0.xy, fragment.position, c[2];\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" + "DP4 R0.x, R0, c[3];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -522,58 +468,56 @@ 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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xy, fragment.position, c[3];\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" "RCP R1.w, R1.x;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R1.xyz, -R2, c[4].w;\n" + "MUL R1.xyz, -R2, c[5].x;\n" "RSQ R2.w, R2.x;\n" - "ADD R4.xyz, R1, c[5].x;\n" + "ADD R4.xyz, R1, c[4].w;\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.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R5.xyz, R2, R0.w, -R0;\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 R1.xyz, -R1, R2, fragment.color.primary.w;\n" - "MAD R5.xyz, R0, fragment.color.primary.w, R4;\n" "MUL R3.xyz, R0, R3;\n" - "MUL R4.xyz, R0, c[4].w;\n" - "ADD R5.xyz, R5, -R3;\n" - "SGE R4.xyz, R4, R0.w;\n" - "MUL R4.xyz, R4, R5;\n" - "ADD R2.xyz, R3, R4;\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 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" - "MUL R2.xyz, R3, R2;\n" - "ADD R1.xyz, R1, R2;\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" "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[0];\n" - "MUL R1.xy, R1, c[1];\n" + "ADD R1.xy, fragment.position, c[2];\n" + "MUL R1.xy, R1, c[0];\n" "TEX R1, R1, texture[1], 2D;\n" "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[2];\n" + "DP4 R1.x, R1, c[3];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -586,77 +530,75 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xy, fragment.position, c[3];\n" - "TEX R1, R0, texture[0], 2D;\n" - "MUL R2.xyz, R1, fragment.color.primary.w;\n" - "MUL R0.xyz, fragment.color.primary, R1.w;\n" - "MIN R0.xyz, R0, R2;\n" - "ADD R3.xyz, fragment.color.primary, R1;\n" - "MAD R2.xyz, -R0, c[4].x, R3;\n" - "ADD R0.z, fragment.color.primary.w, R1.w;\n" - "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, fragment.position, c[1];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R1.xyz, fragment.color.primary, R0;\n" + "MUL R3.xyz, fragment.color.primary.w, R0;\n" + "MUL R2.xyz, fragment.color.primary, R0.w;\n" + "MIN R2.xyz, R2, R3;\n" + "MAD R2.xyz, -R2, c[4].x, R1;\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" + "MUL R1.xy, R1, c[0];\n" + "TEX R1, R1, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[3];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_EXCLUSION = "!!ARBfp1.0\n" "PARAM c[5] = { program.local[0..3],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xy, fragment.position, c[3];\n" - "TEX R1, R0, texture[0], 2D;\n" - "MUL R0.xyz, R1, fragment.color.primary.w;\n" - "MAD R2.xyz, fragment.color.primary, R1.w, R0;\n" - "MUL R0.xyz, fragment.color.primary, R1;\n" - "MAD R0.xyz, -R0, c[4].y, R2;\n" - "ADD R0.w, -R1, c[4].x;\n" - "MAD R0.xyz, fragment.color.primary, R0.w, R0;\n" - "ADD R0.w, -fragment.color.primary, c[4].x;\n" - "MAD R2.xyz, R1, R0.w, R0;\n" - "ADD R0.z, fragment.color.primary.w, R1.w;\n" - "MAD R2.w, -fragment.color.primary, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, fragment.position, c[1];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.xyz, fragment.color.primary.w, R0;\n" + "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" + "MUL R1.xyz, fragment.color.primary, R0;\n" + "MAD R1.xyz, -R1, c[4].x, R2;\n" + "ADD R1.w, -R0, c[4].y;\n" + "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" + "ADD R1.w, -fragment.color.primary, c[4].y;\n" + "MAD R2.xyz, R0, R1.w, R1;\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" + "MUL R1.xy, R1, c[0];\n" + "TEX R1, R1, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[3];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = "!!ARBfp1.0\n" - "PARAM c[4] = { program.local[0],\n" - " { 1 },\n" - " program.local[2..3] };\n" + "PARAM c[4] = { program.local[0..2],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xy, fragment.position, c[0];\n" + "MUL R0.xy, fragment.position, c[2];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R1.xyz, R0, c[3].y;\n" - "MUL R2.xyz, R1, fragment.color.primary.w;\n" - "MUL R1.xyz, fragment.color.primary, c[3].x;\n" - "MAD R2.xyz, R1, R0.w, R2;\n" - "MUL R0.xyz, R0, c[2].z;\n" - "ADD R1.w, -R0, c[1].x;\n" - "MUL R1.xyz, fragment.color.primary, c[2].y;\n" - "MAD R1.xyz, R1, R1.w, R2;\n" - "ADD R1.w, -fragment.color.primary, c[1].x;\n" - "MAD result.color.xyz, R0, R1.w, R1;\n" - "ADD R0.y, -R0.w, c[1].x;\n" + "MUL R1.xyz, R0, c[0].y;\n" + "MUL R2.xyz, fragment.color.primary.w, R1;\n" + "MUL R1.xyz, fragment.color.primary, c[0].x;\n" + "MAD R2.xyz, R0.w, R1, R2;\n" + "MUL R0.xyz, R0, c[1].z;\n" + "ADD R1.w, -R0, c[3].x;\n" + "MUL R1.xyz, fragment.color.primary, c[1].y;\n" + "MAD R1.xyz, R1.w, R1, R2;\n" + "ADD R2.x, -fragment.color.primary.w, c[3];\n" + "MAD result.color.xyz, R2.x, R0, R1;\n" "MUL R0.x, fragment.color.primary.w, R0.w;\n" - "MUL R0.z, R0.w, R1.w;\n" - "MUL R0.y, fragment.color.primary.w, R0;\n" - "DP3 result.color.w, R0, c[2];\n" + "MUL R0.z, R0.w, R2.x;\n" + "MUL R0.y, fragment.color.primary.w, R1.w;\n" + "DP3 result.color.w, R0, c[1];\n" "END\n" ; @@ -732,7 +674,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R2;\n" "MUL R0.xy, fragment.position, c[0];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R2.xyz, R0, fragment.color.primary.w;\n" + "MUL R2.xyz, fragment.color.primary.w, R0;\n" "MUL R1.xyz, fragment.color.primary, R0.w;\n" "MIN R1.xyz, R1, R2;\n" "ADD R1.w, -R0, c[1].x;\n" @@ -753,7 +695,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R2;\n" "MUL R0.xy, fragment.position, c[0];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R2.xyz, R0, fragment.color.primary.w;\n" + "MUL R2.xyz, fragment.color.primary.w, R0;\n" "MUL R1.xyz, fragment.color.primary, R0.w;\n" "MAX R1.xyz, R1, R2;\n" "ADD R1.w, -R0, c[1].x;\n" @@ -768,7 +710,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_COLORDODGE_NOMASK = "!!ARBfp1.0\n" "PARAM c[2] = { program.local[0],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -782,7 +724,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "MAD R1.xyz, fragment.color.primary, R1.w, R1;\n" "MAD R2.xyz, -fragment.color.primary, R2.x, c[1].x;\n" "MAX R2.xyz, R2, c[1].y;\n" - "MUL R0.xyz, R0, fragment.color.primary.w;\n" + "MUL R0.xyz, fragment.color.primary.w, R0;\n" "MUL R1.w, fragment.color.primary, R0;\n" "RCP R2.x, R2.x;\n" "RCP R2.y, R2.y;\n" @@ -801,7 +743,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_COLORBURN_NOMASK = "!!ARBfp1.0\n" "PARAM c[2] = { program.local[0],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -809,7 +751,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R4;\n" "MUL R0.xy, fragment.position, c[0];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R1.xyz, R0, fragment.color.primary.w;\n" + "MUL R1.xyz, fragment.color.primary.w, R0;\n" "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" "MAD R1.xyz, -fragment.color.primary.w, R0.w, R2;\n" "MUL R3.xyz, fragment.color.primary.w, R1;\n" @@ -822,7 +764,6 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "RCP R1.z, R1.z;\n" "MAD R1.xyz, R3, R1, R4;\n" "MUL R3.xyz, R0, R2.w;\n" - "ADD R2.w, -fragment.color.primary, c[1].x;\n" "MAD R0.xyz, R0, R2.w, R1;\n" "MAD R1.xyz, fragment.color.primary, R1.w, R3;\n" "MUL R1.w, fragment.color.primary, R0;\n" @@ -869,8 +810,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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -882,8 +823,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "MAX R1.x, R0.w, c[1].y;\n" "RCP R1.w, R1.x;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R1.xyz, -R2, c[1].w;\n" - "ADD R4.xyz, R1, c[2].x;\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" @@ -891,25 +832,23 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "RCP R2.x, R2.w;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R5.xyz, R2, R0.w, -R0;\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 R1.xyz, -R1, R2, fragment.color.primary.w;\n" - "MAD R5.xyz, R0, fragment.color.primary.w, R4;\n" "MUL R3.xyz, R0, R3;\n" - "MUL R4.xyz, R0, c[1].w;\n" - "ADD R5.xyz, R5, -R3;\n" - "SGE R4.xyz, R4, R0.w;\n" - "MUL R4.xyz, R4, R5;\n" - "ADD R2.xyz, R3, R4;\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" "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" - "MUL R2.xyz, R3, R2;\n" - "ADD R1.xyz, R1, R2;\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" @@ -928,7 +867,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "TEMP R2;\n" "MUL R0.xy, fragment.position, c[0];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R2.xyz, R0, fragment.color.primary.w;\n" + "MUL R2.xyz, fragment.color.primary.w, R0;\n" "MUL R1.xyz, fragment.color.primary, R0.w;\n" "ADD R1.w, fragment.color.primary, R0;\n" "MIN R1.xyz, R1, R2;\n" @@ -941,20 +880,20 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODES_EXCLUSION_NOMASK = "!!ARBfp1.0\n" "PARAM c[2] = { program.local[0],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "MUL R0.xy, fragment.position, c[0];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R1.xyz, R0, fragment.color.primary.w;\n" + "MUL R1.xyz, fragment.color.primary.w, R0;\n" "MAD R2.xyz, fragment.color.primary, R0.w, R1;\n" "MUL R1.xyz, fragment.color.primary, R0;\n" - "MAD R1.xyz, -R1, c[1].y, R2;\n" - "ADD R1.w, -R0, c[1].x;\n" + "MAD R1.xyz, -R1, c[1].x, R2;\n" + "ADD R1.w, -R0, c[1].y;\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" + "ADD R2.x, -fragment.color.primary.w, c[1].y;\n" "MAD result.color.xyz, R0, R2.x, R1;\n" "MAD result.color.w, -fragment.color.primary, R0, R1;\n" "END\n" @@ -964,8 +903,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE "!!ARBfp1.0\n" "PARAM c[3] = { program.local[0..2] };\n" "TEMP R0;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" + "ADD R0.xy, fragment.position, c[1];\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[0], 2D;\n" "DP4 R0.x, R0, c[2];\n" "MUL result.color, fragment.color.primary, R0.x;\n" @@ -974,359 +913,351 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_SOLID_COMPOSITION_MODE_BLEND_MODE_NOMASK = "!!ARBfp1.0\n" - "PARAM c[1] = { program.local[0] };\n" "MOV result.color, fragment.color.primary;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = "!!ARBfp1.0\n" - "PARAM c[12] = { program.local[0..6],\n" - " { 2, 4, 1 },\n" - " program.local[8..11] };\n" + "PARAM c[12] = { program.local[0..10],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" "ADD R0.z, R0, R0.w;\n" - "MUL R0.xy, R0, c[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" - "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" - "MUL R0.zw, fragment.position.xyxy, c[9].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[7].x;\n" - "MUL R0.y, c[8].x, R0;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R2.xyz, R1, c[11].y;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[11].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "ADD R3.xy, fragment.position, c[0];\n" - "ADD R2.w, -R1, c[7].z;\n" - "MUL R0.xyz, R0, c[10].y;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "MUL R0.xyz, R1, c[10].z;\n" - "ADD R3.z, -R0.w, c[7];\n" - "MAD R2.xyz, R0, R3.z, R2;\n" - "MUL R0.y, R0.w, R2.w;\n" - "MUL R0.x, R0.w, R1.w;\n" - "MUL R0.z, R1.w, R3;\n" - "DP3 R2.w, R0, c[10];\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.z, -R0, c[1].x;\n" + "MUL R0.y, R0.x, c[11].x;\n" + "MUL R0.z, R0, c[11].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 R1.x, -R0.y, R0.z;\n" + "MOV R0.x, c[11];\n" + "MUL R0.z, R0.x, c[1].x;\n" + "RCP R1.y, R0.z;\n" + "MUL R0.xy, fragment.position, c[8];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.x, R1, R1.y;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R2.xyz, R0, c[5].y;\n" + "MUL R3.xyz, R1.w, R2;\n" + "MUL R2.xyz, R1, c[5].x;\n" + "MAD R2.xyz, R0.w, R2, R3;\n" + "ADD R3.xy, fragment.position, c[9];\n" + "ADD R2.w, -R0, c[11].z;\n" + "MUL R1.xyz, R1, c[6].y;\n" + "MAD R2.xyz, R2.w, R1, R2;\n" + "MUL R1.xyz, R0, c[6].z;\n" + "ADD R3.z, -R1.w, c[11];\n" + "MAD R2.xyz, R3.z, R1, R2;\n" + "MUL R1.y, R1.w, R2.w;\n" + "MUL R1.x, R1.w, R0.w;\n" + "MUL R1.z, R0.w, R3;\n" + "DP3 R2.w, R1, c[6];\n" + "MUL R3.xy, R3, c[7];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[10];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_MULTIPLY = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\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, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\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.zw, fragment.position.xyxy, c[9].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[7].x;\n" - "MUL R0.y, c[8].x, R0;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R2.x, -R1.w, c[7].z;\n" - "MUL R2.xyz, R0, R2.x;\n" - "MAD R0.xyz, R0, R1, R2;\n" - "ADD R2.x, -R0.w, c[7].z;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.z, -R0, c[1].x;\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.x, R0.x;\n" + "RCP R0.z, R0.x;\n" + "ADD R1.x, -R0.y, R0.z;\n" + "MOV R0.x, c[9];\n" + "MUL R0.z, R0.x, c[1].x;\n" + "RCP R1.y, R0.z;\n" + "MUL R0.xy, fragment.position, c[6];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.x, R1, R1.y;\n" + "TEX R1, R1, texture[2], 1D;\n" + "ADD R2.x, -R0.w, c[9].z;\n" + "MUL R2.xyz, R1, R2.x;\n" + "MAD R1.xyz, R1, R0, 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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SCREEN = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\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, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\n" - "MUL R1.xy, fragment.position, c[9];\n" - "ADD R3.xy, fragment.position, c[0];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" + "MUL R0.z, -R0, c[1].x;\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" + "RSQ R0.z, R0.z;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R2, R0, R1;\n" - "MAD R2, -R0, R1, R2;\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" + "TEX R1, R0.z, texture[2], 1D;\n" + "MUL R0.xy, fragment.position, c[6];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R2, R1, R0;\n" + "MAD R2, -R1, R0, R2;\n" + "MUL R3.xy, R3, c[5];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[8];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_OVERLAY = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\n" - "MUL R1.xy, fragment.position, c[9];\n" + "MUL R0.z, -R0, c[1].x;\n" + "MUL R1.xy, fragment.position, c[6];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\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" + "RSQ R0.z, R0.z;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, 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" - "ADD R2.w, -R1, c[7].z;\n" + "ADD R2.w, -R1, c[9].z;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "MUL R2.xyz, R2, c[7].x;\n" + "MUL R2.xyz, R2, c[9].x;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MUL R4.xyz, R0, R2.w;\n" "MUL R3.xyz, R0, R1;\n" "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].z;\n" - "MAD R3.xyz, R3, c[7].x, R4;\n" + "ADD R2.x, -R0.w, c[9].z;\n" + "MAD R3.xyz, R3, c[9].x, R4;\n" "MAD R3.xyz, R1, R2.x, R3;\n" "MAD R0.xyz, R1, R2.x, R0;\n" - "MUL R2.xyz, R1, c[7].x;\n" + "MUL R2.xyz, R1, c[9].x;\n" "ADD R0.xyz, R0, -R3;\n" "SGE R2.xyz, R2, R1.w;\n" "MAD R2.xyz, R2, R0, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[8];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DARKEN = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\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, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\n" - "MUL R1.xy, fragment.position, c[9];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.z, -R0, c[1].x;\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.x, R0, c[1];\n" + "RCP R0.z, R0.z;\n" + "ADD R0.z, -R0.y, R0;\n" + "RCP R0.w, R0.x;\n" + "MUL R1.x, R0.z, R0.w;\n" + "MUL R0.xy, fragment.position, c[6];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MIN R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[7].z;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].z;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "ADD R2.w, -R0, c[9].z;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_LIGHTEN = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\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, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\n" - "MUL R1.xy, fragment.position, c[9];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.z, -R0, c[1].x;\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.x, R0, c[1];\n" + "RCP R0.z, R0.z;\n" + "ADD R0.z, -R0.y, R0;\n" + "RCP R0.w, R0.x;\n" + "MUL R1.x, R0.z, R0.w;\n" + "MUL R0.xy, fragment.position, c[6];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MAX R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[7].z;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].z;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "ADD R2.w, -R0, c[9].z;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORDODGE = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1, 1e-06 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\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.z, R0.x, R0.x, -R0.y;\n" + "MOV R0.y, c[9].x;\n" + "RSQ R0.z, R0.z;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, 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" - "MAX R1.x, R0.w, c[7].w;\n" + "MAX R1.x, R0.w, c[9].w;\n" "RCP R1.x, R1.x;\n" - "MAD R1.xyz, -R0, R1.x, c[7].z;\n" - "MAX R2.xyz, R1, c[7].w;\n" - "MUL R1.xy, fragment.position, c[9];\n" + "MAD R1.xyz, -R0, R1.x, c[9].z;\n" + "MAX R2.xyz, R1, c[9].w;\n" + "MUL R1.xy, fragment.position, c[6];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R0, c[7].z;\n" + "ADD R2.w, -R0, c[9].z;\n" "MUL R3.xyz, R1, R2.w;\n" - "ADD R2.w, -R1, c[7].z;\n" + "ADD R2.w, -R1, c[9].z;\n" "MAD R4.xyz, R0, R2.w, R3;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MUL R2.w, R0, R1;\n" "MAD R0.xyz, R0, R1.w, R3;\n" "SGE R0.xyz, R0, R2.w;\n" @@ -1339,57 +1270,56 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MAD R2.xyz, R0, R4, R2;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[8];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORBURN = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1, 9.9999997e-06 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\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, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\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[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\n" - "MUL R1.xy, fragment.position, c[9];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" + "RSQ R0.z, R0.y;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" + "ADD R0.x, -R0, R0.z;\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, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" "MUL R4.xyz, R0.w, R2;\n" - "MAX R2.xyz, R0, c[7].w;\n" - "ADD R2.w, -R1, c[7].z;\n" + "MAX R2.xyz, R0, c[9].w;\n" + "ADD R2.w, -R1, c[9].z;\n" "MUL R5.xyz, R0, R2.w;\n" - "ADD R3.w, -R0, c[7].z;\n" + "ADD R3.w, -R0, c[9].z;\n" "RCP R2.x, R2.x;\n" "RCP R2.y, R2.y;\n" "RCP R2.z, R2.z;\n" @@ -1403,60 +1333,59 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MAD R2.xyz, R3, R2, R0;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[8];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_HARDLIGHT = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\n" - "MUL R1.xy, fragment.position, c[9];\n" + "MUL R0.z, -R0, c[1].x;\n" + "MUL R1.xy, fragment.position, c[6];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\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" + "RSQ R0.z, R0.z;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, 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" - "ADD R2.w, -R1, c[7].z;\n" + "ADD R2.w, -R1, c[9].z;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "MUL R2.xyz, R2, c[7].x;\n" + "MUL R2.xyz, R2, c[9].x;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MUL R4.xyz, R0, R2.w;\n" "MAD R2.xyz, R0, R2.w, R2;\n" "MUL R3.xyz, R0, R1;\n" - "ADD R2.w, -R0, c[7].z;\n" - "MAD R3.xyz, R3, c[7].x, R4;\n" - "MUL R0.xyz, R0, c[7].x;\n" + "ADD R2.w, -R0, c[9].z;\n" + "MAD R3.xyz, R3, c[9].x, R4;\n" + "MUL R0.xyz, R0, c[9].x;\n" "SGE R0.xyz, R0, R0.w;\n" "MAD R3.xyz, R1, R2.w, R3;\n" "MAD R2.xyz, R1, R2.w, R2;\n" @@ -1464,21 +1393,20 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "MAD R2.xyz, R0, R2, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[8];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SOFTLIGHT = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..6],\n" - " { 2, 4, 1, 9.9999997e-06 },\n" - " program.local[8..9],\n" - " { 8, 3 } };\n" + "PARAM c[11] = { program.local[0..8],\n" + " { 2, 4, 1, 9.9999997e-006 },\n" + " { 3, 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -1486,259 +1414,252 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "TEMP R4;\n" "TEMP R5;\n" "TEMP R6;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.zw, fragment.position.xyxy, c[9].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R0.x, R0, c[7];\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" - "MAX R0.z, R1.w, c[7].w;\n" - "RCP R2.w, R0.z;\n" - "MUL R2.xyz, R1, R2.w;\n" - "MUL R6.xyz, -R2, c[10].x;\n" - "MAD R3.xyz, -R1, R2.w, c[7].z;\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 R0.x, -R0, R0.y;\n" - "MOV R0.y, c[7].x;\n" - "MUL R0.y, c[8].x, R0;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.x, R0, R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MAD R4.xyz, R0, c[7].x, -R0.w;\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 R3.xyz, -R3, R4, R0.w;\n" - "ADD R6.xyz, R6, c[10].y;\n" - "RSQ R2.x, R2.x;\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" - "MAD R5.xyz, -R5, R6, R0.w;\n" - "MUL R3.xyz, R1, R3;\n" - "ADD R2.w, -R1, c[7].z;\n" - "RCP R2.x, R2.x;\n" + "MUL R5.xyz, R0, R5;\n" + "MUL R3.xyz, R0, R3;\n" + "ADD R2.w, -R0, c[9].z;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R2, R1.w, -R1;\n" - "MUL R6.xyz, R2, R4;\n" - "MUL R2.xyz, R1, R5;\n" - "MAD R6.xyz, R1, R0.w, R6;\n" - "MUL R4.xyz, R0, c[7].x;\n" - "MUL R5.xyz, R1, c[10].x;\n" - "ADD R6.xyz, R6, -R2;\n" - "SGE R5.xyz, R5, R1.w;\n" - "MUL R5.xyz, R5, R6;\n" - "ADD R2.xyz, R2, R5;\n" - "SGE R4.xyz, R4, R0.w;\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" + "SGE R4.xyz, R4, R1.w;\n" "ADD R2.xyz, R2, -R3;\n" - "MUL R2.xyz, R4, R2;\n" - "ADD R2.xyz, R3, R2;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].z;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DIFFERENCE = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" "ADD R0.z, R0, R0.w;\n" - "MUL R0.xy, R0, c[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "RSQ R0.z, R0.y;\n" - "RCP R0.z, R0.z;\n" - "ADD R0.x, -R0, R0.z;\n" - "MUL R0.zw, fragment.position.xyxy, c[9].xyxy;\n" - "MOV R0.y, c[7].x;\n" - "MUL R0.y, c[8].x, R0;\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[2], 1D;\n" - "ADD R3.xyz, R0, R1;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MUL R0.xyz, R0, R1.w;\n" - "MIN R0.xyz, R0, R2;\n" - "MAD R2.xyz, -R0, c[7].x, R3;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.z, -R0, c[1].x;\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.x, R0, c[1];\n" + "RCP R0.z, R0.z;\n" + "ADD R0.z, -R0.y, R0;\n" + "RCP R0.w, R0.x;\n" + "MUL R1.x, R0.z, R0.w;\n" + "MUL R0.xy, fragment.position, c[6];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "ADD R2.xyz, R1, R0;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R1.xyz, R1, R0.w;\n" + "MIN R1.xyz, R1, R3;\n" + "MAD R2.xyz, -R1, c[9].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[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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_EXCLUSION = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..6],\n" - " { 2, 4, 1 },\n" - " program.local[8..9] };\n" + "PARAM c[10] = { program.local[0..8],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[6];\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, c[8].x, -R0;\n" - "MUL R0.y, R0.z, c[7];\n" - "MUL R0.x, R0, c[7];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[7].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[8].x, R0;\n" - "MUL R1.xy, fragment.position, c[9];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" - "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MAD R3.xyz, R0, R1.w, R2;\n" - "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[7].x, R3;\n" - "ADD R2.w, -R1, c[7].z;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].z;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.z, -R0, c[1].x;\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.x, R0, c[1];\n" + "RCP R0.z, R0.z;\n" + "ADD R0.z, -R0.y, R0;\n" + "RCP R0.w, R0.x;\n" + "MUL R1.x, R0.z, R0.w;\n" + "MUL R0.xy, fragment.position, c[6];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R2.xyz, R1.w, R0;\n" + "MAD R3.xyz, R1, R0.w, R2;\n" + "MUL R2.xyz, R1, R0;\n" + "MAD R2.xyz, -R2, c[9].x, R3;\n" + "ADD R2.w, -R0, c[9].z;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = "!!ARBfp1.0\n" - "PARAM c[9] = { program.local[0..3],\n" - " { 2, 4, 1 },\n" - " program.local[5..8] };\n" + "PARAM c[9] = { program.local[0..7],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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.z, R0.y;\n" - "RCP R0.z, R0.z;\n" + "RSQ R0.y, R0.y;\n" + "RCP R0.z, R0.y;\n" "ADD R0.x, -R0, R0.z;\n" - "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" + "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R2.xyz, R1, c[8].y;\n" - "MOV R0.y, c[4].x;\n" - "MUL R0.y, c[5].x, R0;\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" "TEX R0, R0, texture[1], 1D;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[8].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "ADD R2.w, -R1, c[4].z;\n" - "MUL R0.xyz, R0, c[7].y;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[4].z;\n" - "MUL R1.xyz, R1, c[7].z;\n" - "MAD result.color.xyz, R1, R2.x, R0;\n" + "MUL R3.xyz, R0.w, R2;\n" + "MUL R2.xyz, R0, c[5].x;\n" + "MAD R2.xyz, R1.w, R2, R3;\n" + "ADD R2.w, -R1, c[8].z;\n" + "MUL R0.xyz, R0, c[6].y;\n" + "MAD R0.xyz, R2.w, R0, R2;\n" + "ADD R2.x, -R0.w, c[8].z;\n" + "MUL R1.xyz, R1, c[6].z;\n" + "MAD result.color.xyz, R2.x, R1, R0;\n" "MUL R0.x, R0.w, R1.w;\n" "MUL R0.z, R1.w, R2.x;\n" "MUL R0.y, R0.w, R2.w;\n" - "DP3 result.color.w, R0, c[7];\n" + "DP3 result.color.w, R0, c[6];\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_MULTIPLY_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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.zw, fragment.position.xyxy, c[6].xyxy;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, c[4].x;\n" - "MUL R0.y, c[5].x, R0;\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" - "ADD R2.x, -R1.w, c[4].z;\n" + "ADD R2.x, -R1.w, c[6].z;\n" "MUL R2.xyz, R0, R2.x;\n" "MAD R0.xyz, R0, R1, R2;\n" "ADD R2.x, R0.w, R1.w;\n" - "ADD R2.y, -R0.w, c[4].z;\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" "END\n" @@ -1746,31 +1667,30 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SCREEN_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "RCP R0.z, R0.z;\n" "MUL R0.xy, R0, R0.z;\n" "MUL R0.zw, R0.xyxy, R0.xyxy;\n" "ADD R0.z, R0, R0.w;\n" - "MUL R0.xy, R0, c[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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" "RCP R0.z, R0.z;\n" "ADD R0.x, -R0, R0.z;\n" - "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" - "MOV R0.y, c[4].x;\n" - "MUL R0.y, c[5].x, R0;\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" @@ -1782,50 +1702,49 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_OVERLAY_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "MUL R1.xy, fragment.position, c[6];\n" + "MUL R0.z, -R0, c[1].x;\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\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" + "RSQ R0.z, R0.z;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, 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" "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[4].z;\n" - "MUL R2.xyz, R2, c[4].x;\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" "MUL R3.xyz, R0, R2.w;\n" "MUL R0.xyz, R0, R1;\n" - "ADD R2.w, -R0, c[4].z;\n" - "MAD R0.xyz, R0, c[4].x, R3;\n" + "ADD R2.w, -R0, c[6].z;\n" + "MAD R0.xyz, R0, c[6].x, R3;\n" "MAD R0.xyz, R1, R2.w, R0;\n" "MAD R2.xyz, R1, R2.w, R2;\n" - "MUL R1.xyz, R1, c[4].x;\n" + "MUL R1.xyz, R1, c[6].x;\n" "ADD R2.w, R0, R1;\n" "ADD R2.xyz, R2, -R0;\n" "SGE R1.xyz, R1, R1.w;\n" @@ -1836,43 +1755,42 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DARKEN_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\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, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "MUL R1.xy, fragment.position, c[6];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" + "RSQ R0.z, R0.y;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" + "ADD R0.x, -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" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MIN R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[4].z;\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[4].z;\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" "END\n" @@ -1880,43 +1798,42 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_LIGHTEN_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\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, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "MUL R1.xy, fragment.position, c[6];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" + "RSQ R0.z, R0.y;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" + "ADD R0.x, -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" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MAX R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[4].z;\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[4].z;\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" "END\n" @@ -1924,45 +1841,44 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORDODGE_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1, 1e-06 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\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.z, R0.x, R0.x, -R0.y;\n" + "MOV R0.y, c[6].x;\n" + "RSQ R0.z, R0.z;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, 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" - "MAX R1.x, R0.w, c[4].w;\n" + "MAX R1.x, R0.w, c[6].w;\n" "RCP R1.x, R1.x;\n" - "MAD R1.xyz, -R0, R1.x, c[4].z;\n" - "MAX R2.xyz, R1, c[4].w;\n" - "MUL R1.xy, fragment.position, c[6];\n" + "MAD R1.xyz, -R0, R1.x, c[6].z;\n" + "MAX R2.xyz, R1, c[6].w;\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R0, c[4].z;\n" + "ADD R2.w, -R0, c[6].z;\n" "MUL R3.xyz, R1, R2.w;\n" - "ADD R2.w, -R1, c[4].z;\n" + "ADD R2.w, -R1, c[6].z;\n" "MAD R3.xyz, R0, R2.w, R3;\n" - "MUL R1.xyz, R1, R0.w;\n" + "MUL R1.xyz, R0.w, R1;\n" "MAD R0.xyz, R0, R1.w, R1;\n" "MUL R2.w, R0, R1;\n" "RCP R2.x, R2.x;\n" @@ -1980,46 +1896,45 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_COLORBURN_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1, 9.9999997e-06 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\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, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "MUL R1.xy, fragment.position, c[6];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" + "RSQ R0.z, R0.y;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" + "ADD R0.x, -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" "TEX R0, R0, texture[1], 1D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" - "ADD R2.w, -R1, c[4].z;\n" + "ADD R2.w, -R1, c[6].z;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" "MUL R4.xyz, R0.w, R2;\n" - "MAX R2.xyz, R0, c[4].w;\n" + "MAX R2.xyz, R0, c[6].w;\n" "MUL R5.xyz, R0, R2.w;\n" - "ADD R3.w, -R0, c[4].z;\n" + "ADD R3.w, -R0, c[6].z;\n" "RCP R2.x, R2.x;\n" "RCP R2.y, R2.y;\n" "RCP R2.z, R2.z;\n" @@ -2038,50 +1953,49 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_HARDLIGHT_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "MUL R1.xy, fragment.position, c[6];\n" + "MUL R0.z, -R0, c[1].x;\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\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" + "RSQ R0.z, R0.z;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, 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" - "ADD R2.w, -R1, c[4].z;\n" + "ADD R2.w, -R1, c[6].z;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "MUL R2.xyz, R2, c[4].x;\n" + "MUL R2.xyz, R2, c[6].x;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MUL R4.xyz, R0, R2.w;\n" "MUL R3.xyz, R0, R1;\n" "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R2.w, -R0, c[4].z;\n" - "MUL R0.xyz, R0, c[4].x;\n" + "ADD R2.w, -R0, c[6].z;\n" + "MUL R0.xyz, R0, c[6].x;\n" "MAD R2.xyz, R1, R2.w, R2;\n" - "MAD R3.xyz, R3, c[4].x, R4;\n" + "MAD R3.xyz, R3, c[6].x, R4;\n" "MAD R1.xyz, R1, R2.w, R3;\n" "ADD R2.w, R0, R1;\n" "ADD R2.xyz, R2, -R1;\n" @@ -2093,10 +2007,9 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_SOFTLIGHT_NOMASK = "!!ARBfp1.0\n" - "PARAM c[8] = { program.local[0..3],\n" - " { 2, 4, 1, 9.9999997e-06 },\n" - " program.local[5..6],\n" - " { 8, 3 } };\n" + "PARAM c[8] = { program.local[0..5],\n" + " { 2, 4, 1, 9.9999997e-006 },\n" + " { 3, 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2104,64 +2017,61 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD "TEMP R4;\n" "TEMP R5;\n" "TEMP R6;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\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[4];\n" + "MUL R0.x, R0, c[6];\n" "MAD R0.y, R0.x, R0.x, -R0;\n" - "MAX R0.z, R1.w, c[4].w;\n" + "MAX R0.z, R1.w, c[6].w;\n" "RCP R2.w, R0.z;\n" "MUL R2.xyz, R1, R2.w;\n" - "MUL R6.xyz, -R2, c[7].x;\n" - "MAD R3.xyz, -R1, R2.w, c[4].z;\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[4].x;\n" - "MUL R0.y, c[5].x, R0;\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" - "MAD R4.xyz, R0, c[4].x, -R0.w;\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" - "ADD R6.xyz, R6, c[7].y;\n" - "RSQ R2.x, R2.x;\n" "RSQ R2.z, R2.z;\n" "RSQ R2.y, R2.y;\n" - "MAD R5.xyz, -R5, R6, R0.w;\n" + "MUL R5.xyz, R1, R5;\n" "MUL R3.xyz, R1, R3;\n" - "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R2, R1.w, -R1;\n" - "MUL R6.xyz, R2, R4;\n" - "MUL R2.xyz, R1, R5;\n" - "MUL R4.xyz, R0, c[4].x;\n" - "MAD R6.xyz, R1, R0.w, R6;\n" - "MUL R5.xyz, R1, c[7].x;\n" - "ADD R6.xyz, R6, -R2;\n" - "SGE R5.xyz, R5, R1.w;\n" - "MUL R5.xyz, R5, R6;\n" - "ADD R2.xyz, R2, R5;\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" - "MUL R2.xyz, R4, R2;\n" - "ADD R2.xyz, R3, R2;\n" - "ADD R2.w, -R1, c[4].z;\n" + "MAD R2.xyz, R4, R2, R3;\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[4].z;\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" "END\n" @@ -2169,86 +2079,84 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_DIFFERENCE_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\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, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "MUL R1.xy, fragment.position, c[6];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" + "RSQ R0.z, R0.y;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" + "ADD R0.x, -R0, R0.z;\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" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "ADD R0.xyz, R0, R1;\n" "MIN R2.xyz, R2, R3;\n" "ADD R1.x, R0.w, R1.w;\n" - "MAD result.color.xyz, -R2, c[4].x, R0;\n" + "MAD result.color.xyz, -R2, c[6].x, R0;\n" "MAD result.color.w, -R0, R1, R1.x;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODES_EXCLUSION_NOMASK = "!!ARBfp1.0\n" - "PARAM c[7] = { program.local[0..3],\n" - " { 2, 4, 1 },\n" - " program.local[5..6] };\n" + "PARAM c[7] = { program.local[0..5],\n" + " { 2, 4, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\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, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "RCP R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "MUL R1.xy, fragment.position, c[6];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R0.x, -R0, R0.y;\n" + "RSQ R0.z, R0.y;\n" "RCP R0.z, R0.z;\n" - "MUL R0.x, R0, R0.z;\n" + "ADD R0.x, -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" "TEX R0, R0, texture[1], 1D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[4].x, R3;\n" - "ADD R2.w, -R1, c[4].z;\n" + "MAD R2.xyz, -R2, c[6].x, R3;\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[4].z;\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" "END\n" @@ -2256,35 +2164,34 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODE_BLEND_MODE_MASK = "!!ARBfp1.0\n" - "PARAM c[9] = { program.local[0..3],\n" - " { 2, 4 },\n" - " program.local[5..8] };\n" + "PARAM c[9] = { program.local[0..7],\n" + " { 2, 4 } };\n" "TEMP R0;\n" "TEMP R1;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.z, R0, R0.w;\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\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.y, R0.y;\n" "ADD R1.x, -R0, R0.y;\n" - "MOV R0.z, c[4].x;\n" - "MUL R0.z, c[5].x, R0;\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[7];\n" + "MUL R0.xy, R0, c[5];\n" "TEX R0, R0, texture[0], 2D;\n" "MUL R1.x, R1, R1.y;\n" - "DP4 R1.y, R0, c[8];\n" + "DP4 R1.y, R0, c[7];\n" "TEX R0, R1, texture[1], 1D;\n" "MUL result.color, R0, R1.y;\n" "END\n" @@ -2292,480 +2199,479 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_RADIAL_COMPOSITION_MODE_BLEND_MODE_NOMASK = "!!ARBfp1.0\n" - "PARAM c[6] = { program.local[0..3],\n" - " { 2, 4 },\n" - " program.local[5] };\n" + "PARAM c[6] = { program.local[0..4],\n" + " { 2, 4 } };\n" "TEMP R0;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[3];\n" + "MAD R0.xyz, fragment.position.x, c[2], R0;\n" + "ADD R0.xyz, R0, c[4];\n" "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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "ADD R0.z, R0, R0.w;\n" - "MUL R0.z, c[5].x, -R0;\n" - "MUL R0.y, R0.z, c[4];\n" - "MUL R0.x, R0, c[4];\n" - "MAD R0.y, R0.x, R0.x, -R0;\n" - "MOV R0.z, c[4].x;\n" - "RSQ R0.y, R0.y;\n" - "MUL R0.z, c[5].x, R0;\n" - "RCP R0.y, 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" - "ADD R0.x, -R0, R0.y;\n" - "MUL R0.x, R0, R0.z;\n" + "RCP R0.y, R0.y;\n" + "ADD R0.x, -R0, R0.z;\n" + "MUL R0.x, R0, R0.y;\n" "TEX result.color, R0, texture[0], 1D;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = "!!ARBfp1.0\n" - "PARAM c[13] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494 },\n" - " program.local[10..12] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" - "FLR R0.y, R0.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R2.xyz, R1, c[12].y;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[12].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "ADD R3.xy, fragment.position, c[0];\n" - "ADD R2.w, -R1, c[7];\n" - "MUL R0.xyz, R0, c[11].y;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "MUL R0.xyz, R1, c[11].z;\n" - "ADD R3.z, -R0.w, c[7].w;\n" - "MAD R2.xyz, R0, R3.z, R2;\n" - "MUL R0.y, R0.w, R2.w;\n" - "MUL R0.x, R0.w, R1.w;\n" - "MUL R0.z, R1.w, R3;\n" - "DP3 R2.w, R0, c[11];\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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[10].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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\n" + "MUL R1.x, R1, R1.y;\n" + "MUL R1.y, R1.x, R1.x;\n" + "MAD R1.z, R1.y, c[11].x, c[11].y;\n" + "MAD R1.z, R1, R1.y, -c[11];\n" + "MAD R1.z, R1, R1.y, c[11].w;\n" + "MAD R1.z, R1, R1.y, -c[12].x;\n" + "MAD R1.y, R1.z, R1, c[12];\n" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[10].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[10].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R1.x, R0, c[10];\n" + "FLR R1.y, R1.x;\n" + "MUL R0.xy, fragment.position, c[7];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R1.x, R1, -R1.y;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R2.xyz, R0, c[4].y;\n" + "MUL R3.xyz, R1.w, R2;\n" + "MUL R2.xyz, R1, c[4].x;\n" + "MAD R2.xyz, R0.w, R2, R3;\n" + "ADD R3.xy, fragment.position, c[8];\n" + "ADD R2.w, -R0, c[12].z;\n" + "MUL R1.xyz, R1, c[5].y;\n" + "MAD R2.xyz, R2.w, R1, R2;\n" + "MUL R1.xyz, R0, c[5].z;\n" + "ADD R3.z, -R1.w, c[12];\n" + "MAD R2.xyz, R3.z, R1, R2;\n" + "MUL R1.y, R1.w, R2.w;\n" + "MUL R1.x, R1.w, R0.w;\n" + "MUL R1.z, R0.w, R3;\n" + "DP3 R2.w, R1, c[5];\n" + "MUL R3.xy, R3, c[6];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[9];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_MULTIPLY = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" - "FLR R0.y, R0.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R2.x, -R1.w, c[7].w;\n" - "MUL R2.xyz, R0, R2.x;\n" - "MAD R0.xyz, R0, R1, R2;\n" - "ADD R2.x, -R0.w, c[7].w;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[8].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[8].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\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" + "ADD R1.x, R1, -R1.y;\n" + "TEX R1, R1, texture[2], 1D;\n" + "ADD R2.x, -R0.w, c[10].z;\n" + "MUL R2.xyz, R1, R2.x;\n" + "MAD R1.xyz, R1, R0, 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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SCREEN = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ADD R3.xy, fragment.position, c[0];\n" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MUL R1.xy, fragment.position, c[10];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" + "ADD R3.xy, fragment.position, c[6];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[8].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[8].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[8];\n" "FLR R0.y, R0.x;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R2, R0, R1;\n" - "MAD R2, -R0, R1, R2;\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "ADD R0.z, R0.x, -R0.y;\n" + "TEX R1, R0.z, texture[2], 1D;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R2, R1, R0;\n" + "MAD R2, -R1, R0, R2;\n" + "MUL R3.xy, R3, c[4];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[7];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_OVERLAY = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494, 2 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MUL R1.xy, fragment.position, c[10];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R1, c[7];\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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 R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[9].w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\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" + "MUL R1.xy, fragment.position, c[5];\n" + "TEX R1, R1, texture[0], 2D;\n" + "ADD R2.w, -R1, c[10];\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "MUL R2.xyz, R2, c[9].y;\n" + "MUL R2.xyz, R2, c[10].z;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MUL R4.xyz, R0, R2.w;\n" "MUL R3.xyz, R0, R1;\n" "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].w;\n" - "MAD R3.xyz, R3, c[9].y, R4;\n" + "ADD R2.x, -R0.w, c[10].w;\n" + "MAD R3.xyz, R3, c[10].z, R4;\n" "MAD R3.xyz, R1, R2.x, R3;\n" "MAD R0.xyz, R1, R2.x, R0;\n" - "MUL R2.xyz, R1, c[9].y;\n" + "MUL R2.xyz, R1, c[10].z;\n" "ADD R0.xyz, R0, -R3;\n" "SGE R2.xyz, R2, R1.w;\n" "MAD R2.xyz, R2, R0, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\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_DARKEN = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MUL R1.xy, fragment.position, c[10];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" - "FLR R0.y, R0.x;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[8].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[8].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.z, R0.x, c[8].x;\n" + "FLR R0.w, R0.z;\n" + "ADD R1.x, R0.z, -R0.w;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MIN R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[7];\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].w;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "ADD R2.w, -R0, c[10].z;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_LIGHTEN = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MUL R1.xy, fragment.position, c[10];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" - "FLR R0.y, R0.x;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[8].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[8].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.z, R0.x, c[8].x;\n" + "FLR R0.w, R0.z;\n" + "ADD R1.x, R0.z, -R0.w;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MAX R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[7];\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].w;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "ADD R2.w, -R0, c[10].z;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_COLORDODGE = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494, 1e-06 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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[9].w;\n" + "ADD R0.z, -R0, R0.w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\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" - "MAX R1.x, R0.w, c[9].y;\n" + "MAX R1.x, R0.w, c[10].w;\n" "RCP R1.x, R1.x;\n" - "MAD R1.xyz, -R0, R1.x, c[7].w;\n" - "MAX R2.xyz, R1, c[9].y;\n" - "MUL R1.xy, fragment.position, c[10];\n" + "MAD R1.xyz, -R0, R1.x, c[10].z;\n" + "MAX R2.xyz, R1, c[10].w;\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R0, c[7];\n" + "ADD R2.w, -R0, c[10].z;\n" "MUL R3.xyz, R1, R2.w;\n" - "ADD R2.w, -R1, c[7];\n" + "ADD R2.w, -R1, c[10].z;\n" "MAD R4.xyz, R0, R2.w, R3;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MUL R2.w, R0, R1;\n" "MAD R0.xyz, R0, R1.w, R3;\n" "SGE R0.xyz, R0, R2.w;\n" @@ -2778,70 +2684,70 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "MAD R2.xyz, R0, R4, R2;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\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_COLORBURN = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494, 9.9999997e-06 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MUL R1.xy, fragment.position, c[10];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R1, c[7];\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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 R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[9].w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "ADD R0.x, R0, c[0];\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" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" "MUL R4.xyz, R0.w, R2;\n" - "MAX R2.xyz, R0, c[9].y;\n" - "ADD R3.w, -R0, c[7];\n" + "MAX R2.xyz, R0, c[10].w;\n" + "ADD R2.w, -R1, c[10].z;\n" + "ADD R3.w, -R0, c[10].z;\n" "MUL R5.xyz, R0, R2.w;\n" "RCP R2.x, R2.x;\n" "RCP R2.y, R2.y;\n" @@ -2856,74 +2762,74 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "MAD R2.xyz, R3, R2, R0;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\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_HARDLIGHT = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494, 2 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MUL R1.xy, fragment.position, c[10];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R1, c[7];\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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 R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[9].w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\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" + "MUL R1.xy, fragment.position, c[5];\n" + "TEX R1, R1, texture[0], 2D;\n" + "ADD R2.w, -R1, c[10];\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "MUL R2.xyz, R2, c[9].y;\n" + "MUL R2.xyz, R2, c[10].z;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MUL R4.xyz, R0, R2.w;\n" "MAD R2.xyz, R0, R2.w, R2;\n" "MUL R3.xyz, R0, R1;\n" - "ADD R2.w, -R0, c[7];\n" - "MAD R3.xyz, R3, c[9].y, R4;\n" - "MUL R0.xyz, R0, c[9].y;\n" + "ADD R2.w, -R0, c[10];\n" + "MAD R3.xyz, R3, c[10].z, R4;\n" + "MUL R0.xyz, R0, c[10].z;\n" "SGE R0.xyz, R0, R0.w;\n" "MAD R3.xyz, R1, R2.w, R3;\n" "MAD R2.xyz, R1, R2.w, R2;\n" @@ -2931,24 +2837,22 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "MAD R2.xyz, R0, R2, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\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_SOFTLIGHT = "!!ARBfp1.0\n" - "PARAM c[12] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494, 9.9999997e-06, 2, 8 },\n" - " program.local[10],\n" - " { 3 } };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -2956,326 +2860,325 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "TEMP R4;\n" "TEMP R5;\n" "TEMP R6;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MOV R1.x, c[7].y;\n" - "MUL R0.w, R0.z, R0.z;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" - "FLR R0.y, R0.x;\n" - "MAX R0.z, R1.w, c[9].y;\n" - "RCP R2.w, R0.z;\n" - "MUL R2.xyz, R1, R2.w;\n" - "RSQ R3.w, R2.x;\n" - "RSQ R4.y, R2.z;\n" - "RCP R4.x, R3.w;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MAD R3.xyz, R0, c[9].z, -R0.w;\n" - "RSQ R3.w, R2.y;\n" - "RCP R4.z, R4.y;\n" - "RCP R4.y, R3.w;\n" - "MAD R4.xyz, R4, R1.w, -R1;\n" - "MUL R6.xyz, R4, R3;\n" - "MUL R4.xyz, -R2, c[9].w;\n" - "MAD R2.xyz, -R1, R2.w, c[7].w;\n" - "ADD R5.xyz, R4, c[11].x;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R0.w;\n" - "MAD R2.xyz, -R2, R3, R0.w;\n" - "MAD R5.xyz, R1, R0.w, R6;\n" - "MUL R4.xyz, R1, R4;\n" - "MUL R6.xyz, R1, c[9].w;\n" - "ADD R5.xyz, R5, -R4;\n" - "SGE R6.xyz, R6, R1.w;\n" - "MUL R5.xyz, R6, R5;\n" - "ADD R3.xyz, R4, R5;\n" - "MUL R2.xyz, R1, R2;\n" - "MUL R4.xyz, R0, c[9].z;\n" - "ADD R3.xyz, R3, -R2;\n" - "SGE R4.xyz, R4, R0.w;\n" - "MUL R3.xyz, R4, R3;\n" - "ADD R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[7];\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].w;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[8].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[8].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\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" + "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" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DIFFERENCE = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494, 2 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" - "FLR R0.y, R0.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[10].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R3.xyz, R0, R1;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MUL R0.xyz, R0, R1.w;\n" - "MIN R0.xyz, R0, R2;\n" - "MAD R2.xyz, -R0, c[9].y, R3;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[8].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[8].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.z, R0.x, c[8].x;\n" + "FLR R0.w, R0.z;\n" + "ADD R1.x, R0.z, -R0.w;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "ADD R2.xyz, R1, R0;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R1.xyz, R1, R0.w;\n" + "MIN R1.xyz, R1, R3;\n" + "MAD R2.xyz, -R1, c[10].z, 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" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_EXCLUSION = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..5],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[8],\n" - " { 0.15915494, 2 },\n" - " program.local[10] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[6].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[6].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[7].y;\n" - "CMP R0.x, R0, c[7], R1;\n" - "MAD R0.w, R0, c[6].z, -c[6];\n" - "MUL R1.xy, fragment.position, c[10];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[7].z, c[7].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[8];\n" - "MUL R0.x, R0, c[9];\n" - "FLR R0.y, R0.x;\n" - "ADD R0.x, R0, -R0.y;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MAD R3.xyz, R0, R1.w, R2;\n" - "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[9].y, R3;\n" - "ADD R2.w, -R1, c[7];\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[7].w;\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[8].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[8].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.z, R0.x, c[8].x;\n" + "FLR R0.w, R0.z;\n" + "ADD R1.x, R0.z, -R0.w;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R2.xyz, R1.w, R0;\n" + "MAD R3.xyz, R1, R0.w, R2;\n" + "MUL R2.xyz, R1, R0;\n" + "MAD R2.xyz, -R2, c[10].z, R3;\n" + "ADD R2.w, -R0, c[10];\n" + "MAD R1.xyz, R1, R2.w, R2;\n" + "ADD R2.x, -R1.w, c[10].w;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = "!!ARBfp1.0\n" - "PARAM c[10] = { program.local[0..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494 },\n" - " program.local[7..9] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\n" - "FLR R0.y, R0.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\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[7].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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\n" + "MUL R1.x, R1, R1.y;\n" + "MUL R1.y, R1.x, R1.x;\n" + "MAD R1.z, R1.y, c[8].x, c[8].y;\n" + "MAD R1.z, R1, R1.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.y, R1.z, R1, c[9];\n" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[7].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "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" + "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R2.xyz, R1, c[9].y;\n" + "MUL R2.xyz, R1, c[4].y;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[7];\n" + "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[9].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "ADD R2.w, -R1, c[4];\n" - "MUL R0.xyz, R0, c[8].y;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[4].w;\n" - "MUL R1.xyz, R1, c[8].z;\n" - "MAD result.color.xyz, R1, R2.x, R0;\n" + "MUL R3.xyz, R0.w, R2;\n" + "MUL R2.xyz, R0, c[4].x;\n" + "MAD R2.xyz, R1.w, R2, R3;\n" + "ADD R2.w, -R1, c[9].z;\n" + "MUL R0.xyz, R0, c[5].y;\n" + "MAD R0.xyz, R2.w, R0, R2;\n" + "ADD R2.x, -R0.w, c[9].z;\n" + "MUL R1.xyz, R1, c[5].z;\n" + "MAD result.color.xyz, R2.x, R1, R0;\n" "MUL R0.x, R0.w, R1.w;\n" "MUL R0.z, R1.w, R2.x;\n" "MUL R0.y, R0.w, R2.w;\n" - "DP3 result.color.w, R0, c[8];\n" + "DP3 result.color.w, R0, c[5];\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_MULTIPLY_NOMASK = "!!ARBfp1.0\n" - "PARAM c[8] = { program.local[0..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\n" - "FLR R0.y, R0.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[5].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[5].z;\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" "TEX R1, R0.zwzw, texture[0], 2D;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[5];\n" + "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" - "ADD R2.x, -R1.w, c[4].w;\n" + "ADD R2.x, -R1.w, c[7].z;\n" "MUL R2.xyz, R0, R2.x;\n" "MAD R0.xyz, R0, R1, R2;\n" "ADD R2.x, R0.w, R1.w;\n" - "ADD R2.y, -R0.w, c[4].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" "END\n" @@ -3283,46 +3186,46 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[5].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[5].z;\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" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[5];\n" "FLR R0.y, R0.x;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" @@ -3333,64 +3236,64 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494, 2 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R1, c[4];\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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[6].w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\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" + "MUL R1.xy, fragment.position, c[4];\n" + "TEX R1, R1, texture[0], 2D;\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "MUL R2.xyz, R2, c[6].y;\n" + "ADD R2.w, -R1, c[7];\n" + "MUL R2.xyz, R2, c[7].z;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MAD R2.xyz, R0, R2.w, R2;\n" "MUL R3.xyz, R0, R2.w;\n" "MUL R0.xyz, R0, R1;\n" - "ADD R2.w, -R0, c[4];\n" - "MAD R0.xyz, R0, c[6].y, R3;\n" + "ADD R2.w, -R0, c[7];\n" + "MAD R0.xyz, R0, c[7].z, R3;\n" "MAD R0.xyz, R1, R2.w, R0;\n" "MAD R2.xyz, R1, R2.w, R2;\n" - "MUL R1.xyz, R1, c[6].y;\n" + "MUL R1.xyz, R1, c[7].z;\n" "ADD R2.w, R0, R1;\n" "ADD R2.xyz, R2, -R0;\n" "SGE R1.xyz, R1, R1.w;\n" @@ -3401,57 +3304,57 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[5].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[5].z;\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" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[5];\n" "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MIN R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[4];\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[4].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" "END\n" @@ -3459,57 +3362,57 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[5].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[5].z;\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" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[5];\n" "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MAX R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[4];\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[4].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" "END\n" @@ -3517,59 +3420,59 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494, 1e-06 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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 R1.y, -R1.x, c[6].w;\n" + "ADD R0.z, -R0, R0.w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\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" - "MAX R1.x, R0.w, c[6].y;\n" + "MAX R1.x, R0.w, c[7].w;\n" "RCP R1.x, R1.x;\n" - "MAD R1.xyz, -R0, R1.x, c[4].w;\n" - "MAX R2.xyz, R1, c[6].y;\n" - "MUL R1.xy, fragment.position, c[7];\n" + "MAD R1.xyz, -R0, R1.x, c[7].z;\n" + "MAX R2.xyz, R1, c[7].w;\n" + "MUL R1.xy, fragment.position, c[4];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R0, c[4];\n" + "ADD R2.w, -R0, c[7].z;\n" "MUL R3.xyz, R1, R2.w;\n" - "ADD R2.w, -R1, c[4];\n" + "ADD R2.w, -R1, c[7].z;\n" "MAD R3.xyz, R0, R2.w, R3;\n" - "MUL R1.xyz, R1, R0.w;\n" + "MUL R1.xyz, R0.w, R1;\n" "MAD R0.xyz, R0, R1.w, R1;\n" "MUL R2.w, R0, R1;\n" "RCP R2.x, R2.x;\n" @@ -3587,60 +3490,60 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494, 9.9999997e-06 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R1, c[4];\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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[6].w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "ADD R0.x, R0, c[0];\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" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" + "ADD R2.w, -R1, c[7].z;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" "MUL R4.xyz, R0.w, R2;\n" - "MAX R2.xyz, R0, c[6].y;\n" + "MAX R2.xyz, R0, c[7].w;\n" "MUL R5.xyz, R0, R2.w;\n" - "ADD R3.w, -R0, c[4];\n" + "ADD R3.w, -R0, c[7].z;\n" "RCP R2.x, R2.x;\n" "RCP R2.y, R2.y;\n" "RCP R2.z, R2.z;\n" @@ -3659,64 +3562,64 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494, 2 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R1, c[4];\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "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[6].w;\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" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\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" + "MUL R1.xy, fragment.position, c[4];\n" + "TEX R1, R1, texture[0], 2D;\n" + "ADD R2.w, -R1, c[7];\n" "ADD R3.xyz, R0.w, -R0;\n" "ADD R2.xyz, R1.w, -R1;\n" "MUL R2.xyz, R2, R3;\n" - "MUL R2.xyz, R2, c[6].y;\n" + "MUL R2.xyz, R2, c[7].z;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" "MUL R4.xyz, R0, R2.w;\n" "MUL R3.xyz, R0, R1;\n" "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R2.w, -R0, c[4];\n" - "MUL R0.xyz, R0, c[6].y;\n" + "ADD R2.w, -R0, c[7];\n" + "MUL R0.xyz, R0, c[7].z;\n" "MAD R2.xyz, R1, R2.w, R2;\n" - "MAD R3.xyz, R3, c[6].y, R4;\n" + "MAD R3.xyz, R3, c[7].z, R4;\n" "MAD R1.xyz, R1, R2.w, R3;\n" "ADD R2.w, R0, R1;\n" "ADD R2.xyz, R2, -R1;\n" @@ -3728,13 +3631,11 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494, 9.9999997e-06, 2, 8 },\n" - " program.local[7],\n" - " { 3 } };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -3742,75 +3643,74 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO "TEMP R4;\n" "TEMP R5;\n" "TEMP R6;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MOV R1.x, c[4].y;\n" - "MUL R0.w, R0.z, R0.z;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[5].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[5].z;\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" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\n" - "FLR R0.y, R0.x;\n" - "MAX R0.z, R1.w, c[6].y;\n" - "RCP R2.w, R0.z;\n" + "MAX R2.x, R1.w, c[7].w;\n" + "RCP R2.w, R2.x;\n" "MUL R2.xyz, R1, R2.w;\n" - "RSQ R3.w, R2.x;\n" - "RSQ R4.y, R2.z;\n" - "RCP R4.x, R3.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" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[5];\n" + "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" - "MAD R3.xyz, R0, c[6].z, -R0.w;\n" - "RSQ R3.w, R2.y;\n" - "RCP R4.z, R4.y;\n" - "RCP R4.y, R3.w;\n" - "MAD R4.xyz, R4, R1.w, -R1;\n" - "MUL R6.xyz, R4, R3;\n" - "MUL R4.xyz, -R2, c[6].w;\n" - "MAD R2.xyz, -R1, R2.w, c[4].w;\n" - "ADD R5.xyz, R4, c[8].x;\n" - "MUL R4.xyz, R2, R3;\n" - "MAD R4.xyz, -R4, R5, R0.w;\n" - "MAD R2.xyz, -R2, R3, R0.w;\n" - "MAD R5.xyz, R1, R0.w, R6;\n" - "MUL R4.xyz, R1, R4;\n" - "MUL R6.xyz, R1, c[6].w;\n" - "ADD R5.xyz, R5, -R4;\n" - "SGE R6.xyz, R6, R1.w;\n" - "MUL R5.xyz, R6, R5;\n" - "ADD R3.xyz, R4, R5;\n" - "MUL R2.xyz, R1, R2;\n" - "MUL R4.xyz, R0, c[6].z;\n" - "ADD R3.xyz, R3, -R2;\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" + "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" - "MUL R3.xyz, R4, R3;\n" - "ADD R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[4];\n" + "MAD R2.xyz, R4, R2, R3;\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[4].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" "END\n" @@ -3818,114 +3718,114 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_DIFFERENCE_NOMASK = "!!ARBfp1.0\n" - "PARAM c[8] = { program.local[0..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494, 2 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[5].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[5].z;\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" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[5];\n" "FLR R0.y, R0.x;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "ADD R0.xyz, R0, R1;\n" "MIN R2.xyz, R2, R3;\n" "ADD R1.x, R0.w, R1.w;\n" - "MAD result.color.xyz, -R2, c[6].y, R0;\n" + "MAD result.color.xyz, -R2, c[7].z, R0;\n" "MAD result.color.w, -R0, R1, R1.x;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MODES_EXCLUSION_NOMASK = "!!ARBfp1.0\n" - "PARAM c[8] = { program.local[0..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494, 2 },\n" - " program.local[7] };\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" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\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" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[5].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[5].z;\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" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[5];\n" "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX R0, R0, texture[1], 1D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[6].y, R3;\n" - "ADD R2.w, -R1, c[4];\n" + "MAD R2.xyz, -R2, c[7].z, R3;\n" + "ADD R2.w, -R1, c[7];\n" "MAD R0.xyz, R0, R2.w, R2;\n" "ADD R2.x, R0.w, R1.w;\n" - "ADD R2.y, -R0.w, c[4].w;\n" + "ADD R2.y, -R0.w, c[7].w;\n" "MAD result.color.xyz, R1, R2.y, R0;\n" "MAD result.color.w, -R0, R1, R2.x;\n" "END\n" @@ -3933,49 +3833,49 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494 },\n" - " program.local[7..9] };\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" "TEMP R0;\n" "TEMP R1;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.y, R0.w;\n" - "RCP R1.x, R1.x;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.z, R0.x, R0.y, c[5].x;\n" - "MUL R1.x, R0.z, c[6];\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[7].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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\n" + "MUL R1.x, R1, R1.y;\n" + "MUL R1.y, R1.x, R1.x;\n" + "MAD R1.z, R1.y, c[8].x, c[8].y;\n" + "MAD R1.z, R1, R1.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.y, R1.z, R1, c[9];\n" + "MUL R1.x, R1.y, R1;\n" + "ADD R1.y, -R1.x, c[7].w;\n" + "ADD R0.z, -R0, R0.w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "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" "FLR R1.y, R1.x;\n" - "ADD R0.xy, fragment.position, c[7];\n" - "MUL R0.xy, R0, c[8];\n" + "ADD R0.xy, fragment.position, c[5];\n" + "MUL R0.xy, R0, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" "ADD R1.x, R1, -R1.y;\n" - "DP4 R1.y, R0, c[9];\n" + "DP4 R1.y, R0, c[6];\n" "TEX R0, R1, texture[1], 1D;\n" "MUL result.color, R0, R1.y;\n" "END\n" @@ -3983,42 +3883,43 @@ 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..2],\n" - " { 0.0020000001, 9.9999997e-10, 0.1963, 0.9817 },\n" - " { 2.3561945, 0.78539819, -1, 1 },\n" - " program.local[5],\n" - " { 0.15915494 } };\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" "TEMP R0;\n" "TEMP R1;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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" - "ABS R0.w, R0.x;\n" - "ABS R0.z, R0.y;\n" - "ADD R0.z, R0, -R0.w;\n" - "ADD R0.w, R0.y, c[3].x;\n" - "ABS R0.z, R0;\n" - "CMP R0.y, -R0.z, R0, R0.w;\n" - "ABS R0.z, -R0.y;\n" - "ADD R0.z, R0, c[3].y;\n" - "ADD R0.w, R0.x, R0.z;\n" - "ADD R1.x, R0.z, -R0;\n" - "RCP R1.x, R1.x;\n" - "RCP R1.y, R0.w;\n" - "MUL R0.w, R0, R1.x;\n" - "ADD R0.z, R0.x, -R0;\n" - "MUL R0.z, R0, R1.y;\n" - "CMP R0.z, R0.x, R0.w, R0;\n" - "MUL R0.w, R0.z, R0.z;\n" - "MOV R1.x, c[4].y;\n" - "CMP R0.y, -R0, c[4].z, c[4].w;\n" - "MAD R0.w, R0, c[3].z, -c[3];\n" - "CMP R0.x, R0, c[4], R1;\n" - "MAD R0.x, R0.w, R0.z, R0;\n" - "MAD R0.x, R0, R0.y, c[5];\n" - "MUL R0.x, R0, c[6];\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[4].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" + "RCP R1.y, R1.x;\n" + "MIN R1.x, R0.z, R0.w;\n" + "MUL R1.x, R1, R1.y;\n" + "MUL R1.y, R1.x, R1.x;\n" + "MAD R1.z, R1.y, c[5].x, c[5].y;\n" + "MAD R1.z, R1, R1.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.y, R1.z, R1, c[6];\n" + "MUL R1.x, R1.y, R1;\n" + "ADD R0.z, -R0, R0.w;\n" + "ADD R1.y, -R1.x, c[4].w;\n" + "CMP R0.z, -R0, R1.y, R1.x;\n" + "ADD R0.w, -R0.z, c[4].z;\n" + "CMP R0.x, R0, R0.w, R0.z;\n" + "CMP R0.x, -R0.y, -R0, R0;\n" + "ADD R0.x, R0, c[0];\n" + "MUL R0.x, R0, c[4];\n" "FLR R0.y, R0.x;\n" "ADD R0.x, R0, -R0.y;\n" "TEX result.color, R0, texture[0], 1D;\n" @@ -4027,45 +3928,43 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_CONICAL_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..7],\n" - " { 1 },\n" - " program.local[9..10] };\n" + "PARAM c[11] = { program.local[0..9],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "ADD R0.x, R0, R0.y;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R0.x, R0, c[6].z;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R2.xyz, R1, c[10].y;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[10].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "ADD R3.xy, fragment.position, c[0];\n" - "MUL R0.xyz, R0, c[9].y;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "MUL R0.xyz, R1, c[9].z;\n" - "ADD R2.w, -R0, c[8].x;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R0.y, -R1.w, c[8].x;\n" - "MUL R0.z, R1.w, R2.w;\n" - "MUL R0.x, R0.w, R1.w;\n" - "MUL R0.y, R0.w, R0;\n" - "DP3 R2.w, R0, c[9];\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" + "ADD R1.x, R0.z, R0.w;\n" + "MUL R0.xy, fragment.position, c[7];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.x, R1, c[0].z;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R2.xyz, R0, c[4].y;\n" + "MUL R3.xyz, R1.w, R2;\n" + "MUL R2.xyz, R1, c[4].x;\n" + "MAD R2.xyz, R0.w, R2, R3;\n" + "ADD R3.xy, fragment.position, c[8];\n" + "ADD R2.w, -R0, c[10].x;\n" + "MUL R1.xyz, R1, c[5].y;\n" + "MAD R2.xyz, R2.w, R1, R2;\n" + "MUL R1.xyz, R0, c[5].z;\n" + "ADD R3.z, -R1.w, c[10].x;\n" + "MAD R2.xyz, R3.z, R1, R2;\n" + "MUL R1.y, R1.w, R2.w;\n" + "MUL R1.x, R1.w, R0.w;\n" + "MUL R1.z, R0.w, R3;\n" + "DP3 R2.w, R1, c[5];\n" + "MUL R3.xy, R3, c[6];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[9];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -4076,30 +3975,30 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "ADD R0.x, R0, R0.y;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R0.x, R0, c[6].z;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R2.x, -R1.w, c[8];\n" - "MUL R2.xyz, R0, R2.x;\n" - "MAD R0.xyz, R0, R1, R2;\n" + "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" + "ADD R1.x, R0.z, R0.w;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.x, R1, c[0].z;\n" + "TEX R1, R1, texture[2], 1D;\n" "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R2.xyz, R1, R2.x;\n" + "MAD R1.xyz, R1, R0, 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" "END\n" ; @@ -4110,25 +4009,25 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "ADD R3.xy, fragment.position, c[0];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R2, R0, R1;\n" - "MAD R2, -R0, R1, R2;\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.z, R0.x, c[0];\n" + "ADD R3.xy, fragment.position, c[6];\n" + "TEX R1, R0.z, texture[2], 1D;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R2, R1, R0;\n" + "MAD R2, -R1, R0, R2;\n" + "MUL R3.xy, R3, c[4];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[7];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -4141,16 +4040,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[2], 1D;\n" - "MUL R1.xy, fragment.position, c[7];\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" "ADD R2.w, -R1, c[8].y;\n" "ADD R3.xyz, R0.w, -R0;\n" @@ -4171,11 +4070,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "MAD R2.xyz, R2, R0, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -4188,32 +4087,32 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.xy, R0, c[0];\n" + "ADD R0.z, R0.x, R0.y;\n" + "MUL R1.x, R0.z, c[0].z;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MIN R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; @@ -4225,64 +4124,64 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.xy, R0, c[0];\n" + "ADD R0.z, R0.x, R0.y;\n" + "MUL R1.x, R0.z, c[0].z;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MAX R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_COLORDODGE = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[2], 1D;\n" "MAX R1.x, R0.w, c[8].y;\n" "RCP R1.x, R1.x;\n" "MAD R2.xyz, -R0, R1.x, c[8].x;\n" "MAX R2.xyz, R2, c[8].y;\n" - "MUL R1.xy, fragment.position, c[7];\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" "ADD R2.w, -R0, c[8].x;\n" "MUL R3.xyz, R1, R2.w;\n" "ADD R2.w, -R1, c[8].x;\n" "MAD R4.xyz, R0, R2.w, R3;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MUL R2.w, R0, R1;\n" "MAD R0.xyz, R0, R1.w, R3;\n" "SGE R0.xyz, R0, R2.w;\n" @@ -4295,11 +4194,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "MAD R2.xyz, R0, R4, R2;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -4307,25 +4206,25 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_COLORBURN = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[2], 1D;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" "MUL R4.xyz, R0.w, R2;\n" @@ -4340,18 +4239,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "MUL R4.xyz, R1, R3.w;\n" "MAD R0.xyz, R0, R2.w, R4;\n" "MUL R2.w, R0, R1;\n" - "ADD R3.w, -R0, c[8].x;\n" "MAD R2.xyz, R1, R3.w, R2;\n" "ADD R2.xyz, R2, -R0;\n" "SGE R3.xyz, R3, R2.w;\n" "MAD R2.xyz, R3, R2, R0;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -4365,16 +4263,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[2], 1D;\n" - "MUL R1.xy, fragment.position, c[7];\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" "ADD R2.w, -R1, c[8].y;\n" "ADD R3.xyz, R0.w, -R0;\n" @@ -4395,11 +4293,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "MAD R2.xyz, R0, R2, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -4407,8 +4305,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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -4416,60 +4314,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[4];\n" - "MAD R3.xyz, fragment.position.x, c[3], R2;\n" - "MUL R0.xy, fragment.position, c[7];\n" - "TEX R1, R0, texture[0], 2D;\n" - "MAX R0.x, R1.w, c[8].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[5];\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" + "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, R2, R1.w, -R1;\n" - "MUL R2.xyz, -R0, c[8].w;\n" - "ADD R5.xyz, R2, c[9].x;\n" - "MAD R2.xyz, -R1, R2.w, c[8].x;\n" - "MUL R3.xy, R3, c[6];\n" - "ADD R0.w, R3.x, R3.y;\n" - "MUL R0.w, R0, c[6].z;\n" - "TEX R0, R0.w, texture[2], 1D;\n" - "MAD R3.xyz, R0, c[8].z, -R0.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" + "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, R0.w;\n" + "MAD R4.xyz, -R4, R5, R1.w;\n" + "MAD R2.xyz, -R2, R3, R1.w;\n" "MUL R5.xyz, R6, R3;\n" - "MAD R2.xyz, -R2, R3, R0.w;\n" - "MAD R6.xyz, R1, R0.w, R5;\n" - "MUL R4.xyz, R1, R4;\n" - "MUL R5.xyz, R1, c[8].w;\n" - "ADD R6.xyz, R6, -R4;\n" - "SGE R5.xyz, R5, R1.w;\n" - "MUL R5.xyz, R5, R6;\n" - "ADD R3.xyz, R4, R5;\n" - "MUL R2.xyz, R1, R2;\n" - "MUL R4.xyz, R0, c[8].z;\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" - "SGE R4.xyz, R4, R0.w;\n" - "MUL R3.xyz, R4, R3;\n" - "ADD R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; @@ -4481,106 +4377,104 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "ADD R0.x, R0, R0.y;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R0.x, R0, c[6].z;\n" - "TEX R0, R0, texture[2], 1D;\n" - "ADD R3.xyz, R0, R1;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MUL R0.xyz, R0, R1.w;\n" - "MIN R0.xyz, R0, R2;\n" - "MAD R2.xyz, -R0, c[8].x, R3;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, R0, c[0];\n" + "ADD R0.z, R0.x, R0.y;\n" + "MUL R1.x, R0.z, c[0].z;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "ADD R2.xyz, R1, R0;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R1.xyz, R1, R0.w;\n" + "MIN R1.xyz, R1, R3;\n" + "MAD R2.xyz, -R1, c[8].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" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_EXCLUSION = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[6].z;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 1D;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MAD R3.xyz, R0, R1.w, R2;\n" - "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[8].y, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, R0, c[0];\n" + "ADD R0.z, R0.x, R0.y;\n" + "MUL R1.x, R0.z, c[0].z;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 1D;\n" + "MUL R2.xyz, R1.w, R0;\n" + "MAD R3.xyz, R1, R0.w, R2;\n" + "MUL R2.xyz, R1, R0;\n" + "MAD R2.xyz, -R2, c[8].x, R3;\n" + "ADD R2.w, -R0, c[8].y;\n" + "MAD R1.xyz, R1, R2.w, R2;\n" + "ADD R2.x, -R1.w, c[8].y;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = "!!ARBfp1.0\n" - "PARAM c[8] = { program.local[0..4],\n" - " { 1 },\n" - " program.local[6..7] };\n" + "PARAM c[8] = { program.local[0..6],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "MUL R0.zw, fragment.position.xyxy, c[6].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R2.xyz, R1, c[7].y;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R2.xyz, R1, c[4].y;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[7].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "MUL R0.xyz, R0, c[6].y;\n" - "ADD R2.w, -R1, c[5].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[5];\n" - "MUL R1.xyz, R1, c[6].z;\n" - "MAD result.color.xyz, R1, R2.x, R0;\n" - "ADD R0.y, -R1.w, c[5].x;\n" + "MUL R3.xyz, R0.w, R2;\n" + "MUL R2.xyz, R0, c[4].x;\n" + "MAD R2.xyz, R1.w, R2, R3;\n" + "ADD R2.w, -R1, c[7].x;\n" + "MUL R0.xyz, R0, c[5].y;\n" + "MAD R0.xyz, R2.w, R0, R2;\n" + "ADD R2.x, -R0.w, c[7];\n" + "MUL R1.xyz, R1, c[5].z;\n" + "MAD result.color.xyz, R2.x, R1, R0;\n" "MUL R0.x, R0.w, R1.w;\n" "MUL R0.z, R1.w, R2.x;\n" - "MUL R0.y, R0.w, R0;\n" - "DP3 result.color.w, R0, c[6];\n" + "MUL R0.y, R0.w, R2.w;\n" + "DP3 result.color.w, R0, c[5];\n" "END\n" ; @@ -4591,16 +4485,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" "ADD R2.x, -R1.w, c[5];\n" "MUL R2.xyz, R0, R2.x;\n" @@ -4618,16 +4512,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" "ADD R2, R0, R1;\n" "MAD result.color, -R0, R1, R2;\n" @@ -4642,14 +4536,14 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R1.xy, fragment.position, c[4];\n" "TEX R1, R1, texture[0], 2D;\n" @@ -4683,19 +4577,19 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MIN R2.xyz, R2, R3;\n" "ADD R2.w, -R1, c[5].x;\n" "MAD R0.xyz, R0, R2.w, R2;\n" @@ -4714,19 +4608,19 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MAX R2.xyz, R2, R3;\n" "ADD R2.w, -R1, c[5].x;\n" "MAD R0.xyz, R0, R2.w, R2;\n" @@ -4740,19 +4634,19 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_COLORDODGE_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" "MAX R1.x, R0.w, c[5].y;\n" "RCP R1.x, R1.x;\n" @@ -4764,7 +4658,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "MUL R2.xyz, R1, R2.x;\n" "ADD R2.w, -R1, c[5].x;\n" "MAD R2.xyz, R0, R2.w, R2;\n" - "MUL R1.xyz, R1, R0.w;\n" + "MUL R1.xyz, R0.w, R1;\n" "MAD R0.xyz, R0, R1.w, R1;\n" "MUL R2.w, R0, R1;\n" "RCP R3.x, R3.x;\n" @@ -4783,25 +4677,25 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_COLORBURN_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "ADD R2.w, -R1, c[5].x;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" @@ -4814,9 +4708,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "RCP R2.z, R2.z;\n" "MAD R2.xyz, R4, R2, R5;\n" "MUL R4.xyz, R1, R3.w;\n" - "MAD R0.xyz, R0, R2.w, R4;\n" - "ADD R3.w, -R0, c[5].x;\n" "MAD R1.xyz, R1, R3.w, R2;\n" + "MAD R0.xyz, R0, R2.w, R4;\n" "MUL R2.x, R0.w, R1.w;\n" "ADD R2.w, R0, R1;\n" "ADD R1.xyz, R1, -R0;\n" @@ -4835,14 +4728,14 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" "MUL R1.xy, fragment.position, c[4];\n" "TEX R1, R1, texture[0], 2D;\n" @@ -4871,8 +4764,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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -4880,8 +4773,8 @@ 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[1];\n" - "MAD R3.xyz, fragment.position.x, c[0], R2;\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" @@ -4889,39 +4782,37 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "MUL R0.xyz, R1, R2.w;\n" "RSQ R0.w, R0.x;\n" "RSQ R2.y, R0.y;\n" - "ADD R3.xyz, R3, c[2];\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, R2, R1.w, -R1;\n" - "MUL R2.xyz, -R0, c[5].w;\n" - "ADD R5.xyz, R2, c[6].x;\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" "MAD R2.xyz, -R1, R2.w, c[5].x;\n" - "MUL R3.xy, R3, c[3];\n" + "MUL R3.xy, R3, c[0];\n" "ADD R0.w, R3.x, R3.y;\n" - "MUL R0.w, R0, c[3].z;\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" "MAD R2.xyz, -R2, R3, R0.w;\n" - "MAD R6.xyz, R1, R0.w, R5;\n" "MUL R4.xyz, R1, R4;\n" - "MUL R5.xyz, R1, c[5].w;\n" - "ADD R6.xyz, R6, -R4;\n" - "SGE R5.xyz, R5, R1.w;\n" - "MUL R5.xyz, R5, R6;\n" - "ADD R3.xyz, R4, R5;\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 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" - "MUL R3.xyz, R4, R3;\n" - "ADD R2.xyz, R2, R3;\n" + "MAD R2.xyz, R4, R3, 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" @@ -4939,19 +4830,19 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" - "MUL R1.xy, fragment.position, c[4];\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" - "TEX R1, R1, texture[0], 2D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "ADD R0.xyz, R0, R1;\n" "MIN R2.xyz, R2, R3;\n" "ADD R1.x, R0.w, R1.w;\n" @@ -4963,30 +4854,30 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MODES_EXCLUSION_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX R0, R0, texture[1], 1D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[5].y, R3;\n" - "ADD R2.w, -R1, c[5].x;\n" + "MAD R2.xyz, -R2, c[5].x, R3;\n" + "ADD R2.w, -R1, c[5].y;\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" + "ADD R2.y, -R0.w, c[5];\n" "MAD result.color.xyz, R1, R2.y, R0;\n" "MAD result.color.w, -R0, R1, R2.x;\n" "END\n" @@ -4997,18 +4888,18 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "PARAM c[7] = { program.local[0..6] };\n" "TEMP R0;\n" "TEMP R1;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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.zw, R0.xyxy, R0.z;\n" - "MUL R0.zw, R0, c[3].xyxy;\n" + "MUL R0.zw, R0, c[0].xyxy;\n" "ADD R1.x, R0.z, R0.w;\n" - "ADD R0.xy, fragment.position, c[4];\n" - "MUL R0.xy, R0, c[5];\n" + "ADD R0.xy, fragment.position, c[5];\n" + "MUL R0.xy, R0, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" "DP4 R1.y, R0, c[6];\n" - "MUL R1.x, R1, c[3].z;\n" + "MUL R1.x, R1, c[0].z;\n" "TEX R0, R1, texture[1], 1D;\n" "MUL result.color, R0, R1.y;\n" "END\n" @@ -5018,58 +4909,55 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_LINEAR_COMPOSITION_MOD "!!ARBfp1.0\n" "PARAM c[4] = { program.local[0..3] };\n" "TEMP R0;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "ADD R0.x, R0, R0.y;\n" - "MUL R0.x, R0, c[3].z;\n" + "MUL R0.x, R0, c[0].z;\n" "TEX result.color, R0, texture[0], 1D;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..7],\n" - " { 1 },\n" - " program.local[9..10] };\n" + "PARAM c[11] = { program.local[0..9],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" - "RCP R0.z, R0.z;\n" - "MUL R0.xy, R0, R0.z;\n" - "MUL R0.xy, R0, c[6];\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, -R0;\n" - "TEX R0, R0, texture[2], 2D;\n" - "MUL R2.xyz, R1, c[10].y;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[10].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "ADD R3.xy, fragment.position, c[0];\n" - "MUL R0.xyz, R0, c[9].y;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R2.w, -R0, c[8].x;\n" - "MUL R0.xyz, R1, c[9].z;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R0.y, -R1.w, c[8].x;\n" - "MUL R0.z, R1.w, R2.w;\n" - "MUL R0.x, R0.w, R1.w;\n" - "MUL R0.y, R0.w, R0;\n" - "DP3 R2.w, R0, c[9];\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R1.xyz, R0, c[3];\n" + "RCP R0.z, R1.z;\n" + "MUL R1.xy, R1, R0.z;\n" + "MUL R0.xy, fragment.position, c[7];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.xy, R1, c[0];\n" + "TEX R1, R1, texture[2], 2D;\n" + "MUL R2.xyz, R0, c[4].y;\n" + "MUL R3.xyz, R1.w, R2;\n" + "MUL R2.xyz, R1, c[4].x;\n" + "MAD R2.xyz, R0.w, R2, R3;\n" + "ADD R3.xy, fragment.position, c[8];\n" + "ADD R2.w, -R0, c[10].x;\n" + "MUL R1.xyz, R1, c[5].y;\n" + "MAD R2.xyz, R2.w, R1, R2;\n" + "MUL R1.xyz, R0, c[5].z;\n" + "ADD R3.z, -R1.w, c[10].x;\n" + "MAD R2.xyz, R3.z, R1, R2;\n" + "MUL R1.y, R1.w, R2.w;\n" + "MUL R1.x, R1.w, R0.w;\n" + "MUL R1.z, R0.w, R3;\n" + "DP3 R2.w, R1, c[5];\n" + "MUL R3.xy, R3, c[6];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[9];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -5080,29 +4968,28 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" - "RCP R1.x, R0.z;\n" - "MUL R0.xy, R0, R1.x;\n" - "MUL R0.xy, R0, c[6];\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, -R0;\n" - "TEX R0, R0, texture[2], 2D;\n" - "ADD R2.x, -R1.w, c[8];\n" - "MUL R2.xyz, R0, R2.x;\n" - "MAD R0.xyz, R0, R1, R2;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R1.xyz, R0, c[3];\n" + "RCP R0.z, R1.z;\n" + "MUL R1.xy, R1, R0.z;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1.xy, R1, c[0];\n" + "TEX R1, R1, texture[2], 2D;\n" "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R2.xyz, R1, R2.x;\n" + "MAD R1.xyz, R1, R0, 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" "END\n" ; @@ -5113,24 +5000,23 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "ADD R3.xy, fragment.position, c[0];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 2D;\n" - "ADD R2, R0, R1;\n" - "MAD R2, -R0, R1, R2;\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.zw, R0.xyxy, c[0].xyxy;\n" + "ADD R3.xy, fragment.position, c[6];\n" + "TEX R1, R0.zwzw, texture[2], 2D;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "ADD R2, R1, R0;\n" + "MAD R2, -R1, R0, R2;\n" + "MUL R3.xy, R3, c[4];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[7];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -5143,15 +5029,14 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[2], 2D;\n" - "MUL R1.xy, fragment.position, c[7];\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" "ADD R2.w, -R1, c[8].y;\n" "ADD R3.xyz, R0.w, -R0;\n" @@ -5172,11 +5057,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "MAD R2.xyz, R2, R0, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -5189,31 +5074,30 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 2D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.zw, R0.xyxy, R0.z;\n" + "MUL R1.xy, R0.zwzw, c[0];\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 2D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MIN R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; @@ -5225,62 +5109,60 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 2D;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.zw, R0.xyxy, R0.z;\n" + "MUL R1.xy, R0.zwzw, c[0];\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 2D;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R2.xyz, R1, R0.w;\n" "MAX R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_COLORDODGE = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[2], 2D;\n" "MAX R1.x, R0.w, c[8].y;\n" "RCP R1.x, R1.x;\n" - "MAD R1.xyz, -R0, R1.x, c[8].x;\n" - "MAX R2.xyz, R1, c[8].y;\n" - "MUL R1.xy, fragment.position, c[7];\n" + "MAD R2.xyz, -R0, R1.x, c[8].x;\n" + "MAX R2.xyz, R2, c[8].y;\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" "ADD R2.w, -R0, c[8].x;\n" "MUL R3.xyz, R1, R2.w;\n" "ADD R2.w, -R1, c[8].x;\n" "MAD R4.xyz, R0, R2.w, R3;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MUL R2.w, R0, R1;\n" "MAD R0.xyz, R0, R1.w, R3;\n" "SGE R0.xyz, R0, R2.w;\n" @@ -5293,11 +5175,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "MAD R2.xyz, R0, R4, R2;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -5305,24 +5187,23 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_COLORBURN = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" + "MUL R0.zw, fragment.position.xyxy, c[5].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[2], 2D;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" "MUL R4.xyz, R0.w, R2;\n" @@ -5337,18 +5218,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "MUL R4.xyz, R1, R3.w;\n" "MAD R0.xyz, R0, R2.w, R4;\n" "MUL R2.w, R0, R1;\n" - "ADD R3.w, -R0, c[8].x;\n" "MAD R2.xyz, R1, R3.w, R2;\n" "ADD R2.xyz, R2, -R0;\n" "SGE R3.xyz, R3, R2.w;\n" "MAD R2.xyz, R3, R2, R0;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -5362,15 +5242,14 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[2], 2D;\n" - "MUL R1.xy, fragment.position, c[7];\n" + "MUL R1.xy, fragment.position, c[5];\n" "TEX R1, R1, texture[0], 2D;\n" "ADD R2.w, -R1, c[8].y;\n" "ADD R3.xyz, R0.w, -R0;\n" @@ -5391,11 +5270,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "MAD R2.xyz, R0, R2, R3;\n" "ADD R0.z, R0.w, R1.w;\n" "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\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[2];\n" + "DP4 R0.x, R0, c[7];\n" "MAD result.color, R0.x, R2, R1;\n" "END\n" ; @@ -5403,68 +5282,65 @@ 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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "TEMP R3;\n" - "TEMP R4;\n" - "TEMP R5;\n" - "TEMP R6;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\n" - "RCP R0.z, R0.z;\n" - "MUL R0.xy, R0, R0.z;\n" - "MUL R0.xy, R0, c[6];\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MAX R0.z, R1.w, c[8].y;\n" - "RCP R2.w, R0.z;\n" - "MUL R2.xyz, R1, R2.w;\n" - "MUL R6.xyz, -R2, c[8].w;\n" - "MAD R3.xyz, -R1, R2.w, c[8].x;\n" - "MOV R0.y, -R0;\n" - "TEX R0, R0, texture[2], 2D;\n" - "MAD R4.xyz, R0, c[8].z, -R0.w;\n" - "MUL R5.xyz, R3, R4;\n" - "MAD R3.xyz, -R3, R4, R0.w;\n" - "ADD R6.xyz, R6, c[9].x;\n" - "RSQ R2.x, R2.x;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "MAD R5.xyz, -R5, R6, R0.w;\n" - "MUL R3.xyz, R1, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "RCP R2.x, R2.x;\n" - "RCP R2.z, R2.z;\n" - "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R2, R1.w, -R1;\n" - "MUL R6.xyz, R2, R4;\n" - "MUL R2.xyz, R1, R5;\n" - "MAD R6.xyz, R1, R0.w, R6;\n" - "MUL R4.xyz, R0, c[8].z;\n" - "MUL R5.xyz, R1, c[8].w;\n" - "ADD R6.xyz, R6, -R2;\n" - "SGE R5.xyz, R5, R1.w;\n" - "MUL R5.xyz, R5, R6;\n" - "ADD R2.xyz, R2, R5;\n" - "SGE R4.xyz, R4, R0.w;\n" - "ADD R2.xyz, R2, -R3;\n" - "MUL R2.xyz, R4, R2;\n" - "ADD R2.xyz, R3, R2;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "TEMP R3;\n" + "TEMP R4;\n" + "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" + "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" "END\n" ; @@ -5476,103 +5352,98 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, -R0;\n" - "TEX R0, R0, texture[2], 2D;\n" - "ADD R3.xyz, R0, R1;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MUL R0.xyz, R0, R1.w;\n" - "MIN R0.xyz, R0, R2;\n" - "MAD R2.xyz, -R0, c[8].x, R3;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.zw, R0.xyxy, R0.z;\n" + "MUL R1.xy, R0.zwzw, c[0];\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 2D;\n" + "ADD R2.xyz, R1, R0;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R1.xyz, R1, R0.w;\n" + "MIN R1.xyz, R1, R3;\n" + "MAD R2.xyz, -R1, c[8].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" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_EXCLUSION = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "TEX R0, R0, texture[2], 2D;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MAD R3.xyz, R0, R1.w, R2;\n" - "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[8].y, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.zw, R0.xyxy, R0.z;\n" + "MUL R1.xy, R0.zwzw, c[0];\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1, R1, texture[2], 2D;\n" + "MUL R2.xyz, R1.w, R0;\n" + "MAD R3.xyz, R1, R0.w, R2;\n" + "MUL R2.xyz, R1, R0;\n" + "MAD R2.xyz, -R2, c[8].x, R3;\n" + "ADD R2.w, -R0, c[8].y;\n" + "MAD R1.xyz, R1, R2.w, R2;\n" + "ADD R2.x, -R1.w, c[8].y;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = "!!ARBfp1.0\n" - "PARAM c[8] = { program.local[0..4],\n" - " { 1 },\n" - " program.local[6..7] };\n" + "PARAM c[8] = { program.local[0..6],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" - "RCP R0.z, R0.z;\n" - "MUL R0.xy, R0, R0.z;\n" - "MUL R0.xy, R0, c[3];\n" - "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\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 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" - "MUL R2.xyz, R1, c[7].y;\n" - "MOV R0.y, -R0;\n" + "MUL R2.xyz, R1, c[4].y;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[7].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "MUL R0.xyz, R0, c[6].y;\n" - "ADD R2.w, -R1, c[5].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[5];\n" - "MUL R1.xyz, R1, c[6].z;\n" - "MAD result.color.xyz, R1, R2.x, R0;\n" - "ADD R0.y, -R1.w, c[5].x;\n" + "MUL R3.xyz, R0.w, R2;\n" + "MUL R2.xyz, R0, c[4].x;\n" + "MAD R2.xyz, R1.w, R2, R3;\n" + "ADD R2.w, -R1, c[7].x;\n" + "MUL R0.xyz, R0, c[5].y;\n" + "MAD R0.xyz, R2.w, R0, R2;\n" + "ADD R2.x, -R0.w, c[7];\n" + "MUL R1.xyz, R1, c[5].z;\n" + "MAD result.color.xyz, R2.x, R1, R0;\n" "MUL R0.x, R0.w, R1.w;\n" "MUL R0.z, R1.w, R2.x;\n" - "MUL R0.y, R0.w, R0;\n" - "DP3 result.color.w, R0, c[6];\n" + "MUL R0.y, R0.w, R2.w;\n" + "DP3 result.color.w, R0, c[5];\n" "END\n" ; @@ -5583,15 +5454,14 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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 R1.x, R0.z;\n" "MUL R0.xy, R0, R1.x;\n" - "MUL R0.xy, R0, c[3];\n" "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "ADD R2.x, -R1.w, c[5];\n" "MUL R2.xyz, R0, R2.x;\n" @@ -5609,15 +5479,14 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "ADD R2, R0, R1;\n" "MAD result.color, -R0, R1, R2;\n" @@ -5632,13 +5501,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "MUL R1.xy, fragment.position, c[4];\n" "TEX R1, R1, texture[0], 2D;\n" @@ -5672,18 +5540,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MIN R2.xyz, R2, R3;\n" "ADD R2.w, -R1, c[5].x;\n" "MAD R0.xyz, R0, R2.w, R2;\n" @@ -5702,18 +5569,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "MAX R2.xyz, R2, R3;\n" "ADD R2.w, -R1, c[5].x;\n" "MAD R0.xyz, R0, R2.w, R2;\n" @@ -5727,41 +5593,40 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_COLORDODGE_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "MAX R1.x, R0.w, c[5].y;\n" "RCP R1.x, R1.x;\n" - "MAD R1.xyz, -R0, R1.x, c[5].x;\n" - "MAX R2.xyz, R1, c[5].y;\n" + "MAD R3.xyz, -R0, R1.x, c[5].x;\n" + "MAX R3.xyz, R3, c[5].y;\n" "MUL R1.xy, fragment.position, c[4];\n" "TEX R1, R1, texture[0], 2D;\n" - "ADD R2.w, -R0, c[5].x;\n" - "MUL R3.xyz, R1, R2.w;\n" + "ADD R2.x, -R0.w, c[5];\n" + "MUL R2.xyz, R1, R2.x;\n" "ADD R2.w, -R1, c[5].x;\n" - "MAD R3.xyz, R0, R2.w, R3;\n" - "MUL R1.xyz, R1, R0.w;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" + "MUL R1.xyz, R0.w, R1;\n" "MAD R0.xyz, R0, R1.w, R1;\n" "MUL R2.w, R0, R1;\n" - "RCP R2.x, R2.x;\n" - "RCP R2.y, R2.y;\n" - "RCP R2.z, R2.z;\n" - "MAD R2.xyz, R1, R2, R3;\n" - "MAD R3.xyz, R0.w, R1.w, R3;\n" + "RCP R3.x, R3.x;\n" + "RCP R3.y, R3.y;\n" + "RCP R3.z, R3.z;\n" + "MAD R3.xyz, R1, R3, R2;\n" + "MAD R2.xyz, R0.w, R1.w, R2;\n" "ADD R1.x, R0.w, R1.w;\n" - "ADD R3.xyz, R3, -R2;\n" + "ADD R2.xyz, R2, -R3;\n" "SGE R0.xyz, R0, R2.w;\n" - "MAD result.color.xyz, R0, R3, R2;\n" + "MAD result.color.xyz, R0, R2, R3;\n" "MAD result.color.w, -R0, R1, R1.x;\n" "END\n" ; @@ -5769,24 +5634,23 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_COLORBURN_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "ADD R2.w, -R1, c[5].x;\n" "MAD R2.xyz, -R0.w, R1.w, R3;\n" @@ -5799,9 +5663,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "RCP R2.z, R2.z;\n" "MAD R2.xyz, R4, R2, R5;\n" "MUL R4.xyz, R1, R3.w;\n" - "MAD R0.xyz, R0, R2.w, R4;\n" - "ADD R3.w, -R0, c[5].x;\n" "MAD R1.xyz, R1, R3.w, R2;\n" + "MAD R0.xyz, R0, R2.w, R4;\n" "MUL R2.x, R0.w, R1.w;\n" "ADD R2.w, R0, R1;\n" "ADD R1.xyz, R1, -R0;\n" @@ -5820,13 +5683,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" "MUL R1.xy, fragment.position, c[4];\n" "TEX R1, R1, texture[0], 2D;\n" @@ -5836,27 +5698,27 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "MUL R2.xyz, R2, R3;\n" "MUL R2.xyz, R2, c[5].x;\n" "MAD R2.xyz, R0.w, R1.w, -R2;\n" + "MAD R2.xyz, R0, R2.w, R2;\n" "MUL R4.xyz, R0, R2.w;\n" "MUL R3.xyz, R0, R1;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R2.w, -R0, c[5].y;\n" "MUL R0.xyz, R0, c[5].x;\n" - "MAD R2.xyz, R1, R2.w, R2;\n" + "ADD R2.w, -R0, c[5].y;\n" "MAD R3.xyz, R3, c[5].x, R4;\n" - "MAD R1.xyz, R1, R2.w, R3;\n" - "ADD R2.w, R0, R1;\n" - "ADD R2.xyz, R2, -R1;\n" + "MAD R3.xyz, R1, R2.w, R3;\n" + "MAD R1.xyz, R1, R2.w, R2;\n" + "ADD R2.x, R0.w, R1.w;\n" + "ADD R1.xyz, R1, -R3;\n" "SGE R0.xyz, R0, R0.w;\n" - "MAD result.color.xyz, R0, R2, R1;\n" - "MAD result.color.w, -R0, R1, R2;\n" + "MAD result.color.xyz, R0, R1, R3;\n" + "MAD result.color.w, -R0, R1, R2.x;\n" "END\n" ; 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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" @@ -5864,47 +5726,44 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R4;\n" "TEMP R5;\n" "TEMP R6;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\n" - "RCP R0.z, R0.z;\n" - "MUL R0.xy, R0, R0.z;\n" - "MUL R0.xy, R0, c[3];\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MAX R0.z, R1.w, c[5].y;\n" - "RCP R2.w, R0.z;\n" - "MUL R2.xyz, R1, R2.w;\n" - "MUL R6.xyz, -R2, c[5].w;\n" - "MAD R3.xyz, -R1, R2.w, c[5].x;\n" - "MOV R0.y, -R0;\n" - "TEX R0, R0, texture[1], 2D;\n" - "MAD R4.xyz, R0, c[5].z, -R0.w;\n" - "MUL R5.xyz, R3, R4;\n" - "MAD R3.xyz, -R3, R4, R0.w;\n" - "ADD R6.xyz, R6, c[6].x;\n" - "RSQ R2.x, R2.x;\n" - "RSQ R2.z, R2.z;\n" - "RSQ R2.y, R2.y;\n" - "MAD R5.xyz, -R5, R6, R0.w;\n" - "MUL R3.xyz, R1, R3;\n" - "RCP R2.x, R2.x;\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" + "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" - "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R2, R1.w, -R1;\n" - "MUL R6.xyz, R2, R4;\n" - "MUL R2.xyz, R1, R5;\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" + "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" + "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 R2.xyz, R1, R2;\n" "MUL R4.xyz, R0, c[5].z;\n" - "MAD R6.xyz, R1, R0.w, R6;\n" - "MUL R5.xyz, R1, c[5].w;\n" - "ADD R6.xyz, R6, -R2;\n" - "SGE R5.xyz, R5, R1.w;\n" - "MUL R5.xyz, R5, R6;\n" - "ADD R2.xyz, R2, R5;\n" - "ADD R2.xyz, R2, -R3;\n" + "ADD R3.xyz, R3, -R2;\n" "SGE R4.xyz, R4, R0.w;\n" - "MUL R2.xyz, R4, R2;\n" - "ADD R2.xyz, R3, R2;\n" + "MAD R2.xyz, R4, R3, 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" @@ -5922,18 +5781,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[4];\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" - "TEX R1, R1, texture[0], 2D;\n" "MUL R2.xyz, R0, R1.w;\n" - "MUL R3.xyz, R1, R0.w;\n" + "MUL R3.xyz, R0.w, R1;\n" "ADD R0.xyz, R0, R1;\n" "MIN R2.xyz, R2, R3;\n" "ADD R1.x, R0.w, R1.w;\n" @@ -5945,29 +5803,28 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MODES_EXCLUSION_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "MUL R1.xy, fragment.position, c[4];\n" - "TEX R1, R1, texture[0], 2D;\n" + "MUL R0.zw, fragment.position.xyxy, c[4].xyxy;\n" + "TEX R1, R0.zwzw, texture[0], 2D;\n" + "MUL R0.xy, R0, c[0];\n" "TEX R0, R0, texture[1], 2D;\n" - "MUL R2.xyz, R1, R0.w;\n" + "MUL R2.xyz, R0.w, R1;\n" "MAD R3.xyz, R0, R1.w, R2;\n" "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[5].y, R3;\n" - "ADD R2.w, -R1, c[5].x;\n" + "MAD R2.xyz, -R2, c[5].x, R3;\n" + "ADD R2.w, -R1, c[5].y;\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" + "ADD R2.y, -R0.w, c[5];\n" "MAD result.color.xyz, R1, R2.y, R0;\n" "MAD result.color.w, -R0, R1, R2.x;\n" "END\n" @@ -5978,19 +5835,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "PARAM c[7] = { program.local[0..6] };\n" "TEMP R0;\n" "TEMP R1;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R1.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R1.xyz, R0, c[3];\n" "RCP R0.z, R1.z;\n" "MUL R1.xy, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[4];\n" - "MUL R0.xy, R0, c[5];\n" + "ADD R0.xy, fragment.position, c[5];\n" + "MUL R0.xy, R0, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" "DP4 R1.z, R0, c[6];\n" - "MUL R1.xy, R1, c[3];\n" - "MOV R0.x, R1;\n" - "MOV R0.y, -R1;\n" - "TEX R0, R0, texture[1], 2D;\n" + "MUL R1.xy, R1, c[0];\n" + "TEX R0, R1, texture[1], 2D;\n" "MUL result.color, R0, R1.z;\n" "END\n" ; @@ -5999,58 +5854,55 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_TEXTURE_COMPOSITION_MO "!!ARBfp1.0\n" "PARAM c[4] = { program.local[0..3] };\n" "TEMP R0;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" + "MUL R0.xy, R0, c[0];\n" "TEX result.color, R0, texture[0], 2D;\n" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SIMPLE_PORTER_DUFF = "!!ARBfp1.0\n" - "PARAM c[11] = { program.local[0..7],\n" - " { 1 },\n" - " program.local[9..10] };\n" + "PARAM c[11] = { program.local[0..9],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "TEX R0.x, R0, texture[2], 2D;\n" - "MUL R0, fragment.color.primary, R0.x;\n" - "MUL R2.xyz, R1, c[10].y;\n" - "MUL R3.xyz, R2, R0.w;\n" - "MUL R2.xyz, R0, c[10].x;\n" - "MAD R2.xyz, R2, R1.w, R3;\n" - "ADD R3.xy, fragment.position, c[0];\n" - "MUL R0.xyz, R0, c[9].y;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R2.w, -R0, c[8].x;\n" - "MUL R0.xyz, R1, c[9].z;\n" - "MAD R2.xyz, R0, R2.w, R2;\n" - "ADD R0.y, -R1.w, c[8].x;\n" - "MUL R0.z, R1.w, R2.w;\n" - "MUL R0.x, R0.w, R1.w;\n" - "MUL R0.y, R0.w, R0;\n" - "DP3 R2.w, R0, c[9];\n" - "MUL R3.xy, R3, c[1];\n" - "TEX R0, R3, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.zw, R0.xyxy, R0.z;\n" + "MUL R1.xy, R0.zwzw, c[0];\n" + "MOV R1.y, -R1;\n" + "MUL R0.xy, fragment.position, c[7];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1.x, R1, texture[2], 2D;\n" + "MUL R1, fragment.color.primary, R1.x;\n" + "MUL R2.xyz, R0, c[4].y;\n" + "MUL R3.xyz, R1.w, R2;\n" + "MUL R2.xyz, R1, c[4].x;\n" + "MAD R2.xyz, R0.w, R2, R3;\n" + "ADD R3.xy, fragment.position, c[8];\n" + "ADD R2.w, -R0, c[10].x;\n" + "MUL R1.xyz, R1, c[5].y;\n" + "MAD R2.xyz, R2.w, R1, R2;\n" + "MUL R1.xyz, R0, c[5].z;\n" + "ADD R3.z, -R1.w, c[10].x;\n" + "MAD R2.xyz, R3.z, R1, R2;\n" + "MUL R1.y, R1.w, R2.w;\n" + "MUL R1.x, R1.w, R0.w;\n" + "MUL R1.z, R0.w, R3;\n" + "DP3 R2.w, R1, c[5];\n" + "MUL R3.xy, R3, c[6];\n" + "TEX R1, R3, texture[1], 2D;\n" + "ADD R2, R2, -R0;\n" + "DP4 R1.x, R1, c[9];\n" + "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -6061,30 +5913,30 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "MOV R0.y, -R0;\n" - "TEX R0.x, R0, texture[2], 2D;\n" - "MUL R0, fragment.color.primary, R0.x;\n" - "ADD R2.x, -R1.w, c[8];\n" - "MUL R2.xyz, R0, R2.x;\n" - "MAD R0.xyz, R0, R1, R2;\n" + "MUL R0.zw, R0.xyxy, R0.z;\n" + "MUL R1.xy, R0.zwzw, c[0];\n" + "MOV R1.y, -R1;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "TEX R1.x, R1, texture[2], 2D;\n" + "MUL R1, fragment.color.primary, R1.x;\n" "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R2.xyz, R1, R2.x;\n" + "MAD R1.xyz, R1, R0, 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" "END\n" ; @@ -6095,24 +5947,24 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R1.x, R0, texture[2], 2D;\n" - "MUL R0.xy, fragment.position, c[7];\n" - "ADD R3.xy, fragment.position, c[0];\n" + "MUL R0.xy, fragment.position, c[5];\n" + "ADD R3.xy, fragment.position, c[6];\n" "TEX R0, R0, texture[0], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" "ADD R2, R1, R0;\n" "MAD R2, -R1, R0, R2;\n" - "MUL R3.xy, R3, c[1];\n" + "MUL R3.xy, R3, c[4];\n" "TEX R1, R3, texture[1], 2D;\n" "ADD R2, R2, -R0;\n" - "DP4 R1.x, R1, c[2];\n" + "DP4 R1.x, R1, c[7];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -6126,16 +5978,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R1.x, R0, texture[2], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[7];\n" + "MUL R0.xy, fragment.position, c[5];\n" "TEX R0, R0, texture[0], 2D;\n" "ADD R2.w, -R0, c[8].y;\n" "ADD R3.xyz, R1.w, -R1;\n" @@ -6156,11 +6008,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MAD R2.xyz, R2, R1, R3;\n" "ADD R1.z, R1.w, R0.w;\n" "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[0];\n" - "MUL R1.xy, R1, c[1];\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[2];\n" + "DP4 R1.x, R1, c[7];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -6173,32 +6025,33 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "TEX R0.x, R0, texture[2], 2D;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MUL R0, fragment.color.primary, R0.x;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\n" + "TEX R1.x, R0.zwzw, texture[2], 2D;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, 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" "MIN R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; @@ -6210,50 +6063,51 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "TEX R0.x, R0, texture[2], 2D;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MUL R0, fragment.color.primary, R0.x;\n" - "MUL R3.xyz, R1, R0.w;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\n" + "TEX R1.x, R0.zwzw, texture[2], 2D;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, 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" "MAX R2.xyz, R2, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_COLORDODGE = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R0.x, R0, texture[2], 2D;\n" "MUL R1, fragment.color.primary, R0.x;\n" @@ -6261,13 +6115,13 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "RCP R0.x, R0.x;\n" "MAD R0.xyz, -R1, R0.x, c[8].x;\n" "MAX R2.xyz, R0, c[8].y;\n" - "MUL R0.xy, fragment.position, c[7];\n" + "MUL R0.xy, fragment.position, c[5];\n" "TEX R0, R0, texture[0], 2D;\n" "ADD R2.w, -R1, c[8].x;\n" "MUL R3.xyz, R0, R2.w;\n" "ADD R2.w, -R0, c[8].x;\n" "MAD R4.xyz, R1, R2.w, R3;\n" - "MUL R3.xyz, R0, R1.w;\n" + "MUL R3.xyz, R1.w, R0;\n" "MUL R2.w, R1, R0;\n" "MAD R1.xyz, R1, R0.w, R3;\n" "SGE R1.xyz, R1, R2.w;\n" @@ -6280,11 +6134,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MAD R2.xyz, R1, R4, R2;\n" "ADD R1.z, R1.w, R0.w;\n" "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[0];\n" - "MUL R1.xy, R1, c[1];\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[2];\n" + "DP4 R1.x, R1, c[7];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -6292,25 +6146,26 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_COLORBURN = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "TEX R1.x, R0, texture[2], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\n" + "TEX R1.x, R0.zwzw, texture[2], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[7];\n" + "MUL R0.xy, fragment.position, c[5];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R2.xyz, R0, R1.w;\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" "MUL R4.xyz, R1.w, R2;\n" @@ -6325,18 +6180,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MUL R4.xyz, R0, R3.w;\n" "MAD R1.xyz, R1, R2.w, R4;\n" "MUL R2.w, R1, R0;\n" - "ADD R3.w, -R1, c[8].x;\n" "MAD R2.xyz, R0, R3.w, R2;\n" "ADD R2.xyz, R2, -R1;\n" "SGE R3.xyz, R3, R2.w;\n" "MAD R2.xyz, R3, R2, R1;\n" "ADD R1.z, R1.w, R0.w;\n" "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[0];\n" - "MUL R1.xy, R1, c[1];\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[2];\n" + "DP4 R1.x, R1, c[7];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -6350,16 +6204,16 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R1.x, R0, texture[2], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" - "MUL R0.xy, fragment.position, c[7];\n" + "MUL R0.xy, fragment.position, c[5];\n" "TEX R0, R0, texture[0], 2D;\n" "ADD R2.w, -R0, c[8].y;\n" "ADD R3.xyz, R1.w, -R1;\n" @@ -6380,11 +6234,11 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MAD R2.xyz, R1, R2, R3;\n" "ADD R1.z, R1.w, R0.w;\n" "MAD R2.w, -R1, R0, R1.z;\n" - "ADD R1.xy, fragment.position, c[0];\n" - "MUL R1.xy, R1, c[1];\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[2];\n" + "DP4 R1.x, R1, c[7];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -6392,68 +6246,66 @@ 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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R1.xyz, R0, c[5];\n" + "TEMP R6;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R1.xyz, R0, c[3];\n" "RCP R0.z, R1.z;\n" "MUL R1.xy, R1, R0.z;\n" - "MUL R1.xy, R1, c[6];\n" + "MUL R1.xy, R1, c[0];\n" "MOV R1.y, -R1;\n" - "MUL R0.xy, fragment.position, c[7];\n" + "MUL R0.xy, fragment.position, c[5];\n" "TEX R0, R0, texture[0], 2D;\n" "MAX R1.z, R0.w, c[8].y;\n" "RCP R2.w, R1.z;\n" "MUL R2.xyz, R0, R2.w;\n" - "MUL R5.xyz, -R2, c[8].w;\n" - "MAD R4.xyz, -R0, R2.w, c[8].x;\n" + "MUL R6.xyz, -R2, c[9].x;\n" + "MAD R3.xyz, -R0, R2.w, c[8].x;\n" "TEX R1.x, R1, texture[2], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" - "MAD R3.xyz, R1, c[8].z, -R1.w;\n" + "MAD R4.xyz, R1, c[8].z, -R1.w;\n" + "MUL R5.xyz, R3, R4;\n" + "MAD R3.xyz, -R3, R4, R1.w;\n" + "ADD R6.xyz, R6, c[8].w;\n" + "MAD R5.xyz, -R5, R6, R1.w;\n" "RSQ R2.x, R2.x;\n" "RSQ R2.z, R2.z;\n" "RSQ R2.y, R2.y;\n" - "MUL R4.xyz, R4, R3;\n" - "ADD R5.xyz, R5, c[9].x;\n" - "MUL R5.xyz, R4, R5;\n" - "ADD R4.xyz, R1.w, -R4;\n" + "MUL R5.xyz, R0, R5;\n" + "MUL R3.xyz, R0, R3;\n" "ADD R2.w, -R0, c[8].x;\n" "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R2, R0.w, -R0;\n" - "MUL R3.xyz, R2, R3;\n" - "ADD R2.xyz, R1.w, -R5;\n" - "MAD R5.xyz, R0, R1.w, R3;\n" - "MUL R2.xyz, R0, R2;\n" - "MUL R3.xyz, R0, c[8].w;\n" - "ADD R5.xyz, R5, -R2;\n" - "SGE R3.xyz, R3, R0.w;\n" - "MUL R3.xyz, R3, R5;\n" - "ADD R2.xyz, R2, R3;\n" - "MUL R3.xyz, R0, R4;\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[8].z;\n" + "MUL R2.xyz, R0, c[9].x;\n" + "SGE R2.xyz, R2, R0.w;\n" + "MAD R2.xyz, R2, R6, R5;\n" "SGE R4.xyz, R4, R1.w;\n" "ADD R2.xyz, R2, -R3;\n" - "MUL R2.xyz, R4, R2;\n" - "ADD R2.xyz, R3, R2;\n" + "MAD R2.xyz, R4, R2, R3;\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[0];\n" - "MUL R1.xy, R1, c[1];\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[2];\n" + "DP4 R1.x, R1, c[7];\n" "MAD result.color, R1.x, R2, R0;\n" "END\n" ; @@ -6466,107 +6318,106 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "MUL R0.zw, fragment.position.xyxy, c[7].xyxy;\n" - "TEX R1, R0.zwzw, texture[0], 2D;\n" - "TEX R0.x, R0, texture[2], 2D;\n" - "MUL R0, fragment.color.primary, R0.x;\n" - "ADD R3.xyz, R0, R1;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MUL R0.xyz, R0, R1.w;\n" - "MIN R0.xyz, R0, R2;\n" - "MAD R2.xyz, -R0, c[8].x, R3;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\n" + "TEX R1.x, R0.zwzw, texture[2], 2D;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, texture[0], 2D;\n" + "MUL R1, fragment.color.primary, R1.x;\n" + "ADD R2.xyz, R1, R0;\n" + "MUL R3.xyz, R1.w, R0;\n" + "MUL R1.xyz, R1, R0.w;\n" + "MIN R1.xyz, R1, R3;\n" + "MAD R2.xyz, -R1, c[8].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" + "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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_EXCLUSION = "!!ARBfp1.0\n" "PARAM c[9] = { program.local[0..7],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[4];\n" - "MAD R0.xyz, fragment.position.x, c[3], R0;\n" - "ADD R0.xyz, R0, c[5];\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[6];\n" - "MOV R0.y, -R0;\n" - "TEX R0.x, R0, texture[2], 2D;\n" - "MUL R1.xy, fragment.position, c[7];\n" - "TEX R1, R1, texture[0], 2D;\n" - "MUL R0, fragment.color.primary, R0.x;\n" - "MUL R2.xyz, R1, R0.w;\n" - "MAD R3.xyz, R0, R1.w, R2;\n" - "MUL R2.xyz, R0, R1;\n" - "MAD R2.xyz, -R2, c[8].y, R3;\n" - "ADD R2.w, -R1, c[8].x;\n" - "MAD R0.xyz, R0, R2.w, R2;\n" - "ADD R2.x, -R0.w, c[8];\n" - "MAD R2.xyz, R1, R2.x, R0;\n" - "ADD R0.z, R0.w, R1.w;\n" - "MAD R2.w, -R0, R1, R0.z;\n" - "ADD R0.xy, fragment.position, c[0];\n" - "MUL R0.xy, R0, c[1];\n" - "TEX R0, R0, texture[1], 2D;\n" - "ADD R2, R2, -R1;\n" - "DP4 R0.x, R0, c[2];\n" - "MAD result.color, R0.x, R2, R1;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\n" + "TEX R1.x, R0.zwzw, texture[2], 2D;\n" + "MUL R0.xy, fragment.position, c[5];\n" + "TEX R0, R0, 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" + "MUL R2.xyz, R1, R0;\n" + "MAD R2.xyz, -R2, c[8].x, R3;\n" + "ADD R2.w, -R0, c[8].y;\n" + "MAD R1.xyz, R1, R2.w, R2;\n" + "ADD R2.x, -R1.w, c[8].y;\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" "END\n" ; static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_SIMPLE_PORTER_DUFF_NOMASK = "!!ARBfp1.0\n" - "PARAM c[8] = { program.local[0..4],\n" - " { 1 },\n" - " program.local[6..7] };\n" + "PARAM c[8] = { program.local[0..6],\n" + " { 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.w, -R0.y;\n" - "MOV R0.z, R0.x;\n" - "TEX R1.x, R0.zwzw, texture[1], 2D;\n" - "MUL R0.xy, fragment.position, c[4];\n" + "MUL R0.zw, R0.xyxy, R0.z;\n" + "MUL R1.xy, R0.zwzw, c[0];\n" + "MOV R1.y, -R1;\n" + "MUL R0.xy, fragment.position, c[6];\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R2.xyz, R0, c[7].y;\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" - "MUL R3.xyz, R2, R1.w;\n" - "MUL R2.xyz, R1, c[7].x;\n" - "MUL R0.xyz, R0, c[6].z;\n" - "MAD R2.xyz, R2, R0.w, R3;\n" - "MUL R1.xyz, R1, c[6].y;\n" - "ADD R2.w, -R0, c[5].x;\n" - "MAD R1.xyz, R1, R2.w, R2;\n" - "ADD R2.x, -R1.w, c[5];\n" - "MAD result.color.xyz, R0, R2.x, R1;\n" - "ADD R0.y, -R0.w, c[5].x;\n" + "MUL R3.xyz, R1.w, R2;\n" + "MUL R2.xyz, R1, c[4].x;\n" + "MUL R0.xyz, R0, c[5].z;\n" + "MAD R2.xyz, R0.w, R2, R3;\n" + "ADD R2.w, -R0, c[7].x;\n" + "MUL R1.xyz, R1, c[5].y;\n" + "MAD R1.xyz, R2.w, R1, R2;\n" + "ADD R2.x, -R1.w, c[7];\n" + "MAD result.color.xyz, R2.x, R0, R1;\n" "MUL R0.x, R1.w, R0.w;\n" "MUL R0.z, R0.w, R2.x;\n" - "MUL R0.y, R1.w, R0;\n" - "DP3 result.color.w, R0, c[6];\n" + "MUL R0.y, R1.w, R2.w;\n" + "DP3 result.color.w, R0, c[5];\n" "END\n" ; @@ -6577,12 +6428,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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.zw, R0.xyxy, R0.z;\n" - "MUL R1.xy, R0.zwzw, c[3];\n" + "MUL R1.xy, R0.zwzw, c[0];\n" "MOV R1.y, -R1;\n" "MUL R0.xy, fragment.position, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" @@ -6604,12 +6455,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.w, -R0.y;\n" "MOV R0.z, R0.x;\n" "TEX R1.x, R0.zwzw, texture[1], 2D;\n" @@ -6629,12 +6480,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R1.x, R0, texture[1], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" @@ -6670,19 +6521,20 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\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 R1, fragment.color.primary, R1.x;\n" "MUL R2.xyz, R1, R0.w;\n" - "MUL R3.xyz, R0, R1.w;\n" + "MUL R3.xyz, R1.w, R0;\n" "MIN R2.xyz, R2, R3;\n" "ADD R2.w, -R0, c[5].x;\n" "MAD R1.xyz, R1, R2.w, R2;\n" @@ -6701,19 +6553,20 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\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 R1, fragment.color.primary, R1.x;\n" "MUL R2.xyz, R1, R0.w;\n" - "MUL R3.xyz, R0, R1.w;\n" + "MUL R3.xyz, R1.w, R0;\n" "MAX R2.xyz, R2, R3;\n" "ADD R2.w, -R0, c[5].x;\n" "MAD R1.xyz, R1, R2.w, R2;\n" @@ -6727,17 +6580,17 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_COLORDODGE_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 1e-06 } };\n" + " { 1, 1e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R0.x, R0, texture[1], 2D;\n" "MUL R1, fragment.color.primary, R0.x;\n" @@ -6751,7 +6604,7 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "MUL R3.xyz, R0, R2.w;\n" "ADD R2.w, -R0, c[5].x;\n" "MAD R3.xyz, R1, R2.w, R3;\n" - "MUL R0.xyz, R0, R1.w;\n" + "MUL R0.xyz, R1.w, R0;\n" "RCP R2.x, R2.x;\n" "RCP R2.y, R2.y;\n" "RCP R2.z, R2.z;\n" @@ -6770,25 +6623,26 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_COLORBURN_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 9.9999997e-06 } };\n" + " { 1, 9.9999997e-006 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\n" + "TEX R1.x, R0.zwzw, 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 R2.xyz, R0, R1.w;\n" + "MUL R2.xyz, R1.w, R0;\n" "MAD R3.xyz, R1, R0.w, R2;\n" "ADD R2.w, -R0, c[5].x;\n" "MAD R2.xyz, -R1.w, R0.w, R3;\n" @@ -6801,9 +6655,8 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "RCP R2.z, R2.z;\n" "MAD R2.xyz, R4, R2, R5;\n" "MUL R4.xyz, R0, R3.w;\n" - "MAD R1.xyz, R1, R2.w, R4;\n" - "ADD R3.w, -R1, c[5].x;\n" "MAD R0.xyz, R0, R3.w, R2;\n" + "MAD R1.xyz, R1, R2.w, R4;\n" "MUL R2.x, R1.w, R0.w;\n" "ADD R2.w, R1, R0;\n" "ADD R0.xyz, R0, -R1;\n" @@ -6822,12 +6675,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R1.x, R0, texture[1], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" @@ -6858,57 +6711,55 @@ 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-06, 2, 8 },\n" - " { 3 } };\n" + " { 1, 9.9999997e-006, 2, 3 },\n" + " { 8 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" "TEMP R4;\n" "TEMP R5;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R1.xyz, R0, c[2];\n" + "TEMP R6;\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R1.xyz, R0, c[3];\n" "RCP R0.z, R1.z;\n" "MUL R1.xy, R1, R0.z;\n" - "MUL R1.xy, R1, c[3];\n" + "MUL R1.xy, R1, c[0];\n" "MOV R1.y, -R1;\n" "MUL R0.xy, fragment.position, c[4];\n" "TEX R0, R0, texture[0], 2D;\n" "MAX R1.z, R0.w, c[5].y;\n" "RCP R2.w, R1.z;\n" "MUL R2.xyz, R0, R2.w;\n" - "MUL R5.xyz, -R2, c[5].w;\n" - "MAD R4.xyz, -R0, R2.w, c[5].x;\n" + "MUL R6.xyz, -R2, c[6].x;\n" + "MAD R3.xyz, -R0, R2.w, c[5].x;\n" "TEX R1.x, R1, texture[1], 2D;\n" "MUL R1, fragment.color.primary, R1.x;\n" - "MAD R3.xyz, R1, c[5].z, -R1.w;\n" + "MAD R4.xyz, R1, c[5].z, -R1.w;\n" + "MUL R5.xyz, R3, R4;\n" + "MAD R3.xyz, -R3, R4, R1.w;\n" + "ADD R6.xyz, R6, c[5].w;\n" + "MAD R5.xyz, -R5, R6, R1.w;\n" "RSQ R2.x, R2.x;\n" "RSQ R2.z, R2.z;\n" "RSQ R2.y, R2.y;\n" - "MUL R4.xyz, R4, R3;\n" - "ADD R5.xyz, R5, c[6].x;\n" - "MUL R5.xyz, R4, R5;\n" - "ADD R4.xyz, R1.w, -R4;\n" + "MUL R5.xyz, R0, R5;\n" + "MUL R3.xyz, R0, R3;\n" "RCP R2.x, R2.x;\n" "RCP R2.z, R2.z;\n" "RCP R2.y, R2.y;\n" - "MAD R2.xyz, R2, R0.w, -R0;\n" - "MUL R3.xyz, R2, R3;\n" - "ADD R2.xyz, R1.w, -R5;\n" - "MAD R5.xyz, R0, R1.w, R3;\n" - "MUL R2.xyz, R0, R2;\n" - "MUL R3.xyz, R0, c[5].w;\n" - "ADD R5.xyz, R5, -R2;\n" - "SGE R3.xyz, R3, R0.w;\n" - "MUL R3.xyz, R3, R5;\n" - "ADD R2.xyz, R2, R3;\n" - "MUL R3.xyz, R0, R4;\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[5].z;\n" + "MUL R2.xyz, R0, c[6].x;\n" + "SGE R2.xyz, R2, R0.w;\n" + "MAD R2.xyz, R2, R6, R5;\n" "ADD R2.xyz, R2, -R3;\n" "SGE R4.xyz, R4, R1.w;\n" - "MUL R2.xyz, R4, R2;\n" - "ADD R2.xyz, R3, R2;\n" + "MAD R2.xyz, R4, R2, R3;\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" @@ -6926,18 +6777,19 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\n" + "TEX R1.x, R0.zwzw, texture[1], 2D;\n" "MUL R0.xy, fragment.position, c[4];\n" - "MUL R1, fragment.color.primary, R1.x;\n" "TEX R0, R0, texture[0], 2D;\n" - "MUL R3.xyz, R0, R1.w;\n" + "MUL R1, fragment.color.primary, R1.x;\n" + "MUL R3.xyz, R1.w, R0;\n" "MUL R2.xyz, R1, R0.w;\n" "ADD R0.xyz, R1, R0;\n" "MIN R2.xyz, R2, R3;\n" @@ -6950,30 +6802,31 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MODES_EXCLUSION_NOMASK = "!!ARBfp1.0\n" "PARAM c[6] = { program.local[0..4],\n" - " { 1, 2 } };\n" + " { 2, 1 } };\n" "TEMP R0;\n" "TEMP R1;\n" "TEMP R2;\n" "TEMP R3;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" - "MOV R0.y, -R0;\n" - "TEX R1.x, R0, texture[1], 2D;\n" + "MUL R0.xy, R0, c[0];\n" + "MOV R0.w, -R0.y;\n" + "MOV R0.z, R0.x;\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 R1, fragment.color.primary, R1.x;\n" - "MUL R2.xyz, R0, R1.w;\n" + "MUL R2.xyz, R1.w, R0;\n" "MAD R3.xyz, R1, R0.w, R2;\n" "MUL R2.xyz, R1, R0;\n" - "MAD R2.xyz, -R2, c[5].y, R3;\n" - "ADD R2.w, -R0, c[5].x;\n" + "MAD R2.xyz, -R2, c[5].x, R3;\n" + "ADD R2.w, -R0, c[5].y;\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" + "ADD R2.y, -R1.w, c[5];\n" "MAD result.color.xyz, R0, R2.y, R1;\n" "MAD result.color.w, -R1, R0, R2.x;\n" "END\n" @@ -6984,15 +6837,15 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "PARAM c[7] = { program.local[0..6] };\n" "TEMP R0;\n" "TEMP R1;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R1.xyz, R0, c[2];\n" + "MUL R0.xyz, fragment.position.y, c[2];\n" + "MAD R0.xyz, fragment.position.x, c[1], R0;\n" + "ADD R1.xyz, R0, c[3];\n" "RCP R0.z, R1.z;\n" "MUL R0.zw, R1.xyxy, R0.z;\n" - "MUL R1.xy, R0.zwzw, c[3];\n" + "MUL R1.xy, R0.zwzw, c[0];\n" "MOV R1.y, -R1;\n" - "ADD R0.xy, fragment.position, c[4];\n" - "MUL R0.xy, R0, c[5];\n" + "ADD R0.xy, fragment.position, c[5];\n" + "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" @@ -7005,12 +6858,12 @@ static const char *FragmentProgram_FRAGMENT_PROGRAM_BRUSH_PATTERN_COMPOSITION_MO "!!ARBfp1.0\n" "PARAM c[4] = { program.local[0..3] };\n" "TEMP R0;\n" - "MUL R0.xyz, fragment.position.y, c[1];\n" - "MAD R0.xyz, fragment.position.x, c[0], R0;\n" - "ADD R0.xyz, R0, c[2];\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[3];\n" + "MUL R0.xy, R0, c[0];\n" "MOV R0.y, -R0;\n" "TEX R0.x, R0, texture[0], 2D;\n" "MUL result.color, fragment.color.primary, R0.x;\n" @@ -7195,19 +7048,19 @@ static const char *painter_fragment_program_sources[num_fragment_brushes][num_fr static int painter_variable_locations[num_fragment_brushes][num_fragment_composition_modes][num_fragment_variables] = { { - { -1, -1, -1, 1, -1, 6, 2, -1, 5, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, 3, 1, 0, -1, 0, -1, -1, -1, -1, -1, }, - { -1, -1, -1, -1, -1, 3, -1, -1, 2, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 2, -1, 0, 5, -1, 1, 3, 1, 0, -1, 4, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 3, -1, -1, 1, 1, 0, -1, 2, -1, -1, -1, -1, -1, }, + { -1, -1, -1, -1, -1, 0, -1, -1, 1, 2, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, @@ -7219,154 +7072,154 @@ static int painter_variable_locations[num_fragment_brushes][num_fragment_composi { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, }, - { -1, -1, -1, 1, -1, -1, 2, -1, -1, -1, 0, -1, -1, 0, -1, -1, -1, -1, -1, }, + { -1, -1, -1, 0, -1, -1, 2, -1, -1, -1, 0, -1, -1, 1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, }, { - { -1, -1, 4, 1, 5, 11, 2, -1, 10, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 9, 1, 0, 2, 0, -1, 8, 6, 3, -1, }, - { -1, -1, 1, -1, 2, 8, -1, -1, 7, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 6, -1, 0, 1, -1, -1, 5, 3, 0, -1, }, - { -1, -1, 1, 7, 2, -1, 8, -1, -1, -1, 0, -1, 1, 6, -1, 5, 3, 0, -1, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 5, 3, 0, -1, }, + { -1, -1, 3, 7, 4, 5, 10, -1, 6, 8, 1, 0, 2, 9, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 8, -1, -1, 6, 1, 0, 2, 7, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, 5, -1, -1, 6, 7, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, 5, -1, 0, 1, -1, -1, 1, 0, 2, -1, }, + { -1, -1, 3, 5, 4, -1, 7, -1, -1, -1, 0, -1, 1, 6, -1, 1, 0, 2, -1, }, + { -1, -1, 3, -1, 4, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, 0, 2, -1, }, }, { - { -1, -1, 4, 1, 5, 12, 2, -1, 11, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 4, 1, 5, -1, 2, -1, -1, 10, 1, 0, 2, 0, -1, -1, -1, 3, 8, }, - { -1, -1, 1, -1, 2, 9, -1, -1, 8, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, 7, -1, 0, 1, -1, -1, -1, -1, 0, 5, }, - { -1, -1, 1, 8, 2, -1, 9, -1, -1, -1, 0, -1, 1, 7, -1, -1, -1, 0, 5, }, - { -1, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, 5, }, + { -1, -1, 2, 6, 3, 4, 9, -1, 5, 7, 1, 0, 2, 8, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, 4, -1, -1, 5, 6, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, 0, }, + { -1, -1, 2, 4, 3, -1, 6, -1, -1, -1, 0, -1, 1, 5, -1, -1, -1, 1, 0, }, + { -1, -1, 2, -1, 3, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 0, }, }, { - { -1, 6, 4, 1, 5, 10, 2, -1, 9, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 6, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, 2, 0, -1, -1, -1, 3, -1, }, - { -1, 3, 1, -1, 2, 7, -1, -1, 6, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 0, -1, }, - { -1, 3, 1, 5, 2, -1, 6, -1, -1, -1, 0, -1, 1, 4, -1, -1, -1, 0, -1, }, - { -1, 3, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, -1, }, + { -1, 0, 2, 6, 3, 4, 9, -1, 5, 7, 1, 0, 2, 8, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, 2, 6, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, 4, -1, -1, 5, 6, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, 1, -1, -1, -1, -1, 1, -1, }, + { -1, 0, 2, 4, 3, -1, 6, -1, -1, -1, 0, -1, 1, 5, -1, -1, -1, 1, -1, }, + { -1, 0, 2, -1, 3, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, }, }, { - { 2, -1, 4, 1, 5, 10, 2, -1, 9, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 1, -1, 1, -1, 2, 7, -1, -1, 6, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, 5, 2, -1, 6, -1, -1, -1, 0, -1, -1, 4, 3, -1, -1, 0, -1, }, - { 0, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, -1, }, + { 2, -1, 2, 6, 3, 4, 9, -1, 5, 7, 1, 0, -1, 8, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, 4, -1, -1, 5, 6, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, 4, 3, -1, 6, -1, -1, -1, 0, -1, -1, 5, 0, -1, -1, 1, -1, }, + { 0, -1, 2, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, }, }, { - { 2, -1, 4, 1, 5, 10, 2, -1, 9, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 2, -1, 4, 1, 5, -1, 2, -1, -1, 7, 1, 0, -1, 0, 6, -1, -1, 3, -1, }, - { 1, -1, 1, -1, 2, 7, -1, -1, 6, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, -1, 2, -1, -1, -1, -1, 4, -1, 0, -1, -1, 3, -1, -1, 0, -1, }, - { 1, -1, 1, 5, 2, -1, 6, -1, -1, -1, 0, -1, -1, 4, 3, -1, -1, 0, -1, }, - { 0, -1, 1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, -1, }, + { 2, -1, 2, 6, 3, 4, 9, -1, 5, 7, 1, 0, -1, 8, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 2, -1, 2, 4, 3, -1, 7, -1, -1, 5, 1, 0, -1, 6, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, 4, -1, -1, 5, 6, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, -1, 3, -1, -1, -1, -1, 4, -1, 0, -1, -1, 0, -1, -1, 1, -1, }, + { 1, -1, 2, 4, 3, -1, 6, -1, -1, -1, 0, -1, -1, 5, 0, -1, -1, 1, -1, }, + { 0, -1, 2, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, }, }, }; static int mask_variable_locations[num_fragment_masks][num_fragment_variables] = { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, - { -1, -1, 2, -1, 3, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, }, + { -1, -1, 1, -1, 2, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, }, }; #endif diff --git a/src/opengl/util/generator.pro b/src/opengl/util/generator.pro index 9425dbe..ac71934 100644 --- a/src/opengl/util/generator.pro +++ b/src/opengl/util/generator.pro @@ -9,3 +9,5 @@ INCLUDEPATH += . # Input SOURCES += generator.cpp + +CONFIG += console diff --git a/src/opengl/util/texture_brush.glsl b/src/opengl/util/texture_brush.glsl index 93865b8..9498255 100644 --- a/src/opengl/util/texture_brush.glsl +++ b/src/opengl/util/texture_brush.glsl @@ -17,7 +17,5 @@ vec4 brush() coords *= inv_brush_texture_size; - coords.y = -coords.y; - return texture2D(brush_texture, coords); } -- cgit v0.12