Skip to content

Commit 9815265

Browse files
author
James Johnson
committed
Wrap the auxiliary functions for ImGuiImplSDL2 and 3.
1 parent c9b7cf8 commit 9815265

File tree

4 files changed

+64
-0
lines changed

4 files changed

+64
-0
lines changed

Imgui/interface/ImGuiImplSDL2.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "ImGuiImplDiligent.hpp"
3131

3232
extern "C" struct SDL_Window;
33+
extern "C" struct _SDL_GameController;
3334
extern "C" union SDL_Event;
3435

3536
namespace 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

Imgui/interface/ImGuiImplSDL3.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "ImGuiImplDiligent.hpp"
3131

3232
extern "C" struct SDL_Window;
33+
extern "C" struct SDL_Gamepad;
3334
extern "C" union SDL_Event;
3435

3536
namespace 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

Imgui/src/ImGuiImplSDL2.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff 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

Imgui/src/ImGuiImplSDL3.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)