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

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

Issue 675193002: Revert of Added varying struct (Closed) Base URL: https://skia.googlesource.com/skia.git@gp_emit_struct
Patch Set: Created 6 years, 1 month 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
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 virtual const GrGLContextInfo& ctxInfo() const = 0; 63 virtual const GrGLContextInfo& ctxInfo() const = 0;
64 64
65 virtual GrGpuGL* gpu() const = 0; 65 virtual GrGpuGL* gpu() const = 0;
66 66
67 /* 67 /*
68 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE 68 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE
69 */ 69 */
70 }; 70 };
71 71
72 // TODO move this into GrGLGPBuilder and move them both out of this file
73 class GrGLVarying {
74 public:
75 bool vsVarying() const { return kVertToFrag_Varying == fVarying ||
76 kVertToGeo_Varying == fVarying; }
77 bool fsVarying() const { return kVertToFrag_Varying == fVarying ||
78 kGeoToFrag_Varying == fVarying; }
79 const char* vsOut() const { return fVsOut; }
80 const char* gsIn() const { return fGsIn; }
81 const char* gsOut() const { return fGsOut; }
82 const char* fsIn() const { return fFsIn; }
83
84 protected:
85 enum Varying {
86 kVertToFrag_Varying,
87 kVertToGeo_Varying,
88 kGeoToFrag_Varying,
89 };
90
91 GrGLVarying(GrSLType type, Varying varying)
92 : fVarying(varying), fType(type), fVsOut(NULL), fGsIn(NULL), fGsOut(NULL ),
93 fFsIn(NULL) {}
94
95 Varying fVarying;
96
97 private:
98 GrSLType fType;
99 const char* fVsOut;
100 const char* fGsIn;
101 const char* fGsOut;
102 const char* fFsIn;
103
104 friend class GrGLVertexBuilder;
105 friend class GrGLGeometryBuilder;
106 friend class GrGLFragmentShaderBuilder;
107 };
108
109 struct GrGLVertToFrag : public GrGLVarying {
110 GrGLVertToFrag(GrSLType type)
111 : GrGLVarying(type, kVertToFrag_Varying) {}
112 };
113
114 struct GrGLVertToGeo : public GrGLVarying {
115 GrGLVertToGeo(GrSLType type)
116 : GrGLVarying(type, kVertToGeo_Varying) {}
117 };
118
119 struct GrGLGeoToFrag : public GrGLVarying {
120 GrGLGeoToFrag(GrSLType type)
121 : GrGLVarying(type, kGeoToFrag_Varying) {}
122 };
123
124 /* a specialization of the above for GPs. Lets the user add uniforms, varyings, and VS / FS code */ 72 /* a specialization of the above for GPs. Lets the user add uniforms, varyings, and VS / FS code */
125 class GrGLGPBuilder : public virtual GrGLUniformBuilder { 73 class GrGLGPBuilder : public virtual GrGLUniformBuilder {
126 public: 74 public:
127 virtual void addVarying(const char* name, 75 virtual void addVarying(GrSLType type,
128 GrGLVarying*, 76 const char* name,
77 const char** vsOutName = NULL,
78 const char** fsInName = NULL,
129 GrGLShaderVar::Precision fsPrecision=GrGLShaderVar:: kDefault_Precision) = 0; 79 GrGLShaderVar::Precision fsPrecision=GrGLShaderVar:: kDefault_Precision) = 0;
130 80
131 // TODO rename getFragmentBuilder 81 // TODO rename getFragmentBuilder
132 virtual GrGLGPFragmentBuilder* getFragmentShaderBuilder() = 0; 82 virtual GrGLGPFragmentBuilder* getFragmentShaderBuilder() = 0;
133 virtual GrGLVertexBuilder* getVertexShaderBuilder() = 0; 83 virtual GrGLVertexBuilder* getVertexShaderBuilder() = 0;
134 84
135 /* 85 /*
136 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE 86 * *NOTE* NO MEMBERS ALLOWED, MULTIPLE INHERITANCE
137 */ 87 */
138 }; 88 };
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 } 145 }
196 146
197 virtual const GrGLContextInfo& ctxInfo() const SK_OVERRIDE; 147 virtual const GrGLContextInfo& ctxInfo() const SK_OVERRIDE;
198 148
199 virtual GrGpuGL* gpu() const SK_OVERRIDE { return fGpu; } 149 virtual GrGpuGL* gpu() const SK_OVERRIDE { return fGpu; }
200 150
201 virtual GrGLFPFragmentBuilder* getFragmentShaderBuilder() SK_OVERRIDE { retu rn &fFS; } 151 virtual GrGLFPFragmentBuilder* getFragmentShaderBuilder() SK_OVERRIDE { retu rn &fFS; }
202 virtual GrGLVertexBuilder* getVertexShaderBuilder() SK_OVERRIDE { return &fV S; } 152 virtual GrGLVertexBuilder* getVertexShaderBuilder() SK_OVERRIDE { return &fV S; }
203 153
204 virtual void addVarying( 154 virtual void addVarying(
155 GrSLType type,
205 const char* name, 156 const char* name,
206 GrGLVarying*, 157 const char** vsOutName = NULL,
158 const char** fsInName = NULL,
207 GrGLShaderVar::Precision fsPrecision=GrGLShaderVar::kDefault_Precisi on) SK_OVERRIDE; 159 GrGLShaderVar::Precision fsPrecision=GrGLShaderVar::kDefault_Precisi on) SK_OVERRIDE;
208 160
209 // Handles for program uniforms (other than per-effect uniforms) 161 // Handles for program uniforms (other than per-effect uniforms)
210 struct BuiltinUniformHandles { 162 struct BuiltinUniformHandles {
211 UniformHandle fViewMatrixUni; 163 UniformHandle fViewMatrixUni;
212 UniformHandle fRTAdjustmentUni; 164 UniformHandle fRTAdjustmentUni;
213 UniformHandle fColorUni; 165 UniformHandle fColorUni;
214 UniformHandle fCoverageUni; 166 UniformHandle fCoverageUni;
215 167
216 // We use the render target height to provide a y-down frag coord when s pecifying 168 // We use the render target height to provide a y-down frag coord when s pecifying
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 SkSTArray<2, Transform, true> fTransforms; 341 SkSTArray<2, Transform, true> fTransforms;
390 bool fLocalCoordAttrib; 342 bool fLocalCoordAttrib;
391 }; 343 };
392 344
393 struct GrGLInstalledFragProcs : public SkRefCnt { 345 struct GrGLInstalledFragProcs : public SkRefCnt {
394 virtual ~GrGLInstalledFragProcs(); 346 virtual ~GrGLInstalledFragProcs();
395 SkSTArray<8, GrGLInstalledFragProc*, true> fProcs; 347 SkSTArray<8, GrGLInstalledFragProc*, true> fProcs;
396 }; 348 };
397 349
398 #endif 350 #endif
OLDNEW
« no previous file with comments | « src/gpu/gl/builders/GrGLNvprProgramBuilder.cpp ('k') | src/gpu/gl/builders/GrGLProgramBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698