added VKBufferMap.cpp/.h
This commit is contained in:
parent
8788b3dd6a
commit
16ae849809
@ -1,11 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include<hgl/graph/VertexAttribDataAccess.h>
|
#include<hgl/graph/VKBufferMap.h>
|
||||||
#include<hgl/graph/VKShaderModule.h>
|
#include<hgl/graph/VKShaderModule.h>
|
||||||
#include<hgl/graph/VKVertexAttribBuffer.h>
|
#include<hgl/graph/VKVertexAttribBuffer.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可绘制原始图形创建器
|
* 可绘制原始图形创建器
|
||||||
*/
|
*/
|
||||||
|
27
inc/hgl/graph/VKBufferMap.h
Normal file
27
inc/hgl/graph/VKBufferMap.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include<hgl/graph/VK.h>
|
||||||
|
#include<hgl/graph/VertexAttribDataAccess.h>
|
||||||
|
|
||||||
|
VK_NAMESPACE_BEGIN
|
||||||
|
class VKBufferMap
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
DeviceBuffer *buffer;
|
||||||
|
VkDeviceSize offset;
|
||||||
|
VkDeviceSize size;
|
||||||
|
|
||||||
|
void *map_ptr;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
VKBufferMap(DeviceBuffer *buf_ptr,VkDeviceSize off,VkDeviceSize s);
|
||||||
|
virtual ~VKBufferMap();
|
||||||
|
|
||||||
|
const bool IsValid()const{ return buffer; }
|
||||||
|
|
||||||
|
void *Map();
|
||||||
|
void Unmap();
|
||||||
|
};//class VKBufferMap
|
||||||
|
VK_NAMESPACE_END
|
@ -121,9 +121,11 @@ SET(VK_MEMORY_SOURCE ${SG_INCLUDE_PATH}/VKMemory.h
|
|||||||
${SG_INCLUDE_PATH}/VKBuffer.h
|
${SG_INCLUDE_PATH}/VKBuffer.h
|
||||||
${SG_INCLUDE_PATH}/VKIndexBuffer.h
|
${SG_INCLUDE_PATH}/VKIndexBuffer.h
|
||||||
${SG_INCLUDE_PATH}/VKArrayBuffer.h
|
${SG_INCLUDE_PATH}/VKArrayBuffer.h
|
||||||
|
${SG_INCLUDE_PATH}/VKBufferMap.h
|
||||||
Vulkan/VKMemory.cpp
|
Vulkan/VKMemory.cpp
|
||||||
Vulkan/VKMemoryAllocator.cpp
|
Vulkan/VKMemoryAllocator.cpp
|
||||||
Vulkan/VKBuffer.cpp
|
Vulkan/VKBuffer.cpp
|
||||||
|
Vulkan/VKBufferMap.cpp
|
||||||
Vulkan/VKArrayBuffer.cpp
|
Vulkan/VKArrayBuffer.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
43
src/SceneGraph/Vulkan/VKBufferMap.cpp
Normal file
43
src/SceneGraph/Vulkan/VKBufferMap.cpp
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#include<hgl/graph/VKBufferMap.h>
|
||||||
|
#include<hgl/graph/VKVertexAttribBuffer.h>
|
||||||
|
|
||||||
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
VKBufferMap::VKBufferMap(DeviceBuffer *buf,VkDeviceSize off,VkDeviceSize s)
|
||||||
|
{
|
||||||
|
buffer=buf;
|
||||||
|
offset=off;
|
||||||
|
size=s;
|
||||||
|
|
||||||
|
map_ptr=nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
VKBufferMap::~VKBufferMap()
|
||||||
|
{
|
||||||
|
if(map_ptr)
|
||||||
|
buffer->DeviceBuffer::Unmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void *VKBufferMap::Map()
|
||||||
|
{
|
||||||
|
if(map_ptr)
|
||||||
|
return(map_ptr);
|
||||||
|
|
||||||
|
if(!buffer)
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
|
map_ptr=buffer->DeviceBuffer::Map(offset,size);
|
||||||
|
return map_ptr;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void VKBufferMap::Unmap()
|
||||||
|
{
|
||||||
|
if(map_ptr)
|
||||||
|
{
|
||||||
|
buffer->DeviceBuffer::Unmap();
|
||||||
|
map_ptr=nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VK_NAMESPACE_END
|
Loading…
x
Reference in New Issue
Block a user