Ion
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ion::gfx Namespace Reference

Classes

class  Attribute
 
class  AttributeArray
 An AttributeArray represents a collection of Attributes used to describe the vertices of a Shape. More...
 
class  BufferObject
 A BufferObject describes a generic array of data used, for example, to describe the vertices in a Shape or data retrieved from a framebuffer. More...
 
struct  BufferObjectElement
 Structure for clients to use to encapsulate Elements. More...
 
class  CubeMapTexture
 A CubeMapTexture object represents the image data and mipmaps associated with the six faces of a cube map. More...
 
class  FramebufferObject
 A FramebufferObject describes an off-screen framebuffer that can be drawn to and read from like a regular framebuffer. More...
 
class  GraphicsManager
 GraphicsManager manages the graphics library for an application. More...
 
class  Image
 An Image represents 2D image data that can be used in a texture supplied to a shader. More...
 
class  IndexBuffer
 An IndexBuffer is a type of BufferObject that contains the element indices of an array, e.g., a vertex index array. More...
 
class  Node
 A Node instance represents a node in a scene graph. More...
 
struct  ArrayInfo
 The below structs correspond to OpenGL "objects." For example, a BufferObject corresponds to an OpenGL buffer object, and a ProgramObject corresponds to an OpenGL program object. More...
 
struct  BufferInfo
 A BufferInfo corresponds to an OpenGL Buffer Object. More...
 
struct  FramebufferInfo
 A BufferInfo corresponds to an OpenGL Framebuffer Object. More...
 
struct  ProgramInfo
 A ProgramInfo corresponds to an OpenGL Program Object. More...
 
struct  RenderbufferInfo
 A RenderbufferInfo corresponds to an OpenGL Renderbuffer Object. More...
 
struct  SamplerInfo
 A SamplerInfo corresponds to an OpenGL Sampler Object. More...
 
struct  ShaderInfo
 A ShaderInfo corresponds to an OpenGL Shader Object. More...
 
struct  SyncInfo
 A SyncInfo corresponds to an OpenGL Sync Object. More...
 
struct  TransformFeedbackInfo
 A TransformFeedbackInfo corresponds to an OpenGL TransformFeedback Object. More...
 
struct  TextureInfo
 A TextureInfo corresponds to an OpenGL Texture Object. More...
 
struct  TimerInfo
 A TimerInfo corresponds to an OpenGL Timer Query Object. More...
 
class  Renderer
 The Renderer class handles rendering ION scene graphs using OpenGL. More...
 
class  ResourceBase
 ResourceBase is an internal abstract base class for managed resources. More...
 
class  ResourceHolder
 ResourceHolder is an internal base class for objects that hold resources managed by an outside entity, such as ResourceManager, allowing the resources to be associated opaquely with an instance of the object. More...
 
class  ResourceManager
 A ResourceManager is an interface for getting information about a Renderer's internal resources. More...
 
class  Sampler
 A Sampler object represents texture parameters that control how texture data is accessed in shaders. More...
 
class  ShaderBase
 Base class for Shader and ShaderProgram objects. More...
 
class  Shader
 A Shader represents an OpenGL shader stage. More...
 
class  ShaderInputBase
 
class  ShaderInput
 A ShaderInput instance represents a general shader input. More...
 
class  ShaderInputRegistry
 A ShaderInputRegistry is used to manage a collection of shader inputs to a specific ShaderProgram (both uniforms and attributes). More...
 
class  ShaderProgram
 A ShaderProgram represents an OpenGL shader program that can be applied to shapes. More...
 
class  Shape
 A Shape object represents a shape (vertices + indices) to draw. More...
 
class  StateTable
 A StateTable represents a collection of graphical state items that affect OpenGL rendering. More...
 
class  TextureBase
 This is an internal base class for all texture types. More...
 
class  Texture
 A Texture object represents the image data and mipmaps associated with a single texture. More...
 
class  TextureManager
 TextureManager is an internal Ion class, and is not exported for public use. More...
 
class  TraceCallExtractor
 The TraceCallExtractor class parses an OpenGL trace output generated by a GraphicsManager, segmenting it into a vector of calls with arguments. More...
 
class  TracingHelper
 This internal class is used by the GraphicsManager to print argument values when tracing OpenGL calls. More...
 
class  Uniform
 A Uniform instance represents a uniform shader argument. More...
 
class  UniformBlock
 A UniformBlock is a grouping of uniforms that can be easily shared between multiple Nodes; changing a Uniform in a UniformBlock will thus automatically change it for all Nodes that share the block. More...
 
