bind zero when texture is not defined for dual brush or pattern to avoid using the previous tex in slot

This commit is contained in:
2019-02-26 16:23:51 +01:00
parent 451406c17c
commit cedb8bc3fe
4 changed files with 27 additions and 18 deletions

View File

@@ -515,8 +515,9 @@ void Canvas::stroke_draw()
glActiveTexture(GL_TEXTURE0);
brush->m_tip_texture->bind();
glActiveTexture(GL_TEXTURE2);
if (brush->m_pattern_texture)
brush->m_pattern_texture->bind();
brush->m_pattern_texture ?
brush->m_pattern_texture->bind() :
glBindTexture(GL_TEXTURE_2D, 0);
glActiveTexture(GL_TEXTURE3);
m_mixer.bindTexture();
auto frames = stroke_draw_compute(*m_current_stroke);
@@ -558,8 +559,9 @@ void Canvas::stroke_draw()
ShaderManager::u_float(kShaderUniform::Noise, 0);
glActiveTexture(GL_TEXTURE0);
if (dual_brush->m_tip_texture)
dual_brush->m_tip_texture->bind();
dual_brush->m_tip_texture ?
dual_brush->m_tip_texture->bind() :
glBindTexture(GL_TEXTURE_2D, 0);
auto frames_dual = stroke_draw_compute(*m_dual_stroke);
for (auto& f : frames_dual)
{
@@ -828,8 +830,9 @@ void Canvas::stroke_commit()
if (b->m_dual_enabled)
m_tmp_dual[i].bindTexture();
glActiveTexture(GL_TEXTURE4);
if (b->m_pattern_texture)
b->m_pattern_texture->bind();
b->m_pattern_texture ?
b->m_pattern_texture->bind() :
glBindTexture(GL_TEXTURE_2D, 0);
m_plane.draw_fill();
glActiveTexture(GL_TEXTURE3);
if (b->m_dual_enabled)