diff options
author | Jim Van Verth <jvanverth@google.com> | 2018-05-16 14:54:41 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-05-16 19:28:32 +0000 |
commit | cbeae03caee3b6c26c22f5f24c817521c78f8e43 (patch) | |
tree | bc24b50ca9e52de8fc783e087656027af1db53ce /src/gpu/effects | |
parent | af0f79c286ac955a94b2a0834099f3abd61584b5 (diff) |
Fix check for valid proxies returned by AtlasManager.
Also renames a lot of variables to make it clearer that getProxies()
returns the number of instantiated proxies, not the number of all
proxies.
Bug: skia:
Change-Id: Ifbc910cbd6635dccdb4e7f0df2e69a0f341130af
Reviewed-on: https://skia-review.googlesource.com/128660
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/effects')
-rw-r--r-- | src/gpu/effects/GrBitmapTextGeoProc.cpp | 12 | ||||
-rw-r--r-- | src/gpu/effects/GrBitmapTextGeoProc.h | 6 | ||||
-rw-r--r-- | src/gpu/effects/GrDistanceFieldGeoProc.h | 29 |
3 files changed, 24 insertions, 23 deletions
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp index 3efba9f509..14126794d7 100644 --- a/src/gpu/effects/GrBitmapTextGeoProc.cpp +++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp @@ -122,7 +122,7 @@ private: GrBitmapTextGeoProc::GrBitmapTextGeoProc(GrColor color, const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& params, GrMaskFormat format, const SkMatrix& localMatrix, bool usesLocalCoords) : INHERITED(kGrBitmapTextGeoProc_ClassID) @@ -131,7 +131,7 @@ GrBitmapTextGeoProc::GrBitmapTextGeoProc(GrColor color, , fUsesLocalCoords(usesLocalCoords) , fInColor(nullptr) , fMaskFormat(format) { - SkASSERT(numProxies <= kMaxTextures); + SkASSERT(numActiveProxies <= kMaxTextures); fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType); @@ -142,7 +142,7 @@ GrBitmapTextGeoProc::GrBitmapTextGeoProc(GrColor color, } fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kUShort2_GrVertexAttribType); - for (int i = 0; i < numProxies; ++i) { + for (int i = 0; i < numActiveProxies; ++i) { SkASSERT(proxies[i]); fTextureSamplers[i].reset(std::move(proxies[i]), params); @@ -151,11 +151,11 @@ GrBitmapTextGeoProc::GrBitmapTextGeoProc(GrColor color, } void GrBitmapTextGeoProc::addNewProxies(const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& params) { - SkASSERT(numProxies <= kMaxTextures); + SkASSERT(numActiveProxies <= kMaxTextures); - for (int i = 0; i < numProxies; ++i) { + for (int i = 0; i < numActiveProxies; ++i) { SkASSERT(proxies[i]); if (!fTextureSamplers[i].isInitialized()) { diff --git a/src/gpu/effects/GrBitmapTextGeoProc.h b/src/gpu/effects/GrBitmapTextGeoProc.h index 1f52e075b1..3b95f76192 100644 --- a/src/gpu/effects/GrBitmapTextGeoProc.h +++ b/src/gpu/effects/GrBitmapTextGeoProc.h @@ -24,11 +24,11 @@ public: static sk_sp<GrGeometryProcessor> Make(GrColor color, const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& p, GrMaskFormat format, const SkMatrix& localMatrix, bool usesLocalCoords) { return sk_sp<GrGeometryProcessor>( - new GrBitmapTextGeoProc(color, proxies, numProxies, p, format, + new GrBitmapTextGeoProc(color, proxies, numActiveProxies, p, format, localMatrix, usesLocalCoords)); } @@ -45,7 +45,7 @@ public: const SkMatrix& localMatrix() const { return fLocalMatrix; } bool usesLocalCoords() const { return fUsesLocalCoords; } - void addNewProxies(const sk_sp<GrTextureProxy>* proxies, int numProxies, const GrSamplerState&); + void addNewProxies(const sk_sp<GrTextureProxy>*, int numActiveProxies, const GrSamplerState&); void getGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const override; diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h index 4ac6ae0304..5ba19ed5a5 100644 --- a/src/gpu/effects/GrDistanceFieldGeoProc.h +++ b/src/gpu/effects/GrDistanceFieldGeoProc.h @@ -56,19 +56,19 @@ public: /** The local matrix should be identity if local coords are not required by the GrPipeline. */ #ifdef SK_GAMMA_APPLY_TO_A8 static sk_sp<GrGeometryProcessor> Make(const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& params, float lum, uint32_t flags, const SkMatrix& localMatrixIfUsesLocalCoords) { return sk_sp<GrGeometryProcessor>(new GrDistanceFieldA8TextGeoProc( - proxies, numProxies, params, lum, flags, localMatrixIfUsesLocalCoords)); + proxies, numActiveProxies, params, lum, flags, localMatrixIfUsesLocalCoords)); } #else static sk_sp<GrGeometryProcessor> Make(const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& params, uint32_t flags, const SkMatrix& localMatrixIfUsesLocalCoords) { return sk_sp<GrGeometryProcessor>(new GrDistanceFieldA8TextGeoProc( - proxies, numProxies, params, flags, localMatrixIfUsesLocalCoords)); + proxies, numActiveProxies, params, flags, localMatrixIfUsesLocalCoords)); } #endif @@ -93,7 +93,7 @@ public: private: GrDistanceFieldA8TextGeoProc(const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& params, #ifdef SK_GAMMA_APPLY_TO_A8 float distanceAdjust, @@ -129,10 +129,10 @@ public: /** The local matrix should be identity if local coords are not required by the GrPipeline. */ static sk_sp<GrGeometryProcessor> Make(const SkMatrix& matrix, const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& params, uint32_t flags) { return sk_sp<GrGeometryProcessor>( - new GrDistanceFieldPathGeoProc(matrix, proxies, numProxies, params, flags)); + new GrDistanceFieldPathGeoProc(matrix, proxies, numActiveProxies, params, flags)); } ~GrDistanceFieldPathGeoProc() override {} @@ -145,7 +145,7 @@ public: const SkMatrix& matrix() const { return fMatrix; } uint32_t getFlags() const { return fFlags; } - void addNewProxies(const sk_sp<GrTextureProxy>* proxies, int numProxies, const GrSamplerState&); + void addNewProxies(const sk_sp<GrTextureProxy>*, int numActiveProxies, const GrSamplerState&); void getGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const override; @@ -156,7 +156,7 @@ private: GrDistanceFieldPathGeoProc(const SkMatrix& matrix, const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState&, uint32_t flags); SkMatrix fMatrix; // view matrix if perspective, local matrix otherwise @@ -195,13 +195,14 @@ public: }; static sk_sp<GrGeometryProcessor> Make(const sk_sp<GrTextureProxy>* proxies, - int numProxies, + int numActiveProxies, const GrSamplerState& params, DistanceAdjust distanceAdjust, uint32_t flags, const SkMatrix& localMatrixIfUsesLocalCoords) { - return sk_sp<GrGeometryProcessor>(new GrDistanceFieldLCDTextGeoProc( - proxies, numProxies, params, distanceAdjust, flags, localMatrixIfUsesLocalCoords)); + return sk_sp<GrGeometryProcessor>( + new GrDistanceFieldLCDTextGeoProc(proxies, numActiveProxies, params, distanceAdjust, + flags, localMatrixIfUsesLocalCoords)); } ~GrDistanceFieldLCDTextGeoProc() override {} @@ -215,14 +216,14 @@ public: uint32_t getFlags() const { return fFlags; } const SkMatrix& localMatrix() const { return fLocalMatrix; } - void addNewProxies(const sk_sp<GrTextureProxy>* proxies, int numProxies, const GrSamplerState&); + void addNewProxies(const sk_sp<GrTextureProxy>*, int numActiveProxies, const GrSamplerState&); void getGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const override; GrGLSLPrimitiveProcessor* createGLSLInstance(const GrShaderCaps&) const override; private: - GrDistanceFieldLCDTextGeoProc(const sk_sp<GrTextureProxy>* proxies, int numProxies, + GrDistanceFieldLCDTextGeoProc(const sk_sp<GrTextureProxy>* proxies, int numActiveProxies, const GrSamplerState& params, DistanceAdjust wa, uint32_t flags, const SkMatrix& localMatrix); |