diff options
author | Brian Osman <brianosman@google.com> | 2017-11-14 16:16:39 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-11-14 16:16:45 +0000 |
commit | 3e31e99babe3a6776d345f433d6966ef444d640b (patch) | |
tree | 3ebd70dbc3ac1b9f2d6cca0a32123015e242cebc /src/core/SkGlyph.h | |
parent | 8073e79e5b8c7dab129112e4494b907b175b7217 (diff) |
Revert "Alloc glyph image correctly for SkMask::k3D_Format."
This reverts commit 1662257bdaaaf26b016bf2a3e329c34f7f5ed581.
Reason for revert: Android still using this API
Original change's description:
> Alloc glyph image correctly for SkMask::k3D_Format.
>
> Remove the no longer used outside Skia SK_SUPPORT_LEGACY_EMBOSSMASKFILTER
> define, and either delete the code it guards or update it to use the new
> emboss mask filter factory.
>
> Re-enable the code to test the emboss mask filter.
>
> Add a test to ensure that embossed text is drawn correctly, as before
> glyphs did not allocate the proper amount of memory for the k3D_Format
> which the emboss mask filter produces.
>
> Fixes SkEmbossMask::Emboss to write the whole of the mul and add planes
> to avoid pixel differences and MemorySanitizer errors.
>
> Update the GPU to understand the k3D_Format and use just the alpha
> plane, ignoring the mul and add plane which it currently cannot support.
>
> Change-Id: Icac1a3f37d6e8c6be3151df570f5e14111e18585
> Reviewed-on: https://skia-review.googlesource.com/70260
> Reviewed-by: Herb Derby <herb@google.com>
> Reviewed-on: https://skia-review.googlesource.com/70962
> Commit-Queue: Ben Wagner <bungeman@google.com>
TBR=djsollen@google.com,bungeman@google.com,herb@google.com
Change-Id: Id6625bae8d3bd70ce7aa3045348c04fdd146c637
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/71183
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/core/SkGlyph.h')
-rw-r--r-- | src/core/SkGlyph.h | 45 |
1 files changed, 11 insertions, 34 deletions
diff --git a/src/core/SkGlyph.h b/src/core/SkGlyph.h index b54635277b..06c1d76fb3 100644 --- a/src/core/SkGlyph.h +++ b/src/core/SkGlyph.h @@ -172,57 +172,34 @@ public: */ static unsigned ComputeRowBytes(unsigned width, SkMask::Format format) { unsigned rb = width; - switch (format) { - case SkMask::kBW_Format: + if (SkMask::kBW_Format == format) { rb = BitsToBytes(rb); - break; - case SkMask::kA8_Format: - rb = SkAlign4(rb); - break; - case SkMask::k3D_Format: - rb = SkAlign4(rb); - break; - case SkMask::kARGB32_Format: + } else if (SkMask::kARGB32_Format == format) { rb <<= 2; - break; - case SkMask::kLCD16_Format: + } else if (SkMask::kLCD16_Format == format) { rb = SkAlign4(rb << 1); - break; - default: - SK_ABORT("Unknown mask format."); - break; + } else { + rb = SkAlign4(rb); } return rb; } size_t allocImage(SkArenaAlloc* alloc) { size_t allocSize; - switch (static_cast<SkMask::Format>(fMaskFormat)) { - case SkMask::kBW_Format: + if (SkMask::kBW_Format == fMaskFormat) { allocSize = BitsToBytes(fWidth) * fHeight; fImage = alloc->makeArrayDefault<char>(allocSize); - break; - case SkMask::kA8_Format: - allocSize = SkAlign4(fWidth) * fHeight; - fImage = alloc->makeArrayDefault<char>(allocSize); - break; - case SkMask::k3D_Format: - allocSize = SkAlign4(fWidth) * fHeight * 3; - fImage = alloc->makeArrayDefault<char>(allocSize); - break; - case SkMask::kARGB32_Format: + } else if (SkMask::kARGB32_Format == fMaskFormat) { allocSize = fWidth * fHeight; fImage = alloc->makeArrayDefault<uint32_t>(fWidth * fHeight); allocSize *= sizeof(uint32_t); - break; - case SkMask::kLCD16_Format: + } else if (SkMask::kLCD16_Format == fMaskFormat) { allocSize = SkAlign2(fWidth) * fHeight; fImage = alloc->makeArrayDefault<uint16_t>(allocSize); allocSize *= sizeof(uint16_t); - break; - default: - SK_ABORT("Unknown mask format."); - break; + } else { + allocSize = SkAlign4(fWidth) * fHeight; + fImage = alloc->makeArrayDefault<char>(allocSize); } return allocSize; } |