@ -427,12 +427,14 @@ void AbstractShaderProgram::dispatchCompute(const Vector3ui& workgroupCount) {
}
}
# endif
# endif
void AbstractShaderProgram : : use ( ) {
void AbstractShaderProgram : : use ( const GLuint id ) {
/* Use only if the program isn't already in use */
/* Use only if the program isn't already in use */
GLuint & current = Context : : current ( ) . state ( ) . shaderProgram . current ;
GLuint & current = Context : : current ( ) . state ( ) . shaderProgram . current ;
if ( current ! = _ id) glUseProgram ( current = _ id) ;
if ( current ! = id ) glUseProgram ( current = id ) ;
}
}
void AbstractShaderProgram : : use ( ) { use ( _id ) ; }
void AbstractShaderProgram : : attachShader ( Shader & shader ) {
void AbstractShaderProgram : : attachShader ( Shader & shader ) {
glAttachShader ( _id , shader . id ( ) ) ;
glAttachShader ( _id , shader . id ( ) ) ;
}
}
@ -563,620 +565,316 @@ UnsignedInt AbstractShaderProgram::uniformBlockIndexInternal(const Containers::A
# endif
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Float > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Float > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform1fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform1fvImplementation ( _id , location , values . size ( ) , values . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLfloat * const values ) {
void AbstractShaderProgram : : uniform1fv ImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLfloat * const values ) {
use ( ) ;
use ( id ) ;
glUniform1fv ( location , count , values ) ;
glUniform1fv ( location , count , values ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLfloat * const values ) {
glProgramUniform1fv ( _id , location , count , values ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const GLfloat * const values ) {
glProgramUniform1fvEXT ( _id , location , count , values ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform2fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform2fvImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLfloat > * const values ) {
void AbstractShaderProgram : : uniform2fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLfloat * const values ) {
use ( ) ;
use ( id ) ;
glUniform2fv ( location , count , values [ 0 ] . data ( ) ) ;
glUniform2fv ( location , count , values ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLfloat > * const values ) {
glProgramUniform2fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLfloat > * const values ) {
glProgramUniform2fvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform3fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform3fvImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLfloat > * const values ) {
use ( ) ;
glUniform3fv ( location , count , values [ 0 ] . data ( ) ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniform3fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLfloat * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLfloat > * const values ) {
use ( id ) ;
glProgram Uniform3fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glUniform3fv ( location , count , values ) ;
}
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLfloat > * const values ) {
glProgramUniform3fvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform4fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform4fvImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLfloat > * const values ) {
use ( ) ;
glUniform4fv ( location , count , values [ 0 ] . data ( ) ) ;
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLfloat > * const values ) {
glProgramUniform4fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniform4fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLfloat * const values ) {
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLfloat > * const values ) {
use ( id ) ;
glProgram Uniform4fvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
glUniform4fv ( location , count , values ) ;
}
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Int > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Int > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform1ivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform1ivImplementation ( _id , location , values . size ( ) , values . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLint * values ) {
void AbstractShaderProgram : : uniform1iv ImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLint * values ) {
use ( ) ;
use ( id ) ;
glUniform1iv ( location , count , values ) ;
glUniform1iv ( location , count , values ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLint * const values ) {
glProgramUniform1iv ( _id , location , count , values ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const GLint * const values ) {
glProgramUniform1ivEXT ( _id , location , count , values ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , Int > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , Int > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform2ivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform2ivImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLint > * const values ) {
use ( ) ;
glUniform2iv ( location , count , values [ 0 ] . data ( ) ) ;
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLint > * const values ) {
glProgramUniform2iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniform2ivImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLint * const values ) {
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLint > * const values ) {
use ( id ) ;
glProgram Uniform2ivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
glUniform2iv ( location , count , values ) ;
}
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , Int > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , Int > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform3ivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform3ivImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLint > * const values ) {
void AbstractShaderProgram : : uniform3iv ImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLint * const values ) {
use ( ) ;
use ( id ) ;
glUniform3iv ( location , count , values [ 0 ] . data ( ) ) ;
glUniform3iv ( location , count , values ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLint > * const values ) {
glProgramUniform3iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLint > * const values ) {
glProgramUniform3ivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , Int > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , Int > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform4ivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform4ivImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLint > * const values ) {
void AbstractShaderProgram : : uniform4ivImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLint * const values ) {
use ( ) ;
use ( id ) ;
glUniform4iv ( location , count , values [ 0 ] . data ( ) ) ;
glUniform4iv ( location , count , values ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLint > * const values ) {
glProgramUniform4iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLint > * const values ) {
glProgramUniform4ivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
# ifndef MAGNUM_TARGET_GLES2
# ifndef MAGNUM_TARGET_GLES2
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const UnsignedInt > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const UnsignedInt > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform1uivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform1uivImplementation ( _id , location , values . size ( ) , values . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLuint * const values ) {
void AbstractShaderProgram : : uniform1uivImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLuint * const values ) {
use ( ) ;
use ( id ) ;
glUniform1uiv ( location , count , values ) ;
glUniform1uiv ( location , count , values ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLuint * const values ) {
glProgramUniform1uiv ( _id , location , count , values ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const GLuint * const values ) {
glProgramUniform1uivEXT ( _id , location , count , values ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , UnsignedInt > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , UnsignedInt > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform2uivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform2uivImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLuint > * const values ) {
void AbstractShaderProgram : : uniform2uivImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLuint * const values ) {
use ( ) ;
use ( id ) ;
glUniform2uiv ( location , count , values [ 0 ] . data ( ) ) ;
glUniform2uiv ( location , count , values ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLuint > * const values ) {
glProgramUniform2uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLuint > * const values ) {
glProgramUniform2uivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , UnsignedInt > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , UnsignedInt > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform3uivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform3uivImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLuint > * const values ) {
use ( ) ;
glUniform3uiv ( location , count , values [ 0 ] . data ( ) ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniform3uivImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLuint * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLuint > * const values ) {
use ( id ) ;
glProgram Uniform3uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glUniform3uiv ( location , count , values ) ;
}
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLuint > * const values ) {
glProgramUniform3uivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , UnsignedInt > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , UnsignedInt > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform4uivImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform4uivImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLuint > * const values ) {
use ( ) ;
glUniform4uiv ( location , count , values [ 0 ] . data ( ) ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniform4uivImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLuint * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLuint > * const values ) {
use ( id ) ;
glProgramUniform4uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glUniform4uiv ( location , count , values ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLuint > * const values ) {
glProgramUniform4uivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
}
# endif
# endif
# endif
# ifndef MAGNUM_TARGET_GLES
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Double > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Double > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform1dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform1dvImplementation ( _id , location , values . size ( ) , values . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLdouble * const values ) {
void AbstractShaderProgram : : uniform1dv ImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLdouble * const values ) {
use ( ) ;
use ( id ) ;
glUniform1dv ( location , count , values ) ;
glUniform1dv ( location , count , values ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLdouble * const values ) {
glProgramUniform1dv ( _id , location , count , values ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 2 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform2dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform2dvImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLdouble > * const values ) {
use ( ) ;
glUniform2dv ( location , count , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniform2dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLdouble * const values ) {
glProgramUniform2dv ( _id , location , count , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniform2dv ( location , count , values ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 3 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform3dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform3dvImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniform3dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLdouble * const values ) {
use ( ) ;
use ( id ) ;
glUniform3dv ( location , count , values [ 0 ] . data ( ) ) ;
glUniform3dv ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLdouble > * const values ) {
glProgramUniform3dv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : Vector < 4 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniform4dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniform4dvImplementation ( _id , location , values . size ( ) , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLdouble > * const values ) {
use ( ) ;
glUniform4dv ( location , count , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniform4dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLdouble * const values ) {
glProgramUniform4dv ( _id , location , count , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniform4dv ( location , count , values ) ;
}
}
# endif
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 2 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 2 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLfloat > * const values ) {
void AbstractShaderProgram : : uniformMatrix2fv ImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
use ( ) ;
use ( id ) ;
glUniformMatrix2fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix2fv ( location , count , transpose , values ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLfloat > * const values ) {
glProgramUniformMatrix2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLfloat > * const values ) {
glProgramUniformMatrix2fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 3 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 3 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLfloat > * const values ) {
void AbstractShaderProgram : : uniformMatrix3fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
use ( ) ;
use ( id ) ;
glUniformMatrix3fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix3fv ( location , count , transpose , values ) ;
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLfloat > * const values ) {
glProgramUniformMatrix3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLfloat > * const values ) {
glProgramUniformMatrix3fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 4 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 4 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLfloat > * const values ) {
void AbstractShaderProgram : : uniformMatrix4fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
use ( ) ;
use ( id ) ;
glUniformMatrix4fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix4fv ( location , count , transpose , values ) ;
}
}
# if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix4fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# ifndef MAGNUM_TARGET_GLES2
# ifndef MAGNUM_TARGET_GLES2
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 3 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 3 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x3fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x3fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix2x3fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformMatrix2x3fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLfloat > * const values ) {
use ( id ) ;
glProgram UniformMatrix2x3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix2x3fv ( location , count , transpose , values ) ;
}
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLfloat > * const values ) {
glProgramUniformMatrix2x3fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 2 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 2 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x2fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x2fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix3x2fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformMatrix3x2fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLfloat > * const values ) {
use ( id ) ;
glProgramUniformMatrix3x2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix3x2fv ( location , count , transpose , values ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLfloat > * const values ) {
glProgramUniformMatrix3x2fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 4 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 4 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x4fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x4fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix2x4fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix2x4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformMatrix2x4fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLfloat > * const values ) {
use ( id ) ;
glProgram UniformMatrix2x4fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix2x4fv ( location , count , transpose , values ) ;
}
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 2 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 2 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x2fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x2fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix4x2fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformMatrix4x2fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLfloat > * const values ) {
use ( id ) ;
glProgram UniformMatrix4x2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix4x2fv ( location , count , transpose , values ) ;
}
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLfloat > * const values ) {
glProgramUniformMatrix4x2fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 4 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 4 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x4fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x4fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLfloat > * const values ) {
void AbstractShaderProgram : : uniformMatrix3x4fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
use ( ) ;
use ( id ) ;
glUniformMatrix3x4fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix3x4fv ( location , count , transpose , values ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix3x4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix3x4fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 3 , Float > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 3 , Float > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x3fvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x3fvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix4x3fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
# ifndef MAGNUM_TARGET_WEBGL
void AbstractShaderProgram : : uniformMatrix4x3fvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLfloat * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLfloat > * const values ) {
use ( id ) ;
glProgram UniformMatrix4x3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix4x3fv ( location , count , transpose , values ) ;
}
}
# endif
# endif
# if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_WEBGL)
void AbstractShaderProgram : : uniformImplementationSSOEXT ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLfloat > * const values ) {
glProgramUniformMatrix4x3fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# endif
# ifndef MAGNUM_TARGET_GLES
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 2 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 2 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix2dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix2dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
glProgramUniformMatrix2dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniformMatrix2dv ( location , count , transpose , values ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 3 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 3 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix3dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix3dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
glProgramUniformMatrix3dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniformMatrix3dv ( location , count , transpose , values ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 4 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 4 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix4dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
use ( ) ;
use ( id ) ;
glUniformMatrix4dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix4dv ( location , count , transpose , values ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLdouble > * const values ) {
glProgramUniformMatrix4dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 3 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 3 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x3dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x3dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix2x3dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
use ( ) ;
use ( id ) ;
glUniformMatrix2x3dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix2x3dv ( location , count , transpose , values ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLdouble > * const values ) {
glProgramUniformMatrix2x3dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 2 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 2 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x2dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x2dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix3x2dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix3x2dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
glProgramUniformMatrix3x2dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniformMatrix3x2dv ( location , count , transpose , values ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 4 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 2 , 4 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x4dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix2x4dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix2x4dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
use ( ) ;
use ( id ) ;
glUniformMatrix2x4dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glUniformMatrix2x4dv ( location , count , transpose , values ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLdouble > * const values ) {
glProgramUniformMatrix2x4dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 2 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 2 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x2dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x2dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix4x2dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix4x2dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
glProgramUniformMatrix4x2dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniformMatrix4x2dv ( location , count , transpose , values ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 4 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 3 , 4 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x4dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix3x4dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix3x4dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix3x4dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
glProgramUniformMatrix3x4dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniformMatrix3x4dv ( location , count , transpose , values ) ;
}
}
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 3 , Double > > values ) {
void AbstractShaderProgram : : setUniform ( const Int location , const Containers : : ArrayView < const Math : : RectangularMatrix < 4 , 3 , Double > > values ) {
( this - > * Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x3dvImplementation ) ( location , values . size ( ) , values ) ;
Context : : current ( ) . state ( ) . shaderProgram . uniformMatrix4x3dvImplementation ( _id , location , values . size ( ) , GL_FALSE , values . data ( ) - > data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix4x3dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformMatrix4x3dvImplementationDefault ( const GLuint id , const GLint location , const GLsizei count , const GLboolean transpose , const GLdouble * const values ) {
glProgramUniformMatrix4x3dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
use ( id ) ;
glUniformMatrix4x3dv ( location , count , transpose , values ) ;
}
}
# endif
# endif