aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkGlyph.h
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-11-14 16:16:39 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-14 16:16:45 +0000
commit3e31e99babe3a6776d345f433d6966ef444d640b (patch)
tree3ebd70dbc3ac1b9f2d6cca0a32123015e242cebc /src/core/SkGlyph.h
parent8073e79e5b8c7dab129112e4494b907b175b7217 (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.h45
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;
}