Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Unified Diff: src/gpu/GrDrawTarget.h

Issue 400713003: Add a GrPathRange class (Closed) Base URL: https://skia.googlesource.com/skia.git@clupload-ispath
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/gpu/GrDrawTarget.h
diff --git a/src/gpu/GrDrawTarget.h b/src/gpu/GrDrawTarget.h
index 7898dfdcab66fedc1083c3099e12c5cc5f326c0b..5975ff7ee4b4c22528f4cc4e4935177b5419742f 100644
--- a/src/gpu/GrDrawTarget.h
+++ b/src/gpu/GrDrawTarget.h
@@ -26,6 +26,7 @@
class GrClipData;
class GrDrawTargetCaps;
class GrPath;
+class GrPathRange;
class GrVertexBuffer;
class GrDrawTarget : public SkRefCnt {
@@ -349,14 +350,19 @@ public:
* Draws many paths. It will respect the HW
* antialias flag on the draw state (if possible in the 3D API).
*
- * @param transforms array of 2d affine transformations, one for each path.
- * @param fill the fill type for drawing all the paths. Fill must not be a
- * hairline.
- * @param stroke the stroke for drawing all the paths.
+ * @param pathRange Source of paths to draw from, stroke must not be
bsalomon 2014/07/17 17:27:28 Is this comment right or should the hairline text
Chris Dalton 2014/07/17 18:15:19 The old comment wasn't correct, hairline is a stro
+ * hairline
+ * @param indices Array of indices into the the pathRange
+ * @param count Number of paths to draw (length of indices array)
+ * @param transforms Array of individual transforms, one for each path
+ * @param transformsFormat Format of the transforms array. The array contains
+ * GrTransformSize(transformsFormat) × count elements
+ * @param fill Fill type for drawing all the paths
*/
- void drawPaths(int pathCount, const GrPath** paths,
- const SkMatrix* transforms, SkPath::FillType fill,
- SkStrokeRec::Style stroke);
+ void drawPaths(const GrPathRange* pathRange,
+ const uint32_t indices[], int count,
+ const float transforms[], GrTransformFormat transformsFormat,
+ SkPath::FillType fill);
/**
* Helper function for drawing rects. It performs a geometry src push and pop
@@ -516,11 +522,12 @@ public:
/**
* For subclass internal use to invoke a call to onDrawPaths().
*/
- void executeDrawPaths(int pathCount, const GrPath** paths,
- const SkMatrix* transforms, SkPath::FillType fill,
- SkStrokeRec::Style stroke,
+ void executeDrawPaths(const GrPathRange* pathRange,
+ const uint32_t indices[], int count,
+ const float transforms[], GrTransformFormat transformsFormat,
+ SkPath::FillType fill,
const GrDeviceCoordTexture* dstCopy) {
- this->onDrawPaths(pathCount, paths, transforms, fill, stroke, dstCopy);
+ this->onDrawPaths(pathRange, indices, count, transforms, transformsFormat, fill, dstCopy);
}
inline bool isGpuTracingEnabled() const {
@@ -909,9 +916,10 @@ private:
virtual void onStencilPath(const GrPath*, SkPath::FillType) = 0;
virtual void onDrawPath(const GrPath*, SkPath::FillType,
const GrDeviceCoordTexture* dstCopy) = 0;
- virtual void onDrawPaths(int, const GrPath**, const SkMatrix*,
- SkPath::FillType, SkStrokeRec::Style,
- const GrDeviceCoordTexture* dstCopy) = 0;
+ virtual void onDrawPaths(const GrPathRange*,
+ const uint32_t indices[], int count,
+ const float transforms[], GrTransformFormat,
+ SkPath::FillType, const GrDeviceCoordTexture*) = 0;
virtual void didAddGpuTraceMarker() = 0;
virtual void didRemoveGpuTraceMarker() = 0;

Powered by Google App Engine
This is Rietveld 408576698