ImageDrawCircle filled 2*radius pixels wide but 2*radius + 1 tall. Each
horizontal span started at centerX - x with width 2*x, which covers
centerX - x through centerX + x - 1, leaving the column at centerX + x
unwritten. The result was one column short on the right, off-centre, and
inconsistent with ImageDrawCircleLines, which is 2*radius + 1 in both
directions.
Widen the four spans by one pixel so the fill is (2r+1) x (2r+1), centred
on (centerX, centerY) and aligned with ImageDrawCircleLines.
Fixes#6117
* Add LoadRenderTextureEx that defines the FBO pixel format
* rlparser: update raylib_api.* by CI
* requested review
* rlparser: update raylib_api.* by CI
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
R5G5B5A1 packs blue in bits 5..1 and alpha in bit 0, which is what
SetPixelColor(), ImageFormat(), LoadImageColors() and GetImageColor()
all do. GetPixelColor() masked bits 4..0 instead, so the decoded blue
was the low four bits of blue shifted up with the alpha bit pulled in
as its LSB.
Packing r == g == b and decoding it back gave (164, 164, 74) for
r=g=b=20; 31 of the 32 possible grey values decoded with unequal
channels. ImageDrawImage() blends through GetPixelColor(), so drawing
onto an R5G5B5A1 image was affected too.
Co-authored-by: Dylan Pulver <dylanpulver@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Alias GL_DRAW_FRAMEBUFFER_BINDING to GL_FRAMEBUFFER_BINDING for ES 2.0,
alongside the existing GL_READ_FRAMEBUFFER/GL_DRAW_FRAMEBUFFER aliases, and
widen the guard to ES 2.0. The guard now matches rlEnableFramebuffer() and
rlDisableFramebuffer().
The cache has no eviction, so a driver rotating a fourth buffer never gets a
framebuffer for it and the display stops updating for good. Mesa rotates
three, ARM's Mali blob on RK3326 rotates four.
Verified on an R36S. See #6056.
rexm used to assume certain paths existed and then `_putenv()` them into `PATH`, which is very error prone. `make` was also assumed, though `mingw32-make` seems to be more common on Windows. Since this shifts things to expect the user to setup their environment, I added some explanation to the README as well.
OP_TESTLOG still uses a hardcoded path when doing web testing (`BUILD_TESTING_WEB`,) unfortunately.
* [rshapes] Add `DrawEllipseLinesEx()`
Add DrawEllipseLinesEx() to the API for consistency with other shape drawing functions.
* [rshapes] Add `DrawTriangleLinesEx()`
Add DrawTriangleLinesEx() to the API for consistency with other shape drawing functions.
* [rshapes] Add `DrawCircleSectorLinesEx()`
Add DrawCircleSectorLinesEx() to the API for consistency with other shape drawing functions.
* [rshapes] Add `DrawRingLinesEx()`
Add DrawRingLinesEx() to the API for consistency with other shape drawing functions.
* [examples] Add shapes_outlines_testbed
This example stress tests the previously existing and newly added shape outline functions.
* [cmake] Fix standalone configuration of examples project
Configuring examples/ as a standalone project (cd examples && cmake .)
failed with 'Unknown CMake command add_if_flag_compiles' and a missing
cmake_minimum_required() error on CMake 4.x.
- Add cmake_minimum_required(VERSION 3.22), matching the root project
- Include raylib's AddIfFlagCompiles helper via ../cmake
- Default PLATFORM to Desktop when not inherited from the raylib build
* [cmake] Propagate Cocoa backend frameworks to consumers of static raylib on macOS
Bundled GLFW links '-framework Cocoa/IOKit/QuartzCore' privately, and the
static-install export block removes glfw from the exported dependencies.
As a result the installed CMake package only carried OpenGL.framework,
and linking any consumer of libraylib.a failed with undefined Objective-C
symbols (_objc_retain etc.).
Append the three frameworks to the static install interface when the
bundled GLFW is used, so installed consumers get a complete link line.
* Gate macOS Cocoa framework propagation to the Desktop platform
Configuring examples/ as a standalone project (cd examples && cmake .)
failed with 'Unknown CMake command add_if_flag_compiles' and a missing
cmake_minimum_required() error on CMake 4.x.
- Add cmake_minimum_required(VERSION 3.22), matching the root project
- Include raylib's AddIfFlagCompiles helper via ../cmake
- Default PLATFORM to Desktop when not inherited from the raylib build
rexm could crash and corrupt examples_list.txt when adding a new example in the textures category. This happened because the tool searched for the category name as plain text, and "text" happens to be part of "textures" (and shows up inside names like core_render_texture), so it sometimes found the wrong spot and inserted the new example in the middle of an unrelated line.
This fix makes the search look for the exact category boundary instead of just any matching text, so it always finds the right place. It also fixes a small out-of-bounds issue that could happen specifically with the audio category, since it's the last one in the list.
Tested by creating a new textures example and a new audio example, both now work correctly and the examples list stays intact.
* Updated examples/Makefile after testing on OSX
I may be wrong, but the best way to install ray lib is through home-brew, and I'd expect that that should be a search path for others.
* Update Makefile
Fixed issues
* Fix borderless fullscreen always on top
Don't pass a monitor to glfwSetWindowMonitor(). This avoids setting the flag which keeps the window always on top.
* Update for borderless-windowed always on top bug
Only apply the fix for Windows OS, since that seems to be the only
platform with the issue.