Index: experimental/AndroidPathRenderer/GrAndroidPathRenderer.cpp |
diff --git a/experimental/AndroidPathRenderer/GrAndroidPathRenderer.cpp b/experimental/AndroidPathRenderer/GrAndroidPathRenderer.cpp |
deleted file mode 100644 |
index 8faf49fe66a16c811ca83082b17115d40d899136..0000000000000000000000000000000000000000 |
--- a/experimental/AndroidPathRenderer/GrAndroidPathRenderer.cpp |
+++ /dev/null |
@@ -1,89 +0,0 @@ |
- |
-/* |
- * Copyright 2012 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#include "GrAndroidPathRenderer.h" |
-#include "AndroidPathRenderer.h" |
-#include "Vertex.h" |
- |
-GrAndroidPathRenderer::GrAndroidPathRenderer() { |
-} |
- |
-bool GrAndroidPathRenderer::canDrawPath(const SkPath& path, |
- const SkStrokeRec& stroke, |
- const GrDrawTarget* target, |
- bool antiAlias) const { |
- return ((stroke.isFillStyle() || stroke.getStyle() == SkStrokeRec::kStroke_Style) |
- && !path.isInverseFillType() && path.isConvex()); |
-} |
- |
-struct ColorVertex { |
- SkPoint pos; |
- GrColor color; |
-}; |
- |
-bool GrAndroidPathRenderer::onDrawPath(const SkPath& origPath, |
- const SkStrokeRec& stroke, |
- GrDrawTarget* target, |
- bool antiAlias) { |
- |
- // generate verts using Android algorithm |
- android::uirenderer::VertexBuffer vertices; |
- android::uirenderer::PathRenderer::ConvexPathVertices(origPath, stroke, antiAlias, NULL, |
- &vertices); |
- |
- // set vertex attributes depending on anti-alias |
- GrDrawState* drawState = target->drawState(); |
- if (antiAlias) { |
- // position + coverage |
- GrVertexAttrib attribs[] = { |
- GrVertexAttrib(kVec2f_GrVertexAttribType, 0), |
- GrVertexAttrib(kVec4ub_GrVertexAttribType, sizeof(GrPoint)) |
- }; |
- drawState->setVertexAttribs(attribs, SK_ARRAY_COUNT(attribs)); |
- drawState->setAttribIndex(GrDrawState::kPosition_AttribIndex, 0); |
- drawState->setAttribIndex(GrDrawState::kCoverage_AttribIndex, 1); |
- drawState->setAttribBindings(GrDrawState::kCoverage_AttribBindingsBit); |
- } else { |
- drawState->setDefaultVertexAttribs(); |
- } |
- |
- // allocate our vert buffer |
- int vertCount = vertices.getSize(); |
- GrDrawTarget::AutoReleaseGeometry geo(target, vertCount, 0); |
- if (!geo.succeeded()) { |
- SkDebugf("Failed to get space for vertices!\n"); |
- return false; |
- } |
- |
- // copy android verts to our vertex buffer |
- if (antiAlias) { |
- SkASSERT(sizeof(ColorVertex) == drawState->getVertexSize()); |
- ColorVertex* outVert = reinterpret_cast<ColorVertex*>(geo.vertices()); |
- android::uirenderer::AlphaVertex* inVert = |
- reinterpret_cast<android::uirenderer::AlphaVertex*>(vertices.getBuffer()); |
- |
- for (int i = 0; i < vertCount; ++i) { |
- // copy vertex position |
- outVert->pos.set(inVert->position[0], inVert->position[1]); |
- // copy alpha |
- int coverage = static_cast<int>(inVert->alpha * 0xff); |
- outVert->color = GrColorPackRGBA(coverage, coverage, coverage, coverage); |
- ++outVert; |
- ++inVert; |
- } |
- } else { |
- size_t vsize = drawState->getVertexSize(); |
- size_t copySize = vsize*vertCount; |
- memcpy(geo.vertices(), vertices.getBuffer(), copySize); |
- } |
- |
- // render it |
- target->drawNonIndexed(kTriangleStrip_GrPrimitiveType, 0, vertCount); |
- |
- return true; |
-} |