OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkTypes.h" | 8 #include "SkTypes.h" |
9 | 9 |
10 #if defined(SK_BUILD_FOR_WIN32) | 10 #if defined(SK_BUILD_FOR_WIN32) |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
43 //Undo this #define if it has been done so that we link against the symbols | 43 //Undo this #define if it has been done so that we link against the symbols |
44 //we intended to link against on all SDKs. | 44 //we intended to link against on all SDKs. |
45 #if defined(CLSID_WICImagingFactory) | 45 #if defined(CLSID_WICImagingFactory) |
46 #undef CLSID_WICImagingFactory | 46 #undef CLSID_WICImagingFactory |
47 #endif | 47 #endif |
48 | 48 |
49 class SkImageEncoder_WIC : public SkImageEncoder { | 49 class SkImageEncoder_WIC : public SkImageEncoder { |
50 public: | 50 public: |
51 SkImageEncoder_WIC(Type t) : fType(t) {} | 51 SkImageEncoder_WIC(Type t) : fType(t) {} |
52 | 52 |
53 // DO NOT USE this constructor. This exists only so SkForceLinking can | |
54 // link the WIC image encoder. | |
55 SkImageEncoder_WIC() {} | |
56 | |
57 protected: | 53 protected: |
58 virtual bool onEncode(SkWStream* stream, const SkBitmap& bm, int quality); | 54 virtual bool onEncode(SkWStream* stream, const SkBitmap& bm, int quality); |
59 | 55 |
60 private: | 56 private: |
61 Type fType; | 57 Type fType; |
62 }; | 58 }; |
63 | 59 |
64 bool SkImageEncoder_WIC::onEncode(SkWStream* stream | 60 bool SkImageEncoder_WIC::onEncode(SkWStream* stream |
65 , const SkBitmap& bitmapOrig | 61 , const SkBitmap& bitmapOrig |
66 , int quality) | 62 , int quality) |
67 { | 63 { |
68 GUID type; | 64 GUID type; |
69 switch (fType) { | 65 switch (fType) { |
70 case kBMP_Type: | |
msarett
2016/08/16 21:26:51
These don't work. I'm guessing that they've never
| |
71 type = GUID_ContainerFormatBmp; | |
72 break; | |
73 case kICO_Type: | |
74 type = GUID_ContainerFormatIco; | |
75 break; | |
76 case kJPEG_Type: | 66 case kJPEG_Type: |
77 type = GUID_ContainerFormatJpeg; | 67 type = GUID_ContainerFormatJpeg; |
78 break; | 68 break; |
79 case kPNG_Type: | 69 case kPNG_Type: |
80 type = GUID_ContainerFormatPng; | 70 type = GUID_ContainerFormatPng; |
81 break; | 71 break; |
82 default: | 72 default: |
83 return false; | 73 return false; |
84 } | 74 } |
85 | 75 |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
221 | 211 |
222 if (SUCCEEDED(hr)) { | 212 if (SUCCEEDED(hr)) { |
223 hr = piEncoder->Commit(); | 213 hr = piEncoder->Commit(); |
224 } | 214 } |
225 | 215 |
226 return SUCCEEDED(hr); | 216 return SUCCEEDED(hr); |
227 } | 217 } |
228 | 218 |
229 /////////////////////////////////////////////////////////////////////////////// | 219 /////////////////////////////////////////////////////////////////////////////// |
230 | 220 |
221 #ifdef SK_USE_WIC_ENCODER | |
231 static SkImageEncoder* sk_imageencoder_wic_factory(SkImageEncoder::Type t) { | 222 static SkImageEncoder* sk_imageencoder_wic_factory(SkImageEncoder::Type t) { |
232 switch (t) { | 223 switch (t) { |
233 case SkImageEncoder::kBMP_Type: | |
234 case SkImageEncoder::kICO_Type: | |
235 case SkImageEncoder::kPNG_Type: | 224 case SkImageEncoder::kPNG_Type: |
236 case SkImageEncoder::kJPEG_Type: | 225 case SkImageEncoder::kJPEG_Type: |
237 break; | 226 break; |
238 default: | 227 default: |
239 return nullptr; | 228 return nullptr; |
240 } | 229 } |
241 return new SkImageEncoder_WIC(t); | 230 return new SkImageEncoder_WIC(t); |
242 } | 231 } |
243 | 232 |
244 static SkImageEncoder_EncodeReg gEReg(sk_imageencoder_wic_factory); | 233 static SkImageEncoder_EncodeReg gEReg(sk_imageencoder_wic_factory); |
234 #endif | |
245 | 235 |
246 DEFINE_ENCODER_CREATOR(ImageEncoder_WIC); | 236 SkImageEncoder* CreateImageEncoder_WIC(SkImageEncoder::Type type) { |
237 return new SkImageEncoder_WIC(type); | |
238 } | |
247 | 239 |
248 #endif // defined(SK_BUILD_FOR_WIN32) | 240 #endif // defined(SK_BUILD_FOR_WIN32) |
OLD | NEW |