Minor - Optimisation stats - V11.5.0

This commit is contained in:
2025-06-23 22:39:58 +02:00
parent de16b97f8e
commit 688fe7ff1c
8 changed files with 124 additions and 127 deletions

View File

@@ -9,8 +9,6 @@
#include "camera_class.h"
#include "object.h"
#include "light_class.h"
#include <vector>
#include <filesystem>
#include "bitmap_class.h"
#include "sprite_class.h"
@@ -31,6 +29,8 @@
#include "physics.h"
#include "frustum.h"
#include "skybox.h"
#include "shadow_map.h"
#include "stats.h"
#include <fstream>
@@ -43,9 +43,8 @@
#include <DirectXMath.h>
#include <mutex>
#include <memory>
#include "shadow_map.h"
#include "stats.h"
#include <vector>
#include <filesystem>
/////////////
@@ -128,14 +127,20 @@ public:
void set_cel_shading(const bool enable) { enable_cel_shading_ = enable; };
void set_vsync(bool vsync);
void set_vsync(bool vsync) {
vsync_enabled_ = vsync;
if (direct_3d_) {
direct_3d_->set_vsync(vsync);
Logger::Get().Log("Setting Vsync to " + std::to_string(vsync), __FILE__, __LINE__);
}
};
bool get_vsync() const { return vsync_enabled_; };
HWND get_hwnd() const;
void set_hwnd(HWND hwnd);
HWND get_hwnd() const { return hwnd_; };
void set_hwnd(HWND hwnd) { hwnd_ = hwnd; };
bool is_windowed() const;
void set_windowed(bool windowed);
bool is_windowed() const { return windowed_; };
void set_windowed(bool windowed) { windowed_ = windowed; };
void set_window_size(const ImVec2 size) { window_size_ = size; };
ImVec2 get_window_size() const { return window_size_; };
@@ -151,6 +156,7 @@ public:
void set_frustum(const frustum& frustum) { frustum_culling_ = frustum; };
void construct_frustum();
int get_render_count() const { return render_count_; };
void set_render_count(const int render_count) { render_count_ = render_count; };
float get_frustum_tolerance() const { return frustum_culling_tolerance_; };
@@ -176,6 +182,8 @@ private:
bool render_pass(const std::vector<std::reference_wrapper<std::vector<object*>>>& RenderQueues, XMFLOAT4* diffuse, XMFLOAT4* position, XMFLOAT4* ambient, XMMATRIX view, XMMATRIX projection);
void update_skybox_position();
void culling_thread_function();
void update_stats_after_modification();
public :
std::vector<ID3D11ShaderResourceView*> textures;
@@ -186,9 +194,7 @@ private :
std::thread culling_thread_;
std::atomic<bool> culling_active_;
std::mutex objects_mutex_;
void culling_thread_function();
std::mutex terrain_mutex_;
std::vector<std::tuple<float, float, float, std::string, int>> terrain_generation_data_;
bool terrain_generation_ready_;
@@ -231,8 +237,9 @@ private :
object* selected_object_;
std::vector<object*> cubes_;
std::vector<object*> terrain_chunk_;
float speed_ = 0.1f; // speed for the demo spinning object
std::vector<object*> object_;
float speed_ = 0.1f; // speed for the demo spinning object
std::vector<object*> imported_object_;
int object_id_ = 0;
std::vector<std::reference_wrapper<std::vector<object*>>> render_queues_;

View File

@@ -106,9 +106,12 @@ private:
const std::deque<Logger::LogEntry>& logBuffer = Logger::Get().GetLogBuffer();
int current_fps_, min_fps_, max_fps_, draw_calls_, total_vertex_count_, total_triangle_count_, visible_triangle_count_;
int current_fps_, min_fps_, max_fps_, draw_calls_, visible_triangle_count_;
float current_frame_time_, min_frame_time_, max_frame_time_ ;
std::shared_ptr<int> total_vertex_count_;
std::shared_ptr<int> total_triangle_count_;
// gpu information
char card_name_[128];
int video_memory_ = 0;

View File

@@ -18,6 +18,7 @@ public:
bool initialize(application_class* app);
void update_geometric_stats();
void update_visible_count();
void update_display_stats();
int get_total_vertex_count() const;
@@ -36,6 +37,10 @@ public:
std::string get_cpu_name();
std::string get_gpu_driver_version(ID3D11Device* device);
std::shared_ptr<int>& get_vertex_count_ptr() { return total_vertex_count_; }
std::shared_ptr<int>& get_triangle_count_ptr() { return total_triangle_count_; }
private:
std::thread update_display_thread_;
@@ -47,8 +52,9 @@ private:
std::vector<object*> cubes_vec_;
std::vector<object*> terrain_chunk_vec_;
int total_vertex_count_;
int total_triangle_count_;
std::shared_ptr<int> total_vertex_count_;
std::shared_ptr<int> total_triangle_count_;
int visible_triangle_count_ = 0;
int current_fps_ = 0;
int min_fps_ = 0;