* Fix GLFW runtime platform detection
* Add libwayland-dev package to workflows
* Add libxkbcommon-dev package to workflows
* Add libwayland-bin package to codeql.yml
* Add libwayland-client0 and libwayland-cursor0 packages to codeql.yml
* Use libwayland-dev in codeql.yml
* Add libxkbcommon-dev to codeql.yml
* Remove libwayland-bin from linux.yml and linux_examples.yml (libwayland-dev includes it as a dependency)
---------
Co-authored-by: Ray <raysan5@gmail.com>
I did some testing and this seems to work okay, but it *is* different to
GLFW. GLFW seems to lose "IsCursorOnScreen" for one frame upon pressing
alt+tab over the window, without a different window covering it. SDL
seems to have a more reasonable behavior for this case. Either way it's
an edge case and I don't know the exact way to fix, likely requires
internal GLFW changes.
* Screen/world-space related functions rename
* Update raylib_api.* by CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
The fingerId from SDL was used as an index into the CORE.Input.Touch
arrays, but it's an opaque / arbitrary int64, way bigger
than MAX_TOUCH_POINTS, so the first non-simulated touch event would segfault.
* Update GLFW to 3.4 (draft)
* Add _glfwConnectNull() function to rglfw.c
* Update rglfw.c
* Update Makefile
* Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND
* Revert "Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND"
This reverts commit 9e79abde78.
* GlfwImport.cmake: Replace GLFW_USE_WAYLAND with GLFW_BUILD_WAYLAND
* Update rglfw.c
* Output platform selected by GLFW to TRACELOG
* GLFW has removed Mir support
* Change sanitization check for `ExportDataAsCode`
I opted to use `isalnum` function since it should handle most cases. It
cannot however handle cases of files beginning with numbers.
* Update `ExportDataAsCode` condition
* Reinsert comment on `ExportDataAsCode`
* 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>
The purpose of this directory in GLFW is to provide some headers that
"mingw.org" doesn't. Raylib has long been unable to build with mingw.org
due to using certain symbols that aren't exposed in their headers.
(_ftelli64 and _access, among others.). Mingw-w64 already has the
necessary headers included, and doesn't need any of these external
implementations. For some reason, this also causes the following error
when building with Visual Studio's clang:
clang -c rglfw.c -Wall -D_GNU_SOURCE -DPLATFORM_DESKTOP -DGRAPHICS_API_OPENGL_33 -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing -std=c99 -O1 -Werror=implicit-function-declaration -I. -Iexternal/glfw/include -Iexternal/glfw/deps/mingw
In file included from rglfw.c:61:
In file included from ./external/glfw/src/init.c:30:
In file included from ./external/glfw/src/internal.h:331:
In file included from ./external/glfw/src/platform.h:31:
In file included from ./external/glfw/src/win32_platform.h:70:
external/glfw/deps/mingw\xinput.h:227:26: error: a parameter list without types is only allowed in a function definition
227 | void WINAPI XInputEnable(WINBOOL);
|
If the last -Iexternal/glfw/deps/mingw is removed, the build works fine.
So, this workaround causes other problems, while not actually helping
raylib.
0bb605cd79/src/CMakeLists.txt (L272-L279)
GLFW's CMakeLists.txt first checks if either dinput.h or xinput.h are
provided by the toolchain, before telling the compiler to search for
headers in that directory. For EVERY compiler that can build raylib,
this is true.
In summary: This directory causes issues when building with some
compilers, and every toolchain that needs this workaround can't build
raylib anyway.
`char *txtData = (char *)RL_CALLOC(waveDataSize * 6 + 2000, sizeof(char));`
assumes every chunk being added to txtData is 6 bytes. This is not always true, sometimes a newline is involved and the data becomes 12 bytes instead, and this can cause a random segfault.
This commit changes `6` to `12`, and explains why in the comment.
* 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
* Fix Android keycode translation
* Simplify code a bit
* Rename KEYCODE_MAPPED_NUM to KEYCODE_MAP_SIZE
* Fix KEY_R and KEY_MENU duplicate
* Update raylib_api.* by CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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>
* provide access to the shape texture so that shapes can be extended outside of raylib with the same optimizations as internal raylib functions.
* PR feedback, comply with C standards
* oops