History log of /external/skia/src/gpu/GrPaint.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b197b8ff31b73ccb20423023e03592df8ae78ea6 17-Feb-2015 egdaniel <egdaniel@google.com> Use SkXfermode as public facing enum for GrPorterDuffXP

BUG=skia:

Review URL: https://codereview.chromium.org/926593005
/external/skia/src/gpu/GrPaint.cpp
2fdeda04988867625bb9bc2f7f6037406a0a98ec 22-Jan-2015 joshualitt <joshualitt@chromium.org> XPFactory lazily initializie in drawstate / GrPaint

BUG=skia:

Review URL: https://codereview.chromium.org/866573002
/external/skia/src/gpu/GrPaint.cpp
40d4bd8dafe9ed844f29a3de3d8965672248ee73 29-Dec-2014 joshualitt <joshualitt@chromium.org> removing coord change matrices

BUG=skia:

Review URL: https://codereview.chromium.org/821243003
/external/skia/src/gpu/GrPaint.cpp
080e673b10ac607305f140ddb245e140ccde40c6 22-Dec-2014 egdaniel <egdaniel@google.com> Add XP to handle the cases where we disable color write.

BUG=skia:

Review URL: https://codereview.chromium.org/787233003
/external/skia/src/gpu/GrPaint.cpp
9e4ecdc9f86724dcce23dc7546e2f295b901407b 18-Dec-2014 egdaniel <egdaniel@google.com> Add an InvariantOutput for the XPF.

The Invariant output holds information about final post blended color and other
general information like will it blend with dst. Having this new struct allowed
me to also remove some functions that were previously querying subsets of the
invariant output.

BUG=skia:

Review URL: https://codereview.chromium.org/814933002
/external/skia/src/gpu/GrPaint.cpp
9513143efa734bef0c1a0c7f945022572dbc8518 09-Dec-2014 egdaniel <egdaniel@google.com> Make all blending up to GrOptDrawState be handled by the xp/xp factory.

In this cl the blending information is extracted for the xp and stored in the ODS
which is then used as it currently is. In the follow up cl, an XP backend will be added
and at that point all blending work will take place inside XP's.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/7c66342a399b529634bed0fabfaa562db2c0dbd4

