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