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 <functional> | 8 #include <functional> |
9 #include "gm.h" | 9 #include "gm.h" |
10 #include "SkData.h" | 10 #include "SkData.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 // since we draw into this directly, we need to start fresh | 170 // since we draw into this directly, we need to start fresh |
171 sk_bzero(fBuffer, fBufferSize); | 171 sk_bzero(fBuffer, fBufferSize); |
172 | 172 |
173 SkImageInfo info = SkImageInfo::MakeN32Premul(W, H); | 173 SkImageInfo info = SkImageInfo::MakeN32Premul(W, H); |
174 SkAutoTUnref<SkSurface> surf0(SkSurface::NewRasterDirect(info, fBuffer,
RB)); | 174 SkAutoTUnref<SkSurface> surf0(SkSurface::NewRasterDirect(info, fBuffer,
RB)); |
175 SkAutoTUnref<SkSurface> surf1(SkSurface::NewRaster(info)); | 175 SkAutoTUnref<SkSurface> surf1(SkSurface::NewRaster(info)); |
176 SkAutoTUnref<SkSurface> surf2; // gpu | 176 SkAutoTUnref<SkSurface> surf2; // gpu |
177 | 177 |
178 #if SK_SUPPORT_GPU | 178 #if SK_SUPPORT_GPU |
179 surf2.reset(SkSurface::NewRenderTarget(canvas->getGrContext(), | 179 surf2.reset(SkSurface::NewRenderTarget(canvas->getGrContext(), |
180 SkSurface::kNo_Budgeted, info)); | 180 SkBudgeted::kNo, info)); |
181 #endif | 181 #endif |
182 | 182 |
183 test_surface(canvas, surf0, true); | 183 test_surface(canvas, surf0, true); |
184 canvas->translate(80, 0); | 184 canvas->translate(80, 0); |
185 test_surface(canvas, surf1, true); | 185 test_surface(canvas, surf1, true); |
186 if (surf2) { | 186 if (surf2) { |
187 canvas->translate(80, 0); | 187 canvas->translate(80, 0); |
188 test_surface(canvas, surf2, true); | 188 test_surface(canvas, surf2, true); |
189 } | 189 } |
190 } | 190 } |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 } | 255 } |
256 | 256 |
257 static SkImage* make_codec(const SkImageInfo& info, GrContext*, void (*draw)(SkC
anvas*)) { | 257 static SkImage* make_codec(const SkImageInfo& info, GrContext*, void (*draw)(SkC
anvas*)) { |
258 SkAutoTUnref<SkImage> image(make_raster(info, nullptr, draw)); | 258 SkAutoTUnref<SkImage> image(make_raster(info, nullptr, draw)); |
259 SkAutoTUnref<SkData> data(image->encode()); | 259 SkAutoTUnref<SkData> data(image->encode()); |
260 return SkImage::NewFromEncoded(data); | 260 return SkImage::NewFromEncoded(data); |
261 } | 261 } |
262 | 262 |
263 static SkImage* make_gpu(const SkImageInfo& info, GrContext* ctx, void (*draw)(S
kCanvas*)) { | 263 static SkImage* make_gpu(const SkImageInfo& info, GrContext* ctx, void (*draw)(S
kCanvas*)) { |
264 if (!ctx) { return nullptr; } | 264 if (!ctx) { return nullptr; } |
265 SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTarget(ctx, SkSurface::k
No_Budgeted, info)); | 265 SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTarget(ctx, SkBudgeted::
kNo, info)); |
266 draw(surface->getCanvas()); | 266 draw(surface->getCanvas()); |
267 return surface->newImageSnapshot(); | 267 return surface->newImageSnapshot(); |
268 } | 268 } |
269 | 269 |
270 typedef SkImage* (*ImageMakerProc)(const SkImageInfo&, GrContext*, void (*)(SkCa
nvas*)); | 270 typedef SkImage* (*ImageMakerProc)(const SkImageInfo&, GrContext*, void (*)(SkCa
nvas*)); |
271 | 271 |
272 class ScalePixelsGM : public skiagm::GM { | 272 class ScalePixelsGM : public skiagm::GM { |
273 public: | 273 public: |
274 ScalePixelsGM() {} | 274 ScalePixelsGM() {} |
275 | 275 |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
480 [render_image] { | 480 [render_image] { |
481 SkPictureRecorder recorder; | 481 SkPictureRecorder recorder; |
482 SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(kSize), SkI
ntToScalar(kSize)); | 482 SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(kSize), SkI
ntToScalar(kSize)); |
483 render_image(canvas); | 483 render_image(canvas); |
484 SkAutoTUnref<SkPicture> picture(recorder.endRecording()); | 484 SkAutoTUnref<SkPicture> picture(recorder.endRecording()); |
485 return SkImage::NewFromPicture(picture, SkISize::Make(kSize, kSize),
nullptr, nullptr); | 485 return SkImage::NewFromPicture(picture, SkISize::Make(kSize, kSize),
nullptr, nullptr); |
486 }, | 486 }, |
487 // Create a texture image | 487 // Create a texture image |
488 [context, render_image]() -> SkImage* { | 488 [context, render_image]() -> SkImage* { |
489 SkAutoTUnref<SkSurface> surface( | 489 SkAutoTUnref<SkSurface> surface( |
490 SkSurface::NewRenderTarget(context, SkSurface::kYes_Budgeted, | 490 SkSurface::NewRenderTarget(context, SkBudgeted::kYes, |
491 SkImageInfo::MakeN32Premul(kSize, kSi
ze))); | 491 SkImageInfo::MakeN32Premul(kSize, kSi
ze))); |
492 if (!surface) { | 492 if (!surface) { |
493 return nullptr; | 493 return nullptr; |
494 } | 494 } |
495 render_image(surface->getCanvas()); | 495 render_image(surface->getCanvas()); |
496 return surface->newImageSnapshot(); | 496 return surface->newImageSnapshot(); |
497 } | 497 } |
498 }; | 498 }; |
499 | 499 |
500 static const SkScalar kPad = 5.f; | 500 static const SkScalar kPad = 5.f; |
501 canvas->translate(kPad, kPad); | 501 canvas->translate(kPad, kPad); |
502 for (auto factory : imageFactories) { | 502 for (auto factory : imageFactories) { |
503 SkAutoTUnref<SkImage> image(factory()); | 503 SkAutoTUnref<SkImage> image(factory()); |
504 if (!image) { | 504 if (!image) { |
505 continue; | 505 continue; |
506 } | 506 } |
507 if (context) { | 507 if (context) { |
508 SkAutoTUnref<SkImage> texImage(image->newTextureImage(context)); | 508 SkAutoTUnref<SkImage> texImage(image->newTextureImage(context)); |
509 if (texImage) { | 509 if (texImage) { |
510 canvas->drawImage(texImage, 0, 0); | 510 canvas->drawImage(texImage, 0, 0); |
511 } | 511 } |
512 } | 512 } |
513 canvas->translate(image->width() + kPad, 0); | 513 canvas->translate(image->width() + kPad, 0); |
514 } | 514 } |
515 } | 515 } |
OLD | NEW |