sculpto
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
scl::vertex_buffer Class Referenceabstract

#include <buffer.h>

Inheritance diagram for scl::vertex_buffer:
scl::gl_vertex_buffer

Public Member Functions

vertex_layout GetVertexLayout () const
 
 vertex_buffer (const vertex_layout &VertexLayout)
 
virtual ~vertex_buffer ()=default
 
virtual void Bind () const =0
 
virtual void Unbind () const =0
 
virtual void Update (const void *Vertices, u32 Count)=0
 
virtual void Free ()=0
 
virtual u32 GetCount () const =0
 

Static Public Member Functions

static shared< vertex_bufferCreate (u32 Count, const vertex_layout &VertexLayout)
 
static shared< vertex_bufferCreate (const void *Vertices, u32 Count, const vertex_layout &VertexLayout)
 

Protected Attributes

vertex_layout VertexLayout {}
 

Detailed Description

Vertex bufer interface.

Definition at line 100 of file buffer.h.

Constructor & Destructor Documentation

◆ vertex_buffer()

scl::vertex_buffer::vertex_buffer ( const vertex_layout VertexLayout)
  • Vertex buffer default constructor.
Parameters
VertexLayout- layout of vertices in buffer.

Definition at line 38 of file buffer.cpp.

38 :
vertex_layout VertexLayout
Definition: buffer.h:103

◆ ~vertex_buffer()

virtual scl::vertex_buffer::~vertex_buffer ( )
virtualdefault

Vertex buffer default destructor.

Member Function Documentation

◆ Bind()

virtual void scl::vertex_buffer::Bind ( ) const
pure virtual
  • Bind buffer to current render stage function.
Parameters
None.
Returns
None.

Implemented in scl::gl_vertex_buffer.

◆ Create() [1/2]

scl::shared< scl::vertex_buffer > scl::vertex_buffer::Create ( const void *  Vertices,
u32  Count,
const vertex_layout VertexLayout 
)
static
  • Create API specific vertex buffer by vertices count and data.
Parameters
Vertices- vertices array.
Count- vertices in buffer count.
VertexLayout- layout of vertices in buffer.
Returns
vertex buffer pointer.

Definition at line 53 of file buffer.cpp.

54{
55 switch (render_context::GetApi())
56 {
57 case scl::render_context_api::OpenGL: return CreateShared<scl::gl_vertex_buffer>(Vertices, Count, VertexLayout);
58 case scl::render_context_api::DirectX: SCL_CORE_ASSERT(0, "This API is currently unsupported."); return nullptr;
59 }
60
61 SCL_CORE_ASSERT(0, "Unknown render API was selected.");
62 return nullptr;
63}
#define SCL_CORE_ASSERT(expr,...)
Definition: assert.h:69
static render_context_api GetApi()

◆ Create() [2/2]

scl::shared< scl::vertex_buffer > scl::vertex_buffer::Create ( u32  Count,
const vertex_layout VertexLayout 
)
static
  • Create API specific vertex buffer by vertices count.
Parameters
Count- vertices in buffer count.
VertexLayout- layout of vertices in buffer.
Returns
vertex buffer pointer.

Definition at line 41 of file buffer.cpp.

42{
43 switch (render_context::GetApi())
44 {
45 case scl::render_context_api::OpenGL: return CreateShared<scl::gl_vertex_buffer>(Count, VertexLayout);
46 case scl::render_context_api::DirectX: SCL_CORE_ASSERT(0, "This API is currently unsupported."); return nullptr;
47 }
48
49 SCL_CORE_ASSERT(0, "Unknown render API was selected.");
50 return nullptr;
51}

◆ Free()

virtual void scl::vertex_buffer::Free ( )
pure virtual
  • Clear buffer from GPU memory function.
Parameters
None.
Returns
None.

Implemented in scl::gl_vertex_buffer.

◆ GetCount()

virtual u32 scl::vertex_buffer::GetCount ( ) const
pure virtual
  • Vertex biffer vertices count getter function.
Parameters
None.
Returns
vertices count.

Implemented in scl::gl_vertex_buffer.

◆ GetVertexLayout()

vertex_layout scl::vertex_buffer::GetVertexLayout ( ) const
inline

Vertex buffer getter/setter functions.

Vertex layout data getter function.

Definition at line 107 of file buffer.h.

107{ return VertexLayout; }

◆ Unbind()

virtual void scl::vertex_buffer::Unbind ( ) const
pure virtual
  • Unbind buffer from current render stage function.
Parameters
None.
Returns
None.

Implemented in scl::gl_vertex_buffer.

◆ Update()

virtual void scl::vertex_buffer::Update ( const void *  Vertices,
u32  Count 
)
pure virtual
  • Update buffer data function.
Parameters
Vertices- verices array.
Count- length of vertices array.
Returns
None.

Implemented in scl::gl_vertex_buffer.

Member Data Documentation

◆ VertexLayout

vertex_layout scl::vertex_buffer::VertexLayout {}
protected

Vertex buffer data.

Definition at line 103 of file buffer.h.


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