InitWindow() prints CWD during initialization,
but ChangeDirectory() does not, which is quite confusing when you start
messing with CWD. Now said function should log similar message.
* [rcore] fix crash in InitWindow, due to unchecked result of InitPlatform
Check the result of InitPlatform(), if it isn't 0, report the Error
and return. This prevent crashes and allows for gracefully aborting
or recovering by checking IsWindowReady().
Partially-fixes: https://github.com/raysan5/raylib/issues/4801
* [rcore] style: store the result of InitPlatform() before checking it
Small style change that doesn't impact how the code behaves here.
Variable 'result' is not used anywhere else in this block,
it's just for compliance with Raylib's coding conventions.
Requested in PR: https://github.com/raysan5/raylib/pull/4803#discussion_r1976502788
* [rcore] use LOG_WARNING when InitPlatform() fails
...as this is preferred over LOG_ERROR.
Requested-by: https://github.com/raysan5/raylib/pull/4803#discussion_r1976651724
* [rcore] add 'GetClipboardImage' for windows
* [rcore] GetClipboardImage removed some unneeded defines
* [rcore] PLATFORM_SDL: create a compatility layer for SDL3
* external: add win32_clipboard.h header only lib
* [rcore] using win32_clipboard on platforms rlfw and rgfw
* [rcore] fix warnings in SDL3 compatibility layer
* Makefile: Allow specifying SDL_LIBRARIES to link, this helps with SDL3
* Makefile: examples makefile now compile others/rlgl_standalone only when TARGET_PLATFORM is PLATFORM_DESKTOP_GFLW
* Makefile: examples makefile now compile others/rlgl_standalone only when TARGET_PLATFORM is PLATFORM_DESKTOP_GFLW
* [rcore]: PLATFORM_SDL: improve clipboard data retrieval
* external: remove unused function from win32_clipboard.h
* Makefile: allow for extra flags necessary when compiling for SDL3
* [rcore]: fix string typo
* [rcore]: Properly handle NULL dpi passing. As is allowed in SDL2
* external: fix arch finding on win32_clipboard.h to allow compilation on msvc cmake CI
* [rcore]: PLATFORM_SDL: Treat monitor as an ID in SDL3 as opposed to an index as in SDL2
* [rcore]: typo
* Added optional GPU skinning
* Added skinned bone matrices support for different file formats.
* Moved new shader locations to end of enum to avoid breaking existing examples. Added gpu skinning on drawing of instanced meshes.
* Added GPU skinning example.
* Removed variable declaration to avoid shadowing warning.
* Add filtering folders in ScanDirectoryFiles and ScanDirectoryFilesRecursively
Add define FILTER_FOLDER for that purpose
Fix folder names matching filter being added to result
* Move FILTER_FOLDER define to internals of rcore and document option in comment
* [rcore] fix gamepad axis movement and its automation event recording
This commit fixes 2 issues:
- Automation events aren't recorded for negative axis movements on
gamepads (e.g. stick going left/up)
- 'GetGamepadAxisMovement' drift check isn't working correctly for
triggers. Axis values between [-0.1, 0.1] are clamped to 0.0
Behaviour change:
- 'GetGamepadAxisMovement' returns default value for each axis, even
if gamepad isn't attached.
* [rcore] inline body of 'GetGamepadAxisMovementDefault' and remove it
This could potentially be a breaking change, for consistency, now every possible desktop backend has the proper name assigned: GLFW, SDL, RGFW
raylib build system has been reviewed to fallback to `PLATFORM_DESKTOP_GLFW` by default when `PLATFORM_DESKTOP` defined
* Update raylib_api.* by CI
* Fix warnings when building examples in MSVC 2022
* fix auto-format that sneaked in there.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix minor bugs and errors (x86) for the RGFW platform, update RGFW platform license, update makefile info for RGFW platform
* revert
* (RGFW) (winapi) fix mouse hide bug when cursor changes
* ensure PLATFORM_SHELL is defined (PLATFORM_RGFW)
---------
Co-authored-by: ColleagueRiley <ColleagueRiley@gmail.com>
The `RL_CULL_DISTANCE_` definition remains as the initial value
of the variables.
Basic usage can be:
```c
#include <raylib.h>
#include <rlgl.h>
rlSetClipPlanes(RL_CULL_DISTANCE_NEAR, MY_CULL_DISTANCE_FAR);
if (must_reset_clip_planes)
rlSetClipPlanes(RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR);
```
* Screen/world-space related functions rename
* Update raylib_api.* by CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Added gamepad rumble to rcore_desktop.c and rcore_desktop_sdl.c
Still need to add to the rest of the platforms.
* Add SetGamepadVibration warnings to unimplemented platforms.
* Added MAX_GAMEPAD_VIBRATION_TIME
The rumble in SDL2 will continue for MAX_GAMEPAD_VIBRATION_TIME unless the user cancels it with a call to SetGamepadVibration(0.0f,0.0f,0.0f)
* Cast float duration value to Uint 32
* Changed defines from int to float and fixed typo
---------
Co-authored-by: Gideon Serfontein <gse@newspacesystems.com>
* Only restore GL scale back to screen scale if we are returning to a screen, not a render texture.
* blankspace
* reset back to default screen scale when ending a render texture since we are back on the default fbo
Move/Add Feature Test Macros before any includes.
See: [GNU Feature Test Macros](https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html)
> You should define these macros by using ‘#define’ preprocessor directives at the top of your source code files. These directives must come before any #include of a system header file. It is best to make them the very first thing in the file, preceded only by comments.
Alternative changes to rcore would be to change _POSIX_C_SOURCE to
200809L, which removes the need to define _XOPEN_SOURCE >= 500.
These changes allow for compilation with -std=c* (such as -std=c99)
without adding -D macros to the build step.
Co-authored-by: JayLCypher <jaylcypher@github.com>
* Update `PLATFORM_DRM` implementation of `GetGamepadAxisCount`
* Update
* Update `PLATFORM_DRM` implementation of `GetGamepadName`
* Add example to test gamepad info functions
Fix typo
* Update new gamepad info example
* Move axis count update out of GamepadThread - race condition
* Remove pointless if statement
* Start integrating stuff from the mikesinput lib
* Add more logging
* Add semicolon
* Add forgotten static
* More fixes
* Update axisCount to be array
* More debugging
* Add forgotten index to ready check
* Add path logging
* Missing parenthesis
* Add missing slash
* Fix axis count being reset to 0
* Fix missing paren
* Test polling joystick button events
* Major updates
* Fix missing array index
* Fix another missing array index
* Update example
* dumb logging
* Wrong constant for ev.code handling
* More dumb logging
* Remove some logging
* Add FPS to gamepad info example and try for max FPS
* tweak
* Revert example
* Add fps back
* Clean up after merge
* Switch axisCount to be an array
`InitGraphicsDevice()` could be confusing because the function actually initialized many things: window, graphics, inputs, callbacks, timming, storage... restructured it.
* Submodules (#3311)
* Check in current state
* Add submodules to Makefile and clean up some imports
* Start moving InitGraphicsDeivce
* Move android_main and CloseWindow() out of rcore
* Move WindowShouldClose out of rcore
* Move IsWindowHidden out of rcore
* Move IsWindowMinimized out of rcore
* Move IsWindowMaximized, IsWindowFocused and IsWindowResized out of rcore
* Move ToggleFullscreen out of rcore
* Move MaximizeWindow, MinimizeWindow and RestoreWindow out of rcore
* Move 13 functions out of rcore:
ToggleBorderlessWindowed
SetWindowState
ClearWindowState
SetWindowIcon
SetWindowIcons
SetWindowTitle
SetWindowPosition
SetWindowMonitor
SetWindowMinSize
SetWindowMaxSize
SetWindowSize
SetWindowOpacity
SetWindowFocused
* Minor clean up, revert makefile change, include submodules directly in rcore
* Fix makefile comment
* Remove rcore.h from Makefile
* Remove debug include
* Move 18 functions from rcore to submodules
GetWindowHandle
GetMonitorCount
GetCurrentMonitor
GetMonitorPosition
GetMonitorWidth
GetMonitorHeight
GetMonitorPhysicalHeight
GetMonitorRefreshRate
GetWindowPosition
GetWindowScaleDPI
GetMonitorName
SetClipboardText
GetClipboardText
ShowCursor
HideCursor
EnableCursor
DisableCursor
GetTime
* Move TakeScreenshot, OpenURL, GetGamepadName out of rcore into submodules
* remove debugging #defines
* Move GetMonitorPhysicalWidth from rcore to submodule
* Move GetGamepadAxisCount from rcore
* Move SetGamepadMappings out of rcore
* Move GetMouseX, GetMouseY, GetMousePosition out of rcore
* Move SetMousePosition out of rcore
* Move GetMouseWheelMove out of rcore
* Move the last functions out of rcore
* Move shared function defs and some global var to rcore.h
* Clean up rcore.c and rcore.h a little more
* Remove unnecessary #define
---------
Co-authored-by: MichaelFiber <michael@cubeofb.org>
* REVIEWED: `PLATFORM_DESKTOP` Windows building
* Revert "REVIEWED: `PLATFORM_DESKTOP` Windows building"
This reverts commit 71a12171f7.
* Reviewed Windows building
* [split] Fix compilation for web (and desktop) (#3329)
* Fix compilation for web
* Remove EM_ASM_INT from core_input_gestures_web example
* Fix raymath undefined symbols for desktop and web
* Remove raylib_opengl_interop from examples Makefile
* Revert previous commit (8651c78)
* Fix TraceLog for web and desktop
* [split] `rcore`, `rcore_web` and `rcore_desktop` changes (batch 2) (#3334)
* Fix formatting
* Reapply commit 9d230d7 (#3305) that was missing
* Reapplies commits 719365f (#3309) and 8a1779b (#3312) that were missing
* Reapply commit 5c9cc3f (#3323) that was missing
* Reapply commit a2b3b1e that was missing
* Revert commit cef25c6 to fix macro redefined warning
* Move rcore.h #include to after config.h to fix macro redefinitions warnings
* [split] `rcore`, `web`, `desktop`, `android` changes (batch 3) (#3338)
* First pass to remove unneeded platform macros for web
* Second pass to remove unneeded platform macros for web
* Move GetTouchX, GetTouchY, GetTouchPosition from rcore to web, desktop, android
* Move SetMouseCursor from rcore to android, desktop, web
* [split] `rcore`, `web`, `desktop`, `android` changes (batch 4) (#3343)
* Fix ToggleBorderlessWindowed duplicated glfwSetWindowSize calls
* First pass to remove unneeded platform macros for android
* Second pass to remove unneeded platform macros for android
* Remove unneeded platform macros for desktop
* Relocate GetGamepadName and update SetGamepadMappings on android, desktop, web
* Add missing comment to web
* [split] `rcore`, `web`, `desktop`, `android` changes (batch 5) (#3345)
* Move SetExitKey from core to android, desktop, web
* Move some callbacks from core to desktop and web
* Relocate emscripten callbacks on web
* Relocate android callbacks on android
* Revert "Relocate android callbacks on android"
This reverts commit bbdbecc01e.
* Updates UnloadVrStereoConfig on rcore
* Update SetClipboardText on android
* Fix screenMin/Max default values for android
* [split] `rcore`, `drm` changes (#3347)
* Tweak makefiles for PLATFORM_DRM and move rcore_drm's dependencies to rcore.h
* Move drm functions to rcore_drm.c
* Fix a typo in rcore.c
* Add SetExitKey to rcore_drm.c
---------
Co-authored-by: MichaelFiber <michael@cubeofb.org>
* Fix compilation for android (#3360)
* Fix android include (#3364)
* Reviewed platform split #3313
- Added file headers info
- Added TRACELOG message for unimplemented functions
- Reviewed code formatting and organization
- Several code tweaks
* REVIEWED: `GetDirectoryPath()`
---------
Co-authored-by: MichaelFiber <42419558+michaelfiber@users.noreply.github.com>
Co-authored-by: MichaelFiber <michael@cubeofb.org>
Co-authored-by: ubkp <118854183+ubkp@users.noreply.github.com>
* reveiwed GetWorldToScreenEx
Used the inputted "width" instead of global CORE.window.
Used Vector3Transform instead of quaternion.
* reverted accidental unrelated change
* reverted Vector3Transform back
* fixed mistyped result
---------
Co-authored-by: Brian-E <brian@intra.fo>