multiple selection for free mask

This commit is contained in:
2019-05-17 10:54:38 +02:00
parent c4cf0c7e47
commit c4e166fc32
5 changed files with 83 additions and 13 deletions

View File

@@ -443,10 +443,31 @@ void NodeCanvas::draw()
glDisable(GL_DEPTH_TEST);
if (m_canvas->m_smask_active || m_canvas->m_current_mode == kCanvasMode::Copy || m_canvas->m_current_mode == kCanvasMode::Cut)
{
if (m_canvas->m_smask_mode == 1)
m_canvas->modes[(int)kCanvasMode::MaskFree][0]->on_Draw(ortho_proj, proj, camera);
else if (m_canvas->m_smask_mode == 2)
m_canvas->modes[(int)kCanvasMode::MaskLine][0]->on_Draw(ortho_proj, proj, camera);
// if (m_canvas->m_smask_mode == 1)
// m_canvas->modes[(int)kCanvasMode::MaskFree][0]->on_Draw(ortho_proj, proj, camera);
// else if (m_canvas->m_smask_mode == 2)
// m_canvas->modes[(int)kCanvasMode::MaskLine][0]->on_Draw(ortho_proj, proj, camera);
ShaderManager::use(kShader::TextureMask);
ShaderManager::u_int(kShaderUniform::Tex, 0);
glActiveTexture(GL_TEXTURE0);
glEnable(GL_BLEND);
//draw the cube faces
for (int plane_index = 0; plane_index < 6; plane_index++)
{
auto plane_mvp = proj * camera *
glm::scale(glm::vec3(m_canvas->m_order.size() + 500.f)) *
m_canvas->m_plane_transform[plane_index] *
glm::translate(glm::vec3(0, 0, -1.f));
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp);
m_canvas->m_smask.m_rtt[plane_index].bindTexture();
m_face_plane.draw_fill();
m_canvas->m_smask.m_rtt[plane_index].unbindTexture();
}
}
// keep drawing the grids