* Improved touch input handling and multitouch support in drm platform
* revert
* made some fixes for the touch issue in drm platform
* updated touch input handling by adding multitouch support
* improved how it handles the multitouch
* added cleanup
* Remove touch last update tracking to simplify touch input handling
* improved multitouch support by tracking touch positions and IDs for each slot
* Better touch input handling
* Increase maximum touch points from 8 to 10 and enhance touchscreen prioritization logic
* Refactor touch input handling to use slot index as ID for stability and simplify touch clearing logic
* Improve touch input handling by activating slot 0 based on mouse click or touch events
* touch event handling to use tracking ID for unique touch identification
* Add multitouch detection to PollMouseEvents for improved touch handling
* Fix conditional formatting in PollMouseEvents for clarity
* Refactor conditional statements in PollMouseEvents and InitPlatform for improved readability
* Fix formatting in PollMouseEvents for improved readability
in android gesture system is not reporting GESTURE_NONE, specified in the issue https://github.com/raysan5/raylib/issues/5010 so, automatically GESTURE_SWIPE, TAP, DOUBLE_TAP, also will not be reported. in this commit it is fixed.
Considering multi-monitor and multi-ppi configurations
Fullscreen-exclusive scales to available display resolution, ignoring content scaling
Windowed-borderless scales to available logical resolution considering HighDPI **if requested**
- Changed GLTF_ANIMDELAY (17ms, ~58.82fps) to GLTF_FRAMERATE (60.0fps)
- Updated frameCount calculation: (animDuration * 60) instead of (animDuration * 1000 / 17)
- Updated time calculation: j / 60.0f instead of (j * 17) / 1000.0f
This fixes animation frame count misalignment when importing glTF models
exported at standard 60fps. Animations that were 27+ frames shorter than
expected on 1350-frame sequences will now import correctly.
* fix: set correct default axes for gamepads that are not connected
`glfwGetGamepadState` will set all gamepad state variables to 0.0 if required gamepad is not connected, but `RecordAutomationEvent()` inside rcore.c expects trigger axes to be -1.0f when gamepad is not connected. Since SDL and RGFW return -1.0f in such case, this change is aligning it with them
* updated comment in rcore_desktop_glfw.c
Tested on two monitors with different DPI configuration, for HigDPI enabled and not, including window resizing (with framebuffer resizing if required). Verified mouse coordinates follow the requested screen size.
Note that high-dpi awareness must be enabled by users and `CORE.Window.render` reports the scaled framebuffer size, while `CORE.Window.screen` reports the logical size.
`ToggleBorderlessWindow()` has also been reviewed to be consistent with scaling, if monitor physical display size is reported as 1920x1080 but there is a content scale of 1.5, then the borderless fullscreen window will be 1280x720, with the 1920x1080 framebuffer
This improvement is just a prove of concept, at this moment `PLATFORM_WEB` is limited in terms of software rendering by `GLFW` that only allows creating a WebGL canvas context with `glfwCreateWindow()`.
We can skip that call but then some GLFW functionality is not available (windowing, inputs). The best solution is replacing GLFW completely by a pure Emscripten implementation for `PLATFORM_WEB`.
Following raylib design, a warning log message is shown and program can continue execution.
Some early return checks have been added on most critical functions.
[rtext] Previous implementation checking `isGpuReady` cross-module variable is not needed any more, resulting in a more decoupled code, load failure is managed at rlgl level
* Make the comments on the camera 2d fields more clear about what space each one is in.
* rlparser: update raylib_api.* by CI
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Fix modulo bias in GetRandomValue(); implement rejection sampling for uniformity
* Replace do-while with for-loop in GetRandomValue rejection sampling
target already gets assigned by the clang macro it points to, overwriting it causes it to target linux instead of android, making it check for usr directories instead of the NDK's directories
When SDL_GameControllerNameForIndex returns null, the app crashes. This was addressed earlier in PR#4859 though the fix submitted on PR #4859 was only fixing the crashing and not addressing the root cause.
* use FLAG_* macros where possible
* rename `FLAG_CHECK()` to `FLAG_IS_SET()`
* remove unnecessary equality checks
* fix issues
---------
Co-authored-by: Ray <raysan5@gmail.com>
* consistency tweak
* unified color and depth buffer
* tweaks
* review the storage of clear values + complete get/set depth value
* copy/blit fast path
* better simd read/write
* framebuffer alignment
* fix 'typo'
my french slipped out
* simplified framebuffer management
* convert texture to rgba32
* remove float copy/blit
* adding SIMD framebuffer read/write
This adds SIMD framebuffer read/write, and also texel fetch.
This supports SSE2/SSE41 and SISD fallback (also includes ARM NEON support, conceptually identical but still needs testing).
* consistency
* tweaks
* review of `sw_texture_sample_linear`
* better quad sorting
unrelated to the PR, but at least it's done
* ignore some pipeline state in certains context
* convention tweaks
---------
Co-authored-by: Ray <raysan5@gmail.com>
SDL3 uses ID when dealing with monitors, unlike SDL2 which uses Index
for the same thing. This problem was already fixed in multiple places
by use of preprocessor branches, so I did the very same thing.
Please, notice that this is a pretty bad solution to this problem,
and I only did it to keep it consistent with the rest of the code.
The more about why it's not correct is mentioned here:
https://github.com/raysan5/raylib/issues/5256#issuecomment-3429156919
Hopefully, someone will refactor it someday :)
Fixes: https://github.com/raysan5/raylib/issues/5256