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 #ifndef UNICODE | 8 #ifndef UNICODE |
9 #define UNICODE | 9 #define UNICODE |
10 #endif | 10 #endif |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 return S_OK; | 104 return S_OK; |
105 } | 105 } |
106 | 106 |
107 static SkBitmap make_fake_bitmap(int width, int height) { | 107 static SkBitmap make_fake_bitmap(int width, int height) { |
108 SkBitmap bitmap; | 108 SkBitmap bitmap; |
109 bitmap.setConfig(SkBitmap::kNo_Config, width, height); | 109 bitmap.setConfig(SkBitmap::kNo_Config, width, height); |
110 return bitmap; | 110 return bitmap; |
111 } | 111 } |
112 | 112 |
113 SkXPSDevice::SkXPSDevice() | 113 SkXPSDevice::SkXPSDevice() |
114 : SkDevice(make_fake_bitmap(10000, 10000)) | 114 : SkBitmapDevice(make_fake_bitmap(10000, 10000)) |
115 , fCurrentPage(0) { | 115 , fCurrentPage(0) { |
116 } | 116 } |
117 | 117 |
118 SkXPSDevice::~SkXPSDevice() { | 118 SkXPSDevice::~SkXPSDevice() { |
119 } | 119 } |
120 | 120 |
121 SkXPSDevice::TypefaceUse::TypefaceUse() | 121 SkXPSDevice::TypefaceUse::TypefaceUse() |
122 : typefaceId(0xffffffff) | 122 : typefaceId(0xffffffff) |
123 , fontData(NULL) | 123 , fontData(NULL) |
124 , xpsFont(NULL) | 124 , xpsFont(NULL) |
(...skipping 2243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2368 paint)); | 2368 paint)); |
2369 } | 2369 } |
2370 | 2370 |
2371 void SkXPSDevice::drawTextOnPath(const SkDraw& d, const void* text, size_t len, | 2371 void SkXPSDevice::drawTextOnPath(const SkDraw& d, const void* text, size_t len, |
2372 const SkPath& path, const SkMatrix* matrix, | 2372 const SkPath& path, const SkMatrix* matrix, |
2373 const SkPaint& paint) { | 2373 const SkPaint& paint) { |
2374 //This will call back into the device to do the drawing. | 2374 //This will call back into the device to do the drawing. |
2375 d.drawTextOnPath((const char*)text, len, path, matrix, paint); | 2375 d.drawTextOnPath((const char*)text, len, path, matrix, paint); |
2376 } | 2376 } |
2377 | 2377 |
2378 void SkXPSDevice::drawDevice(const SkDraw& d, SkDevice* dev, | 2378 void SkXPSDevice::drawDevice(const SkDraw& d, SkBaseDevice* dev, |
2379 int x, int y, | 2379 int x, int y, |
2380 const SkPaint&) { | 2380 const SkPaint&) { |
2381 SkXPSDevice* that = static_cast<SkXPSDevice*>(dev); | 2381 SkXPSDevice* that = static_cast<SkXPSDevice*>(dev); |
2382 | 2382 |
2383 SkTScopedComPtr<IXpsOMMatrixTransform> xpsTransform; | 2383 SkTScopedComPtr<IXpsOMMatrixTransform> xpsTransform; |
2384 XPS_MATRIX rawTransform = { | 2384 XPS_MATRIX rawTransform = { |
2385 1.0f, | 2385 1.0f, |
2386 0.0f, | 2386 0.0f, |
2387 0.0f, | 2387 0.0f, |
2388 1.0f, | 2388 1.0f, |
(...skipping 11 matching lines...) Expand all Loading... |
2400 "Could not get current visuals for layer."); | 2400 "Could not get current visuals for layer."); |
2401 HRVM(currentVisuals->Append(that->fCurrentXpsCanvas.get()), | 2401 HRVM(currentVisuals->Append(that->fCurrentXpsCanvas.get()), |
2402 "Could not add layer to current visuals."); | 2402 "Could not add layer to current visuals."); |
2403 } | 2403 } |
2404 | 2404 |
2405 bool SkXPSDevice::onReadPixels(const SkBitmap& bitmap, int x, int y, | 2405 bool SkXPSDevice::onReadPixels(const SkBitmap& bitmap, int x, int y, |
2406 SkCanvas::Config8888) { | 2406 SkCanvas::Config8888) { |
2407 return false; | 2407 return false; |
2408 } | 2408 } |
2409 | 2409 |
2410 SkDevice* SkXPSDevice::onCreateCompatibleDevice(SkBitmap::Config config, | 2410 SkBaseDevice* SkXPSDevice::onCreateCompatibleDevice(SkBitmap::Config config, |
2411 int width, int height, | 2411 int width, int height, |
2412 bool isOpaque, | 2412 bool isOpaque, |
2413 Usage usage) { | 2413 Usage usage) { |
2414 if (SkDevice::kGeneral_Usage == usage) { | 2414 if (SkBaseDevice::kGeneral_Usage == usage) { |
2415 return NULL; | 2415 return NULL; |
2416 SK_CRASH(); | 2416 SK_CRASH(); |
2417 //To what stream do we write? | 2417 //To what stream do we write? |
2418 //SkXPSDevice* dev = new SkXPSDevice(this); | 2418 //SkXPSDevice* dev = new SkXPSDevice(this); |
2419 //SkSize s = SkSize::Make(width, height); | 2419 //SkSize s = SkSize::Make(width, height); |
2420 //dev->BeginCanvas(s, s, SkMatrix::I()); | 2420 //dev->BeginCanvas(s, s, SkMatrix::I()); |
2421 //return dev; | 2421 //return dev; |
2422 } | 2422 } |
2423 | 2423 |
2424 return new SkXPSDevice(this->fXpsFactory.get()); | 2424 return new SkXPSDevice(this->fXpsFactory.get()); |
2425 } | 2425 } |
2426 | 2426 |
2427 SkXPSDevice::SkXPSDevice(IXpsOMObjectFactory* xpsFactory) | 2427 SkXPSDevice::SkXPSDevice(IXpsOMObjectFactory* xpsFactory) |
2428 : SkDevice(make_fake_bitmap(10000, 10000)) | 2428 : SkBitmapDevice(make_fake_bitmap(10000, 10000)) |
2429 , fCurrentPage(0) { | 2429 , fCurrentPage(0) { |
2430 | 2430 |
2431 HRVM(CoCreateInstance( | 2431 HRVM(CoCreateInstance( |
2432 CLSID_XpsOMObjectFactory, | 2432 CLSID_XpsOMObjectFactory, |
2433 NULL, | 2433 NULL, |
2434 CLSCTX_INPROC_SERVER, | 2434 CLSCTX_INPROC_SERVER, |
2435 IID_PPV_ARGS(&this->fXpsFactory)), | 2435 IID_PPV_ARGS(&this->fXpsFactory)), |
2436 "Could not create factory for layer."); | 2436 "Could not create factory for layer."); |
2437 | 2437 |
2438 HRVM(this->fXpsFactory->CreateCanvas(&this->fCurrentXpsCanvas), | 2438 HRVM(this->fXpsFactory->CreateCanvas(&this->fCurrentXpsCanvas), |
2439 "Could not create canvas for layer."); | 2439 "Could not create canvas for layer."); |
2440 } | 2440 } |
2441 | 2441 |
2442 bool SkXPSDevice::allowImageFilter(SkImageFilter*) { | 2442 bool SkXPSDevice::allowImageFilter(SkImageFilter*) { |
2443 return false; | 2443 return false; |
2444 } | 2444 } |
OLD | NEW |