neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neogfx::i_standard_shader_program Class Referenceabstract

#include <i_standard_shader_program.hpp>

Inheritance diagram for neogfx::i_standard_shader_program:
neogfx::i_shader_program neolib::i_reference_counted

Public Types

typedef i_standard_shader_program abstract_type
 
- Public Types inherited from neogfx::i_shader_program
typedef i_shader_program abstract_type
 
typedef neolib::i_ref_ptr< i_shader_stagei_stage_t
 
typedef neolib::i_vector< i_stage_ti_stages_t
 

Public Member Functions

virtual const i_standard_vertex_shaderstandard_vertex_shader () const =0
 
virtual i_standard_vertex_shaderstandard_vertex_shader ()=0
 
virtual const i_gradient_shadergradient_shader () const =0
 
virtual i_gradient_shadergradient_shader ()=0
 
virtual const i_texture_shadertexture_shader () const =0
 
virtual i_texture_shadertexture_shader ()=0
 
virtual const i_filter_shaderfilter_shader () const =0
 
virtual i_filter_shaderfilter_shader ()=0
 
virtual const i_glyph_shaderglyph_shader () const =0
 
virtual i_glyph_shaderglyph_shader ()=0
 
virtual const i_stipple_shaderstipple_shader () const =0
 
virtual i_stipple_shaderstipple_shader ()=0
 
virtual const i_shape_shadershape_shader () const =0
 
virtual i_shape_shadershape_shader ()=0
 
- Public Member Functions inherited from neogfx::i_shader_program
virtual ~i_shader_program ()=default
 
virtual shader_program_type type () const =0
 
virtual const i_stringname () const =0
 
virtual bool supports (vertex_buffer_type aBufferType) const =0
 
virtual bool created () const =0
 
virtual void * handle () const =0
 
virtual const i_stages_tstages () const =0
 
virtual i_stages_tstages ()=0
 
virtual const i_stage_tstage (shader_type aStage) const =0
 
virtual i_stage_tstage (shader_type aStage)=0
 
virtual const i_shader & shader (const neolib::i_string &aName) const =0
 
virtual i_shader & shader (const neolib::i_string &aName)=0
 
virtual const i_vertex_shadervertex_shader () const =0
 
virtual i_vertex_shadervertex_shader ()=0
 
virtual const i_fragment_shaderfragment_shader () const =0
 
virtual i_fragment_shaderfragment_shader ()=0
 
virtual bool is_first_in_stage (const i_shader &aShader) const =0
 
virtual bool is_last_in_stage (const i_shader &aShader) const =0
 
virtual const i_shader & first_in_stage (shader_type aStage) const =0
 
virtual const i_shader & next_in_stage (const i_shader &aPreviousShader) const =0
 
virtual const i_shader & last_in_stage (shader_type aStage) const =0
 
virtual i_shader & add_shader (const neolib::i_ref_ptr< i_shader > &aShader)=0
 
virtual bool dirty () const =0
 
virtual void set_clean ()=0
 
virtual void prepare_uniforms (const i_rendering_context &aContext)=0
 
virtual void make ()=0
 
virtual void compile ()=0
 
virtual void link ()=0
 
virtual void use ()=0
 
virtual void update_uniform_storage ()=0
 
virtual void update_uniform_locations ()=0
 
virtual bool uniforms_changed () const =0
 
virtual void update_uniforms (const i_rendering_context &aContext)=0
 
virtual bool active () const =0
 
virtual void activate (const i_rendering_context &aContext)=0
 
virtual void deactivate ()=0
 
virtual void instantiate (const i_rendering_context &aContext)=0
 
template<typename T >
const T & as () const
 
template<typename T >
T & as ()
 
bool have_stage (shader_type aStage) const
 
bool stage_clean (shader_type aStage) const
 
bool stage_dirty (shader_type aStage) const
 
- Public Member Functions inherited from neolib::i_reference_counted
virtual ~i_reference_counted ()=default
 
virtual void add_ref () const noexcept=0
 
virtual void release () const =0
 
virtual int32_t use_count () const noexcept=0
 
virtual const i_reference_countedrelease_and_take_ownership () const =0
 
virtual i_reference_countedrelease_and_take_ownership ()=0
 
virtual void pin () const noexcept=0
 
virtual void unpin () const =0
 
virtual i_ref_control_blockcontrol_block ()=0
 

Detailed Description

Definition at line 35 of file i_standard_shader_program.hpp.

Member Typedef Documentation

◆ abstract_type

Member Function Documentation

◆ filter_shader() [1/2]

virtual const i_filter_shader & neogfx::i_standard_shader_program::filter_shader ( ) const
pure virtual

◆ filter_shader() [2/2]

virtual i_filter_shader & neogfx::i_standard_shader_program::filter_shader ( )
pure virtual

◆ glyph_shader() [1/2]

virtual const i_glyph_shader & neogfx::i_standard_shader_program::glyph_shader ( ) const
pure virtual

◆ glyph_shader() [2/2]

virtual i_glyph_shader & neogfx::i_standard_shader_program::glyph_shader ( )
pure virtual

◆ gradient_shader() [1/2]

virtual const i_gradient_shader & neogfx::i_standard_shader_program::gradient_shader ( ) const
pure virtual

◆ gradient_shader() [2/2]

virtual i_gradient_shader & neogfx::i_standard_shader_program::gradient_shader ( )
pure virtual

◆ shape_shader() [1/2]

virtual const i_shape_shader & neogfx::i_standard_shader_program::shape_shader ( ) const
pure virtual

◆ shape_shader() [2/2]

virtual i_shape_shader & neogfx::i_standard_shader_program::shape_shader ( )
pure virtual

◆ standard_vertex_shader() [1/2]

virtual const i_standard_vertex_shader & neogfx::i_standard_shader_program::standard_vertex_shader ( ) const
pure virtual

◆ standard_vertex_shader() [2/2]

virtual i_standard_vertex_shader & neogfx::i_standard_shader_program::standard_vertex_shader ( )
pure virtual

◆ stipple_shader() [1/2]

virtual const i_stipple_shader & neogfx::i_standard_shader_program::stipple_shader ( ) const
pure virtual

◆ stipple_shader() [2/2]

virtual i_stipple_shader & neogfx::i_standard_shader_program::stipple_shader ( )
pure virtual

◆ texture_shader() [1/2]

virtual const i_texture_shader & neogfx::i_standard_shader_program::texture_shader ( ) const
pure virtual

◆ texture_shader() [2/2]

virtual i_texture_shader & neogfx::i_standard_shader_program::texture_shader ( )
pure virtual

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