Skip to content

Commit 1a374b6

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

File tree

4 files changed

+72
-0
lines changed

4 files changed

+72
-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: 32 additions & 0 deletions
Original file line numberDiff line numberDiff 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

Imgui/src/ImGuiImplSDL3.cpp

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

0 commit comments

Comments
 (0)