Classes | Enumerations | Functions
ionGraphics

Description

ionGraphics is an abstract interface for hardware rendering libraries, i.e. OpenGL and DirectX It is implemented for OpenGL in ionGraphicsGL. A DirectX implementation is not yet available.

Classes

class  ion::IGraphicsImplementation
 
class  ion::CGraphicsAPI
 
class  ion::Graphics::IDrawConfig
 Alternative to Pipeline State rendering. Represents a single draw call. More...
 
class  ion::Graphics::IDrawContext
 Alternative to Pipeline State rendering. Represents the context for one or many draw calls. More...
 
class  ion::Graphics::IGraphicsContext
 
class  ion::Graphics::IIndexBuffer
 
class  ion::Graphics::IPipelineState
 
class  ion::Graphics::IRenderTarget
 
class  ion::Graphics::IDepthBuffer
 
class  ion::Graphics::IFrameBuffer
 
class  ion::Graphics::IVertexShader
 
class  ion::Graphics::IGeometryShader
 
class  ion::Graphics::IPixelShader
 
class  ion::Graphics::IShaderProgram
 
class  ion::Graphics::ITexture
 
class  ion::Graphics::ITexture2D
 
class  ion::Graphics::ITexture2DArray
 
class  ion::Graphics::ITexture3D
 
class  ion::Graphics::ITextureCubeMap
 
class  ion::Graphics::IUniform
 Abstract interface for anything which can be uploaded as a shader uniform. More...
 
class  ion::Graphics::IUniformTyped< T >
 Abstract interface for IUniform with known type. More...
 
class  ion::Graphics::CUniformReference< T >
 Implementation of IUniformTyped that stores a (non-owning) reference to value. More...
 
class  ion::Graphics::CUniformCallback< T >
 Implementation of IUniformTyped that uses a given lambda callback to provide uniform value. More...
 
class  ion::Graphics::CUniformValue< T >
 Implementation of IUniformTyped that stores a copy of a given value for uniform upload. More...
 
class  ion::Graphics::CUniform< T >
 Helper class to easily add a uniform as a member or local variable. More...
 
struct  ion::Graphics::SInputLayoutElement
 
class  ion::Graphics::IVertexBuffer
 

Enumerations

enum  ion::Graphics::EValueType {
  ion::Graphics::EValueType::Error = 0, ion::Graphics::Float = 1, ion::Graphics::EValueType::Float2 = 2, ion::Graphics::EValueType::Float3 = 3,
  ion::Graphics::EValueType::Float4 = 4, ion::Graphics::EValueType::Matrix4x4 = 5, ion::Graphics::Double = 6, ion::Graphics::EValueType::SignedInt8 = 7,
  ion::Graphics::EValueType::SignedInt16 = 8, ion::Graphics::EValueType::SignedInt32 = 9, ion::Graphics::EValueType::UnsignedInt8 = 10, ion::Graphics::EValueType::UnsignedInt16 = 11,
  ion::Graphics::EValueType::UnsignedInt32 = 12
}
 Standard type enum used through module. More...
 
enum  ion::Graphics::EScalarType {
  ion::Graphics::EScalarType::Error = 0, ion::Graphics::Float = 1, ion::Graphics::Double = 2, ion::Graphics::EScalarType::SignedInt8 = 3,
  ion::Graphics::EScalarType::SignedInt16 = 4, ion::Graphics::EScalarType::SignedInt32 = 5, ion::Graphics::EScalarType::UnsignedInt8 = 6, ion::Graphics::EScalarType::UnsignedInt16 = 7,
  ion::Graphics::EScalarType::UnsignedInt32 = 8
}
 Value types that exclude vector types. More...
 
enum  ion::Graphics::EAttributeType {
  ion::Graphics::Float = 0, ion::Graphics::Float = 1, ion::Graphics::Float = 1, ion::Graphics::Int = 1,
  ion::Graphics::UnsignedInt = 2, ion::Graphics::Double = 3, ion::Graphics::Double = 6, ion::Graphics::Double = 2
}
 Possible types for attributes i.e. vertex buffer contents. More...
 
enum  ion::Graphics::EDrawFeature {
  ion::Graphics::EDrawFeature::Wireframe = 0, ion::Graphics::EDrawFeature::CullFront = 1, ion::Graphics::EDrawFeature::CullBack = 2, ion::Graphics::EDrawFeature::DisableDepthTest = 3,
  ion::Graphics::EDrawFeature::DisableDepthWrite = 4, ion::Graphics::EDrawFeature::PolygonOffset = 5
}
 
enum  ion::Graphics::EBlendMode { ion::Graphics::EBlendMode::None = 0, ion::Graphics::EBlendMode::Alpha = 1, ion::Graphics::EBlendMode::Additive = 2 }
 
enum  ion::Graphics::EPrimitiveType { ion::Graphics::EPrimitiveType::Triangle = 0, ion::Graphics::EPrimitiveType::Line = 1, ion::Graphics::EPrimitiveType::LineStrip = 2, ion::Graphics::EPrimitiveType::Point = 3 }
 
enum  ion::Graphics::EUniformType {
  ion::Graphics::EUniformType::Float = 0, ion::Graphics::EUniformType::Float2 = 1, ion::Graphics::EUniformType::Float3 = 2, ion::Graphics::EUniformType::Float4 = 3,
  ion::Graphics::EUniformType::Int = 4, ion::Graphics::EUniformType::Int2 = 5, ion::Graphics::EUniformType::Int3 = 6, ion::Graphics::EUniformType::Int4 = 7,
  ion::Graphics::EUniformType::Matrix4x4 = 8, ion::Graphics::EUniformType::FloatArray = 9, ion::Graphics::EUniformType::Float2Array = 10, ion::Graphics::EUniformType::Float3Array = 11,
  ion::Graphics::EUniformType::Matrix4x4Array = 12, ion::Graphics::EUniformType::Bool = 13
}
 Possible types for uniforms. More...
 

Functions

size_t ion::Graphics::GetValueTypeSize (EValueType const ValueType)
 Gets the sizeof() for a given type. More...
 
string ion::Graphics::GetValueTypeString (EValueType const ValueType)
 Gets the string equivalent of the given enum. More...
 
size_t ion::Graphics::GetAttributeTypeSize (EAttributeType const AttributeType)
 Gets the sizeof() for a given attribute type. More...
 
string ion::Graphics::GetAttributeTypeString (EAttributeType const AttributeType)
 Gets the string equivalent of the given enum. More...
 
string ion::Graphics::GetUniformTypeString (EUniformType const UniformType)
 Converts uniform enum to equivalent string form. More...
 

Enumeration Type Documentation

Possible types for attributes i.e. vertex buffer contents.

Enumerator
Float 
Float 
Float 
Int 
UnsignedInt 
Double 
Double 
Double 
Enumerator
None 
Alpha 
Additive 
Enumerator
Wireframe 
CullFront 
CullBack 
DisableDepthTest 
DisableDepthWrite 
PolygonOffset 
Enumerator
Triangle 
Line 
LineStrip 
Point 

Value types that exclude vector types.

Enumerator
Error 
Float 
Double 
SignedInt8 
SignedInt16 
SignedInt32 
UnsignedInt8 
UnsignedInt16 
UnsignedInt32 

Possible types for uniforms.

Enumerator
Float 
Float2 
Float3 
Float4 
Int 
Int2 
Int3 
Int4 
Matrix4x4 
FloatArray 
Float2Array 
Float3Array 
Matrix4x4Array 
Bool 

Standard type enum used through module.

Enumerator
Error 
Float 
Float2 
Float3 
Float4 
Matrix4x4 
Double 
SignedInt8 
SignedInt16 
SignedInt32 
UnsignedInt8 
UnsignedInt16 
UnsignedInt32 

Function Documentation

size_t ion::Graphics::GetAttributeTypeSize ( EAttributeType const  AttributeType)

Gets the sizeof() for a given attribute type.

string ion::Graphics::GetAttributeTypeString ( EAttributeType const  AttributeType)

Gets the string equivalent of the given enum.

string ion::Graphics::GetUniformTypeString ( EUniformType const  UniformType)

Converts uniform enum to equivalent string form.

size_t ion::Graphics::GetValueTypeSize ( EValueType const  ValueType)

Gets the sizeof() for a given type.

string ion::Graphics::GetValueTypeString ( EValueType const  ValueType)

Gets the string equivalent of the given enum.