From 852669818d01423f2fc3cbebf4c3f6374b575624 Mon Sep 17 00:00:00 2001 From: Michael Theall Date: Sat, 5 Dec 2020 19:21:14 -0600 Subject: [PATCH] HID refactor --- Makefile.switch | 12 +++- source/switch/imgui_nx.cpp | 106 +++++++++++++++++------------------ source/switch/imgui_nx.h | 11 +++- source/switch/platform.cpp | 82 +++++++++++++++++++-------- switch/gfx/deko3d.12x12.astc | Bin 0 -> 28224 bytes switch/gfx/deko3d.png | Bin 55542 -> 0 bytes 6 files changed, 132 insertions(+), 79 deletions(-) create mode 100644 switch/gfx/deko3d.12x12.astc delete mode 100644 switch/gfx/deko3d.png diff --git a/Makefile.switch b/Makefile.switch index a553810..af88bca 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -114,7 +114,8 @@ CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) GLSLFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.glsl))) -GFXFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.png))) +PNGFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.png))) +ASTCFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.astc))) BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) #--------------------------------------------------------------------------------- @@ -145,7 +146,9 @@ ifneq ($(strip $(ROMFS)),) ROMFS_FOLDERS += $(ROMFS_SHADERS) endif - ROMFS_GFX := $(addprefix $(ROMFS)/,$(GFXFILES:.png=.rgba.zst)) + ROMFS_PNG := $(addprefix $(ROMFS)/,$(PNGFILES:.png=.rgba.zst)) + ROMFS_ASTC := $(addprefix $(ROMFS)/,$(ASTCFILES:.astc=.astc.zst)) + ROMFS_GFX := $(ROMFS_PNG) $(ROMFS_ASTC) ROMFS_TARGETS += $(ROMFS_GFX) ROMFS_FOLDERS += $(ROMFS) @@ -222,7 +225,10 @@ $(ROMFS_FOLDERS): $(BUILD)/%.rgba: $(GRAPHICS)/%.png | $(BUILD) @convert $< $@ -$(ROMFS_GFX): $(ROMFS)/%.rgba.zst: $(BUILD)/%.rgba +$(ROMFS_PNG): $(ROMFS)/%.rgba.zst: $(BUILD)/%.rgba + @zstd -f $< -o $@ --ultra -22 + +$(ROMFS_ASTC): $(ROMFS)/%.astc.zst: $(GRAPHICS)/%.astc @zstd -f $< -o $@ --ultra -22 $(ROMFS_SHADERS)/%_vsh.dksh: %_vsh.glsl diff --git a/source/switch/imgui_nx.cpp b/source/switch/imgui_nx.cpp index 435e8be..ab4febc 100644 --- a/source/switch/imgui_nx.cpp +++ b/source/switch/imgui_nx.cpp @@ -1238,15 +1238,14 @@ void moveMouse (ImGuiIO &io_, ImVec2 const &pos_, bool const force_ = false) } /// \brief Update mouse buttons +/// \param mouseState_ Mouse state /// \param io_ ImGui IO -void updateMouseButtons (ImGuiIO &io_) +void updateMouseButtons (HidMouseState const &mouseState_, ImGuiIO &io_) { // read mouse buttons - auto const buttons = hidMouseButtonsHeld (); - for (std::size_t i = 0; i < IM_ARRAYSIZE (io_.MouseDown); ++i) { - io_.MouseDown[i] = buttons & BIT (i); + io_.MouseDown[i] = mouseState_.buttons & BIT (i); // force mouse cursor to show on click if (io_.MouseDown[i]) @@ -1255,48 +1254,43 @@ void updateMouseButtons (ImGuiIO &io_) } /// \brief Update mouse position +/// \param mouseState_ Mouse state /// \param io_ ImGui IO -void updateMousePos (ImGuiIO &io_) +void updateMousePos (HidMouseState const &mouseState_, ImGuiIO &io_) { - MousePosition pos; - hidMouseRead (&pos); - - if (pos.scrollVelocityX > 0) + if (mouseState_.wheel_delta_x > 0) io_.MouseWheel += 1; - else if (pos.scrollVelocityX < 0) + else if (mouseState_.wheel_delta_x < 0) io_.MouseWheel -= 1; - if (pos.scrollVelocityY > 0) + if (mouseState_.wheel_delta_y > 0) io_.MouseWheelH += 1; - else if (pos.scrollVelocityY < 0) + else if (mouseState_.wheel_delta_y < 0) io_.MouseWheelH -= 1; - moveMouse ( - io_, ImVec2 (s_mousePos.x + 2.0f * pos.velocityX, s_mousePos.y + 2.0f * pos.velocityY)); + moveMouse (io_, + ImVec2 ( + s_mousePos.x + 2.0f * mouseState_.delta_x, s_mousePos.y + 2.0f * mouseState_.delta_y)); } /// \brief Update touch position +/// \param touchState_ Touch screen state /// \param io_ ImGui IO -void updateTouch (ImGuiIO &io_) +void updateTouch (HidTouchScreenState const &touchState_, ImGuiIO &io_) { - // read touch positions - auto const touchCount = hidTouchCount (); - if (touchCount < 1) + if (touchState_.count < 1) return; - // use first touch position - touchPosition pos; - hidTouchRead (&pos, 0); - // set mouse position to touch point; force hide mouse cursor - moveMouse (io_, ImVec2 (pos.px, pos.py)); + moveMouse (io_, ImVec2 (touchState_.touches[0].x, touchState_.touches[0].y)); io_.MouseDown[0] = true; s_showMouse = false; } /// \brief Update gamepad inputs +/// \param padState_ Gamepad state /// \param io_ ImGui IO -void updateGamepads (ImGuiIO &io_) +void updateGamepads (PadState const &padState_, ImGuiIO &io_) { // clear navigation inputs std::memset (io_.NavInputs, 0, sizeof (io_.NavInputs)); @@ -1317,7 +1311,7 @@ void updateGamepads (ImGuiIO &io_) }; // read buttons from primary controller - auto const keys = hidKeysHeld (CONTROLLER_P1_AUTO); + auto const keys = padGetButtons (&padState_); for (auto const &[in, out] : buttonMapping) { if (keys & in) @@ -1337,16 +1331,15 @@ void updateGamepads (ImGuiIO &io_) } // update joystick - JoystickPosition js; + auto const jsLeft = padGetStickPos (&padState_, 0); auto const analogMapping = { - std::make_tuple (std::ref (js.dx), ImGuiNavInput_LStickLeft, -0.3f, -0.9f), - std::make_tuple (std::ref (js.dx), ImGuiNavInput_LStickRight, +0.3f, +0.9f), - std::make_tuple (std::ref (js.dy), ImGuiNavInput_LStickUp, +0.3f, +0.9f), - std::make_tuple (std::ref (js.dy), ImGuiNavInput_LStickDown, -0.3f, -0.9f), + std::make_tuple (std::ref (jsLeft.x), ImGuiNavInput_LStickLeft, -0.3f, -0.9f), + std::make_tuple (std::ref (jsLeft.x), ImGuiNavInput_LStickRight, +0.3f, +0.9f), + std::make_tuple (std::ref (jsLeft.y), ImGuiNavInput_LStickUp, +0.3f, +0.9f), + std::make_tuple (std::ref (jsLeft.y), ImGuiNavInput_LStickDown, -0.3f, -0.9f), }; // read left joystick from primary controller - hidJoystickRead (&js, CONTROLLER_P1_AUTO, JOYSTICK_LEFT); for (auto const &[in, out, min, max] : analogMapping) { auto const value = in / static_cast (JOYSTICK_MAX); @@ -1359,32 +1352,27 @@ void updateGamepads (ImGuiIO &io_) scale = 1.0f; if (keys & KEY_R) scale = 20.0f; - hidJoystickRead (&js, CONTROLLER_P1_AUTO, JOYSTICK_RIGHT); + + auto const jsRight = padGetStickPos (&padState_, 1); // move mouse moveMouse (io_, - ImVec2 (s_mousePos.x + js.dx / static_cast (JOYSTICK_MAX) * scale, - s_mousePos.y - js.dy / static_cast (JOYSTICK_MAX) * scale)); + ImVec2 (s_mousePos.x + jsRight.x / static_cast (JOYSTICK_MAX) * scale, + s_mousePos.y - jsRight.y / static_cast (JOYSTICK_MAX) * scale)); } /// \brief Update keyboard inputs +/// \param kbState_ Keyboard state /// \param io_ ImGui IO -void updateKeyboard (ImGuiIO &io_) +void updateKeyboard (HidKeyboardState const &kbState_, ImGuiIO &io_) { - io_.KeyCtrl = - hidKeyboardModifierHeld (static_cast (KBD_MOD_LCTRL | KBD_MOD_RCTRL)); - - io_.KeyShift = hidKeyboardModifierHeld ( - static_cast (KBD_MOD_LSHIFT | KBD_MOD_RSHIFT)); - - io_.KeyAlt = - hidKeyboardModifierHeld (static_cast (KBD_MOD_LALT | KBD_MOD_RALT)); - - io_.KeySuper = - hidKeyboardModifierHeld (static_cast (KBD_MOD_LMETA | KBD_MOD_RMETA)); + io_.KeyCtrl = kbState_.modifiers & HidKeyboardModifier_Control; + io_.KeyShift = kbState_.modifiers & HidKeyboardModifier_Shift; + io_.KeyAlt = kbState_.modifiers & (HidKeyboardModifier_LeftAlt | HidKeyboardModifier_RightAlt); + io_.KeySuper = kbState_.modifiers & HidKeyboardModifier_Gui; for (int i = 0; i < 256; ++i) - io_.KeysDown[i] = hidKeyboardHeld (static_cast (i)); + io_.KeysDown[i] = kbState_.keys[i / 64] & (1 << (i % 64)); static enum { INACTIVE, @@ -1521,7 +1509,10 @@ bool imgui::nx::init () return true; } -void imgui::nx::newFrame () +void imgui::nx::newFrame (PadState const *const padState_, + HidTouchScreenState const *const touchState_, + HidMouseState const *const mouseState_, + HidKeyboardState const *const kbState_) { auto &io = ImGui::GetIO (); @@ -1545,11 +1536,20 @@ void imgui::nx::newFrame () if (s_focused) { // update inputs - updateMouseButtons (io); - updateMousePos (io); - updateTouch (io); - updateGamepads (io); - updateKeyboard (io); + if (mouseState_) + { + updateMouseButtons (*mouseState_, io); + updateMousePos (*mouseState_, io); + } + + if (touchState_) + updateTouch (*touchState_, io); + + if (padState_) + updateGamepads (*padState_, io); + + if (kbState_) + updateKeyboard (*kbState_, io); } // whether to draw mouse cursor diff --git a/source/switch/imgui_nx.h b/source/switch/imgui_nx.h index 3048507..37dd8d5 100644 --- a/source/switch/imgui_nx.h +++ b/source/switch/imgui_nx.h @@ -28,6 +28,8 @@ #pragma once #ifndef CLASSIC +#include + namespace imgui { namespace nx @@ -38,7 +40,14 @@ bool init (); void exit (); /// \brief Prepare switch for a new frame -void newFrame (); +/// \param padState_ Gamepad state +/// \param touchState_ Touch screen state +/// \param mouseState_ Mouse state +/// \param kbState_ Keyboard state +void newFrame (PadState const *padState_, + HidTouchScreenState const *touchState_ = nullptr, + HidMouseState const *mouseState_ = nullptr, + HidKeyboardState const *kbState_ = nullptr); } } #endif diff --git a/source/switch/platform.cpp b/source/switch/platform.cpp index e0b0f64..24a4c34 100644 --- a/source/switch/platform.cpp +++ b/source/switch/platform.cpp @@ -78,9 +78,9 @@ enum TextureIndex }; /// \brief deko3d logo width -constexpr auto LOGO_WIDTH = 500; +constexpr auto LOGO_WIDTH = 504; /// \brief deko3d logo height -constexpr auto LOGO_HEIGHT = 493; +constexpr auto LOGO_HEIGHT = 504; /// \brief icon width constexpr auto ICON_WIDTH = 24; @@ -103,6 +103,15 @@ unsigned s_width = 1920; /// \brief Framebuffer height unsigned s_height = 1080; +/// \brief Gamepad state +PadState s_padState; +/// \brief Touch screen state +HidTouchScreenState s_touchState; +/// \brief Mouse state +HidMouseState s_mouseState; +/// \brief Keyboard state +HidKeyboardState s_kbState; + /// \brief deko3d device dk::UniqueDevice s_device; @@ -206,6 +215,13 @@ void rebuildSwapchain (unsigned const width_, unsigned const height_) /// \brief Initialize deko3d void deko3dInit () { + padConfigureInput (1, HidNpadStyleSet_NpadStandard); + padInitializeDefault (&s_padState); + + hidInitializeTouchScreen (); + hidInitializeMouse (); + hidInitializeKeyboard (); + // create deko3d device s_device = dk::DeviceMaker{}.create (); @@ -263,26 +279,44 @@ void loadTextures () { struct TextureInfo { - TextureInfo (char const *const path_, unsigned const width_, unsigned const height_) - : path (path_), width (width_), height (height_) + TextureInfo (char const *const path_, + DkImageFormat const format_, + unsigned const width_, + unsigned const height_) + : path (path_), format (format_), width (width_), height (height_) { } char const *const path; - unsigned width; - unsigned height; + DkImageFormat const format; + unsigned const width; + unsigned const height; }; - TextureInfo textureInfos[] = {TextureInfo ("romfs:/deko3d.rgba.zst", LOGO_WIDTH, LOGO_HEIGHT), - TextureInfo ("romfs:/battery_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/charging_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/eth_none_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/eth_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/airplane_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/wifi_none_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/wifi1_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/wifi2_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT), - TextureInfo ("romfs:/wifi3_icon.rgba.zst", ICON_WIDTH, ICON_HEIGHT)}; + TextureInfo textureInfos[] = { + // clang-format off + TextureInfo ( + "romfs:/deko3d.12x12.astc.zst", DkImageFormat_RGBA_ASTC_12x12, LOGO_WIDTH, LOGO_HEIGHT), + TextureInfo ( + "romfs:/battery_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/charging_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/eth_none_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/eth_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/airplane_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/wifi_none_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/wifi1_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/wifi2_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT), + TextureInfo ( + "romfs:/wifi3_icon.rgba.zst", DkImageFormat_RGBA8_Unorm, ICON_WIDTH, ICON_HEIGHT) + // clang-format on + }; // create memblock for transfer (large enough for the largest source file) dk::UniqueMemBlock memBlock = @@ -349,7 +383,7 @@ void loadTextures () dk::ImageLayout layout; dk::ImageLayoutMaker{s_device} .setFlags (0) - .setFormat (DkImageFormat_RGBA8_Unorm) + .setFormat (textureInfo.format) .setDimensions (textureInfo.width, textureInfo.height) .initialize (layout); @@ -585,23 +619,27 @@ bool platform::loop () if (!appletMainLoop ()) return false; - hidScanInput (); + padUpdate (&s_padState); - auto const keysDown = hidKeysDown (CONTROLLER_P1_AUTO); + auto const keys = padGetButtons (&s_padState); // check if the user wants to exit - if (keysDown & KEY_PLUS) + if (keys & HidNpadButton_Plus) return false; // check if the user wants to toggle the backlight - if (keysDown & KEY_MINUS) + if (keys & HidNpadButton_Minus) { s_backlight = !s_backlight; appletSetLcdBacklightOffEnabled (!s_backlight); } #ifndef CLASSIC - imgui::nx::newFrame (); + auto const touchState = hidGetTouchScreenStates (&s_touchState, 1) ? &s_touchState : nullptr; + auto const mouseState = hidGetMouseStates (&s_mouseState, 1) ? &s_mouseState : nullptr; + auto const kbState = hidGetKeyboardStates (&s_kbState, 1) ? &s_kbState : nullptr; + + imgui::nx::newFrame (&s_padState, touchState, mouseState, kbState); ImGui::NewFrame (); auto const &io = ImGui::GetIO (); diff --git a/switch/gfx/deko3d.12x12.astc b/switch/gfx/deko3d.12x12.astc new file mode 100644 index 0000000000000000000000000000000000000000..26ff676e3eff2930d7ec28091b1b4dae3635fecb GIT binary patch literal 28224 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 ARsaA1 literal 0 HcmV?d00001 diff --git a/switch/gfx/deko3d.png b/switch/gfx/deko3d.png deleted file mode 100644 index fbf1adf94422479ea6200267e072c4830ad92df7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55542 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 o2=g^