summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gles2/rasterizer_scene_gles2.cpp26
-rw-r--r--drivers/gles2/shaders/scene.glsl4
-rw-r--r--drivers/unix/dir_access_unix.cpp24
3 files changed, 25 insertions, 29 deletions
diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp
index aea89ddaa1..23b01b4e09 100644
--- a/drivers/gles2/rasterizer_scene_gles2.cpp
+++ b/drivers/gles2/rasterizer_scene_gles2.cpp
@@ -2287,19 +2287,6 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements,
prev_unshaded = unshaded;
}
- bool depth_prepass = false;
-
- if (!p_alpha_pass && material->shader->spatial.depth_draw_mode == RasterizerStorageGLES2::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS) {
- depth_prepass = true;
- }
-
- if (depth_prepass != prev_depth_prepass) {
-
- state.scene_shader.set_conditional(SceneShaderGLES2::USE_DEPTH_PREPASS, depth_prepass);
- prev_depth_prepass = depth_prepass;
- rebind = true;
- }
-
bool base_pass = !accum_pass && !unshaded; //conditions for a base pass
if (base_pass != prev_base_pass) {
@@ -2434,6 +2421,19 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements,
}
}
+ bool depth_prepass = false;
+
+ if (!p_alpha_pass && material->shader->spatial.depth_draw_mode == RasterizerStorageGLES2::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS) {
+ depth_prepass = true;
+ }
+
+ if (depth_prepass != prev_depth_prepass) {
+
+ state.scene_shader.set_conditional(SceneShaderGLES2::USE_DEPTH_PREPASS, depth_prepass);
+ prev_depth_prepass = depth_prepass;
+ rebind = true;
+ }
+
bool instancing = e->instance->base_type == VS::INSTANCE_MULTIMESH;
if (instancing != prev_instancing) {
diff --git a/drivers/gles2/shaders/scene.glsl b/drivers/gles2/shaders/scene.glsl
index ca222362e7..b7f8ec3ce9 100644
--- a/drivers/gles2/shaders/scene.glsl
+++ b/drivers/gles2/shaders/scene.glsl
@@ -1549,7 +1549,7 @@ FRAGMENT_SHADER_CODE
#endif // ALPHA_SCISSOR_USED
#ifdef USE_DEPTH_PREPASS
- if (alpha < 0.99) {
+ if (alpha < 0.1) {
discard;
}
#endif // USE_DEPTH_PREPASS
@@ -2112,7 +2112,7 @@ FRAGMENT_SHADER_CODE
#endif // ALPHA_SCISSOR_USED
#ifdef USE_DEPTH_PREPASS
- if (alpha < 0.99) {
+ if (alpha < 0.1) {
discard;
}
#endif // USE_DEPTH_PREPASS
diff --git a/drivers/unix/dir_access_unix.cpp b/drivers/unix/dir_access_unix.cpp
index d5582d00ed..251bab5783 100644
--- a/drivers/unix/dir_access_unix.cpp
+++ b/drivers/unix/dir_access_unix.cpp
@@ -136,31 +136,27 @@ String DirAccessUnix::get_next() {
return "";
}
- String fname = fix_unicode_name(entry->d_name);
-
- if (entry->d_type == DT_UNKNOWN) {
- //typedef struct stat Stat;
- struct stat flags;
-
- String f = current_dir.plus_file(fname);
+ //typedef struct stat Stat;
+ struct stat flags;
- if (stat(f.utf8().get_data(), &flags) == 0) {
+ String fname = fix_unicode_name(entry->d_name);
- if (S_ISDIR(flags.st_mode)) {
+ String f = current_dir.plus_file(fname);
- _cisdir = true;
+ if (stat(f.utf8().get_data(), &flags) == 0) {
- } else {
+ if (S_ISDIR(flags.st_mode)) {
- _cisdir = false;
- }
+ _cisdir = true;
} else {
_cisdir = false;
}
+
} else {
- _cisdir = (entry->d_type == DT_DIR);
+
+ _cisdir = false;
}
_cishidden = (fname != "." && fname != ".." && fname.begins_with("."));