VoltAir
|
Wrappers around GL resources, and classes managing draw calls and render lists. More...
Files | |
file | PointerDeclarations.h |
File containing forward declarations for renderer types and smart pointers. | |
file | RendererCommon.h |
Header declaring and including types common to renderer classes such as Vector2. Also includes GL headers and forward declarations for renderer types. | |
Classes | |
struct | Attribute |
The definition of a vertex attribute, such as a position vector, or a texture coordinate. More... | |
class | AttributeArray< T > |
A helper class to access and iterate over an interleaved vertex attribute array. More... | |
class | AttributeArray< T >::Iterator |
An iterator over a vertex attribute array. More... | |
struct | AttributeSet |
A list of vertex attributes. More... | |
class | DebugRenderer |
A class with helper methods for rendering primitives like lines, for debug visualization. More... | |
class | DirectTexture |
A texture which points to a user managed GL texture object. More... | |
class | InstancedShader |
Shader which has instanced values for uniforms and other GL state. More... | |
class | InstancedShaderBase< TShaderImpl > |
Helper class to implement InstancedShader subclasses, by managing a shared Shader. More... | |
class | Mesh |
Mesh composed of vertices, and attributes for each vertex. More... | |
class | MeshInstance |
Mesh bound to a specific Shader. More... | |
class | RenderableInterface |
Callback set in a RenderNode which can be used to issues draw calls. More... | |
class | Renderer |
Class managing GL state switches and draw calls. More... | |
class | RenderList |
List of RenderNodes, sorted by z-depth for rendering. More... | |
struct | RenderNode |
Node which queues a callback (RenderableInterface) or MeshInstance for rendering. More... | |
class | Shader |
Shader program abstract base class. More... | |
class | ShaderBase |
Implementation of Shader which compiles itself from shader code. More... | |
class | SingletonInstancedShaderBase< TShaderImpl > |
A helper to define singletons for InstancedShaders. More... | |
class | SpriteShader |
Shader use by Renderer to draw textured rectangles (sprites). More... | |
class | Texture |
Texture abstract base class. More... | |
Typedefs | |
typedef std::shared_ptr < Attribute > | AttributePtr |
Shared pointer typedef for Attribute. More... | |
typedef std::weak_ptr< Attribute > | AttributeWeakPtr |
Weak shared pointer typedef for Attribute. More... | |
typedef std::shared_ptr < AttributeSet > | AttributeSetPtr |
Shared pointer typedef for AttributeSet. More... | |
typedef std::weak_ptr < AttributeSet > | AttributeSetWeakPtr |
Weak shared pointer typedef for AttributeSet. More... | |
typedef std::shared_ptr < DebugRenderer > | DebugRendererPtr |
Shared pointer typedef for DebugRenderer. More... | |
typedef std::weak_ptr < DebugRenderer > | DebugRendererWeakPtr |
Weak shared pointer typedef for DebugRenderer. More... | |
typedef std::shared_ptr < DirectTexture > | DirectTexturePtr |
Shared pointer typedef for DirectTexture. More... | |
typedef std::weak_ptr < DirectTexture > | DirectTextureWeakPtr |
Weak shared pointer typedef for DirectTexture. More... | |
typedef std::shared_ptr < InstancedShader > | InstancedShaderPtr |
Shared pointer typedef for InstancedShader. More... | |
typedef std::weak_ptr < InstancedShader > | InstancedShaderWeakPtr |
Weak shared pointer typedef for InstancedShader. More... | |
typedef std::shared_ptr< Mesh > | MeshPtr |
Shared pointer typedef for Mesh. More... | |
typedef std::weak_ptr< Mesh > | MeshWeakPtr |
Weak shared pointer typedef for Mesh. More... | |
typedef std::shared_ptr < MeshInstance > | MeshInstancePtr |
Shared pointer typedef for MeshInstance. More... | |
typedef std::weak_ptr < MeshInstance > | MeshInstanceWeakPtr |
Weak shared pointer typedef for MeshInstance. More... | |
typedef std::shared_ptr < RenderList > | RenderListPtr |
Shared pointer typedef for RenderList. More... | |
typedef std::weak_ptr< RenderList > | RenderListWeakPtr |
Weak shared pointer typedef for RenderList. More... | |
typedef std::shared_ptr < RenderNode > | RenderNodePtr |
Shared pointer typedef for RenderNode. More... | |
typedef std::weak_ptr< RenderNode > | RenderNodeWeakPtr |
Weak shared pointer typedef for RenderNode. More... | |
typedef std::shared_ptr< Shader > | ShaderPtr |
Shared pointer typedef for Shader. More... | |
typedef std::weak_ptr< Shader > | ShaderWeakPtr |
Weak shared pointer typedef for Shader. More... | |
typedef std::shared_ptr < ShaderBase > | ShaderBasePtr |
Shared pointer typedef for ShaderBase. More... | |
typedef std::weak_ptr< ShaderBase > | ShaderBaseWeakPtr |
Weak shared pointer typedef for ShaderBase. More... | |
typedef std::shared_ptr < SpriteShader > | SpriteShaderPtr |
Shared pointer typedef for SpriteShader. More... | |
typedef std::weak_ptr < SpriteShader > | SpriteShaderWeakPtr |
Weak shared pointer typedef for SpriteShader. More... | |
typedef std::shared_ptr< Texture > | TexturePtr |
Shared pointer typedef for Texture. More... | |
typedef std::weak_ptr< Texture > | TextureWeakPtr |
Weak shared pointer typedef for Texture. More... | |
Wrappers around GL resources, and classes managing draw calls and render lists.
This module is a simple game world renderer focused on 2D scenes. It is separated into three main sections:
These are designed to be modular and reused / repurposed. For simplicity this renderer does not perform batching or other optimizations. Our usage also does not rely on texture sheets. With some modifications these could be added.
VoltAir maintains a Renderer, and a single RenderList in Engine. Each Graphic, which represents a visual element of an Actor in the game world, is then requested to queue RenderNodes to that RenderList. Engine then renders these on Qt's render thread. Because rendering occurs on a separate thread from physics and game logic, each Graphic is required to perform synchronization and double buffering, which is partially accomplished through InstancedShaders (for example TerrainShader).
typedef std::shared_ptr<Attribute> AttributePtr |
Shared pointer typedef for Attribute.
typedef std::shared_ptr<AttributeSet> AttributeSetPtr |
Shared pointer typedef for AttributeSet.
typedef std::weak_ptr<AttributeSet> AttributeSetWeakPtr |
Weak shared pointer typedef for AttributeSet.
typedef std::weak_ptr<Attribute> AttributeWeakPtr |
Weak shared pointer typedef for Attribute.
typedef std::shared_ptr<DebugRenderer> DebugRendererPtr |
Shared pointer typedef for DebugRenderer.
typedef std::weak_ptr<DebugRenderer> DebugRendererWeakPtr |
Weak shared pointer typedef for DebugRenderer.
typedef std::shared_ptr<DirectTexture> DirectTexturePtr |
Shared pointer typedef for DirectTexture.
typedef std::weak_ptr<DirectTexture> DirectTextureWeakPtr |
Weak shared pointer typedef for DirectTexture.
typedef std::shared_ptr<InstancedShader> InstancedShaderPtr |
Shared pointer typedef for InstancedShader.
typedef std::weak_ptr<InstancedShader> InstancedShaderWeakPtr |
Weak shared pointer typedef for InstancedShader.
typedef std::shared_ptr<MeshInstance> MeshInstancePtr |
Shared pointer typedef for MeshInstance.
typedef std::weak_ptr<MeshInstance> MeshInstanceWeakPtr |
Weak shared pointer typedef for MeshInstance.
typedef std::weak_ptr<Mesh> MeshWeakPtr |
Weak shared pointer typedef for Mesh.
typedef std::shared_ptr<RenderList> RenderListPtr |
Shared pointer typedef for RenderList.
typedef std::weak_ptr<RenderList> RenderListWeakPtr |
Weak shared pointer typedef for RenderList.
typedef std::shared_ptr<RenderNode> RenderNodePtr |
Shared pointer typedef for RenderNode.
typedef std::weak_ptr<RenderNode> RenderNodeWeakPtr |
Weak shared pointer typedef for RenderNode.
typedef std::shared_ptr<ShaderBase> ShaderBasePtr |
Shared pointer typedef for ShaderBase.
typedef std::weak_ptr<ShaderBase> ShaderBaseWeakPtr |
Weak shared pointer typedef for ShaderBase.
typedef std::weak_ptr<Shader> ShaderWeakPtr |
Weak shared pointer typedef for Shader.
typedef std::shared_ptr<SpriteShader> SpriteShaderPtr |
Shared pointer typedef for SpriteShader.
typedef std::weak_ptr<SpriteShader> SpriteShaderWeakPtr |
Weak shared pointer typedef for SpriteShader.
typedef std::shared_ptr<Texture> TexturePtr |
Shared pointer typedef for Texture.
typedef std::weak_ptr<Texture> TextureWeakPtr |
Weak shared pointer typedef for Texture.