class  UniformHolder
 A UniformHolder is a base class for an object that holds Uniforms. More...
 

Typedefs

typedef base::Variant< float,
math::VectorBase2f,
math::VectorBase3f,
math::VectorBase4f,
math::Matrix2f, math::Matrix3f,
math::Matrix4f,
BufferObjectElement
AttributeValueType
 
typedef base::ReferentPtr
< AttributeArray >::Type 
AttributeArrayPtr
 Convenience typedef for shared pointer to a AttributeArray. More...
 
typedef base::ReferentPtr
< BufferObject >::Type 
BufferObjectPtr
 Convenience typedef for shared pointer to a BufferObject. More...
 
typedef base::ReferentPtr
< CubeMapTexture >::Type 
CubeMapTexturePtr
 Convenience typedef for shared pointer to a CubeMapTexture. More...
 
typedef base::ReferentPtr
< FramebufferObject >::Type 
FramebufferObjectPtr
 Convenience typedef for shared pointer to a FramebufferObject. More...
 
typedef base::ReferentPtr
< GraphicsManager >::Type 
GraphicsManagerPtr
 Convenience typedef for shared pointer to a GraphicsManager. More...
 
typedef base::ReferentPtr
< Image >::Type 
ImagePtr
 
typedef base::ReferentPtr
< IndexBuffer >::Type 
IndexBufferPtr
 
typedef base::ReferentPtr
< Node >::Type 
NodePtr
 
typedef base::ReferentPtr
< Renderer >::Type 
RendererPtr
 Convenience typedef for shared pointer to a Renderer. More...
 
typedef intptr_t ResourceKey
 Type of identifiers used to disambiguate between multiple resources created for the same Ion object by the renderer. More...
 
typedef base::ReferentPtr
< Sampler >::Type 
SamplerPtr
 Convenience typedef for shared pointer to a Sampler. More...
 
typedef base::ReferentPtr
< Shader >::Type 
ShaderPtr
 Convenience typedef for shared pointers to Shaders. More...
 
typedef base::ReferentPtr
< ShaderProgram >::Type 
ShaderProgramPtr
 
typedef base::ReferentPtr
< TextureBase >::Type 
TextureBasePtr
 
typedef base::ReferentPtr
< ShaderInputRegistry >::Type 
ShaderInputRegistryPtr
 Convenience typedef for shared pointer to a ShaderInputRegistry. More...
 
typedef base::WeakReferentPtr
< ShaderProgram
ShaderProgramWeakPtr
 
typedef base::ReferentPtr
< Shape >::Type 
ShapePtr
 Convenience typedef for shared pointer to a Shape. More...
 
typedef base::ReferentPtr
< StateTable >::Type 
StateTablePtr
 Convenience typedef for shared pointer to a StateTable. More...
 
typedef base::ReferentPtr
< Texture >::Type 
TexturePtr
 Convenience typedef for shared pointer to a Texture. More...
 
typedef base::Variant< float,
int, uint32,
math::VectorBase2f,
math::VectorBase3f,
math::VectorBase4f,
math::VectorBase2i,
math::VectorBase3i,
math::VectorBase4i,
math::VectorBase2ui,
math::VectorBase3ui,
math::VectorBase4ui,
math::Matrix2f, math::Matrix3f,
math::Matrix4f,
CubeMapTexturePtr, TexturePtr
UniformValueType
 
typedef base::ReferentPtr
< UniformBlock >::Type 
UniformBlockPtr
 Convenience typedef for shared pointer to a UniformBlock. More...
 

Enumerations

enum  AttributeType {
  kFloatAttribute,
  kFloatVector2Attribute,
  kFloatVector3Attribute,
  kFloatVector4Attribute,
  kFloatMatrix2x2Attribute,
  kFloatMatrix3x3Attribute,
  kFloatMatrix4x4Attribute,
  kBufferObjectElementAttribute
}
 The AttributeType enum defines all supported attribute shader argument types. More...
 
enum  UniformType {
  kFloatUniform,
  kIntUniform,
  kUnsignedIntUniform,
  kCubeMapTextureUniform,
  kTextureUniform,
  kFloatVector2Uniform,
  kFloatVector3Uniform,
  kFloatVector4Uniform,
  kIntVector2Uniform,
  kIntVector3Uniform,
  kIntVector4Uniform,
  kUnsignedIntVector2Uniform,
  kUnsignedIntVector3Uniform,
  kUnsignedIntVector4Uniform,
  kMatrix2x2Uniform,
  kMatrix3x3Uniform,
  kMatrix4x4Uniform
}
 The UniformType enum defines all supported uniform shader argument types. More...
 

