Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(469)

Side by Side Diff: tools/skiaserve/Request.cpp

Issue 2333713002: change SkStreams to work with sk_sp<SkData> instead of SkData* (Closed)
Patch Set: fix xpsdevice Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/skdiff_utils.cpp ('k') | tools/skiaserve/urlhandlers/BreakHandler.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 SkASSERT(bmp); 58 SkASSERT(bmp);
59 59
60 // Convert to format suitable for PNG output 60 // Convert to format suitable for PNG output
61 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bmp); 61 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bmp);
62 SkASSERT(encodedBitmap.get()); 62 SkASSERT(encodedBitmap.get());
63 63
64 // write to an opaque png (black background) 64 // write to an opaque png (black background)
65 SkDynamicMemoryWStream buffer; 65 SkDynamicMemoryWStream buffer;
66 SkDrawCommand::WritePNG((const png_bytep) encodedBitmap->bytes(), bmp->width (), bmp->height(), 66 SkDrawCommand::WritePNG((const png_bytep) encodedBitmap->bytes(), bmp->width (), bmp->height(),
67 buffer, true); 67 buffer, true);
68 return sk_sp<SkData>(buffer.copyToData()); 68 return buffer.detachAsData();
69 } 69 }
70 70
71 SkCanvas* Request::getCanvas() { 71 SkCanvas* Request::getCanvas() {
72 #if SK_SUPPORT_GPU 72 #if SK_SUPPORT_GPU
73 GrContextFactory* factory = fContextFactory; 73 GrContextFactory* factory = fContextFactory;
74 GLTestContext* gl = factory->getContextInfo(GrContextFactory::kNativeGL_Cont extType, 74 GLTestContext* gl = factory->getContextInfo(GrContextFactory::kNativeGL_Cont extType,
75 GrContextFactory::kNone_ContextO ptions).glContext(); 75 GrContextFactory::kNone_ContextO ptions).glContext();
76 if (!gl) { 76 if (!gl) {
77 gl = factory->getContextInfo(GrContextFactory::kMESA_ContextType, 77 gl = factory->getContextInfo(GrContextFactory::kMESA_ContextType,
78 GrContextFactory::kNone_ContextOptions).glC ontext(); 78 GrContextFactory::kNone_ContextOptions).glC ontext();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 110
111 fDebugCanvas->draw(canvas); 111 fDebugCanvas->draw(canvas);
112 112
113 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture()); 113 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture());
114 114
115 SkDynamicMemoryWStream outStream; 115 SkDynamicMemoryWStream outStream;
116 116
117 SkAutoTUnref<SkPixelSerializer> serializer(SkImageEncoder::CreatePixelSerial izer()); 117 SkAutoTUnref<SkPixelSerializer> serializer(SkImageEncoder::CreatePixelSerial izer());
118 picture->serialize(&outStream, serializer); 118 picture->serialize(&outStream, serializer);
119 119
120 return sk_sp<SkData>(outStream.copyToData()); 120 return outStream.detachAsData();
121 } 121 }
122 122
123 GrContext* Request::getContext() { 123 GrContext* Request::getContext() {
124 #if SK_SUPPORT_GPU 124 #if SK_SUPPORT_GPU
125 GrContext* result = fContextFactory->get(GrContextFactory::kNativeGL_Context Type, 125 GrContext* result = fContextFactory->get(GrContextFactory::kNativeGL_Context Type,
126 GrContextFactory::kNone_ContextOpti ons); 126 GrContextFactory::kNone_ContextOpti ons);
127 if (!result) { 127 if (!result) {
128 result = fContextFactory->get(GrContextFactory::kMESA_ContextType, 128 result = fContextFactory->get(GrContextFactory::kMESA_ContextType,
129 GrContextFactory::kNone_ContextOptions); 129 GrContextFactory::kNone_ContextOptions);
130 } 130 }
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 250
251 sk_sp<SkData> Request::getJsonOps(int n) { 251 sk_sp<SkData> Request::getJsonOps(int n) {
252 SkCanvas* canvas = this->getCanvas(); 252 SkCanvas* canvas = this->getCanvas();
253 Json::Value root = fDebugCanvas->toJSON(fUrlDataManager, n, canvas); 253 Json::Value root = fDebugCanvas->toJSON(fUrlDataManager, n, canvas);
254 root["mode"] = Json::Value(fGPUEnabled ? "gpu" : "cpu"); 254 root["mode"] = Json::Value(fGPUEnabled ? "gpu" : "cpu");
255 root["drawGpuBatchBounds"] = Json::Value(fDebugCanvas->getDrawGpuBatchBounds ()); 255 root["drawGpuBatchBounds"] = Json::Value(fDebugCanvas->getDrawGpuBatchBounds ());
256 root["colorMode"] = Json::Value(fColorMode); 256 root["colorMode"] = Json::Value(fColorMode);
257 SkDynamicMemoryWStream stream; 257 SkDynamicMemoryWStream stream;
258 stream.writeText(Json::FastWriter().write(root).c_str()); 258 stream.writeText(Json::FastWriter().write(root).c_str());
259 259
260 return sk_sp<SkData>(stream.copyToData()); 260 return stream.detachAsData();
261 } 261 }
262 262
263 sk_sp<SkData> Request::getJsonBatchList(int n) { 263 sk_sp<SkData> Request::getJsonBatchList(int n) {
264 SkCanvas* canvas = this->getCanvas(); 264 SkCanvas* canvas = this->getCanvas();
265 SkASSERT(fGPUEnabled); 265 SkASSERT(fGPUEnabled);
266 266
267 Json::Value result = fDebugCanvas->toJSONBatchList(n, canvas); 267 Json::Value result = fDebugCanvas->toJSONBatchList(n, canvas);
268 268
269 SkDynamicMemoryWStream stream; 269 SkDynamicMemoryWStream stream;
270 stream.writeText(Json::FastWriter().write(result).c_str()); 270 stream.writeText(Json::FastWriter().write(result).c_str());
271 271
272 return sk_sp<SkData>(stream.copyToData()); 272 return stream.detachAsData();
273 } 273 }
274 274
275 sk_sp<SkData> Request::getJsonInfo(int n) { 275 sk_sp<SkData> Request::getJsonInfo(int n) {
276 // drawTo 276 // drawTo
277 SkAutoTUnref<SkSurface> surface(this->createCPUSurface()); 277 SkAutoTUnref<SkSurface> surface(this->createCPUSurface());
278 SkCanvas* canvas = surface->getCanvas(); 278 SkCanvas* canvas = surface->getCanvas();
279 279
280 // TODO this is really slow and we should cache the matrix and clip 280 // TODO this is really slow and we should cache the matrix and clip
281 fDebugCanvas->drawTo(canvas, n); 281 fDebugCanvas->drawTo(canvas, n);
282 282
(...skipping 11 matching lines...) Expand all
294 } 294 }
295 295
296 SkColor Request::getPixel(int x, int y) { 296 SkColor Request::getPixel(int x, int y) {
297 SkCanvas* canvas = this->getCanvas(); 297 SkCanvas* canvas = this->getCanvas();
298 canvas->flush(); 298 canvas->flush();
299 SkAutoTDelete<SkBitmap> bitmap(this->getBitmapFromCanvas(canvas)); 299 SkAutoTDelete<SkBitmap> bitmap(this->getBitmapFromCanvas(canvas));
300 SkASSERT(bitmap); 300 SkASSERT(bitmap);
301 301
302 // Convert to format suitable for inspection 302 // Convert to format suitable for inspection
303 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bitmap); 303 sk_sp<SkData> encodedBitmap = sk_tools::encode_bitmap_for_png(*bitmap);
304 SkASSERT(encodedBitmap.get()); 304 SkASSERT(encodedBitmap);
305 305
306 const uint8_t* start = encodedBitmap->bytes() + ((y * bitmap->width() + x) * 4); 306 const uint8_t* start = encodedBitmap->bytes() + ((y * bitmap->width() + x) * 4);
307 SkColor result = SkColorSetARGB(start[3], start[0], start[1], start[2]); 307 SkColor result = SkColorSetARGB(start[3], start[0], start[1], start[2]);
308 return result; 308 return result;
309 } 309 }
OLDNEW
« no previous file with comments | « tools/skdiff_utils.cpp ('k') | tools/skiaserve/urlhandlers/BreakHandler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698