diff options
author | Khushal <khushalsagar@chromium.org> | 2018-06-06 17:46:38 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-07 18:03:11 +0000 |
commit | fa8ff09457f82119be0d00b7f37afb790487819e (patch) | |
tree | 65ee0f8eff9997add651bf8f3b48ac74b4413cdf /src/gpu/text/GrAtlasManager.cpp | |
parent | d5b4593024544c3405615066aa5b4f94352eb3cb (diff) |
fonts: Hook up FallbackTextHelper to font remoting.
Use GrContext::FallbackTextHelper in SkTextBlobCacheDiffCanvas to
replicate glyph generation logic for fallback text during analysis. This
ensures that we correctly handle these fallback cases when using
distance field or paths for text rendering.
R=herb@google.com, jvanverth@google.com
Bug: skia:7913
Change-Id: I3067c4f1bd09231a564ac7c4cd89efcb876d2abd
Reviewed-on: https://skia-review.googlesource.com/132285
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>
Diffstat (limited to 'src/gpu/text/GrAtlasManager.cpp')
-rw-r--r-- | src/gpu/text/GrAtlasManager.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/gpu/text/GrAtlasManager.cpp b/src/gpu/text/GrAtlasManager.cpp index f75224d0bc..ec07429180 100644 --- a/src/gpu/text/GrAtlasManager.cpp +++ b/src/gpu/text/GrAtlasManager.cpp @@ -12,15 +12,16 @@ #include "GrGlyphCache.h" #include "GrProxyProvider.h" -void GrAtlasManager::ComputeAtlasLimits(const GrCaps* caps, float maxTextureBytes, - int* maxDim, int* minDim, int* maxPlot, int* minPlot) { +void GrAtlasManager::ComputeAtlasLimits(int maxTextureSize, size_t maxTextureBytes, int* maxDim, + int* minDim, int* maxPlot, int* minPlot) { SkASSERT(maxDim && minDim && maxPlot && minPlot); // Calculate RGBA size. Must be between 512 x 256 and MaxTextureSize x MaxTextureSize / 2 - int log2MaxTextureSize = SkPrevLog2(caps->maxTextureSize()); + int log2MaxTextureSize = SkPrevLog2(maxTextureSize); int log2MaxDim = 9; + static const size_t kOne = 1u; for (; log2MaxDim <= log2MaxTextureSize; ++log2MaxDim) { - int maxDimTmp = 1 << log2MaxDim; - int minDimTmp = 1 << (log2MaxDim - 1); + size_t maxDimTmp = kOne << log2MaxDim; + size_t minDimTmp = kOne << (log2MaxDim - 1); if (maxDimTmp * minDimTmp * 4 >= maxTextureBytes) { break; @@ -45,7 +46,8 @@ GrAtlasManager::GrAtlasManager(GrProxyProvider* proxyProvider, GrGlyphCache* gly fCaps = fProxyProvider->refCaps(); int maxDim, minDim, maxPlot, minPlot; - ComputeAtlasLimits(fCaps.get(), maxTextureBytes, &maxDim, &minDim, &maxPlot, &minPlot); + ComputeAtlasLimits(fCaps->maxTextureSize(), maxTextureBytes, &maxDim, &minDim, &maxPlot, + &minPlot); // Setup default atlas configs. The A8 atlas uses maxDim for both width and height, as the A8 // format is already very compact. |