add SkEmptyShader, and return it from CreateBitmapShader if the bitmap is empty
(i.e. has no pixels at all)



git-svn-id: http://skia.googlecode.com/svn/trunk@1792 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp
index b51705e..48c9966 100644
--- a/src/core/SkShader.cpp
+++ b/src/core/SkShader.cpp
@@ -344,3 +344,26 @@
     }
     return kColor_GradientType;
 }
+
+///////////////////////////////////////////////////////////////////////////////
+
+#include "SkEmptyShader.h"
+
+SkEmptyShader::SkEmptyShader() {}
+SkEmptyShader::SkEmptyShader(SkFlattenableReadBuffer& b) : INHERITED(b) {}
+
+uint32_t SkEmptyShader::getFlags() { return 0; }
+uint8_t SkEmptyShader::getSpan16Alpha() const { return 0; }
+bool SkEmptyShader::setContext(const SkBitmap& device, const SkPaint& paint,
+                               const SkMatrix& matrix) {
+    return false;
+}
+void SkEmptyShader::shadeSpan(int x, int y, SkPMColor span[], int count) {}
+void SkEmptyShader::shadeSpan16(int x, int y, uint16_t span[], int count) {}
+void SkEmptyShader::shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) {}
+
+SkFlattenable::Factory SkEmptyShader::getFactory() { return NULL; }
+void SkEmptyShader::flatten(SkFlattenableWriteBuffer& buffer) {
+    this->INHERITED::flatten(buffer);
+}
+