diff options
author | digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-08-13 14:06:34 +0000 |
---|---|---|
committer | digit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-08-13 14:06:34 +0000 |
commit | 3ada0efdc8de8316df8113ec54ffd1a3f33ecd21 (patch) | |
tree | 896faec87613f080df1c1d5b613a6f80847a7131 /src/core/SkBitmapProcState_shaderproc.h | |
parent | 30e6d2c2054c15f1cb6c0637bee6756261291751 (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.h | 6 |
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); |