@ -38,50 +38,6 @@
namespace Magnum {
AbstractShaderProgram : : Uniform1fvImplementation AbstractShaderProgram : : uniform1fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform2fvImplementation AbstractShaderProgram : : uniform2fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform3fvImplementation AbstractShaderProgram : : uniform3fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform4fvImplementation AbstractShaderProgram : : uniform4fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform1ivImplementation AbstractShaderProgram : : uniform1ivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform2ivImplementation AbstractShaderProgram : : uniform2ivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform3ivImplementation AbstractShaderProgram : : uniform3ivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform4ivImplementation AbstractShaderProgram : : uniform4ivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
# ifndef MAGNUM_TARGET_GLES2
AbstractShaderProgram : : Uniform1uivImplementation AbstractShaderProgram : : uniform1uivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform2uivImplementation AbstractShaderProgram : : uniform2uivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform3uivImplementation AbstractShaderProgram : : uniform3uivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform4uivImplementation AbstractShaderProgram : : uniform4uivImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
# endif
# ifndef MAGNUM_TARGET_GLES
AbstractShaderProgram : : Uniform1dvImplementation AbstractShaderProgram : : uniform1dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform2dvImplementation AbstractShaderProgram : : uniform2dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform3dvImplementation AbstractShaderProgram : : uniform3dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : Uniform4dvImplementation AbstractShaderProgram : : uniform4dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
# endif
AbstractShaderProgram : : UniformMatrix2fvImplementation AbstractShaderProgram : : uniformMatrix2fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix3fvImplementation AbstractShaderProgram : : uniformMatrix3fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix4fvImplementation AbstractShaderProgram : : uniformMatrix4fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
# ifndef MAGNUM_TARGET_GLES2
AbstractShaderProgram : : UniformMatrix2x3fvImplementation AbstractShaderProgram : : uniformMatrix2x3fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix3x2fvImplementation AbstractShaderProgram : : uniformMatrix3x2fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix2x4fvImplementation AbstractShaderProgram : : uniformMatrix2x4fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix4x2fvImplementation AbstractShaderProgram : : uniformMatrix4x2fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix3x4fvImplementation AbstractShaderProgram : : uniformMatrix3x4fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix4x3fvImplementation AbstractShaderProgram : : uniformMatrix4x3fvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
# endif
# ifndef MAGNUM_TARGET_GLES
AbstractShaderProgram : : UniformMatrix2dvImplementation AbstractShaderProgram : : uniformMatrix2dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix3dvImplementation AbstractShaderProgram : : uniformMatrix3dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix4dvImplementation AbstractShaderProgram : : uniformMatrix4dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix2x3dvImplementation AbstractShaderProgram : : uniformMatrix2x3dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix3x2dvImplementation AbstractShaderProgram : : uniformMatrix3x2dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix2x4dvImplementation AbstractShaderProgram : : uniformMatrix2x4dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix4x2dvImplementation AbstractShaderProgram : : uniformMatrix4x2dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix3x4dvImplementation AbstractShaderProgram : : uniformMatrix3x4dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
AbstractShaderProgram : : UniformMatrix4x3dvImplementation AbstractShaderProgram : : uniformMatrix4x3dvImplementation = & AbstractShaderProgram : : uniformImplementationDefault ;
# endif
Int AbstractShaderProgram : : maxVertexAttributes ( ) {
GLint & value = Context : : current ( ) - > state ( ) . shaderProgram - > maxVertexAttributes ;
@ -358,52 +314,8 @@ Int AbstractShaderProgram::uniformLocation(const std::string& name) {
return location ;
}
void AbstractShaderProgram : : initializeContextBasedFunctionality ( Context & context ) {
/** @todo OpenGL ES 2 has extension @es_extension{EXT,separate_shader_objects} for this */
# ifndef MAGNUM_TARGET_GLES
if ( context . isExtensionSupported < Extensions : : GL : : ARB : : separate_shader_objects > ( ) | |
context . isExtensionSupported < Extensions : : GL : : EXT : : direct_state_access > ( ) ) {
Debug ( ) < < " AbstractShaderProgram: using " < < ( context . isExtensionSupported < Extensions : : GL : : ARB : : separate_shader_objects > ( ) ?
Extensions : : GL : : ARB : : separate_shader_objects : : string ( ) : Extensions : : GL : : EXT : : direct_state_access : : string ( ) ) < < " features " ;
uniform1fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform2fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform3fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform4fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform1ivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform2ivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform3ivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform4ivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform1uivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform2uivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform3uivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform4uivImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform1dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform2dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform3dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniform4dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix2fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix3fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix4fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix2x3fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix3x2fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix2x4fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix4x2fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix3x4fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix4x3fvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix2dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix3dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix4dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix2x3dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix3x2dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix2x4dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix4x2dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix3x4dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
uniformMatrix4x3dvImplementation = & AbstractShaderProgram : : uniformImplementationDSA ;
}
# else
static_cast < void > ( context ) ;
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Float * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform1fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLfloat * const values ) {
@ -411,360 +323,817 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
glUniform1fv ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLfloat * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform1fv ( _id , location , count , values ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform1fvEXT(_id, location, count, values);
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const GLfloat * const values ) {
glProgramUniform1fv ( _id , location , count , values ) ;
glProgramUniform1fvEXT ( _id , location , count , values ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 2 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform2fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLfloat > * const values ) {
use ( ) ;
glUniform2fv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform2fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform2fvEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLfloat > * const values ) {
glProgramUniform2fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform2fvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 3 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform3fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLfloat > * const values ) {
use ( ) ;
glUniform3fv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform3fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform3fvEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLfloat > * const values ) {
glProgramUniform3fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform3fvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 4 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform4fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLfloat > * const values ) {
use ( ) ;
glUniform4fv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform4fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform4fvEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLfloat > * const values ) {
glProgramUniform4fv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform4fvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Int * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform1ivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLint * const values ) {
use ( ) ;
glUniform1iv ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLint * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform1iv ( _id , location , count , values ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform1ivEXT(_id, location, count, values);
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const GLint * const values ) {
glProgramUniform1iv ( _id , location , count , values ) ;
glProgramUniform1ivEXT ( _id , location , count , values ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 2 , Int > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform2ivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLint > * const values ) {
use ( ) ;
glUniform2iv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLint > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform2iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform2ivEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLint > * const values ) {
glProgramUniform2iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform2ivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 3 , Int > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform3ivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLint > * const values ) {
use ( ) ;
glUniform3iv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLint > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform3iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform3ivEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLint > * const values ) {
glProgramUniform3iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform3ivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 4 , Int > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform4ivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLint > * const values ) {
use ( ) ;
glUniform4iv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLint > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform4iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform4ivEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLint > * const values ) {
glProgramUniform4iv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform4ivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
# ifndef MAGNUM_TARGET_GLES2
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const UnsignedInt * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform1uivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLuint * const values ) {
use ( ) ;
glUniform1uiv ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLuint * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform1uiv ( _id , location , count , values ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform1uivEXT(_id, location, count, values);
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const GLuint * const values ) {
glProgramUniform1uiv ( _id , location , count , values ) ;
glProgramUniform1uivEXT ( _id , location , count , values ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 2 , UnsignedInt > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform2uivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLuint > * const values ) {
use ( ) ;
glUniform2uiv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLuint > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform2uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform2uivEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLuint > * const values ) {
glProgramUniform2uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform2uivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 3 , UnsignedInt > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform3uivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLuint > * const values ) {
use ( ) ;
glUniform3uiv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLuint > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform3uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform3uivEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLuint > * const values ) {
glProgramUniform3uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform3uivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 4 , UnsignedInt > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform4uivImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLuint > * const values ) {
use ( ) ;
glUniform4uiv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLuint > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniform4uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniform4uivEXT(_id, location, count, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLuint > * const values ) {
glProgramUniform4uiv ( _id , location , count , values [ 0 ] . data ( ) ) ;
glProgramUniform4uivEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
# endif
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Double * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform1dvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const GLdouble * const values ) {
use ( ) ;
glUniform1dv ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const GLdouble * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const GLdouble * const values ) {
glProgramUniform1dv ( _id , location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const GLdouble * const values ) {
glProgramUniform1dvEXT ( _id , location , count , values ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 2 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform2dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLdouble > * const values ) {
glProgramUniform2dv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 2 , GLdouble > * const values ) {
glProgramUniform2dvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 3 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform3dvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLdouble > * const values ) {
use ( ) ;
glUniform3dv ( location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLdouble > * const 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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 3 , GLdouble > * const values ) {
glProgramUniform3dvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : Vector < 4 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniform4dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLdouble > * const values ) {
glProgramUniform4dv ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : Vector < 4 , GLdouble > * const values ) {
glProgramUniform4dvEXT ( _id , location , count , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 2 , 2 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix2fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix2fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix2fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLfloat > * const values ) {
glProgramUniformMatrix2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix2fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 3 , 3 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix3fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix3fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix3fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLfloat > * const values ) {
glProgramUniformMatrix3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix3fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 4 , 4 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix4fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix4fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix4fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix4fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# ifndef MAGNUM_TARGET_GLES2
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 2 , 3 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix2x3fvImplementation ) ( location , count , values ) ;
}
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 ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix2x3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix2x3fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLfloat > * const values ) {
glProgramUniformMatrix2x3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix2x3fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 3 , 2 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix3x2fvImplementation ) ( location , count , values ) ;
}
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 ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix3x2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix3x2fv(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLfloat > * const values ) {
glProgramUniformMatrix3x2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix3x2fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 2 , 4 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix2x4fvImplementation ) ( location , count , values ) ;
}
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 ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix2x4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix2x4fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix2x4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix2x4fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 4 , 2 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix4x2fvImplementation ) ( location , count , values ) ;
}
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 ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix4x2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix4x2fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLfloat > * const values ) {
glProgramUniformMatrix4x2fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix4x2fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 3 , 4 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix3x4fvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLfloat > * const values ) {
use ( ) ;
glUniformMatrix3x4fv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix3x4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix3x4fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLfloat > * const values ) {
glProgramUniformMatrix3x4fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix3x4fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 4 , 3 , Float > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix4x3fvImplementation ) ( location , count , values ) ;
}
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 ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLfloat > * const values ) {
/** @todo Enable when extension loader for ES is available */
# ifndef MAGNUM_TARGET_GLES
glProgramUniformMatrix4x3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
# else
CORRADE_INTERNAL_ASSERT ( false ) ;
//glProgramUniformMatrix4x3fvEXT(_id, location, count, GL_FALSE, values[0].data());
static_cast < void > ( location ) ;
static_cast < void > ( count ) ;
static_cast < void > ( values ) ;
# endif
}
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLfloat > * const values ) {
glProgramUniformMatrix4x3fv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
glProgramUniformMatrix4x3fvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
# endif
# ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 2 , 2 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix2dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLdouble > * const values ) {
glProgramUniformMatrix2dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 2 , GLdouble > * const values ) {
glProgramUniformMatrix2dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 3 , 3 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix3dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLdouble > * const values ) {
glProgramUniformMatrix3dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 3 , GLdouble > * const values ) {
glProgramUniformMatrix3dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 4 , 4 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix4dvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix4dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLdouble > * const 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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 4 , GLdouble > * const values ) {
glProgramUniformMatrix4dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 2 , 3 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix2x3dvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix2x3dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLdouble > * const 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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 3 , GLdouble > * const values ) {
glProgramUniformMatrix2x3dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 3 , 2 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix3x2dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLdouble > * const values ) {
glProgramUniformMatrix3x2dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 2 , GLdouble > * const values ) {
glProgramUniformMatrix3x2dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 2 , 4 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix2x4dvImplementation ) ( location , count , values ) ;
}
void AbstractShaderProgram : : uniformImplementationDefault ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLdouble > * const values ) {
use ( ) ;
glUniformMatrix2x4dv ( location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLdouble > * const 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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 2 , 4 , GLdouble > * const values ) {
glProgramUniformMatrix2x4dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 4 , 2 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix4x2dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLdouble > * const values ) {
glProgramUniformMatrix4x2dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 2 , GLdouble > * const values ) {
glProgramUniformMatrix4x2dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 3 , 4 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix3x4dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLdouble > * const values ) {
glProgramUniformMatrix3x4dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 3 , 4 , GLdouble > * const values ) {
glProgramUniformMatrix3x4dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : setUniform ( const Int location , const UnsignedInt count , const Math : : RectangularMatrix < 4 , 3 , Double > * const values ) {
( this - > * Context : : current ( ) - > state ( ) . shaderProgram - > uniformMatrix4x3dvImplementation ) ( location , count , values ) ;
}
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 : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLdouble > * const values ) {
void AbstractShaderProgram : : uniformImplementationSSO ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLdouble > * const values ) {
glProgramUniformMatrix4x3dv ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
void AbstractShaderProgram : : uniformImplementationDSA ( const GLint location , const GLsizei count , const Math : : RectangularMatrix < 4 , 3 , GLdouble > * const values ) {
glProgramUniformMatrix4x3dvEXT ( _id , location , count , GL_FALSE , values [ 0 ] . data ( ) ) ;
}
# endif
namespace Implementation {
std : : size_ t FloatAttribute : : size ( GLint components , DataType dataType ) {
UnsignedIn t FloatAttribute : : size ( GLint components , DataType dataType ) {
switch ( dataType ) {
case DataType : : UnsignedByte :
case DataType : : Byte :
@ -787,7 +1156,7 @@ std::size_t FloatAttribute::size(GLint components, DataType dataType) {
}
# ifndef MAGNUM_TARGET_GLES2
std : : size_ t IntAttribute : : size ( GLint components , DataType dataType ) {
UnsignedIn t IntAttribute : : size ( GLint components , DataType dataType ) {
switch ( dataType ) {
case DataType : : UnsignedByte :
case DataType : : Byte :
@ -805,7 +1174,7 @@ std::size_t IntAttribute::size(GLint components, DataType dataType) {
# endif
# ifndef MAGNUM_TARGET_GLES
std : : size_ t DoubleAttribute : : size ( GLint components , DataType dataType ) {
UnsignedIn t DoubleAttribute : : size ( GLint components , DataType dataType ) {
switch ( dataType ) {
case DataType : : Double :
return 8 * components ;
@ -815,7 +1184,7 @@ std::size_t DoubleAttribute::size(GLint components, DataType dataType) {
}
# endif
std : : size_ t Attribute < Math : : Vector < 4 , Float > > : : size ( GLint components , DataType dataType ) {
UnsignedIn t Attribute < Math : : Vector < 4 , Float > > : : size ( GLint components , DataType dataType ) {
# ifndef MAGNUM_TARGET_GLES
if ( components = = GL_BGRA ) components = 4 ;
# endif