|
@@ -192,22 +192,15 @@ void RasterizerGLES3::initialize() {
|
|
|
scene->initialize();
|
|
|
}
|
|
|
|
|
|
-void RasterizerGLES3::begin_frame() {
|
|
|
+void RasterizerGLES3::begin_frame(double frame_step) {
|
|
|
|
|
|
- uint64_t tick = OS::get_singleton()->get_ticks_usec();
|
|
|
+ time_total += frame_step;
|
|
|
|
|
|
- double delta = double(tick - prev_ticks) / 1000000.0;
|
|
|
- delta *= Engine::get_singleton()->get_time_scale();
|
|
|
-
|
|
|
- time_total += delta;
|
|
|
-
|
|
|
- if (delta == 0) {
|
|
|
+ if (frame_step == 0) {
|
|
|
//to avoid hiccups
|
|
|
- delta = 0.001;
|
|
|
+ frame_step = 0.001;
|
|
|
}
|
|
|
|
|
|
- prev_ticks = tick;
|
|
|
-
|
|
|
double time_roll_over = GLOBAL_GET("rendering/limits/time/time_rollover_secs");
|
|
|
if (time_total > time_roll_over)
|
|
|
time_total = 0; //roll over every day (should be customz
|
|
@@ -217,9 +210,7 @@ void RasterizerGLES3::begin_frame() {
|
|
|
storage->frame.time[2] = Math::fmod(time_total, 900);
|
|
|
storage->frame.time[3] = Math::fmod(time_total, 60);
|
|
|
storage->frame.count++;
|
|
|
- storage->frame.delta = delta;
|
|
|
-
|
|
|
- storage->frame.prev_tick = tick;
|
|
|
+ storage->frame.delta = frame_step;
|
|
|
|
|
|
storage->update_dirty_resources();
|
|
|
|
|
@@ -281,7 +272,7 @@ void RasterizerGLES3::set_boot_image(const Ref<Image> &p_image, const Color &p_c
|
|
|
if (p_image.is_null() || p_image->empty())
|
|
|
return;
|
|
|
|
|
|
- begin_frame();
|
|
|
+ begin_frame(0.0);
|
|
|
|
|
|
int window_w = OS::get_singleton()->get_video_mode(0).width;
|
|
|
int window_h = OS::get_singleton()->get_video_mode(0).height;
|
|
@@ -451,7 +442,6 @@ RasterizerGLES3::RasterizerGLES3() {
|
|
|
scene->storage = storage;
|
|
|
storage->scene = scene;
|
|
|
|
|
|
- prev_ticks = 0;
|
|
|
time_total = 0;
|
|
|
}
|
|
|
|