Currently the GL thread is started / stopped when the activity is respectively resumed / paused. However, according to the `GLSurfaceView` documentation, this should be done instead when the activity is started / stopped, so this change updates the start / stop logic for the GL thread to match the documentation.
- m4gr3d
194452bf38
This fix works in both GLES3 and GLES2.
The rendering formula in the shader was adjusted to further improve the
sharpness/antialiasing quality balance.
- lawnjelly and Calinou
bc607fb607
Existing shadow caster culling using the BVH takes no account of the camera. This PR adds the highly encapsulated class VisualServerLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.
This is used to:
* More accurately defer dirty updates to shadows when the shadow volume does not intersect the camera frustum.
* Tighter cull shadow casters to the view frustum.
Lights dirty state is now automatically managed:
* Continuous (tighter caster culling)
* Static (all casters are rendered)
- lawnjelly
8ca631a466
This breaks the build with our updated i686 Linux SDK which doesn't contain
this path, and may not be needed at all.
(cherry picked from commit 63153c9d36768b1e5ab9c1562f400a2bd8c2f8cd)
It only introduced a difference in a .glsl file, which I've worked
around by removing an empty line. This keeps formatting consistent
between clang-format 15 and 16.
Also added a change in the 3-to-4 project converter to fix bogus
formatting in clang-format < 17.
(cherry picked from commit 49f4860ce3e4122e17c869229701f7d86aa6956c)
Quick fix for #82585.
A better fix requires refactoring the way we detect the compiler version
to make it more reliable, and get a consistent output. But I prefer to
keep changes minimal for 3.x branches at this point.
Also set CI version to 3.1.39, which is what we use for official 3.6 builds
since 3.6-beta4.
Logging is now allowed in any TOOLS build (rather than just in the editor), but still prevented in final exports.
Logging can be switched off via project settings.
Autoplacement is now logged.
* Re-introduces a property for portals to decide whether they are included in room bounds during room conversion.
* Adds a special case for portals that extend into the start room, which may be caused by level design inaccuracies.