Index: src/gpu/vk/GrVkGpu.cpp |
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp |
index 96c74ddd5dc1df2217723b50877adb93baec072d..068765db6b86ac1cba7bafffdcf0ba0060a1d620 100644 |
--- a/src/gpu/vk/GrVkGpu.cpp |
+++ b/src/gpu/vk/GrVkGpu.cpp |
@@ -389,18 +389,19 @@ void GrVkGpu::submitCommandBuffer(SyncQueue sync) { |
} |
/////////////////////////////////////////////////////////////////////////////// |
-GrVertexBuffer* GrVkGpu::onCreateVertexBuffer(size_t size, bool dynamic) { |
- return GrVkVertexBuffer::Create(this, size, dynamic); |
-} |
- |
-GrIndexBuffer* GrVkGpu::onCreateIndexBuffer(size_t size, bool dynamic) { |
- return GrVkIndexBuffer::Create(this, size, dynamic); |
-} |
- |
-GrTransferBuffer* GrVkGpu::onCreateTransferBuffer(size_t size, TransferType type) { |
- GrVkBuffer::Type bufferType = kCpuToGpu_TransferType ? GrVkBuffer::kCopyRead_Type |
- : GrVkBuffer::kCopyWrite_Type; |
- return GrVkTransferBuffer::Create(this, size, bufferType); |
+GrBuffer* GrVkGpu::onCreateBuffer(GrBufferType type, size_t size, GrAccessPattern accessPattern) { |
+ switch (type) { |
+ case kVertex_GrBufferType: |
+ return GrVkVertexBuffer::Create(this, size, accessPattern); |
+ case kIndex_GrBufferType: |
+ return GrVkIndexBuffer::Create(this, size, accessPattern); |
+ case kXferCpuToGpu_GrBufferType: |
+ case kXferGpuToCpu_GrBufferType: |
+ return GrVkTransferBuffer::Create(this, size, type); |
+ default: |
+ SkFAIL("Unknown buffer type."); |
+ return nullptr; |
+ } |
} |
//////////////////////////////////////////////////////////////////////////////// |
@@ -556,7 +557,7 @@ bool GrVkGpu::uploadTexData(GrVkTexture* tex, |
GR_VK_CALL(interface, UnmapMemory(fDevice, tex->textureMemory())); |
} else { |
GrVkTransferBuffer* transferBuffer = |
- GrVkTransferBuffer::Create(this, trimRowBytes * height, GrVkBuffer::kCopyRead_Type); |
+ GrVkTransferBuffer::Create(this, trimRowBytes * height, kXferCpuToGpu_GrBufferType); |
void* mapPtr = transferBuffer->map(); |
@@ -1441,8 +1442,7 @@ bool GrVkGpu::onReadPixels(GrSurface* surface, |
false); |
GrVkTransferBuffer* transferBuffer = |
- reinterpret_cast<GrVkTransferBuffer*>(this->createTransferBuffer(rowBytes * height, |
- kGpuToCpu_TransferType)); |
+ GrVkTransferBuffer::Create(this, rowBytes * height, kXferGpuToCpu_GrBufferType); |
bool flipY = kBottomLeft_GrSurfaceOrigin == surface->origin(); |
VkOffset3D offset = { |