Functions

template<>
ION_API Attribute::ValueType Attribute::GetTypeByValue< math::VectorBase2f > ()
 
template<>
ION_API Attribute::ValueType Attribute::GetTypeByValue< math::VectorBase3f > ()
 
template<>
ION_API Attribute::ValueType Attribute::GetTypeByValue< math::VectorBase4f > ()
 
template<>
ION_API Attribute::ValueType Attribute::GetTypeByValue< math::Matrix2f > ()
 
template<>
ION_API Attribute::ValueType Attribute::GetTypeByValue< math::Matrix3f > ()
 
template<>
ION_API Attribute::ValueType Attribute::GetTypeByValue< math::Matrix4f > ()
 
template const math::Range1f GraphicsManager::GetCapabilityValue< math::Range1f > (Capability cap)
 
template const math::Range1i GraphicsManager::GetCapabilityValue< math::Range1i > (Capability cap)
 
template const
GraphicsManager::ShaderPrecision 
GraphicsManager::GetCapabilityValue< GraphicsManager::ShaderPrecision > (Capability cap)
 
template const std::vector< int > GraphicsManager::GetCapabilityValue< std::vector< int > > (Capability cap)
 
template<>
ResourceKey Renderer::ResourceManager::GetResourceKey< Renderer::VertexArrayResource > (ResourceBinder *resource_binder, const ResourceHolder *holder)
 VertexArrayResources must be created per shader program. More...
 
template<>
std::vector< ResourceKeyRenderer::ResourceManager::GetAllResourceKeys< Renderer::VertexArrayResource > (ResourceBinder *resource_binder)
 
template<>
ResourceKey Renderer::ResourceManager::GetResourceKey< Renderer::VertexArrayEmulatorResource > (ResourceBinder *resource_binder, const ResourceHolder *holder)
 
template<>
std::vector< ResourceKeyRenderer::ResourceManager::GetAllResourceKeys< Renderer::VertexArrayEmulatorResource > (ResourceBinder *resource_binder)
 
template<>
ResourceKey Renderer::ResourceManager::GetResourceKey< Renderer::ShaderInputRegistryResource > (ResourceBinder *resource_binder, const ResourceHolder *holder)
 
template<>
ResourceKey Renderer::ResourceManager::GetResourceKey< Renderer::FramebufferResource > (ResourceBinder *resource_binder, const ResourceHolder *holder)
 
template<>
ResourceKey Renderer::ResourceManager::GetResourceKey< Renderer::ShaderProgramResource > (ResourceBinder *resource_binder, const ResourceHolder *holder)
 
template<>
std::vector< ResourceKeyRenderer::ResourceManager::GetAllResourceKeys< Renderer::ShaderProgramResource > (ResourceBinder *resource_binder)
 
template<>
ION_API std::vector
< ResourceManager::ResourceRequest
< AttributeArray,
ResourceManager::ArrayInfo > > * 
ResourceManager::GetResourceRequestVector< AttributeArray, ResourceManager::ArrayInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::ResourceRequest
< BufferObject,
ResourceManager::BufferInfo > > * 
ResourceManager::GetResourceRequestVector< BufferObject, ResourceManager::BufferInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::ResourceRequest
< FramebufferObject,
ResourceManager::FramebufferInfo > > * 
ResourceManager::GetResourceRequestVector< FramebufferObject, ResourceManager::FramebufferInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::DataRequest
< ResourceManager::PlatformInfo > > * 
ResourceManager::GetDataRequestVector< ResourceManager::PlatformInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::ResourceRequest
< ShaderProgram,
ResourceManager::ProgramInfo > > * 
ResourceManager::GetResourceRequestVector< ShaderProgram, ResourceManager::ProgramInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::ResourceRequest
< Sampler,
ResourceManager::SamplerInfo > > * 
ResourceManager::GetResourceRequestVector< Sampler, ResourceManager::SamplerInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::ResourceRequest
< Shader,
ResourceManager::ShaderInfo > > * 
ResourceManager::GetResourceRequestVector< Shader, ResourceManager::ShaderInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::ResourceRequest
< TextureBase,
ResourceManager::TextureInfo > > * 
ResourceManager::GetResourceRequestVector< TextureBase, ResourceManager::TextureInfo > ()
 
