* [build.zig] Overridable definitions from config.h
The new Options field "config" holds a string the user can set in the
format "-Dflag_a=1 -Dflag_b=0 ..." to override the values set in
`config.h`.
The file is parsed and the default values are appended to the
compilation flags, if the user doesn't override them.
The user string is appended to the compilation flags.
The "-DEXTERNAL_CONFIG_FLAGS" is added to prevent "config.h" inclusion.
Note: a certain format is assumed for the formatting of config.h
Note: this commit references the closed issue #3516
* [build.zig] Only SUPPORT_* definitions are overridable
Lines from `config.h` which contains "SUPPORT" are added to compilation after being parsed:
- remove whitespace
- format to preprocessor option https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html
The user supplied flags have priority over the ones read from the file.
NOTE: extension to commit 4da7f82e6f, the logic is simplified
because the SUPPORT flags only have binary values, which makes them easier to parse.
* GLFW AUTO_ICONIFY flag is now set to false per default.
Previously AUTO_ICONIFY was only disabled if the user requested a Fullscreen window from the start. After that it was not possible to change this behavior on the user side anymore, even when changing to a Fullscreen window.
The AUTO_ICONIFY causes problems on macOS. On macOS if the window is minimized because of AUTO_ICONIFY than the only way to restore it is to click on the icon in the dock. In other words when AUTO_ICONIFY is enabled alt/cmd-tabbing through windows does not work correctly. On windows it works even when AUTO_ICONIFY is enabled.
Additionally if a raylib window is in Fullscreen mode on another monitor the AUTO_ICONIFY behavior is a problem because the user might want to window to stay on the monitor even if it loses focus. (problem on all OS's)
AUTO_ICONIFY also restores the monitor hardware resolution if a fullscreen window loses focus.
* Update rcore_desktop_glfw.c
Extra space removed and comments updated with a space at the beginning
* [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
* Adds log warnings on invalid file data
* Separate error on missing file extension
* Changed LOG_ERROR to LOG_WARNING
---------
Co-authored-by: Jutastre <pukarlindgren@gmail.com>
* Zig Both Linux Desktop Platform Support
* Formating and Default Fix
Made formating fit within raylib standards and changed the default option to support both X11 and wayland on Linux.
* caught one hiding tab
* Update raylib_api.* by CI
* No need to call the color 4 times in a row, it's batched
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
If `FLAG_WINDOW_HIGHDPI` is set, `InitPlatform()` will aks GLFW to handle resize window content area based on the monitor content scale using : ` glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_TRUE); `
So `WindowSizeCallback()` does not have to handle it a second time.
* Update raylib_api.* by CI
* Fix MSVC warnings.
Make raymath.h work in C++ in MSVC
* whitespace cleanup
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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
* Optimize DrawSphereEx()
Precalculates sin/cos to eliminate unnecessary calls.
* Formatting correction to previous commit
* Bugfix to optimized DrawSphereEx()
OBO error -- added 1 additional precalculated cos/sin value to each array to complete the 360-degree wraparound. Technically the value of these last elements will always be the same as the first element due to 360-degree wraparound, but this is the simplest solution.
* Corrected missing free()
* Formatting correction
* New DrawSphereEx() algorithm
* created ImageFromChannel
Adds the possibility to extract a specific channel from an image
* naming convention
* example window height
* removed threshold
* removed alpha channel
* channel example organization
* updated channel example image
* rmodels.c, LoadImageFromCgltfImage() : fix base64 padding support
This should fix the issue related to `.gltf` embeded image in base64 format, by ignoring `=` padding and calculating the data size in bytes correctly.
* follow guidelin convention
* try to follow guideline convention as much as possible
* clarify comments
i hope it's clear ennough
* Fix Makefile issues (RGFW) (linux) (macOS)
* Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW)
* remove #define RGFWDEF and make the #undefs only happen for their OS
* Update RGFW.h
* fix to match the RGFW updates
* remove line that shows the cursor for no reason
* Update RGFW, replace long switch with an array, update rgfw platform for RGFW
* update RGFW (fix reported glitch with drag and drop files) (linux)
* remove u16
`@This()` was naively passed to `dependencyFromBuildZig` while inside
a file that is not actually the build file, causing a panic when
actually used. Passing `@import("../build.zig")` fixes this.
It is currently impossible to check a font loaded successfully with
IsFontReady because LoadFontEx will always return a valid font.
DrawTextEx has this check:
if (font.texture.id == 0) font = GetFontDefault(); // Security check in case of not valid font
So anyone relying on the default font as a fallback for fonts failing to
load should still be covered.
* 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>
* Initial work to correctly handle the node hierarchy in a glTF file.
Static meshes seem to work fine in my tests. Haven't tried anything
animated yet, but it's almost certainly broken.
* Fix variable naming, some comment tweaks
* Only count primitives made up of triangles in glTF meshes
* Update processing of gltf mesh animation data, to match earlier
changes to vertex/normal/tangent data
* [rshapes] Fix multisegment Bezier splines.
It seems to me that these functions are wrong, if you step the index by 1 you move to a control point instead of the next segment.
* Fix example shapes/shapes_splines_drawing for bezier splines.
* Draw circles to fill gaps between bezier segments.
When addRaygui is used from an external build, for example in a
bindings project, the build of a generated `raygui.c` fails with
"raylib.h not found" error from the compiler.
I've traced this down to a raylib step not adding its `src/` to the
shared list of include paths using `addIncludePath` but relying on
`addCSourceFiles` `.root` to provide the implicit include path for
raylib proper's own files.
If raygui is later added to the step the compiler won't know where
to look for `raylib.h` and friends and will fail to build.
This change simply adds raylib's `src/` to the include path list.
- The function rlGetMatrixProjectionStereo and rlGetMatrixViewOffsetStereo have RLAPI for the function declaration and cause error when compiling using RLGL_IMPLEMENTATION.
* Update raylib_api.* by CI
* make functions that take a pointer to an array take them as const pointers
* Update raylib_api.* by CI
* fix comment alignment.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>