Rémi Verschelde
0ce92073ae
Move RS::ShaderNativeSourceCode to RenderingServerTypes to reduce dependencies on RS
...
On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 1s, and paves the way for more decoupling in
rendering code.
2026-02-25 20:17:27 +01:00
Pāvels Nadtočajevs
d09f6d879a
Fix UTF-8 handling in GLES3 shaders.
2026-02-25 15:08:53 +02:00
Rémi Verschelde
cd650f2336
GLES3: Move some static utils to new RasterizerUtilGLES3
...
This helps remove dependencies on RasterizerGLES3 in many files, which is
useful as RasterizerGLES3 basically includes everything, so it brings a lot
of transient includes.
2026-02-20 11:29:39 +01:00
Rémi Verschelde
13bb08286e
GLES3: Remove unnecessary includes
2026-02-20 11:29:38 +01:00
Rémi Verschelde
715748bab4
GLES3: Tidy up includes for consistency
2026-02-20 11:20:44 +01:00
Lukas Tenbrink
1825e89787
Change copy constructors of HashMap and AHashMap from implicit to explicit.
2026-01-21 13:01:23 +01:00
Lukas Tenbrink
963c20565b
Remove OAHashMap, in favour of AHashMap.
...
The two types had (mostly) the same decisions, but `AHashMap` is a faster implementation, and is more consistent with `HashMap`.
2025-05-31 15:50:10 +02:00
Dario
5a30a7e7cd
Add shader baker to project exporter.
...
Metal Support contributed by Migeran (https://migeran.com ) and Stuart Carnie.
Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com >
Co-authored-by: Gergely Kis <gergely.kis@migeran.com >
2025-05-27 12:45:27 -03:00
Thaddeus Crews
2d42b889d1
Merge pull request #104124 from Ivorforce/alloc-static-calloc
...
Add `Memory::alloc_static_zeroed` to allocate memory that's filled with zeroes.
2025-05-19 08:01:33 -05:00
Lukas Tenbrink
3207066e19
Add Memory::alloc_static_zeroed to allocate memory that's filled with zeroes.
...
This is generally faster than `malloc` followed by `memset` / loop-set to 0.
2025-05-13 01:57:05 +02:00
Marcos Casagrande
197b307061
[Web] Optimize GL.getSource for known-length shader sources
2025-04-27 17:44:08 +02:00
Yyf2333
1a70a06a43
Change RID_Owner::get_owned_list.
2025-04-21 01:04:27 +08:00
Yufeng Ying
4f4031a675
Replace size() == 0 with is_empty().
2025-04-02 19:18:43 +08:00
A Thousand Ships
331a43a9d8
Add String::remove_char(s) methods for performance and convenience
2025-03-10 13:19:28 +01:00
Yufeng Ying
33817b186f
Remove unused header in drivers and modules.
...
Co-authored-by: Thaddeus Crews <repiteo@outlook.com >
2024-12-24 00:40:47 +08:00
clayjohn
940e9c2a43
Revert "Fix GPUParticles are not rendered for older AMD GPUs with OpenGL+Angle"
...
This reverts commit 9cc9df52eb .
This also adds a fallback to avoid using the Godot versions of the half 2 float functions when using ANGLE.
2024-10-29 22:17:16 -07:00
David Snopek
1a6f8512bc
Add external texture support (GLES3)
...
Co-authored-by: Fredia Huya-Kouadio <fhuyakou@gmail.com >
Co-authored-by: Mauricio Narvaez <nvz@meta.com >
2024-09-20 10:48:32 -05:00
Miley Hollenberg
1c31e30359
Fixed crash on PowerVR GE8320 GPUs
2024-07-30 08:43:04 +02:00
patwork
ed5f33ef07
Make query for GL_MAX_VIEWPORT_DIMS compatible with web exports
2024-06-14 01:53:12 +02:00
Thaddeus Crews
3b3e2374c9
clang-tidy: Enforce modernize-use-nullptr
2024-03-12 10:59:53 -05:00
ArthasMenethil
d31d3e503e
Fix shader cache with transform feedback on some android devices
2024-02-21 07:31:40 +07:00
Alula
ea229f5148
OpenGL: Implement 3D Texture support
2024-02-05 20:10:39 +01:00
A Thousand Ships
15369fdb1d
Remove unnecessary this-> expressions
2024-01-29 09:59:18 +01:00
jsjtxietian
a365c070b3
Add shader_cache_dir_valid check to _save_to_cache
2024-01-12 17:34:33 +08:00
Wilson E. Alvarez
a3cb1b096f
Add const references detected by clang-tidy
2023-12-16 13:36:44 -05:00
lawnjelly
593cdf00ff
[GLES3] Protect against bogus glGetShaderInfoLog return values.
...
On some buggy drivers `GL_INFO_LOG_LENGTH` returns incorrect values, which may lead to incorrectly filling in the log string. This could lead to uninitialized data being attempted to be printed and a crash.
This PR zeros the array to ensure uninitialized data is not used.
2023-11-11 06:56:46 +00:00
bruvzg
25dc729dd4
Parse OpenGL and Vulkan strings as UTF-8.
2023-10-30 17:24:31 +02:00
bitsawer
f1062f25eb
Add device info to GLES3 shader cache key hash
2023-09-26 13:01:31 +03:00
bruvzg
1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
...
Co-authored-by: Riteo <riteo@posteo.net >
2023-09-21 14:21:00 +03:00
A Thousand Ships
3565d1bf7e
[Drivers,Platform] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable
2023-09-12 20:13:32 +02:00
Adam Scott
9c7db7397f
Fix integer value for GL_MAX_UNIFORM_BLOCK_SIZE overflowing
2023-08-25 10:19:25 -04:00
clayjohn
52fb5bf986
Check if shader cache directory is available before using cache
2023-07-25 14:33:37 +02:00
Dani Frank
6d3634e29f
fix gles texture uniform array binding
2023-05-26 23:11:02 +03:00
ChibiDenDen
14e9a61ebc
Verify gles3 cached shader load successful
2023-05-17 19:36:30 +03:00
ChibiDenDen
6441210177
Add ARB_get_program_binary to glad to support shader cache over desktop GL
2023-05-06 00:20:37 +03:00
ChibiDenDen
4adbfcfbb2
Add shader cache to gles3
2023-04-15 18:41:10 +03:00
Bastiaan Olij
85c478e170
Make screen texture and depth texture work in Multiview
2023-01-25 13:35:01 +11:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
...
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
clayjohn
ac6b25f33e
Use internal texture name when setting texture uniform location in OpenGL renderer
2022-12-05 18:01:24 -08:00
clayjohn
9ce57050a5
Add GPUParticles to the OpenGL3 renderer.
...
This includes collision (2D SDF, Box, Sphere, Heightmap),
attraction (Box, Sphere), and all sorting modes.
This does not include 3D SDF collisions, trails, or
manual emission.
2022-11-14 23:28:25 -08:00
David Snopek
398ee08375
Add multiview to the opengl3 driver
2022-10-21 21:00:32 -05:00
Aaron Franke
10a56981dc
Rename String plus_file to path_join
2022-08-29 19:38:13 -05:00
clayjohn
3e20c1347d
Add clipping, backbuffer, and CanvasGroups to 2D GLES3 renderer
...
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code
2022-05-24 11:00:34 -07:00
reduz
746dddc067
Replace most uses of Map by HashMap
...
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
(order matters) but use is discouraged.
There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
clayjohn
652adcd5bf
Basic 3D rendering
2022-05-12 10:37:27 -07:00
clayjohn
2f2064fe3d
Overhaul GLES3: Add basis for 3D renderer, overhaul materials and textures
2022-04-26 11:48:39 -07:00
bruvzg
9381acb6a4
Make FileAccess and DirAccess classes reference counted.
2022-04-11 13:28:51 +03:00
bruvzg
f851c4aa33
Fix some issues found by cppcheck.
2022-04-06 14:34:37 +03:00
Rémi Verschelde
b8b4580448
Style: Cleanup single-line blocks, semicolons, dead code
...
Remove currently unused implementation of TextureBasisU, could be re-added
later on if needed and ported.
2022-02-16 14:06:29 +01:00
clayjohn
99064d57db
New OpenGL batching canvas renderer
2022-01-11 22:26:18 -08:00