improve update_brush performance

This commit is contained in:
2019-08-14 08:49:20 +02:00
parent f7db4a924e
commit a08e8c5796
4 changed files with 46 additions and 39 deletions

View File

@@ -83,7 +83,7 @@ void CanvasModeBasicCamera::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
m_zoom_canvas += me->m_scroll_delta * 0.1f;
Canvas::I->m_cam_fov = glm::clamp(Canvas::I->m_cam_fov - me->m_scroll_delta * 2.0f,
Canvas::I->m_cam_fov_min, Canvas::I->m_cam_fov_max);
App::I->brush_update();
App::I->brush_update(true, true);
break;
case kEventType::MouseCancel:
m_draggingR = false;
@@ -110,7 +110,7 @@ void CanvasModeBasicCamera::on_GestureEvent(GestureEvent* ge)
Canvas::I->m_cam_fov_min, Canvas::I->m_cam_fov_max);
auto angle = Canvas::I->m_pan * 0.003f;
Canvas::I->m_cam_rot = glm::eulerAngleXY(angle.y, angle.x);
App::I->brush_update();
App::I->brush_update(true, true);
break;
}
default:
@@ -154,7 +154,7 @@ void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
Canvas::I->pick_start();
glm::vec4 pix = Canvas::I->pick_get(loc);
Canvas::I->m_current_brush->m_tip_color = pix;
App::I->brush_update();
App::I->brush_update(true, false);
}
else
{
@@ -181,7 +181,7 @@ void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
node->mouse_release();
glm::vec4 pix = Canvas::I->pick_get(loc);
Canvas::I->m_current_brush->m_tip_color = pix;
App::I->brush_update();
App::I->brush_update(true, false);
Canvas::I->pick_end();
}
m_dragging = false;
@@ -218,14 +218,14 @@ void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
{
glm::vec4 pix = Canvas::I->pick_get(loc);
Canvas::I->m_current_brush->m_tip_color = pix;
App::I->brush_update();
App::I->brush_update(true, false);
}
if (m_dragging && m_resizing)
{
auto diff = m_cur_pos - m_size_pos_start;
auto curve = App::I->stroke->m_curves[App::I->stroke->m_tip_size];
Canvas::I->m_current_brush->m_tip_size = glm::max(curve.to_value(m_size_value_start + diff.x * 0.001f), 0.001f);
App::I->brush_update();
App::I->brush_update(true, true);
}
m_cur_pos = loc;
break;