aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBlitMask_D32.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-10-18 17:29:44 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-10-18 17:29:44 +0000
commitf52e55543e8e34a9fc9dd6f6f2d0e14e25d97ba5 (patch)
tree51f136c4dec07156ebc372762df4c8db97b14562 /src/core/SkBlitMask_D32.cpp
parent7989186dab6bc2f1c1927daf91bddd32b7fd8d0c (diff)
(re)add SkMask::getAddr() which now checks its pixel-size at runtime.
git-svn-id: http://skia.googlecode.com/svn/trunk@2488 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkBlitMask_D32.cpp')
-rw-r--r--src/core/SkBlitMask_D32.cpp27
1 files changed, 1 insertions, 26 deletions
diff --git a/src/core/SkBlitMask_D32.cpp b/src/core/SkBlitMask_D32.cpp
index 7fe3153ea6..d68d44302e 100644
--- a/src/core/SkBlitMask_D32.cpp
+++ b/src/core/SkBlitMask_D32.cpp
@@ -345,38 +345,13 @@ SkBlitMask::Proc SkBlitMask::Factory(SkBitmap::Config config,
return NULL;
}
-static const int gMaskFormatToShift[] = {
- ~0, // BW
- 0, // A8
- 0, // 3D
- 2, // ARGB32
- 1, // LCD16
- 2 // LCD32
-};
-
-static int maskFormatToShift(SkMask::Format format) {
- SkASSERT((unsigned)format < SK_ARRAY_COUNT(gMaskFormatToShift));
- SkASSERT(SkMask::kBW_Format != format);
- return gMaskFormatToShift[format];
-}
-
-static const void* getAddr(const SkMask& mask, int x, int y) {
- SkASSERT(mask.fBounds.contains(x, y));
- SkASSERT(mask.fImage);
-
- const char* addr = (const char*)mask.fImage;
- addr += (y - mask.fBounds.fTop) * mask.fRowBytes;
- addr += (x - mask.fBounds.fLeft) << maskFormatToShift(mask.fFormat);
- return addr;
-}
-
bool SkBlitMask::BlitColor(const SkBitmap& device, const SkMask& mask,
const SkIRect& clip, SkColor color) {
Proc proc = Factory(device.config(), mask.fFormat, color);
if (proc) {
int x = clip.fLeft;
int y = clip.fTop;
- proc(device.getAddr32(x, y), device.rowBytes(), getAddr(mask, x, y),
+ proc(device.getAddr32(x, y), device.rowBytes(), mask.getAddr(x, y),
mask.fRowBytes, color, clip.width(), clip.height());
return true;
}