OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 GrGLProcessor_DEFINED | 8 #ifndef GrGLProcessor_DEFINED |
9 #define GrGLProcessor_DEFINED | 9 #define GrGLProcessor_DEFINED |
10 | 10 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
63 uint32_t fConfigComponentMask; | 63 uint32_t fConfigComponentMask; |
64 char fSwizzle[5]; | 64 char fSwizzle[5]; |
65 | 65 |
66 friend class GrGLShaderBuilder; | 66 friend class GrGLShaderBuilder; |
67 }; | 67 }; |
68 | 68 |
69 typedef SkTArray<TextureSampler> TextureSamplerArray; | 69 typedef SkTArray<TextureSampler> TextureSamplerArray; |
70 | 70 |
71 virtual ~GrGLProcessor() {} | 71 virtual ~GrGLProcessor() {} |
72 | 72 |
73 /** A GrGLProcessor instance can be reused with any GrProcessor that produce s the same stage | |
74 key; this function reads data from a GrProcessor and uploads any uniform variables required | |
75 by the shaders created in emitCode(). The GrProcessor parameter is guara nteed to be of the | |
76 same type that created this GrGLProcessor and to have an identical effec t key as the one | |
77 that created this GrGLProcessor. */ | |
78 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) {} | |
79 | |
80 const char* name() const { return fFactory.name(); } | 73 const char* name() const { return fFactory.name(); } |
81 | 74 |
82 static void GenKey(const GrProcessor&, const GrGLCaps&, GrProcessorKeyBuilde r*) {} | 75 static void GenKey(const GrProcessor&, const GrGLCaps&, GrProcessorKeyBuilde r*) {} |
83 | 76 |
84 protected: | 77 protected: |
85 const GrBackendProcessorFactory& fFactory; | 78 const GrBackendProcessorFactory& fFactory; |
86 }; | 79 }; |
87 | 80 |
88 class GrGLFPBuilder; | 81 class GrGLFPBuilder; |
89 | 82 |
(...skipping 24 matching lines...) Expand all Loading... | |
114 code. | 107 code. |
115 TODO this should take a struct | 108 TODO this should take a struct |
116 */ | 109 */ |
117 virtual void emitCode(GrGLFPBuilder* builder, | 110 virtual void emitCode(GrGLFPBuilder* builder, |
118 const GrFragmentProcessor& effect, | 111 const GrFragmentProcessor& effect, |
119 const char* outputColor, | 112 const char* outputColor, |
120 const char* inputColor, | 113 const char* inputColor, |
121 const TransformedCoordsArray& coords, | 114 const TransformedCoordsArray& coords, |
122 const TextureSamplerArray& samplers) = 0; | 115 const TextureSamplerArray& samplers) = 0; |
123 | 116 |
117 /** A GrGLFragmentProcessor instance can be reused with any GrFragmentProces sor that produces | |
118 the same stage key; this function reads data from a GrFragmentProcessor and uploads any | |
119 uniform variables required by the shaders created in emitCode(). The GrF ragmentProcessor | |
120 parameter is guaranteed to be of the same type that created this GrGLFra gmentProcessor and | |
121 to have an identical effect key as the one that created this GrGLFragmen tProcessor. */ | |
122 // TODO update this to pass in GrFragmentProcessor | |
123 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) {} | |
bsalomon
2014/12/03 19:38:32
Why can't it be fp?
effect->processor
| |
124 | |
124 private: | 125 private: |
125 typedef GrGLProcessor INHERITED; | 126 typedef GrGLProcessor INHERITED; |
126 }; | 127 }; |
127 | 128 |
128 class GrGLXferProcessor : public GrGLFragmentProcessor { | 129 class GrGLXferProcessor : public GrGLFragmentProcessor { |
129 public: | 130 public: |
130 GrGLXferProcessor(const GrBackendProcessorFactory& factory) | 131 GrGLXferProcessor(const GrBackendProcessorFactory& factory) |
131 : INHERITED(factory) { | 132 : INHERITED(factory) { |
132 } | 133 } |
133 | 134 |
134 virtual ~GrGLXferProcessor() {} | 135 virtual ~GrGLXferProcessor() {} |
135 | 136 |
136 private: | 137 private: |
137 typedef GrGLFragmentProcessor INHERITED; | 138 typedef GrGLFragmentProcessor INHERITED; |
138 }; | 139 }; |
139 | 140 |
140 #endif | 141 #endif |
OLD | NEW |