Hymn to Beauty
C++ 3D Engine
Video Namespace Reference

Namespaces

namespace  Geometry
 
namespace  Utility
 Utility functions.
 

Classes

class  AxisAlignedBoundingBox
 An axis-aligned bounding box. More...
 
class  Buffer
 A buffer containing GPU accessible data. More...
 
struct  BufferAllocation
 An allocation. More...
 
class  BufferAllocator
 Responsible for allocating buffers. More...
 
class  CommandBuffer
 A buffer into which rendering commands are recorded. More...
 
class  ComputePipeline
 A compute pipeline. More...
 
class  DebugDrawing
 Draws debug primitives. More...
 
struct  DirectionalLight
 A directional light used for lighting the scene. More...
 
class  Frustum
 A viewing frustum. More...
 
class  GeometryBinding
 Binds together a vertex description with buffers. More...
 
class  GraphicsPipeline
 A graphics pipeline. More...
 
class  Isocahedron
 An isocahedron used as proxy light geometry. More...
 
struct  Light
 A light used for lighting the scene. More...
 
class  LowLevelRenderer
 Low level renderer abstracting the underlaying graphics API (OpenGL or Vulkan). More...
 
class  OpenGLBuffer
 OpenGL implementation of Buffer. More...
 
class  OpenGLBufferAllocator
 OpenGL implementation of BufferAllocator. More...
 
class  OpenGLCommandBuffer
 OpenGL implementation of CommandBuffer. More...
 
class  OpenGLComputePipeline
 OpenGL implementation of ComputePipeline. More...
 
class  OpenGLGeometryBinding
 OpenGL implementation of GeometryBinding. More...
 
class  OpenGLGraphicsPipeline
 OpenGL implementation of GraphicsPipeline. More...
 
class  OpenGLRawBuffer
 OpenGL implementation of RawBuffer. More...
 
class  OpenGLRenderer
 Low-level renderer implementing OpenGL. More...
 
class  OpenGLRenderPass
 OpenGL implementation of RenderPass. More...
 
class  OpenGLRenderPassAllocator
 OpenGL implementation of RenderPassAllocator. More...
 
class  OpenGLRenderTargetAllocator
 OpenGL implementation of RenderTargetAllocator. More...
 
class  OpenGLSampler
 OpenGL implementation of Sampler. More...
 
class  OpenGLShader
 OpenGL implementation of Shader. More...
 
class  OpenGLShaderProgram
 OpenGL implementation of ShaderProgram. More...
 
class  OpenGLTexture
 OpenGL implementation of Texture. More...
 
class  OpenGLVertexDescription
 OpenGL implementation of VertexDescription. More...
 
class  PostProcessing
 Applies post-processing effects to the rendered image. More...
 
class  RawBuffer
 A large buffer from which buffers are sub-allocated. More...
 
class  Renderer
 Handles rendering using a low-level renderer. More...
 
class  RenderPass
 A render pass. More...
 
class  RenderPassAllocator
 Responsible for allocating render passes and framebuffers. More...
 
class  RenderProgram
 Super class render program. More...
 
struct  RenderScene
 Contains all data needed to render a scene. More...
 
class  RenderTargetAllocator
 Responsible for allocating render targets. More...
 
class  Sampler
 Determines how a texture should be sampled. More...
 
class  Shader
 Compiles and handles a shader. Shaders should be linked together into a ShaderProgram. More...
 
class  ShaderProgram
 A shader program. More...
 
class  Sphere
 A sphere. More...
 
class  SpriteRenderProgram
 Render program to render a sprite. More...
 
class  StaticRenderProgram
 Render program to render an entity using default shader program. More...
 
class  Texture
 A texture. More...
 
class  Texture2D
 A two-dimensional texture. More...
 
class  VertexDescription
 Describes how a vertex buffer is accessed by a shader. More...
 
class  VulkanBuffer
 Vulkan implementation of Buffer. More...
 
class  VulkanBufferAllocator
 Vulkan implementation of BufferAllocator. More...
 
class  VulkanCommandBuffer
 Vulkan implementation of CommandBuffer. More...
 
class  VulkanComputePipeline
 Vulkan implementation of ComputePipeline. More...
 
class  VulkanGeometryBinding
 Vulkan implementation of GeometryBinding. More...
 
class  VulkanGraphicsPipeline
 Vulkan implementation of GraphicsPipeline. More...
 
class  VulkanRawBuffer
 Vulkan implementation of RawBuffer. More...
 
class  VulkanRenderer
 Low-level renderer implementing Vulkan. More...
 
class  VulkanRenderPass
 Vulkan implementation of RenderPass. More...
 
class  VulkanRenderPassAllocator
 Vulkan implementation of RenderPassAllocator. More...
 
class  VulkanRenderTargetAllocator
 Vulkan implementation of RenderTargetAllocator. More...
 
