From b75528f296b8c9b925ed825f060e519bc7bf90e1 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Mon, 8 Jan 2024 01:16:38 +0300 Subject: [PATCH] FrameRateControl --- src/DivaGL/DivaGL.vcxproj | 2 ++ src/DivaGL/auth_3d.cpp | 3 ++- src/DivaGL/effect.cpp | 3 ++- src/DivaGL/frame_rate_control.cpp | 23 +++++++++++++++++++++++ src/DivaGL/frame_rate_control.hpp | 21 +++++++++++++++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 src/DivaGL/frame_rate_control.cpp create mode 100644 src/DivaGL/frame_rate_control.hpp diff --git a/src/DivaGL/DivaGL.vcxproj b/src/DivaGL/DivaGL.vcxproj index d39fdc2..8ab5d03 100644 --- a/src/DivaGL/DivaGL.vcxproj +++ b/src/DivaGL/DivaGL.vcxproj @@ -251,6 +251,7 @@ del "$(SolutionDir)bin\$(TargetName).lib" + @@ -295,6 +296,7 @@ del "$(SolutionDir)bin\$(TargetName).lib" + diff --git a/src/DivaGL/auth_3d.cpp b/src/DivaGL/auth_3d.cpp index 0cb4da6..39e145a 100644 --- a/src/DivaGL/auth_3d.cpp +++ b/src/DivaGL/auth_3d.cpp @@ -8,6 +8,7 @@ #include "mdl/disp_manager.hpp" #include "rob/rob.hpp" #include "object.hpp" +#include "frame_rate_control.hpp" #include "render_context.hpp" #include "sprite.hpp" #include "texture.hpp" @@ -450,7 +451,7 @@ struct auth_3d { chara_index dst_chara; int32_t pos; int64_t field_A8; - void* frame_rate; // FrameRateControl + FrameRateControl* frame_rate; float_t frame; float_t req_frame; float_t max_frame; diff --git a/src/DivaGL/effect.cpp b/src/DivaGL/effect.cpp index 33d2628..3bc5380 100644 --- a/src/DivaGL/effect.cpp +++ b/src/DivaGL/effect.cpp @@ -9,6 +9,7 @@ #include "../KKdLib/hash.hpp" #include "auth_3d.hpp" #include "file_handler.hpp" +#include "frame_rate_control.hpp" #include "gl_state.hpp" #include "gl_element_array_buffer.hpp" #include "render_context.hpp" @@ -79,7 +80,7 @@ struct EffectFogRing { bool display; int32_t current_stage_index; prj::vector stage_indices; - void* frame_rate_control; // FrameRateControl + FrameRateControl* frame_rate_control; void draw(); }; diff --git a/src/DivaGL/frame_rate_control.cpp b/src/DivaGL/frame_rate_control.cpp new file mode 100644 index 0000000..2f058b3 --- /dev/null +++ b/src/DivaGL/frame_rate_control.cpp @@ -0,0 +1,23 @@ +/* + by korenkonder + GitHub/GitLab: korenkonder +*/ + +#include "frame_rate_control.hpp" +#include "types.hpp" + +FrameRateControl::FrameRateControl() { + frame_speed = 1.0f; +} + +FrameRateControl::~FrameRateControl() { + +} + +void FrameRateControl::set_frame_speed(float_t value) { + frame_speed = value; +} + +FrameRateControl* get_sys_frame_rate() { + return (FrameRateControl*)0x0000000140C9A6B0; +} diff --git a/src/DivaGL/frame_rate_control.hpp b/src/DivaGL/frame_rate_control.hpp new file mode 100644 index 0000000..fd74155 --- /dev/null +++ b/src/DivaGL/frame_rate_control.hpp @@ -0,0 +1,21 @@ +/* + by korenkonder + GitHub/GitLab: korenkonder +*/ + +#pragma once + +#include "../KKdLib/default.hpp" + +class FrameRateControl { +public: + float_t frame_speed; + + FrameRateControl(); + virtual ~FrameRateControl(); + + virtual float_t get_delta_frame() = 0; + virtual void set_frame_speed(float_t value); +}; + +extern FrameRateControl* get_sys_frame_rate();