raylib/src
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
..
external [rlsw] RenderTexture support (#5655) 2026-03-17 17:50:32 +01:00
platforms Remove trailing spaces 2026-03-16 17:51:53 +01:00
CMakeLists.txt Resolveed conflicts 2026-03-13 18:55:36 +01:00
config.h Code gardening 2026-03-04 01:14:26 +01:00
Makefile 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
minshell.html Update minshell.html 2025-12-30 22:05:37 +01:00
raudio.c Remove trailing spaces 2026-03-13 18:50:26 +01:00
raylib.dll.rc Update year to 2025 2025-01-01 00:02:52 +01:00
raylib.dll.rc.data Update year to 2025 2025-01-01 00:02:52 +01:00
raylib.h Update raylib.h 2026-03-16 17:51:44 +01:00
raylib.ico Update raylib.ico 2024-11-14 16:40:04 +01:00
raylib.rc Update year to 2025 2025-01-01 00:02:52 +01:00
raylib.rc.data Update year to 2025 2025-01-01 00:02:52 +01:00
raymath.h Code gardening 2026-03-04 01:14:26 +01:00
rcamera.h Code gardening 2026-03-04 01:14:26 +01:00
rcore.c **WARNING: BREAKING:** REDESIGNED: rlgl shader loading API function names for more consistency #5631 2026-03-09 14:23:54 +01:00
rgestures.h Update year to 2026 2026-01-02 13:40:15 +01:00
rglfw.c Update year to 2026 2026-01-02 13:40:15 +01:00
rlgl.h [rlsw] RenderTexture support (#5655) 2026-03-17 17:50:32 +01:00
rmodels.c Remove trailing spaces 2026-03-13 18:50:26 +01:00
rshapes.c Code gardening 2026-03-04 01:14:26 +01:00
rtext.c Remove trailing spaces 2026-03-13 18:50:26 +01:00
rtextures.c Code gardening 2026-03-04 01:14:26 +01:00
shell.html REVIEWED: Fullscreen request #5601 2026-03-02 13:16:43 +01:00