template<>
ION_API std::vector
< ResourceManager::DataRequest
< ResourceManager::TextureImageInfo > > * 
ResourceManager::GetDataRequestVector< ResourceManager::TextureImageInfo > ()
 
 ION_INSTANTIATE_GETENUMSTRING (Capability)
 
 ION_INSTANTIATE_GETENUMSTRING (BlendEquation)
 
 ION_INSTANTIATE_GETENUMSTRING (BlendFunctionFactor)
 
 ION_INSTANTIATE_GETENUMSTRING (CullFaceMode)
 
 ION_INSTANTIATE_GETENUMSTRING (DepthFunction)
 
 ION_INSTANTIATE_GETENUMSTRING (FrontFaceMode)
 
 ION_INSTANTIATE_GETENUMSTRING (HintMode)
 
 ION_INSTANTIATE_GETENUMSTRING (StencilFunction)
 
 ION_INSTANTIATE_GETENUMSTRING (StencilOperation)
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase2f > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase3f > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase4f > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase2i > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase3i > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase4i > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase2ui > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase3ui > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::VectorBase4ui > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::Matrix2f > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::Matrix3f > ()
 
template<>
ION_API Uniform::ValueType Uniform::GetTypeByValue< math::Matrix4f > ()
 
void UpdateStateTable (int default_width, int default_height, GraphicsManager *gm, StateTable *st)
 Public functions. More...
 
void ClearFromStateTable (const StateTable &new_state, StateTable *save_state, GraphicsManager *gm)
 This internal function can be used to update the Clear()-related OpenGL state (dithering, scissor test, write masks, scissor box, and clear values) managed by a GraphicsManager to match a StateTable, and updates save_state to contain the new state. More...
 
void UpdateSettingsInStateTable (StateTable *st, GraphicsManager *gm)
 This internal function can be used to update a StateTable instance to match the current OpenGL settings as provided by a GraphicsManager instance. More...
 
void UpdateFromStateTable (const StateTable &new_state, StateTable *save_state, GraphicsManager *gm)
 This internal function can be used to update the OpenGL state managed by a GraphicsManager to match a StateTable, with respect to another StateTable that contains the current state. More...
 

Typedef Documentation

Convenience typedef for shared pointer to a AttributeArray.

Definition at line 186 of file attributearray.h.

typedef base::Variant<float, math::VectorBase2f, math::VectorBase3f, math::VectorBase4f, math::Matrix2f, math::Matrix3f, math::Matrix4f, BufferObjectElement> ion::gfx::AttributeValueType

Definition at line 53 of file attribute.h.

Convenience typedef for shared pointer to a BufferObject.

Definition at line 31 of file bufferobject.h.

Convenience typedef for shared pointer to a CubeMapTexture.

Definition at line 115 of file cubemaptexture.h.

Convenience typedef for shared pointer to a FramebufferObject.

Definition at line 209 of file framebufferobject.h.

Convenience typedef for shared pointer to a GraphicsManager.

Definition at line 435 of file graphicsmanager.h.

Definition at line 29 of file image.h.

Definition at line 38 of file indexbuffer.h.

Definition at line 33 of file node.h.

Convenience typedef for shared pointer to a Renderer.

Definition at line 428 of file renderer.h.

typedef intptr_t ion::gfx::ResourceKey

Type of identifiers used to disambiguate between multiple resources created for the same Ion object by the renderer.

Definition at line 27 of file resourcebase.h.

Convenience typedef for shared pointer to a Sampler.

Definition at line 48 of file resourcemanager.h.

Convenience typedef for shared pointer to a ShaderInputRegistry.

Definition at line 42 of file shaderinputregistry.h.

Definition at line 50 of file resourcemanager.h.

Convenience typedef for shared pointers to Shaders.

Definition at line 49 of file resourcemanager.h.

Convenience typedef for shared pointer to a Shape.

Definition at line 167 of file shape.h.

Convenience typedef for shared pointer to a StateTable.

Definition at line 705 of file statetable.h.

Definition at line 51 of file resourcemanager.h.

Convenience typedef for shared pointer to a Texture.

Definition at line 333 of file texture.h.

Convenience typedef for shared pointer to a UniformBlock.

Definition at line 58 of file uniformblock.h.

