void DemoScene::RenderMouseData()

in agdk/game_controller/common/demo_scene.cpp [366:432]


void DemoScene::RenderMouseData() {
    const Paddleboat_MouseStatus mouseStatus = Paddleboat_getMouseStatus();
    if (mouseStatus == PADDLEBOAT_MOUSE_NONE) {
        ImGui::Text("Mouse: No");
        return;
    } else if (mouseStatus == PADDLEBOAT_MOUSE_CONTROLLER_EMULATED) {
        ImGui::Text("Mouse: Vir ");
    } else if (mouseStatus == PADDLEBOAT_MOUSE_PHYSICAL) {
        ImGui::Text("Mouse: Phy ");
    }
    ImGui::SameLine();
    Paddleboat_Mouse_Data mouseData;
    if (Paddleboat_getMouseData(&mouseData) == PADDLEBOAT_NO_ERROR) {
        const int mouseX = static_cast<int>(mouseData.mouseX);
        const int mouseY = static_cast<int>(mouseData.mouseY);
        ImGui::Text("X: %d Y: %d Btns: ", mouseX, mouseY);

        ImVec4 buttonColor = ((mouseData.buttonsDown & PADDLEBOAT_MOUSE_BUTTON_LEFT) != 0) ?
                             TEXTCOLOR_GREEN : TEXTCOLOR_WHITE;
        ImGui::SameLine();
        ImGui::TextColored(buttonColor, "L");

        buttonColor = ((mouseData.buttonsDown & PADDLEBOAT_MOUSE_BUTTON_MIDDLE) != 0)
                      ? TEXTCOLOR_GREEN : TEXTCOLOR_WHITE;
        ImGui::SameLine();
        ImGui::TextColored(buttonColor, "M");

        buttonColor = ((mouseData.buttonsDown & PADDLEBOAT_MOUSE_BUTTON_RIGHT) != 0)
                      ? TEXTCOLOR_GREEN : TEXTCOLOR_WHITE;
        ImGui::SameLine();
        ImGui::TextColored(buttonColor, "R");

        buttonColor = ((mouseData.buttonsDown & PADDLEBOAT_MOUSE_BUTTON_FORWARD) != 0)
                      ? TEXTCOLOR_GREEN : TEXTCOLOR_WHITE;
        ImGui::SameLine();
        ImGui::TextColored(buttonColor, "F");

        buttonColor = ((mouseData.buttonsDown & PADDLEBOAT_MOUSE_BUTTON_BACK) != 0)
                      ? TEXTCOLOR_GREEN : TEXTCOLOR_WHITE;
        ImGui::SameLine();
        ImGui::TextColored(buttonColor, "B");

        if (mouseData.mouseScrollDeltaV < 0) {
            buttonColor = TEXTCOLOR_RED;
            ImGui::SameLine();
            ImGui::TextColored(buttonColor, "%d", mouseData.mouseScrollDeltaV);
        } else if (mouseData.mouseScrollDeltaV > 0) {
            buttonColor = TEXTCOLOR_GREEN;
            ImGui::SameLine();
            ImGui::TextColored(buttonColor, "%d", mouseData.mouseScrollDeltaV);
        }

        if (mouseData.mouseScrollDeltaH < 0) {
            buttonColor = TEXTCOLOR_RED;
            ImGui::SameLine();
            ImGui::TextColored(buttonColor, "%d", mouseData.mouseScrollDeltaH);
        } else if (mouseData.mouseScrollDeltaH > 0) {
            buttonColor = TEXTCOLOR_GREEN;
            ImGui::SameLine();
            ImGui::TextColored(buttonColor, "%d", mouseData.mouseScrollDeltaH);
        }
        // This is needed by the controller info tab, so we calculate it here
        // where we process the mouse data.
        mMouseDataTimestampDelta = mouseData.timestamp - mPreviousMouseDataTimestamp;
        mPreviousMouseDataTimestamp = mouseData.timestamp;
    }
}