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

Side by Side Diff: src/gpu/gl/GrGLSL.h

Issue 678953002: Default geometry processor (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix 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 2011 Google Inc. 2 * Copyright 2011 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 GrGLSL_DEFINED 8 #ifndef GrGLSL_DEFINED
9 #define GrGLSL_DEFINED 9 #define GrGLSL_DEFINED
10 10
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 const char* c_str() const { 99 const char* c_str() const {
100 if (kZeros_ExprType == fType) { 100 if (kZeros_ExprType == fType) {
101 return Self::ZerosStr(); 101 return Self::ZerosStr();
102 } else if (kOnes_ExprType == fType) { 102 } else if (kOnes_ExprType == fType) {
103 return Self::OnesStr(); 103 return Self::OnesStr();
104 } 104 }
105 SkASSERT(!fExpr.isEmpty()); // Empty expressions should not be used. 105 SkASSERT(!fExpr.isEmpty()); // Empty expressions should not be used.
106 return fExpr.c_str(); 106 return fExpr.c_str();
107 } 107 }
108 108
109 bool isValid() const {
110 return kFullExpr_ExprType != fType || !fExpr.isEmpty();
111 }
112
109 protected: 113 protected:
110 /** Constructs an invalid expression. 114 /** Constructs an invalid expression.
111 * Useful only as a return value from functions that never actually return 115 * Useful only as a return value from functions that never actually return
112 * this and instances that will be assigned to later. */ 116 * this and instances that will be assigned to later. */
113 GrGLSLExpr() 117 GrGLSLExpr()
114 : fType(kFullExpr_ExprType) { 118 : fType(kFullExpr_ExprType) {
115 // The only constructor that is allowed to build an empty expression. 119 // The only constructor that is allowed to build an empty expression.
116 SkASSERT(!this->isValid()); 120 SkASSERT(!this->isValid());
117 } 121 }
118 122
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 : fType(kFullExpr_ExprType) { 163 : fType(kFullExpr_ExprType) {
160 fExpr.appendf(format, in0); 164 fExpr.appendf(format, in0);
161 } 165 }
162 166
163 /** Constructs an expression from a string with two substitutions. */ 167 /** Constructs an expression from a string with two substitutions. */
164 GrGLSLExpr(const char format[], const char in0[], const char in1[]) 168 GrGLSLExpr(const char format[], const char in0[], const char in1[])
165 : fType(kFullExpr_ExprType) { 169 : fType(kFullExpr_ExprType) {
166 fExpr.appendf(format, in0, in1); 170 fExpr.appendf(format, in0, in1);
167 } 171 }
168 172
169 bool isValid() const {
170 return kFullExpr_ExprType != fType || !fExpr.isEmpty();
171 }
172
173 /** Returns expression casted to another type. 173 /** Returns expression casted to another type.
174 * Generic implementation that is called for non-trivial cases of casts. */ 174 * Generic implementation that is called for non-trivial cases of casts. */
175 template <typename T> 175 template <typename T>
176 static Self VectorCastImpl(const T& other); 176 static Self VectorCastImpl(const T& other);
177 177
178 /** Returns a GLSL multiplication: component-wise or component-by-scalar. 178 /** Returns a GLSL multiplication: component-wise or component-by-scalar.
179 * The multiplication will be component-wise or multiply each component by a scalar. 179 * The multiplication will be component-wise or multiply each component by a scalar.
180 * 180 *
181 * The returned expression will compute the value of: 181 * The returned expression will compute the value of:
182 * vecN(in0.x * in1.x, ...) if dim(T0) == dim(T1) (component-wise) 182 * vecN(in0.x * in1.x, ...) if dim(T0) == dim(T1) (component-wise)
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 318
319 /** 319 /**
320 * Does an inplace mul, *=, of vec4VarName by mulFactor. 320 * Does an inplace mul, *=, of vec4VarName by mulFactor.
321 * A semicolon is added after the assignment. 321 * A semicolon is added after the assignment.
322 */ 322 */
323 void GrGLSLMulVarBy4f(SkString* outAppend, const char* vec4VarName, const GrGLSL Expr4& mulFactor); 323 void GrGLSLMulVarBy4f(SkString* outAppend, const char* vec4VarName, const GrGLSL Expr4& mulFactor);
324 324
325 #include "GrGLSL_impl.h" 325 #include "GrGLSL_impl.h"
326 326
327 #endif 327 #endif
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDistanceFieldTextureEffect.cpp ('k') | src/gpu/gl/builders/GrGLProgramBuilder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698