Chromium Code Reviews| Index: gm/aaclip.cpp |
| diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp |
| index 4f61767223cd223c5185849bd46a61c8a7c727b3..5dc4e2ba0eae9cf4b5b996345800612e124efbb6 100644 |
| --- a/gm/aaclip.cpp |
| +++ b/gm/aaclip.cpp |
| @@ -108,3 +108,79 @@ private: |
| }; |
| DEF_GM( return SkNEW(AAClipGM); ) |
| + |
| +///////////////////////////////////////////////////////////////////////// |
| + |
| +#ifdef SK_BUILD_FOR_MAC |
| + |
| +#include "SkCGUtils.h" |
| +static void test_image(SkCanvas* canvas, const SkImageInfo& info) { |
| + SkBitmap bm; |
| + bm.allocPixels(info); |
| + |
| + SkAutoTUnref<SkCanvas> newc(SkCanvas::NewRasterDirectN32(info.width(), info.height(), |
| + (SkPMColor*)bm.getPixels(), |
| + bm.rowBytes())); |
| + if (info.isOpaque()) { |
| + bm.eraseColor(SK_ColorGREEN); |
| + } else { |
| + bm.eraseColor(0); |
| + } |
| + |
| + SkPaint paint; |
| + paint.setAntiAlias(true); |
| + paint.setColor(SK_ColorRED); |
| + newc->drawCircle(50, 50, 49, paint); |
| + canvas->drawBitmap(bm, 10, 10); |
| + |
| + CGImageRef image = SkCreateCGImageRefWithColorspace(bm, NULL); |
| + |
| + SkBitmap bm2; |
| + SkCreateBitmapFromCGImage(&bm2, image); |
| + CGImageRelease(image); |
| + |
| + canvas->drawBitmap(bm2, 10, 120); |
| +} |
| + |
| +class CGImageGM : public skiagm::GM { |
| +public: |
| + CGImageGM() {} |
| + |
| +protected: |
| + virtual SkString onShortName() SK_OVERRIDE { |
| + return SkString("cgimage"); |
| + } |
| + |
| + virtual SkISize onISize() SK_OVERRIDE { |
| + return SkISize::Make(800, 250); |
| + } |
| + |
| + virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
| + const struct { |
| + SkColorType fCT; |
| + SkAlphaType fAT; |
| + } rec[] = { |
| + { kRGBA_8888_SkColorType, kPremul_SkAlphaType }, |
| + { kRGBA_8888_SkColorType, kUnpremul_SkAlphaType }, |
| + { kRGBA_8888_SkColorType, kOpaque_SkAlphaType }, |
| + { kBGRA_8888_SkColorType, kPremul_SkAlphaType }, |
| + { kBGRA_8888_SkColorType, kUnpremul_SkAlphaType }, |
| + { kBGRA_8888_SkColorType, kOpaque_SkAlphaType }, |
| + }; |
| + |
| + for (size_t i = 0; i < SK_ARRAY_COUNT(rec); ++i) { |
| + SkImageInfo info = SkImageInfo::Make(100, 100, rec[i].fCT, rec[i].fAT); |
| + test_image(canvas, info); |
| + canvas->translate(info.width() + 10, 0); |
| + } |
| + } |
| + |
| + virtual uint32_t onGetFlags() const { return kSkipPipe_Flag; } |
|
scroggo
2014/04/22 14:58:17
SK_OVERRIDE
reed1
2014/04/22 17:51:39
Done.
|
| + |
| +private: |
| + typedef skiagm::GM INHERITED; |
| +}; |
| + |
| +DEF_GM( return SkNEW(CGImageGM); ) |
| + |
| +#endif |