fix texture id bug, few gestures bugs solved

This commit is contained in:
2017-05-12 01:30:56 +01:00
parent 6f785c1944
commit 6dbb8bf3a1
9 changed files with 58 additions and 26 deletions

View File

@@ -220,6 +220,8 @@ void CanvasModeGrid::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
break;
}
case kEventType::MouseCancel:
if (m_dragging)
m_lines.pop_back();
m_dragging = false;
node->mouse_release();
break;
@@ -280,13 +282,7 @@ void CanvasModeFill::init()
void CanvasModeFill::leave()
{
auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj) {
ui::ShaderManager::use(ui::kShader::Color);
ui::ShaderManager::u_mat4(ui::kShaderUniform::MVP, proj * camera);
ui::ShaderManager::u_vec4(ui::kShaderUniform::Col, { node->m_brush.m_tip_color.rgb(), node->m_brush.m_tip_opacity });
m_shape.draw_fill();
};
canvas->draw_objects(std::bind(drawer, std::placeholders::_1, std::placeholders::_2));
canvas->draw_objects(std::bind(&CanvasModeFill::on_Draw, this, glm::mat4(), std::placeholders::_1, std::placeholders::_2));
m_points.clear();
}
@@ -351,9 +347,12 @@ void CanvasModeFill::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
break;
}
case kEventType::MouseCancel:
if (m_dragging)
m_points.pop_back();
m_dragging = false;
node->mouse_release();
m_points.clear();
if (m_points.size() < 4)
m_points.clear();
break;
default:
break;