1 /* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "gm.h" 9 10 #include "Resources.h" 11 #include "SkCanvas.h" 12 #include "SkOSFile.h" 13 14 namespace skiagm { 15 16 /** 17 * Test copying an image from 8888 to 4444. 18 */ 19 class CopyTo4444GM : public GM { 20 public: CopyTo4444GM()21 CopyTo4444GM() {} 22 23 protected: onShortName()24 virtual SkString onShortName() { 25 return SkString("copyTo4444"); 26 } 27 onISize()28 virtual SkISize onISize() { 29 return SkISize::Make(1024, 512); 30 } 31 onDraw(SkCanvas * canvas)32 virtual void onDraw(SkCanvas* canvas) { 33 SkBitmap bm, bm4444; 34 if (!GetResourceAsBitmap("mandrill_512.png", &bm)) { 35 SkDebugf("Could not decode the file. Did you forget to set the " 36 "resourcePath?\n"); 37 return; 38 } 39 canvas->drawBitmap(bm, 0, 0); 40 SkAssertResult(bm.copyTo(&bm4444, kARGB_4444_SkColorType)); 41 canvas->drawBitmap(bm4444, SkIntToScalar(bm.width()), 0); 42 } 43 44 private: 45 typedef GM INHERITED; 46 }; 47 48 ////////////////////////////////////////////////////////////////////////////// 49 MyFactory(void *)50static GM* MyFactory(void*) { return new CopyTo4444GM; } 51 static GMRegistry reg(MyFactory); 52 53 } 54