feat: SDL3 base

This commit is contained in:
2026-07-21 21:11:35 -04:00
parent ec05ec3981
commit d87a345274
10 changed files with 61 additions and 7 deletions
+2 -1
View File
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.25 FATAL_ERROR)
cmake_minimum_required(VERSION 3.24 FATAL_ERROR)
project(4JLibs.Windows64.Input LANGUAGES CXX)
@@ -8,6 +8,7 @@ add_library(${PROJECT_NAME} STATIC
src/INP_Keyboard.cpp
src/INP_Main.cpp
src/INP_StringCheck.cpp
src/INP_SDLBridge.cpp
src/LinkedList.cpp
src/stdafx.cpp
)
@@ -0,0 +1,7 @@
#pragma once
#include "stdafx.h"
namespace SDLBridge
{
}
@@ -25,6 +25,7 @@ SOFTWARE.
#include "4J_Input.h"
#include "INP_Keyboard.h"
#include "INP_Main.h"
#include "INP_SDLBridge.h"
C_4JInput InputManager;
CKeyboard InternalKeyboard;
+1 -1
View File
@@ -32,7 +32,7 @@ CInput::CInput()
m_Keyboard = CKeyboard();
m_uiSigninJoypadMask = 0;
for (int i = 0; i < 4; ++i)
for (int i = 0; i < MAX_JOYPADS; ++i)
m_bIsMenuDisplayed[i] = 0;
InitTime();
@@ -0,0 +1,34 @@
#include "INP_SdlBridge.h"
#include "INP_Main.h"
#include <SDL3/SDL.h>
#include <cstdarg>
#include <cstdio>
namespace
{
SDL_Gamepad* g_pads[MAX_JOYPADS] = {};
bool g_initialised = false;
WORD g_lastButtons[MAX_JOYPADS] = {};
const char* gamepadTypeName(SDL_GamepadType Type)
{
switch (Type)
{
case SDL_GAMEPAD_TYPE_UNKNOWN: return "UNKNOWN";
case SDL_GAMEPAD_TYPE_STANDARD: return "STANDARD";
case SDL_GAMEPAD_TYPE_XBOX360: return "XBOX360";
case SDL_GAMEPAD_TYPE_XBOXONE: return "XBOXONE";
case SDL_GAMEPAD_TYPE_PS3: return "PS3";
case SDL_GAMEPAD_TYPE_PS4: return "PS4";
case SDL_GAMEPAD_TYPE_PS5: return "PS5";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO: return "SWITCH_PRO";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: return "JOYCON_PAIR";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT: return "JOYCON_L";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT: return "JOYCON_R";
default: return "UNKNOWN";
}
}
}