| 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 GrGLSLPrimitiveProcessor_DEFINED | 8 #ifndef GrGLSLPrimitiveProcessor_DEFINED |
| 9 #define GrGLSLPrimitiveProcessor_DEFINED | 9 #define GrGLSLPrimitiveProcessor_DEFINED |
| 10 | 10 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 | 35 |
| 36 struct EmitArgs { | 36 struct EmitArgs { |
| 37 EmitArgs(GrGLSLVertexBuilder* vertBuilder, | 37 EmitArgs(GrGLSLVertexBuilder* vertBuilder, |
| 38 GrGLSLPPFragmentBuilder* fragBuilder, | 38 GrGLSLPPFragmentBuilder* fragBuilder, |
| 39 GrGLSLVaryingHandler* varyingHandler, | 39 GrGLSLVaryingHandler* varyingHandler, |
| 40 GrGLSLUniformHandler* uniformHandler, | 40 GrGLSLUniformHandler* uniformHandler, |
| 41 const GrGLSLCaps* caps, | 41 const GrGLSLCaps* caps, |
| 42 const GrPrimitiveProcessor& gp, | 42 const GrPrimitiveProcessor& gp, |
| 43 const char* outputColor, | 43 const char* outputColor, |
| 44 const char* outputCoverage, | 44 const char* outputCoverage, |
| 45 const char* distanceVectorName, | |
| 46 const SamplerHandle* texSamplers, | 45 const SamplerHandle* texSamplers, |
| 47 const SamplerHandle* bufferSamplers, | 46 const SamplerHandle* bufferSamplers, |
| 48 const TransformsIn& transformsIn, | 47 const TransformsIn& transformsIn, |
| 49 TransformsOut* transformsOut) | 48 TransformsOut* transformsOut) |
| 50 : fVertBuilder(vertBuilder) | 49 : fVertBuilder(vertBuilder) |
| 51 , fFragBuilder(fragBuilder) | 50 , fFragBuilder(fragBuilder) |
| 52 , fVaryingHandler(varyingHandler) | 51 , fVaryingHandler(varyingHandler) |
| 53 , fUniformHandler(uniformHandler) | 52 , fUniformHandler(uniformHandler) |
| 54 , fGLSLCaps(caps) | 53 , fGLSLCaps(caps) |
| 55 , fGP(gp) | 54 , fGP(gp) |
| 56 , fOutputColor(outputColor) | 55 , fOutputColor(outputColor) |
| 57 , fOutputCoverage(outputCoverage) | 56 , fOutputCoverage(outputCoverage) |
| 58 , fDistanceVectorName(distanceVectorName) | |
| 59 , fTexSamplers(texSamplers) | 57 , fTexSamplers(texSamplers) |
| 60 , fBufferSamplers(bufferSamplers) | 58 , fBufferSamplers(bufferSamplers) |
| 61 , fTransformsIn(transformsIn) | 59 , fTransformsIn(transformsIn) |
| 62 , fTransformsOut(transformsOut) {} | 60 , fTransformsOut(transformsOut) {} |
| 63 GrGLSLVertexBuilder* fVertBuilder; | 61 GrGLSLVertexBuilder* fVertBuilder; |
| 64 GrGLSLPPFragmentBuilder* fFragBuilder; | 62 GrGLSLPPFragmentBuilder* fFragBuilder; |
| 65 GrGLSLVaryingHandler* fVaryingHandler; | 63 GrGLSLVaryingHandler* fVaryingHandler; |
| 66 GrGLSLUniformHandler* fUniformHandler; | 64 GrGLSLUniformHandler* fUniformHandler; |
| 67 const GrGLSLCaps* fGLSLCaps; | 65 const GrGLSLCaps* fGLSLCaps; |
| 68 const GrPrimitiveProcessor& fGP; | 66 const GrPrimitiveProcessor& fGP; |
| 69 const char* fOutputColor; | 67 const char* fOutputColor; |
| 70 const char* fOutputCoverage; | 68 const char* fOutputCoverage; |
| 71 const char* fDistanceVectorName; | |
| 72 const SamplerHandle* fTexSamplers; | 69 const SamplerHandle* fTexSamplers; |
| 73 const SamplerHandle* fBufferSamplers; | 70 const SamplerHandle* fBufferSamplers; |
| 74 const TransformsIn& fTransformsIn; | 71 const TransformsIn& fTransformsIn; |
| 75 TransformsOut* fTransformsOut; | 72 TransformsOut* fTransformsOut; |
| 76 }; | 73 }; |
| 77 | 74 |
| 78 /** | 75 /** |
| 79 * This is similar to emitCode() in the base class, except it takes a full s
hader builder. | 76 * This is similar to emitCode() in the base class, except it takes a full s
hader builder. |
| 80 * This allows the effect subclass to emit vertex code. | 77 * This allows the effect subclass to emit vertex code. |
| 81 */ | 78 */ |
| 82 virtual void emitCode(EmitArgs&) = 0; | 79 virtual void emitCode(EmitArgs&) = 0; |
| 83 | 80 |
| 81 |
| 84 /** A GrGLSLPrimitiveProcessor instance can be reused with any GrGLSLPrimiti
veProcessor that | 82 /** A GrGLSLPrimitiveProcessor instance can be reused with any GrGLSLPrimiti
veProcessor that |
| 85 produces the same stage key; this function reads data from a GrGLSLPrimi
tiveProcessor and | 83 produces the same stage key; this function reads data from a GrGLSLPrimi
tiveProcessor and |
| 86 uploads any uniform variables required by the shaders created in emitCo
de(). The | 84 uploads any uniform variables required by the shaders created in emitCo
de(). The |
| 87 GrPrimitiveProcessor parameter is guaranteed to be of the same type that
created this | 85 GrPrimitiveProcessor parameter is guaranteed to be of the same type that
created this |
| 88 GrGLSLPrimitiveProcessor and to have an identical processor key as the o
ne that created this | 86 GrGLSLPrimitiveProcessor and to have an identical processor key as the o
ne that created this |
| 89 GrGLSLPrimitiveProcessor. */ | 87 GrGLSLPrimitiveProcessor. */ |
| 90 virtual void setData(const GrGLSLProgramDataManager&, const GrPrimitiveProce
ssor&) = 0; | 88 virtual void setData(const GrGLSLProgramDataManager&, const GrPrimitiveProce
ssor&) = 0; |
| 91 | 89 |
| 92 static SkMatrix GetTransformMatrix(const SkMatrix& localMatrix, const GrCoor
dTransform&); | 90 static SkMatrix GetTransformMatrix(const SkMatrix& localMatrix, const GrCoor
dTransform&); |
| 93 | 91 |
| 94 virtual void setTransformData(const GrPrimitiveProcessor&, | 92 virtual void setTransformData(const GrPrimitiveProcessor&, |
| 95 const GrGLSLProgramDataManager& pdman, | 93 const GrGLSLProgramDataManager& pdman, |
| 96 int index, | 94 int index, |
| 97 const SkTArray<const GrCoordTransform*, true>&
transforms) = 0; | 95 const SkTArray<const GrCoordTransform*, true>&
transforms) = 0; |
| 98 | 96 |
| 99 protected: | 97 protected: |
| 100 void setupUniformColor(GrGLSLPPFragmentBuilder* fragBuilder, | 98 void setupUniformColor(GrGLSLPPFragmentBuilder* fragBuilder, |
| 101 GrGLSLUniformHandler* uniformHandler, | 99 GrGLSLUniformHandler* uniformHandler, |
| 102 const char* outputName, | 100 const char* outputName, |
| 103 UniformHandle* colorUniform); | 101 UniformHandle* colorUniform); |
| 104 | 102 |
| 105 struct Transform { | 103 struct Transform { |
| 106 Transform() : fType(kVoid_GrSLType) { fCurrentValue = SkMatrix::InvalidM
atrix(); } | 104 Transform() : fType(kVoid_GrSLType) { fCurrentValue = SkMatrix::InvalidM
atrix(); } |
| 107 SkMatrix fCurrentValue; | 105 SkMatrix fCurrentValue; |
| 108 GrSLType fType; | 106 GrSLType fType; |
| 109 }; | 107 }; |
| 110 }; | 108 }; |
| 111 | 109 |
| 112 #endif | 110 #endif |
| OLD | NEW |