Index: src/gpu/gl/GrGLBufferImpl.cpp |
diff --git a/src/gpu/gl/GrGLBufferImpl.cpp b/src/gpu/gl/GrGLBufferImpl.cpp |
deleted file mode 100644 |
index 2babce80285cc1f2bb61e34e657db58b727a7142..0000000000000000000000000000000000000000 |
--- a/src/gpu/gl/GrGLBufferImpl.cpp |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-/* |
- * Copyright 2013 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#include "GrGLBufferImpl.h" |
-#include "GrGLGpu.h" |
- |
-#define GL_CALL(GPU, X) GR_GL_CALL(GPU->glInterface(), X) |
- |
-#ifdef SK_DEBUG |
-#define VALIDATE() this->validate() |
-#else |
-#define VALIDATE() do {} while(false) |
-#endif |
- |
-GrGLBufferImpl::GrGLBufferImpl(GrGLGpu* gpu, const Desc& desc, GrGLenum bufferType) |
- : fDesc(desc) |
- , fBufferType(bufferType) |
- , fMapPtr(nullptr) { |
- if (0 == desc.fID) { |
- if (gpu->caps()->mustClearUploadedBufferData()) { |
- fCPUData = sk_calloc_throw(desc.fSizeInBytes); |
- } else { |
- fCPUData = sk_malloc_flags(desc.fSizeInBytes, SK_MALLOC_THROW); |
- } |
- fGLSizeInBytes = 0; |
- } else { |
- fCPUData = nullptr; |
- // We assume that the GL buffer was created at the desc's size initially. |
- fGLSizeInBytes = fDesc.fSizeInBytes; |
- } |
- VALIDATE(); |
-} |
- |
-void GrGLBufferImpl::release(GrGLGpu* gpu) { |
- VALIDATE(); |
- // make sure we've not been abandoned or already released |
- if (fCPUData) { |
- sk_free(fCPUData); |
- fCPUData = nullptr; |
- } else if (fDesc.fID) { |
- gpu->releaseBuffer(fDesc.fID, fBufferType); |
- fDesc.fID = 0; |
- fGLSizeInBytes = 0; |
- } |
- fMapPtr = nullptr; |
- VALIDATE(); |
-} |
- |
-void GrGLBufferImpl::abandon() { |
- fDesc.fID = 0; |
- fGLSizeInBytes = 0; |
- fMapPtr = nullptr; |
- sk_free(fCPUData); |
- fCPUData = nullptr; |
- VALIDATE(); |
-} |
- |
-void* GrGLBufferImpl::map(GrGLGpu* gpu) { |
- VALIDATE(); |
- SkASSERT(!this->isMapped()); |
- if (0 == fDesc.fID) { |
- fMapPtr = fCPUData; |
- } else { |
- fMapPtr = gpu->mapBuffer(fDesc.fID, fBufferType, fDesc.fUsage, fGLSizeInBytes, |
- fDesc.fSizeInBytes); |
- fGLSizeInBytes = fDesc.fSizeInBytes; |
- } |
- VALIDATE(); |
- return fMapPtr; |
-} |
- |
-void GrGLBufferImpl::unmap(GrGLGpu* gpu) { |
- VALIDATE(); |
- SkASSERT(this->isMapped()); |
- if (0 != fDesc.fID) { |
- gpu->unmapBuffer(fDesc.fID, fBufferType, fMapPtr); |
- } |
- fMapPtr = nullptr; |
-} |
- |
-bool GrGLBufferImpl::isMapped() const { |
- VALIDATE(); |
- return SkToBool(fMapPtr); |
-} |
- |
-bool GrGLBufferImpl::updateData(GrGLGpu* gpu, const void* src, size_t srcSizeInBytes) { |
- SkASSERT(!this->isMapped()); |
- SkASSERT(GR_GL_ARRAY_BUFFER == fBufferType || GR_GL_ELEMENT_ARRAY_BUFFER == fBufferType); |
- VALIDATE(); |
- if (srcSizeInBytes > fDesc.fSizeInBytes) { |
- return false; |
- } |
- if (0 == fDesc.fID) { |
- memcpy(fCPUData, src, srcSizeInBytes); |
- return true; |
- } |
- gpu->bufferData(fDesc.fID, fBufferType, fDesc.fUsage, fDesc.fSizeInBytes, src, |
- srcSizeInBytes); |
-#if GR_GL_USE_BUFFER_DATA_NULL_HINT |
- fGLSizeInBytes = fDesc.fSizeInBytes; |
-#else |
- fGLSizeInBytes = srcSizeInBytes; |
-#endif |
- VALIDATE(); |
- return true; |
-} |
- |
-void GrGLBufferImpl::validate() const { |
- SkASSERT(GR_GL_ARRAY_BUFFER == fBufferType || GR_GL_ELEMENT_ARRAY_BUFFER == fBufferType || |
- GR_GL_PIXEL_PACK_BUFFER == fBufferType || GR_GL_PIXEL_UNPACK_BUFFER == fBufferType || |
- GR_GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM == fBufferType || |
- GR_GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM == fBufferType); |
- // The following assert isn't valid when the buffer has been abandoned: |
- // SkASSERT((0 == fDesc.fID) == (fCPUData)); |
- SkASSERT(nullptr == fCPUData || 0 == fGLSizeInBytes); |
- SkASSERT(nullptr == fMapPtr || fCPUData || fGLSizeInBytes <= fDesc.fSizeInBytes); |
- SkASSERT(nullptr == fCPUData || nullptr == fMapPtr || fCPUData == fMapPtr); |
-} |