38 #ifndef H_OGF_SCENE_GRAPH_GFX_SHADERS_SCENE_GRAPH_SHDR_MGR_H
39 #define H_OGF_SCENE_GRAPH_GFX_SHADERS_SCENE_GRAPH_SHDR_MGR_H
41 #include <OGF/scene_graph_gfx/common/common.h>
84 Grob* grob, std::string& classname,
85 ArgList& args,
bool pointers =
true
95 Grob* grob,
const std::string& classname,
const ArgList& args
184 void focus_changed(
const mat4& value);
195 void set_auto_focus(
bool value) {
229 return highlight_selected_;
245 return draw_selected_only_;
275 Grob* current_object_;
280 bool highlight_selected_;
281 bool draw_selected_only_;
283 std::string last_shader_;
285 typedef std::map<std::string, FullScreenEffect_var> EffectsMap;
Represents a list of name-value pairs.
Base class for all 3D Graphite objects.
Abstract base class for the GOM interpreter.
Base class for all objects in the GOM system.
Manages the shaders and full screen effects for the entire SceneGraph.
void current_object(const std::string &value)
Notify this SceneGraphShaderManager that the current object changed.
bool get_highlight_selected() const
Tests whether highlighting mode is active.
void set_draw_selected_only(bool value)
Sets whether only the selected object should be drawn.
bool get_draw_selected_only() const
Tests whether only the selected object should be drawn.
void full_screen_effect(const std::string &value)
Sets the FullScreenEffect.
SceneGraphShaderManager()
SceneGraphShaderManager constructor.
void set_effect(const FullScreenEffectName &effect)
Sets the full screen effect.
void draw()
Draws the SceneGraph using the shaders associated with each object and the FullScreenEffect if one wa...
void set_highlight_selected(bool value)
Sets highlighting mode.
~SceneGraphShaderManager() override
SceneGraphShaderManager destructor.
const FullScreenEffectName & get_effect() const
Gets the full screen effect.
ShaderManager * resolve_shader_manager(Grob *grob)
Finds the ShaderManager associated with a given Grob.
void get_grob_shader(Grob *grob, std::string &classname, ArgList &args, bool pointers=true)
Gets the Shader associated with a Grob and its properties.
void apply_to_scene_graph(bool visible_only=false)
Copies the properties of the current Shader to all other Shaders in the SceneGraph associated with ob...
Shader * current()
Gets the shader of the current object.
void set_grob_shader(Grob *grob, const std::string &classname, const ArgList &args)
Sets the Shader associated with a Grob and its properties.
void shader(const std::string &value)
Change the shader associated with the current object.
FullScreenEffect * current_effect()
Gets the current FullScreenEffect.
bool get_auto_focus() const
Tests whether autofocus is active.
const mat4 & get_focus_matrix() const
Gets the focus matrix.
void pick_object()
Draws the SceneGraph using the picking shader, that will encode the id of each object in the backbuff...
Interpreter * interpreter()
Gets the main Interpreter.
Represents the list of objects loaded in Graphite.
Manages the Shader objects associated with a Grob.
Base class for Grob shader.
Global Graphite namespace.
Base classes for full screen effects.