Commit Graph

2037 Commits

Author SHA1 Message Date
Rémi Verschelde 727b06a79f Move ProcessID typedef out of OS
This allows decoupling a number of files from `os.h`.
2026-03-04 15:00:45 +01:00
Rémi Verschelde 765362b033 Explicitly include core/config/engine.h where used 2026-03-04 10:17:10 +01:00
Rémi Verschelde 8c0f175c94 Decouple RenderingServer from as much of the codebase as possible
Notably decouples it from:
- AccessibilityServer
- DisplayServer
- Viewport
- Window
2026-03-03 12:48:07 +01:00
Rémi Verschelde a447ac95ec Move DisplayServer enums and typedefs to DisplayServerEnums
This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
2026-03-03 12:44:02 +01:00
Mounir Tohami c0a648de76 Fix textures repeat mode for GLES3 renderer.
Co-authored-by: kleonc <9283098+kleonc@users.noreply.github.com>
2026-03-01 06:57:34 +02:00
Thaddeus Crews e42575d23f Merge pull request #113956 from allenwp/colour/remove-LinearToSRGB-clamping
Remove clamping from LinearToSRGB visual shader node.
2026-02-27 08:49:33 -06:00
Allen Pestaluky dce001aee7 Remove clamping from LinearToSRGB visual shader node. 2026-02-26 11:49:26 -05:00
Rémi Verschelde e3b60a1530 Move RenderingMethod::RenderInfo to RenderingServerTypes
Also move RS::scaling_3d_mode_type to RenderingServerEnums.
2026-02-25 20:17:28 +01:00
Rémi Verschelde 671864fb05 Decouple TextureStorage from RenderingServer
By moving RS::TextureDetect(Roughness)Callback and RS::TextureInfo
to RenderingServerTypes.
2026-02-25 20:17:28 +01:00
Rémi Verschelde cb9b4cff90 Decouple MeshStorage from RenderingServer
By moving RS::SurfaceData and RS::MeshInfo to RenderingServerTypes.

