Loading [MathJax]/extensions/TeX/AMSmath.js
Radium Engine  1.5.29
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RenderingNode.hpp
1#pragma once
2#include <Dataflow/RaDataflow.hpp>
3
4#include <Dataflow/Core/Node.hpp>
5
6#include <Core/Utils/Color.hpp>
7#include <Engine/Data/Texture.hpp>
8#include <Engine/Data/ViewingParameters.hpp>
9#include <Engine/Rendering/RenderObject.hpp>
10#include <Engine/Scene/Light.hpp>
11
13class ShaderProgramManager;
14}
15
16namespace Ra {
17namespace Dataflow {
18namespace Rendering {
19namespace Nodes {
20
27using LightType = const Ra::Engine::Scene::Light*;
29using ColorType = Ra::Core::Utils::Color;
30using TextureType = Ra::Engine::Data::Texture;
31
36class RA_DATAFLOW_API RenderingNode : public Dataflow::Core::Node,
38{
39 public:
40 using Dataflow::Core::Node::Node;
41
46 virtual void resize( uint32_t width, uint32_t height ) = 0;
47
53
55 virtual bool hasRenderTechnique() { return false; }
56
59 m_shaderMngr = shaderMngr;
60 }
61
62 static const std::string node_typename() { return "RenderingNode"; }
63
64 protected:
65 void toJsonInternal( nlohmann::json& ) const override {}
66 void fromJsonInternal( const nlohmann::json& ) override {}
67
70};
71
72} // namespace Nodes
73} // namespace Rendering
74} // namespace Dataflow
75} // namespace Ra
Base abstract class for all the nodes added and used by the node system.
Definition Node.hpp:40
virtual void buildRenderTechnique(const Ra::Engine::Rendering::RenderObject *, Ra::Engine::Rendering::RenderTechnique &) const
void toJsonInternal(nlohmann::json &) const override
Internal json representation of the Node.
void fromJsonInternal(const nlohmann::json &) override
Internal json representation of the Node.
virtual void resize(uint32_t width, uint32_t height)=0
Ra::Engine::Data::ShaderProgramManager * m_shaderMngr
The renderer's shader program manager.
void setShaderProgramManager(Ra::Engine::Data::ShaderProgramManager *shaderMngr)
Sets the shader program manager.
virtual bool hasRenderTechnique()
Indicate if the nod needs to setup a rendertechnique on RenderObjects.
Represent a Texture of the engine.
Definition Texture.hpp:120
(GPU) Data representation, along with manager
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:4
the set of viewing parameters extracted from the camera and given to the renderer