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()); 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); }