Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ion::Graphics::GL::CDrawContext Class Reference

#include <CDrawContext.h>

Inheritance diagram for ion::Graphics::GL::CDrawContext:
Inheritance graph
[legend]
Collaboration diagram for ion::Graphics::GL::CDrawContext:
Collaboration graph
[legend]

Public Member Functions

 CDrawContext ()
 
virtual void SetShader (SharedPointer< IShader > Shader)
 
virtual void SetVertexBuffer (uint const Index, SharedPointer< IVertexBuffer > VertexBuffer)
 
virtual void SetIndexBuffer (SharedPointer< IIndexBuffer > IndexBuffer)
 
virtual void SetUniform (string const &Name, SharedPointer< IUniform > Uniform)
 
virtual void SetTexture (string const &Name, SharedPointer< ITexture > Texture)
 
virtual void SetPrimitiveType (EPrimitiveType const PrimitiveType)
 
virtual void SetFeatureEnabled (EDrawFeature const Feature, bool const Enabled)
 
virtual void SetBlendMode (EBlendMode const BlendMode)
 
virtual void SetInstancingEnabled (bool const Enabled)
 
virtual set< string > GetUnboundUniforms () const
 
virtual void Draw (IDrawConfig *DrawConfig)
 
virtual IDrawConfigCreateDrawConfig ()
 
- Public Member Functions inherited from ion::Graphics::IDrawContext
virtual ~IDrawContext ()
 

Static Public Member Functions

static void Invalidate ()
 

Protected Member Functions

void LoadConfig (CDrawConfig *DrawConfig)
 
void LoadVertexBuffer (CDrawConfig *DrawConfig, SharedPointer< CVertexBuffer > VertexBuffer)
 
void InternalBindUniform (uint const Handle, SharedPointer< IUniform const > const Uniform)
 
bool InternalDrawSetup ()
 
void InternalDrawTeardown ()
 

Protected Attributes

SharedPointer< CShaderShader
 
vector< SharedPointer< CVertexBuffer > > VertexBuffers
 
SharedPointer< CIndexBufferIndexBuffer
 
map< string, SharedPointer< IUniform const > > Uniforms
 
map< string, SharedPointer< ITexture const > > Textures
 
map< uint, SharedPointer< IUniform const > > BoundUniforms
 
map< uint, SharedPointer< ITexture const > > BoundTextures
 
set< string > RequiredUniforms
 
set< string > UnboundAttributes
 
bool DrawWireframe = false
 
bool CullFront = false
 
bool CullBack = false
 
bool DisableDepthTest = false
 
bool DisableDepthWrite = false
 
uint PrimitiveType
 
EBlendMode BlendMode = EBlendMode::None
 
bool UseInstancing = false
 
vector< CDrawConfig * > Configs
 

Static Protected Attributes

static CDrawContextCurrentContext = nullptr
 

Constructor & Destructor Documentation

ion::Graphics::GL::CDrawContext::CDrawContext ( )

Member Function Documentation

IDrawConfig * ion::Graphics::GL::CDrawContext::CreateDrawConfig ( )
virtual
void ion::Graphics::GL::CDrawContext::Draw ( IDrawConfig DrawConfig)
virtual
set< string > ion::Graphics::GL::CDrawContext::GetUnboundUniforms ( ) const
virtual
void ion::Graphics::GL::CDrawContext::InternalBindUniform ( uint const  Handle,
SharedPointer< IUniform const > const  Uniform 
)
protected
bool ion::Graphics::GL::CDrawContext::InternalDrawSetup ( )
protected
void ion::Graphics::GL::CDrawContext::InternalDrawTeardown ( )
protected
void ion::Graphics::GL::CDrawContext::Invalidate ( )
static
void ion::Graphics::GL::CDrawContext::LoadConfig ( CDrawConfig DrawConfig)
protected
void ion::Graphics::GL::CDrawContext::LoadVertexBuffer ( CDrawConfig DrawConfig,
SharedPointer< CVertexBuffer VertexBuffer 
)
protected
void ion::Graphics::GL::CDrawContext::SetBlendMode ( EBlendMode const  BlendMode)
virtual
void ion::Graphics::GL::CDrawContext::SetFeatureEnabled ( EDrawFeature const  Feature,
bool const  Enabled 
)
virtual
void ion::Graphics::GL::CDrawContext::SetIndexBuffer ( SharedPointer< IIndexBuffer IndexBuffer)
virtual
void ion::Graphics::GL::CDrawContext::SetInstancingEnabled ( bool const  Enabled)
virtual
void ion::Graphics::GL::CDrawContext::SetPrimitiveType ( EPrimitiveType const  PrimitiveType)
virtual
void ion::Graphics::GL::CDrawContext::SetShader ( SharedPointer< IShader Shader)
virtual
void ion::Graphics::GL::CDrawContext::SetTexture ( string const &  Name,
SharedPointer< ITexture Texture 
)
virtual
void ion::Graphics::GL::CDrawContext::SetUniform ( string const &  Name,
SharedPointer< IUniform Uniform 
)
virtual
void ion::Graphics::GL::CDrawContext::SetVertexBuffer ( uint const  Index,
SharedPointer< IVertexBuffer VertexBuffer 
)
virtual

Member Data Documentation

EBlendMode ion::Graphics::GL::CDrawContext::BlendMode = EBlendMode::None
protected
map<uint, SharedPointer<ITexture const> > ion::Graphics::GL::CDrawContext::BoundTextures
protected
map<uint, SharedPointer<IUniform const> > ion::Graphics::GL::CDrawContext::BoundUniforms
protected
vector<CDrawConfig *> ion::Graphics::GL::CDrawContext::Configs
protected
bool ion::Graphics::GL::CDrawContext::CullBack = false
protected
bool ion::Graphics::GL::CDrawContext::CullFront = false
protected
CDrawContext * ion::Graphics::GL::CDrawContext::CurrentContext = nullptr
staticprotected
bool ion::Graphics::GL::CDrawContext::DisableDepthTest = false
protected
bool ion::Graphics::GL::CDrawContext::DisableDepthWrite = false
protected
bool ion::Graphics::GL::CDrawContext::DrawWireframe = false
protected
SharedPointer<CIndexBuffer> ion::Graphics::GL::CDrawContext::IndexBuffer
protected
uint ion::Graphics::GL::CDrawContext::PrimitiveType
protected
set<string> ion::Graphics::GL::CDrawContext::RequiredUniforms
protected
SharedPointer<CShader> ion::Graphics::GL::CDrawContext::Shader
protected
map<string, SharedPointer<ITexture const> > ion::Graphics::GL::CDrawContext::Textures
protected
set<string> ion::Graphics::GL::CDrawContext::UnboundAttributes
protected
map<string, SharedPointer<IUniform const> > ion::Graphics::GL::CDrawContext::Uniforms
protected
bool ion::Graphics::GL::CDrawContext::UseInstancing = false
protected
vector<SharedPointer<CVertexBuffer> > ion::Graphics::GL::CDrawContext::VertexBuffers
protected

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