Index: src/gpu/vk/GrVkBuffer.h |
diff --git a/src/gpu/vk/GrVkBuffer.h b/src/gpu/vk/GrVkBuffer.h |
index 7dac3a1149a38d3fb1dd5e896609b4e7cbdcefdf..2961637ccd1b4547461068b5b0c081972f50d117 100644 |
--- a/src/gpu/vk/GrVkBuffer.h |
+++ b/src/gpu/vk/GrVkBuffer.h |
@@ -8,6 +8,7 @@ |
#ifndef GrVkBuffer_DEFINED |
#define GrVkBuffer_DEFINED |
+#include "GrBuffer.h" |
#include "vk/GrVkInterface.h" |
#include "GrVkResource.h" |
@@ -17,7 +18,7 @@ class GrVkGpu; |
* This class serves as the base of GrVk*Buffer classes. It was written to avoid code |
* duplication in those classes. |
*/ |
-class GrVkBuffer : public SkNoncopyable { |
+class GrVkBuffer : public GrBuffer { |
public: |
~GrVkBuffer() { |
// either release or abandon should have been called by the owner of this object. |
@@ -36,19 +37,11 @@ public: |
VkPipelineStageFlags dstStageMask, |
bool byRegion) const; |
- enum Type { |
- kVertex_Type, |
- kIndex_Type, |
- kUniform_Type, |
- kCopyRead_Type, |
- kCopyWrite_Type, |
- }; |
- |
protected: |
struct Desc { |
- size_t fSizeInBytes; |
- Type fType; // vertex buffer, index buffer, etc. |
- bool fDynamic; |
+ size_t fSizeInBytes; |
+ GrBufferType fType; // vertex buffer, index buffer, etc. |
+ GrAccessPattern fAccessPattern; |
}; |
class Resource : public GrVkResource { |
@@ -67,16 +60,16 @@ protected: |
static const Resource* Create(const GrVkGpu* gpu, |
const Desc& descriptor); |
- GrVkBuffer(const Desc& desc, const GrVkBuffer::Resource* resource) |
- : fDesc(desc), fResource(resource), fMapPtr(nullptr) { |
- } |
+ GrVkBuffer(GrVkGpu* gpu, const Desc& desc, const GrVkBuffer::Resource* resource); |
+ |
+ GrVkGpu* vkGpu() const; |
- void* vkMap(const GrVkGpu* gpu); |
- void vkUnmap(const GrVkGpu* gpu); |
- bool vkUpdateData(const GrVkGpu* gpu, const void* src, size_t srcSizeInBytes); |
+ void onMap() override; |
+ void onUnmap() override; |
+ bool onUpdateData(const void* src, size_t srcSizeInBytes) override; |
- void vkAbandon(); |
- void vkRelease(const GrVkGpu* gpu); |
+ void onAbandon() override; |
+ void onRelease() override; |
private: |
void validate() const; |
@@ -86,7 +79,7 @@ private: |
const Resource* fResource; |
void* fMapPtr; |
jvanverth1
2016/03/24 17:05:43
This needs to be deleted -- it duplicates fMapPtr
|
- typedef SkRefCnt INHERITED; |
+ typedef GrBuffer INHERITED; |
}; |
#endif |