Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: src/gpu/gl/GrGLProgramDesc.h

Issue 14633007: Key shader on whether frag pos read is relative to top-left or bottom-left (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: address comments Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/gpu/GrDrawTarget.cpp ('k') | src/gpu/gl/GrGLProgramDesc.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrGLProgramDesc_DEFINED 8 #ifndef GrGLProgramDesc_DEFINED
9 #define GrGLProgramDesc_DEFINED 9 #define GrGLProgramDesc_DEFINED
10 10
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 // Writes color*coverage as the primary color output and also writes cov erage as the 72 // Writes color*coverage as the primary color output and also writes cov erage as the
73 // secondary output. Only set if dual source blending is supported. 73 // secondary output. Only set if dual source blending is supported.
74 kSecondaryCoverage_CoverageOutput, 74 kSecondaryCoverage_CoverageOutput,
75 // Writes color*coverage as the primary color output and also writes cov erage * (1 - colorA) 75 // Writes color*coverage as the primary color output and also writes cov erage * (1 - colorA)
76 // as the secondary output. Only set if dual source blending is supporte d. 76 // as the secondary output. Only set if dual source blending is supporte d.
77 kSecondaryCoverageISA_CoverageOutput, 77 kSecondaryCoverageISA_CoverageOutput,
78 // Writes color*coverage as the primary color output and also writes cov erage * 78 // Writes color*coverage as the primary color output and also writes cov erage *
79 // (1 - colorRGB) as the secondary output. Only set if dual source blend ing is supported. 79 // (1 - colorRGB) as the secondary output. Only set if dual source blend ing is supported.
80 kSecondaryCoverageISC_CoverageOutput, 80 kSecondaryCoverageISC_CoverageOutput,
81 // Combines the coverage, dst, and color as coverage * color + (1 - cove rage) * dst. This 81 // Combines the coverage, dst, and color as coverage * color + (1 - cove rage) * dst. This
82 // can only be set if fDstRead is set. 82 // can only be set if fDstReadKey is non-zero.
83 kCombineWithDst_CoverageOutput, 83 kCombineWithDst_CoverageOutput,
84 84
85 kCoverageOutputCnt 85 kCoverageOutputCnt
86 }; 86 };
87 87
88 static bool CoverageOutputUsesSecondaryOutput(CoverageOutput co) { 88 static bool CoverageOutputUsesSecondaryOutput(CoverageOutput co) {
89 switch (co) { 89 switch (co) {
90 case kSecondaryCoverage_CoverageOutput: // fallthru 90 case kSecondaryCoverage_CoverageOutput: // fallthru
91 case kSecondaryCoverageISA_CoverageOutput: 91 case kSecondaryCoverageISA_CoverageOutput:
92 case kSecondaryCoverageISC_CoverageOutput: 92 case kSecondaryCoverageISC_CoverageOutput:
93 return true; 93 return true;
94 default: 94 default:
95 return false; 95 return false;
96 } 96 }
97 } 97 }
98 98
99 /** Non-zero if this stage has an effect */ 99 /** Non-zero if this stage has an effect */
100 GrGLEffect::EffectKey fEffectKeys[GrDrawState::kNumStages]; 100 GrGLEffect::EffectKey fEffectKeys[GrDrawState::kNumStages];
101 101
102 // To enable experimental geometry shader code (not for use in 102 // To enable experimental geometry shader code (not for use in
103 // production) 103 // production)
104 #if GR_GL_EXPERIMENTAL_GS 104 #if GR_GL_EXPERIMENTAL_GS
105 bool fExperimentalGS; 105 bool fExperimentalGS;
106 #endif 106 #endif
107 107
108 GrGLShaderBuilder::DstReadKey fDstRead; // set by GrGLShaderBuil der if there 108 GrGLShaderBuilder::DstReadKey fDstReadKey; // set by GrGLShaderBuil der if there
109 // are effects that must read the dst. 109 // are effects that must read the dst.
110 // Otherwise, 0. 110 // Otherwise, 0.
111 GrGLShaderBuilder::FragPosKey fFragPosKey; // set by GrGLShaderBuil der if there are
112 // effects that read the fragment position.
113 // Otherwise, 0.
111 114
112 // should the FS discard if the coverage is zero (to avoid stencil manipulat ion) 115 // should the FS discard if the coverage is zero (to avoid stencil manipulat ion)
113 SkBool8 fDiscardIfZeroCoverage; 116 SkBool8 fDiscardIfZeroCoverage;
114 117
115 uint8_t fColorInput; // casts to enum ColorIn put 118 uint8_t fColorInput; // casts to enum ColorIn put
116 uint8_t fCoverageInput; // casts to enum ColorIn put 119 uint8_t fCoverageInput; // casts to enum ColorIn put
117 uint8_t fCoverageOutput; // casts to enum Coverag eOutput 120 uint8_t fCoverageOutput; // casts to enum Coverag eOutput
118 121
119 int8_t fFirstCoverageStage; 122 int8_t fFirstCoverageStage;
120 SkBool8 fEmitsPointSize; 123 SkBool8 fEmitsPointSize;
121 uint8_t fColorFilterXfermode; // casts to enum SkXferm ode::Mode 124 uint8_t fColorFilterXfermode; // casts to enum SkXferm ode::Mode
122 125
123 int8_t fPositionAttributeIndex; 126 int8_t fPositionAttributeIndex;
124 int8_t fLocalCoordAttributeIndex; 127 int8_t fLocalCoordAttributeIndex;
125 int8_t fColorAttributeIndex; 128 int8_t fColorAttributeIndex;
126 int8_t fCoverageAttributeIndex; 129 int8_t fCoverageAttributeIndex;
127 130
128 // GrGLProgram and GrGLShaderBuilder read the private fields to generate cod e. TODO: Move all 131 // GrGLProgram and GrGLShaderBuilder read the private fields to generate cod e. TODO: Move all
129 // code generation to GrGLShaderBuilder (and maybe add getters rather than f riending). 132 // code generation to GrGLShaderBuilder (and maybe add getters rather than f riending).
130 friend class GrGLProgram; 133 friend class GrGLProgram;
131 friend class GrGLShaderBuilder; 134 friend class GrGLShaderBuilder;
132 }; 135 };
133 136
134 #endif 137 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrDrawTarget.cpp ('k') | src/gpu/gl/GrGLProgramDesc.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698