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/SkCanvas.h" 8cb93a386Sopenharmony_ci#include "include/core/SkPaint.h" 9cb93a386Sopenharmony_ci#include "samplecode/Sample.h" 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ciclass StrokeRectSample : public Sample { 12cb93a386Sopenharmony_cipublic: 13cb93a386Sopenharmony_ci StrokeRectSample() {} 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_ciprotected: 16cb93a386Sopenharmony_ci SkString name() override { return SkString("Stroke Rects"); } 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_ci void onDrawContent(SkCanvas* canvas) override { 19cb93a386Sopenharmony_ci SkPaint paint; 20cb93a386Sopenharmony_ci paint.setAntiAlias(true); 21cb93a386Sopenharmony_ci paint.setStyle(SkPaint::kStroke_Style); 22cb93a386Sopenharmony_ci paint.setStrokeWidth(SkIntToScalar(20)); 23cb93a386Sopenharmony_ci 24cb93a386Sopenharmony_ci SkPaint hair; 25cb93a386Sopenharmony_ci hair.setStyle(SkPaint::kStroke_Style); 26cb93a386Sopenharmony_ci hair.setColor(SK_ColorRED); 27cb93a386Sopenharmony_ci 28cb93a386Sopenharmony_ci static const SkISize gSize[] = { 29cb93a386Sopenharmony_ci { 100, 50 }, 30cb93a386Sopenharmony_ci { 100, 0 }, 31cb93a386Sopenharmony_ci { 0, 50 }, 32cb93a386Sopenharmony_ci { 0, 0 } 33cb93a386Sopenharmony_ci }; 34cb93a386Sopenharmony_ci 35cb93a386Sopenharmony_ci static const SkPaint::Join gJoin[] = { 36cb93a386Sopenharmony_ci SkPaint::kMiter_Join, 37cb93a386Sopenharmony_ci SkPaint::kRound_Join, 38cb93a386Sopenharmony_ci SkPaint::kBevel_Join 39cb93a386Sopenharmony_ci }; 40cb93a386Sopenharmony_ci 41cb93a386Sopenharmony_ci canvas->translate(paint.getStrokeWidth(), paint.getStrokeWidth()); 42cb93a386Sopenharmony_ci for (size_t i = 0; i < SK_ARRAY_COUNT(gJoin); ++i) { 43cb93a386Sopenharmony_ci paint.setStrokeJoin(gJoin[i]); 44cb93a386Sopenharmony_ci 45cb93a386Sopenharmony_ci canvas->save(); 46cb93a386Sopenharmony_ci for (size_t j = 0; j < SK_ARRAY_COUNT(gSize); ++j) { 47cb93a386Sopenharmony_ci SkRect r = SkRect::MakeWH(SkIntToScalar(gSize[j].fWidth), 48cb93a386Sopenharmony_ci SkIntToScalar(gSize[j].fHeight)); 49cb93a386Sopenharmony_ci canvas->drawRect(r, paint); 50cb93a386Sopenharmony_ci canvas->drawRect(r, hair); 51cb93a386Sopenharmony_ci canvas->translate(0, SkIntToScalar(100)); 52cb93a386Sopenharmony_ci } 53cb93a386Sopenharmony_ci canvas->restore(); 54cb93a386Sopenharmony_ci canvas->translate(SkIntToScalar(150), 0); 55cb93a386Sopenharmony_ci } 56cb93a386Sopenharmony_ci } 57cb93a386Sopenharmony_ci 58cb93a386Sopenharmony_ciprivate: 59cb93a386Sopenharmony_ci using INHERITED = Sample; 60cb93a386Sopenharmony_ci}; 61cb93a386Sopenharmony_ci 62cb93a386Sopenharmony_ci/////////////////////////////////////////////////////////////////////////////// 63cb93a386Sopenharmony_ci 64cb93a386Sopenharmony_ciDEF_SAMPLE( return new StrokeRectSample(); ) 65