728x90
// 체커보드 패턴을 그리는 함수
void checkerboard(SkCanvas* canvas) {
SkColor color1 = SK_ColorLTGRAY; // 배경 색상 (밝은 회색)
SkColor color2 = SK_ColorCYAN; // 패턴 색상 (청록색)
SkScalar scale = 10.0f; // 타일 하나의 기본 크기
SkPath path;
path.addRect(0, 0, scale, scale); // 패턴으로 사용할 사각형 경로 추가 (10x10)
// 매트릭스를 생성해 사각형 패턴을 복제할 방법 정의
SkMatrix matrix = SkMatrix::Scale(2 * scale, scale); // 가로로 2배, 세로는 scale만큼 간격
matrix.preSkew(0.5f, 0); // X축으로 0.5 만큼 기울이기 (비스듬한 체커보드 느낌)
SkPaint paint;
paint.setPathEffect(SkPath2DPathEffect::Make(matrix, path));
// 위에서 만든 경로와 매트릭스를 이용해 반복되는 패턴 생성
paint.setAntiAlias(true); // 경계선 부드럽게
paint.setColor(color2); // 패턴 색상 설정
canvas->clear(color1); // 캔버스를 배경 색상으로 초기화
SkRect bounds = SkRect::MakeWH(256, 256); // 256x256 영역 정의
bounds.outset(scale, scale); // 테두리 바깥으로 scale만큼 확장
canvas->drawRect(bounds, paint); // 정의된 영역에 패턴 그리기
}
// 메인 그리기 함수
void draw(SkCanvas* canvas) {
canvas->drawColor(SK_ColorWHITE); // 먼저 흰색으로 캔버스를 지우고
checkerboard(canvas); // 체커보드 패턴을 그린다
}
728x90
'SKIA' 카테고리의 다른 글
2.7 SkSurface (0) | 2025.05.19 |
---|---|
2.5 Canvas read&write Pixels, saveLayer (0) | 2025.05.09 |
2.4 Canvas drawImage (0) | 2025.05.05 |
2.3 Canvas Drawable, DRRect (0) | 2025.05.05 |
2.1.1 Canvas Clip Rect & Region (0) | 2025.05.02 |