OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "GrBufferAllocPool.h" | 10 #include "GrBufferAllocPool.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 #endif | 21 #endif |
22 | 22 |
23 // page size | 23 // page size |
24 #define GrBufferAllocPool_MIN_BLOCK_SIZE ((size_t)1 << 12) | 24 #define GrBufferAllocPool_MIN_BLOCK_SIZE ((size_t)1 << 12) |
25 | 25 |
26 GrBufferAllocPool::GrBufferAllocPool(GrGpu* gpu, | 26 GrBufferAllocPool::GrBufferAllocPool(GrGpu* gpu, |
27 BufferType bufferType, | 27 BufferType bufferType, |
28 bool frequentResetHint, | 28 bool frequentResetHint, |
29 size_t blockSize, | 29 size_t blockSize, |
30 int preallocBufferCnt) : | 30 int preallocBufferCnt) : |
31 fBlocks(GrMax(8, 2*preallocBufferCnt)) { | 31 fBlocks(SkTMax(8, 2*preallocBufferCnt)) { |
32 | 32 |
33 SkASSERT(NULL != gpu); | 33 SkASSERT(NULL != gpu); |
34 fGpu = gpu; | 34 fGpu = gpu; |
35 fGpu->ref(); | 35 fGpu->ref(); |
36 fGpuIsReffed = true; | 36 fGpuIsReffed = true; |
37 | 37 |
38 fBufferType = bufferType; | 38 fBufferType = bufferType; |
39 fFrequentResetHint = frequentResetHint; | 39 fFrequentResetHint = frequentResetHint; |
40 fBufferPtr = NULL; | 40 fBufferPtr = NULL; |
41 fMinBlockSize = GrMax(GrBufferAllocPool_MIN_BLOCK_SIZE, blockSize); | 41 fMinBlockSize = SkTMax(GrBufferAllocPool_MIN_BLOCK_SIZE, blockSize); |
42 | 42 |
43 fBytesInUse = 0; | 43 fBytesInUse = 0; |
44 | 44 |
45 fPreallocBuffersInUse = 0; | 45 fPreallocBuffersInUse = 0; |
46 fPreallocBufferStartIdx = 0; | 46 fPreallocBufferStartIdx = 0; |
47 for (int i = 0; i < preallocBufferCnt; ++i) { | 47 for (int i = 0; i < preallocBufferCnt; ++i) { |
48 GrGeometryBuffer* buffer = this->createBuffer(fMinBlockSize); | 48 GrGeometryBuffer* buffer = this->createBuffer(fMinBlockSize); |
49 if (NULL != buffer) { | 49 if (NULL != buffer) { |
50 *fPreallocBuffers.append() = buffer; | 50 *fPreallocBuffers.append() = buffer; |
51 } | 51 } |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 if (!fPreallocBuffersInUse && fPreallocBuffers.count()) { | 251 if (!fPreallocBuffersInUse && fPreallocBuffers.count()) { |
252 fPreallocBufferStartIdx = (fPreallocBufferStartIdx + | 252 fPreallocBufferStartIdx = (fPreallocBufferStartIdx + |
253 preallocBuffersInUse) % | 253 preallocBuffersInUse) % |
254 fPreallocBuffers.count(); | 254 fPreallocBuffers.count(); |
255 } | 255 } |
256 VALIDATE(); | 256 VALIDATE(); |
257 } | 257 } |
258 | 258 |
259 bool GrBufferAllocPool::createBlock(size_t requestSize) { | 259 bool GrBufferAllocPool::createBlock(size_t requestSize) { |
260 | 260 |
261 size_t size = GrMax(requestSize, fMinBlockSize); | 261 size_t size = SkTMax(requestSize, fMinBlockSize); |
262 SkASSERT(size >= GrBufferAllocPool_MIN_BLOCK_SIZE); | 262 SkASSERT(size >= GrBufferAllocPool_MIN_BLOCK_SIZE); |
263 | 263 |
264 VALIDATE(); | 264 VALIDATE(); |
265 | 265 |
266 BufferBlock& block = fBlocks.push_back(); | 266 BufferBlock& block = fBlocks.push_back(); |
267 | 267 |
268 if (size == fMinBlockSize && | 268 if (size == fMinBlockSize && |
269 fPreallocBuffersInUse < fPreallocBuffers.count()) { | 269 fPreallocBuffersInUse < fPreallocBuffers.count()) { |
270 | 270 |
271 uint32_t nextBuffer = (fPreallocBuffersInUse + | 271 uint32_t nextBuffer = (fPreallocBuffersInUse + |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
479 } | 479 } |
480 } | 480 } |
481 | 481 |
482 int GrIndexBufferAllocPool::preallocatedBufferIndices() const { | 482 int GrIndexBufferAllocPool::preallocatedBufferIndices() const { |
483 return static_cast<int>(INHERITED::preallocatedBufferSize() / sizeof(uint16_
t)); | 483 return static_cast<int>(INHERITED::preallocatedBufferSize() / sizeof(uint16_
t)); |
484 } | 484 } |
485 | 485 |
486 int GrIndexBufferAllocPool::currentBufferIndices() const { | 486 int GrIndexBufferAllocPool::currentBufferIndices() const { |
487 return currentBufferItems(sizeof(uint16_t)); | 487 return currentBufferItems(sizeof(uint16_t)); |
488 } | 488 } |
OLD | NEW |