| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 GrGLSLProgramBuilder_DEFINED | 8 #ifndef GrGLSLProgramBuilder_DEFINED |
| 9 #define GrGLSLProgramBuilder_DEFINED | 9 #define GrGLSLProgramBuilder_DEFINED |
| 10 | 10 |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 const char* output) = 0; | 158 const char* output) = 0; |
| 159 | 159 |
| 160 /* | 160 /* |
| 161 * Creates a fragment shader varying that can be referred to. | 161 * Creates a fragment shader varying that can be referred to. |
| 162 * Comparable to GrGLSLUniformBuilder::addUniform(). | 162 * Comparable to GrGLSLUniformBuilder::addUniform(). |
| 163 */ | 163 */ |
| 164 virtual SeparableVaryingHandle addSeparableVarying( | 164 virtual SeparableVaryingHandle addSeparableVarying( |
| 165 const char* name, GrGLSLVertToFrag*, | 165 const char* name, GrGLSLVertToFrag*, |
| 166 GrSLPrecision fsPrecision = kDefault_GrSLPrecision) = 0; | 166 GrSLPrecision fsPrecision = kDefault_GrSLPrecision) = 0; |
| 167 | 167 |
| 168 // TODO rename getFragmentBuilder | |
| 169 virtual GrGLSLFragmentBuilder* getFragmentShaderBuilder() = 0; | |
| 170 virtual GrGLSLVertexBuilder* getVertexShaderBuilder() = 0; | |
| 171 | |
| 172 /* | 168 /* |
| 173 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE | 169 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE |
| 174 */ | 170 */ |
| 175 }; | 171 }; |
| 176 | 172 |
| 177 | 173 |
| 178 /* a specializations for FPs. Lets the user add uniforms and FS code */ | 174 /* a specializations for FPs. Lets the user add uniforms and FS code */ |
| 179 class GrGLSLFPBuilder : public virtual GrGLSLUniformBuilder { | 175 class GrGLSLFPBuilder : public virtual GrGLSLUniformBuilder { |
| 180 public: | 176 public: |
| 181 virtual GrGLSLFragmentBuilder* getFragmentShaderBuilder() = 0; | |
| 182 | |
| 183 /* | 177 /* |
| 184 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE | 178 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE |
| 185 */ | 179 */ |
| 186 }; | 180 }; |
| 187 | 181 |
| 188 /* a specializations for XPs. Lets the user add uniforms and FS code */ | 182 /* a specializations for XPs. Lets the user add uniforms and FS code */ |
| 189 class GrGLSLXPBuilder : public virtual GrGLSLUniformBuilder { | 183 class GrGLSLXPBuilder : public virtual GrGLSLUniformBuilder { |
| 190 public: | 184 public: |
| 191 virtual GrGLSLXPFragmentBuilder* getFragmentShaderBuilder() = 0; | |
| 192 | |
| 193 /* | 185 /* |
| 194 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE | 186 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE |
| 195 */ | 187 */ |
| 196 }; | 188 }; |
| 197 | 189 |
| 198 class GrGLSLProgramBuilder : public GrGLSLGPBuilder, | 190 class GrGLSLProgramBuilder : public GrGLSLGPBuilder, |
| 199 public GrGLSLFPBuilder, | 191 public GrGLSLFPBuilder, |
| 200 public GrGLSLXPBuilder { | 192 public GrGLSLXPBuilder { |
| 201 public: | 193 public: |
| 202 typedef GrGpu::DrawArgs DrawArgs; | 194 typedef GrGpu::DrawArgs DrawArgs; |
| 203 | 195 |
| 204 GrGLSLXPFragmentBuilder* getFragmentShaderBuilder() override { return &fFS;
} | |
| 205 GrGLSLVertexBuilder* getVertexShaderBuilder() override { return &fVS; } | |
| 206 | |
| 207 // Handles for program uniforms (other than per-effect uniforms) | 196 // Handles for program uniforms (other than per-effect uniforms) |
| 208 struct BuiltinUniformHandles { | 197 struct BuiltinUniformHandles { |
| 209 UniformHandle fRTAdjustmentUni; | 198 UniformHandle fRTAdjustmentUni; |
| 210 | 199 |
| 211 // We use the render target height to provide a y-down frag coord when s
pecifying | 200 // We use the render target height to provide a y-down frag coord when s
pecifying |
| 212 // origin_upper_left is not supported. | 201 // origin_upper_left is not supported. |
| 213 UniformHandle fRTHeightUni; | 202 UniformHandle fRTHeightUni; |
| 214 }; | 203 }; |
| 215 | 204 |
| 216 protected: | 205 protected: |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 private: | 244 private: |
| 256 virtual void onAppendUniformDecls(ShaderVisibility visibility, SkString* out
) const = 0; | 245 virtual void onAppendUniformDecls(ShaderVisibility visibility, SkString* out
) const = 0; |
| 257 | 246 |
| 258 friend class GrGLSLShaderBuilder; | 247 friend class GrGLSLShaderBuilder; |
| 259 friend class GrGLSLVertexBuilder; | 248 friend class GrGLSLVertexBuilder; |
| 260 friend class GrGLSLFragmentShaderBuilder; | 249 friend class GrGLSLFragmentShaderBuilder; |
| 261 friend class GrGLSLGeometryBuilder; | 250 friend class GrGLSLGeometryBuilder; |
| 262 }; | 251 }; |
| 263 | 252 |
| 264 #endif | 253 #endif |
| OLD | NEW |