Review URL: https://codereview.chromium.org/759713002
/external/skia/src/gpu/GrPaint.cpp
8d95ffa497091d0c9c7cda099684c7bca6714a17 08-Dec-2014 egdaniel <egdaniel@google.com> Revert of Make all blending up to GrOptDrawState be handled by the xp/xp factory. (patchset #7 id:140001 of https://codereview.chromium.org/759713002/)

Reason for revert:
break many gm's

Original issue's description:
> Make all blending up to GrOptDrawState be handled by the xp/xp factory.
>
> In this cl the blending information is extracted for the xp and stored in the ODS
> which is then used as it currently is. In the follow up cl, an XP backend will be added
> and at that point all blending work will take place inside XP's.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7c66342a399b529634bed0fabfaa562db2c0dbd4

TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/766653008
/external/skia/src/gpu/GrPaint.cpp
7c66342a399b529634bed0fabfaa562db2c0dbd4 08-Dec-2014 egdaniel <egdaniel@google.com> Make all blending up to GrOptDrawState be handled by the xp/xp factory.

In this cl the blending information is extracted for the xp and stored in the ODS
which is then used as it currently is. In the follow up cl, an XP backend will be added
and at that point all blending work will take place inside XP's.

BUG=skia:

Review URL: https://codereview.chromium.org/759713002
/external/skia/src/gpu/GrPaint.cpp
c016fb8f9fb53dd8d4936c5e9e16a9dc99ab392e 03-Dec-2014 egdaniel <egdaniel@google.com> Use static XPF for porter duff xp factories.

BUG=skia:

Review URL: https://codereview.chromium.org/776843004
/external/skia/src/gpu/GrPaint.cpp
378092f3d10b1dd62967f419c35cfefec7c10ee7 03-Dec-2014 egdaniel <egdaniel@google.com> Add XferProcessor factory in GrPaint and GrDrawState.

In this CL the XP should have zero effect on the actual rendering pipeline.

BUG=skia:

Review URL: https://codereview.chromium.org/751283002
/external/skia/src/gpu/GrPaint.cpp
b6cbc38702dc4a1540a17181cbdab71060c92ce7 13-Nov-2014 egdaniel <egdaniel@google.com> Add GrProcOptInfo class to track various output information for color and coverage stages.

BUG=skia:

Review URL: https://codereview.chromium.org/719203002
/external/skia/src/gpu/GrPaint.cpp
605dd0fbce9dbb2a0d3313e13e161f2bd54870d7 12-Nov-2014 egdaniel <egdaniel@google.com> Move GrInvariantOutput out of GrProcessor and into its own class.

This will help with the ability to subclass, add to, etc. GrInvariantOutput. Also it was simply
getting a little too big to be a "supporting" subclass
BUG=skia:

Review URL: https://codereview.chromium.org/699943003
/external/skia/src/gpu/GrPaint.cpp
4052a8e4f2b54fb999163edfeec64b0f2c8b9c47 11-Nov-2014 joshualitt <joshualitt@chromium.org> Remove coverage from grpaint

BUG=skia:

Review URL: https://codereview.chromium.org/683133006
/external/skia/src/gpu/GrPaint.cpp
37b4d866b1446d35c989f9a97885a777ddc7d1c8 03-Nov-2014 egdaniel <egdaniel@google.com> Force input coverage to be only a byte in gpu shaders.

Prime coverage invariant output calculations with single component

BUG=skia:

Review URL: https://codereview.chromium.org/649783003
/external/skia/src/gpu/GrPaint.cpp
1a8ecdfb73a15de600d5779b75d7c4b61863c50b 03-Oct-2014 egdaniel <egdaniel@google.com> Add isSingleComponent bool to getConstantColorComponent

Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/3b8af078281a5a20f951b9fd84f38d92b8f6217b

Review URL: https://codereview.chromium.org/608253002
/external/skia/src/gpu/GrPaint.cpp
b4b7a4c9ea2e399db550f93e3754c351e5b2079a 02-Oct-2014 robertphillips <robertphillips@google.com> Revert of Add isSingleComponent bool to getConstantColorComponent (patchset #6 id:100001 of https://codereview.chromium.org/608253002/)

Reason for revert:
Changing some GMs

Original issue's description:
> Add isSingleComponent bool to getConstantColorComponent
>
> Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3b8af078281a5a20f951b9fd84f38d92b8f6217b

TBR=joshualitt@chromium.org,bsalomon@google.com,reed@google.com,egdaniel@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/617853003
/external/skia/src/gpu/GrPaint.cpp
3b8af078281a5a20f951b9fd84f38d92b8f6217b 02-Oct-2014 egdaniel <egdaniel@google.com> Add isSingleComponent bool to getConstantColorComponent

Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.

BUG=skia:

Review URL: https://codereview.chromium.org/608253002
/external/skia/src/gpu/GrPaint.cpp
b0a8a377f832c59cee939ad721e1f87d378b7142 23-Sep-2014 joshualitt <joshualitt@chromium.org> Patch to create a distinct geometry processor. The vast majority of this patch
is just a rename. The meat is in GrGeometryProcessor, GrProcessor,
GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory,
GrProcessUnitTestFactory, and the builders

BUG=skia:
R=bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/582963002
/external/skia/src/gpu/GrPaint.cpp
49f085dddff10473b6ebf832a974288300224e60 05-Sep-2014 bsalomon <bsalomon@google.com> "NULL !=" = NULL

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/544233002
/external/skia/src/gpu/GrPaint.cpp
97b9ab72cd5ee0cba4692082737266376425f27c 08-Jul-2014 bsalomon <bsalomon@google.com> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.

Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*

Make GrEffectRef a typedef for GrEffect.

Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377503004
/external/skia/src/gpu/GrPaint.cpp
969842ac9c3825100c86c8dae88d931c06286622 08-Jul-2014 reed <reed@google.com> Revert of Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. (https://codereview.chromium.org/377503004/)

Reason for revert:
broke linux builders

Original issue's description:
> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.
>
> Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*
>
> Make GrEffectRef a typedef for GrEffect.
>
> Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

R=robertphillips@google.com, bsalomon@google.com
TBR=bsalomon@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/372053003
/external/skia/src/gpu/GrPaint.cpp
2011fe9cdfa63b83489a146cea6a724cede352c8 08-Jul-2014 bsalomon <bsalomon@google.com> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.

Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*

Make GrEffectRef a typedef for GrEffect.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377503004
/external/skia/src/gpu/GrPaint.cpp
f99f884cd82528684779e40413f1ceaf277dad2d 07-Jul-2014 bsalomon <bsalomon@google.com> Remove use of GrEffectRef from draw state and below.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/372773002
/external/skia/src/gpu/GrPaint.cpp
88cb22b6b4816c7a9ca6c5b795965b4606f9eb7b 30-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Convert GrCrash->SkFAIL GrDebugCrash->SkDEBUGFAIL

R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/257393004

git-svn-id: http://skia.googlecode.com/svn/trunk@14460 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
a34995e18b1f0a7d8c9f23451718bb30ff0105b0 23-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement SkColorFilter as a GrGLEffect

Adds GrEffect::willUseInputColor() which indicates whether or not the
input color affects the output of the effect. This is needed for
certain Xfermodes, such as kSrc_Mode. For these modes the color filter
will not use the input color.

An effect with GrEffect::willUseInputColor() true will cause all color
or coverage effects before it to be discarded, as their computations
cannot affect the output. In these cases program is marked as having
white input color.

This fixes an assert when Skia is compiled in a mode that prefers
using uniforms instead of attributes for constants. (Flags
GR_GL_USE_NV_PATH_RENDERING or GR_GL_NO_CONSTANT_ATTRIBUTES). Using
attributes hides the problem where the fragment shader does not need
input color for color filters that ignore DST part of the filter. The
assert would be hit when uniform manager tries to bind an uniform which
has been optimized away by the shader compiler.

Adds specific GrGLSLExpr4 and GrGLSLExpr1 classes. This way the GLSL
expressions like "(v - src.a)" can remain somewhat readable in form of
"(v - src.a())". The GrGLSLExpr<typename> template implements the
generic functionality, GrGLSLExprX is the specialization that exposes
the type-safe interface to this functionality.

Also adds operators so that GLSL binary operators of the form
"(float * vecX)" can be expressed in C++. Before only the equivalent
"(vecX * float)" was possible. This reverts the common blending
calculations to more conventional order, such as "(1-a) * c" instead of
"c * (1-a)".

Changes GrGLSLExpr1::OnesStr from 1 to 1.0 in order to preserve the
color filter blending formula string the same (with the exception of
variable name change).

Shaders change in case of input color being needed:
- vec4 filteredColor;
- filteredColor = (((1.0 - uFilterColor.a) * output_Stage0) + uFilterColor);
- fsColorOut = filteredColor;
+ vec4 output_Stage1;
+ { // Stage 1: ModeColorFilterEffect
+ output_Stage1 = (((1.0 - uFilterColor_Stage1.a) * output_Stage0) + uFilterColor_Stage1);
+ }
+ fsColorOut = output_Stage1;

Shaders change in case of input color being not needed:
-uniform vec4 uFilterColor;
-in vec4 vColor;
+uniform vec4 uFilterColor_Stage0;
out vec4 fsColorOut;
void main() {
- vec4 filteredColor;
- filteredColor = uFilterColor;
- fsColorOut = filteredColor;
+ vec4 output_Stage0;
+ { // Stage 0: ModeColorFilterEffect
+ output_Stage0 = uFilterColor_Stage0;
+ }
+ fsColorOut = output_Stage0;
}

R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/25023003

git-svn-id: http://skia.googlecode.com/svn/trunk@11912 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
f6de475e5cbd143f348ff7738919e397b7fe7f57 17-Aug-2013 tfarina@chromium.org <tfarina@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace uses of GrAssert by SkASSERT.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/22850006

git-svn-id: http://skia.googlecode.com/svn/trunk@10789 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
24ab3b0ce50b3428f063849b6160e468f047487c 14-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add blend optimization helpers and use to convert rect draws to clears.

R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/22558003

git-svn-id: http://skia.googlecode.com/svn/trunk@10723 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
75796db3b3f685520eaec2dc0478bdbd4987bae6 07-Aug-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Add blend optimization helpers and use to convert rect draws to clears."

This reverts commit r10537.

git-svn-id: http://skia.googlecode.com/svn/trunk@10601 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
c1cdf21ab88b63c07990e6bbce559397bf207b47 06-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add blend optimization helpers and use to convert rect draws to clears.

Committed: http://code.google.com/p/skia/source/detail?r=10537

R=robertphillips@google.com, jvanverth@google.com, reed@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/21877006

git-svn-id: http://skia.googlecode.com/svn/trunk@10562 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
9b6a185e36f3145aa53732e8fb30c870ff38a93c 05-Aug-2013 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Add blend optimization helpers and use to convert rect draws to clears."

This reverts commit r10537.

git-svn-id: http://skia.googlecode.com/svn/trunk@10542 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
66017f6cc52770c04078dc74ddcda27349002652 05-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add blend optimization helpers and use to convert rect draws to clears.

R=robertphillips@google.com, jvanverth@google.com, reed@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/21877006

git-svn-id: http://skia.googlecode.com/svn/trunk@10537 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
b88ab93c379905535d2c86c619e419ce78341220 14-Jul-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10067 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp
42dacab4e7366d9f53989558cc8d045c3d065bcd 13-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make GrPaint have a variable sized array of color and coverage stages rather than a fixed size.

R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/18686007

git-svn-id: http://skia.googlecode.com/svn/trunk@10062 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/GrPaint.cpp