Index: src/core/SkBlitter_RGB16.cpp |
diff --git a/src/core/SkBlitter_RGB16.cpp b/src/core/SkBlitter_RGB16.cpp |
index 4503a2ae7928ea409c232d052b111cb37796d2ae..92d8ff748a853dbac03800405f87a96ccdbf1be6 100644 |
--- a/src/core/SkBlitter_RGB16.cpp |
+++ b/src/core/SkBlitter_RGB16.cpp |
@@ -16,6 +16,12 @@ |
#include "SkUtilsArm.h" |
#include "SkXfermode.h" |
+#if __MIPS_HAVE_DSP |
+extern void blitmask_d565_opaque_mips(int width, int height, uint16_t* device, |
+ unsigned deviceRB, const uint8_t* alpha, |
+ uint32_t expanded32, unsigned maskRB); |
+#endif |
+ |
#if SK_ARM_NEON_IS_ALWAYS && defined(SK_CPU_LENDIAN) |
#include <arm_neon.h> |
#else |
@@ -368,9 +374,11 @@ void SkRGB16_Opaque_Blitter::blitAntiH(int x, int y, |
#define SK_BLITBWMASK_DEVTYPE uint16_t |
#include "SkBlitBWMaskTemplate.h" |
+#if !__MIPS_HAVE_DSP |
djsollen
2014/07/11 15:57:01
#if !defined(SK_MIPS_HAS_DSP)
|
static U16CPU blend_compact(uint32_t src32, uint32_t dst32, unsigned scale5) { |
return SkCompact_rgb_16(dst32 + ((src32 - dst32) * scale5 >> 5)); |
} |
+#endif |
void SkRGB16_Opaque_Blitter::blitMask(const SkMask& mask, |
const SkIRect& clip) { |
@@ -457,6 +465,8 @@ void SkRGB16_Opaque_Blitter::blitMask(const SkMask& mask, |
alpha += maskRB; |
} while (--height != 0); |
#undef UNROLL |
+#elif __MIPS_HAVE_DSP |
+ blitmask_d565_opaque_mips(width, height, device, deviceRB, alpha, expanded32, maskRB); |
#else // non-neon code |
do { |
int w = width; |