diff options
Diffstat (limited to 'src/gpu/GrGeometryBuffer.h')
-rw-r--r-- | src/gpu/GrGeometryBuffer.h | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/src/gpu/GrGeometryBuffer.h b/src/gpu/GrGeometryBuffer.h deleted file mode 100644 index 56a6cae3fb..0000000000 --- a/src/gpu/GrGeometryBuffer.h +++ /dev/null @@ -1,124 +0,0 @@ - -/* - * Copyright 2011 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - - -#ifndef GrGeometryBuffer_DEFINED -#define GrGeometryBuffer_DEFINED - -#include "GrGpuResource.h" - -class GrGpu; - -/** - * Parent class for vertex and index buffers - */ -class GrGeometryBuffer : public GrGpuResource { -public: - - - /** - *Retrieves whether the buffer was created with the dynamic flag - * - * @return true if the buffer was created with the dynamic flag - */ - bool dynamic() const { return fDynamic; } - - /** - * Returns true if the buffer is a wrapper around a CPU array. If true it - * indicates that map will always succeed and will be free. - */ - bool isCPUBacked() const { return fCPUBacked; } - - /** - * Maps the buffer to be written by the CPU. - * - * The previous content of the buffer is invalidated. It is an error - * to draw from the buffer while it is mapped. It is an error to call map - * on an already mapped buffer. It may fail if the backend doesn't support - * mapping the buffer. If the buffer is CPU backed then it will always - * succeed and is a free operation. Must be matched by an unmap() call. - * Currently only one map at a time is supported (no nesting of - * map/unmap). - * - * Note that buffer mapping does not go through GrContext and therefore is - * not serialized with other operations. - * - * @return a pointer to the data or nullptr if the map fails. - */ - void* map() { return (fMapPtr = this->onMap()); } - - /** - * Unmaps the buffer. - * - * The pointer returned by the previous map call will no longer be valid. - */ - void unmap() { - SkASSERT(fMapPtr); - this->onUnmap(); - fMapPtr = nullptr; - } - - /** - * Returns the same ptr that map() returned at time of map or nullptr if the - * is not mapped. - * - * @return ptr to mapped buffer data or nullptr if buffer is not mapped. - */ - void* mapPtr() const { return fMapPtr; } - - /** - Queries whether the buffer has been mapped. - - @return true if the buffer is mapped, false otherwise. - */ - bool isMapped() const { return SkToBool(fMapPtr); } - - /** - * Updates the buffer data. - * - * The size of the buffer will be preserved. The src data will be - * placed at the beginning of the buffer and any remaining contents will - * be undefined. srcSizeInBytes must be <= to the buffer size. - * - * The buffer must not be mapped. - * - * Note that buffer updates do not go through GrContext and therefore are - * not serialized with other operations. - * - * @return returns true if the update succeeds, false otherwise. - */ - bool updateData(const void* src, size_t srcSizeInBytes) { - SkASSERT(!this->isMapped()); - SkASSERT(srcSizeInBytes <= fGpuMemorySize); - return this->onUpdateData(src, srcSizeInBytes); - } - -protected: - GrGeometryBuffer(GrGpu* gpu, size_t gpuMemorySize, bool dynamic, bool cpuBacked) - : INHERITED(gpu, kCached_LifeCycle) - , fMapPtr(nullptr) - , fGpuMemorySize(gpuMemorySize) - , fDynamic(dynamic) - , fCPUBacked(cpuBacked) {} - -private: - virtual size_t onGpuMemorySize() const { return fGpuMemorySize; } - - virtual void* onMap() = 0; - virtual void onUnmap() = 0; - virtual bool onUpdateData(const void* src, size_t srcSizeInBytes) = 0; - - void* fMapPtr; - size_t fGpuMemorySize; - bool fDynamic; - bool fCPUBacked; - - typedef GrGpuResource INHERITED; -}; - -#endif |