void onDraw(SkCanvas* canvas) override { drawGrad(canvas); const SkColor fg[] = { 0xFFFFFFFF, 0xFFFFFF00, 0xFFFF00FF, 0xFF00FFFF, 0xFFFF0000, 0xFF00FF00, 0xFF0000FF, 0xFF000000, }; const char* text = "Hamburgefons"; size_t len = strlen(text); SkPaint paint; setFont(&paint, "Times"); paint.setTextSize(SkIntToScalar(16)); paint.setAntiAlias(true); paint.setLCDRenderText(true); SkScalar x = SkIntToScalar(10); for (size_t i = 0; i < SK_ARRAY_COUNT(fg); ++i) { paint.setColor(fg[i]); SkScalar y = SkIntToScalar(40); SkScalar stopy = SkIntToScalar(HEIGHT); while (y < stopy) { canvas->drawText(text, len, x, y, paint); y += paint.getTextSize() * 2; } x += SkIntToScalar(1024) / SK_ARRAY_COUNT(fg); } }
void onDraw(SkCanvas* canvas) override { drawGrad(canvas); const SkColor fg[] = { 0xFFFFFFFF, 0xFFFFFF00, 0xFFFF00FF, 0xFF00FFFF, 0xFFFF0000, 0xFF00FF00, 0xFF0000FF, 0xFF000000, }; const char* text = "Hamburgefons"; SkPaint paint; SkFont font(nullptr, 16); font.setEdging(SkFont::Edging::kSubpixelAntiAlias); SkScalar x = SkIntToScalar(10); for (size_t i = 0; i < SK_ARRAY_COUNT(fg); ++i) { paint.setColor(fg[i]); SkScalar y = SkIntToScalar(40); SkScalar stopy = SkIntToScalar(HEIGHT); while (y < stopy) { canvas->drawString(text, x, y, font, paint); y += font.getSize() * 2; } x += SkIntToScalar(1024) / SK_ARRAY_COUNT(fg); } }
virtual void onDraw(SkCanvas* canvas) { #ifdef SK_BUILD_FOR_MAC CGContextRef cg = 0; { SkImageInfo info; size_t rowBytes; const void* addr = canvas->peekPixels(&info, &rowBytes); if (addr) { cg = makeCG(info, addr, rowBytes); } } #endif drawGrad(canvas); const SkColor fg[] = { 0xFFFFFFFF, 0xFFFFFF00, 0xFFFF00FF, 0xFF00FFFF, 0xFFFF0000, 0xFF00FF00, 0xFF0000FF, 0xFF000000, }; const char* text = "Hamburgefons"; size_t len = strlen(text); SkPaint paint; setFont(&paint, "Times"); paint.setTextSize(SkIntToScalar(16)); paint.setAntiAlias(true); paint.setLCDRenderText(true); SkScalar x = SkIntToScalar(10); for (size_t i = 0; i < SK_ARRAY_COUNT(fg); ++i) { paint.setColor(fg[i]); SkScalar y = SkIntToScalar(40); SkScalar stopy = SkIntToScalar(HEIGHT); while (y < stopy) { if (true) { canvas->drawText(text, len, x, y, paint); } #ifdef SK_BUILD_FOR_MAC else { cgDrawText(cg, text, len, SkScalarToFloat(x), static_cast<float>(HEIGHT) - SkScalarToFloat(y), paint); } #endif y += paint.getTextSize() * 2; } x += SkIntToScalar(1024) / SK_ARRAY_COUNT(fg); } #ifdef SK_BUILD_FOR_MAC CGContextRelease(cg); #endif }
virtual void onDraw(SkCanvas* canvas) { if (false) { SkPaint paint; paint.setColor(SK_ColorBLUE); canvas->drawRect( SkRect::MakeWH(SkIntToScalar(this->getISize().fWidth), SkIntToScalar(this->getISize().fHeight)), paint); } SkPaint paint; const int R0 = 20; const int R1 = 40; const SkScalar DX = SkIntToScalar(250); const SkScalar DY = SkIntToScalar(130); canvas->translate(SkIntToScalar(60), SkIntToScalar(70)); static const int gData[] = { 0, 0, R0, 0, 0, R1, 0, 0, R0, 20, 0, R1, 0, 0, R0, 25, 0, R1, 0, 0, R0, 100, 0, R1, 0, 0, R0, 25, 0, R0, 0, 0, R0, 100, 0, R0, }; int count = SK_ARRAY_COUNT(gData) / 6; for (int i = 0; i < count; ++i) { SkScalar data[6]; intToScalars(data, &gData[i * 6], 6); int n = canvas->save(); drawGrad(canvas, &data[0], &data[3]); canvas->translate(DX, 0); drawGrad(canvas, &data[3], &data[0]); canvas->restoreToCount(n); canvas->translate(0, DY); } }