summaryrefslogtreecommitdiff
path: root/chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp')
-rw-r--r--chromium/third_party/skia/samplecode/SampleTessellatedWedge.cpp35
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