X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Funiform.cpp;h=c18fc360674a056315d62bb64d188b6a023a4508;hb=47bfbdc8cf844aa079995fca34a3b906b49a4f66;hp=09450a9a0962f991805ae0d7ba35698ff031f515;hpb=6afbace895a7bbcf216ab8e48280ea0303ab5892;p=libs%2Fgl.git diff --git a/source/uniform.cpp b/source/uniform.cpp index 09450a9a..c18fc360 100644 --- a/source/uniform.cpp +++ b/source/uniform.cpp @@ -1,4 +1,5 @@ -#include "arb_shader_objects.h" +#include +#include #include "uniform.h" namespace Msp { @@ -17,18 +18,36 @@ void UniformScalar::apply(int index, unsigned size, const float *value) } +template<> +void UniformVector::apply(int index, unsigned size, const int *value) +{ + glUniform2iv(index, size, value); +} + template<> void UniformVector::apply(int index, unsigned size, const float *value) { glUniform2fv(index, size, value); } +template<> +void UniformVector::apply(int index, unsigned size, const int *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) { @@ -36,6 +55,54 @@ void UniformVector::apply(int index, unsigned size, const float *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) +{ + glUniformMatrix3x2fv(index, size, false, value); +} + +template<> +void UniformMatrix::apply(int index, unsigned size, const float *value) +{ + glUniformMatrix4x2fv(index, size, false, value); +} + +template<> +void UniformMatrix::apply(int index, unsigned size, const float *value) +{ + glUniformMatrix2x3fv(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, unsigned size, const float *value) +{ + glUniformMatrix4x3fv(index, size, false, value); +} + +template<> +void UniformMatrix::apply(int index, unsigned size, const float *value) +{ + glUniformMatrix2x4fv(index, size, false, value); +} + +template<> +void UniformMatrix::apply(int index, unsigned size, const float *value) +{ + glUniformMatrix3x4fv(index, size, false, value); +} + template<> void UniformMatrix::apply(int index, unsigned size, const float *value) {