File tree Expand file tree Collapse file tree 4 files changed +64
-0
lines changed
Expand file tree Collapse file tree 4 files changed +64
-0
lines changed Original file line number Diff line number Diff line change 3030#include " ImGuiImplDiligent.hpp"
3131
3232extern " C" struct SDL_Window ;
33+ extern " C" struct _SDL_GameController ;
3334extern " C" union SDL_Event;
3435
3536namespace Diligent
@@ -55,5 +56,14 @@ class ImGuiImplSDL2 final : public ImGuiImplDiligent
5556 SURFACE_TRANSFORM SurfacePreTransform) override final ;
5657 virtual void Render (IDeviceContext* pCtx) override final ;
5758 bool HandleSDLEvent (const SDL_Event* ev);
59+ float GetContentScaleForWindow (SDL_Window* pWindow);
60+ float GetContentScaleForDisplay (int pDisplayIndex);
61+ enum GAMEPAD_MODE
62+ {
63+ GAMEPAD_MODE_AUTO_FIRST,
64+ GAMEPAD_MODE_AUTO_ALL,
65+ GAMEPAD_MODE_MANUAL
66+ };
67+ void SetGamepadMode (GAMEPAD_MODE mode, _SDL_GameController** pManualGamepadsArray = nullptr , int pManualGamepadsCount = -1 );
5868};
5969} // namespace Diligent
Original file line number Diff line number Diff line change 3030#include " ImGuiImplDiligent.hpp"
3131
3232extern " C" struct SDL_Window ;
33+ extern " C" struct SDL_Gamepad ;
3334extern " C" union SDL_Event;
3435
3536namespace Diligent
@@ -55,5 +56,12 @@ class ImGuiImplSDL3 final : public ImGuiImplDiligent
5556 SURFACE_TRANSFORM SurfacePreTransform) override final ;
5657 virtual void Render (IDeviceContext* pCtx) override final ;
5758 bool HandleSDLEvent (const SDL_Event* ev);
59+ enum GAMEPAD_MODE
60+ {
61+ GAMEPAD_MODE_AUTO_FIRST,
62+ GAMEPAD_MODE_AUTO_ALL,
63+ GAMEPAD_MODE_MANUAL
64+ };
65+ void SetGamepadMode (GAMEPAD_MODE mode, SDL_Gamepad** pManualGamepadsArray = nullptr , int pManualGamepadsCount = -1 );
5866};
5967} // namespace Diligent
Original file line number Diff line number Diff line change @@ -92,4 +92,32 @@ bool ImGuiImplSDL2::HandleSDLEvent(const SDL_Event* ev)
9292 return ImGui_ImplSDL2_ProcessEvent (ev);
9393}
9494
95+ float ImGuiImplSDL2::GetContentScaleForWindow (SDL_Window* pWindow)
96+ {
97+ return ImGui_ImplSDL2_GetContentScaleForWindow (pWindow);
98+ }
99+
100+ float ImGuiImplSDL2::GetContentScaleForDisplay (int pDisplayIndex)
101+ {
102+ return ImGui_ImplSDL2_GetContentScaleForDisplay (pDisplayIndex);
103+ }
104+
105+ void ImGuiImplSDL2::SetGamepadMode (GAMEPAD_MODE pGamepadMode, _SDL_GameController** pManualGamepadsArray, int pManualGamepadsCount)
106+ {
107+ ImGui_ImplSDL2_GamepadMode GamepadMode{};
108+ switch (pGamepadMode)
109+ {
110+ case GAMEPAD_MODE_AUTO_FIRST:
111+ GamepadMode = ImGui_ImplSDL2_GamepadMode_AutoFirst;
112+ break ;
113+ case GAMEPAD_MODE_AUTO_ALL:
114+ GamepadMode = ImGui_ImplSDL2_GamepadMode_AutoAll;
115+ break ;
116+ case GAMEPAD_MODE_MANUAL:
117+ GamepadMode = ImGui_ImplSDL2_GamepadMode_Manual;
118+ break ;
119+ }
120+ ImGui_ImplSDL2_SetGamepadMode (GamepadMode, pManualGamepadsArray, pManualGamepadsCount);
121+ }
122+
95123} // namespace Diligent
Original file line number Diff line number Diff line change @@ -92,4 +92,22 @@ bool ImGuiImplSDL3::HandleSDLEvent(const SDL_Event* ev)
9292 return ImGui_ImplSDL3_ProcessEvent (ev);
9393}
9494
95+ void ImGuiImplSDL3::SetGamepadMode (GAMEPAD_MODE pGamepadMode, SDL_Gamepad** pManualGamepadsArray, int pManualGamepadsCount)
96+ {
97+ ImGui_ImplSDL3_GamepadMode GamepadMode{};
98+ switch (pGamepadMode)
99+ {
100+ case GAMEPAD_MODE_AUTO_FIRST:
101+ GamepadMode = ImGui_ImplSDL3_GamepadMode_AutoFirst;
102+ break ;
103+ case GAMEPAD_MODE_AUTO_ALL:
104+ GamepadMode = ImGui_ImplSDL3_GamepadMode_AutoAll;
105+ break ;
106+ case GAMEPAD_MODE_MANUAL:
107+ GamepadMode = ImGui_ImplSDL3_GamepadMode_Manual;
108+ break ;
109+ }
110+ ImGui_ImplSDL3_SetGamepadMode (GamepadMode, pManualGamepadsArray, pManualGamepadsCount);
111+ }
112+
95113} // namespace Diligent
You can’t perform that action at this time.
0 commit comments