skia2/docs/examples/Matrix_setPolyToPoly.cpp

35 lines
1.4 KiB
C++
Raw Normal View History

#if 0 // Disabled until updated to use current API.
// Copyright 2019 Google LLC.
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#include "tools/fiddle/examples.h"
// HASH=c851d1313e8909aaea4f0591699fdb7b
REG_FIDDLE(Matrix_setPolyToPoly, 256, 256, false, 0) {
void draw(SkCanvas* canvas) {
const SkPoint src[] = { { 0, 0}, {30, 0}, {30, -30}, { 0, -30} };
const SkPoint dst[] = { {50, 0}, {80, -10}, {90, -30}, {60, -40} };
SkPaint blackPaint;
blackPaint.setAntiAlias(true);
blackPaint.setTextSize(42);
SkPaint redPaint = blackPaint;
redPaint.setColor(SK_ColorRED);
for (int count : { 1, 2, 3, 4 } ) {
canvas->translate(35, 55);
for (int index = 0; index < count; ++index) {
canvas->drawCircle(src[index], 3, blackPaint);
canvas->drawCircle(dst[index], 3, blackPaint);
if (index > 0) {
canvas->drawLine(src[index], src[index - 1], blackPaint);
canvas->drawLine(dst[index], dst[index - 1], blackPaint);
}
}
SkMatrix matrix;
matrix.setPolyToPoly(src, dst, count);
canvas->drawString("A", src[0].fX, src[0].fY, redPaint);
SkAutoCanvasRestore acr(canvas, true);
canvas->concat(matrix);
canvas->drawString("A", src[0].fX, src[0].fY, redPaint);
}
}
} // END FIDDLE
#endif // Disabled until updated to use current API.