Commit graph

9,660 commits

Author SHA1 Message Date
Bigfoot71
073b94ffc3 Merge remote-tracking branch 'origin/master' into rlsw-blend-mode 2026-03-18 22:30:42 +01:00
Bigfoot71
2803a8f164 moves color conversion to math part 2026-03-18 21:58:21 +01:00
Bigfoot71
6bacc7de2e sets internal the number of vertices post-clipping and the epsilon clipping + a little cleanup 2026-03-18 21:38:18 +01:00
Bigfoot71
bdc2a6e26e use optionnal LUT for uint8_t -> float conversion 2026-03-18 21:23:50 +01:00
Amine Laaboudi
da9e881092
Fix uninstall process to remove rcamera header file (#5671)
Co-authored-by: 0x00650a <Ox00650a@inter.net>
2026-03-18 21:09:27 +01:00
Bigfoot71
7f2c9a0827 select the read function on texture load
This removes the per-pixel switch; it's slightly more efficient on my hardware, but probably a poor prediction
Should remain profitable or at worst the same
2026-03-18 20:59:27 +01:00
Bigfoot71
594bd10423 style tweaks 2026-03-18 18:05:34 +01:00
Bigfoot71
0c6de5a08e long side check for each triangle line
My mistake in a previous commit
2026-03-18 18:03:48 +01:00
Bigfoot71
a31fecf0b9 affine interpolation per blocks 2026-03-18 17:42:53 +01:00
Bigfoot71
23efe6decf extends the simd color conversion to more cases 2026-03-18 16:47:23 +01:00
Ray
2a3b28b67a Reviewed some comments 2026-03-18 16:21:35 +01:00
Ray
2fd058c1e4 Update ROADMAP.md 2026-03-18 16:21:18 +01:00
Ray
528caf8b9d Added some libraries 2026-03-18 16:21:14 +01:00
Bigfoot71
7915f46526 reduces unnecessary interpolation costs during triangle rasterization + cleanup 2026-03-18 15:13:01 +01:00
Bigfoot71
4ae005857f review sw_vertex_t
removes `float screen[2]`; each step stores the transformed coordinates in `float coord[4]`.
This also simplifies vertex interpolation during triangle rasterization.
2026-03-18 13:38:27 +01:00
Ray
85df4e7de5 REVIEWED: rlsw, use provided library information 2026-03-18 13:31:09 +01:00
Ray
f23319db3c Update ROADMAP.md 2026-03-18 13:29:51 +01:00
Ray
29e4b77580 RENAMED: rl_gputex to rltexgpu 2026-03-18 13:29:36 +01:00
Ray
2c39703d13 RENAMED: rl_gputex to rltexgpu 2026-03-18 13:28:45 +01:00
Bigfoot71
1117b130c7 simplified draw functions 2026-03-18 03:11:10 +01:00
Bigfoot71
f9dc728e46 reduce number of op for each vertex push + review primitive struct 2026-03-18 02:58:56 +01:00
Bigfoot71
d6dfe6a90c prevent state changes during immediate record 2026-03-18 02:28:30 +01:00
Bigfoot71
2f465bfbcf review immediate rendering functions and attribute layout 2026-03-18 02:18:51 +01:00
Bigfoot71
c3f8e6782d disables blending when it requires alpha and there is none 2026-03-18 01:43:49 +01:00
Bigfoot71
af67e1144b change blend funcs validity check
Simplifies the validation of blend functions.
Can allow `SW_SRC_ALPHA_SATURATE` as dst factor, but hey
2026-03-17 23:31:58 +01:00
Bigfoot71
f8f1988bd9 rename dispatch tables for consistency 2026-03-17 23:21:13 +01:00
Bigfoot71
cdf97cb392 auto generates all combinations of blending factors
This adds a macro system that generate a function for each possible combination of blending factors, resulting in 11*11 functions, hence 121.
This then allows for only one indirection and function call instead of two previously (assuming the first call was inlined).
2026-03-17 22:56:06 +01:00
Le Juez Victor
d657e86043
[rlsw] Fix typos, update build scripts, and align style (#5669)
* fix typo that appeared during re-format

* fix build scripts for `GRAPHICS_API_OPENGL_SOFTWARE`

* consistency tweak
2026-03-17 20:01:45 +01:00
Ray
0de2e8092b REVIEWED: GetTime(), make sure division is with doubles #5668 2026-03-17 19:38:29 +01:00
Ray
48a34d63ed Update rlsw.h 2026-03-17 18:35:33 +01:00
Ray
fbce5e7541 Bump rlgl version to 6.0, after the low-level shaders API redesign, aligned with raylib 6.0 2026-03-17 18:33:53 +01:00
Ray
18756bb79d REVIEWED: Software renderer flag, renamed to GRAPHICS_API_OPENGL_SOFTWARE
Dropped the `11` relative to OpenGL 1.1 because latest `rlsw 1.5` also includes support for FBOs and could potentially implemented other higher level features in the feature, discerning from OpenGL 1.1 limitations
2026-03-17 18:33:15 +01:00
Ray
6ddf9a1885 Code review, format tweaks, defined version to 1.5 2026-03-17 18:30:48 +01:00
Le Juez Victor
e7d999e3c7
[rlsw] RenderTexture support (#5655)
* review texture formats
Added support for `R3G3B2`, `R5G6B5`, `R4G4B4A4` and `R5G5B5A1`
Added depth formats

* use of textures for the framebuffer
- Framebuffers can now use all texture types that are already available.
- The 24-bit depth format has been removed as it is no longer needed.
- Framebuffer formats are still defined at compile time.
- The allocated texture size is now preserved, which avoids frequent reallocations when resizing framebuffers and will allow the use of `glTexSubImage2D`.

* review framebuffer blit/copy
This greatly simplifies the framebuffer blit/copy logic while now supporting all pixel formats. It is slightly slower in debug builds, but this path is mainly kept for compatibility anyway. The `copy_fast` version is still used for the "normal" cases when presenting to the screen.

* review pixel get/set
less ops for certain formats + fixes

* fix depth write

* texture read/write cleanup + tweaks
I made the  pointers parameters `restrict` for reading/writing textures, which resulted in a slight improvement.
And I reviewed the `static inline` statements, which could potentially bias the compiler; no difference, but it's cleaner.

* style tweaks

* review uint8_t <-> float conversion

* added a reusable object pool system
will allow management of both textures and framebuffers
added support for `glTexSubImage2D`
added handling of 'GL_OUT_OF_MEMORY' errors
removed the default internal texture (unused)

* added FBO API + refactored rasterizer dispatch logic

* fix ndc projection + review presentation
and rename rlsw's resize/copy/blit

* add `glRenderbufferStorage` binding
+ tweaks and fixes

* fix quad sorting + simplify quad rasterization part

* fix line shaking issue

* support of `GL_DRAW_FRAMEBUFFER_BINDING`

* update rlgl - support of rlsw's framebuffers

* fix pixel origin in line rasterization
my bad, an oversight in my previous fix.
This offset should have been moved here rather than per pixel during truncation.

* style tweaks

* fix vla issue with msvc - fill depth / fill color
2026-03-17 17:50:32 +01:00
Ray
93be463322 Added missing resource to audio_module_playing example #5664 2026-03-17 08:13:00 +01:00
Ray
5cd7202777 Update models_rlgl_solar_system.c 2026-03-17 08:12:15 +01:00
Ray
22e1e86c52 Update raylib.vcxproj.filters 2026-03-17 08:12:09 +01:00
Ray
1eea511070 Remove trailing spaces 2026-03-16 17:51:53 +01:00
Ray
e0d3037e15 Update raylib.h 2026-03-16 17:51:44 +01:00
Ray
483d687900 Updated examples versions, validated with REXM 2026-03-16 17:19:27 +01:00
Ray
7401214e92 Update audio_stream_callback.c 2026-03-16 17:14:53 +01:00
Ray
d2be4ac2c9 Update CHANGELOG 2026-03-16 17:04:36 +01:00
Ray
19ec2588be Update Makefiles for emsdk version 5.0.x, using required node 22.16.0 and Python 3.13.3 2026-03-16 17:04:30 +01:00
Ray
e2aed43410 Update examples version to latest raylib 6.0 2026-03-16 17:03:02 +01:00
Ray
4a16dc9b09 Update build_webassembly.yml 2026-03-16 17:01:26 +01:00
Maicon Santana
ceeaf57a8b
[CHANGELOG] fix github name (#5663)
Just for consistency, changing @Ray to @raysan5
2026-03-16 09:24:33 +01:00
Thomas Anderson
dfc3f58a06
fixed web platform resize events (#5662) 2026-03-15 23:26:29 +01:00
Thomas Anderson
26f329a5e7
fixed copy paste error in makefiles (#5660) 2026-03-15 20:40:26 +01:00
Ray
1d9e24eb58 REVIEWED: GetTime(), make it consistent between platforms, consider window initialization base time 2026-03-15 20:39:57 +01:00
Soma Mizobuchi
29280971be
rcore_platform_sdl: Fix GetTime() resolution for sdl (#5653)
`SDL_GetTicks()` only has millisecond resolution so switched to
`SLD_GetPerformanceCounter()` combined with
`SDL_GetPerformanceFrequency()` which should allow more granular timing

Fix: remove intermediate  variable

Remove second cast
2026-03-15 20:31:18 +01:00