diff -r a4055f67b9c7 -r cb81ecb5fb23 src/gl/common.h --- a/src/gl/common.h Thu Feb 13 15:25:01 2020 +0200 +++ b/src/gl/common.h Wed Feb 26 02:21:07 2020 +0200 @@ -37,6 +37,14 @@ const char* vertexShaderSource, const char* fragmentShaderSource); void checkForGLErrors(QWidget* parent); + inline glm::vec3 colorToVector3(const QColor& color) + { + return {toFloat(color.redF()), toFloat(color.greenF()), toFloat(color.blueF())}; + } + inline glm::vec4 colorToVector4(const QColor& color) + { + return {gl::colorToVector3(color), toFloat(color.alphaF())}; + } } class gl::ShaderProgram : public QOpenGLShaderProgram @@ -50,11 +58,10 @@ const float (*array)[4][4] = reinterpret_cast(glm::value_ptr(value)); this->setUniformValue(uniformName, *array); } - template - void setUniformVector(const char* uniformName, const glm::vec& value) + template + void setUniformVector(const char* uniformName, const glm::vec<4, Float, Prec>& value) { - const Float (*array)[N] = reinterpret_cast(glm::value_ptr(value)); - this->setUniformValue(uniformName, array); + this->setUniformValue(uniformName, value.x, value.y, value.z, value.w); } };