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

Unified Diff: src/gpu/GrGpu.h

Issue 1806983002: Update how we send draws to gpu backend to reduce state setting. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 4 years, 9 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/GrGpu.h
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h
index 9725590544fbc599bf91df5317462e764108c623..7bbbd0572f5eaeb7988ecab06e3626bf3637c536 100644
--- a/src/gpu/GrGpu.h
+++ b/src/gpu/GrGpu.h
@@ -353,10 +353,6 @@ public:
// is dirty.
ResetTimestamp getResetTimestamp() const { return fResetTimestamp; }
- virtual void buildProgramDesc(GrProgramDesc*,
- const GrPrimitiveProcessor&,
- const GrPipeline&) const = 0;
-
// Called to perform a surface to surface copy. Fallbacks to issuing a draw from the src to dst
// take place at the GrDrawTarget level and this function implement faster copy paths. The rect
// and point are pre-clipped. The src rect and implied dst rect are guaranteed to be within the
@@ -396,7 +392,14 @@ public:
const GrProgramDesc* fDesc;
};
- void draw(const DrawArgs&, const GrVertices&);
+ // We pass in an array of drawCount GrVertices to the draw. The backend should loop over each
+ // GrVertices object and emit a draw for it. Each draw will use the same GrPipeline and
+ // GrPrimitiveProcessor.
+ void draw(const GrPipeline&,
+ const GrPrimitiveProcessor&,
+ GrPrimitiveType primitiveType,
+ const GrVertices*,
+ int drawCount);
bsalomon 2016/03/16 20:07:22 verticesCnt? Had to think for a bit to remember th
egdaniel 2016/03/17 15:09:36 changed to meshCount
// Called by drawtarget when flushing.
// Provides a hook for post-flush actions (e.g. PLS reset and Vulkan command buffer submits).
@@ -577,7 +580,11 @@ private:
virtual void onClearStencilClip(GrRenderTarget*, const SkIRect& rect, bool insideClip) = 0;
// overridden by backend-specific derived class to perform the draw call.
- virtual void onDraw(const DrawArgs&, const GrNonInstancedVertices&) = 0;
+ virtual void onDraw(const GrPipeline&,
+ const GrPrimitiveProcessor&,
+ GrPrimitiveType primitiveType,
+ const GrVertices*,
+ int drawCount) = 0;
virtual bool onMakeCopyForTextureParams(GrTexture* texture, const GrTextureParams&,
GrTextureProducer::CopyParams*) const { return false; }
« no previous file with comments | « src/gpu/GrBatchFlushState.h ('k') | src/gpu/GrGpu.cpp » ('j') | src/gpu/gl/GrGLGpu.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698