17 uint32_t
findMemoryType(uint32_t typeFilter, vk::MemoryPropertyFlags properties);
51 void transferDataToImage(vk::Image dstImage, uint32_t width, uint32_t height, vk::Format format,
53 size_t dataSize, vk::Fence* outFence =
nullptr, std::function<
void()>* cleanUpCallback =
nullptr);
55 uint32_t mipLevels, uint32_t arrayLayers, vk::ImageAspectFlags aspectMask,
57 size_t dataSize, vk::Fence* outFence =
nullptr, std::function<
void()>* cleanUpCallback =
nullptr);
Context(Runtime *runtime)
RHI::RasterizationPipeline * createTraditionPipeline() override
void createPlatform() override
vk::PhysicalDevice m_phyDevice
uint32_t findMemoryType(uint32_t typeFilter, vk::MemoryPropertyFlags properties)
vk::Queue m_graphicsQueue
uint32_t getGraphicsQueueFamily() const
vk::Queue getGraphicsQueue()
VK_Context(VK_ContextCommon *common)
vk::Instance getVkInstance()
void transferDataToBuffer(vk::Buffer dstBuffer, size_t size, const void *data)
void createCommandPoolAndBuffers()
void endCommandBuffer(int index)
VK_ContextCommon * m_common
uint32_t m_transferQueueFamilyIndex
void beginCommandBuffer(int index)
void clear(Vec4 color, float depth=1.0, float stencil=0.0)
void createTransferCommandPool()
void endSingleTimeTransferCommands(vk::CommandBuffer commandBuffer, vk::Fence *outFence)
vk::Queue m_transferQueue
std::vector< vk::CommandBuffer > m_commandBuffers
void transferDataToImage(vk::Image dstImage, uint32_t width, uint32_t height, vk::Format format, const void *data, size_t dataSize, vk::Fence *outFence=nullptr, std::function< void()> *cleanUpCallback=nullptr)
void endSingleTimeCommands(vk::CommandBuffer commandBuffer)
uint32_t m_graphicsQueueFamilyIndex
vk::CommandBuffer beginSingleTimeCommands()
vk::CommandBuffer beginSingleTimeTransferCommands()
vk::CommandPool m_commandPool
auto getPhysicalDevice() const
void submitCommandBuffer()
vk::CommandPool m_transferCommandPool