mirror of
https://github.com/MobileGL-Dev/MobileGlues.git
synced 2025-09-09 03:56:53 -04:00
Merge remote-tracking branch 'origin/dev-es' into dev-es
This commit is contained in:
commit
1df90a5591
@ -53,6 +53,7 @@ extern "C" {
|
||||
enum class AngleDepthClearFixMode : int {
|
||||
Disabled = 0,
|
||||
Mode1 = 1,
|
||||
Mode2 = 2,
|
||||
MaxValue
|
||||
};
|
||||
|
||||
|
@ -111,12 +111,17 @@ void glClear(GLbitfield mask) {
|
||||
LOG();
|
||||
LOG_D("glClear, mask = 0x%x", mask);
|
||||
|
||||
if (global_settings.angle_depth_clear_fix_mode == AngleDepthClearFixMode::Mode1 &&
|
||||
global_settings.angle == AngleMode::Enabled &&
|
||||
if (global_settings.angle == AngleMode::Enabled &&
|
||||
mask == GL_DEPTH_BUFFER_BIT &&
|
||||
fabs(currentDepthValue - 1.0f) <= 0.001f) {
|
||||
// Workaround for ANGLE depth-clear bug: if depth≈1.0, draw a fullscreen triangle at z=1.0 to force actual depth buffer write.
|
||||
DrawDepthClearTri();
|
||||
if (global_settings.angle_depth_clear_fix_mode == AngleDepthClearFixMode::Mode1)
|
||||
// Workaround for ANGLE depth-clear bug: if depth≈1.0, draw a fullscreen triangle at z=1.0 to force actual depth buffer write.
|
||||
DrawDepthClearTri();
|
||||
else if (global_settings.angle_depth_clear_fix_mode == AngleDepthClearFixMode::Mode2) {
|
||||
// Or just explicitly clear depth buffer and see what's happened
|
||||
const GLfloat clear_depth_value = 1.0f;
|
||||
GLES.glClearBufferfv(GL_DEPTH, 0, &clear_depth_value);
|
||||
}
|
||||
// Clear again
|
||||
GLES.glClear(mask);
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user