Index: dm/DMSrcSink.cpp |
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp |
index 84af854deae65c8597cd30839d98034795df5978..b6e59d9fd10a66361eb8495a04b13985a54e9945 100644 |
--- a/dm/DMSrcSink.cpp |
+++ b/dm/DMSrcSink.cpp |
@@ -7,6 +7,7 @@ |
#include "DMSrcSink.h" |
#include "SkAndroidCodec.h" |
+#include "SkAutoCoInitialize.h" |
#include "SkCodec.h" |
#include "SkCodecImageGenerator.h" |
#include "SkCommonFlags.h" |
@@ -15,6 +16,7 @@ |
#include "SkError.h" |
#include "SkImageGenerator.h" |
#include "SkImageGeneratorCG.h" |
+#include "SkImageGeneratorWIC.h" |
#include "SkMallocPixelRef.h" |
#include "SkMultiPictureDraw.h" |
#include "SkNullCanvas.h" |
@@ -791,6 +793,14 @@ Error ImageGenSrc::draw(SkCanvas* canvas) const { |
return SkStringPrintf("Couldn't read %s.", fPath.c_str()); |
} |
+#if defined(SK_BUILD_FOR_WIN) |
+ // Initialize COM in order to test with WIC. |
+ SkAutoCoInitialize com; |
+ if (!com.succeeded()) { |
+ return false; |
scroggo
2016/03/11 19:10:48
It looks like this method should return an error s
msarett
2016/03/11 19:20:14
Haha yeah. Interesting that the compiler let me g
|
+ } |
+#endif |
+ |
SkAutoTDelete<SkImageGenerator> gen(nullptr); |
switch (fMode) { |
case kCodec_Mode: |
@@ -799,14 +809,18 @@ Error ImageGenSrc::draw(SkCanvas* canvas) const { |
return "Could not create codec image generator."; |
} |
break; |
+ case kPlatform_Mode: { |
#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |
- case kPlatform_Mode: |
gen.reset(SkImageGeneratorCG::NewFromEncodedCG(encoded)); |
+#elif defined(SK_BUILD_FOR_WIN) |
+ gen.reset(SkImageGeneratorWIC::NewFromEncodedWIC(encoded)); |
+#endif |
+ |
if (!gen) { |
- return "Could not create CG image generator."; |
+ return "Could not create platform image generator."; |
} |
break; |
-#endif |
+ } |
default: |
SkASSERT(false); |
return "Invalid image generator mode"; |