| OLD | NEW | 
|---|
| 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  Loading... | 
| 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 | 
| OLD | NEW | 
|---|