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

Side by Side Diff: src/gpu/gl/builders/GrGLProgramBuilder.h

Issue 1336763003: remove path specific program building classes (Closed) Base URL: https://skia.googlesource.com/skia.git@pathgp
Patch Set: a few more tidys Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 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 GrGLProgramBuilder_DEFINED 8 #ifndef GrGLProgramBuilder_DEFINED
9 #define GrGLProgramBuilder_DEFINED 9 #define GrGLProgramBuilder_DEFINED
10 10
11 #include "GrGLFragmentShaderBuilder.h" 11 #include "GrGLFragmentShaderBuilder.h"
12 #include "GrGLGeometryShaderBuilder.h" 12 #include "GrGLGeometryShaderBuilder.h"
13 #include "GrGLVertexShaderBuilder.h" 13 #include "GrGLVertexShaderBuilder.h"
14 #include "../GrGLProgramDataManager.h" 14 #include "../GrGLProgramDataManager.h"
15 #include "../GrGLPathProgramDataManager.h"
16 #include "../GrGLPrimitiveProcessor.h" 15 #include "../GrGLPrimitiveProcessor.h"
17 #include "../GrGLXferProcessor.h" 16 #include "../GrGLXferProcessor.h"
18 #include "../../GrPipeline.h" 17 #include "../../GrPipeline.h"
19 18
20 class GrFragmentProcessor; 19 class GrFragmentProcessor;
21 20
22 // Enough precision to represent 1 / 2048 accurately in printf 21 // Enough precision to represent 1 / 2048 accurately in printf
23 #define GR_SIGNIFICANT_POW2_DECIMAL_DIG 11 22 #define GR_SIGNIFICANT_POW2_DECIMAL_DIG 11
24 23
25 /* 24 /*
(...skipping 10 matching lines...) Expand all
36 public: 35 public:
37 enum ShaderVisibility { 36 enum ShaderVisibility {
38 kVertex_Visibility = 1 << kVertex_GrShaderType, 37 kVertex_Visibility = 1 << kVertex_GrShaderType,
39 kGeometry_Visibility = 1 << kGeometry_GrShaderType, 38 kGeometry_Visibility = 1 << kGeometry_GrShaderType,
40 kFragment_Visibility = 1 << kFragment_GrShaderType, 39 kFragment_Visibility = 1 << kFragment_GrShaderType,
41 }; 40 };
42 41
43 virtual ~GrGLUniformBuilder() {} 42 virtual ~GrGLUniformBuilder() {}
44 43
45 typedef GrGLProgramDataManager::UniformHandle UniformHandle; 44 typedef GrGLProgramDataManager::UniformHandle UniformHandle;
46 typedef GrGLPathProgramDataManager::SeparableVaryingHandle SeparableVaryingH andle; 45 typedef GrGLProgramDataManager::SeparableVaryingHandle SeparableVaryingHandl e;
47 46
48 /** Add a uniform variable to the current program, that has visibility in on e or more shaders. 47 /** Add a uniform variable to the current program, that has visibility in on e or more shaders.
49 visibility is a bitfield of ShaderVisibility values indicating from whic h shaders the 48 visibility is a bitfield of ShaderVisibility values indicating from whic h shaders the
50 uniform should be accessible. At least one bit must be set. Geometry sha der uniforms are not 49 uniform should be accessible. At least one bit must be set. Geometry sha der uniforms are not
51 supported at this time. The actual uniform name will be mangled. If outN ame is not nullptr then 50 supported at this time. The actual uniform name will be mangled. If outN ame is not nullptr then
52 it will refer to the final uniform name after return. Use the addUniform Array variant to add 51 it will refer to the final uniform name after return. Use the addUniform Array variant to add
53 an array of uniforms. */ 52 an array of uniforms. */
54 UniformHandle addUniform(uint32_t visibility, 53 UniformHandle addUniform(uint32_t visibility,
55 GrSLType type, 54 GrSLType type,
56 GrSLPrecision precision, 55 GrSLPrecision precision,
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 UniformHandle fRTAdjustmentUni; 273 UniformHandle fRTAdjustmentUni;
275 274
276 // We use the render target height to provide a y-down frag coord when s pecifying 275 // We use the render target height to provide a y-down frag coord when s pecifying
277 // origin_upper_left is not supported. 276 // origin_upper_left is not supported.
278 UniformHandle fRTHeightUni; 277 UniformHandle fRTHeightUni;
279 }; 278 };
280 279
281 protected: 280 protected:
282 typedef GrGLProgramDataManager::UniformInfo UniformInfo; 281 typedef GrGLProgramDataManager::UniformInfo UniformInfo;
283 typedef GrGLProgramDataManager::UniformInfoArray UniformInfoArray; 282 typedef GrGLProgramDataManager::UniformInfoArray UniformInfoArray;
284 283 typedef GrGLProgramDataManager::SeparableVaryingInfo SeparableVaryingInfo;
285 static GrGLProgramBuilder* CreateProgramBuilder(const DrawArgs&, GrGLGpu*); 284 typedef GrGLProgramDataManager::SeparableVaryingInfoArray SeparableVaryingIn foArray;
286 285
287 GrGLProgramBuilder(GrGLGpu*, const DrawArgs&); 286 GrGLProgramBuilder(GrGLGpu*, const DrawArgs&);
288 287
289 const GrPrimitiveProcessor& primitiveProcessor() const { return *fArgs.fPrim itiveProcessor; } 288 const GrPrimitiveProcessor& primitiveProcessor() const { return *fArgs.fPrim itiveProcessor; }
290 const GrPipeline& pipeline() const { return *fArgs.fPipeline; } 289 const GrPipeline& pipeline() const { return *fArgs.fPipeline; }
291 const GrProgramDesc& desc() const { return *fArgs.fDesc; } 290 const GrProgramDesc& desc() const { return *fArgs.fDesc; }
292 const GrProgramDesc::KeyHeader& header() const { return fArgs.fDesc->header( ); } 291 const GrProgramDesc::KeyHeader& header() const { return fArgs.fDesc->header( ); }
293 292
294 // Generates a name for a variable. The generated string will be name prefix ed by the prefix 293 // Generates a name for a variable. The generated string will be name prefix ed by the prefix
295 // char (unless the prefix is '\0'). It also mangles the name to be stage-sp ecific if we're 294 // char (unless the prefix is '\0'). It also mangles the name to be stage-sp ecific if we're
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 GrGLInstalledGeoProc* fGeometryProcessor; 391 GrGLInstalledGeoProc* fGeometryProcessor;
393 GrGLInstalledXferProc* fXferProcessor; 392 GrGLInstalledXferProc* fXferProcessor;
394 SkAutoTUnref<GrGLInstalledFragProcs> fFragmentProcessors; 393 SkAutoTUnref<GrGLInstalledFragProcs> fFragmentProcessors;
395 394
396 const DrawArgs& fArgs; 395 const DrawArgs& fArgs;
397 GrGLGpu* fGpu; 396 GrGLGpu* fGpu;
398 UniformInfoArray fUniforms; 397 UniformInfoArray fUniforms;
399 GrGLPrimitiveProcessor::TransformsIn fCoordTransforms; 398 GrGLPrimitiveProcessor::TransformsIn fCoordTransforms;
400 GrGLPrimitiveProcessor::TransformsOut fOutCoords; 399 GrGLPrimitiveProcessor::TransformsOut fOutCoords;
401 SkTArray<UniformHandle> fSamplerUniforms; 400 SkTArray<UniformHandle> fSamplerUniforms;
401 SeparableVaryingInfoArray fSeparableVaryingInfos;
402 402
403 friend class GrGLShaderBuilder; 403 friend class GrGLShaderBuilder;
404 friend class GrGLVertexBuilder; 404 friend class GrGLVertexBuilder;
405 friend class GrGLFragmentShaderBuilder; 405 friend class GrGLFragmentShaderBuilder;
406 friend class GrGLGeometryBuilder; 406 friend class GrGLGeometryBuilder;
407 }; 407 };
408 #endif 408 #endif
OLDNEW
« no previous file with comments | « src/gpu/gl/builders/GrGLPathProgramBuilder.cpp ('k') | src/gpu/gl/builders/GrGLProgramBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698