neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neogfx::vertex_shader< Base > Class Template Reference

#include <vertex_shader.hpp>

Inheritance diagram for neogfx::vertex_shader< Base >:
neogfx::shader< Base > neolib::reference_counted< Base, DeallocateOnRelease >

Public Types

typedef neolib::map< string, abstract_t< shader_variable > * > attribute_map
 
- Public Types inherited from neogfx::shader< Base >
typedef i_shader::value_type abstract_value_type
 
typedef shader_value_type value_type
 

Public Member Functions

 vertex_shader (std::string const &aName)
 
const attribute_mapattributes () const final
 
void clear_attribute (const i_string &aName) final
 
i_shader_variable & add_attribute (const i_string &aName, uint32_t aLocation, bool aFlat, shader_data_type aType) final
 
- Public Member Functions inherited from neogfx::shader< Base >
 shader (shader_type aType, std::string const &aName, bool aEnabled=true)
 
 ~shader ()
 
shader_type type () const final
 
const i_stringname () const final
 
bool supports (vertex_buffer_type aBufferType) const override
 
void * handle (const i_shader_program &aProgram) const final
 
bool enabled () const final
 
bool disabled () const final
 
void enable () final
 
void disable () final
 
bool dirty () const final
 
void set_dirty () final
 
void set_clean () final
 
bool uniforms_changed () const final
 
const i_shader::uniform_list & uniforms () const final
 
bool has_shared_uniforms () const final
 
void clear_uniform (shader_uniform_id aUniform) final
 
shader_uniform_id create_uniform (const i_string &aName, bool aShared=false) final
 
shader_uniform_id find_uniform (const i_string &aName) const final
 
void set_uniform (shader_uniform_id aUniform, const abstract_value_type &aValue) final
 
void clear_uniform_storage (shader_uniform_id aUniform) final
 
void update_uniform_storage (shader_uniform_id aUniform, shader_uniform_storage aStorage) final
 
void clear_uniform_location (shader_uniform_id aUniform) final
 
void update_uniform_location (shader_uniform_id aUniform, shader_uniform_location aLocation) final
 
const variable_listin_variables () const final
 
const variable_listout_variables () const final
 
void clear_variable (const i_string &aName) final
 
i_shader_variable & add_variable (const i_shader_variable &aVariable) final
 
void prepare_uniforms (const i_rendering_context &, i_shader_program &) override
 
void generate_code (const i_shader_program &aProgram, shader_language aLanguage, i_string &aOutput) const override
 
void generate_invoke (const i_shader_program &aProgram, shader_language aLanguage, i_string &aInvokes) const final
 
- Public Member Functions inherited from neolib::reference_counted< Base, DeallocateOnRelease >
 reference_counted () noexcept
 
 reference_counted (const reference_counted &aOther) noexcept
 
 ~reference_counted ()
 
reference_countedoperator= (const reference_counted &)
 
void add_ref () const noexcept override
 
void release () const override
 
int32_t use_count () const noexcept override
 
const base_type * release_and_take_ownership () const override
 
base_type * release_and_take_ownership () override
 
void pin () const noexcept override
 
void unpin () const override
 
i_ref_control_blockcontrol_block () override
 

Additional Inherited Members

- Protected Types inherited from neogfx::shader< Base >
typedef neolib::jar< shader_uniform > uniform_list
 
typedef neolib::set< shader_variable > variable_list
 
- Protected Member Functions inherited from neogfx::shader< Base >
uniform_listuniforms ()
 
variable_listin_variables ()
 
variable_listout_variables ()
 

Detailed Description

template<typename Base = i_vertex_shader>
class neogfx::vertex_shader< Base >

Definition at line 31 of file vertex_shader.hpp.

Member Typedef Documentation

◆ attribute_map

template<typename Base = i_vertex_shader>
typedef neolib::map<string, abstract_t<shader_variable>*> neogfx::vertex_shader< Base >::attribute_map

Definition at line 35 of file vertex_shader.hpp.

Constructor & Destructor Documentation

◆ vertex_shader()

template<typename Base = i_vertex_shader>
neogfx::vertex_shader< Base >::vertex_shader ( std::string const &  aName)
inline

Definition at line 37 of file vertex_shader.hpp.

Member Function Documentation

◆ add_attribute()

template<typename Base = i_vertex_shader>
i_shader_variable & neogfx::vertex_shader< Base >::add_attribute ( const i_string aName,
uint32_t  aLocation,
bool  aFlat,
shader_data_type  aType 
)
inlinefinal

Definition at line 59 of file vertex_shader.hpp.

◆ attributes()

template<typename Base = i_vertex_shader>
const attribute_map & neogfx::vertex_shader< Base >::attributes ( ) const
inlinefinal

Definition at line 42 of file vertex_shader.hpp.

◆ clear_attribute()

template<typename Base = i_vertex_shader>
void neogfx::vertex_shader< Base >::clear_attribute ( const i_string aName)
inlinefinal

Definition at line 46 of file vertex_shader.hpp.


The documentation for this class was generated from the following file: