aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBitmapProcState_shaderproc.h
diff options
context:
space:
mode:
authorGravatar digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-08-13 14:06:34 +0000
committerGravatar digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-08-13 14:06:34 +0000
commit3ada0efdc8de8316df8113ec54ffd1a3f33ecd21 (patch)
tree896faec87613f080df1c1d5b613a6f80847a7131 /src/core/SkBitmapProcState_shaderproc.h
parent30e6d2c2054c15f1cb6c0637bee6756261291751 (diff)
arm: dynamic NEON support for SkBitmapProcState functions.
This patch does the following: - Move the NEON-specific code from src/core/SkBitmapProcState_filter.h to src/opts/SkBitmapProcState_filter_neon.h - Implement the NEON-specific functions in the new source file src/opts/SkBitmapProcState_opts_arm_neon.cpp, added to the "opts_neon" static library target. All functions now use the _neon suffix, even in full-NEON builds. - Move most of the content of src/core/SkBitmapProcState.cpp to a new header: src/core/SkBitmapProcState_procs.h This header is included by two source files: src/core/SkBitmapProcState.cpp, to define the regular functions. src/opts/SkBitmapProcState_opts_arm_neon.cpp to define NEON ones. This is to deal with the fact that all NEON functions now use the _neon suffix, even in SK_ARM_NEON_IS_ALWAYS mode, and to be able to include the same header twice in the SK_ARM_NEON_IS_DYNAMIC case. Review URL: https://codereview.appspot.com/6449117 git-svn-id: http://skia.googlecode.com/svn/trunk@5055 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkBitmapProcState_shaderproc.h')
-rw-r--r--src/core/SkBitmapProcState_shaderproc.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/SkBitmapProcState_shaderproc.h b/src/core/SkBitmapProcState_shaderproc.h
index ead57f123e..33c238c3aa 100644
--- a/src/core/SkBitmapProcState_shaderproc.h
+++ b/src/core/SkBitmapProcState_shaderproc.h
@@ -10,8 +10,10 @@
#define SCALE_FILTER_NAME MAKENAME(_filter_DX_shaderproc)
-static void SCALE_FILTER_NAME(const SkBitmapProcState& s, int x, int y,
- DSTTYPE* SK_RESTRICT colors, int count) {
+// Can't be static in the general case because some of these implementations
+// will be defined and referenced in different object files.
+void SCALE_FILTER_NAME(const SkBitmapProcState& s, int x, int y,
+ DSTTYPE* SK_RESTRICT colors, int count) {
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask)) == 0);
SkASSERT(s.fInvKy == 0);