Commit Graph

10146 Commits

Author SHA1 Message Date
jestarray
3a7aa76509 [rcore_desktop_glfw.c] Do not reset mouse position user when user is off window (#6134)
See this comment and Jeffs as to why
https://github.com/raysan5/raylib/issues/5945#issuecomment-5595141064
2026-09-11 16:18:19 +02:00
Ray
73dce3635c Update raymath.h 2026-09-11 16:11:45 +02:00
Carlos GS
c66c92962b [raymath.h] Changed MatrixCompose to follow raymath conventions (#6133)
Co-authored-by: Carlos GS <carlosgs161@proton.me>
2026-09-10 15:14:32 +02:00
Max Freedom Pollard
94a69ad9e2 [rtext] Fix TextSplit() reading past its buffer on text of 1024 bytes or more (#6136)
The copy loop filled all MAX_TEXT_BUFFER_LENGTH bytes, so the last substring
could come back with no terminator, and a delimiter on the last byte made
buffers[] point one past the end of the array. Stop one byte earlier so the
zero left by the memset() at the top of the function always terminates the
last substring.
2026-09-10 15:13:05 +02:00
Ray
f25c8241f3 tweaks 2026-09-08 18:22:22 +02:00
Max Freedom Pollard
2b991b0243 [rtext] Fix TextToPascal()/TextToCamel() truncating text after a separator (#6132)
Both functions walk the input with two indexes and, on hitting '_', advance
j once and only write buffer[i] when the next character is one they know how
to handle. TextToPascal() (src/rtext.c:2186) covers 'a'-'z' and '0'-'9',
TextToCamel() (src/rtext.c:2270) covers only 'a'-'z'. Anything else leaves
buffer[i] at the zero it was memset to, so the returned string ends there
and the rest of the text is silently dropped: TextToPascal("text_UTF8_load")
returned "Text" and TextToCamel("sound_3d_mix") returned "sound".

The same path also reads past the end of the string. When '_' is the last
character, j++ lands on the '\0', neither branch matches, and then the loop
increment moves j one further before the condition reads text[j], one byte
beyond the terminator.

Skip the whole run of separators instead, stop when it reaches the end of
the text, and copy any character that has no upper case form as it is.
2026-09-07 00:17:52 +02:00
Nomobyte
c64eda6377 Updated BINDINGS.md (#6131)
* Updated bindings' versions
Bindings in the `Older or Unmaintained Language Bindings` category are untouched.

* Fix Target link

* Moved archived and projects with invalid links to a "Unmaintained" category

* `raylib4fb` was moved from GitHub to Codeberg

* Fix table formatting

* Moved outdated to the `Older bindings` category

* Fix tables formatting

* Changed the first paragraph
Added advice on when to update `BINDINGS.md`.
2026-09-07 00:16:07 +02:00
Ray
a2cc9b1614 Merge branch 'master' of https://github.com/raysan5/raylib 2026-09-05 21:22:21 +02:00
Nomobyte
30f918cc15 [rlparser] Fix formatting to follow raylib conventions (#6127)
Moved curly brace to newline in `if` block.
2026-09-05 21:21:54 +02:00
Ray
f3d143019b Merge branch 'master' of https://github.com/raysan5/raylib 2026-09-05 18:53:52 +02:00
Ray
2237618acf Update rshapes.c 2026-09-05 18:53:39 +02:00
Nomobyte
550dd0e3a8 [rlparser] Fix type aliases (typedefs): added support to type pointers (#6126)
Fix issue #6122
2026-09-04 22:32:03 +02:00
github-actions[bot]
e9d75a4fe9 rlparser: update raylib_api.* by CI 2026-09-04 16:24:23 +00:00
Ray
1829f9282c ADDED: IsFileHidden() 2026-09-04 18:24:04 +02:00
Ray
08a8068702 Merge branch 'master' of https://github.com/raysan5/raylib 2026-09-04 18:13:41 +02:00
Ray
3449d81f67 ADDED: IsFileHidden() 2026-09-04 18:13:28 +02:00
Matthew Roush
f9c2abdc9e [rexm] Add clean command. (#6124)
`build`, `test`, and `testlog` generate lots of files (`.exe`, `.html`, etc.) when executed. When you build/test enough examples, it's kind of annoying manually deleting the files. The generated reports (`.md` files) are not deleted.
2026-09-04 14:34:36 +02:00
Ray
3f3b4ccd4f Update rexm.c 2026-09-04 14:21:39 +02:00
Vortex
df4bf2f6a0 fix typo in rtextures.c (#6125) 2026-09-04 08:04:02 +02:00
Matthew Roush
a65f8be3c2 [rexm] Fix Makefile and change port number. (#6123)
* [rexm] Fix `Makefile`.

The `make` program that comes with `w64devkit` uses a UNIX-style shell, so we can't use `del` (we could set `SHELL` to `cmd`, but this is easier, and the expectation is that `w64devkit` is being used anyway.)

* [rexm] Use less common port number.

When using a port that's already in use, the server fails to start. Using a different (hopefully less common) port should help mitigate this.
2026-09-03 22:26:29 +02:00
Risu-swift
9b2efc4552 [rtextures] Fix ImageDrawCircle asymmetry (#6118)
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
2026-09-02 12:31:04 +02:00
Jeffery Myers
5a433a51a3 [rTextures] Add LoadRenderTextureEx with user defined format (#6114)
* 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>
2026-09-02 09:42:56 +02:00
Dylan Pulver
237c1f85dd [rtextures] Fix GetPixelColor() reading the wrong bits for R5G5B5A1 blue (#6113)
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>
2026-09-02 09:42:19 +02:00
JoeStrout
656d42c4da Support rlGetActiveFramebuffer() on OpenGL ES 2.0. (#6115)
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().
2026-09-02 09:36:59 +02:00
Vaibhav Srivastava
9f3cadf1e6 docs: fix typo relase -> release (#6109)
Signed-off-by: Vaibhav Srivastava <vaibhavsri1712@gmail.com>
2026-08-29 12:39:21 +02:00
Junji Takakura
1948bdf3f7 [rcore][drm] Raise MAX_DRM_CACHED_BUFFERS to 4 and warn when the cache fills (#6107)
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.
2026-08-29 11:41:46 +02:00
Matthew Roush
39d00cb025 [rexm] Fix small oversight. (#6106)
The leading double quote was accidentally deleted.
2026-08-28 21:40:23 +02:00
Ray
cef6136325 Update rexm.c 2026-08-28 19:39:05 +02:00
Matthew Roush
29d232c7cc [rexm] Leave environment setup up to the user. (#6101)
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.
2026-08-28 19:35:46 +02:00
andzdroid
3e2c0132a9 Invert emscripten scroll wheel direction (#6104) 2026-08-28 19:23:47 +02:00
Omar Ibrahim
f2441a17c8 [rcore][desktop] Fix clipboard image memory leak (GLFW, RGFW) (#6103) 2026-08-28 19:21:17 +02:00
Anton Zhiyanov
caba629ca1 Add raylib binding for solod (#6102) 2026-08-26 21:11:33 +02:00
Ray
a946097de4 Remove trailing spaces 2026-08-26 19:47:40 +02:00
Ray
ba0ac542c5 Update rtext.c 2026-08-26 19:46:45 +02:00
Ross Metcalfe
173b854168 Fix memory leak in rtext LoadFontFromImage method (#6100)
Fix for
[rtext] Memory leak at LoadFontFromImage when failing to compute spacing's
2026-08-26 19:43:03 +02:00
Alexandre Almeida
4c1dc51a6f Fix unused variable warnings (SDL) (#6096) 2026-08-26 18:39:42 +02:00
Alexandre Almeida
b7d7e70ac5 Fix Font name conflict (#6094) 2026-08-26 18:38:45 +02:00
Jorge A. Gomes
d9bf63bdf4 Updated BINDINGS.md for raylib-py 6.0 (#6095)
Co-authored-by: Jorge A. Gomes <jorgegomes83@gmail.com>
2026-08-26 18:37:52 +02:00
Ray
71643d8cda REVIEWED: GetWindowHandle(), avoid on SDL2 with Linux #6085
It generates conflicts with raylib Font symbol
2026-08-25 20:18:08 +02:00
Ray
0fb5c98293 Update models_mesh_uv_painting.c 2026-08-25 19:44:14 +02:00
Ray
e4ccc91d4e REVIEWED: example: textures_portal_window 2026-08-25 19:38:34 +02:00
github-actions[bot]
f3a471fd89 rlparser: update raylib_api.* by CI 2026-08-25 17:26:56 +00:00
Matthew Roush
820b971eff [rshapes] Add some missing Draw*LinesEx() functions and new example shapes_outlines_testbed (#6072)
* [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.
2026-08-25 19:26:42 +02:00
William Guimont-Martin
5f58fbe6d7 Added raylib_mojo binding for Mojo language (#6093) 2026-08-25 19:17:03 +02:00
Omar Ibrahim
5c5b357b4a [rcore][win32] Implement GetClipboardImage() (#6091) 2026-08-25 19:16:28 +02:00
PanicTitan
bcc834fc3e [examples] Add models_mesh_uv_painting (#6084)
* [examples] Add models_mesh_uv_painting

Example showing paintable models textures

* Fixed window size and use the raygui header for the buttons
2026-08-25 19:15:43 +02:00
PanicTitan
5b818bb318 [examples] New example models procedural decals (#6083)
* [examples] Add models_procedural_decals

A decal example that works on the web

* Using raygui button
2026-08-25 19:14:58 +02:00
Zaveshaa
e1efefb7f4 [cmake] Propagate Cocoa backend frameworks to consumers of static raylib on macOS (#6086)
* [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
2026-08-24 16:19:56 +02:00
Zaveshaa
2c0021ad89 [cmake] Fix standalone configuration of examples project (#6079)
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
2026-08-24 13:34:47 +02:00
PanicTitan
9bde204f1d [examples] Add textures_portal_window (#6082)
Add a example showing a portal like effect
2026-08-24 13:33:43 +02:00