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:
@@ -121,8 +121,9 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
|||||||
glActiveTexture(GL_TEXTURE2);
|
glActiveTexture(GL_TEXTURE2);
|
||||||
canvas->m_canvas->m_smask.m_rtt[plane_index].bindTexture();
|
canvas->m_canvas->m_smask.m_rtt[plane_index].bindTexture();
|
||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
if (b->m_pattern_texture)
|
b->m_pattern_texture ?
|
||||||
b->m_pattern_texture->bind();
|
b->m_pattern_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
m_face_plane.draw_fill();
|
m_face_plane.draw_fill();
|
||||||
glActiveTexture(GL_TEXTURE2);
|
glActiveTexture(GL_TEXTURE2);
|
||||||
canvas->m_canvas->m_smask.m_rtt[plane_index].unbindTexture();
|
canvas->m_canvas->m_smask.m_rtt[plane_index].unbindTexture();
|
||||||
|
|||||||
@@ -515,8 +515,9 @@ void Canvas::stroke_draw()
|
|||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
brush->m_tip_texture->bind();
|
brush->m_tip_texture->bind();
|
||||||
glActiveTexture(GL_TEXTURE2);
|
glActiveTexture(GL_TEXTURE2);
|
||||||
if (brush->m_pattern_texture)
|
brush->m_pattern_texture ?
|
||||||
brush->m_pattern_texture->bind();
|
brush->m_pattern_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
m_mixer.bindTexture();
|
m_mixer.bindTexture();
|
||||||
auto frames = stroke_draw_compute(*m_current_stroke);
|
auto frames = stroke_draw_compute(*m_current_stroke);
|
||||||
@@ -558,8 +559,9 @@ void Canvas::stroke_draw()
|
|||||||
ShaderManager::u_float(kShaderUniform::Noise, 0);
|
ShaderManager::u_float(kShaderUniform::Noise, 0);
|
||||||
|
|
||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
if (dual_brush->m_tip_texture)
|
dual_brush->m_tip_texture ?
|
||||||
dual_brush->m_tip_texture->bind();
|
dual_brush->m_tip_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
auto frames_dual = stroke_draw_compute(*m_dual_stroke);
|
auto frames_dual = stroke_draw_compute(*m_dual_stroke);
|
||||||
for (auto& f : frames_dual)
|
for (auto& f : frames_dual)
|
||||||
{
|
{
|
||||||
@@ -828,8 +830,9 @@ void Canvas::stroke_commit()
|
|||||||
if (b->m_dual_enabled)
|
if (b->m_dual_enabled)
|
||||||
m_tmp_dual[i].bindTexture();
|
m_tmp_dual[i].bindTexture();
|
||||||
glActiveTexture(GL_TEXTURE4);
|
glActiveTexture(GL_TEXTURE4);
|
||||||
if (b->m_pattern_texture)
|
b->m_pattern_texture ?
|
||||||
b->m_pattern_texture->bind();
|
b->m_pattern_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
m_plane.draw_fill();
|
m_plane.draw_fill();
|
||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
if (b->m_dual_enabled)
|
if (b->m_dual_enabled)
|
||||||
|
|||||||
@@ -242,8 +242,9 @@ void NodeCanvas::draw()
|
|||||||
if (b->m_dual_enabled)
|
if (b->m_dual_enabled)
|
||||||
m_canvas->m_tmp_dual[plane_index].bindTexture();
|
m_canvas->m_tmp_dual[plane_index].bindTexture();
|
||||||
glActiveTexture(GL_TEXTURE4);
|
glActiveTexture(GL_TEXTURE4);
|
||||||
if (b->m_pattern_texture)
|
b->m_pattern_texture ?
|
||||||
b->m_pattern_texture->bind();
|
b->m_pattern_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
m_face_plane.draw_fill();
|
m_face_plane.draw_fill();
|
||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
if (b->m_dual_enabled)
|
if (b->m_dual_enabled)
|
||||||
|
|||||||
@@ -106,8 +106,9 @@ void NodeStrokePreview::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2
|
|||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
m_tex_dual.bind();
|
m_tex_dual.bind();
|
||||||
glActiveTexture(GL_TEXTURE4);
|
glActiveTexture(GL_TEXTURE4);
|
||||||
if (b->m_pattern_texture)
|
b->m_pattern_texture ?
|
||||||
b->m_pattern_texture->bind();
|
b->m_pattern_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
m_plane.draw_fill();
|
m_plane.draw_fill();
|
||||||
|
|
||||||
m_rtt_mixer.unbindFramebuffer();
|
m_rtt_mixer.unbindFramebuffer();
|
||||||
@@ -327,8 +328,9 @@ void NodeStrokePreview::draw_stroke()
|
|||||||
ShaderManager::u_float(kShaderUniform::Wet, 0);
|
ShaderManager::u_float(kShaderUniform::Wet, 0);
|
||||||
ShaderManager::u_float(kShaderUniform::Noise, 0);
|
ShaderManager::u_float(kShaderUniform::Noise, 0);
|
||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
if (dual_brush->m_tip_texture)
|
dual_brush->m_tip_texture ?
|
||||||
dual_brush->m_tip_texture->bind();
|
dual_brush->m_tip_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
auto frames_dual = stroke_draw_compute(m_dual_stroke);
|
auto frames_dual = stroke_draw_compute(m_dual_stroke);
|
||||||
for (auto& f : frames_dual)
|
for (auto& f : frames_dual)
|
||||||
{
|
{
|
||||||
@@ -357,8 +359,9 @@ void NodeStrokePreview::draw_stroke()
|
|||||||
glActiveTexture(GL_TEXTURE1);
|
glActiveTexture(GL_TEXTURE1);
|
||||||
m_tex.bind(); // tmp swap for blending
|
m_tex.bind(); // tmp swap for blending
|
||||||
glActiveTexture(GL_TEXTURE2);
|
glActiveTexture(GL_TEXTURE2);
|
||||||
if (b->m_pattern_texture)
|
b->m_pattern_texture ?
|
||||||
b->m_pattern_texture->bind();
|
b->m_pattern_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
m_rtt_mixer.bindTexture();
|
m_rtt_mixer.bindTexture();
|
||||||
auto frames = stroke_draw_compute(m_stroke);
|
auto frames = stroke_draw_compute(m_stroke);
|
||||||
@@ -435,8 +438,9 @@ void NodeStrokePreview::draw_stroke()
|
|||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
m_tex_dual.bind();
|
m_tex_dual.bind();
|
||||||
glActiveTexture(GL_TEXTURE4);
|
glActiveTexture(GL_TEXTURE4);
|
||||||
if (b->m_pattern_texture)
|
b->m_pattern_texture ?
|
||||||
b->m_pattern_texture->bind();
|
b->m_pattern_texture->bind() :
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
m_plane.draw_fill();
|
m_plane.draw_fill();
|
||||||
|
|
||||||
m_rtt.unbindFramebuffer();
|
m_rtt.unbindFramebuffer();
|
||||||
|
|||||||
Reference in New Issue
Block a user