Rebase, remove legacy pointerevents
diff --git a/include/rive/artboard.hpp b/include/rive/artboard.hpp index 70fa6b2..1e483d4 100644 --- a/include/rive/artboard.hpp +++ b/include/rive/artboard.hpp
@@ -7,7 +7,6 @@ #include "rive/generated/artboard_base.hpp" #include "rive/hit_info.hpp" #include "rive/message.hpp" -#include "rive/pointer_event.hpp" #include "rive/math/aabb.hpp" #include "rive/renderer.hpp" #include "rive/shapes/shape_paint_container.hpp" @@ -85,11 +84,6 @@ bool advance(double elapsedSeconds); - // Call this to forward pointer events to the artboard - // They will be processed when advance() is called. - // - void postPointerEvent(const PointerEvent&); - // Returns true iff calling popMessage() will return true. bool hasMessages() const;
diff --git a/skia/viewer/src/main.cpp b/skia/viewer/src/main.cpp index 138a94c..e297964 100644 --- a/skia/viewer/src/main.cpp +++ b/skia/viewer/src/main.cpp
@@ -154,51 +154,12 @@ initAnimation(0); } -// returns the mouse position, transforming it through the inverse of -// the canvas' CTM -- which may have been altered to scale/translate -// the artboard into the window. -// -static void post_mouse_event(rive::Artboard* artboard, const SkMatrix& ctm) { - static ImVec2 gPrevMousePos = {-1000, -1000}; - const auto mouse = ImGui::GetMousePos(); - - static bool gPrevMouseButtonDown = false; - const bool isDown = ImGui::IsMouseDown(ImGuiMouseButton_Left); - - if (mouse.x == gPrevMousePos.x && mouse.y == gPrevMousePos.y && isDown == gPrevMouseButtonDown) - { - return; - } - - auto evtType = rive::PointerEventType::move; - if (isDown && !gPrevMouseButtonDown) { - evtType = rive::PointerEventType::down; // we just went down - } else if (!isDown && gPrevMouseButtonDown) { - evtType = rive::PointerEventType::up; // we just went up - } - - gPrevMousePos = mouse; - gPrevMouseButtonDown = isDown; - - SkMatrix inv; - (void)ctm.invert(&inv); - - // scale by 2 for the DPI of a high-res monitor - const auto pt = inv.mapXY(mouse.x * 2, mouse.y * 2); - - const int pointerIndex = 0; // til we track more than one button/mouse - rive::PointerEvent evt = { - evtType, - {pt.fX, pt.fY}, - pointerIndex, - }; - artboard->postPointerEvent(evt); -} - static void test_messages(rive::Artboard* artboard) { rive::Message msg; int i = 0; +#ifdef DEBUG bool hasAny = artboard->hasMessages(); +#endif while (artboard->nextMessage(&msg)) { printf("-- message[%d]: '%s'\n", i, msg.m_Str.c_str());
diff --git a/src/artboard.cpp b/src/artboard.cpp index e8ffc53..37a3745 100644 --- a/src/artboard.cpp +++ b/src/artboard.cpp
@@ -575,46 +575,6 @@ return result; } -void Artboard::postPointerEvent(const PointerEvent& evt) { - if (true) { - static bool gButtonIsDown; - - switch (evt.m_Type) { - case PointerEventType::down: - assert(!gButtonIsDown); - gButtonIsDown = true; - break; - case PointerEventType::up: - assert(gButtonIsDown); - gButtonIsDown = false; - break; - default: - break; - } - -#if 0 - const char* typeNames[] = { - "down", "move", "up ", - }; - printf("pointer: %s [%g %g] %s\n", - typeNames[(int)evt.m_Type], - evt.m_Position.x(), evt.m_Position.y(), - gButtonIsDown ? "DOWN" : "UP"); -#endif - } - -#if 0 - // TESTING ONLY - // This is the sort of message that the Artboard would post... - // e.g. if the down AND up were inside the same clickable shape. - if (evt.m_Type == PointerEventType::up) { - Message msg; - msg.m_Str = "ClickEvent"; - this->testing_only_enque_message(msg); - } -#endif -} - void Artboard::testing_only_enque_message(const Message& msg) { m_MessageQueue.push(msg); } bool Artboard::hasMessages() const { return !m_MessageQueue.empty(); }
diff --git a/test/state_machine_event_test.cpp b/test/state_machine_event_test.cpp index 95a01ae..ad9e4d3 100644 --- a/test/state_machine_event_test.cpp +++ b/test/state_machine_event_test.cpp
@@ -19,9 +19,9 @@ #include <cstdio> TEST_CASE("file with state machine events be read", "[file]") { - RiveFileReader reader("../../test/assets/bullet_man.riv"); + auto file = ReadRiveFile("../../test/assets/bullet_man.riv"); - auto artboard = reader.file()->artboard("Bullet Man"); + auto artboard = file->artboard("Bullet Man"); REQUIRE(artboard != nullptr); REQUIRE(artboard->stateMachineCount() == 1); @@ -61,9 +61,9 @@ } TEST_CASE("hit testing via a state machine works", "[file]") { - RiveFileReader reader("../../test/assets/bullet_man.riv"); + auto file = ReadRiveFile("../../test/assets/bullet_man.riv"); - auto artboard = reader.file()->artboard("Bullet Man")->instance(); + auto artboard = file->artboard("Bullet Man")->instance(); REQUIRE(artboard != nullptr); REQUIRE(artboard->stateMachineCount() == 1);