Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
oe::render::GenericRenderManager< SettingsType > Struct Template Reference

Generic render manager. More...

#include <OxygenEngine/render/manager.h>

Public Types

using RenderNodeId = SettingsType::RenderNodeId
using RenderNode = SettingsType::RenderNode
using NodeContainerType = SettingsType::template Container<RenderNode>

Public Member Functions

RenderNode * getNodeById (const RenderNodeId id_node, std::span< const NodeContainerType > nodes)
void deleteNodeById (const RenderNodeId id_node)
template<typename T>
RenderNodeId addOpaqueNode (T &&component)
template<typename T>
RenderNodeId addBlendNode (T &&component, bool is_glass=false)
template<typename RenderNodeType, typename F>
void renderNode (RenderNodeType &renderer, const oe::scene::Camera &camera, const oe::render::RenderingPass render_pass, F &&fill_shader)
 Render node list using specified rendering.
void renderOpaqueNodes (const oe::scene::Camera &camera, const oe::render::RenderingPass render_pass)
 Render opaque nodes list using specified rendering.
template<typename F>
void renderBlendNodes (const oe::scene::Camera &camera, const oe::render::RenderingPass render_pass, F &&fill_shader)
 Render blend nodes list using specified rendering.
template<typename F>
void render (std::span< RenderNode > nodes, const oe::scene::Camera &camera, const oe::render::RenderingPass render_pass, F &&fill_shader)
 Render custom nodes list using specified rendering.
void render (std::span< RenderNode > nodes, const oe::scene::Camera &camera, const oe::render::RenderingPass render_pass)
 Render custom nodes list using specified rendering.

Public Attributes

NodeContainerType opaque_nodes
 Opaque geometry (that might use alpha mask).
NodeContainerType blend_nodes
 Transparent geometry (alpha blended).
NodeContainerType refractive_nodes
 Realistic transparent refractive surfaces (like glass).

Detailed Description

template<typename SettingsType = RenderManagerSettings>
struct oe::render::GenericRenderManager< SettingsType >

Generic render manager.

Member Function Documentation

◆ render()

template<typename SettingsType = RenderManagerSettings>
void oe::render::GenericRenderManager< SettingsType >::render ( std::span< RenderNode > nodes,
const oe::scene::Camera & camera,
const oe::render::RenderingPass render_pass )
inline

Render custom nodes list using specified rendering.

This version doesn't require shader callback

Member Data Documentation

◆ refractive_nodes

template<typename SettingsType = RenderManagerSettings>
NodeContainerType oe::render::GenericRenderManager< SettingsType >::refractive_nodes

Realistic transparent refractive surfaces (like glass).

Todo
Update refraction texture after each refractive render #76

The documentation for this struct was generated from the following file: