Index: src/gpu/GrContext.cpp |
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp |
index c9342a5e6a75aa564c2ef4bfe53eac573bce8bd0..58e8508e370528f68493c0e8488e3fad8cc59873 100755 |
--- a/src/gpu/GrContext.cpp |
+++ b/src/gpu/GrContext.cpp |
@@ -13,7 +13,6 @@ |
#include "GrBatch.h" |
#include "GrBatchFontCache.h" |
#include "GrBatchTarget.h" |
-#include "GrBufferAllocPool.h" |
#include "GrDefaultGeoProcFactory.h" |
#include "GrGpuResource.h" |
#include "GrGpuResourcePriv.h" |
@@ -50,12 +49,6 @@ |
#include "effects/GrDashingEffect.h" |
#include "effects/GrSingleTextureEffect.h" |
-static const size_t DRAW_BUFFER_VBPOOL_BUFFER_SIZE = 1 << 15; |
-static const int DRAW_BUFFER_VBPOOL_PREALLOC_BUFFERS = 4; |
- |
-static const size_t DRAW_BUFFER_IBPOOL_BUFFER_SIZE = 1 << 11; |
-static const int DRAW_BUFFER_IBPOOL_PREALLOC_BUFFERS = 4; |
- |
#define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == this) |
#define RETURN_IF_ABANDONED if (!fDrawBuffer) { return; } |
#define RETURN_FALSE_IF_ABANDONED if (!fDrawBuffer) { return false; } |
@@ -109,8 +102,6 @@ GrContext::GrContext(const Options& opts) : fOptions(opts), fUniqueID(next_id()) |
fSoftwarePathRenderer = NULL; |
fBatchFontCache = NULL; |
fDrawBuffer = NULL; |
- fDrawBufferVBAllocPool = NULL; |
- fDrawBufferIBAllocPool = NULL; |
fFlushToReduceCacheSize = false; |
fAARectRenderer = NULL; |
fOvalRenderer = NULL; |
@@ -140,7 +131,7 @@ void GrContext::initCommon() { |
fDidTestPMConversions = false; |
- this->setupDrawBuffer(); |
+ fDrawBuffer = SkNEW_ARGS(GrInOrderDrawBuffer, (this)); |
// GrBatchFontCache will eventually replace GrFontCache |
fBatchFontCache = SkNEW_ARGS(GrBatchFontCache, (this)); |
@@ -163,8 +154,6 @@ GrContext::~GrContext() { |
SkDELETE(fResourceCache); |
SkDELETE(fBatchFontCache); |
SkDELETE(fDrawBuffer); |
- SkDELETE(fDrawBufferVBAllocPool); |
- SkDELETE(fDrawBufferIBAllocPool); |
fAARectRenderer->unref(); |
fOvalRenderer->unref(); |
@@ -187,15 +176,9 @@ void GrContext::abandonContext() { |
SkSafeSetNull(fPathRendererChain); |
SkSafeSetNull(fSoftwarePathRenderer); |
- delete fDrawBuffer; |
+ SkDELETE(fDrawBuffer); |
fDrawBuffer = NULL; |
- delete fDrawBufferVBAllocPool; |
- fDrawBufferVBAllocPool = NULL; |
- |
- delete fDrawBufferIBAllocPool; |
- fDrawBufferIBAllocPool = NULL; |
- |
fBatchFontCache->freeAll(); |
fLayerCache->freeAll(); |
fTextBlobCache->freeAll(); |
@@ -483,10 +466,8 @@ public: |
const GrVertexBuffer* vertexBuffer; |
int firstVertex; |
- void* verts = batchTarget->vertexPool()->makeSpace(vertexStride, |
- vertexCount, |
- &vertexBuffer, |
- &firstVertex); |
+ void* verts = batchTarget->makeVertSpace(vertexStride, vertexCount, |
+ &vertexBuffer, &firstVertex); |
if (!verts) { |
SkDebugf("Could not allocate vertices\n"); |
@@ -821,10 +802,8 @@ public: |
const GrVertexBuffer* vertexBuffer; |
int firstVertex; |
- void* verts = batchTarget->vertexPool()->makeSpace(vertexStride, |
- this->vertexCount(), |
- &vertexBuffer, |
- &firstVertex); |
+ void* verts = batchTarget->makeVertSpace(vertexStride, this->vertexCount(), |
+ &vertexBuffer, &firstVertex); |
if (!verts) { |
SkDebugf("Could not allocate vertices\n"); |
@@ -834,11 +813,9 @@ public: |
const GrIndexBuffer* indexBuffer = NULL; |
int firstIndex = 0; |
- void* indices = NULL; |
+ uint16_t* indices = NULL; |
if (this->hasIndices()) { |
- indices = batchTarget->indexPool()->makeSpace(this->indexCount(), |
- &indexBuffer, |
- &firstIndex); |
+ indices = batchTarget->makeIndexSpace(this->indexCount(), &indexBuffer, &firstIndex); |
if (!indices) { |
SkDebugf("Could not allocate indices\n"); |
@@ -854,7 +831,7 @@ public: |
// TODO we can actually cache this interleaved and then just memcopy |
if (this->hasIndices()) { |
for (int j = 0; j < args.fIndices.count(); ++j, ++indexOffset) { |
- *((uint16_t*)indices + indexOffset) = args.fIndices[j] + vertexOffset; |
+ *(indices + indexOffset) = args.fIndices[j] + vertexOffset; |
} |
} |
@@ -1813,25 +1790,6 @@ int GrContext::getRecommendedSampleCount(GrPixelConfig config, |
chosenSampleCount : 0; |
} |
-void GrContext::setupDrawBuffer() { |
- SkASSERT(NULL == fDrawBuffer); |
- SkASSERT(NULL == fDrawBufferVBAllocPool); |
- SkASSERT(NULL == fDrawBufferIBAllocPool); |
- |
- fDrawBufferVBAllocPool = |
- SkNEW_ARGS(GrVertexBufferAllocPool, (fGpu, |
- DRAW_BUFFER_VBPOOL_BUFFER_SIZE, |
- DRAW_BUFFER_VBPOOL_PREALLOC_BUFFERS)); |
- fDrawBufferIBAllocPool = |
- SkNEW_ARGS(GrIndexBufferAllocPool, (fGpu, |
- DRAW_BUFFER_IBPOOL_BUFFER_SIZE, |
- DRAW_BUFFER_IBPOOL_PREALLOC_BUFFERS)); |
- |
- fDrawBuffer = SkNEW_ARGS(GrInOrderDrawBuffer, (this, |
- fDrawBufferVBAllocPool, |
- fDrawBufferIBAllocPool)); |
-} |
- |
GrDrawTarget* GrContext::getTextTarget() { |
return this->prepareToDraw(); |
} |