Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/slic3r/GUI/GLShader.cpp')
-rw-r--r--src/slic3r/GUI/GLShader.cpp134
1 files changed, 42 insertions, 92 deletions
diff --git a/src/slic3r/GUI/GLShader.cpp b/src/slic3r/GUI/GLShader.cpp
index 9c1e93652..4c36efdd9 100644
--- a/src/slic3r/GUI/GLShader.cpp
+++ b/src/slic3r/GUI/GLShader.cpp
@@ -206,154 +206,104 @@ void GLShaderProgram::stop_using() const
glsafe(::glUseProgram(0));
}
-bool GLShaderProgram::set_uniform(const char* name, int value) const
+void GLShaderProgram::set_uniform(int id, int value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
- glsafe(::glUniform1i(id, static_cast<GLint>(value)));
- return true;
- }
- return false;
+ if (id >= 0)
+ glsafe(::glUniform1i(id, value));
}
-bool GLShaderProgram::set_uniform(const char* name, bool value) const
+void GLShaderProgram::set_uniform(int id, bool value) const
{
- return set_uniform(name, value ? 1 : 0);
+ set_uniform(id, value ? 1 : 0);
}
-bool GLShaderProgram::set_uniform(const char* name, float value) const
+void GLShaderProgram::set_uniform(int id, float value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
- glsafe(::glUniform1f(id, static_cast<GLfloat>(value)));
- return true;
- }
- return false;
+ if (id >= 0)
+ glsafe(::glUniform1f(id, value));
}
-bool GLShaderProgram::set_uniform(const char* name, double value) const
+void GLShaderProgram::set_uniform(int id, double value) const
{
- return set_uniform(name, static_cast<float>(value));
+ set_uniform(id, static_cast<float>(value));
}
-bool GLShaderProgram::set_uniform(const char* name, const std::array<int, 2>& value) const
+void GLShaderProgram::set_uniform(int id, const std::array<int, 2>& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniform2iv(id, 1, static_cast<const GLint*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const std::array<int, 3>& value) const
+void GLShaderProgram::set_uniform(int id, const std::array<int, 3>& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniform3iv(id, 1, static_cast<const GLint*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const std::array<int, 4>& value) const
+void GLShaderProgram::set_uniform(int id, const std::array<int, 4>& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniform4iv(id, 1, static_cast<const GLint*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const std::array<float, 2>& value) const
+void GLShaderProgram::set_uniform(int id, const std::array<float, 2>& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniform2fv(id, 1, static_cast<const GLfloat*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const std::array<float, 3>& value) const
+void GLShaderProgram::set_uniform(int id, const std::array<float, 3>& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniform3fv(id, 1, static_cast<const GLfloat*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const std::array<float, 4>& value) const
+void GLShaderProgram::set_uniform(int id, const std::array<float, 4>& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniform4fv(id, 1, static_cast<const GLfloat*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const float* value, size_t size) const
+void GLShaderProgram::set_uniform(int id, const float* value, size_t size) const
{
- if (size == 1)
- return set_uniform(name, value[0]);
- else if (size < 5) {
- int id = get_uniform_location(name);
- if (id >= 0) {
- if (size == 2)
- glsafe(::glUniform2fv(id, 1, static_cast<const GLfloat*>(value)));
- else if (size == 3)
- glsafe(::glUniform3fv(id, 1, static_cast<const GLfloat*>(value)));
- else
- glsafe(::glUniform4fv(id, 1, static_cast<const GLfloat*>(value)));
-
- return true;
- }
+ if (id >= 0) {
+ if (size == 1)
+ set_uniform(id, value[0]);
+ else if (size == 2)
+ glsafe(::glUniform2fv(id, 1, static_cast<const GLfloat*>(value)));
+ else if (size == 3)
+ glsafe(::glUniform3fv(id, 1, static_cast<const GLfloat*>(value)));
+ else if (size == 4)
+ glsafe(::glUniform4fv(id, 1, static_cast<const GLfloat*>(value)));
}
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const Transform3f& value) const
+void GLShaderProgram::set_uniform(int id, const Transform3f& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniformMatrix4fv(id, 1, GL_FALSE, static_cast<const GLfloat*>(value.matrix().data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const Transform3d& value) const
+void GLShaderProgram::set_uniform(int id, const Transform3d& value) const
{
- return set_uniform(name, value.cast<float>());
+ set_uniform(id, value.cast<float>());
}
-bool GLShaderProgram::set_uniform(const char* name, const Matrix3f& value) const
+void GLShaderProgram::set_uniform(int id, const Matrix3f& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniformMatrix3fv(id, 1, GL_FALSE, static_cast<const GLfloat*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const Vec3f& value) const
+void GLShaderProgram::set_uniform(int id, const Vec3f& value) const
{
- int id = get_uniform_location(name);
- if (id >= 0) {
+ if (id >= 0)
glsafe(::glUniform3fv(id, 1, static_cast<const GLfloat*>(value.data())));
- return true;
- }
- return false;
}
-bool GLShaderProgram::set_uniform(const char* name, const Vec3d& value) const
+void GLShaderProgram::set_uniform(int id, const Vec3d& value) const
{
- return set_uniform(name, static_cast<Vec3f>(value.cast<float>()));
+ set_uniform(id, static_cast<Vec3f>(value.cast<float>()));
}
int GLShaderProgram::get_attrib_location(const char* name) const