X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Funiform.cpp;h=b183719fe339debaf55402b35cb2eeda15bb3d8a;hp=688052ff16d0ae3b8fdebc5fafe99e1025c118d9;hb=8bc776f177c7cf9d0c6fd9590273f086d38c23ca;hpb=f9c15dc04462b2f1eea1d6bdd71e3ba967b1bd8c diff --git a/source/uniform.cpp b/source/uniform.cpp index 688052ff..b183719f 100644 --- a/source/uniform.cpp +++ b/source/uniform.cpp @@ -1,45 +1,75 @@ -#include "arb_shader_objects.h" +#include #include "uniform.h" namespace Msp { namespace GL { template<> -void UniformScalar::apply(int index) const +void UniformScalar::apply(int index, unsigned size, const int *value) { - glUniform1iARB(index, value); + glUniform1iv(index, size, value); } template<> -void UniformScalar::apply(int index) const +void UniformScalar::apply(int index, unsigned size, const float *value) { - glUniform1fARB(index, value); + glUniform1fv(index, size, value); } template<> -void UniformVector::apply(int index) const +void UniformVector::apply(int index, unsigned size, const int *value) { - glUniform2fvARB(index, 1, value); + glUniform2iv(index, size, value); } template<> -void UniformVector::apply(int index) const +void UniformVector::apply(int index, unsigned size, const float *value) { - glUniform3fvARB(index, 1, value); + glUniform2fv(index, size, value); } template<> -void UniformVector::apply(int index) const +void UniformVector::apply(int index, unsigned size, const int *value) { - glUniform4fvARB(index, 1, value); + glUniform3iv(index, size, value); } +template<> +void UniformVector::apply(int index, unsigned size, const float *value) +{ + glUniform3fv(index, size, value); +} + +template<> +void UniformVector::apply(int index, unsigned size, const int *value) +{ + glUniform4iv(index, size, value); +} + +template<> +void UniformVector::apply(int index, unsigned size, const float *value) +{ + glUniform4fv(index, size, value); +} + + +template<> +void UniformMatrix::apply(int index, unsigned size, const float *value) +{ + glUniformMatrix2fv(index, size, false, value); +} + +template<> +void UniformMatrix::apply(int index, unsigned size, const float *value) +{ + glUniformMatrix3fv(index, size, false, value); +} template<> -void UniformMatrix::apply(int index) const +void UniformMatrix::apply(int index, unsigned size, const float *value) { - glUniformMatrix4fvARB(index, 1, false, value); + glUniformMatrix4fv(index, size, false, value); } } // namespace GL