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

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

Issue 2318523006: Merge GrGLSLProgramDesc into GrProgramDesc (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update comments Created 4 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
« no previous file with comments | « src/gpu/gl/GrGLProgram.h ('k') | src/gpu/gl/builders/GrGLProgramBuilder.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "GrPipeline.h" 11 #include "GrPipeline.h"
12 #include "gl/GrGLProgramDataManager.h" 12 #include "gl/GrGLProgramDataManager.h"
13 #include "gl/GrGLUniformHandler.h" 13 #include "gl/GrGLUniformHandler.h"
14 #include "gl/GrGLVaryingHandler.h" 14 #include "gl/GrGLVaryingHandler.h"
15 #include "glsl/GrGLSLProgramBuilder.h" 15 #include "glsl/GrGLSLProgramBuilder.h"
16 #include "glsl/GrGLSLProgramDataManager.h" 16 #include "glsl/GrGLSLProgramDataManager.h"
17 17
18 class GrFragmentProcessor; 18 class GrFragmentProcessor;
19 class GrGLContextInfo; 19 class GrGLContextInfo;
20 class GrGLSLProgramDesc; 20 class GrProgramDesc;
21 class GrGLSLShaderBuilder; 21 class GrGLSLShaderBuilder;
22 class GrGLSLCaps; 22 class GrGLSLCaps;
23 23
24 class GrGLProgramBuilder : public GrGLSLProgramBuilder { 24 class GrGLProgramBuilder : public GrGLSLProgramBuilder {
25 public: 25 public:
26 /** Generates a shader program. 26 /** Generates a shader program.
27 * 27 *
28 * The program implements what is specified in the stages given as input. 28 * The program implements what is specified in the stages given as input.
29 * After successful generation, the builder result objects are available 29 * After successful generation, the builder result objects are available
30 * to be used. 30 * to be used.
31 * @return true if generation was successful. 31 * @return true if generation was successful.
32 */ 32 */
33 static GrGLProgram* CreateProgram(const GrPipeline&, 33 static GrGLProgram* CreateProgram(const GrPipeline&,
34 const GrPrimitiveProcessor&, 34 const GrPrimitiveProcessor&,
35 const GrGLSLProgramDesc&, 35 const GrProgramDesc&,
36 GrGLGpu*); 36 GrGLGpu*);
37 37
38 const GrCaps* caps() const override; 38 const GrCaps* caps() const override;
39 const GrGLSLCaps* glslCaps() const override; 39 const GrGLSLCaps* glslCaps() const override;
40 40
41 GrGLGpu* gpu() const { return fGpu; } 41 GrGLGpu* gpu() const { return fGpu; }
42 42
43 private: 43 private:
44 GrGLProgramBuilder(GrGLGpu*, const GrPipeline&, const GrPrimitiveProcessor&, 44 GrGLProgramBuilder(GrGLGpu*, const GrPipeline&, const GrPrimitiveProcessor&,
45 const GrGLSLProgramDesc&); 45 const GrProgramDesc&);
46 46
47 bool compileAndAttachShaders(GrGLSLShaderBuilder& shader, 47 bool compileAndAttachShaders(GrGLSLShaderBuilder& shader,
48 GrGLuint programId, 48 GrGLuint programId,
49 GrGLenum type, 49 GrGLenum type,
50 SkTDArray<GrGLuint>* shaderIds); 50 SkTDArray<GrGLuint>* shaderIds);
51 GrGLProgram* finalize(); 51 GrGLProgram* finalize();
52 void bindProgramResourceLocations(GrGLuint programID); 52 void bindProgramResourceLocations(GrGLuint programID);
53 bool checkLinkStatus(GrGLuint programID); 53 bool checkLinkStatus(GrGLuint programID);
54 void resolveProgramResourceLocations(GrGLuint programID); 54 void resolveProgramResourceLocations(GrGLuint programID);
55 void cleanupProgram(GrGLuint programID, const SkTDArray<GrGLuint>& shaderIDs ); 55 void cleanupProgram(GrGLuint programID, const SkTDArray<GrGLuint>& shaderIDs );
56 void cleanupShaders(const SkTDArray<GrGLuint>& shaderIDs); 56 void cleanupShaders(const SkTDArray<GrGLuint>& shaderIDs);
57 57
58 // Subclasses create different programs 58 // Subclasses create different programs
59 GrGLProgram* createProgram(GrGLuint programID); 59 GrGLProgram* createProgram(GrGLuint programID);
60 60
61 GrGLSLUniformHandler* uniformHandler() override { return &fUniformHandler; } 61 GrGLSLUniformHandler* uniformHandler() override { return &fUniformHandler; }
62 const GrGLSLUniformHandler* uniformHandler() const override { return &fUnifo rmHandler; } 62 const GrGLSLUniformHandler* uniformHandler() const override { return &fUnifo rmHandler; }
63 GrGLSLVaryingHandler* varyingHandler() override { return &fVaryingHandler; } 63 GrGLSLVaryingHandler* varyingHandler() override { return &fVaryingHandler; }
64 64
65 65
66 GrGLGpu* fGpu; 66 GrGLGpu* fGpu;
67 GrGLVaryingHandler fVaryingHandler; 67 GrGLVaryingHandler fVaryingHandler;
68 GrGLUniformHandler fUniformHandler; 68 GrGLUniformHandler fUniformHandler;
69 69
70 typedef GrGLSLProgramBuilder INHERITED; 70 typedef GrGLSLProgramBuilder INHERITED;
71 }; 71 };
72 #endif 72 #endif
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGLProgram.h ('k') | src/gpu/gl/builders/GrGLProgramBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698