core/gl/render_device.hpp file

Class cubos::core::gl::RenderDevice and related types.

Namespaces

namespace cubos
Cubos libraries namespace.
namespace cubos::core
Core namespace.
namespace cubos::core::gl
Graphics module.
namespace cubos::core::gl::impl
Namespace to store the abstract types implemented by the render device implementations.

Classes

struct cubos::core::gl::FramebufferDesc
Describes a framebuffer.
struct cubos::core::gl::FramebufferDesc::CubeMapTarget
Describes a cube map target.
struct cubos::core::gl::FramebufferDesc::Texture2DTarget
Describes a 2D texture target.
struct cubos::core::gl::FramebufferDesc::CubeMapArrayTarget
Describes a cube map array target.
struct cubos::core::gl::FramebufferDesc::Texture2DArrayTarget
Describes a 2D texture array target.
struct cubos::core::gl::FramebufferDesc::FramebufferTarget
Describes a framebuffer target.
struct cubos::core::gl::RasterStateDesc
Decribes a rasterizer state.
struct cubos::core::gl::DepthStencilStateDesc
Describes a depth stencil state.
struct cubos::core::gl::DepthStencilStateDesc::Depth
Decribes a depth state.
struct cubos::core::gl::DepthStencilStateDesc::Stencil
Describes a stencil state.
struct cubos::core::gl::DepthStencilStateDesc::Stencil::Face
Decribes a stencil face.
struct cubos::core::gl::BlendStateDesc
Describes a blend state.
struct cubos::core::gl::SamplerDesc
Describes a sampler.
struct cubos::core::gl::Texture1DDesc
Describes a 1D texture.
struct cubos::core::gl::Texture2DDesc
Describes a 2D texture.
struct cubos::core::gl::Texture2DArrayDesc
Describes a 2D texture array.
struct cubos::core::gl::Texture3DDesc
Describes a 3D texture.
struct cubos::core::gl::CubeMapDesc
Describes a cube map.
struct cubos::core::gl::CubeMapArrayDesc
Describes a cube map array.
struct cubos::core::gl::ConstantBufferElement
Describes an element in a constant buffer.
struct cubos::core::gl::ConstantBufferStructure
Describes the structure of a constant buffer.
struct cubos::core::gl::VertexElement
Describes a vertex element.
struct cubos::core::gl::VertexArrayDesc
Describes a vertex array.
class cubos::core::gl::RenderDevice
Interface used to wrap low-level rendering APIs such as OpenGL.
class cubos::core::gl::impl::Framebuffer
Abstract framebuffer.
class cubos::core::gl::impl::RasterState
Abstract rasterizer state.
class cubos::core::gl::impl::DepthStencilState
Abstract depth stencil state.
class cubos::core::gl::impl::BlendState
Abstract blend state.
class cubos::core::gl::impl::PixelPackBuffer
Abstract pixel pack buffer.
class cubos::core::gl::impl::Sampler
Abstract sampler.
class cubos::core::gl::impl::Texture1D
Abstract 1D texture.
class cubos::core::gl::impl::Texture2D
Abstract 2D texture.
class cubos::core::gl::impl::Texture2DArray
Abstract 2D texture array.
class cubos::core::gl::impl::Texture3D
Abstract 3D texture.
class cubos::core::gl::impl::CubeMap
Abstract cube map.
class cubos::core::gl::impl::CubeMapArray
Abstract cube map.
class cubos::core::gl::impl::ConstantBuffer
Abstract constant buffer.
class cubos::core::gl::impl::IndexBuffer
Abstract index buffer.
class cubos::core::gl::impl::VertexBuffer
Abstract vertex buffer.
class cubos::core::gl::impl::VertexArray
Abstract vertex array.
class cubos::core::gl::impl::ShaderStage
Abstract shader stage.
class cubos::core::gl::impl::ShaderPipeline
Abstract shader pipeline.
class cubos::core::gl::impl::ShaderBindingPoint
Abstract shader binding point.
class cubos::core::gl::impl::Timer
Abstract timer.
class cubos::core::gl::impl::PipelinedTimer
Pipelined timer.

Enums

