Commit Graph

178 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
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
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
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
Thaddeus Crews 3f34e38703 Merge pull request #109596 from atlasapplications/splash-screen-stretch-mode
Add Stretch Modes for Splash Screen
2025-10-21 19:09:33 -05:00
Justin Sasso b6b3e1ef9e Add Stretch Modes for Splash Screen
Co-authored-by: Samuel Pedrajas <samuelpedrajaspz@gmail.com>
2025-10-21 18:20:44 -04:00
Clay John 7bde47e433 Use GL_FRAMEBUFFER instead of GL_DRAW_FRAMEBUFFER when doing final blit to the screen framebuffer to work around OBS bug 2025-10-19 19:25:28 -07:00
Summersay415 18d14ff18e Remove Adreno 3xx flip workaround 2025-07-28 14:03:25 +07:00
Bastiaan Olij 37b7f577ad Fix GLES3 stereo output (sRGB + lens distortion) 2025-06-20 10:45:03 +10:00
Rémi Verschelde 0497ae9947 Merge pull request #80710 from apples/7174-apples-stencil
Add stencil support to spatial materials
2025-06-12 01:15:35 +02:00
Apples d674c9e289 Add stencil support for spatial materials 2025-06-11 09:59:10 -05:00
Bastiaan Olij a2e4aed449 Fix final blit in OpenGL when stereo rendering is used 2025-06-10 14:47:07 +10:00
clayjohn 8b2dda868b Correctly place viewport and use viewport relative rect for the final blit in Compatibility renderer 2025-05-28 22:11:20 -07:00
clayjohn eb4f3a82a3 Ignore destination alpha when blitting to window in compatibility renderer 2025-05-22 22:21:32 -04:00
clayjohn a0e3ade99f Use a fragment shader copy instead of a blit copy in the final blit to screen in the Compatibility renderer to avoid black screen when "Force MSAA 4x is used" on Android devices 2025-05-20 16:34:43 -07:00
lawnjelly f8f350a32a Add GLOBAL_GET cached macros.
GLOBAL_GET is an expensive operation which should not be used each frame / tick.
This PR adds macros which do a cheaper revision check, and only call the expensive GLOBAL_GET when project settings have changed.

Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-04-30 15:08:50 +01:00
devloglogan 99260f3a68 Suppress OpenGL debug marker print 2025-02-28 10:08:24 -06:00
scgm0 b331ffa7e9 OpenGL3 renderer supports transparent boot splash 2025-01-14 05:58:59 +08:00
Thaddeus Crews 11b90086b7 Merge pull request #96705 from elmajime/camera_from_external_feed
Add support for external camera feed from external plugin on Android
2024-11-04 21:51:50 -06:00
maxime.chambefort 6f846eb5c5 Added external camera feed from external plugin on Android 2024-10-30 18:30:28 +01:00
Yevhen Babiichuk (DustDFG) af6d260c17 Don't include core/io/image.h in core/os/os.h
`core/os/os.h` doesn't use `core/io/image.h`. It just brings
transitive dependencies. Lots of dependencies because `core/os/os.h`
is transitively included in almost every file of godot

Also added `core/io/image.h` into files^1 where `Ref<Image>` and `core/os/os.h`
were used to prevent obscure errors involving `Ref<Image>`

^1 except those which include `core/io/image_loader.h` or `core/io/image.h` by
corresponding .h file with the same name

Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-10-18 19:04:19 +03:00
Thaddeus Crews 16dfaa5e80 Merge pull request #94952 from alvinhochun/angle-d3d11-flip-y
Optimize ANGLE on D3D11 to remove an extra blit
2024-10-10 18:13:17 -05:00
clayjohn 0305e437ff Clean up two recently introduced WebGL errors 2024-09-23 12:18:33 -07:00
David Snopek dfcff4ef46 OpenGL: Unconditionally do glDisable(GL_FRAMEBUFFER_SRGB) because we do our own sRGB conversion 2024-08-12 12:40:38 -05:00
Alvin Wong de4ba295f5 Optimize ANGLE on D3D11 to remove an extra blit
Support the extension EGL_ANGLE_surface_orientation, which allows ANGLE
to skip an extra blit from an intermediate buffer to the D3D11 swap
chain back buffer for inverting the Y axis due to the difference in
coordinate systems. Instead we do our inverting in RasterizerGLES3.
2024-07-31 00:35:52 +08:00
Bastiaan Olij 1eb0039b6e Fix regression around OpenGL swapchain optimisation for OpenXR 2024-07-29 12:46:58 +10:00
David Snopek 8e242fe7c1 Disable *glGetProcAddress() on the web 2024-06-24 10:57:22 -05:00
Rémi Verschelde 0347130a59 Merge pull request #92851 from patwork/fix-tooltips-viewport-dims
Make query for `GL_MAX_VIEWPORT_DIMS` compatible with web exports
2024-06-17 10:58:04 +02:00
patwork ed5f33ef07 Make query for GL_MAX_VIEWPORT_DIMS compatible with web exports 2024-06-14 01:53:12 +02:00
Alexander Hartmann aed6b023f5 Fix Adreno 3xx compatibility for devices with newer driver versions
Co-Authored-By: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-Authored-By: Clay John <claynjohn@gmail.com>
2024-06-11 23:23:51 +02:00
Rémi Verschelde 62120c7841 Fix Steam input "crc" errors, and some other Coverity reports of uninitialized scalar variable
- Fixes #88630.
- Fixes #92578.
2024-05-31 09:55:02 +02:00
Pedro J. Estébanez 1589433e8f Apply additional fixes to servers' threading 2024-05-08 17:41:40 +02:00
Bastiaan Olij 509d8dba2a Add reflection probe support to compatibility renderer using 2 probe approach. 2024-04-09 16:53:28 +10:00
Thaddeus Crews 3b3e2374c9 clang-tidy: Enforce modernize-use-nullptr 2024-03-12 10:59:53 -05:00
Rémi Verschelde 415a334f5f Merge pull request #88745 from clayjohn/GLES3-system-fbo
Consistently use `system_fbo` instead of binding 0 as it is needed for iOS devices
2024-02-27 10:17:51 +01:00
clayjohn 294f16c862 Consistently use system_fbo instead of binding 0 as it is needed for iOS devices 2024-02-25 13:52:41 -08:00
Alexander Hartmann e17cecf54a Fix Compatibility Rendering (GLES3) on old and low budget devices.
Co-Authored-By: joined72 <19651914+joined72@users.noreply.github.com>
2024-02-22 00:24:08 +01:00
Bastiaan Olij aa260e5f3d Implement glow/bloom on compatibility renderer 2024-02-19 13:29:43 +11:00
Anatoli Babenia e25cfffc7f Add --no-header option to clean output
* Do not print empty line when header is disabled
* Do not print Vulcan header
* Also add "Print header" project setting (default On)
  (suggested by @kaissouDev)
* Add docs for the project setting
  (with suggestions by @Mickeon and @akien-mga)

Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-15 14:10:11 +03:00
Dario 73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
Bastiaan Olij d6caa69e11 Skip swapchain logic if there is nothing to present (Android OpenXR) 2024-01-08 21:51:04 +11: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