This notably allows removing RS dependency from `mesh.h`.
2026-02-25 20:17:28 +01:00
Rémi Verschelde a85df7cc73 Minimize includes in renderer_compositor.h 2026-02-25 20:17:27 +01:00
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
Rémi Verschelde 25bfae8ff9 Remove RenderingServer::map_scaling_option_to_stretch_mode and cleanup boot splash code
Removes RS as a dependency in `project_settings.cpp` (which was a bug,
`core` shouldn't include `servers`). This doesn't have a big impact on
incremental rebuild time by itself.

Also move helper `get_splash_stretched_screen_rect` to RenderingServerTypes.
2026-02-25 20:17:27 +01:00
Rémi Verschelde a3cb56dd38 Decouple RenderingServer from XR/OpenXR headers
Move BlitToScreen to RenderingServerTypes.
2026-02-25 20:17:23 +01:00
Rémi Verschelde f5a290ac46 Move RenderingServer enums to a dedicated RenderingServerEnums (RSE) namespace
A number of headers in the codebase included `rendering_server.h` just for
some enum definitions. This means that any change to `rendering_server.h` or
one of its dependencies would trigger a massive incremental rebuild.

With this change, we decouple a number of classes from `rendering_server.h`,
greatly speeding up incremental rebuilds for that area.

On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 60s (from 2m57s).
2026-02-25 19:43:03 +01:00
Thaddeus Crews 637ae4c514 Merge pull request #114336 from LunaCapra/bent-normals-compatibility
Add bent normal map support for the compatibility renderer
2026-02-25 11:25:10 -06:00
Pāvels Nadtočajevs d09f6d879a Fix UTF-8 handling in GLES3 shaders. 2026-02-25 15:08:53 +02:00
Thaddeus Crews 582a4f0d5a Merge pull request #115520 from Calinou/codestyle-tweak-opengl-glow-enum-name
Rename glow structs in Compatibility renderer to match code style guidelines
2026-02-23 11:58:56 -06: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 0ea5ece984 Move binary math functions to Math namespace in math_funcs_binary header. 2026-02-17 12:24:35 +01:00
Thaddeus Crews 2d5b30c476 Merge pull request #115963 from blueskythlikesclouds/reduce-includes-to-rd
Reduce includes to rendering device.
2026-02-12 08:19:16 -06:00
Josh Jones b8389cc76b Support output to HDR monitors
Co-authored-by: Alvin Wong <alvinhochun@gmail.com>
Co-authored-by: Allen Pestaluky <allenpestaluky@gmail.com>
2026-02-11 22:13:26 -07:00
Skyth 8fbf2f1e14 Reduce includes to rendering device.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2026-02-10 16:58:50 +03:00
Thaddeus Crews 0a843c13f8 Merge pull request #111464 from LiveTrower/clearcoat-improvements
Clearcoat improvements and fixes
2026-02-03 08:14:00 -06:00
jon1solution 979d3e58d0 Keeping the top N lights per mesh in the culling phase.
Previously, each mesh was paired up with the first N of each Omni- and Spot-lights.
Now each light is scored based on its distance to the mesh, energy, and range.
The new code uses a heap to track the best N lights (of each type) for predictability.
2026-02-02 08:59:30 -08:00
Rémi Verschelde 429750f60b Merge pull request #115093 from Ivorforce/hashmap-explicit-copy
Change copy constructors of `HashMap` and `AHashMap` from implicit to explicit
2026-01-31 22:50:51 +01:00
Thaddeus Crews fbbb8a921b Merge pull request #115309 from Ivorforce/localvector-explicit-copy
Change copy constructor of `LocalVector` from implicit to explicit
2026-01-30 09:32:07 -06:00
Colin O'Rourke 63f6e3691c DrawableTextures
Implementing DrawableTextures based on: https://github.com/godotengine/godot-proposals/issues/7379
2026-01-29 01:16:06 -08:00
Hugo Locurcio 10da3ba455 Rename glow structs in Compatibility renderer to match code style guidelines 2026-01-29 01:32:50 +01:00
LiveTrower 60097eb3ce clearcoat fixes and improvements 2026-01-27 18:02:01 -06:00
Lukas Tenbrink c56c297cee Remove geometry_3d include from rendering_server.h, to reduce compile time.
Change `Geometry3D` from class to namespace.
2026-01-27 18:12:38 +01:00
Thaddeus Crews 4738ce72e3 Merge pull request #115026 from rothej/fix-94567-fog-shader-compilation-with-fog-disabled
Fix shader compilation error when writing to `FOG` when `render_mode fog_disabled`
2026-01-26 13:14:27 -06:00
Thaddeus Crews cfc5ec93d4 Merge pull request #114767 from unixfan2/fix/114606-compat-wrong-texunit
Fix sky radiance texunit in compatibility renderer
2026-01-26 13:14:26 -06:00
Lukas Tenbrink 63272b23ef Make LocalVector copy constructor explicit. 2026-01-23 20:52:03 +01:00
Lukas Tenbrink 1825e89787 Change copy constructors of HashMap and AHashMap from implicit to explicit. 2026-01-21 13:01:23 +01:00
Bastiaan Olij aac883849e Apply fixed size properly for mono/stereo rendering. 2026-01-20 23:19:45 +11:00
Joshua Rothe 7a2f188382 Fixing shader compilation error when writing to FOG when render_mode fog_disabled.
Always declares FOG variable regardless of fog state. Previously, only declared
fog if FOG_DISABLED was undefined. This caused errors if the code tried to
write to fog later. Exists as a dummy variable when unused.

Signed-off-by: Joshua Rothe <joshrothe@gmail.com>
2026-01-16 02:12:52 -07:00
Peter Friedrich 6f2eaf0f8e Fix sky radiance texunit in compatibility renderer (fixes #114606) 2026-01-08 23:32:15 +01:00
Capry b5cb821636 Add bent normal map support for the compatibility renderer 2025-12-26 19:33:40 +01:00
Bastiaan Olij 3a486ef46c Fix OpenGL motion vector regression 2025-12-21 11:23:49 +11:00
Bastiaan Olij 6c52ba9625 OpenGL: Split the ubos for motion vectors into separate uniforms 2025-12-19 11:51:18 +11:00
Kaleb Reid 05830dfbfb Check if sun scatter is enabled when using SKY_MODE_AUTOMATIC 2025-12-04 22:58:05 -08:00
Allen Pestaluky 628df323e2 Add agx_white, agx_contrast and HDR support to the AgX tonemapper.
Also optimize all tonemappers to perform less calculations per-pixel.

Note: unlike `white`, `agx_white` is limited to a minimum of `2.0` and defaults to `16.29`. When using a RGB10A2 render buffer, `agx_white` will be ignored and a value of `2.0` will be used instead to ensure good behavior on the Mobile renderer.
2025-12-03 09:01:39 -05:00
Dario c78c3ba894 Rewrite Radiance and Reflection probes to use Octahedral maps.
Co-authored-by: clayjohn <claynjohn@gmail.com>
2025-12-02 17:48:12 -08:00
Rémi Verschelde 5f12ada7a4 Merge pull request #113432 from TheDying0fLight/set-shader-path-before-compiling
Set shader path before compilation
2025-12-02 14:17:38 +01:00
Simon Döhl 772caa8170 set shader path before compilation 2025-12-02 09:04:19 +01:00
Hugo Locurcio 2cf7af9149 Make all unsupported renderer message features consistently warnings
Previously, some messages indicating a lack of support were errors
instead of warnings. Some messages were also not shown when running
a release export template.

- Use "renderer" terminology consistently instead of "rendering method".
2025-12-01 17:38:12 +01:00
xuhuisheng 047e0e0606 Fix gles3 buffer_free_data error 2025-11-28 16:16:31 +08:00