12#include <vulkan/vulkan.h>
98 bool bHasCustomMaterialVariables;
100 VkBuffer mVertexBuffer;
101 VkBuffer mIndexBuffer;
103 VkPipeline mGraphicsPipeline;
104 VkPipelineLayout mPipelineLayout;
106 std::vector<VkBuffer> mTransformationBuffers;
107 std::vector<VkDeviceMemory> mTransformationBuffersMemory;
109 std::vector<VkBuffer> mMaterialParametersBuffers;
110 std::vector<VkDeviceMemory> mMaterialParametersMemory;
112 VkDescriptorPool mDescriptorPool;
113 std::vector<VkDescriptorSet> mDescriptorSets;
Interface for rendering backend resource aggregation and submission.
Interface for observing renderer resource lifecycle events.
Represents a material instance with parameter values, texture bindings, and rendering configuration.
Manages mesh data in RAM and GPU, including upload and release operations.
Manages texture loading, GPU uploading, and caching for reuse.
void AcquireResources()
Allocates and initializes all GPU buffers, descriptor sets, and pipelines for this drawable.
~VulkanRenderResources()
Destructor.
void OnRenderResourcesRebuild() override
Renderer callback: re-upload or recreate all GPU resources (used after device reset/rebuild).
void OnRenderResourcesRelease() override
Renderer callback: release all GPU resources (used during device loss/reset).
void DrawIndexed()
Issues a Vulkan draw command for the currently bound indexed mesh.
void CreateDescriptorPool()
VulkanRenderResources(VulkanRenderer *renderer)
Constructor.
void Shutdown() override
Releases all allocated GPU resources for this object.
void UpdateTransformations(Transformations2D &transformations)
void Initialize(Material *material, MeshDataGpu *meshData, TextureCache *textureCache) override
Initializes GPU-side resources using provided material, mesh, and texture cache.
void SubmitResources(Transformations2D &transformations, const PackedMaterialData &materialParameters) override
Updates GPU resources and issues a draw call for a 2D object.
void CreateDescriptorSet()
void CreateUniformBuffers()
void UpdateMaterialParameters(const PackedMaterialData &materialParameters)
Vulkan-based implementation of the IRenderer interface.
Contains the raw buffer data and layout metadata of packed material parameters.