Runtime ShaderCompilation with Include Features
This commit is contained in:
@@ -27,6 +27,10 @@ namespace OpenVulkano::Vulkan
|
||||
vk::MemoryPropertyFlags properties;
|
||||
void* mapped = nullptr;
|
||||
|
||||
ManagedBuffer(MemoryAllocation* alloc, vk::DeviceSize offset, vk::DeviceSize size, vk::Buffer buffer, vk::BufferUsageFlags usageFlags, vk::MemoryPropertyFlags memProperties)
|
||||
: allocation(alloc), offset(offset), size(size), buffer(buffer), usage(usageFlags), properties(memProperties), mapped(nullptr)
|
||||
{}
|
||||
|
||||
~ManagedBuffer()
|
||||
{
|
||||
allocation->device.destroy(buffer);
|
||||
|
||||
@@ -131,7 +131,7 @@ namespace OpenVulkano::Vulkan
|
||||
uint32_t offset = Utils::Align(allocation->used, memoryRequirements.alignment);
|
||||
device->device.bindBufferMemory(buffer, allocation->memory, offset);
|
||||
allocation->used += size + (offset - allocation->used);
|
||||
return ManagedBufferPtr{ new ManagedBuffer({allocation, offset, size, buffer, usage, properties, nullptr}) };
|
||||
return ManagedBufferPtr{ new ManagedBuffer(allocation, offset, size, buffer, usage, properties) };
|
||||
}
|
||||
|
||||
MemoryPool::ManagedBufferPtr MemoryPool::CreateSharedMemoryBuffer(size_t size)
|
||||
@@ -150,4 +150,9 @@ namespace OpenVulkano::Vulkan
|
||||
}
|
||||
return CreateBuffer(size, vk::BufferUsageFlagBits::eVertexBuffer, vk::MemoryPropertyFlagBits::eHostCoherent/* | vk::MemoryPropertyFlagBits::eDeviceLocal*/);
|
||||
}
|
||||
|
||||
void ManagedBufferDeleter::operator()(ManagedBuffer* buffer)
|
||||
{
|
||||
MemoryPool::ReleaseBuffer(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,11 @@ namespace OpenVulkano::Vulkan
|
||||
class Device;
|
||||
class MemoryAllocation;
|
||||
class ManagedBuffer;
|
||||
struct ManagedBufferDeleter;
|
||||
|
||||
struct ManagedBufferDeleter
|
||||
{
|
||||
void operator()(ManagedBuffer* buffer);
|
||||
};
|
||||
|
||||
class MemoryPool
|
||||
{
|
||||
@@ -55,12 +59,4 @@ namespace OpenVulkano::Vulkan
|
||||
|
||||
static void ReleaseBuffer(ManagedBuffer* buffer);
|
||||
};
|
||||
|
||||
struct ManagedBufferDeleter
|
||||
{
|
||||
void operator()(ManagedBuffer* buffer)
|
||||
{
|
||||
MemoryPool::ReleaseBuffer(buffer);
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user