diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-10-09 10:54:08 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-09 15:20:33 +0000 |
commit | abff956455637b12eab374fd44b99e1338799113 (patch) | |
tree | 77f932f38b3f00f904faeae1c847f1218f61d0c4 /src/gpu/effects/GrDistanceFieldGeoProc.cpp | |
parent | 4e7cdd5a0052aa76bed6f80ec325be19e09e6ab1 (diff) |
initClassID no longer auto-allocates ids
Auto-allocated IDs mean that the IDs depend upon the order in which
classes happen to get initialized and are therefore not consistent
from run to run. This change paves the way for a persistent shader
cache by fixing the IDs in an enum.
Bug: skia:
Change-Id: I3e923c6c54f41b3b3eb616458abee83e0909c09f
Reviewed-on: https://skia-review.googlesource.com/56401
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/effects/GrDistanceFieldGeoProc.cpp')
-rw-r--r-- | src/gpu/effects/GrDistanceFieldGeoProc.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp index dcbb5d5df9..6cffd9d465 100644 --- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp +++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp @@ -237,7 +237,8 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc( #endif uint32_t flags, bool usesLocalCoords) - : fColor(color) + : INHERITED(kGrDistanceFieldA8TextGeoProc_ClassID) + , fColor(color) , fViewMatrix(viewMatrix) #ifdef SK_GAMMA_APPLY_TO_A8 , fDistanceAdjust(distanceAdjust) @@ -246,7 +247,6 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc( , fInColor(nullptr) , fUsesLocalCoords(usesLocalCoords) { SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); - this->initClassID<GrDistanceFieldA8TextGeoProc>(); fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType); fInColor = &this->addVertexAttrib("inColor", kUByte4_norm_GrVertexAttribType); fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kUShort2_GrVertexAttribType); @@ -498,13 +498,13 @@ GrDistanceFieldPathGeoProc::GrDistanceFieldPathGeoProc( const GrSamplerState& params, uint32_t flags, bool usesLocalCoords) - : fColor(color) + : INHERITED(kGrDistanceFieldPathGeoProc_ClassID) + , fColor(color) , fViewMatrix(viewMatrix) , fFlags(flags & kNonLCD_DistanceFieldEffectMask) , fInColor(nullptr) , fUsesLocalCoords(usesLocalCoords) { SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); - this->initClassID<GrDistanceFieldPathGeoProc>(); fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType); fInColor = &this->addVertexAttrib("inColor", kUByte4_norm_GrVertexAttribType); fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kUShort2_GrVertexAttribType); @@ -817,13 +817,13 @@ GrDistanceFieldLCDTextGeoProc::GrDistanceFieldLCDTextGeoProc( const GrSamplerState& params, DistanceAdjust distanceAdjust, uint32_t flags, bool usesLocalCoords) - : fColor(color) + : INHERITED(kGrDistanceFieldLCDTextGeoProc_ClassID) + , fColor(color) , fViewMatrix(viewMatrix) , fDistanceAdjust(distanceAdjust) , fFlags(flags & kLCD_DistanceFieldEffectMask) , fUsesLocalCoords(usesLocalCoords) { SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_DistanceFieldEffectFlag)); - this->initClassID<GrDistanceFieldLCDTextGeoProc>(); fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType); fInColor = &this->addVertexAttrib("inColor", kUByte4_norm_GrVertexAttribType); fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kUShort2_GrVertexAttribType); |