From 58502a24577901e03ee30be52cf2f301126cb3da Mon Sep 17 00:00:00 2001 From: omigamedev Date: Tue, 29 Jan 2019 00:51:45 +0100 Subject: [PATCH] fix uniforms in node_canvas --- src/canvas.cpp | 17 +++-------------- src/node_canvas.cpp | 11 ++--------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/src/canvas.cpp b/src/canvas.cpp index b29e4e1..4050424 100644 --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -948,20 +948,9 @@ void Canvas::stroke_start(glm::vec3 point, float pressure, const std::shared_ptr m_dirty_box[i] = glm::vec4(m_width, m_height, 0, 0); // reset bounding box m_dirty_face[i] = false; -// if (m_state == kCanvasMode::Erase || m_layers[m_current_layer_idx].m_alpha_locked) -// { -// m_layers[m_current_layer_idx].m_rtt[i].bindFramebuffer(); -// m_tmp[i].bindTexture(); -// glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, m_width, m_height); -// m_tmp[i].unbindTexture(); -// m_layers[m_current_layer_idx].m_rtt[i].unbindFramebuffer(); -// } -// else - { - m_tmp[i].bindFramebuffer(); - m_tmp[i].clear({ 0, 0, 0, 0 }); - m_tmp[i].unbindFramebuffer(); - } + m_tmp[i].bindFramebuffer(); + m_tmp[i].clear({ 0, 0, 0, 0 }); + m_tmp[i].unbindFramebuffer(); } m_show_tmp = true; } diff --git a/src/node_canvas.cpp b/src/node_canvas.cpp index ced2569..7ccf554 100644 --- a/src/node_canvas.cpp +++ b/src/node_canvas.cpp @@ -179,6 +179,7 @@ void NodeCanvas::draw() ShaderManager::u_int(kShaderUniform::Tex, 0); ShaderManager::u_int(kShaderUniform::TexStroke, 1); ShaderManager::u_int(kShaderUniform::TexMask, 2); + ShaderManager::u_vec2(kShaderUniform::Resolution, zw(m_canvas->m_box) / zoom); ShaderManager::u_float(kShaderUniform::StrokeAlpha, m_canvas->m_current_stroke->m_brush->m_tip_opacity); ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_layers[layer_index].m_opacity); ShaderManager::u_int(kShaderUniform::UseFragCoordUV2, false); @@ -205,7 +206,7 @@ void NodeCanvas::draw() ShaderManager::u_int(kShaderUniform::Tex, 0); ShaderManager::u_int(kShaderUniform::TexStroke, 1); ShaderManager::u_int(kShaderUniform::TexMask, 2); - //ShaderManager::u_vec2(kShaderUniform::Resolution, zw(m_canvas->m_box) / zoom); + ShaderManager::u_vec2(kShaderUniform::Resolution, zw(m_canvas->m_box) / zoom); //ShaderManager::u_int(kShaderUniform::TexStencil, 3); ShaderManager::u_float(kShaderUniform::StrokeAlpha, m_canvas->m_current_stroke->m_brush->m_tip_opacity); ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_layers[layer_index].m_opacity); @@ -220,15 +221,7 @@ void NodeCanvas::draw() m_canvas->m_tmp[plane_index].bindTexture(); glActiveTexture(GL_TEXTURE2); m_canvas->m_smask.m_rtt[plane_index].bindTexture(); - glActiveTexture(GL_TEXTURE3); - if (m_canvas->m_current_stroke->m_brush->m_stencil_texture) - m_canvas->m_current_stroke->m_brush->m_stencil_texture->bind(); - else - glBindTexture(GL_TEXTURE_2D, 0); m_face_plane.draw_fill(); - if (m_canvas->m_current_stroke->m_brush->m_stencil_texture) - m_canvas->m_current_stroke->m_brush->m_stencil_texture->unbind(); - glActiveTexture(GL_TEXTURE2); m_canvas->m_smask.m_rtt[plane_index].unbindTexture(); glActiveTexture(GL_TEXTURE1); m_canvas->m_tmp[plane_index].unbindTexture();