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:
authorEnrico Turri <enricoturri@seznam.cz>2018-07-31 13:25:00 +0300
committerEnrico Turri <enricoturri@seznam.cz>2018-07-31 13:25:00 +0300
commit1c0fa198245eb27554b85b82e1b4fa43c7f18a3e (patch)
treee6a1cb75750370e1fd944191716c0f35c1c4c6e5 /xs/src/slic3r/GUI/GLTexture.cpp
parent55e7a1af4621dc8c09e9bdff8f5a6d5d8d5b00e6 (diff)
3D scene toolbar uses a single texture
Diffstat (limited to 'xs/src/slic3r/GUI/GLTexture.cpp')
-rw-r--r--xs/src/slic3r/GUI/GLTexture.cpp41
1 files changed, 37 insertions, 4 deletions
diff --git a/xs/src/slic3r/GUI/GLTexture.cpp b/xs/src/slic3r/GUI/GLTexture.cpp
index 18c9f5dea..03890d780 100644
--- a/xs/src/slic3r/GUI/GLTexture.cpp
+++ b/xs/src/slic3r/GUI/GLTexture.cpp
@@ -12,6 +12,10 @@
namespace Slic3r {
namespace GUI {
+//###################################################################################################################################
+GLTexture::Quad_UVs GLTexture::FullTextureUVs = { { 0.0f, 1.0f }, { 1.0f, 1.0f }, { 1.0f, 0.0f }, { 0.0f, 0.0f } };
+//###################################################################################################################################
+
GLTexture::GLTexture()
: m_id(0)
, m_width(0)
@@ -129,6 +133,34 @@ const std::string& GLTexture::get_source() const
void GLTexture::render_texture(unsigned int tex_id, float left, float right, float bottom, float top)
{
+//###################################################################################################################################
+ render_sub_texture(tex_id, left, right, bottom, top, FullTextureUVs);
+
+// ::glEnable(GL_BLEND);
+// ::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+//
+// ::glEnable(GL_TEXTURE_2D);
+// ::glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+//
+// ::glBindTexture(GL_TEXTURE_2D, (GLuint)tex_id);
+//
+// ::glBegin(GL_QUADS);
+// ::glTexCoord2f(0.0f, 1.0f); ::glVertex2f(left, bottom);
+// ::glTexCoord2f(1.0f, 1.0f); ::glVertex2f(right, bottom);
+// ::glTexCoord2f(1.0f, 0.0f); ::glVertex2f(right, top);
+// ::glTexCoord2f(0.0f, 0.0f); ::glVertex2f(left, top);
+// ::glEnd();
+//
+// ::glBindTexture(GL_TEXTURE_2D, 0);
+//
+// ::glDisable(GL_TEXTURE_2D);
+// ::glDisable(GL_BLEND);
+//###################################################################################################################################
+}
+
+//###################################################################################################################################
+void GLTexture::render_sub_texture(unsigned int tex_id, float left, float right, float bottom, float top, const GLTexture::Quad_UVs& uvs)
+{
::glEnable(GL_BLEND);
::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -138,10 +170,10 @@ void GLTexture::render_texture(unsigned int tex_id, float left, float right, flo
::glBindTexture(GL_TEXTURE_2D, (GLuint)tex_id);
::glBegin(GL_QUADS);
- ::glTexCoord2f(0.0f, 1.0f); ::glVertex2f(left, bottom);
- ::glTexCoord2f(1.0f, 1.0f); ::glVertex2f(right, bottom);
- ::glTexCoord2f(1.0f, 0.0f); ::glVertex2f(right, top);
- ::glTexCoord2f(0.0f, 0.0f); ::glVertex2f(left, top);
+ ::glTexCoord2f(uvs.left_bottom.u, uvs.left_bottom.v); ::glVertex2f(left, bottom);
+ ::glTexCoord2f(uvs.right_bottom.u, uvs.right_bottom.v); ::glVertex2f(right, bottom);
+ ::glTexCoord2f(uvs.right_top.u, uvs.right_top.v); ::glVertex2f(right, top);
+ ::glTexCoord2f(uvs.left_top.u, uvs.left_top.v); ::glVertex2f(left, top);
::glEnd();
::glBindTexture(GL_TEXTURE_2D, 0);
@@ -149,6 +181,7 @@ void GLTexture::render_texture(unsigned int tex_id, float left, float right, flo
::glDisable(GL_TEXTURE_2D);
::glDisable(GL_BLEND);
}
+//###################################################################################################################################
unsigned int GLTexture::_generate_mipmaps(wxImage& image)
{