diff --git a/inc/hgl/graph/VKDevice.h b/inc/hgl/graph/VKDevice.h index 5a8e5c5b..e1a7e67f 100644 --- a/inc/hgl/graph/VKDevice.h +++ b/inc/hgl/graph/VKDevice.h @@ -118,7 +118,13 @@ public: //Buffer相关 #define CREATE_BUFFER_OBJECT(LargeName,type) DeviceBuffer *Create##LargeName( VkDeviceSize size,void *data, SharingMode sm=SharingMode::Exclusive) {return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size ,size,data, sm);} \ DeviceBuffer *Create##LargeName( VkDeviceSize size, SharingMode sm=SharingMode::Exclusive) {return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size ,size,nullptr, sm);} \ DeviceBuffer *Create##LargeName(VkDeviceSize range,VkDeviceSize size,void *data, SharingMode sm=SharingMode::Exclusive) {return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,range,size,data, sm);} \ - DeviceBuffer *Create##LargeName(VkDeviceSize range,VkDeviceSize size, SharingMode sm=SharingMode::Exclusive) {return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,range,size,nullptr, sm);} + DeviceBuffer *Create##LargeName(VkDeviceSize range,VkDeviceSize size, SharingMode sm=SharingMode::Exclusive) {return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,range,size,nullptr, sm);} \ +\ + template T *Create##LargeName() \ + { \ + DeviceBuffer *buf=Create##LargeName(T::GetSize()); \ + return(buf?new T(buf):nullptr); \ + } CREATE_BUFFER_OBJECT(UBO,UNIFORM) CREATE_BUFFER_OBJECT(SSBO,STORAGE) @@ -126,17 +132,6 @@ public: //Buffer相关 #undef CREATE_BUFFER_OBJECT - template - T *CreateUBO() - { - DeviceBuffer *buf=CreateUBO(T::GetSize()); - - if(!buf) - return(nullptr); - - return(new T(buf)); - } - GPUArrayBuffer *CreateArrayInUBO(const VkDeviceSize &uint_size); GPUArrayBuffer *CreateArrayInSSBO(const VkDeviceSize &uint_size);