diff options
author | 2016-02-11 14:10:38 -0800 | |
---|---|---|
committer | 2016-02-11 14:10:38 -0800 | |
commit | d36f2c4bc047c2c531d73eee08daa5926e8cdaf2 (patch) | |
tree | c1729a9a100263a2117d169fc3239d570cec5077 /src | |
parent | 9b9497ef14f23562a95afe989d1efe41c603a6f6 (diff) |
Add #define directives to GrGLSLShaderBuilder
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1660813002
Review URL: https://codereview.chromium.org/1660813002
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/glsl/GrGLSLShaderBuilder.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gpu/glsl/GrGLSLShaderBuilder.h b/src/gpu/glsl/GrGLSLShaderBuilder.h index 16a0756306..5c3408e704 100644 --- a/src/gpu/glsl/GrGLSLShaderBuilder.h +++ b/src/gpu/glsl/GrGLSLShaderBuilder.h @@ -60,6 +60,26 @@ public: GrSLType coordType = kVec2f_GrSLType); /** + * Adds a #define directive to the top of the shader. + */ + void define(const char* macro, const char* replacement) { + this->definitions().appendf("#define %s %s\n", macro, replacement); + } + + void define(const char* macro, int replacement) { + this->definitions().appendf("#define %s %i\n", macro, replacement); + } + + void definef(const char* macro, const char* replacement, ...) { + this->definitions().appendf("#define %s ", macro); + va_list args; + va_start(args, replacement); + this->definitions().appendVAList(replacement, args); + va_end(args); + this->definitions().append("\n"); + } + + /** * Called by GrGLSLProcessors to add code to one of the shaders. */ void codeAppendf(const char format[], ...) SK_PRINTF_LIKE(2, 3) { @@ -152,6 +172,7 @@ protected: SkString& versionDecl() { return fShaderStrings[kVersionDecl]; } SkString& extensions() { return fShaderStrings[kExtensions]; } + SkString& definitions() { return fShaderStrings[kDefinitions]; } SkString& precisionQualifier() { return fShaderStrings[kPrecisionQualifier]; } SkString& layoutQualifiers() { return fShaderStrings[kLayoutQualifiers]; } SkString& uniforms() { return fShaderStrings[kUniforms]; } @@ -166,6 +187,7 @@ protected: enum { kVersionDecl, kExtensions, + kDefinitions, kPrecisionQualifier, kLayoutQualifiers, kUniforms, |