FPipeline

namespace marengine
class FPipeline : public IPipeline

Subclassed by FPipelineMesh

Public Functions

void passBufferStorage(FBufferStorage *pBufferStorage) final
void passShadersStorage(FShadersStorage *pShadersStorage) final
void passMaterialStorage(FMaterialStorage *pMaterialStorage) final

Protected Attributes

FBufferStorage *p_pBufferStorage = {nullptr}
FShadersStorage *p_pShadersStorage = {nullptr}
FMaterialStorage *p_pMaterialStorage = {nullptr}
class FPipelineFactory : public IPipelineFactory

Subclassed by FPipelineFactoryOpenGL

Public Functions

void fillPipelineFor(FPipelineMeshColor *const pPipeline, FMeshBatchStaticColor *const pBatch) const final
void fillPipelineFor(FPipelineMeshTex2D *const pPipeline, FMeshBatchStaticTex2D *const pBatch) const final
template<typename TMeshBatch>
FPipelineMesh *emplaceMeshAndFill(TMeshBatch *pMeshBatch)
class FPipelineMesh : public FPipeline

Subclassed by FPipelineMeshColor, FPipelineMeshTex2D

Public Functions

void passVertexBuffer(int32 i) final
void passIndexBuffer(int32 i) final
void passTransformSSBO(int32 i) final
void passCameraSSBO(int32 i) final
void passPointLightSSBO(int32 i) final
void passShaderPipeline(int32 i) final
uint32 getIndicesCount() const final

Protected Attributes

int32 p_vboIndex = {-1}
int32 p_transformIndex = {-1}
int32 p_shaderIndex = {-1}
int32 p_iboIndex = {-1}
int32 p_camIndex = {-1}
int32 p_pointLightIndex = {-1}
class FPipelineMeshColor : public FPipelineMesh

Subclassed by FPipelineMeshColorOpenGL

Public Functions

void passColorSSBO(int32 i) final

Protected Attributes

int32 p_colorIndex = {-1}
class FPipelineMeshTex2D : public FPipelineMesh

Subclassed by FPipelineMeshTex2DOpenGL

Public Functions

void passSamplerArray(const std::array<const char*, 32> &samplerArray) final
int32 discoverSamplerLocation(const char *samplerName) const = 0
void passTexture(int32 i) final
auto getSamplerLocations() -> decltype(m_samplerLocations)&

Protected Attributes

std::unordered_map<const char*, int32> m_samplerLocations
std::array<const char*, 32> m_samplerNames
std::array<int32, 32> m_textures
uint32 m_texturesIndex = {0}
class FPipelineStorage : public IPipelineStorage

Subclassed by FPipelineStorageOpenGL