void onDrawContent(SkCanvas* canvas) override { fFB.drawBG(canvas); if (fFB.getTriangle()) { fFB.drawTriangle(canvas, fPts); } else if (fIsRect) { fFB.drawRect(canvas, fPts); } else { fFB.drawLine(canvas, fPts); } fFB.drawFG(canvas); { SkString str; str.printf("%s %s %s %s", fFB.getAA() ? "AA" : "BW", FatBits::kHair_Style == fFB.getStyle() ? "Hair" : "Stroke", fFB.getUseGPU() ? "GPU" : "CPU", fFB.getUseClip() ? "clip" : "noclip"); SkPaint paint; paint.setAntiAlias(true); paint.setTextSize(16); paint.setColor(SK_ColorBLUE); canvas->drawText(str.c_str(), str.size(), 10, 16, paint); } }
bool onQuery(SkEvent* evt) override { if (SampleCode::TitleQ(*evt)) { SampleCode::TitleR(evt, "FatBits"); return true; } SkUnichar uni; if (SampleCode::CharQ(*evt, &uni)) { switch (uni) { case 'c': fFB.setUseClip(!fFB.getUseClip()); return true; case 'r': fIsRect = !fIsRect; return true; case 'o': fFB.toggleRectAsOval(); return true; case 'x': fFB.setGrid(!fFB.getGrid()); return true; case 's': if (FatBits::kStroke_Style == fFB.getStyle()) { this->setStyle(FatBits::kHair_Style); } else { this->setStyle(FatBits::kStroke_Style); } return true; case 'k': { const SkPaint::Cap caps[] = { SkPaint::kButt_Cap, SkPaint::kRound_Cap, SkPaint::kSquare_Cap, }; fFB.fStrokeCap = caps[(fFB.fStrokeCap + 1) % 3]; return true; } break; case 'a': fFB.setAA(!fFB.getAA()); return true; case 'w': fFB.setShowSkeleton(!fFB.getShowSkeleton()); return true; case 'g': fFB.togglePixelColors(); return true; case 't': fFB.setTriangle(!fFB.getTriangle()); return true; case '-': fFB.fStrokeWidth -= 0.125f; return true; case '=': fFB.fStrokeWidth += 0.125f; return true; } } return this->INHERITED::onQuery(evt); }
bool onQuery(SkEvent* evt) override { if (SampleCode::TitleQ(*evt)) { SampleCode::TitleR(evt, "FatBits"); return true; } SkUnichar uni; if (SampleCode::CharQ(*evt, &uni)) { switch (uni) { case 'c': fFB.setUseClip(!fFB.getUseClip()); this->inval(NULL); return true; case 'r': fIsRect = !fIsRect; this->inval(NULL); return true; case 'o': fFB.toggleRectAsOval(); this->inval(NULL); return true; case 'x': fFB.setGrid(!fFB.getGrid()); this->inval(NULL); return true; case 's': if (FatBits::kStroke_Style == fFB.getStyle()) { this->setStyle(FatBits::kHair_Style); } else { this->setStyle(FatBits::kStroke_Style); } return true; case 'a': fFB.setAA(!fFB.getAA()); this->inval(NULL); return true; case 'w': fFB.setShowSkeleton(!fFB.getShowSkeleton()); this->inval(NULL); return true; case 'g': fFB.setUseGPU(!fFB.getUseGPU()); this->inval(NULL); return true; case 't': fFB.setTriangle(!fFB.getTriangle()); this->inval(NULL); return true; } } return this->INHERITED::onQuery(evt); }
void onDrawContent(SkCanvas* canvas) override { fFB.drawBG(canvas); if (fFB.getTriangle()) { fFB.drawTriangle(canvas, fPts); } else if (fIsRect) { fFB.drawRect(canvas, fPts); } else { fFB.drawLine(canvas, fPts); } fFB.drawFG(canvas); { SkString str; str.printf("%s %s %s", fFB.getAA() ? "AA" : "BW", FatBits::kHair_Style == fFB.getStyle() ? "Hair" : "Stroke", fFB.getUseClip() ? "clip" : "noclip"); SkPaint paint; paint.setColor(SK_ColorBLUE); SkFont font(nullptr, 16); canvas->drawString(str, 10, 16, font, paint); } }