add platformProcs() porting function
git-svn-id: http://skia.googlecode.com/svn/trunk@301 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp
index e326165..3e5b927 100644
--- a/src/core/SkBitmapProcState.cpp
+++ b/src/core/SkBitmapProcState.cpp
@@ -506,6 +506,9 @@
fShaderProc16 = Repeat_S16_D16_filter_DX_shaderproc;
}
}
+
+ // see if our platform has any accelerated overrides
+ this->platformProcs();
return true;
}
diff --git a/src/core/SkBitmapProcState.h b/src/core/SkBitmapProcState.h
index 0077201..7962579 100644
--- a/src/core/SkBitmapProcState.h
+++ b/src/core/SkBitmapProcState.h
@@ -74,6 +74,21 @@
uint8_t fTileModeY; // CONSTRUCTOR
SkBool8 fDoFilter; // chooseProcs
+ /** Platforms implement this, and can optionally overwrite only the
+ following fields:
+
+ fShaderProc32
+ fShaderProc16
+ fMatrixProc
+ fSampleProc32
+ fSampleProc32
+
+ They will already have valid function pointers, so a platform that does
+ not have an accelerated version can just leave that field as is. A valid
+ implementation can do nothing (see SkBitmapProcState_opts_none.cpp)
+ */
+ void platformProcs();
+
private:
friend class SkBitmapProcShader;
diff --git a/src/opts/SkBitmapProcState_opts_none.cpp b/src/opts/SkBitmapProcState_opts_none.cpp
new file mode 100644
index 0000000..868f808
--- /dev/null
+++ b/src/opts/SkBitmapProcState_opts_none.cpp
@@ -0,0 +1,18 @@
+#include "SkBitmapProcState.h"
+
+/* A platform may optionally overwrite any of these with accelerated
+ versions. On input, these will already have valid function pointers,
+ so a platform need only overwrite the ones it chooses, based on the
+ current state (e.g. fBitmap, fInvMatrix, etc.)
+
+ fShaderProc32
+ fShaderProc16
+ fMatrixProc
+ fSampleProc32
+ fSampleProc32
+ */
+
+// empty implementation just uses default supplied function pointers
+void SkBitmapProcState::platformProcs() {}
+
+
diff --git a/src/opts/opts_files.mk b/src/opts/opts_files.mk
index d751e56..d756f68 100644
--- a/src/opts/opts_files.mk
+++ b/src/opts/opts_files.mk
@@ -1,3 +1,4 @@
SOURCE := \
- SkBlitRow_opts_none.cpp
+ SkBlitRow_opts_none.cpp \
+ SkBitmapProcState_opts_none.cpp