diff options
Diffstat (limited to 'chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp')
-rw-r--r-- | chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp b/chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp index 66b73ba37c1..0598b1f026c 100644 --- a/chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp +++ b/chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp @@ -22,9 +22,9 @@ // This sample enables wireframe and visualizes the triangulation generated by // GrTessellateWedgeShader. -class TessellatedWedgeView : public Sample { +class TessellatedWedge : public Sample { public: - TessellatedWedgeView() { + TessellatedWedge() { #if 0 fPath.moveTo(1, 0); int numSides = 32 * 3; @@ -32,8 +32,8 @@ public: float theta = 2*3.1415926535897932384626433832785 * i / numSides; fPath.lineTo(std::cos(theta), std::sin(theta)); } - fPath.transform(SkMatrix::MakeScale(200, 200)); - fPath.transform(SkMatrix::MakeTrans(300, 300)); + fPath.transform(SkMatrix::Scale(200, 200)); + fPath.transform(SkMatrix::Translate(300, 300)); #else fPath.moveTo(100, 200); fPath.cubicTo(100, 100, 400, 100, 400, 200); @@ -51,12 +51,12 @@ private: SkMatrix fLastViewMatrix = SkMatrix::I(); SkPath fPath; - GrTessellatePathOp::Flags fFlags = GrTessellatePathOp::Flags::kWireframe; + GrTessellationPathRenderer::OpFlags fOpFlags = GrTessellationPathRenderer::OpFlags::kWireframe; class Click; }; -void TessellatedWedgeView::onDrawContent(SkCanvas* canvas) { +void TessellatedWedge::onDrawContent(SkCanvas* canvas) { canvas->clear(SK_ColorBLACK); GrContext* ctx = canvas->getGrContext(); @@ -65,8 +65,8 @@ void TessellatedWedgeView::onDrawContent(SkCanvas* canvas) { SkString error; if (!rtc || !ctx) { error = "GPU Only."; - } else if (!ctx->priv().caps()->shaderCaps()->tessellationSupport()) { - error = "GPU tessellation not supported."; + } else if (!ctx->priv().caps()->drawInstancedSupport()) { + error = "Instanced rendering not supported."; } else if (1 == rtc->numSamples() && !ctx->priv().caps()->mixedSamplesSupport()) { error = "MSAA/mixed samples only."; } @@ -92,7 +92,7 @@ void TessellatedWedgeView::onDrawContent(SkCanvas* canvas) { GrOpMemoryPool* pool = ctx->priv().opMemoryPool(); rtc->priv().testingOnly_addDrawOp(pool->allocate<GrTessellatePathOp>( - canvas->getTotalMatrix(), fPath, std::move(paint), aa, fFlags)); + canvas->getTotalMatrix(), fPath, std::move(paint), aa, fOpFlags)); // Draw the path points. SkPaint pointsPaint; @@ -110,7 +110,7 @@ void TessellatedWedgeView::onDrawContent(SkCanvas* canvas) { fLastViewMatrix = canvas->getTotalMatrix(); } -class TessellatedWedgeView::Click : public Sample::Click { +class TessellatedWedge::Click : public Sample::Click { public: Click(int ptIdx) : fPtIdx(ptIdx) {} @@ -120,7 +120,7 @@ public: SkPathPriv::UpdatePathPoint(path, fPtIdx, pt + fCurr - fPrev); } else { path->transform( - SkMatrix::MakeTrans(fCurr.x() - fPrev.x(), fCurr.y() - fPrev.y()), path); + SkMatrix::Translate(fCurr.x() - fPrev.x(), fCurr.y() - fPrev.y()), path); } } @@ -128,7 +128,7 @@ private: int fPtIdx; }; -Sample::Click* TessellatedWedgeView::onFindClickHandler(SkScalar x, SkScalar y, skui::ModifierKey) { +Sample::Click* TessellatedWedge::onFindClickHandler(SkScalar x, SkScalar y, skui::ModifierKey) { const SkPoint* pts = SkPathPriv::PointData(fPath); float fuzz = 20 / fLastViewMatrix.getMaxScale(); for (int i = 0; i < fPath.countPoints(); ++i) { @@ -140,17 +140,17 @@ Sample::Click* TessellatedWedgeView::onFindClickHandler(SkScalar x, SkScalar y, return new Click(-1); } -bool TessellatedWedgeView::onClick(Sample::Click* click) { +bool TessellatedWedge::onClick(Sample::Click* click) { Click* myClick = (Click*)click; myClick->doClick(&fPath); return true; } -bool TessellatedWedgeView::onChar(SkUnichar unichar) { +bool TessellatedWedge::onChar(SkUnichar unichar) { switch (unichar) { case 'w': - fFlags = (GrTessellatePathOp::Flags)( - (int)fFlags ^ (int)GrTessellatePathOp::Flags::kWireframe); + fOpFlags = (GrTessellationPathRenderer::OpFlags)( + (int)fOpFlags ^ (int)GrTessellationPathRenderer::OpFlags::kWireframe); return true; case 'D': { fPath.dump(); @@ -160,6 +160,7 @@ bool TessellatedWedgeView::onChar(SkUnichar unichar) { return false; } -DEF_SAMPLE(return new TessellatedWedgeView;) +Sample* MakeTessellatedWedgeSample() { return new TessellatedWedge; } +static SampleRegistry gTessellatedWedgeSample(MakeTessellatedWedgeSample); #endif // SK_SUPPORT_GPU |