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

Side by Side Diff: src/gpu/glsl/GrGLSLFragmentShaderBuilder.h

Issue 1541903002: added support for PLS path rendering (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix for ASAN failure Created 4 years, 10 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/glsl/GrGLSL.h ('k') | src/gpu/glsl/GrGLSLFragmentShaderBuilder.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 GrGLSLFragmentShaderBuilder_DEFINED 8 #ifndef GrGLSLFragmentShaderBuilder_DEFINED
9 #define GrGLSLFragmentShaderBuilder_DEFINED 9 #define GrGLSLFragmentShaderBuilder_DEFINED
10 10
(...skipping 15 matching lines...) Expand all
26 , fHasSecondaryOutput(false) { 26 , fHasSecondaryOutput(false) {
27 fSubstageIndices.push_back(0); 27 fSubstageIndices.push_back(0);
28 } 28 }
29 virtual ~GrGLSLFragmentBuilder() {} 29 virtual ~GrGLSLFragmentBuilder() {}
30 /** 30 /**
31 * Use of these features may require a GLSL extension to be enabled. Shaders may not compile 31 * Use of these features may require a GLSL extension to be enabled. Shaders may not compile
32 * if code is added that uses one of these features without calling enableFe ature() 32 * if code is added that uses one of these features without calling enableFe ature()
33 */ 33 */
34 enum GLSLFeature { 34 enum GLSLFeature {
35 kStandardDerivatives_GLSLFeature = 0, 35 kStandardDerivatives_GLSLFeature = 0,
36 kLastGLSLFeature = kStandardDerivatives_GLSLFeature 36 kPixelLocalStorage_GLSLFeature = 1,
37 kLastGLSLFeature = kPixelLocalStorage_GLSLFeature
37 }; 38 };
38 39
39 /** 40 /**
40 * If the feature is supported then true is returned and any necessary #exte nsion declarations 41 * If the feature is supported then true is returned and any necessary #exte nsion declarations
41 * are added to the shaders. If the feature is not supported then false will be returned. 42 * are added to the shaders. If the feature is not supported then false will be returned.
42 */ 43 */
43 virtual bool enableFeature(GLSLFeature) = 0; 44 virtual bool enableFeature(GLSLFeature) = 0;
44 45
45 /** 46 /**
46 * This returns a variable name to access the 2D, perspective correct versio n of the coords in 47 * This returns a variable name to access the 2D, perspective correct versio n of the coords in
(...skipping 12 matching lines...) Expand all
59 * on a child proc. 60 * on a child proc.
60 */ 61 */
61 void onBeforeChildProcEmitCode(); 62 void onBeforeChildProcEmitCode();
62 void onAfterChildProcEmitCode(); 63 void onAfterChildProcEmitCode();
63 64
64 const SkString& getMangleString() const { return fMangleString; } 65 const SkString& getMangleString() const { return fMangleString; }
65 66
66 bool hasCustomColorOutput() const { return fHasCustomColorOutput; } 67 bool hasCustomColorOutput() const { return fHasCustomColorOutput; }
67 bool hasSecondaryOutput() const { return fHasSecondaryOutput; } 68 bool hasSecondaryOutput() const { return fHasSecondaryOutput; }
68 69
70 void declAppendf(const char* fmt, ...);
71
69 protected: 72 protected:
70 bool fHasCustomColorOutput; 73 bool fHasCustomColorOutput;
71 bool fHasSecondaryOutput; 74 bool fHasSecondaryOutput;
72 75
73 private: 76 private:
74 /* 77 /*
75 * State that tracks which child proc in the proc tree is currently emitting code. This is 78 * State that tracks which child proc in the proc tree is currently emitting code. This is
76 * used to update the fMangleString, which is used to mangle the names of un iforms and functions 79 * used to update the fMangleString, which is used to mangle the names of un iforms and functions
77 * emitted by the proc. fSubstageIndices is a stack: its count indicates ho w many levels deep 80 * emitted by the proc. fSubstageIndices is a stack: its count indicates ho w many levels deep
78 * we are in the tree, and its second-to-last value is the index of the chil d proc at that 81 * we are in the tree, and its second-to-last value is the index of the chil d proc at that
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 bool fHasReadDstColor; 197 bool fHasReadDstColor;
195 bool fHasReadFragmentPosition; 198 bool fHasReadFragmentPosition;
196 199
197 friend class GrGLSLProgramBuilder; 200 friend class GrGLSLProgramBuilder;
198 friend class GrGLProgramBuilder; 201 friend class GrGLProgramBuilder;
199 202
200 typedef GrGLSLXPFragmentBuilder INHERITED; 203 typedef GrGLSLXPFragmentBuilder INHERITED;
201 }; 204 };
202 205
203 #endif 206 #endif
OLDNEW
« no previous file with comments | « src/gpu/glsl/GrGLSL.h ('k') | src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698