Rendering Engine 0.2.0
Modular Graphics Rendering Engine | v0.2.0
Loading...
Searching...
No Matches
rendering_engine::IMeshRenderResources Class Referenceabstract

Interface for GPU mesh resource management. More...

#include <i_mesh_render_resources.hpp>

Inherited by rendering_engine::VulkanMeshResources.

Public Member Functions

virtual ~IMeshRenderResources ()=default
 Virtual destructor.
virtual void CreateVertexBuffer (std::vector< Vertex2D > vertices)=0
 Create a GPU vertex buffer from 2D vertex data.
virtual void CreateVertexBuffer (std::vector< VertexPositionColorTexture > vertices)=0
 Create a GPU vertex buffer from 3D unlit vertex data.
virtual void CreateVertexBuffer (std::vector< VertexPositionColorTextureNormalTangent > vertices)=0
 Create a GPU vertex buffer from 3D lit vertex data.
virtual void CreateIndexBuffer (std::vector< uint32_t > indices)=0
 Create a GPU index buffer.
virtual bool IsOnGPU () const =0
 Check if the buffers are currently resident on the GPU.
virtual void Shutdown ()=0
 Release all GPU resources associated with this mesh.
virtual size_t GetVertexBufferSize () const =0
 Get the size (in bytes) of the GPU vertex buffer.
virtual size_t GetIndexBufferSize () const =0
 Get the size (in bytes) of the GPU index buffer.

Detailed Description

Interface for GPU mesh resource management.

This interface abstracts the creation, management, and destruction of mesh-related GPU resources. It supports multiple vertex types, index buffers, and provides utilities for buffer state and size queries.

Definition at line 22 of file i_mesh_render_resources.hpp.

Constructor & Destructor Documentation

◆ ~IMeshRenderResources()

virtual rendering_engine::IMeshRenderResources::~IMeshRenderResources ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ CreateIndexBuffer()

virtual void rendering_engine::IMeshRenderResources::CreateIndexBuffer ( std::vector< uint32_t > indices)
pure virtual

Create a GPU index buffer.

Parameters
indicesVector of indices.

Implemented in rendering_engine::VulkanMeshResources.

◆ CreateVertexBuffer() [1/3]

virtual void rendering_engine::IMeshRenderResources::CreateVertexBuffer ( std::vector< Vertex2D > vertices)
pure virtual

Create a GPU vertex buffer from 2D vertex data.

Parameters
verticesVector of 2D vertex data.

Implemented in rendering_engine::VulkanMeshResources.

◆ CreateVertexBuffer() [2/3]

virtual void rendering_engine::IMeshRenderResources::CreateVertexBuffer ( std::vector< VertexPositionColorTexture > vertices)
pure virtual

Create a GPU vertex buffer from 3D unlit vertex data.

Parameters
verticesVector of VertexPositionTextureColor data.

Implemented in rendering_engine::VulkanMeshResources.

◆ CreateVertexBuffer() [3/3]

virtual void rendering_engine::IMeshRenderResources::CreateVertexBuffer ( std::vector< VertexPositionColorTextureNormalTangent > vertices)
pure virtual

Create a GPU vertex buffer from 3D lit vertex data.

Parameters
verticesVector of VertexPositionTextureColorNormalTangent data.

Implemented in rendering_engine::VulkanMeshResources.

◆ GetIndexBufferSize()

virtual size_t rendering_engine::IMeshRenderResources::GetIndexBufferSize ( ) const
pure virtual

Get the size (in bytes) of the GPU index buffer.

Returns
Size in bytes of the index buffer.

Implemented in rendering_engine::VulkanMeshResources.

◆ GetVertexBufferSize()

virtual size_t rendering_engine::IMeshRenderResources::GetVertexBufferSize ( ) const
pure virtual

Get the size (in bytes) of the GPU vertex buffer.

Returns
Size in bytes of the vertex buffer.

Implemented in rendering_engine::VulkanMeshResources.

◆ IsOnGPU()

virtual bool rendering_engine::IMeshRenderResources::IsOnGPU ( ) const
pure virtual

Check if the buffers are currently resident on the GPU.

Returns
True if the buffers are allocated on the GPU, false otherwise.

Implemented in rendering_engine::VulkanMeshResources.

◆ Shutdown()

virtual void rendering_engine::IMeshRenderResources::Shutdown ( )
pure virtual

Release all GPU resources associated with this mesh.

Implemented in rendering_engine::VulkanMeshResources.


The documentation for this class was generated from the following file: