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

@@ -560,7 +560,8 @@ void CanvasModeMaskFree::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
m_points2d.push_back(loc);
m_points.push_back(vert);
m_points.push_back(vert);
Canvas::I->m_smask.clear({0, 0, 0, 0});
if (!(App::I.keys[(int)kKey::KeyShift] || App::I.keys[(int)kKey::KeyCtrl]))
Canvas::I->m_smask.clear({0, 0, 0, 0});
Canvas::I->m_smask_active = true;
Canvas::I->m_smask_mode = 1;
break;
@@ -579,7 +580,8 @@ void CanvasModeMaskFree::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
glDisable(GL_DEPTH_TEST);
ShaderManager::use(kShader::Color);
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
ShaderManager::u_vec4(kShaderUniform::Col, {1, 1, 1, 1});
ShaderManager::u_vec4(kShaderUniform::Col,
App::I.keys[(int)kKey::KeyCtrl] ? glm::vec4(0, 0, 0, 1) : glm::vec4(1, 1, 1, 1));
m_shape.draw_fill();
};
// use m_shape to render the mask polygon
@@ -665,13 +667,13 @@ void CanvasModeMaskFree::on_Draw(const glm::mat4& ortho, const glm::mat4& proj,
//m_dragging ? m_shape.draw_stroke() : m_shape.draw_fill();
m_shape.draw_stroke();
}
else
{
ShaderManager::use(kShader::Color);
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
m_shape.draw_stroke();
}
//else
//{
// ShaderManager::use(kShader::Color);
// ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
// ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
// m_shape.draw_stroke();
//}
}
if (depth) glEnable(GL_DEPTH_TEST);
}