Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
oe::render Namespace Reference

Render related abstractions (Shader, Framebuffer, Cubemaps, Textures) More...

Namespaces

namespace  pipeline
 Predefined Pass and helpers for the Pipeline.
 

Classes

struct  CheckerboardTextureInfo
 Settings to create a checkerboard texture. More...
 
class  CommonMesh
 
class  Cubemap
 
class  CubicSkybox
 Standard Cubic skybox. More...
 
class  Debug
 Render simple shapes for debugging purposes. More...
 
class  DynamicCubemap
 
class  DynamicMesh
 A mesh where the vertices/indices are dynamic. More...
 
class  ExternalTexture
 
class  FlatSkybox
 Flat skybox. More...
 
class  Framebuffer
 
class  Manager
 Render manager. More...
 
class  Mesh
 GPU mesh wrapper. More...
 
class  MeshNode
 
class  MultiMeshNode
 
class  Node
 
class  Pass
 
class  Pbr
 Physically Based Rendering. More...
 
class  Pipeline
 
class  ScreenQuad
 
class  Shader
 Standard shader class. More...
 
class  ShaderBase
 Shader class. More...
 
class  SkinnedMeshNode
 
class  Skybox
 
class  SurfaceShader
 Surface Shader class. More...
 
class  Texture
 
class  TextureManager
 handles the load and deletion of textures/cubemaps More...
 
struct  TextureManagerCreateInfo
 Settings to create the texture manager. More...
 

Typedefs

typedef oe::render::ManagerPipelineInput
 
typedef oe::render::FramebufferPipelineOutput
 

Enumerations

enum class  GeometryPass : uint16_t { SOLID = 1 , SKINNED = 2 }
 Vertex rendering passes. More...
 
enum class  RenderingPass : uint16_t { DEPTH = 1 , FORWARD = 2 , DEFERRED = 3 }
 Pipeline rendering passes. More...
 
enum  TargetBuffer : int { COLOR_BUFFER = 0x4000 , DEPTH_BUFFER = 0x0100 , STENCIL_BUFFER = 0x0400 , ALL = 0x4500 }
 
enum class  MeshUsage : uint32_t { STREAM = 0x88E0 , STATIC = 0x88E4 , DYNAMIC = 0x88E8 }
 Specify how the mesh data will be used. More...
 

Functions

template<typename T >
int32_t getComponentSize () noexcept
 
template<>
constexpr int32_t getComponentSize< float > () noexcept
 
template<>
constexpr int32_t getComponentSize< glm::vec2 > () noexcept
 
template<>
constexpr int32_t getComponentSize< glm::vec3 > () noexcept
 
template<>
constexpr int32_t getComponentSize< glm::vec4 > () noexcept
 
template<>
constexpr int32_t getComponentSize< glm::ivec4 > () noexcept
 

Detailed Description

Render related abstractions (Shader, Framebuffer, Cubemaps, Textures)

Enumeration Type Documentation

◆ GeometryPass

enum class oe::render::GeometryPass : uint16_t
strong

Vertex rendering passes.

Enumerator
SOLID 

In this pass, the shader will be used to draw a standard non deformable solid mesh

SKINNED 

In this pass, the shader will be used a draw a skinned mesh

◆ MeshUsage

enum class oe::render::MeshUsage : uint32_t
strong

Specify how the mesh data will be used.

Enumerator
STREAM 

The data store contents will be modified once and used at most a few times.

STATIC 

The data store contents will be modified once and used many times.

DYNAMIC 

The data store contents will be modified repeatedly and used many times.

◆ RenderingPass

enum class oe::render::RenderingPass : uint16_t
strong

Pipeline rendering passes.

Enumerator
DEPTH 

In this pass, the shader is assumed to output only cutoff opacity

FORWARD 

In this pass, the shader is assumed to output color data

DEFERRED 

In this pass, the shader is assumed to fill the GBuffer

Function Documentation

◆ getComponentSize()

template<typename T >
int32_t oe::render::getComponentSize ( )
noexcept

Return the number of components in T

Example a vec3 have 3 elements