Index: tools/sk_tool_utils.cpp |
diff --git a/tools/sk_tool_utils.cpp b/tools/sk_tool_utils.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f5b8b9f93d055370ae3b89dc5418f4a97da7bafd |
--- /dev/null |
+++ b/tools/sk_tool_utils.cpp |
@@ -0,0 +1,48 @@ |
+#include "sk_tool_utils.h" |
+ |
+namespace sk_tool_utils { |
+ |
+void config8888_to_imagetypes(SkCanvas::Config8888 config, SkColorType* ct, SkAlphaType* at) { |
+ switch (config) { |
+ case SkCanvas::kNative_Premul_Config8888: |
+ *ct = kPMColor_SkColorType; |
+ *at = kPremul_SkAlphaType; |
+ break; |
+ case SkCanvas::kNative_Unpremul_Config8888: |
+ *ct = kPMColor_SkColorType; |
+ *at = kUnpremul_SkAlphaType; |
+ break; |
+ case SkCanvas::kBGRA_Premul_Config8888: |
+ *ct = kBGRA_8888_SkColorType; |
+ *at = kPremul_SkAlphaType; |
+ break; |
+ case SkCanvas::kBGRA_Unpremul_Config8888: |
+ *ct = kBGRA_8888_SkColorType; |
+ *at = kUnpremul_SkAlphaType; |
+ break; |
+ case SkCanvas::kRGBA_Premul_Config8888: |
+ *ct = kRGBA_8888_SkColorType; |
+ *at = kPremul_SkAlphaType; |
+ break; |
+ case SkCanvas::kRGBA_Unpremul_Config8888: |
+ *ct = kRGBA_8888_SkColorType; |
+ *at = kUnpremul_SkAlphaType; |
+ break; |
+ default: |
+ SkASSERT(0); |
+ } |
+} |
+ |
+void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y, |
+ SkColorType colorType, SkAlphaType alphaType) { |
+ SkBitmap tmp(bitmap); |
+ tmp.lockPixels(); |
+ |
+ SkImageInfo info = tmp.info(); |
+ info.fColorType = colorType; |
+ info.fAlphaType = alphaType; |
+ |
+ canvas->writePixels(info, tmp.getPixels(), tmp.rowBytes(), x, y); |
+} |
+ |
+} |