cgv
|
a globally unique shader config is registered by default when the cgv library is used. More...
#include <shader_code.h>
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 | |
![]() | |
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, true > | get_named () |
perform downcast to named | |
virtual data::ref_ptr< node, true > | get_node () |
perform downcast to node | |
virtual data::ref_ptr< group, true > | get_group () |
perform downcast to group | |
virtual data::ref_ptr< const named, true > | get_named_const () const |
perform downcast to const named | |
virtual data::ref_ptr< const node, true > | get_node_const () const |
perform downcast to const node | |
virtual data::ref_ptr< const group, true > | get_group_const () const |
perform downcast to const group | |
template<class T > | |
data::ref_ptr< T, true > | cast () |
cast to arbitrary class, but use the casts to named, node and group from the interface | |
template<class T > | |
data::ref_ptr< const T, true > | cast_const () |
const cast to arbitrary class, but use the casts to named, node and group from the interface | |
template<class T > | |
T * | get_interface () |
use dynamic type cast to check for the given interface | |
template<class T > | |
const T * | get_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 void * | get_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 > ¶m_value_types, const std::vector< const void * > ¶m_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. | |
void * | find_member_ptr (const std::string &property_name, std::string *type_name=0) |
find a member pointer by name. | |
![]() | |
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 | |
![]() | |
virtual | ~base () |
make destructor virtual and not accessible from outside | |
![]() | |
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 | |
![]() | |
template<class T > | |
static data::ref_ptr< T, true > | cast_dynamic (base *b) |
use dynamic cast for upcast to given class | |
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.
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.
|
virtual |
return "shader_config"
Reimplemented from cgv::base::base.
Definition at line 35 of file shader_code.cxx.
|
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.
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.
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.
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().
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().
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().