class  VulkanSampler
 Vulkan implementation of Sampler. More...
 
class  VulkanShader
 Vulkan implementation of Shader. More...
 
class  VulkanShaderProgram
 Vulkan implementation of ShaderProgram. More...
 
class  VulkanTexture
 Vulkan implementation of Texture. More...
 
class  VulkanVertexDescription
 Vulkan implementation of VertexDescription. More...
 
class  WebGPUBuffer
 WebGPU implementation of Buffer. More...
 
class  WebGPUBufferAllocator
 WebGPU implementation of BufferAllocator. More...
 
class  WebGPUCommandBuffer
 WebGPU implementation of CommandBuffer. More...
 
class  WebGPUComputePipeline
 WebGPU implementation of ComputePipeline. More...
 
class  WebGPUGeometryBinding
 WebGPU implementation of GeometryBinding. More...
 
class  WebGPUGraphicsPipeline
 WebGPU implementation of GraphicsPipeline. More...
 
class  WebGPURawBuffer
 WebGPU implementation of RawBuffer. More...
 
class  WebGPURenderer
 Low-level renderer implementing WebGPU. More...
 
class  WebGPURenderTargetAllocator
 WebGPU implementation of RenderTargetAllocator. More...
 
class  WebGPUSampler
 WebGPU implementation of Sampler. More...
 
class  WebGPUShader
 WebGPU implementation of Shader. More...
 
class  WebGPUShaderProgram
 WebGPU implementation of ShaderProgram. More...
 
class  WebGPUTexture
 WebGPU implementation of Texture. More...
 
class  WebGPUVertexDescription
 WebGPU implementation of VertexDescription. More...
 
class  ZBinning
 Handles binning and tiling of lights. More...
 

Enumerations

enum class  CullFace { NONE , BACK , FRONT }
 Which face to cull. More...
 
enum class  DepthMode { NONE , TEST , TEST_WRITE }
 How to use depth buffer. More...
 
enum class  DepthComparison { LESS , LESS_EQUAL , ALWAYS }
 How to perform depth comparisons. More...
 
enum class  PolygonMode { FILL , LINE }
 How polygons are rasterized. More...
 
enum class  Filtering { NEAREST_NEIGHBOR , LINEAR }
 Filtering. More...
 
enum class  BlendMode { NONE , ALPHA_ONE_MINUS_SRC_ALPHA , ONE_ONE_MINUS_SRC_ALPHA }
 Blending mode. More...
 
enum class  PrimitiveType { POINT , LINE , TRIANGLE }
 The type of primitives to render. More...
 

Functions

void HandleDebugMessage (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam, bool showNotifications)
 
void APIENTRY DebugMessageCallback (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam)
 

Enumeration Type Documentation

◆ BlendMode

enum class Video::BlendMode
strong

Blending mode.

Enumerator
NONE 

Don't use blending.

ALPHA_ONE_MINUS_SRC_ALPHA 

Regular blending.

ONE_ONE_MINUS_SRC_ALPHA 

Pre-multiplied alpha.

◆ CullFace

enum class Video::CullFace
strong

Which face to cull.

Enumerator
NONE 

Don't perform face culling.

BACK 

Cull back faces.

FRONT 

Cull front faces.

◆ DepthComparison

enum class Video::DepthComparison
strong

How to perform depth comparisons.

Enumerator
LESS 

Passes if incoming value is less than stored value.

LESS_EQUAL 

Passes if incoming value is less than or equal to stored value.

ALWAYS 

Always passes.

◆ DepthMode

enum class Video::DepthMode
strong

How to use depth buffer.

Enumerator
NONE 

Neither test against nor write to depth buffer.

TEST 

Test depth, but don't write to depth buffer.

TEST_WRITE 

Test depth and write to depth buffer.

◆ Filtering

enum class Video::Filtering
strong

Filtering.

Enumerator
NEAREST_NEIGHBOR 

Nearest neighbor filtering.

LINEAR 

Linear filtering.

◆ PolygonMode

enum class Video::PolygonMode
strong

How polygons are rasterized.

Enumerator
FILL 

Fill polygons.

LINE 

Draw boundary edges as lines.

◆ PrimitiveType

enum class Video::PrimitiveType
strong

The type of primitives to render.

Enumerator
POINT 

Point.

LINE 

Line.

TRIANGLE 

Triangle.

Function Documentation

◆ DebugMessageCallback()

void APIENTRY Video::DebugMessageCallback ( GLenum  source,
GLenum  type,
GLuint  id,
GLenum  severity,
GLsizei  length,
const GLchar *  message,
const void *  userParam 
)

◆ HandleDebugMessage()

void Video::HandleDebugMessage ( GLenum  source,
GLenum  type,
GLuint  id,
GLenum  severity,
GLsizei  length,
const GLchar *  message,
const void *  userParam,
bool  showNotifications 
)