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

Side by Side Diff: src/gpu/GrVertices.h

Issue 1123823004: Fix vertex/index buffer leaks (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 GrVertices_DEFINED 8 #ifndef GrVertices_DEFINED
9 #define GrVertices_DEFINED 9 #define GrVertices_DEFINED
10 10
(...skipping 11 matching lines...) Expand all
22 GrVertices() {} 22 GrVertices() {}
23 GrVertices(const GrVertices& di) { (*this) = di; } 23 GrVertices(const GrVertices& di) { (*this) = di; }
24 GrVertices& operator =(const GrVertices& di); 24 GrVertices& operator =(const GrVertices& di);
25 25
26 void init(GrPrimitiveType primType, const GrVertexBuffer* vertexBuffer, int startVertex, 26 void init(GrPrimitiveType primType, const GrVertexBuffer* vertexBuffer, int startVertex,
27 int vertexCount) { 27 int vertexCount) {
28 SkASSERT(vertexBuffer); 28 SkASSERT(vertexBuffer);
29 SkASSERT(vertexCount); 29 SkASSERT(vertexCount);
30 SkASSERT(startVertex >= 0); 30 SkASSERT(startVertex >= 0);
31 fPrimitiveType = primType; 31 fPrimitiveType = primType;
32 fVertexBuffer.reset(SkRef(vertexBuffer)); 32 fVertexBuffer.reset(vertexBuffer);
33 fIndexBuffer.reset(NULL); 33 fIndexBuffer.reset(NULL);
34 fStartVertex = startVertex; 34 fStartVertex = startVertex;
35 fStartIndex = 0; 35 fStartIndex = 0;
36 fVertexCount = vertexCount; 36 fVertexCount = vertexCount;
37 fIndexCount = 0; 37 fIndexCount = 0;
38 fInstanceCount = 0; 38 fInstanceCount = 0;
39 fVerticesPerInstance = 0; 39 fVerticesPerInstance = 0;
40 fIndicesPerInstance = 0; 40 fIndicesPerInstance = 0;
41 } 41 }
42 42
43 void initIndexed(GrPrimitiveType primType, 43 void initIndexed(GrPrimitiveType primType,
44 const GrVertexBuffer* vertexBuffer, 44 const GrVertexBuffer* vertexBuffer,
45 const GrIndexBuffer* indexBuffer, 45 const GrIndexBuffer* indexBuffer,
46 int startVertex, 46 int startVertex,
47 int startIndex, 47 int startIndex,
48 int vertexCount, 48 int vertexCount,
49 int indexCount) { 49 int indexCount) {
50 SkASSERT(indexBuffer); 50 SkASSERT(indexBuffer);
51 SkASSERT(vertexBuffer); 51 SkASSERT(vertexBuffer);
52 SkASSERT(indexCount); 52 SkASSERT(indexCount);
53 SkASSERT(vertexCount); 53 SkASSERT(vertexCount);
54 SkASSERT(startIndex >= 0); 54 SkASSERT(startIndex >= 0);
55 SkASSERT(startVertex >= 0); 55 SkASSERT(startVertex >= 0);
56 fPrimitiveType = primType; 56 fPrimitiveType = primType;
57 fVertexBuffer.reset(SkRef(vertexBuffer)); 57 fVertexBuffer.reset(vertexBuffer);
58 fIndexBuffer.reset(SkRef(indexBuffer)); 58 fIndexBuffer.reset(indexBuffer);
59 fStartVertex = startVertex; 59 fStartVertex = startVertex;
60 fStartIndex = startIndex; 60 fStartIndex = startIndex;
61 fVertexCount = vertexCount; 61 fVertexCount = vertexCount;
62 fIndexCount = indexCount; 62 fIndexCount = indexCount;
63 fInstanceCount = 0; 63 fInstanceCount = 0;
64 fVerticesPerInstance = 0; 64 fVerticesPerInstance = 0;
65 fIndicesPerInstance = 0; 65 fIndicesPerInstance = 0;
66 } 66 }
67 67
68 void initInstanced(GrPrimitiveType primType, 68 void initInstanced(GrPrimitiveType primType,
69 const GrVertexBuffer* vertexBuffer, 69 const GrVertexBuffer* vertexBuffer,
70 const GrIndexBuffer* indexBuffer, 70 const GrIndexBuffer* indexBuffer,
71 int startVertex, 71 int startVertex,
72 int verticesPerInstance, 72 int verticesPerInstance,
73 int indicesPerInstance, 73 int indicesPerInstance,
74 int instanceCount) { 74 int instanceCount) {
75 SkASSERT(vertexBuffer); 75 SkASSERT(vertexBuffer);
76 SkASSERT(indexBuffer); 76 SkASSERT(indexBuffer);
77 SkASSERT(instanceCount); 77 SkASSERT(instanceCount);
78 SkASSERT(verticesPerInstance); 78 SkASSERT(verticesPerInstance);
79 SkASSERT(indicesPerInstance); 79 SkASSERT(indicesPerInstance);
80 SkASSERT(startVertex >= 0); 80 SkASSERT(startVertex >= 0);
81 fPrimitiveType = primType; 81 fPrimitiveType = primType;
82 fVertexBuffer.reset(SkRef(vertexBuffer)); 82 fVertexBuffer.reset(vertexBuffer);
83 fIndexBuffer.reset(SkRef(indexBuffer)); 83 fIndexBuffer.reset(indexBuffer);
84 fStartVertex = startVertex; 84 fStartVertex = startVertex;
85 fStartIndex = 0; 85 fStartIndex = 0;
86 fVerticesPerInstance = verticesPerInstance; 86 fVerticesPerInstance = verticesPerInstance;
87 fIndicesPerInstance = indicesPerInstance; 87 fIndicesPerInstance = indicesPerInstance;
88 fInstanceCount = instanceCount; 88 fInstanceCount = instanceCount;
89 fVertexCount = instanceCount * fVerticesPerInstance; 89 fVertexCount = instanceCount * fVerticesPerInstance;
90 fIndexCount = instanceCount * fIndicesPerInstance; 90 fIndexCount = instanceCount * fIndicesPerInstance;
91 } 91 }
92 92
93 /** Variation of the above that may be used when the total number of instanc es may exceed 93 /** Variation of the above that may be used when the total number of instanc es may exceed
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 152
153 int fInstanceCount; 153 int fInstanceCount;
154 int fVerticesPerInstance; 154 int fVerticesPerInstance;
155 int fIndicesPerInstance; 155 int fIndicesPerInstance;
156 156
157 GrPendingIOResource<const GrVertexBuffer, kRead_GrIOType> fVertexBuffer; 157 GrPendingIOResource<const GrVertexBuffer, kRead_GrIOType> fVertexBuffer;
158 GrPendingIOResource<const GrIndexBuffer, kRead_GrIOType> fIndexBuffer; 158 GrPendingIOResource<const GrIndexBuffer, kRead_GrIOType> fIndexBuffer;
159 }; 159 };
160 160
161 #endif 161 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698