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 #if defined(SK_BUILD_FOR_WIN32) | 9 #if defined(SK_BUILD_FOR_WIN32) |
10 | 10 |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
195 IXpsOMImageResource** image) { | 195 IXpsOMImageResource** image) { |
196 SkTScopedComPtr<IXpsOMThumbnailGenerator> thumbnailGenerator; | 196 SkTScopedComPtr<IXpsOMThumbnailGenerator> thumbnailGenerator; |
197 HRM(CoCreateInstance( | 197 HRM(CoCreateInstance( |
198 CLSID_XpsOMThumbnailGenerator, | 198 CLSID_XpsOMThumbnailGenerator, |
199 nullptr, | 199 nullptr, |
200 CLSCTX_INPROC_SERVER, | 200 CLSCTX_INPROC_SERVER, |
201 IID_PPV_ARGS(&thumbnailGenerator)), | 201 IID_PPV_ARGS(&thumbnailGenerator)), |
202 "Could not create thumbnail generator."); | 202 "Could not create thumbnail generator."); |
203 | 203 |
204 SkTScopedComPtr<IOpcPartUri> partUri; | 204 SkTScopedComPtr<IOpcPartUri> partUri; |
205 static const size_t size = SkTUMax< | 205 constexpr size_t size = SkSMax( |
206 SK_ARRAY_COUNT(L"/Documents/1/Metadata/.png") + SK_DIGITS_IN(pageNum), | 206 SK_ARRAY_COUNT(L"/Documents/1/Metadata/.png") + SkDigitsIn<unsigned> (), |
207 SK_ARRAY_COUNT(L"/Metadata/" L_GUID_ID L".png") | 207 SK_ARRAY_COUNT(L"/Metadata/" L_GUID_ID L".png")); |
208 >::value; | |
209 wchar_t buffer[size]; | 208 wchar_t buffer[size]; |
210 if (pageNum > 0) { | 209 if (pageNum > 0) { |
211 swprintf_s(buffer, size, L"/Documents/1/Metadata/%u.png", pageNum); | 210 swprintf_s(buffer, size, L"/Documents/1/Metadata/%u.png", pageNum); |
bungeman-skia
2016/05/23 15:04:49
Eck, now that I look at these, I think this needs
hal.canary
2016/05/23 16:55:39
Acknowledged.
| |
212 } else { | 211 } else { |
213 wchar_t id[GUID_ID_LEN]; | 212 wchar_t id[GUID_ID_LEN]; |
214 HR(this->createId(id, GUID_ID_LEN)); | 213 HR(this->createId(id, GUID_ID_LEN)); |
215 swprintf_s(buffer, size, L"/Metadata/%s.png", id); | 214 swprintf_s(buffer, size, L"/Metadata/%s.png", id); |
216 } | 215 } |
217 HRM(this->fXpsFactory->CreatePartUri(buffer, &partUri), | 216 HRM(this->fXpsFactory->CreatePartUri(buffer, &partUri), |
218 "Could not create thumbnail part uri."); | 217 "Could not create thumbnail part uri."); |
219 | 218 |
220 HRM(thumbnailGenerator->GenerateThumbnail(page, | 219 HRM(thumbnailGenerator->GenerateThumbnail(page, |
221 XPS_IMAGE_TYPE_PNG, | 220 XPS_IMAGE_TYPE_PNG, |
222 XPS_THUMBNAIL_SIZE_LARGE, | 221 XPS_THUMBNAIL_SIZE_LARGE, |
223 partUri.get(), | 222 partUri.get(), |
224 image), | 223 image), |
225 "Could not generate thumbnail."); | 224 "Could not generate thumbnail."); |
226 | 225 |
227 return S_OK; | 226 return S_OK; |
228 } | 227 } |
229 | 228 |
230 HRESULT SkXPSDevice::createXpsPage(const XPS_SIZE& pageSize, | 229 HRESULT SkXPSDevice::createXpsPage(const XPS_SIZE& pageSize, |
231 IXpsOMPage** page) { | 230 IXpsOMPage** page) { |
232 static const size_t size = SK_ARRAY_COUNT(L"/Documents/1/Pages/.fpage") | 231 constexpr size_t size = SK_ARRAY_COUNT(L"/Documents/1/Pages/.fpage") |
233 + SK_DIGITS_IN(fCurrentPage); | 232 + SkDigitsIn<unsigned>(); |
234 wchar_t buffer[size]; | 233 wchar_t buffer[size]; |
235 swprintf_s(buffer, size, L"/Documents/1/Pages/%u.fpage", | 234 swprintf_s(buffer, size, L"/Documents/1/Pages/%u.fpage", |
236 this->fCurrentPage); | 235 this->fCurrentPage); |
237 SkTScopedComPtr<IOpcPartUri> partUri; | 236 SkTScopedComPtr<IOpcPartUri> partUri; |
238 HRM(this->fXpsFactory->CreatePartUri(buffer, &partUri), | 237 HRM(this->fXpsFactory->CreatePartUri(buffer, &partUri), |
239 "Could not create page part uri."); | 238 "Could not create page part uri."); |
240 | 239 |
241 //If the language is unknown, use "und" (XPS Spec 2.3.5.1). | 240 //If the language is unknown, use "und" (XPS Spec 2.3.5.1). |
242 HRM(this->fXpsFactory->CreatePage(&pageSize, | 241 HRM(this->fXpsFactory->CreatePage(&pageSize, |
243 L"und", | 242 L"und", |
(...skipping 2027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2271 //SkXPSDevice* dev = new SkXPSDevice(this); | 2270 //SkXPSDevice* dev = new SkXPSDevice(this); |
2272 //SkSize s = SkSize::Make(width, height); | 2271 //SkSize s = SkSize::Make(width, height); |
2273 //dev->BeginCanvas(s, s, SkMatrix::I()); | 2272 //dev->BeginCanvas(s, s, SkMatrix::I()); |
2274 //return dev; | 2273 //return dev; |
2275 } | 2274 } |
2276 #endif | 2275 #endif |
2277 return new SkXPSDevice(this->fXpsFactory.get()); | 2276 return new SkXPSDevice(this->fXpsFactory.get()); |
2278 } | 2277 } |
2279 | 2278 |
2280 #endif//defined(SK_BUILD_FOR_WIN32) | 2279 #endif//defined(SK_BUILD_FOR_WIN32) |
OLD | NEW |