mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-13 17:58:03 -06:00
3D scene toolbar uses a single texture
This commit is contained in:
parent
55e7a1af46
commit
1c0fa19824
72 changed files with 690 additions and 271 deletions
|
@ -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)
|
||||
|
@ -128,6 +132,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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue