OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2008, Google Inc. All rights reserved. | 2 * Copyright (c) 2008, Google Inc. All rights reserved. |
3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> | 3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> |
4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. | 4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions are | 7 * modification, are permitted provided that the following conditions are |
8 * met: | 8 * met: |
9 * | 9 * |
10 * * Redistributions of source code must retain the above copyright | 10 * * Redistributions of source code must retain the above copyright |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 SkCanvas* canvas = new SkCanvas(); | 86 SkCanvas* canvas = new SkCanvas(); |
87 canvas->setDevice(new SkGpuDevice(gr, texture.get()))->unref(); | 87 canvas->setDevice(new SkGpuDevice(gr, texture.get()))->unref(); |
88 data->m_platformContext.setGraphicsContext3D(context3D); | 88 data->m_platformContext.setGraphicsContext3D(context3D); |
89 #if USE(ACCELERATED_COMPOSITING) | 89 #if USE(ACCELERATED_COMPOSITING) |
90 data->m_platformLayer = Canvas2DLayerChromium::create(context3D); | 90 data->m_platformLayer = Canvas2DLayerChromium::create(context3D); |
91 data->m_platformLayer->setTextureId(texture.get()->getTextureHandle()); | 91 data->m_platformLayer->setTextureId(texture.get()->getTextureHandle()); |
92 #endif | 92 #endif |
93 return canvas; | 93 return canvas; |
94 } | 94 } |
95 | 95 |
| 96 static SkCanvas* createNonPlatformCanvas(const IntSize& size) |
| 97 { |
| 98 SkCanvas* canvas = new SkCanvas(); |
| 99 canvas->setDevice(new SkDevice(SkBitmap::kARGB_8888_Config, size.width(), si
ze.height()))->unref(); |
| 100 return canvas; |
| 101 } |
| 102 |
96 ImageBuffer::ImageBuffer(const IntSize& size, ColorSpace, RenderingMode renderin
gMode, bool& success) | 103 ImageBuffer::ImageBuffer(const IntSize& size, ColorSpace, RenderingMode renderin
gMode, bool& success) |
97 : m_data(size) | 104 : m_data(size) |
98 , m_size(size) | 105 , m_size(size) |
99 { | 106 { |
100 OwnPtr<SkCanvas> canvas; | 107 OwnPtr<SkCanvas> canvas; |
101 | 108 |
102 if (renderingMode == Accelerated) | 109 if (renderingMode == Accelerated) |
103 canvas = adoptPtr(createAcceleratedCanvas(size, &m_data)); | 110 canvas = adoptPtr(createAcceleratedCanvas(size, &m_data)); |
| 111 else if (renderingMode == UnacceleratedNonPlatformBuffer) |
| 112 canvas = adoptPtr(createNonPlatformCanvas(size)); |
104 | 113 |
105 if (!canvas) | 114 if (!canvas) |
106 canvas = adoptPtr(skia::TryCreateBitmapCanvas(size.width(), size.height(
), false)); | 115 canvas = adoptPtr(skia::TryCreateBitmapCanvas(size.width(), size.height(
), false)); |
107 | 116 |
108 if (!canvas) { | 117 if (!canvas) { |
109 success = false; | 118 success = false; |
110 return; | 119 return; |
111 } | 120 } |
112 | 121 |
113 m_data.m_canvas = canvas.release(); | 122 m_data.m_canvas = canvas.release(); |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 | 421 |
413 Vector<char> encodedImage, base64Data; | 422 Vector<char> encodedImage, base64Data; |
414 if (!encodeImage(imageData, mimeType, quality, &encodedImage)) | 423 if (!encodeImage(imageData, mimeType, quality, &encodedImage)) |
415 return "data:,"; | 424 return "data:,"; |
416 | 425 |
417 base64Encode(encodedImage, base64Data); | 426 base64Encode(encodedImage, base64Data); |
418 return "data:" + mimeType + ";base64," + base64Data; | 427 return "data:" + mimeType + ";base64," + base64Data; |
419 } | 428 } |
420 | 429 |
421 } // namespace WebCore | 430 } // namespace WebCore |
OLD | NEW |