mirror of
https://github.com/MobileGL-Dev/MobileGlues.git
synced 2025-09-11 13:08:14 -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 {
|
enum class AngleDepthClearFixMode : int {
|
||||||
Disabled = 0,
|
Disabled = 0,
|
||||||
Mode1 = 1,
|
Mode1 = 1,
|
||||||
|
Mode2 = 2,
|
||||||
MaxValue
|
MaxValue
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -111,12 +111,17 @@ void glClear(GLbitfield mask) {
|
|||||||
LOG();
|
LOG();
|
||||||
LOG_D("glClear, mask = 0x%x", mask);
|
LOG_D("glClear, mask = 0x%x", mask);
|
||||||
|
|
||||||
if (global_settings.angle_depth_clear_fix_mode == AngleDepthClearFixMode::Mode1 &&
|
if (global_settings.angle == AngleMode::Enabled &&
|
||||||
global_settings.angle == AngleMode::Enabled &&
|
|
||||||
mask == GL_DEPTH_BUFFER_BIT &&
|
mask == GL_DEPTH_BUFFER_BIT &&
|
||||||
fabs(currentDepthValue - 1.0f) <= 0.001f) {
|
fabs(currentDepthValue - 1.0f) <= 0.001f) {
|
||||||
|
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.
|
// 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();
|
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
|
// Clear again
|
||||||
GLES.glClear(mask);
|
GLES.glClear(mask);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user