multiple selection for free mask
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user