| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 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 "Request.h" | 8 #include "Request.h" |
| 9 | 9 |
| 10 #include "SkPictureRecorder.h" | 10 #include "SkPictureRecorder.h" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 | 52 |
| 53 SkData* Request::writeCanvasToPng(SkCanvas* canvas) { | 53 SkData* Request::writeCanvasToPng(SkCanvas* canvas) { |
| 54 // capture pixels | 54 // capture pixels |
| 55 SkAutoTDelete<SkBitmap> bmp(this->getBitmapFromCanvas(canvas)); | 55 SkAutoTDelete<SkBitmap> bmp(this->getBitmapFromCanvas(canvas)); |
| 56 SkASSERT(bmp); | 56 SkASSERT(bmp); |
| 57 | 57 |
| 58 // Convert to format suitable for PNG output | 58 // Convert to format suitable for PNG output |
| 59 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bmp); | 59 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bmp); |
| 60 SkASSERT(encodedBitmap.get()); | 60 SkASSERT(encodedBitmap.get()); |
| 61 | 61 |
| 62 // write to png | 62 // write to an opaque png (black background) |
| 63 SkDynamicMemoryWStream buffer; | 63 SkDynamicMemoryWStream buffer; |
| 64 SkDrawCommand::WritePNG((const png_bytep) encodedBitmap->writable_data(), | 64 SkDrawCommand::WritePNG((const png_bytep) encodedBitmap->bytes(), bmp->width
(), bmp->height(), |
| 65 bmp->width(), bmp->height(), | 65 buffer, true); |
| 66 buffer); | |
| 67 return buffer.copyToData(); | 66 return buffer.copyToData(); |
| 68 } | 67 } |
| 69 | 68 |
| 70 SkCanvas* Request::getCanvas() { | 69 SkCanvas* Request::getCanvas() { |
| 71 #if SK_SUPPORT_GPU | 70 #if SK_SUPPORT_GPU |
| 72 GrContextFactory* factory = fContextFactory; | 71 GrContextFactory* factory = fContextFactory; |
| 73 GLTestContext* gl = factory->getContextInfo(GrContextFactory::kNativeGL_Cont
extType, | 72 GLTestContext* gl = factory->getContextInfo(GrContextFactory::kNativeGL_Cont
extType, |
| 74 GrContextFactory::kNone_ContextO
ptions).glContext(); | 73 GrContextFactory::kNone_ContextO
ptions).glContext(); |
| 75 if (!gl) { | 74 if (!gl) { |
| 76 gl = factory->getContextInfo(GrContextFactory::kMESA_ContextType, | 75 gl = factory->getContextInfo(GrContextFactory::kMESA_ContextType, |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 SkASSERT(bitmap); | 298 SkASSERT(bitmap); |
| 300 | 299 |
| 301 // Convert to format suitable for inspection | 300 // Convert to format suitable for inspection |
| 302 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bitmap); | 301 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bitmap); |
| 303 SkASSERT(encodedBitmap.get()); | 302 SkASSERT(encodedBitmap.get()); |
| 304 | 303 |
| 305 const uint8_t* start = encodedBitmap->bytes() + ((y * bitmap->width() + x) *
4); | 304 const uint8_t* start = encodedBitmap->bytes() + ((y * bitmap->width() + x) *
4); |
| 306 SkColor result = SkColorSetARGB(start[3], start[0], start[1], start[2]); | 305 SkColor result = SkColorSetARGB(start[3], start[0], start[1], start[2]); |
| 307 return result; | 306 return result; |
| 308 } | 307 } |
| OLD | NEW |