VolViz
A volume visualization tool
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
VolViz::Private_::GL::ShaderProgram Class Reference

RAII wrapper for OpenGL shader programs objects. More...

#include <ShaderProgram.h>

+ Collaboration diagram for VolViz::Private_::GL::ShaderProgram:

Public Member Functions

 ShaderProgram () noexcept
 
 ~ShaderProgram ()
 
 ShaderProgram (ShaderProgram const &)=delete
 
 ShaderProgram (ShaderProgram &&rhs) noexcept
 
ShaderProgramoperator= (ShaderProgram &&rhs) noexcept
 
ShaderProgramattachShader (Shader const &shader) noexcept
 
template<class Container >
ShaderProgramattachShaders (Container &&c) noexcept
 
ShaderProgramlink ()
 
void use () const noexcept
 
UniformProxy const & operator[] (std::string const &name) const
 
auto activeUniformNames () const
 

Private Types

using UniformTable = std::unordered_map< std::string, UniformProxy >
 

Private Member Functions

void detachShaders () noexcept
 
void queryUniforms ()
 

Private Attributes

std::vector< GLuintattachedShaders_
 
UniformTable uniforms_
 
GLuint program_ = 0
 

Detailed Description

RAII wrapper for OpenGL shader programs objects.

Member Typedef Documentation

Constructor & Destructor Documentation

VolViz::Private_::GL::ShaderProgram::ShaderProgram ( )
inlinenoexcept
VolViz::Private_::GL::ShaderProgram::~ShaderProgram ( )
inline
VolViz::Private_::GL::ShaderProgram::ShaderProgram ( ShaderProgram const &  )
delete
VolViz::Private_::GL::ShaderProgram::ShaderProgram ( ShaderProgram &&  rhs)
inlinenoexcept

Member Function Documentation

auto VolViz::Private_::GL::ShaderProgram::activeUniformNames ( ) const
inline
ShaderProgram& VolViz::Private_::GL::ShaderProgram::attachShader ( Shader const &  shader)
inlinenoexcept
template<class Container >
ShaderProgram& VolViz::Private_::GL::ShaderProgram::attachShaders ( Container &&  c)
inlinenoexcept
void VolViz::Private_::GL::ShaderProgram::detachShaders ( )
inlineprivatenoexcept
ShaderProgram & VolViz::Private_::GL::ShaderProgram::link ( )
ShaderProgram& VolViz::Private_::GL::ShaderProgram::operator= ( ShaderProgram &&  rhs)
inlinenoexcept
UniformProxy const& VolViz::Private_::GL::ShaderProgram::operator[] ( std::string const &  name) const
inline
void VolViz::Private_::GL::ShaderProgram::queryUniforms ( )
private
void VolViz::Private_::GL::ShaderProgram::use ( ) const
inlinenoexcept

Member Data Documentation

std::vector<GLuint> VolViz::Private_::GL::ShaderProgram::attachedShaders_
private
GLuint VolViz::Private_::GL::ShaderProgram::program_ = 0
private
UniformTable VolViz::Private_::GL::ShaderProgram::uniforms_
private

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