18#ifndef HEADER_ABSTRACT_RENDERER_HPP
19#define HEADER_ABSTRACT_RENDERER_HPP
21#include "graphics/gl_headers.hpp"
26#include <dimension2d.h>
34 class ISceneNode;
class ISkinnedMesh;
class ICameraSceneNode;
44enum TypeRTT :
unsigned int;
47 irr::scene::ISceneNode * node;
62 irr::core::vector2df m_current_screen_size;
65 void drawDebugMeshes()
const;
67 void drawJoint(
bool drawline,
bool drawname,
69 irr::scene::ISkinnedMesh* mesh,
int id)
const;
72 void renderSkybox(
const irr::scene::ICameraSceneNode *camera)
const;
78 virtual void onLoadWorld() = 0;
79 virtual void onUnloadWorld() = 0;
81 virtual void resetPostProcessing() {}
82 virtual void giveBoost(
unsigned int cam_index) {}
84 virtual void removeSkyBox() {}
87 virtual const SHCoefficients* getSHCoefficients()
const {
return NULL; }
88 virtual GLuint getRenderTargetTexture(TypeRTT which)
const {
return 0;}
89 virtual GLuint getDepthStencilTexture( )
const {
return 0;}
91 virtual void setAmbientLight(
const irr::video::SColorf &light,
92 bool force_SH_computation =
true) {}
94 virtual void addSunLight(
const irr::core::vector3df &pos){}
96 virtual void addGlowingNode(irr::scene::ISceneNode *n,
97 float r = 1.0f,
float g = 1.0f,
float b = 1.0f) {}
99 virtual void clearGlowingNodes() {}
101 virtual void render(
float dt,
bool is_loading=
false) = 0;
104 const irr::core::vector2df &getCurrentScreenSize()
const
106 return m_current_screen_size;
115 const std::string &name) = 0;
116 virtual void createPostProcessing() {}
Virtual base class for the renderer.
Definition: abstract_renderer.hpp:60
virtual std::unique_ptr< RenderTarget > createRenderTarget(const irr::core::dimension2du &dimension, const std::string &name)=0
Create a RenderTarget (for rendering to a texture)
Definition: render_target.hpp:42
Definition: abstract_renderer.hpp:46
Definition: spherical_harmonics.hpp:33