typedef base::Variant< float, int, uint32, math::VectorBase2f, math::VectorBase3f, math::VectorBase4f, math::VectorBase2i, math::VectorBase3i, math::VectorBase4i, math::VectorBase2ui, math::VectorBase3ui, math::VectorBase4ui, math::Matrix2f, math::Matrix3f, math::Matrix4f, CubeMapTexturePtr, TexturePtr> ion::gfx::UniformValueType

Definition at line 70 of file uniform.h.

Enumeration Type Documentation

The AttributeType enum defines all supported attribute shader argument types.

Enumerator
kFloatAttribute 

Scalar types.

kFloatVector2Attribute 

Vector types.

kFloatVector3Attribute 
kFloatVector4Attribute 
kFloatMatrix2x2Attribute 

Matrix types.

kFloatMatrix3x3Attribute 
kFloatMatrix4x4Attribute 
kBufferObjectElementAttribute 

Vertex buffer element.

Definition at line 33 of file attribute.h.

The UniformType enum defines all supported uniform shader argument types.

Enumerator
kFloatUniform 

Scalar types.

kIntUniform 
kUnsignedIntUniform 
kCubeMapTextureUniform 

Texture types.

kTextureUniform 
kFloatVector2Uniform 

Vector types.

kFloatVector3Uniform 
kFloatVector4Uniform 
kIntVector2Uniform 
kIntVector3Uniform 
kIntVector4Uniform 
kUnsignedIntVector2Uniform 
kUnsignedIntVector3Uniform 
kUnsignedIntVector4Uniform 
kMatrix2x2Uniform 

Matrix types.

kMatrix3x3Uniform 
kMatrix4x4Uniform 

Definition at line 37 of file uniform.h.

Function Documentation

Definition at line 67 of file attribute.cc.

References kFloatMatrix2x2Attribute.

Definition at line 71 of file attribute.cc.

References kFloatMatrix3x3Attribute.

Definition at line 75 of file attribute.cc.

References kFloatMatrix4x4Attribute.

template<>
ION_API Attribute::ValueType ion::gfx::Attribute::GetTypeByValue< math::VectorBase2f > ( )

Definition at line 55 of file attribute.cc.

References kFloatVector2Attribute.

template<>
ION_API Attribute::ValueType ion::gfx::Attribute::GetTypeByValue< math::VectorBase3f > ( )

Definition at line 59 of file attribute.cc.

References kFloatVector3Attribute.

template<>
ION_API Attribute::ValueType ion::gfx::Attribute::GetTypeByValue< math::VectorBase4f > ( )

Definition at line 63 of file attribute.cc.

References kFloatVector4Attribute.

void ion::gfx::ClearFromStateTable ( const StateTable &  new_state,
StateTable *  save_state,
GraphicsManager *  gm 
)

This internal function can be used to update the Clear()-related OpenGL state (dithering, scissor test, write masks, scissor box, and clear values) managed by a GraphicsManager to match a StateTable, and updates save_state to contain the new state.

It calls the GraphicsManager to apply changes for all Clear()-related differences between new_state and save_state.

Definition at line 714 of file updatestatetable.cc.

References ion::gfx::StateTable::GetSetValueCount(), ION_UPDATE_CLEAR_ONLY_VALUE, ION_UPDATE_CLEAR_VALUE, ion::gfx::StateTable::kDither, and ion::gfx::StateTable::kScissorTest.

