diff --git a/android/src/main/cpp/main.cpp b/android/src/main/cpp/main.cpp index 4520799..3640b03 100755 --- a/android/src/main/cpp/main.cpp +++ b/android/src/main/cpp/main.cpp @@ -404,6 +404,8 @@ static int32_t engine_handle_input(struct android_app* app, AInputEvent* event) switch (action) { case AMOTION_EVENT_ACTION_DOWN: { + float y = AMotionEvent_getY(event, 0); + float x = AMotionEvent_getX(event, 0); p0.id = AMotionEvent_getPointerId(event, 0); p0.pos = {x, y}; p0.idx = index; @@ -417,6 +419,8 @@ static int32_t engine_handle_input(struct android_app* app, AInputEvent* event) LOG("pointer down index %d", index); if (count == 2) { + float y = AMotionEvent_getY(event, 1); + float x = AMotionEvent_getX(event, 1); p1.id = AMotionEvent_getPointerId(event, 1); p1.idx = index; p1.pos = {x, y}; @@ -429,6 +433,8 @@ static int32_t engine_handle_input(struct android_app* app, AInputEvent* event) } case AMOTION_EVENT_ACTION_UP: { + float y = AMotionEvent_getY(event, 0); + float x = AMotionEvent_getX(event, 0); tracked = 0; p0.id = -1; p1.id = -1; @@ -445,12 +451,18 @@ static int32_t engine_handle_input(struct android_app* app, AInputEvent* event) } return 1; case AMOTION_EVENT_ACTION_HOVER_MOVE: // pen move before touching + { + float y = AMotionEvent_getY(event, 0); + float x = AMotionEvent_getX(event, 0); App::I.mouse_move(x, y); LOG("single move"); return 1; + } case AMOTION_EVENT_ACTION_MOVE: if (count == 1) { + float y = AMotionEvent_getY(event, 0); + float x = AMotionEvent_getX(event, 0); App::I.mouse_move(x, y); LOG("single move"); } diff --git a/engine/layout.h b/engine/layout.h index d058b45..3ab713d 100644 --- a/engine/layout.h +++ b/engine/layout.h @@ -1893,12 +1893,13 @@ public: glm::vec2 sz = { m_canvas->m_width, m_canvas->m_height }; m_canvas->m_mvp = glm::ortho(0.f, box.z, 0.f, box.w, -1.f, 1.f) * glm::translate(glm::vec3(m_pan + m_size * 0.5f * zoom, 0)) * // pan - glm::scale(glm::vec3(zoom * m_zoom_canvas, zoom * m_zoom_canvas, 1)) * + glm::scale(glm::vec3(zoom * m_zoom_canvas, zoom * m_zoom_canvas, 1)) * glm::translate(glm::vec3(-sz/2.f, 0)); - + auto plane_mvp = glm::ortho(0.f, box.z, 0.f, box.w, -1.f, 1.f) * glm::translate(glm::vec3(m_pan + m_size * 0.5f * zoom, 0)) * // pan - glm::scale(glm::vec3(sz * zoom * m_zoom_canvas, 1)); + glm::scale(glm::vec3(zoom * m_zoom_canvas, zoom * m_zoom_canvas, 1)) * + glm::scale(glm::vec3(sz, 1)); m_sampler.bind(0); ui::ShaderManager::use(kShader::TextureAlpha); @@ -2006,7 +2007,7 @@ public: break; case kEventType::GestureMove: m_pan = m_pan_start + ge->m_pos_delta * glm::vec2(1, -1); - //m_zoom_canvas = m_zoom_start + ge->m_distance; + m_zoom_canvas = m_zoom_start + ge->m_distance_delta * .001f; break; default: break;