File tree Expand file tree Collapse file tree 4 files changed +72
-0
lines changed
Expand file tree Collapse file tree 4 files changed +72
-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,36 @@ 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+ {
112+ GamepadMode = ImGui_ImplSDL2_GamepadMode_AutoFirst;
113+ break ;
114+ }
115+ case GAMEPAD_MODE_AUTO_ALL:
116+ {
117+ GamepadMode = ImGui_ImplSDL2_GamepadMode_AutoAll;
118+ break ;
119+ }
120+ case GAMEPAD_MODE_MANUAL:
121+ GamepadMode = ImGui_ImplSDL2_GamepadMode_Manual;
122+ break ;
123+ }
124+ ImGui_ImplSDL2_SetGamepadMode (GamepadMode, pManualGamepadsArray, pManualGamepadsCount);
125+ }
126+
95127} // namespace Diligent
Original file line number Diff line number Diff line change @@ -92,4 +92,26 @@ 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+ {
102+ GamepadMode = ImGui_ImplSDL3_GamepadMode_AutoFirst;
103+ break ;
104+ }
105+ case GAMEPAD_MODE_AUTO_ALL:
106+ {
107+ GamepadMode = ImGui_ImplSDL3_GamepadMode_AutoAll;
108+ break ;
109+ }
110+ case GAMEPAD_MODE_MANUAL:
111+ GamepadMode = ImGui_ImplSDL3_GamepadMode_Manual;
112+ break ;
113+ }
114+ ImGui_ImplSDL3_SetGamepadMode (GamepadMode, pManualGamepadsArray, pManualGamepadsCount);
115+ }
116+
95117} // namespace Diligent
You can’t perform that action at this time.
0 commit comments