1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2011 Google Inc. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci#include "include/core/SkBitmap.h" 8cb93a386Sopenharmony_ci#include "include/core/SkCanvas.h" 9cb93a386Sopenharmony_ci#include "include/core/SkPath.h" 10cb93a386Sopenharmony_ci#include "include/core/SkRegion.h" 11cb93a386Sopenharmony_ci#include "include/core/SkShader.h" 12cb93a386Sopenharmony_ci#include "include/effects/SkCornerPathEffect.h" 13cb93a386Sopenharmony_ci#include "include/effects/SkGradientShader.h" 14cb93a386Sopenharmony_ci#include "samplecode/Sample.h" 15cb93a386Sopenharmony_ci#include "src/utils/SkUTF.h" 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_cistatic void create_bitmap(SkBitmap* bitmap) { 18cb93a386Sopenharmony_ci const int W = 100; 19cb93a386Sopenharmony_ci const int H = 100; 20cb93a386Sopenharmony_ci bitmap->allocN32Pixels(W, H); 21cb93a386Sopenharmony_ci 22cb93a386Sopenharmony_ci SkCanvas canvas(*bitmap); 23cb93a386Sopenharmony_ci canvas.drawColor(SK_ColorRED); 24cb93a386Sopenharmony_ci SkPaint paint; 25cb93a386Sopenharmony_ci paint.setColor(SK_ColorBLUE); 26cb93a386Sopenharmony_ci canvas.drawCircle(SkIntToScalar(W)/2, SkIntToScalar(H)/2, SkIntToScalar(W)/2, paint); 27cb93a386Sopenharmony_ci} 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_ciclass WritePixelsView : public Sample { 30cb93a386Sopenharmony_ci SkPath fPath; 31cb93a386Sopenharmony_cipublic: 32cb93a386Sopenharmony_ci WritePixelsView() {} 33cb93a386Sopenharmony_ci 34cb93a386Sopenharmony_ciprotected: 35cb93a386Sopenharmony_ci SkString name() override { return SkString("WritePixels"); } 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci void onDrawContent(SkCanvas* canvas) override { 38cb93a386Sopenharmony_ci SkBitmap bitmap; 39cb93a386Sopenharmony_ci create_bitmap(&bitmap); 40cb93a386Sopenharmony_ci int x = bitmap.width() / 2; 41cb93a386Sopenharmony_ci int y = bitmap.height() / 2; 42cb93a386Sopenharmony_ci 43cb93a386Sopenharmony_ci SkBitmap subset; 44cb93a386Sopenharmony_ci bitmap.extractSubset(&subset, SkIRect::MakeXYWH(x, y, x, y)); 45cb93a386Sopenharmony_ci 46cb93a386Sopenharmony_ci canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); 47cb93a386Sopenharmony_ci 48cb93a386Sopenharmony_ci canvas->writePixels(bitmap, 0, 0); 49cb93a386Sopenharmony_ci canvas->writePixels(subset, 0, 0); 50cb93a386Sopenharmony_ci } 51cb93a386Sopenharmony_ci 52cb93a386Sopenharmony_ciprivate: 53cb93a386Sopenharmony_ci using INHERITED = Sample; 54cb93a386Sopenharmony_ci}; 55cb93a386Sopenharmony_ci 56cb93a386Sopenharmony_ci////////////////////////////////////////////////////////////////////////////// 57cb93a386Sopenharmony_ci 58cb93a386Sopenharmony_ciDEF_SAMPLE( return new WritePixelsView(); ) 59