diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gles3/rasterizer_gles3.cpp | 10 | ||||
| -rw-r--r-- | drivers/gles3/rasterizer_gles3.h | 2 | ||||
| -rw-r--r-- | drivers/gles3/rasterizer_storage_gles3.cpp | 8 | ||||
| -rw-r--r-- | drivers/gles3/shaders/scene.glsl | 5 |
4 files changed, 10 insertions, 15 deletions
diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp index ee61481a86..cd0adbd0d1 100644 --- a/drivers/gles3/rasterizer_gles3.cpp +++ b/drivers/gles3/rasterizer_gles3.cpp @@ -352,7 +352,7 @@ void RasterizerGLES3::blit_render_target_to_screen(RID p_render_target, const Re canvas->canvas_end(); } -void RasterizerGLES3::end_frame() { +void RasterizerGLES3::end_frame(bool p_swap_buffers) { #if 0 canvas->canvas_begin(); @@ -384,7 +384,10 @@ void RasterizerGLES3::end_frame() { canvas->draw_generic_textured_rect(Rect2(0,0,15,15),Rect2(0,0,1,1)); #endif - OS::get_singleton()->swap_buffers(); + if (p_swap_buffers) + OS::get_singleton()->swap_buffers(); + else + glFinish(); /* print_line("objects: "+itos(storage->info.render_object_count)); print_line("material chages: "+itos(storage->info.render_material_switch_count)); @@ -412,7 +415,8 @@ void RasterizerGLES3::make_current() { void RasterizerGLES3::register_config() { GLOBAL_DEF("rendering/quality/filters/use_nearest_mipmap_filter", false); - GLOBAL_DEF("rendering/quality/filters/anisotropic_filter_level", 4.0); + GLOBAL_DEF("rendering/quality/filters/anisotropic_filter_level", 4); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/filters/anisotropic_filter_level", PropertyInfo(Variant::INT, "rendering/quality/filters/anisotropic_filter_level", PROPERTY_HINT_RANGE, "1,16,1")); GLOBAL_DEF("rendering/limits/time/time_rollover_secs", 3600); } diff --git a/drivers/gles3/rasterizer_gles3.h b/drivers/gles3/rasterizer_gles3.h index 4bfec09bf3..c27af7d019 100644 --- a/drivers/gles3/rasterizer_gles3.h +++ b/drivers/gles3/rasterizer_gles3.h @@ -59,7 +59,7 @@ public: virtual void restore_render_target(); virtual void clear_render_target(const Color &p_color); virtual void blit_render_target_to_screen(RID p_render_target, const Rect2 &p_screen_rect, int p_screen = 0); - virtual void end_frame(); + virtual void end_frame(bool p_swap_buffers); virtual void finalize(); static void make_current(); diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp index 89d3d7ff75..fc9150ecdc 100644 --- a/drivers/gles3/rasterizer_storage_gles3.cpp +++ b/drivers/gles3/rasterizer_storage_gles3.cpp @@ -5694,13 +5694,9 @@ void RasterizerStorageGLES3::update_particles() { else frame_time = 1.0 / 30.0; - float delta = particles->pre_process_time; - if (delta > 0.1) { //avoid recursive stalls if fps goes below 10 - delta = 0.1; - } - float todo = delta; + float todo = particles->pre_process_time; - while (todo >= frame_time) { + while (todo >= 0) { _particles_process(particles, frame_time); todo -= frame_time; } diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index b7f205d8bb..b2b10fdb11 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -458,12 +458,7 @@ VERTEX_SHADER_CODE #endif //RENDER_DEPTH - -#if !defined(SKIP_TRANSFORM_USED) && !defined(RENDER_DEPTH_DUAL_PARABOLOID) gl_Position = projection_matrix * vec4(vertex_interp,1.0); -#else - gl_Position = vertex; -#endif position_interp=gl_Position; |
