cgv
Loading...
Searching...
No Matches
cgv::render::shader_config Struct Reference

a globally unique shader config is registered by default when the cgv library is used. More...

#include <shader_code.h>

Inheritance diagram for cgv::render::shader_config:
cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag

Public Member Functions

 shader_config ()
 construct config without file name tracing
 
std::string get_type_name () const
 return "shader_config"
 
bool self_reflect (cgv::reflect::reflection_handler &srh)
 reflect the shader_path member
 
- Public Member Functions inherited from cgv::base::base
virtual std::string get_default_options () const
 overload to provide default options for registration
 
std::string get_name_or_type_name () const
 determine name of instance by checking cgv::base::named interface and in failure fallback to get_type_name()
 
virtual void on_register ()
 overload to handle register events that is sent after the instance has been registered
 
virtual void unregister ()
 overload to handle unregistration of instances
 
virtual bool on_exit_request ()
 overload to handle the appication exit request, return true if exiting is allowed and false otherwise
 
virtual void stream_stats (std::ostream &)
 overload to show the content of this object
 
virtual data::ref_ptr< named, trueget_named ()
 perform downcast to named
 
virtual data::ref_ptr< node, trueget_node ()
 perform downcast to node
 
virtual data::ref_ptr< group, trueget_group ()
 perform downcast to group
 
virtual data::ref_ptr< const named, trueget_named_const () const
 perform downcast to const named
 
virtual data::ref_ptr< const node, trueget_node_const () const
 perform downcast to const node
 
virtual data::ref_ptr< const group, trueget_group_const () const
 perform downcast to const group
 
template<class T >
data::ref_ptr< T, truecast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
data::ref_ptr< const T, truecast_const ()
 const cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
Tget_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const Tget_const_interface () const
 use dynamic type cast to check for the given interface
 
virtual void update ()
 this virtual update allows for example to ask a view to update the viewed value. The default implementation is empty.
 
virtual voidget_user_data () const
 this virtual method allows to pass application specific data for internal purposes
 
virtual std::string get_property_declarations ()
 return a semicolon separated list of property declarations
 
virtual bool set_void (const std::string &property, const std::string &value_type, const void *value_ptr)
 abstract interface for the setter of a dynamic property.
 
virtual void on_set (void *member_ptr)
 this callback is called when the set_void method has changed a member and can be overloaded in derived class
 
virtual bool get_void (const std::string &property, const std::string &value_type, void *value_ptr)
 abstract interface for the getter of a dynamic property.
 
virtual bool call_void (const std::string &method, const std::vector< std::string > &param_value_types, const std::vector< const void * > &param_value_ptrs, const std::string &result_type="", void *result_value_ptr=0)
 abstract interface to call an action
 
void set (const std::string &property, const char *value)
 specialization of set method to support const char* as strings
 
template<typename T >
void set (const std::string &property, const T &value)
 set a property of the element to the given value and perform standard conversions if necessary.
 
template<typename T >
T get (const std::string &property)
 query a property of the element and perform standard conversions if necessary.
 
void multi_set (const std::string &property_assignments, bool report_error=true)
 set several properties
 
bool is_property (const std::string &property_name, std::string *type_name=0)
 check if the given name specifies a property.
 
voidfind_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name.
 
- Public Member Functions inherited from cgv::data::ref_counted
int get_ref_count () const
 read access to current count
 

Public Attributes

std::string shader_path
 the path used to find shaders with the cgv::utils::file::find_in_paths function
 
bool trace_file_names
 whether to keep track of file names
 
bool show_file_paths
 whether to output full paths of read shaders
 
std::vector< std::string > shader_file_names
 mapping of shader index to file name
 
std::vector< std::string > inserted_shader_file_names
 mapping of shader index to inserted files name
 

Additional Inherited Members

- Protected Member Functions inherited from cgv::base::base
virtual ~base ()
 make destructor virtual and not accessible from outside
 
- Protected Member Functions inherited from cgv::data::ref_counted
 ref_counted ()
 constructor initializes the count to 0
 
void set_ref_count (int c) const
 write access is also const to allow ref counted pointers to const instances
 
- Static Protected Member Functions inherited from cgv::base::base
template<class T >
static data::ref_ptr< T, truecast_dynamic (base *b)
 use dynamic cast for upcast to given class
 

Detailed Description

a globally unique shader config is registered by default when the cgv library is used.

Currently it has one member only defining the search path for shader files. The shader path is initialized to the environment variable CGV_SHADER_PATH or empty otherwise. It can also be set with a command line argument of the form

type(shader_config):shader_path='@(INPUT_PATH)'

or in a config file as

type(shader_config):shader_path='D:/my_shaders'

To set the shader path at runtime, query the shader_config with the get_shader_config() function.

Definition at line 25 of file shader_code.h.

Constructor & Destructor Documentation

◆ shader_config()

cgv::render::shader_config::shader_config ( )

construct config without file name tracing

Definition at line 29 of file shader_code.cxx.

References show_file_paths, and trace_file_names.

Member Function Documentation

◆ get_type_name()

std::string cgv::render::shader_config::get_type_name ( ) const
virtual

return "shader_config"

Reimplemented from cgv::base::base.

Definition at line 35 of file shader_code.cxx.

◆ self_reflect()

bool cgv::render::shader_config::self_reflect ( cgv::reflect::reflection_handler srh)
virtual

reflect the shader_path member

Reimplemented from cgv::base::base.

Definition at line 41 of file shader_code.cxx.

References cgv::reflect::reflection_handler::reflect_member(), shader_path, and show_file_paths.

Member Data Documentation

◆ inserted_shader_file_names

std::vector<std::string> cgv::render::shader_config::inserted_shader_file_names

mapping of shader index to inserted files name

Definition at line 36 of file shader_code.h.

◆ shader_file_names

std::vector<std::string> cgv::render::shader_config::shader_file_names

mapping of shader index to file name

Definition at line 34 of file shader_code.h.

◆ shader_path

std::string cgv::render::shader_config::shader_path

the path used to find shaders with the cgv::utils::file::find_in_paths function

Definition at line 28 of file shader_code.h.

Referenced by self_reflect().

◆ show_file_paths

bool cgv::render::shader_config::show_file_paths

whether to output full paths of read shaders

Definition at line 32 of file shader_code.h.

Referenced by self_reflect(), and shader_config().

◆ trace_file_names

bool cgv::render::shader_config::trace_file_names

whether to keep track of file names

Definition at line 30 of file shader_code.h.

Referenced by shader_config().


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