template const std::vector<int> ion::gfx::GraphicsManager::GetCapabilityValue< std::vector< int > > ( Capability  cap)
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( Capability  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( BlendEquation  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( BlendFunctionFactor  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( CullFaceMode  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( DepthFunction  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( FrontFaceMode  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( HintMode  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( StencilFunction  )
ion::gfx::ION_INSTANTIATE_GETENUMSTRING ( StencilOperation  )
template<>
std::vector<ResourceKey> ion::gfx::Renderer::ResourceManager::GetAllResourceKeys< Renderer::ShaderProgramResource > ( ResourceBinder *  resource_binder)

Definition at line 1655 of file renderer.cc.

template<>
std::vector<ResourceKey> ion::gfx::Renderer::ResourceManager::GetAllResourceKeys< Renderer::VertexArrayEmulatorResource > ( ResourceBinder *  resource_binder)

Definition at line 1620 of file renderer.cc.

template<>
std::vector<ResourceKey> ion::gfx::Renderer::ResourceManager::GetAllResourceKeys< Renderer::VertexArrayResource > ( ResourceBinder *  resource_binder)

Definition at line 1608 of file renderer.cc.

template<>
ResourceKey ion::gfx::Renderer::ResourceManager::GetResourceKey< Renderer::FramebufferResource > ( ResourceBinder *  resource_binder,
const ResourceHolder *  holder 
)

Definition at line 1633 of file renderer.cc.

template<>
ResourceKey ion::gfx::Renderer::ResourceManager::GetResourceKey< Renderer::ShaderInputRegistryResource > ( ResourceBinder *  resource_binder,
const ResourceHolder *  holder 
)

Definition at line 1626 of file renderer.cc.

template<>
ResourceKey ion::gfx::Renderer::ResourceManager::GetResourceKey< Renderer::ShaderProgramResource > ( ResourceBinder *  resource_binder,
const ResourceHolder *  holder 
)
template<>
ResourceKey ion::gfx::Renderer::ResourceManager::GetResourceKey< Renderer::VertexArrayEmulatorResource > ( ResourceBinder *  resource_binder,
const ResourceHolder *  holder 
)

Definition at line 1614 of file renderer.cc.

template<>
ResourceKey ion::gfx::Renderer::ResourceManager::GetResourceKey< Renderer::VertexArrayResource > ( ResourceBinder *  resource_binder,
const ResourceHolder *  holder 
)

VertexArrayResources must be created per shader program.

This will also be unique across multiple ResourceBinders.

Definition at line 1602 of file renderer.cc.

Definition at line 161 of file uniform.cc.

References kMatrix2x2Uniform.

Definition at line 165 of file uniform.cc.

References kMatrix3x3Uniform.

Definition at line 169 of file uniform.cc.

References kMatrix4x4Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase2f > ( )

Definition at line 125 of file uniform.cc.

References kFloatVector2Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase2i > ( )

Definition at line 137 of file uniform.cc.

References kIntVector2Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase2ui > ( )

Definition at line 149 of file uniform.cc.

References kUnsignedIntVector2Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase3f > ( )

Definition at line 129 of file uniform.cc.

References kFloatVector3Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase3i > ( )

Definition at line 141 of file uniform.cc.

References kIntVector3Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase3ui > ( )

Definition at line 153 of file uniform.cc.

References kUnsignedIntVector3Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase4f > ( )

Definition at line 133 of file uniform.cc.

References kFloatVector4Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase4i > ( )

Definition at line 145 of file uniform.cc.

References kIntVector4Uniform.

template<>
ION_API Uniform::ValueType ion::gfx::Uniform::GetTypeByValue< math::VectorBase4ui > ( )

Definition at line 157 of file uniform.cc.

References kUnsignedIntVector4Uniform.

void ion::gfx::UpdateFromStateTable ( const StateTable &  new_state,
StateTable *  save_state,
GraphicsManager *  gm 
)

This internal function can be used to update the OpenGL state managed by a GraphicsManager to match a StateTable, with respect to another StateTable that contains the current state.

It calls the GraphicsManager to apply changes for all differences between old_state and new_state. Note that changes in clear state (write masks and scissor box) will be saved to save_state, but clear color, depth and stencil values are not updated or checked at all; use ClearFromStateTable() instead.

Definition at line 744 of file updatestatetable.cc.

References ion::gfx::StateTable::AreCapabilitiesSame(), ion::gfx::StateTable::AreSettingsEnforced(), DCHECK, ion::gfx::StateTable::GetSetCapabilityCount(), ion::gfx::StateTable::GetSetValueCount(), ION_UPDATE_CLEAR_VALUE, and ION_UPDATE_VALUE.

void ion::gfx::UpdateSettingsInStateTable ( StateTable *  st,
GraphicsManager *  gm 
)

This internal function can be used to update a StateTable instance to match the current OpenGL settings as provided by a GraphicsManager instance.

In contrast to UpdateStateTable(), above, only the values that are already set in the StateTable are updated.

Definition at line 736 of file updatestatetable.cc.

References DCHECK.

void ion::gfx::UpdateStateTable ( int  default_width,
int  default_height,
GraphicsManager *  gm,
StateTable *  st 
)

Public functions.

This internal function can be used to update a StateTable instance to match the current OpenGL settings as provided by a GraphicsManager instance.

The default width and height are passed in to allow viewport and scissor box values to be set correctly.

Definition at line 683 of file updatestatetable.cc.

References DCHECK, ion::base::Allocatable::GetAllocatorForLifetime(), ion::base::kShortTerm, and ion::gfx::StateTable::Reset().

Referenced by ion::gfx::Renderer::UpdateStateFromOpenGL().