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

Side by Side Diff: src/gpu/batches/GrVertexBatch.h

Issue 2078483002: Start using GrGpuCommandBuffer in GrDrawTarget. (Closed) Base URL: https://skia.googlesource.com/skia.git@memoryWAR
Patch Set: clean up Created 4 years, 6 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrVertexBatch_DEFINED 8 #ifndef GrVertexBatch_DEFINED
9 #define GrVertexBatch_DEFINED 9 #define GrVertexBatch_DEFINED
10 10
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 calling recordDraws(). */ 56 calling recordDraws(). */
57 void* init(Target*, size_t vertexStride, int quadsToDraw); 57 void* init(Target*, size_t vertexStride, int quadsToDraw);
58 58
59 using InstancedHelper::recordDraw; 59 using InstancedHelper::recordDraw;
60 private: 60 private:
61 typedef InstancedHelper INHERITED; 61 typedef InstancedHelper INHERITED;
62 }; 62 };
63 63
64 private: 64 private:
65 void onPrepare(GrBatchFlushState* state) final; 65 void onPrepare(GrBatchFlushState* state) final;
66 void onDraw(GrBatchFlushState* state) final; 66 void onDraw(GrBatchFlushState* state, GrGpuCommandBuffer* buffer) final;
67 67
68 virtual void onPrepareDraws(Target*) const = 0; 68 virtual void onPrepareDraws(Target*) const = 0;
69 69
70 // A set of contiguous draws that share a draw token and primitive processor . The draws all use 70 // A set of contiguous draws that share a draw token and primitive processor . The draws all use
71 // the batch's pipeline. The meshes for the draw are stored in the fMeshes a rray and each 71 // the batch's pipeline. The meshes for the draw are stored in the fMeshes a rray and each
72 // Queued draw uses fMeshCnt meshes from the fMeshes array. The reason for c oallescing meshes 72 // Queued draw uses fMeshCnt meshes from the fMeshes array. The reason for c oallescing meshes
73 // that share a primitive processor into a QueuedDraw is that it allows the Gpu object to setup 73 // that share a primitive processor into a QueuedDraw is that it allows the Gpu object to setup
74 // the shared state once and then issue draws for each mesh. 74 // the shared state once and then issue draws for each mesh.
75 struct QueuedDraw { 75 struct QueuedDraw {
76 int fMeshCnt = 0; 76 int fMeshCnt = 0;
77 GrPendingProgramElement<const GrGeometryProcessor> fGeometryProcessor; 77 GrPendingProgramElement<const GrGeometryProcessor> fGeometryProcessor;
78 }; 78 };
79 79
80 // All draws in all the vertex batches have implicit tokens based on the ord er they are 80 // All draws in all the vertex batches have implicit tokens based on the ord er they are
81 // enqueued globally across all batches. This is the offset of the first ent ry in fQueuedDraws. 81 // enqueued globally across all batches. This is the offset of the first ent ry in fQueuedDraws.
82 // fQueuedDraws[i]'s token is fBaseDrawToken + i. 82 // fQueuedDraws[i]'s token is fBaseDrawToken + i.
83 GrBatchDrawToken fBaseDrawToken; 83 GrBatchDrawToken fBaseDrawToken;
84 84
85 SkSTArray<4, GrMesh> fMeshes; 85 SkSTArray<4, GrMesh> fMeshes;
86 SkSTArray<4, QueuedDraw, true> fQueuedDraws; 86 SkSTArray<4, QueuedDraw, true> fQueuedDraws;
87 87
88 typedef GrDrawBatch INHERITED; 88 typedef GrDrawBatch INHERITED;
89 }; 89 };
90 90
91 #endif 91 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698