Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::Shader Class Reference

Public Types

using Build = detail::Build
 
using const_iterator = typename std::vector<ShaderObject>::const_iterator
 
using iterator = typename std::vector<ShaderObject>::iterator
 
enum class  OnError : std::uint8_t { Warn , Throw }
 
enum class  UniformWarning : std::uint8_t { Ignore , Warn , Throw }
 

Public Member Functions

void activate ()
 
void addShaderObject (ShaderObject object)
 
void addShaderObject (ShaderType type, std::shared_ptr< const ShaderResource > resource)
 
iterator begin ()
 
const_iterator begin () const
 
void build ()
 
void deactivate ()
 
iterator end ()
 
const_iterator end () const
 
ShaderObjectgetComputeShaderObject ()
 
const ShaderObjectgetComputeShaderObject () const
 
ShaderObjectgetFragmentShaderObject ()
 
const ShaderObjectgetFragmentShaderObject () const
 
ShaderObjectgetGeometryShaderObject ()
 
const ShaderObjectgetGeometryShaderObject () const
 
GLuint getID () const
 
ShaderObjectgetShaderObject (ShaderType type)
 
const ShaderObjectgetShaderObject (ShaderType type) const
 
util::iter_range< iterator > getShaderObjects ()
 
util::iter_range< const_iterator > getShaderObjects () const
 
ShaderObjectgetTessellationControlShaderObject ()
 
const ShaderObjectgetTessellationControlShaderObject () const
 
ShaderObjectgetTessellationEvaluationShaderObject ()
 
const ShaderObjectgetTessellationEvaluationShaderObject () const
 
ShaderObjectgetVertexShaderObject ()
 
const ShaderObjectgetVertexShaderObject () const
 
void invalidate ()
 
bool isReady () const
 
void link ()
 
const BaseCallBack * onReload (std::function< void()> callback)
 
std::shared_ptr< std::function< void()> > onReloadScoped (std::function< void()> callback)
 
Shaderoperator= (const Shader &that)=delete
 
Shaderoperator= (Shader &&that)
 
ShaderObjectoperator[] (ShaderType type)
 
const ShaderObjectoperator[] (ShaderType type) const
 
void removeOnReload (const BaseCallBack *callback)
 
void setTransformFeedbackVaryings (std::span< const char * > varyings, GLenum bufferMode)
 
void setUniform (std::string_view name, bool value) const
 
void setUniform (std::string_view name, bvec2 value) const
 
void setUniform (std::string_view name, bvec3 value) const
 
void setUniform (std::string_view name, bvec4 value) const
 
void setUniform (std::string_view name, const mat2 &value) const
 
void setUniform (std::string_view name, const mat3 &value) const
 
void setUniform (std::string_view name, const mat4 &value) const
 
void setUniform (std::string_view name, const TextureUnit &value) const
 
void setUniform (std::string_view name, double value) const
 
void setUniform (std::string_view name, dvec2 value) const
 
void setUniform (std::string_view name, dvec3 value) const
 
void setUniform (std::string_view name, dvec4 value) const
 
void setUniform (std::string_view name, float value) const
 
void setUniform (std::string_view name, int value) const
 
void setUniform (std::string_view name, ivec2 value) const
 
void setUniform (std::string_view name, ivec3 value) const
 
void setUniform (std::string_view name, ivec4 value) const
 
void setUniform (std::string_view name, std::span< const bool > values) const
 
void setUniform (std::string_view name, std::span< const bvec2 > values) const
 
void setUniform (std::string_view name, std::span< const bvec3 > values) const
 
void setUniform (std::string_view name, std::span< const bvec4 > values) const
 
void setUniform (std::string_view name, std::span< const double > values) const
 
void setUniform (std::string_view name, std::span< const dvec2 > values) const
 
void setUniform (std::string_view name, std::span< const dvec3 > values) const
 
void setUniform (std::string_view name, std::span< const dvec4 > values) const
 
void setUniform (std::string_view name, std::span< const float > values) const
 
void setUniform (std::string_view name, std::span< const int > values) const
 
void setUniform (std::string_view name, std::span< const ivec2 > values) const
 
void setUniform (std::string_view name, std::span< const ivec3 > values) const
 
void setUniform (std::string_view name, std::span< const ivec4 > values) const
 
void setUniform (std::string_view name, std::span< const mat2 > values) const
 
void setUniform (std::string_view name, std::span< const mat3 > values) const
 
void setUniform (std::string_view name, std::span< const mat4 > values) const
 
void setUniform (std::string_view name, std::span< const unsigned int > values) const
 
void setUniform (std::string_view name, std::span< const uvec2 > values) const
 
void setUniform (std::string_view name, std::span< const uvec3 > values) const
 
void setUniform (std::string_view name, std::span< const uvec4 > values) const
 
void setUniform (std::string_view name, std::span< const vec2 > values) const
 
void setUniform (std::string_view name, std::span< const vec3 > values) const
 
void setUniform (std::string_view name, std::span< const vec4 > values) const
 
void setUniform (std::string_view name, unsigned int value) const
 
void setUniform (std::string_view name, uvec2 value) const
 
void setUniform (std::string_view name, uvec3 value) const
 
void setUniform (std::string_view name, uvec4 value) const
 
void setUniform (std::string_view name, vec2 value) const
 
void setUniform (std::string_view name, vec3 value) const
 
void setUniform (std::string_view name, vec4 value) const
 
void setUniformWarningLevel (UniformWarning level)
 
 Shader (const Shader &rhs)=delete
 
 Shader (const std::vector< std::pair< ShaderType, std::shared_ptr< const ShaderResource > > > &items, Build buildShader=Build::Yes)
 
 Shader (const std::vector< std::pair< ShaderType, std::string > > &items, Build buildShader=Build::Yes)
 
 Shader (Shader &&rhs)
 
 Shader (std::string_view fragmentFilename, Build buildShader=Build::Yes)
 
 Shader (std::string_view vertexFilename, std::string_view fragmentFilename, Build buildShader=Build::Yes)
 
 Shader (std::string_view vertexFilename, std::string_view geometryFilename, std::string_view fragmentFilename, Build buildShader=Build::Yes)
 
 Shader (std::vector< std::unique_ptr< ShaderObject > > &shaderObjects, Build buildShader=Build::Yes)
 

Member Function Documentation

◆ setTransformFeedbackVaryings()

void inviwo::Shader::setTransformFeedbackVaryings ( std::span< const char * > varyings,
GLenum bufferMode )

Specify values to record in transform feedback buffers.

Parameters
varyingsArray of names of the varying variables to use for transform feedback.
bufferModeThe mode used to capture the varying variables when transform feedback is active. Must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.

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