aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrDistanceFieldGeoProc.cpp
diff options
context:
space:
mode:
authorGravatar Jim Van Verth <jvanverth@google.com>2017-09-15 12:14:26 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-09-15 16:34:34 +0000
commit03168b8a62a0d3d14b7a0d14642df4d82203b87c (patch)
tree011df89efc1f6416ec08f6b1d6de173ff3000b1b /src/gpu/effects/GrDistanceFieldGeoProc.cpp
parenta4083c97d48e8a4f88e2797d7363f141e3d42553 (diff)
Allow GrDrawOpAtlas to grow as needed
Bug: skia:3550 Change-Id: Ib5312c8c06ba8549d90545658df6686c45058255 Reviewed-on: https://skia-review.googlesource.com/45841 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/effects/GrDistanceFieldGeoProc.cpp')
-rw-r--r--src/gpu/effects/GrDistanceFieldGeoProc.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 66e96199eb..1758f34b2f 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -261,6 +261,17 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc(
}
}
+void GrDistanceFieldA8TextGeoProc::resetProxies(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ const GrSamplerState& params) {
+ this->resetTextureSamplers();
+ for (int i = 0; i < kMaxTextures; ++i) {
+ if (proxies[i]) {
+ fTextureSamplers[i].reset(std::move(proxies[i]), params);
+ this->addTextureSampler(&fTextureSamplers[i]);
+ }
+ }
+}
+
void GrDistanceFieldA8TextGeoProc::getGLSLProcessorKey(const GrShaderCaps& caps,
GrProcessorKeyBuilder* b) const {
GrGLDistanceFieldA8TextGeoProc::GenKey(*this, caps, b);
@@ -511,6 +522,17 @@ GrDistanceFieldPathGeoProc::GrDistanceFieldPathGeoProc(
}
}
+void GrDistanceFieldPathGeoProc::resetProxies(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ const GrSamplerState& params) {
+ this->resetTextureSamplers();
+ for (int i = 0; i < kMaxTextures; ++i) {
+ if (proxies[i]) {
+ fTextureSamplers[i].reset(std::move(proxies[i]), params);
+ this->addTextureSampler(&fTextureSamplers[i]);
+ }
+ }
+}
+
void GrDistanceFieldPathGeoProc::getGLSLProcessorKey(const GrShaderCaps& caps,
GrProcessorKeyBuilder* b) const {
GrGLDistanceFieldPathGeoProc::GenKey(*this, caps, b);
@@ -823,6 +845,17 @@ GrDistanceFieldLCDTextGeoProc::GrDistanceFieldLCDTextGeoProc(
}
}
+void GrDistanceFieldLCDTextGeoProc::resetProxies(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ const GrSamplerState& params) {
+ this->resetTextureSamplers();
+ for (int i = 0; i < kMaxTextures; ++i) {
+ if (proxies[i]) {
+ fTextureSamplers[i].reset(std::move(proxies[i]), params);
+ this->addTextureSampler(&fTextureSamplers[i]);
+ }
+ }
+}
+
void GrDistanceFieldLCDTextGeoProc::getGLSLProcessorKey(const GrShaderCaps& caps,
GrProcessorKeyBuilder* b) const {
GrGLDistanceFieldLCDTextGeoProc::GenKey(*this, caps, b);