enum class Property { MaxAnisotropy, ComputeSupported }
Render device properties that can be queried at runtime.
enum class Usage { Default, Dynamic, Static }
Usage mode for buffers and textures.
enum class Type { Byte, Short, Int, UByte, UShort, UInt, NByte, NShort, NUByte, NUShort, Float }
Data type.
enum class IndexFormat { UShort, UInt }
Index format.
enum class TextureFormat { R8SNorm, R16SNorm, RG8SNorm, RG16SNorm, RGBA8SNorm, RGBA16SNorm, R8UNorm, R16UNorm, RG8UNorm, RG16UNorm, RGBA8UNorm, RGBA16UNorm, R8SInt, R16SInt, RG8SInt, RG16SInt, RGBA8SInt, RGBA16SInt, R8UInt, R16UInt, RG8UInt, RG16UInt, RGBA8UInt, RGBA16UInt, R16Float, R32Float, RG16Float, RG32Float, RGB16Float, RGB32Float, RGBA16Float, RGBA32Float, Depth16, Depth32, Depth24Stencil8, Depth32Stencil8 }
Texture format.
enum class AddressMode { Repeat, Mirror, Clamp, Border }
Texture address mode.
enum class TextureFilter { None, Nearest, Linear }
Texture filter type.
enum class Winding { CW, CCW }
Triangle winding mode.
enum class Face { Front, Back, FrontAndBack }
Specifies a face.
enum class RasterMode { Wireframe, Fill }
Rasterizer mode.
enum class Compare { Never, Less, LEqual, Greater, GEqual, Equal, NEqual, Always }
Comparison function.
enum class StencilAction { Zero, Keep, Replace, Increment, IncrementWrap, Decrement, DecrementWrap, Invert }
Stencil action.
enum class BlendFactor { Zero, One, SrcColor, InvSrcColor, DstColor, InvDstColor, SrcAlpha, InvSrcAlpha, DstAlpha, InvDstAlpha }
Blend factor.
enum class BlendOp { Add, Substract, RevSubstract, Min, Max }
Blend operation.
enum class Stage { Vertex, Geometry, Pixel, Compute }
Shader stage type.
enum class CubeFace { PositiveX = 0, NegativeX = 1, PositiveY = 2, NegativeY = 3, PositiveZ = 4, NegativeZ = 5 }
Cube map face.
enum class MemoryBarriers { None = 0, VertexBuffer = 1, IndexBuffer = 2, ConstantBuffer = 4, ImageAccess = 8, TextureAccess = 16, Framebuffer = 32, All = VertexBuffer | IndexBuffer | ConstantBuffer | ImageAccess | TextureAccess | Framebuffer }
Memory barrier flags for synchronization.
enum class Access { Read, Write, ReadWrite }
Access mode for a resource.

Typedefs

using Framebuffer = std::shared_ptr<impl::Framebuffer>
Handle to a framebuffer.
using RasterState = std::shared_ptr<impl::RasterState>
Handle to a rasterizer state.
using DepthStencilState = std::shared_ptr<impl::DepthStencilState>
Handle to a depth stencil state.
using BlendState = std::shared_ptr<impl::BlendState>
Handle to a blend state.
using PixelPackBuffer = std::shared_ptr<impl::PixelPackBuffer>
Handle to a pixel pack buffer.
using Sampler = std::shared_ptr<impl::Sampler>
Handle to a sampler.
using Texture1D = std::shared_ptr<impl::Texture1D>
Handle to a 1D texture.
using Texture2D = std::shared_ptr<impl::Texture2D>
Handle to a 2D texture.
using Texture2DArray = std::shared_ptr<impl::Texture2DArray>
Handle to a 2D texture array.
using Texture3D = std::shared_ptr<impl::Texture3D>
Handle to a 3D texture.
using CubeMap = std::shared_ptr<impl::CubeMap>
Handle to a cube map.
using CubeMapArray = std::shared_ptr<impl::CubeMapArray>
Handle to a cube map array.
using ConstantBuffer = std::shared_ptr<impl::ConstantBuffer>
Handle to a constant buffer.
using IndexBuffer = std::shared_ptr<impl::IndexBuffer>
Handle to an index buffer.
using VertexBuffer = std::shared_ptr<impl::VertexBuffer>
Handle to a vertex buffer.
using VertexArray = std::shared_ptr<impl::VertexArray>
Handle to a vertex array.
using ShaderStage = std::shared_ptr<impl::ShaderStage>
Handle to a shader stage.
using ShaderPipeline = std::shared_ptr<impl::ShaderPipeline>
Handle to a shader pipeline.
using ShaderBindingPoint = impl::ShaderBindingPoint*
Handle to a shader binding point.
using Timer = std::shared_ptr<impl::Timer>
Handle to a timer.
using PipelinedTimer = std::shared_ptr<impl::PipelinedTimer>
Handle to a pipelined timer.

Defines

#define CUBOS_CORE_GL_MAX_FRAMEBUFFER_RENDER_TARGET_COUNT
Maximum number of render targets that can be set on a framebuffer.
#define CUBOS_CORE_GL_MAX_TEXTURE_2D_ARRAY_SIZE
Maximum number of textures on a 2D texture array.
#define CUBOS_CORE_GL_MAX_CUBEMAP_ARRAY_SIZE
Maximum number of cube maps on a cubemap array.
#define CUBOS_CORE_GL_MAX_MIP_LEVEL_COUNT
Maximum mip level count.
#define CUBOS_CORE_GL_MAX_CONSTANT_BUFFER_ELEMENT_NAME_SIZE
Maximum constant buffer element name size.
#define CUBOS_CORE_GL_MAX_CONSTANT_BUFFER_ELEMENT_COUNT
Maximum constant buffer element count.
#define CUBOS_CORE_GL_MAX_VERTEX_ARRAY_ELEMENT_COUNT
Maximum number of vertex array elements.
#define CUBOS_CORE_GL_MAX_VERTEX_ARRAY_BUFFER_COUNT
Maximum number of buffers on a vertex array.