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 {
16namespace canvas {
17
22 // Timing metrics
23 double frame_time_ms = 0.0;
24 double draw_time_ms = 0.0;
25 double interaction_time_ms = 0.0;
26 double modal_time_ms = 0.0;
27
28 // Operation counts
29 int draw_calls = 0;
33
34 // Memory usage
36 size_t bitmap_memory_mb = 0;
38
39 // Cache performance
40 double cache_hit_ratio = 0.0;
41 int cache_hits = 0;
42 int cache_misses = 0;
43
44 // Canvas-specific metrics
50
72};
73
78 public:
80
84 void Initialize(const std::string& canvas_id);
85
89 void StartMonitoring();
90
94 void StopMonitoring();
95
99 void UpdateMetrics();
100
104 void RecordOperation(const std::string& operation_name,
105 double time_ms,
107
111 void RecordMemoryUsage(size_t texture_memory,
112 size_t bitmap_memory,
113 size_t palette_memory);
114
118 void RecordCachePerformance(int hits, int misses);
119
124
128 const std::vector<CanvasPerformanceMetrics>& GetPerformanceHistory() const {
129 return performance_history_;
130 }
131
135 std::string GetPerformanceSummary() const;
136
140 std::vector<std::string> GetPerformanceRecommendations() const;
141
145 std::string ExportPerformanceReport() const;
146
150 void RenderPerformanceUI();
151
155 void SetUsageTracker(std::shared_ptr<CanvasUsageTracker> tracker);
156
160 void SetMonitoringEnabled(bool enabled) { monitoring_enabled_ = enabled; }
162
163 private:
164 std::string canvas_id_;
167 std::vector<CanvasPerformanceMetrics> performance_history_;
168
169 // Performance profiler integration
170 std::unique_ptr<gfx::ScopedTimer> frame_timer_;
171 std::unique_ptr<gfx::ScopedTimer> draw_timer_;
172 std::unique_ptr<gfx::ScopedTimer> interaction_timer_;
173 std::unique_ptr<gfx::ScopedTimer> modal_timer_;
175 bool draw_timer_active_ = false;
178
179 // Usage tracker integration
180 std::shared_ptr<CanvasUsageTracker> usage_tracker_;
181
182 // Performance dashboard integration
184
185 // UI state
189
190 // Helper methods
191 void UpdateFrameTime();
192 void UpdateDrawTime();
194 void UpdateModalTime();
196 void SaveCurrentMetrics();
197 void AnalyzePerformance();
198
199 // UI rendering methods
202 void RenderMemoryUsage();
207
208 // Helper methods
209 std::string FormatTime(double time_ms) const;
210 std::string FormatMemory(size_t bytes) const;
211 ImVec4 GetPerformanceColor(double value, double threshold_good, double threshold_warning) const;
212};
213
218 public:
220
224 void RegisterIntegration(const std::string& canvas_id,
225 std::shared_ptr<CanvasPerformanceIntegration> integration);
226
230 std::shared_ptr<CanvasPerformanceIntegration> GetIntegration(const std::string& canvas_id);
231
235 const std::unordered_map<std::string, std::shared_ptr<CanvasPerformanceIntegration>>&
237
242
246 std::string GetGlobalPerformanceSummary() const;
247
251 std::string ExportGlobalPerformanceReport() const;
252
257
258 private:
261
262 std::unordered_map<std::string, std::shared_ptr<CanvasPerformanceIntegration>> integrations_;
263};
264
265} // namespace canvas
266} // namespace gui
267} // namespace yaze
268
269#endif // YAZE_APP_GUI_CANVAS_CANVAS_PERFORMANCE_INTEGRATION_H
Comprehensive performance monitoring dashboard for YAZE graphics system.
Canvas performance integration with dashboard.
std::string ExportPerformanceReport() const
Export performance report.
void RecordOperation(const std::string &operation_name, double time_ms, CanvasUsage usage_mode=CanvasUsage::kUnknown)
Record canvas operation.
std::vector< std::string > GetPerformanceRecommendations() const
Get performance recommendations.
void Initialize(const std::string &canvas_id)
Initialize performance integration.
void RecordCachePerformance(int hits, int misses)
Record cache performance.
void SetUsageTracker(std::shared_ptr< CanvasUsageTracker > tracker)
Set usage tracker integration.
std::vector< CanvasPerformanceMetrics > performance_history_
const CanvasPerformanceMetrics & GetCurrentMetrics() const
Get current performance metrics.
std::string GetPerformanceSummary() const
Get performance summary.
const std::vector< CanvasPerformanceMetrics > & GetPerformanceHistory() const
Get performance history.
void RecordMemoryUsage(size_t texture_memory, size_t bitmap_memory, size_t palette_memory)
Record memory usage.
void SetMonitoringEnabled(bool enabled)
Enable/disable performance monitoring.
ImVec4 GetPerformanceColor(double value, double threshold_good, double threshold_warning) const
std::shared_ptr< CanvasPerformanceIntegration > GetIntegration(const std::string &canvas_id)
Get integration for canvas.
std::string ExportGlobalPerformanceReport() const
Export global performance report.
std::string GetGlobalPerformanceSummary() const
Get global performance summary.
std::unordered_map< std::string, std::shared_ptr< CanvasPerformanceIntegration > > integrations_
void RegisterIntegration(const std::string &canvas_id, std::shared_ptr< CanvasPerformanceIntegration > integration)
Register a canvas performance integration.
const std::unordered_map< std::string, std::shared_ptr< CanvasPerformanceIntegration > > & GetAllIntegrations() const
Get all integrations.
CanvasUsage
Canvas usage patterns and tracking.
Main namespace for the application.