|
|
|
|
@ -52,7 +52,7 @@ Int AbstractShaderProgram::maxVertexAttributes() {
|
|
|
|
|
return value; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) |
|
|
|
|
Int AbstractShaderProgram::maxAtomicCounterBufferSize() { |
|
|
|
|
#ifndef MAGNUM_TARGET_GLES |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::ARB::shader_atomic_counters>()) |
|
|
|
|
@ -133,6 +133,7 @@ Int AbstractShaderProgram::maxImageSamples() {
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
Int AbstractShaderProgram::maxCombinedShaderOutputResources() { |
|
|
|
|
#ifndef MAGNUM_TARGET_GLES |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::ARB::shader_storage_buffer_object>() || !Context::current()->isExtensionSupported<Extensions::GL::ARB::shader_image_load_store>()) |
|
|
|
|
@ -166,7 +167,6 @@ Long AbstractShaderProgram::maxShaderStorageBlockSize() {
|
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
Int AbstractShaderProgram::maxUniformBlockSize() { |
|
|
|
|
#ifndef MAGNUM_TARGET_GLES |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::ARB::uniform_buffer_object>()) |
|
|
|
|
@ -180,9 +180,8 @@ Int AbstractShaderProgram::maxUniformBlockSize() {
|
|
|
|
|
|
|
|
|
|
return value; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
Int AbstractShaderProgram::maxUniformLocations() { |
|
|
|
|
#ifndef MAGNUM_TARGET_GLES |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::ARB::explicit_uniform_location>()) |
|
|
|
|
@ -200,7 +199,6 @@ Int AbstractShaderProgram::maxUniformLocations() {
|
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
Int AbstractShaderProgram::minTexelOffset() { |
|
|
|
|
#ifndef MAGNUM_TARGET_GLES |
|
|
|
|
if(!Context::current()->isExtensionSupported<Extensions::GL::EXT::gpu_shader4>()) |
|
|
|
|
@ -410,14 +408,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform1fv(location, count, values); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const GLfloat* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform1fvEXT(_id, location, count, values); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -426,6 +425,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -436,14 +436,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform2fv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::Vector<2, GLfloat>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform2fvEXT(_id, location, count, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -452,6 +453,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -462,14 +464,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform3fv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) |
|
|
|
|
void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const GLsizei count, const Math::Vector<3, GLfloat>* const values) { |
|
|
|
|
glProgramUniform3fv(_id, location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::Vector<3, GLfloat>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform3fvEXT(_id, location, count, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -478,6 +481,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -488,14 +492,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform4fv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::Vector<4, GLfloat>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform4fvEXT(_id, location, count, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -504,6 +509,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
void AbstractShaderProgram::setUniform(const Int location, const UnsignedInt count, const Int* const values) { |
|
|
|
|
(this->*Context::current()->state().shaderProgram->uniform1ivImplementation)(location, count, values); |
|
|
|
|
@ -514,14 +520,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform1iv(location, count, values); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const GLint* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform1ivEXT(_id, location, count, values); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -530,6 +537,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -540,14 +548,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform2iv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::Vector<2, GLint>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform2ivEXT(_id, location, count, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -556,6 +565,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -566,14 +576,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform3iv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::Vector<3, GLint>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform3ivEXT(_id, location, count, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -582,6 +593,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -592,14 +604,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform4iv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::Vector<4, GLint>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniform4ivEXT(_id, location, count, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -608,6 +621,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
void AbstractShaderProgram::setUniform(const Int location, const UnsignedInt count, const UnsignedInt* const values) { |
|
|
|
|
@ -619,6 +633,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
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); |
|
|
|
|
} |
|
|
|
|
@ -626,6 +641,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const GLuint* const 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); |
|
|
|
|
@ -636,6 +652,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform2uiv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#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()); |
|
|
|
|
} |
|
|
|
|
@ -643,6 +660,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(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 UnsignedInt count, const Math::Vector<3, UnsignedInt>* const values) { |
|
|
|
|
(this->*Context::current()->state().shaderProgram->uniform3uivImplementation)(location, count, values); |
|
|
|
|
@ -653,6 +671,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform3uiv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const GLsizei count, const Math::Vector<3, GLuint>* const values) { |
|
|
|
|
glProgramUniform3uiv(_id, location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
@ -660,6 +679,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(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 UnsignedInt count, const Math::Vector<4, UnsignedInt>* const values) { |
|
|
|
|
(this->*Context::current()->state().shaderProgram->uniform4uivImplementation)(location, count, values); |
|
|
|
|
@ -670,6 +690,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniform4uiv(location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const GLsizei count, const Math::Vector<4, GLuint>* const values) { |
|
|
|
|
glProgramUniform4uiv(_id, location, count, values[0].data()); |
|
|
|
|
} |
|
|
|
|
@ -678,6 +699,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
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) { |
|
|
|
|
@ -758,14 +780,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix2fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::RectangularMatrix<2, 2, GLfloat>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniformMatrix2fvEXT(_id, location, count, GL_FALSE, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -774,6 +797,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -784,14 +808,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix3fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::RectangularMatrix<3, 3, GLfloat>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniformMatrix3fvEXT(_id, location, count, GL_FALSE, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -800,6 +825,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#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); |
|
|
|
|
@ -810,14 +836,15 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix4fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
#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 |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::RectangularMatrix<4, 4, GLfloat>* const values) { |
|
|
|
|
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && !defined(CORRADE_TARGET_NACL) |
|
|
|
|
#ifndef CORRADE_TARGET_NACL |
|
|
|
|
glProgramUniformMatrix4fvEXT(_id, location, count, GL_FALSE, values[0].data()); |
|
|
|
|
#else |
|
|
|
|
static_cast<void>(location); |
|
|
|
|
@ -826,6 +853,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
CORRADE_ASSERT_UNREACHABLE(); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_GLES2 |
|
|
|
|
void AbstractShaderProgram::setUniform(const Int location, const UnsignedInt count, const Math::RectangularMatrix<2, 3, Float>* const values) { |
|
|
|
|
@ -837,6 +865,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix2x3fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const GLsizei count, const Math::RectangularMatrix<2, 3, GLfloat>* const values) { |
|
|
|
|
glProgramUniformMatrix2x3fv(_id, location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
@ -844,6 +873,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(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 UnsignedInt count, const Math::RectangularMatrix<3, 2, Float>* const values) { |
|
|
|
|
(this->*Context::current()->state().shaderProgram->uniformMatrix3x2fvImplementation)(location, count, values); |
|
|
|
|
@ -854,6 +884,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix3x2fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const GLsizei count, const Math::RectangularMatrix<3, 2, GLfloat>* const values) { |
|
|
|
|
glProgramUniformMatrix3x2fv(_id, location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
@ -861,6 +892,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(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 UnsignedInt count, const Math::RectangularMatrix<2, 4, Float>* const values) { |
|
|
|
|
(this->*Context::current()->state().shaderProgram->uniformMatrix2x4fvImplementation)(location, count, values); |
|
|
|
|
@ -871,6 +903,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
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()); |
|
|
|
|
} |
|
|
|
|
@ -878,6 +911,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint location, const GLsizei count, const Math::RectangularMatrix<2, 4, GLfloat>* const values) { |
|
|
|
|
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); |
|
|
|
|
@ -888,6 +922,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix4x2fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const GLsizei count, const Math::RectangularMatrix<4, 2, GLfloat>* const values) { |
|
|
|
|
glProgramUniformMatrix4x2fv(_id, location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
@ -895,6 +930,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(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 UnsignedInt count, const Math::RectangularMatrix<3, 4, Float>* const values) { |
|
|
|
|
(this->*Context::current()->state().shaderProgram->uniformMatrix3x4fvImplementation)(location, count, values); |
|
|
|
|
@ -905,6 +941,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix3x4fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#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()); |
|
|
|
|
} |
|
|
|
|
@ -912,6 +949,7 @@ void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const
|
|
|
|
|
void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(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 UnsignedInt count, const Math::RectangularMatrix<4, 3, Float>* const values) { |
|
|
|
|
(this->*Context::current()->state().shaderProgram->uniformMatrix4x3fvImplementation)(location, count, values); |
|
|
|
|
@ -922,6 +960,7 @@ void AbstractShaderProgram::uniformImplementationDefault(const GLint location, c
|
|
|
|
|
glUniformMatrix4x3fv(location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef MAGNUM_TARGET_WEBGL |
|
|
|
|
void AbstractShaderProgram::uniformImplementationSSO(const GLint location, const GLsizei count, const Math::RectangularMatrix<4, 3, GLfloat>* const values) { |
|
|
|
|
glProgramUniformMatrix4x3fv(_id, location, count, GL_FALSE, values[0].data()); |
|
|
|
|
} |
|
|
|
|
@ -930,6 +969,7 @@ void AbstractShaderProgram::uniformImplementationDSAEXT_SSOEXT(const GLint locat
|
|
|
|
|
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) { |
|
|
|
|
|