37#ifndef H_OGF_SCENE_GRAPH_GFX_SHADERS_SHADER_H
38#define H_OGF_SCENE_GRAPH_GFX_SHADERS_SHADER_H
40#include <OGF/scene_graph_gfx/common/common.h>
63 gom_attribute(abstract,
"true")
124 Grob* get_grob()
const {
133 Transparency get_transparency()
const {
134 return transparency_;
138 GLdouble* latest_modelview() {
142 GLdouble* latest_project() {
146 GLint* latest_viewport() {
161 const std::string& name,
const Any& value
177 const std::string& file_name,
178 GLint filtering = GL_LINEAR, GLint wrapping = GL_CLAMP_TO_EDGE
188 const std::string& name,
189 GLint filtering = GL_LINEAR, GLint wrapping = GL_CLAMP_TO_EDGE
206 GLdouble modelview_[16];
207 GLdouble project_[16];
220 Transparency transparency_;
A smart pointer with reference-counted copy semantics.
A class that stores a variable of arbitrary type.
Base class for all 3D Graphite objects.
A composite object in the GOM system.
Manages the Shader objects associated with a Grob.
Base class for Grob shader.
Texture * create_texture_from_colormap_name(const std::string &name, GLint filtering=GL_LINEAR, GLint wrapping=GL_CLAMP_TO_EDGE)
Creates a texture from a colormap by name.
virtual void pick_object(index_t object_id)=0
Draws the Grob in picking mode.
virtual void blink()
Draws the current object several times, while chaning the value of one graphic attribute (e....
Texture * create_texture_from_file(const std::string &file_name, GLint filtering=GL_LINEAR, GLint wrapping=GL_CLAMP_TO_EDGE)
Creates a texture from an image file.
virtual void draw()
Draws the Grob.
bool set_property(const std::string &name, const Any &value) override
Sets an individual property.
bool no_grob_update_
If true, then each shader update does not trigger a grob update.
bool dark_mode() const
Tests whether dark mode is set.
~Shader() override
Shader destructor.
Shader(Grob *grob)
Shader constructor.
Grob * grob() const
Gets the Grob.
virtual void set_transparency(Transparency x)
Transparent rendering mode.
virtual void update()
Redraws the scene.
geo_index_t index_t
The type for storing and manipulating indices.
Global Graphite namespace.
SmartPointer< Shader > Shader_var
An automatic reference-counted pointer to a Shader.
The base class for all composite objects in the GOM system.
Helper class for manipulating OpenGL textures.