neoGFX
Cross-platform C++ app/game engine
|
#include <shader_program.hpp>
Public Types | |
typedef neolib::ref_ptr< i_shader_stage > | stage_t |
typedef neolib::vector< stage_t > | stages_t |
typedef neolib::ref_ptr< i_shader > | shader_t |
typedef neolib::i_ref_ptr< i_shader_stage > | i_stage_t |
typedef neolib::i_vector< i_stage_t > | i_stages_t |
Public Member Functions | |
shader_program (const std::string aName) | |
~shader_program () | |
const i_string & | name () const override |
bool | supports (vertex_buffer_type aBufferType) const override |
bool | created () const override |
void * | handle () const override |
const stages_t & | stages () const override |
stages_t & | stages () override |
const stage_t & | stage (shader_type aStage) const override |
stage_t & | stage (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_shader & | vertex_shader () const override |
i_vertex_shader & | vertex_shader () override |
const i_fragment_shader & | fragment_shader () const override |
i_fragment_shader & | fragment_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_counted & | operator= (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_block & | control_block () override |
Protected Member Functions | |
bool | need_full_uniform_update () const |
void | set_active () |
void | set_inactive () |
Definition at line 50 of file shader_program.hpp.
typedef neolib::i_ref_ptr<i_shader_stage> neogfx::i_shader_program::i_stage_t |
Definition at line 74 of file i_shader_program.hpp.
typedef neolib::i_vector<i_stage_t> neogfx::i_shader_program::i_stages_t |
Definition at line 75 of file i_shader_program.hpp.
typedef neolib::ref_ptr<i_shader> neogfx::shader_program< Base >::shader_t |
Definition at line 57 of file shader_program.hpp.
typedef neolib::ref_ptr<i_shader_stage> neogfx::shader_program< Base >::stage_t |
Definition at line 55 of file shader_program.hpp.
typedef neolib::vector<stage_t> neogfx::shader_program< Base >::stages_t |
Definition at line 56 of file shader_program.hpp.
|
inline |
Definition at line 53 of file shader_program.inl.
|
inline |
Definition at line 65 of file shader_program.inl.
|
inlineoverride |
Definition at line 291 of file shader_program.inl.
|
inlineoverride |
Definition at line 285 of file shader_program.inl.
|
inlineoverride |
Definition at line 223 of file shader_program.inl.
virtual void neogfx::i_shader_program::compile | ( | ) |
|
inlineoverride |
Definition at line 88 of file shader_program.inl.
|
inlineoverride |
Definition at line 235 of file shader_program.inl.
|
inlineoverride |
Definition at line 186 of file shader_program.inl.
|
inlineoverride |
Definition at line 160 of file shader_program.inl.
|
inlineoverride |
Definition at line 168 of file shader_program.inl.
|
inlineoverride |
Definition at line 94 of file shader_program.inl.
|
inline |
Definition at line 128 of file i_shader_program.hpp.
|
inlineoverride |
Definition at line 299 of file shader_program.inl.
|
inlineoverride |
Definition at line 174 of file shader_program.inl.
|
inlineoverride |
Definition at line 180 of file shader_program.inl.
|
inlineoverride |
Definition at line 196 of file shader_program.inl.
virtual void neogfx::i_shader_program::link | ( | ) |
|
inlineoverride |
Definition at line 261 of file shader_program.inl.
|
inlineoverride |
Definition at line 72 of file shader_program.inl.
|
protected |
Definition at line 306 of file shader_program.inl.
|
inlineoverride |
Definition at line 206 of file shader_program.inl.
|
inlineoverride |
Definition at line 253 of file shader_program.inl.
|
protected |
Definition at line 314 of file shader_program.inl.
|
inlineoverride |
Definition at line 245 of file shader_program.inl.
|
protected |
Definition at line 320 of file shader_program.inl.
|
inlineoverride |
Definition at line 131 of file shader_program.inl.
|
inlineoverride |
Definition at line 140 of file shader_program.inl.
|
override |
Definition at line 119 of file shader_program.inl.
|
override |
Definition at line 125 of file shader_program.inl.
|
inlineoverride |
Definition at line 107 of file shader_program.inl.
|
inlineoverride |
Definition at line 113 of file shader_program.inl.
|
inlineoverride |
Definition at line 78 of file shader_program.inl.
|
override |
Definition at line 275 of file shader_program.inl.
virtual void neogfx::i_shader_program::update_uniform_locations | ( | ) |
virtual void neogfx::i_shader_program::update_uniform_storage | ( | ) |
virtual void neogfx::i_shader_program::update_uniforms | ( | const i_rendering_context & | aContext | ) |
virtual void neogfx::i_shader_program::use | ( | ) |
|
inlineoverride |
Definition at line 146 of file shader_program.inl.
|
inlineoverride |
Definition at line 154 of file shader_program.inl.