| Index: src/gpu/GrBatch.cpp
|
| diff --git a/src/gpu/GrBatch.cpp b/src/gpu/GrBatch.cpp
|
| deleted file mode 100644
|
| index 7fee5f25c3d6646b6c505a0a2e6e507afe22d2b5..0000000000000000000000000000000000000000
|
| --- a/src/gpu/GrBatch.cpp
|
| +++ /dev/null
|
| @@ -1,87 +0,0 @@
|
| -/*
|
| - * Copyright 2015 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include "GrBatch.h"
|
| -#include "GrBatchTarget.h"
|
| -#include "GrResourceProvider.h"
|
| -
|
| -#include "GrMemoryPool.h"
|
| -#include "SkSpinlock.h"
|
| -
|
| -// TODO I noticed a small benefit to using a larger exclusive pool for batches. Its very small,
|
| -// but seems to be mostly consistent. There is a lot in flux right now, but we should really
|
| -// revisit this when batch is everywhere
|
| -
|
| -
|
| -// We use a global pool protected by a mutex(spinlock). Chrome may use the same GrContext on
|
| -// different threads. The GrContext is not used concurrently on different threads and there is a
|
| -// memory barrier between accesses of a context on different threads. Also, there may be multiple
|
| -// GrContexts and those contexts may be in use concurrently on different threads.
|
| -namespace {
|
| -SK_DECLARE_STATIC_SPINLOCK(gBatchSpinlock);
|
| -class MemoryPoolAccessor {
|
| -public:
|
| - MemoryPoolAccessor() { gBatchSpinlock.acquire(); }
|
| -
|
| - ~MemoryPoolAccessor() { gBatchSpinlock.release(); }
|
| -
|
| - GrMemoryPool* pool() const {
|
| - static GrMemoryPool gPool(16384, 16384);
|
| - return &gPool;
|
| - }
|
| -};
|
| -}
|
| -
|
| -int32_t GrBatch::gCurrBatchClassID = GrBatch::kIllegalBatchID;
|
| -
|
| -GrBATCH_SPEW(int32_t GrBatch::gCurrBatchUniqueID = GrBatch::kIllegalBatchID;)
|
| -
|
| -void* GrBatch::operator new(size_t size) {
|
| - return MemoryPoolAccessor().pool()->allocate(size);
|
| -}
|
| -
|
| -void GrBatch::operator delete(void* target) {
|
| - return MemoryPoolAccessor().pool()->release(target);
|
| -}
|
| -
|
| -void* GrBatch::InstancedHelper::init(GrBatchTarget* batchTarget, GrPrimitiveType primType,
|
| - size_t vertexStride, const GrIndexBuffer* indexBuffer,
|
| - int verticesPerInstance, int indicesPerInstance,
|
| - int instancesToDraw) {
|
| - SkASSERT(batchTarget);
|
| - if (!indexBuffer) {
|
| - return NULL;
|
| - }
|
| - const GrVertexBuffer* vertexBuffer;
|
| - int firstVertex;
|
| - int vertexCount = verticesPerInstance * instancesToDraw;
|
| - void* vertices = batchTarget->makeVertSpace(vertexStride, vertexCount,
|
| - &vertexBuffer, &firstVertex);
|
| - if (!vertices) {
|
| - SkDebugf("Vertices could not be allocated for instanced rendering.");
|
| - return NULL;
|
| - }
|
| - SkASSERT(vertexBuffer);
|
| - size_t ibSize = indexBuffer->gpuMemorySize();
|
| - int maxInstancesPerDraw = static_cast<int>(ibSize / (sizeof(uint16_t) * indicesPerInstance));
|
| -
|
| - fVertices.initInstanced(primType, vertexBuffer, indexBuffer,
|
| - firstVertex, verticesPerInstance, indicesPerInstance, instancesToDraw,
|
| - maxInstancesPerDraw);
|
| - return vertices;
|
| -}
|
| -
|
| -void* GrBatch::QuadHelper::init(GrBatchTarget* batchTarget, size_t vertexStride, int quadsToDraw) {
|
| - SkAutoTUnref<const GrIndexBuffer> quadIndexBuffer(
|
| - batchTarget->resourceProvider()->refQuadIndexBuffer());
|
| - if (!quadIndexBuffer) {
|
| - SkDebugf("Could not get quad index buffer.");
|
| - return NULL;
|
| - }
|
| - return this->INHERITED::init(batchTarget, kTriangles_GrPrimitiveType, vertexStride,
|
| - quadIndexBuffer, kVerticesPerQuad, kIndicesPerQuad, quadsToDraw);
|
| -}
|
|
|