|
|
@ -74,7 +74,6 @@ |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Types and Structures Definition |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
@ -240,7 +239,7 @@ static const int CursorsLUT[] = { |
|
|
|
|
|
|
|
|
|
|
|
// SDL3 Migration Layer made to avoid `ifdefs` inside functions when we can. |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
|
|
|
|
// SDL3 Migration: |
|
|
|
// SDL_WINDOW_FULLSCREEN_DESKTOP has been removed, |
|
|
@ -249,7 +248,6 @@ static const int CursorsLUT[] = { |
|
|
|
// or the borderless fullscreen desktop mode will be used |
|
|
|
#define SDL_WINDOW_FULLSCREEN_DESKTOP SDL_WINDOW_FULLSCREEN |
|
|
|
|
|
|
|
|
|
|
|
#define SDL_IGNORE false |
|
|
|
#define SDL_DISABLE false |
|
|
|
#define SDL_ENABLE true |
|
|
@ -260,27 +258,29 @@ static const int CursorsLUT[] = { |
|
|
|
// SDL3 Migration: The SDL_WINDOW_SHOWN flag has been removed. Windows are shown by default and can be created hidden by using the SDL_WINDOW_HIDDEN flag. |
|
|
|
#define SDL_WINDOW_SHOWN 0x0 // It's a flag, so no problem in setting it to zero if we use in a bitor (|) |
|
|
|
|
|
|
|
// |
|
|
|
// SDL3 Migration: Renamed |
|
|
|
// IMPORTANT: |
|
|
|
// Might need to call SDL_CleanupEvent somewhere see :https://github.com/libsdl-org/SDL/issues/3540#issuecomment-1793449852 |
|
|
|
// |
|
|
|
// IMPORTANT: Might need to call SDL_CleanupEvent somewhere see :https://github.com/libsdl-org/SDL/issues/3540#issuecomment-1793449852 |
|
|
|
#define SDL_DROPFILE SDL_EVENT_DROP_FILE |
|
|
|
|
|
|
|
|
|
|
|
const char* SDL_GameControllerNameForIndex(int joystickIndex) |
|
|
|
// SDL2 implementation for SDL3 function |
|
|
|
const char *SDL_GameControllerNameForIndex(int joystickIndex) |
|
|
|
{ |
|
|
|
// NOTE: SDL3 uses the IDs itself (SDL_JoystickID) instead of SDL2 joystick_index |
|
|
|
const char* name = NULL; |
|
|
|
const char *name = NULL; |
|
|
|
int numJoysticks = 0; |
|
|
|
SDL_JoystickID *joysticks = SDL_GetJoysticks(&numJoysticks); |
|
|
|
if (joysticks) { |
|
|
|
if (joystickIndex < numJoysticks) { |
|
|
|
|
|
|
|
if (joysticks) |
|
|
|
{ |
|
|
|
if (joystickIndex < numJoysticks) |
|
|
|
{ |
|
|
|
SDL_JoystickID instance_id = joysticks[joystickIndex]; |
|
|
|
name = SDL_GetGamepadNameForID(instance_id); |
|
|
|
} |
|
|
|
|
|
|
|
SDL_free(joysticks); |
|
|
|
} |
|
|
|
|
|
|
|
return name; |
|
|
|
} |
|
|
|
|
|
|
@ -288,45 +288,40 @@ int SDL_GetNumVideoDisplays(void) |
|
|
|
{ |
|
|
|
int monitorCount = 0; |
|
|
|
SDL_DisplayID *displays = SDL_GetDisplays(&monitorCount); |
|
|
|
// Safe because If `mem` is NULL, SDL_free does nothing. |
|
|
|
|
|
|
|
// Safe because If `mem` is NULL, SDL_free does nothing |
|
|
|
SDL_free(displays); |
|
|
|
|
|
|
|
return monitorCount; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// SLD3 Migration: |
|
|
|
// To emulate SDL2 this function should return `SDL_DISABLE` or `SDL_ENABLE` |
|
|
|
// representing the *processing state* of the event before this function makes any changes to it. |
|
|
|
Uint8 SDL_EventState(Uint32 type, int state) { |
|
|
|
|
|
|
|
// SLD3 Migration: To emulate SDL2 this function should return `SDL_DISABLE` or `SDL_ENABLE` |
|
|
|
// representing the *processing state* of the event before this function makes any changes to it |
|
|
|
Uint8 SDL_EventState(Uint32 type, int state) |
|
|
|
{ |
|
|
|
Uint8 stateBefore = SDL_EventEnabled(type); |
|
|
|
|
|
|
|
switch (state) |
|
|
|
{ |
|
|
|
case SDL_DISABLE: SDL_SetEventEnabled(type, false); break; |
|
|
|
case SDL_ENABLE: SDL_SetEventEnabled(type, true); break; |
|
|
|
default: TRACELOG(LOG_WARNING, "Event sate: unknow type"); |
|
|
|
} |
|
|
|
|
|
|
|
return stateBefore; |
|
|
|
} |
|
|
|
|
|
|
|
void SDL_GetCurrentDisplayMode_Adapter(SDL_DisplayID displayID, SDL_DisplayMode* mode) |
|
|
|
{ |
|
|
|
const SDL_DisplayMode* currMode = SDL_GetCurrentDisplayMode(displayID); |
|
|
|
if (currMode == NULL) |
|
|
|
{ |
|
|
|
TRACELOG(LOG_WARNING, "No current display mode"); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
*mode = *currMode; |
|
|
|
} |
|
|
|
|
|
|
|
if (currMode == NULL) TRACELOG(LOG_WARNING, "No current display mode"); |
|
|
|
else *mode = *currMode; |
|
|
|
} |
|
|
|
|
|
|
|
// SDL3 Migration: Renamed |
|
|
|
#define SDL_GetCurrentDisplayMode SDL_GetCurrentDisplayMode_Adapter |
|
|
|
|
|
|
|
|
|
|
|
SDL_Surface *SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask) |
|
|
|
{ |
|
|
|
return SDL_CreateSurface(width, height, SDL_GetPixelFormatForMasks(depth, Rmask, Gmask, Bmask, Amask)); |
|
|
@ -337,11 +332,14 @@ SDL_Surface *SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth |
|
|
|
// not reliable across platforms, approximately replaced by multiplying |
|
|
|
// SDL_GetWindowDisplayScale() times 160 on iPhone and Android, and 96 on other platforms. |
|
|
|
// returns 0 on success or a negative error code on failure |
|
|
|
int SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi) { |
|
|
|
float dpi = SDL_GetWindowDisplayScale(platform.window) * 96.0; |
|
|
|
int SDL_GetDisplayDPI(int displayIndex, float *ddpi, float *hdpi, float *vdpi) |
|
|
|
{ |
|
|
|
float dpi = SDL_GetWindowDisplayScale(platform.window)*96.0; |
|
|
|
|
|
|
|
if (ddpi != NULL) *ddpi = dpi; |
|
|
|
if (hdpi != NULL) *hdpi = dpi; |
|
|
|
if (vdpi != NULL) *vdpi = dpi; |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
@ -368,17 +366,13 @@ int SDL_NumJoysticks(void) |
|
|
|
return numJoysticks; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// SDL_SetRelativeMouseMode |
|
|
|
// returns 0 on success or a negative error code on failure |
|
|
|
// If relative mode is not supported, this returns -1. |
|
|
|
int SDL_SetRelativeMouseMode_Adapter(SDL_bool enabled) |
|
|
|
{ |
|
|
|
|
|
|
|
// |
|
|
|
// SDL_SetWindowRelativeMouseMode(SDL_Window *window, bool enabled) |
|
|
|
// \returns true on success or false on failure; call SDL_GetError() for more |
|
|
|
// |
|
|
|
if (SDL_SetWindowRelativeMouseMode(platform.window, enabled)) |
|
|
|
{ |
|
|
|
return 0; // success |
|
|
@ -398,7 +392,6 @@ bool SDL_GetRelativeMouseMode_Adapter(void) |
|
|
|
|
|
|
|
#define SDL_GetRelativeMouseMode SDL_GetRelativeMouseMode_Adapter |
|
|
|
|
|
|
|
|
|
|
|
int SDL_GetNumTouchFingers(SDL_TouchID touchID) |
|
|
|
{ |
|
|
|
// SDL_Finger **SDL_GetTouchFingers(SDL_TouchID touchID, int *count) |
|
|
@ -412,16 +405,16 @@ int SDL_GetNumTouchFingers(SDL_TouchID touchID) |
|
|
|
|
|
|
|
// Since SDL2 doesn't have this function we leave a stub |
|
|
|
// SDL_GetClipboardData function is available since SDL 3.1.3. (e.g. SDL3) |
|
|
|
void* SDL_GetClipboardData(const char *mime_type, size_t *size) { |
|
|
|
void* SDL_GetClipboardData(const char *mime_type, size_t *size) |
|
|
|
{ |
|
|
|
TRACELOG(LOG_WARNING, "Getting clipboard data that is not text is only available in SDL3"); |
|
|
|
|
|
|
|
// We could possibly implement it ourselves in this case for some easier platforms |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
|
|
|
|
#endif // PLATFORM_DESKTOP_SDL3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Module Internal Functions Declaration |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
@ -452,7 +445,7 @@ void ToggleFullscreen(void) |
|
|
|
const int monitor = SDL_GetWindowDisplayIndex(platform.window); |
|
|
|
const int monitorCount = SDL_GetNumVideoDisplays(); |
|
|
|
|
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
if ((monitor > 0) && (monitor <= monitorCount)) |
|
|
|
#else |
|
|
|
if ((monitor >= 0) && (monitor < monitorCount)) |
|
|
@ -479,7 +472,8 @@ void ToggleBorderlessWindowed(void) |
|
|
|
{ |
|
|
|
const int monitor = SDL_GetWindowDisplayIndex(platform.window); |
|
|
|
const int monitorCount = SDL_GetNumVideoDisplays(); |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
if ((monitor > 0) && (monitor <= monitorCount)) |
|
|
|
#else |
|
|
|
if ((monitor >= 0) && (monitor < monitorCount)) |
|
|
@ -532,7 +526,8 @@ void SetWindowState(unsigned int flags) |
|
|
|
{ |
|
|
|
const int monitor = SDL_GetWindowDisplayIndex(platform.window); |
|
|
|
const int monitorCount = SDL_GetNumVideoDisplays(); |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
if ((monitor > 0) && (monitor <= monitorCount)) |
|
|
|
#else |
|
|
|
if ((monitor >= 0) && (monitor < monitorCount)) |
|
|
@ -595,7 +590,8 @@ void SetWindowState(unsigned int flags) |
|
|
|
{ |
|
|
|
const int monitor = SDL_GetWindowDisplayIndex(platform.window); |
|
|
|
const int monitorCount = SDL_GetNumVideoDisplays(); |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 Migration: Monitor is an id instead of index now, returns 0 on failure |
|
|
|
if ((monitor > 0) && (monitor <= monitorCount)) |
|
|
|
#else |
|
|
|
if ((monitor >= 0) && (monitor < monitorCount)) |
|
|
@ -818,7 +814,8 @@ void SetWindowMonitor(int monitor) |
|
|
|
const int screenWidth = CORE.Window.screen.width; |
|
|
|
const int screenHeight = CORE.Window.screen.height; |
|
|
|
SDL_Rect usableBounds; |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 // Different style for success checking |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) // Different style for success checking |
|
|
|
if (SDL_GetDisplayUsableBounds(monitor, &usableBounds)) |
|
|
|
#else |
|
|
|
if (SDL_GetDisplayUsableBounds(monitor, &usableBounds) == 0) |
|
|
@ -933,7 +930,8 @@ Vector2 GetMonitorPosition(int monitor) |
|
|
|
if ((monitor >= 0) && (monitor < monitorCount)) |
|
|
|
{ |
|
|
|
SDL_Rect displayBounds; |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
if (SDL_GetDisplayUsableBounds(monitor, &displayBounds)) |
|
|
|
#else |
|
|
|
if (SDL_GetDisplayUsableBounds(monitor, &displayBounds) == 0) |
|
|
@ -1104,53 +1102,55 @@ const char *GetClipboardText(void) |
|
|
|
return buffer; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#if defined(SUPPORT_CLIPBOARD_IMAGE) |
|
|
|
// Get clipboard image |
|
|
|
Image GetClipboardImage(void) |
|
|
|
{ |
|
|
|
Image image = { 0 }; |
|
|
|
|
|
|
|
#if defined(SUPPORT_CLIPBOARD_IMAGE) |
|
|
|
// Let's hope compiler put these arrays in static memory |
|
|
|
const char *image_formats[] = { |
|
|
|
const char *imageFormats[] = { |
|
|
|
"image/bmp", |
|
|
|
"image/png", |
|
|
|
"image/jpg", |
|
|
|
"image/tiff", |
|
|
|
}; |
|
|
|
const char *image_extensions[] = { |
|
|
|
const char *imageExtensions[] = { |
|
|
|
".bmp", |
|
|
|
".png", |
|
|
|
".jpg", |
|
|
|
".tiff", |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
Image image = {0}; |
|
|
|
size_t dataSize = 0; |
|
|
|
void *fileData = NULL; |
|
|
|
for (int i = 0; i < SDL_arraysize(image_formats); ++i) |
|
|
|
|
|
|
|
for (int i = 0; i < SDL_arraysize(imageFormats); ++i) |
|
|
|
{ |
|
|
|
// NOTE: This pointer should be free with SDL_free() at some point. |
|
|
|
fileData = SDL_GetClipboardData(image_formats[i], &dataSize); |
|
|
|
if (fileData) { |
|
|
|
image = LoadImageFromMemory(image_extensions[i], fileData, dataSize); |
|
|
|
// NOTE: This pointer should be free with SDL_free() at some point |
|
|
|
fileData = SDL_GetClipboardData(imageFormats[i], &dataSize); |
|
|
|
|
|
|
|
if (fileData) |
|
|
|
{ |
|
|
|
image = LoadImageFromMemory(imageExtensions[i], fileData, dataSize); |
|
|
|
if (IsImageValid(image)) |
|
|
|
{ |
|
|
|
TRACELOG(LOG_INFO, "Clipboard image: Got image from clipboard as a `%s` successfully", image_extensions[i]); |
|
|
|
TRACELOG(LOG_INFO, "Clipboard image: Got image from clipboard as a `%s` successfully", imageExtensions[i]); |
|
|
|
return image; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
TRACELOG(LOG_WARNING, "Clipboard image: Couldn't get clipboard data. %s", SDL_GetError()); |
|
|
|
return image; |
|
|
|
} |
|
|
|
if (!IsImageValid(image)) TRACELOG(LOG_WARNING, "Clipboard image: Couldn't get clipboard data. Error: %s", SDL_GetError()); |
|
|
|
#endif |
|
|
|
|
|
|
|
return image; |
|
|
|
} |
|
|
|
|
|
|
|
// Show mouse cursor |
|
|
|
void ShowCursor(void) |
|
|
|
{ |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
SDL_ShowCursor(); |
|
|
|
#else |
|
|
|
SDL_ShowCursor(SDL_ENABLE); |
|
|
@ -1161,7 +1161,7 @@ void ShowCursor(void) |
|
|
|
// Hides mouse cursor |
|
|
|
void HideCursor(void) |
|
|
|
{ |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
SDL_HideCursor(); |
|
|
|
#else |
|
|
|
SDL_ShowCursor(SDL_DISABLE); |
|
|
@ -1174,7 +1174,7 @@ void EnableCursor(void) |
|
|
|
{ |
|
|
|
SDL_SetRelativeMouseMode(SDL_FALSE); |
|
|
|
|
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
// SDL_ShowCursor() has been split into three functions: SDL_ShowCursor(), SDL_HideCursor(), and SDL_CursorVisible() |
|
|
|
SDL_ShowCursor(); |
|
|
|
#else |
|
|
@ -1275,7 +1275,7 @@ const char *GetKeyName(int key) |
|
|
|
|
|
|
|
static void UpdateTouchPointsSDL(SDL_TouchFingerEvent event) |
|
|
|
{ |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 // SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) // SDL3 |
|
|
|
int count = 0; |
|
|
|
SDL_Finger **fingers = SDL_GetTouchFingers(event.touchID, &count); |
|
|
|
CORE.Input.Touch.pointCount = count; |
|
|
@ -1288,7 +1288,9 @@ static void UpdateTouchPointsSDL(SDL_TouchFingerEvent event) |
|
|
|
CORE.Input.Touch.position[i].y = finger->y*CORE.Window.screen.height; |
|
|
|
CORE.Input.Touch.currentTouchState[i] = 1; |
|
|
|
} |
|
|
|
|
|
|
|
SDL_free(fingers); |
|
|
|
|
|
|
|
#else // SDL2 |
|
|
|
|
|
|
|
CORE.Input.Touch.pointCount = SDL_GetNumTouchFingers(event.touchId); |
|
|
@ -1393,7 +1395,8 @@ void PollInputEvents(void) |
|
|
|
CORE.Window.dropFilepaths = (char **)RL_CALLOC(1024, sizeof(char *)); |
|
|
|
|
|
|
|
CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char)); |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
// const char *data; /**< The text for SDL_EVENT_DROP_TEXT and the file name for SDL_EVENT_DROP_FILE, NULL for other events */ |
|
|
|
// Event memory is now managed by SDL, so you should not free the data in SDL_EVENT_DROP_FILE, and if you want to hold onto the text in SDL_EVENT_TEXT_EDITING and SDL_EVENT_TEXT_INPUT events, you should make a copy of it. SDL_TEXTINPUTEVENT_TEXT_SIZE is no longer necessary and has been removed. |
|
|
|
strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event.drop.data); |
|
|
@ -1407,7 +1410,8 @@ void PollInputEvents(void) |
|
|
|
else if (CORE.Window.dropFileCount < 1024) |
|
|
|
{ |
|
|
|
CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char)); |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event.drop.data); |
|
|
|
#else |
|
|
|
strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event.drop.file); |
|
|
@ -1460,7 +1464,7 @@ void PollInputEvents(void) |
|
|
|
case SDL_WINDOWEVENT_FOCUS_GAINED: |
|
|
|
case SDL_WINDOWEVENT_MAXIMIZED: |
|
|
|
case SDL_WINDOWEVENT_RESTORED: |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
break; |
|
|
|
#else |
|
|
|
default: break; |
|
|
@ -1471,7 +1475,7 @@ void PollInputEvents(void) |
|
|
|
// Keyboard events |
|
|
|
case SDL_KEYDOWN: |
|
|
|
{ |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
// SDL3 Migration: The following structures have been removed: * SDL_Keysym |
|
|
|
KeyboardKey key = ConvertScancodeToKey(event.key.scancode); |
|
|
|
#else |
|
|
@ -1502,7 +1506,7 @@ void PollInputEvents(void) |
|
|
|
case SDL_KEYUP: |
|
|
|
{ |
|
|
|
|
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
KeyboardKey key = ConvertScancodeToKey(event.key.scancode); |
|
|
|
#else |
|
|
|
KeyboardKey key = ConvertScancodeToKey(event.key.keysym.scancode); |
|
|
@ -1858,7 +1862,7 @@ int InitPlatform(void) |
|
|
|
} |
|
|
|
|
|
|
|
// Init window |
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
platform.window = SDL_CreateWindow(CORE.Window.title, CORE.Window.screen.width, CORE.Window.screen.height, flags); |
|
|
|
#else |
|
|
|
platform.window = SDL_CreateWindow(CORE.Window.title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, CORE.Window.screen.width, CORE.Window.screen.height, flags); |
|
|
@ -1946,11 +1950,10 @@ int InitPlatform(void) |
|
|
|
CORE.Storage.basePath = SDL_GetBasePath(); // Alternative: GetWorkingDirectory(); |
|
|
|
//---------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
|
|
#ifdef PLATFORM_DESKTOP_SDL3 |
|
|
|
#if defined(PLATFORM_DESKTOP_SDL3) |
|
|
|
TRACELOG(LOG_INFO, "PLATFORM: DESKTOP (SDL3): Initialized successfully"); |
|
|
|
#else |
|
|
|
TRACELOG(LOG_INFO, "PLATFORM: DESKTOP (SDL): Initialized successfully"); |
|
|
|
TRACELOG(LOG_INFO, "PLATFORM: DESKTOP (SDL2): Initialized successfully"); |
|
|
|
#endif |
|
|
|
|
|
|
|
return 0; |
|
|
|