FVertexBufferOpenGL

namespace marengine
class FBufferFactoryOpenGL : public FBufferFactory

Public Functions

FShaderBuffer *emplaceSSBO() final
FShaderBuffer *emplaceUBO() final
FVertexBuffer *emplaceVBO() final
FIndexBuffer *emplaceIBO() final

Private Members

FBufferStorageOpenGL m_storage

Friends

friend class FRenderContextOpenGL
class FBufferStorageOpenGL : public FBufferStorage

Public Functions

uint32 getCountSSBO() const final
uint32 getCountUBO() const final
uint32 getCountVBO() const final
uint32 getCountIBO() const final
FShaderBuffer *getSSBO(int32 index) const final
FShaderBuffer *getUBO(int32 index) const final
FVertexBuffer *getVBO(int32 index) const final
FIndexBuffer *getIBO(int32 index) const final
void reset() final

Private Members

std::vector<FShaderStorageBufferOpenGL> m_ssbos
std::vector<FUniformBufferOpenGL> m_ubos
std::vector<FVertexBufferOpenGL> m_vbos
std::vector<FIndexBufferOpenGL> m_ibos

Friends

friend class FBufferFactoryOpenGL
class FIndexBufferOpenGL : public FIndexBuffer

Public Functions

void create(int64 memoryToAllocate) final
void free() final
void destroy() final
void bind() const final
void update(const FIndicesArray &indices) const final
void update(const float *data, uint32 offset, uint32 sizeOfData) const final
void update(const int32 *data, uint32 offset, uint32 sizeOfData) const final
void update(const uint32 *data, uint32 offset, uint32 sizeOfData) const final

Private Members

uint32 m_id = {0}

Private Static Attributes

constexpr GLenum m_glBufferType = {GL_ELEMENT_ARRAY_BUFFER}
class FShaderStorageBufferOpenGL : public FShaderBuffer

Public Functions

void create() final
void free() final
void destroy() final
void bind() const final
void update(const float *data, uint32 offset, uint32 sizeOfData) const final
void update(const int32 *data, uint32 offset, uint32 sizeOfData) const final
void update(const uint32 *data, uint32 offset, uint32 sizeOfData) const final

Private Members

uint32 m_id = {0}

Private Static Attributes

constexpr GLenum m_glBufferType = {GL_SHADER_STORAGE_BUFFER}
class FUniformBufferOpenGL : public FShaderBuffer

Public Functions

void create() final
void free() final
void destroy() final
void bind() const final
void update(const float *data, uint32 offset, uint32 sizeOfData) const final
void update(const int32 *data, uint32 offset, uint32 sizeOfData) const final
void update(const uint32 *data, uint32 offset, uint32 sizeOfData) const final

Private Members

uint32 m_id = {0}

Private Static Attributes

constexpr GLenum m_glBufferType = {GL_UNIFORM_BUFFER}
class FVertexBufferOpenGL : public FVertexBuffer

Public Functions

void create(int64 memoryToAllocate) final
void free() final
void destroy() final
void bind() const final
void update(const FVertexArray &vertices) const final
void update(const float *data, uint32 offset, uint32 sizeOfData) const final
void update(const int32 *data, uint32 offset, uint32 sizeOfData) const final
void update(const uint32 *data, uint32 offset, uint32 sizeOfData) const final

Private Members

uint32 m_id = {0}

Private Static Attributes

constexpr GLenum m_glBufferType = {GL_ARRAY_BUFFER}