From f64f157e820d3d35de8cdd0010198fc4ac38294d Mon Sep 17 00:00:00 2001 From: omigamedev Date: Thu, 29 Nov 2018 10:34:28 +0100 Subject: [PATCH] fix mixer brush uv2 and tip visibility on touch --- src/canvas.cpp | 5 ++++- src/canvas_modes.cpp | 7 ++++++- src/canvas_modes.h | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/canvas.cpp b/src/canvas.cpp index 6911ef5..e05bd96 100644 --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -391,7 +391,10 @@ void Canvas::stroke_draw() vertex_t{ {0, 0, 1, 1}, {1, 0}, {1, 0} }, }; for (int j = 0; j < 4; j++) + { B[j].pos = glm::vec4(xy(s.pos) + off[j] * glm::orientate2(-s.angle), 1, 1); + B[j].uvs2 = UV2[j]; + } glViewport(0, 0, m_width, m_height); @@ -466,9 +469,9 @@ void Canvas::stroke_draw() { inside++; } + //P[j].uvs2 = xy(P[j].pos) / glm::vec2(App::I.width, App::I.height); P[j].pos.x = -(plane_local.x * 0.5f - 0.5f) * m_width; P[j].pos.y = (plane_local.y * 0.5f + 0.5f) * m_height; - P[j].uvs2 = UV2[j]; // Black magic - BEWARE! // interpolation perspective correction, use the current camera projection to correct the interpolation diff --git a/src/canvas_modes.cpp b/src/canvas_modes.cpp index 863a736..6d8a972 100644 --- a/src/canvas_modes.cpp +++ b/src/canvas_modes.cpp @@ -87,10 +87,15 @@ void CanvasModeBasicCamera::on_GestureEvent(GestureEvent* ge) //////////////////////////////////////////////////////////////////// +void CanvasModePen::on_GestureEvent(GestureEvent* ge) +{ + m_draw_tip = false; +} + void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc) { #if defined(__IOS__) - m_draw_tip = (me->m_source == kEventSource::Mouse); + m_draw_tip = (me->m_source == kEventSource::Mouse && me->m_type != kEventType::MouseUpL); #else m_draw_tip = (me->m_source == kEventSource::Mouse || me->m_source == kEventSource::Stylus); #endif // _WIN32 diff --git a/src/canvas_modes.h b/src/canvas_modes.h index 834a305..f5077c9 100644 --- a/src/canvas_modes.h +++ b/src/canvas_modes.h @@ -66,6 +66,8 @@ class CanvasModePen : public CanvasMode bool m_resizing = false; public: CanvasModePen() = default; + + virtual void on_GestureEvent(GestureEvent* ge) override; virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override; virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override; virtual void enter() override;