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

#include <standard_shader_program.hpp>

Inheritance diagram for neogfx::standard_shader_program:
neogfx::shader_program< i_standard_shader_program > neolib::reference_counted< Base, DeallocateOnRelease >

Public Member Functions

 standard_shader_program (std::string const &aName="standard_shader_program")
 
shader_program_type type () const final
 
const i_standard_vertex_shaderstandard_vertex_shader () const final
 
i_standard_vertex_shaderstandard_vertex_shader () final
 
const i_gradient_shadergradient_shader () const final
 
i_gradient_shadergradient_shader () final
 
const i_texture_shadertexture_shader () const final
 
i_texture_shadertexture_shader () final
 
const i_filter_shaderfilter_shader () const final
 
i_filter_shaderfilter_shader () final
 
const i_glyph_shaderglyph_shader () const final
 
i_glyph_shaderglyph_shader () final
 
const i_stipple_shaderstipple_shader () const final
 
i_stipple_shaderstipple_shader () final
 
const i_shape_shadershape_shader () const final
 
i_shape_shadershape_shader () final
 
- Public Member Functions inherited from neogfx::shader_program< i_standard_shader_program >
 shader_program (const std::string aName)
 
 ~shader_program ()
 
const i_stringname () const override
 
bool supports (vertex_buffer_type aBufferType) const override
 
bool created () const override
 
void * handle () const override
 
const stages_tstages () const override
 
stages_tstages () override
 
const stage_tstage (shader_type aStage) const override
 
stage_tstage (shader_type aStage) override
 
const i_shader & shader (const neolib::i_string &aName) const override
 
i_shader & shader (const neolib::i_string &aName) override
 
const i_vertex_shadervertex_shader () const override
 
i_vertex_shadervertex_shader () override
 
const i_fragment_shaderfragment_shader () const override
 
i_fragment_shaderfragment_shader () override
 
bool is_first_in_stage (const i_shader &aShader) const override
 
bool is_last_in_stage (const i_shader &aShader) const override
 
const i_shader & first_in_stage (shader_type aStage) const override
 
const i_shader & next_in_stage (const i_shader &aPreviousShader) const override
 
const i_shader & last_in_stage (shader_type aStage) const override
 
i_shader & add_shader (const neolib::i_ref_ptr< i_shader > &aShader) override
 
bool dirty () const override
 
void set_clean () override
 
void prepare_uniforms (const i_rendering_context &aContext) override
 
void make () override
 
bool uniforms_changed () const override
 
bool active () const override
 
void activate (const i_rendering_context &aContext) override
 
void instantiate (const i_rendering_context &aContext) override
 
bool have_stage (shader_type aStage) const
 
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 void update_uniforms (const i_rendering_context &aContext)=0
 
- 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

- Public Types inherited from neogfx::shader_program< i_standard_shader_program >
typedef neolib::ref_ptr< i_shader_stagestage_t
 
typedef neolib::vector< stage_tstages_t
 
typedef neolib::ref_ptr< i_shader > shader_t
 
typedef neolib::i_ref_ptr< i_shader_stagei_stage_t
 
typedef neolib::i_vector< i_stage_ti_stages_t
 
- Protected Member Functions inherited from neogfx::shader_program< i_standard_shader_program >
bool need_full_uniform_update () const
 
void set_active ()
 
void set_inactive ()
 

Detailed Description

Definition at line 28 of file standard_shader_program.hpp.

Constructor & Destructor Documentation

◆ standard_shader_program()

neogfx::standard_shader_program::standard_shader_program ( std::string const &  aName = "standard_shader_program")

Member Function Documentation

◆ filter_shader() [1/2]

const i_filter_shader & neogfx::standard_shader_program::filter_shader ( ) const
final

◆ filter_shader() [2/2]

i_filter_shader & neogfx::standard_shader_program::filter_shader ( )
final

◆ glyph_shader() [1/2]

const i_glyph_shader & neogfx::standard_shader_program::glyph_shader ( ) const
final

◆ glyph_shader() [2/2]

i_glyph_shader & neogfx::standard_shader_program::glyph_shader ( )
final

◆ gradient_shader() [1/2]

const i_gradient_shader & neogfx::standard_shader_program::gradient_shader ( ) const
final

◆ gradient_shader() [2/2]

i_gradient_shader & neogfx::standard_shader_program::gradient_shader ( )
final

◆ shape_shader() [1/2]

const i_shape_shader & neogfx::standard_shader_program::shape_shader ( ) const
final

◆ shape_shader() [2/2]

i_shape_shader & neogfx::standard_shader_program::shape_shader ( )
final

◆ standard_vertex_shader() [1/2]

const i_standard_vertex_shader & neogfx::standard_shader_program::standard_vertex_shader ( ) const
final

◆ standard_vertex_shader() [2/2]

i_standard_vertex_shader & neogfx::standard_shader_program::standard_vertex_shader ( )
final

◆ stipple_shader() [1/2]

const i_stipple_shader & neogfx::standard_shader_program::stipple_shader ( ) const
final

◆ stipple_shader() [2/2]

i_stipple_shader & neogfx::standard_shader_program::stipple_shader ( )
final

◆ texture_shader() [1/2]

const i_texture_shader & neogfx::standard_shader_program::texture_shader ( ) const
final

◆ texture_shader() [2/2]

i_texture_shader & neogfx::standard_shader_program::texture_shader ( )
final

◆ type()

shader_program_type neogfx::standard_shader_program::type ( ) const
final

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