18dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com/* 28dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com * Copyright 2013 Google Inc. 38dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com * 48dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com * Use of this source code is governed by a BSD-style license that can be 58dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com * found in the LICENSE file. 68dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com */ 78dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 88dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com#include "gm.h" 9bcbc1788b478b1e54079318ad073e8490aa66faetfarina 10bcbc1788b478b1e54079318ad073e8490aa66faetfarina#include "Resources.h" 118dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com#include "SkCanvas.h" 128dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com#include "SkOSFile.h" 138dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 148dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.comnamespace skiagm { 158dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 168dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com/** 178dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com * Test copying an image from 8888 to 4444. 188dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com */ 198dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.comclass CopyTo4444GM : public GM { 208dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.compublic: 218dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com CopyTo4444GM() {} 228dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 238dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.comprotected: 248dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com virtual SkString onShortName() { 258dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com return SkString("copyTo4444"); 268dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com } 278dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 288dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com virtual SkISize onISize() { 29f539318f0d3dba743ec1886d5d9df0fb1be628a1tfarina return SkISize::Make(1024, 512); 308dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com } 318dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 328dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com virtual void onDraw(SkCanvas* canvas) { 338dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com SkBitmap bm, bm4444; 34e820dfebbc652bfc4a653f07a29f5fe371eb019bmsarett if (!GetResourceAsBitmap("mandrill_512.png", &bm)) { 358dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com SkDebugf("Could not decode the file. Did you forget to set the " 368dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com "resourcePath?\n"); 378dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com return; 388dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com } 398dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com canvas->drawBitmap(bm, 0, 0); 408a2ad3cae710f05cca57e48dd1732d575dba2dc7commit-bot@chromium.org SkAssertResult(bm.copyTo(&bm4444, kARGB_4444_SkColorType)); 417bb36ab259cd856ec8f03d2d377a34899c0ae51fscroggo@google.com canvas->drawBitmap(bm4444, SkIntToScalar(bm.width()), 0); 428dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com } 438dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 448dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.comprivate: 458dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com typedef GM INHERITED; 468dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com}; 478dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 488dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com////////////////////////////////////////////////////////////////////////////// 498dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 508dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.comstatic GM* MyFactory(void*) { return new CopyTo4444GM; } 518dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.comstatic GMRegistry reg(MyFactory); 528dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com 538dc8bc55479eb7895b3f0cf4fb42d9d917b21ee1scroggo@google.com} 54