| Index: src/gpu/glsl/GrGLSLShaderVar.h
|
| diff --git a/src/gpu/glsl/GrGLSLShaderVar.h b/src/gpu/glsl/GrGLSLShaderVar.h
|
| index e26a75c0966794143980f48a66b7755f823bd806..812d604be9150de9aca1968fc1a1cf3090f35c02 100644
|
| --- a/src/gpu/glsl/GrGLSLShaderVar.h
|
| +++ b/src/gpu/glsl/GrGLSLShaderVar.h
|
| @@ -51,7 +51,9 @@ public:
|
| GrGLSLShaderVar(const GrGLSLShaderVar& var)
|
| : GrShaderVar(var.c_str(), var.getType(), var.getTypeModifier(),
|
| var.getArrayCount(), var.getPrecision())
|
| - , fUseUniformFloatArrays(var.fUseUniformFloatArrays) {
|
| + , fUseUniformFloatArrays(var.fUseUniformFloatArrays)
|
| + , fLayoutQualifier(var.fLayoutQualifier)
|
| + , fExtraModifiers(var.fExtraModifiers) {
|
| SkASSERT(kVoid_GrSLType != var.getType());
|
| }
|
|
|
| @@ -136,6 +138,10 @@ public:
|
| fLayoutQualifier = layoutQualifier;
|
| }
|
|
|
| + void addModifier(const char* modifier) {
|
| + fExtraModifiers.appendf("%s ", modifier);
|
| + }
|
| +
|
| /**
|
| * Write a declaration of this variable to out.
|
| */
|
| @@ -144,11 +150,8 @@ public:
|
| if (!fLayoutQualifier.isEmpty()) {
|
| out->appendf("layout(%s) ", fLayoutQualifier.c_str());
|
| }
|
| + out->append(fExtraModifiers);
|
| if (this->getTypeModifier() != kNone_TypeModifier) {
|
| - if (GrSLTypeIsIntType(fType) && (this->getTypeModifier() == kVaryingIn_TypeModifier ||
|
| - this->getTypeModifier() == kVaryingOut_TypeModifier)) {
|
| - out->append("flat ");
|
| - }
|
| out->append(TypeModifierString(glslCaps, this->getTypeModifier()));
|
| out->append(" ");
|
| }
|
| @@ -234,9 +237,10 @@ private:
|
|
|
| /// Work around driver bugs on some hardware that don't correctly
|
| /// support uniform float []
|
| - bool fUseUniformFloatArrays;
|
| + bool fUseUniformFloatArrays;
|
|
|
| - SkString fLayoutQualifier;
|
| + SkString fLayoutQualifier;
|
| + SkString fExtraModifiers;
|
|
|
| typedef GrShaderVar INHERITED;
|
| };
|
|
|