hide most details of SkPatchUtils
relies on https://googleplex-android-review.git.corp.google.com/#/c/2060523/ landing first
Bug: skia:
Change-Id: Ic6dc8e53656a7190a32cfb3b0b2abd9ee6dbebf0
Reviewed-on: https://skia-review.googlesource.com/11351
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/src/utils/SkPatchUtils.h b/src/utils/SkPatchUtils.h
index c1e8ac1..6d6e349 100644
--- a/src/utils/SkPatchUtils.h
+++ b/src/utils/SkPatchUtils.h
@@ -15,66 +15,7 @@
class SK_API SkPatchUtils {
public:
- // DEPRECATED -- use MakeVertices()
- /**
- * Structure that holds the vertex data related to the tessellation of a patch. It is passed
- * as a parameter to the function getVertexData which sets the points, colors and texture
- * coordinates of the vertices and the indices for them to be drawn as triangles.
- */
- struct VertexData {
- int fVertexCount, fIndexCount;
- SkPoint* fPoints;
- SkPoint* fTexCoords;
- uint32_t* fColors;
- uint16_t* fIndices;
-
- VertexData()
- : fVertexCount(0)
- , fIndexCount(0)
- , fPoints(nullptr)
- , fTexCoords(nullptr)
- , fColors(nullptr)
- , fIndices(nullptr) { }
-
- ~VertexData() {
- delete[] fPoints;
- delete[] fTexCoords;
- delete[] fColors;
- delete[] fIndices;
- }
- };
-
// Enums for control points based on the order specified in the constructor (clockwise).
- enum CubicCtrlPts {
- kTopP0_CubicCtrlPts = 0,
- kTopP1_CubicCtrlPts = 1,
- kTopP2_CubicCtrlPts = 2,
- kTopP3_CubicCtrlPts = 3,
-
- kRightP0_CubicCtrlPts = 3,
- kRightP1_CubicCtrlPts = 4,
- kRightP2_CubicCtrlPts = 5,
- kRightP3_CubicCtrlPts = 6,
-
- kBottomP0_CubicCtrlPts = 9,
- kBottomP1_CubicCtrlPts = 8,
- kBottomP2_CubicCtrlPts = 7,
- kBottomP3_CubicCtrlPts = 6,
-
- kLeftP0_CubicCtrlPts = 0,
- kLeftP1_CubicCtrlPts = 11,
- kLeftP2_CubicCtrlPts = 10,
- kLeftP3_CubicCtrlPts = 9,
- };
-
- // Enum for corner also clockwise.
- enum Corner {
- kTopLeft_Corner = 0,
- kTopRight_Corner,
- kBottomRight_Corner,
- kBottomLeft_Corner
- };
-
enum {
kNumCtrlPts = 12,
kNumCorners = 4,
@@ -82,43 +23,29 @@
};
/**
- * Method that calculates a level of detail (number of subdivisions) for a patch in both axis.
- */
- static SkISize GetLevelOfDetail(const SkPoint cubics[12], const SkMatrix* matrix);
-
- /**
* Get the points corresponding to the top cubic of cubics.
*/
- static void getTopCubic(const SkPoint cubics[12], SkPoint points[4]);
+ static void GetTopCubic(const SkPoint cubics[12], SkPoint points[4]);
/**
* Get the points corresponding to the bottom cubic of cubics.
*/
- static void getBottomCubic(const SkPoint cubics[12], SkPoint points[4]);
+ static void GetBottomCubic(const SkPoint cubics[12], SkPoint points[4]);
/**
* Get the points corresponding to the left cubic of cubics.
*/
- static void getLeftCubic(const SkPoint cubics[12], SkPoint points[4]);
+ static void GetLeftCubic(const SkPoint cubics[12], SkPoint points[4]);
/**
* Get the points corresponding to the right cubic of cubics.
*/
- static void getRightCubic(const SkPoint cubics[12], SkPoint points[4]);
+ static void GetRightCubic(const SkPoint cubics[12], SkPoint points[4]);
- // DEPRECATED -- use MakeVertices()
/**
- * Function that evaluates the coons patch interpolation.
- * data refers to the pointer of the PatchData struct in which the tessellation data is set.
- * cubics refers to the points of the cubics.
- * lod refers the level of detail for each axis.
- * colors refers to the corner colors that will be bilerp across the patch (optional parameter)
- * texCoords refers to the corner texture coordinates that will be bilerp across the patch
- (optional parameter)
+ * Method that calculates a level of detail (number of subdivisions) for a patch in both axis.
*/
- static bool getVertexData(SkPatchUtils::VertexData* data, const SkPoint cubics[12],
- const SkColor colors[4], const SkPoint texCoords[4],
- int lodX, int lodY);
+ static SkISize GetLevelOfDetail(const SkPoint cubics[12], const SkMatrix* matrix);
static sk_sp<SkVertices> MakeVertices(const SkPoint cubics[12], const SkColor colors[4],
const SkPoint texCoords[4], int lodX, int lodY);