yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
canvas_performance_integration.h
Go to the documentation of this file.
1#ifndef YAZE_APP_GUI_CANVAS_CANVAS_PERFORMANCE_INTEGRATION_H
2#define YAZE_APP_GUI_CANVAS_CANVAS_PERFORMANCE_INTEGRATION_H
3
4#include <string>
5#include <vector>
6#include <unordered_map>
7#include <memory>
8#include <functional>
12#include "imgui/imgui.h"
13
14namespace yaze {
15namespace gui {
16
21 // Timing metrics
22 double frame_time_ms = 0.0;
23 double draw_time_ms = 0.0;
24 double interaction_time_ms = 0.0;
25 double modal_time_ms = 0.0;
26
27 // Operation counts
28 int draw_calls = 0;
32
33 // Memory usage
35 size_t bitmap_memory_mb = 0;
37
38 // Cache performance
39 double cache_hit_ratio = 0.0;
40 int cache_hits = 0;
41 int cache_misses = 0;
42
43 // Canvas-specific metrics
49
71};
72
77 public:
79
83 void Initialize(const std::string& canvas_id);
84
88 void StartMonitoring();
89
93 void StopMonitoring();
94
98 void UpdateMetrics();
99
103 void RecordOperation(const std::string& operation_name,
104 double time_ms,
106
110 void RecordMemoryUsage(size_t texture_memory,
111 size_t bitmap_memory,
112 size_t palette_memory);
113
117 void RecordCachePerformance(int hits, int misses);
118
123
127 const std::vector<CanvasPerformanceMetrics>& GetPerformanceHistory() const {
128 return performance_history_;
129 }
130
134 std::string GetPerformanceSummary() const;
135
139 std::vector<std::string> GetPerformanceRecommendations() const;
140
144 std::string ExportPerformanceReport() const;
145
149 void RenderPerformanceUI();
150
154 void SetUsageTracker(std::shared_ptr<CanvasUsageTracker> tracker);
155
159 void SetMonitoringEnabled(bool enabled) { monitoring_enabled_ = enabled; }
161
162 private:
163 std::string canvas_id_;
166 std::vector<CanvasPerformanceMetrics> performance_history_;
167
168 // Performance profiler integration
169 std::unique_ptr<gfx::ScopedTimer> frame_timer_;
170 std::unique_ptr<gfx::ScopedTimer> draw_timer_;
171 std::unique_ptr<gfx::ScopedTimer> interaction_timer_;
172 std::unique_ptr<gfx::ScopedTimer> modal_timer_;
174 bool draw_timer_active_ = false;
177
178 // Usage tracker integration
179 std::shared_ptr<CanvasUsageTracker> usage_tracker_;
180
181 // Performance dashboard integration
183
184 // UI state
188
189 // Helper methods
190 void UpdateFrameTime();
191 void UpdateDrawTime();
193 void UpdateModalTime();
195 void SaveCurrentMetrics();
196 void AnalyzePerformance();
197
198 // UI rendering methods
201 void RenderMemoryUsage();
206
207 // Helper methods
208 std::string FormatTime(double time_ms) const;
209 std::string FormatMemory(size_t bytes) const;
210 ImVec4 GetPerformanceColor(double value, double threshold_good, double threshold_warning) const;
211};
212
217 public:
219
223 void RegisterIntegration(const std::string& canvas_id,
224 std::shared_ptr<CanvasPerformanceIntegration> integration);
225
229 std::shared_ptr<CanvasPerformanceIntegration> GetIntegration(const std::string& canvas_id);
230
234 const std::unordered_map<std::string, std::shared_ptr<CanvasPerformanceIntegration>>&
236
241
245 std::string GetGlobalPerformanceSummary() const;
246
250 std::string ExportGlobalPerformanceReport() const;
251
256
257 private:
260
261 std::unordered_map<std::string, std::shared_ptr<CanvasPerformanceIntegration>> integrations_;
262};
263
264} // namespace gui
265} // namespace yaze
266
267#endif // YAZE_APP_GUI_CANVAS_CANVAS_PERFORMANCE_INTEGRATION_H
Comprehensive performance monitoring dashboard for YAZE graphics system.
Canvas performance integration with dashboard.
const CanvasPerformanceMetrics & GetCurrentMetrics() const
Get current performance metrics.
void StartMonitoring()
Start performance monitoring.
const std::vector< CanvasPerformanceMetrics > & GetPerformanceHistory() const
Get performance history.
std::vector< std::string > GetPerformanceRecommendations() const
Get performance recommendations.
std::string ExportPerformanceReport() const
Export performance report.
std::vector< CanvasPerformanceMetrics > performance_history_
std::shared_ptr< CanvasUsageTracker > usage_tracker_
std::string GetPerformanceSummary() const
Get performance summary.
void SetMonitoringEnabled(bool enabled)
Enable/disable performance monitoring.
void SetUsageTracker(std::shared_ptr< CanvasUsageTracker > tracker)
Set usage tracker integration.
void RecordMemoryUsage(size_t texture_memory, size_t bitmap_memory, size_t palette_memory)
Record memory usage.
void RecordOperation(const std::string &operation_name, double time_ms, CanvasUsage usage_mode=CanvasUsage::kUnknown)
Record canvas operation.
void Initialize(const std::string &canvas_id)
Initialize performance integration.
ImVec4 GetPerformanceColor(double value, double threshold_good, double threshold_warning) const
void RecordCachePerformance(int hits, int misses)
Record cache performance.
std::unique_ptr< gfx::ScopedTimer > interaction_timer_
std::string GetGlobalPerformanceSummary() const
Get global performance summary.
std::unordered_map< std::string, std::shared_ptr< CanvasPerformanceIntegration > > integrations_
const std::unordered_map< std::string, std::shared_ptr< CanvasPerformanceIntegration > > & GetAllIntegrations() const
Get all integrations.
std::string ExportGlobalPerformanceReport() const
Export global performance report.
std::shared_ptr< CanvasPerformanceIntegration > GetIntegration(const std::string &canvas_id)
Get integration for canvas.
void RegisterIntegration(const std::string &canvas_id, std::shared_ptr< CanvasPerformanceIntegration > integration)
Register a canvas performance integration.
CanvasUsage
Canvas usage patterns and tracking.
Main namespace for the application.
Definition controller.cc:20