yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::gui::canvas::CanvasPerformanceIntegration Class Reference

Canvas performance integration with dashboard. More...

#include <canvas_performance_integration.h>

Collaboration diagram for yaze::gui::canvas::CanvasPerformanceIntegration:

Public Member Functions

 CanvasPerformanceIntegration ()=default
 
void Initialize (const std::string &canvas_id)
 Initialize performance integration.
 
void StartMonitoring ()
 Start performance monitoring.
 
void StopMonitoring ()
 Stop performance monitoring.
 
void UpdateMetrics ()
 Update performance metrics.
 
void RecordOperation (const std::string &operation_name, double time_ms, CanvasUsage usage_mode=CanvasUsage::kUnknown)
 Record canvas operation.
 
void RecordMemoryUsage (size_t texture_memory, size_t bitmap_memory, size_t palette_memory)
 Record memory usage.
 
void RecordCachePerformance (int hits, int misses)
 Record cache performance.
 
const CanvasPerformanceMetricsGetCurrentMetrics () const
 Get current performance metrics.
 
const std::vector< CanvasPerformanceMetrics > & GetPerformanceHistory () const
 Get performance history.
 
std::string GetPerformanceSummary () const
 Get performance summary.
 
std::vector< std::string > GetPerformanceRecommendations () const
 Get performance recommendations.
 
std::string ExportPerformanceReport () const
 Export performance report.
 
void RenderPerformanceUI ()
 Render performance UI.
 
void SetUsageTracker (std::shared_ptr< CanvasUsageTracker > tracker)
 Set usage tracker integration.
 
void SetMonitoringEnabled (bool enabled)
 Enable/disable performance monitoring.
 
bool IsMonitoringEnabled () const
 

Private Member Functions

void UpdateFrameTime ()
 
void UpdateDrawTime ()
 
void UpdateInteractionTime ()
 
void UpdateModalTime ()
 
void CalculateCacheHitRatio ()
 
void SaveCurrentMetrics ()
 
void AnalyzePerformance ()
 
void RenderPerformanceOverview ()
 
void RenderDetailedMetrics ()
 
void RenderMemoryUsage ()
 
void RenderOperationCounts ()
 
void RenderCachePerformance ()
 
void RenderRecommendations ()
 
void RenderPerformanceGraph ()
 
std::string FormatTime (double time_ms) const
 
std::string FormatMemory (size_t bytes) const
 
ImVec4 GetPerformanceColor (double value, double threshold_good, double threshold_warning) const
 

Private Attributes

std::string canvas_id_
 
bool monitoring_enabled_ = true
 
CanvasPerformanceMetrics current_metrics_
 
std::vector< CanvasPerformanceMetricsperformance_history_
 
std::unique_ptr< gfx::ScopedTimerframe_timer_
 
std::unique_ptr< gfx::ScopedTimerdraw_timer_
 
std::unique_ptr< gfx::ScopedTimerinteraction_timer_
 
std::unique_ptr< gfx::ScopedTimermodal_timer_
 
bool frame_timer_active_ = false
 
bool draw_timer_active_ = false
 
bool interaction_timer_active_ = false
 
bool modal_timer_active_ = false
 
std::shared_ptr< CanvasUsageTrackerusage_tracker_
 
gfx::PerformanceDashboarddashboard_ = nullptr
 
bool show_performance_ui_ = false
 
bool show_detailed_metrics_ = false
 
bool show_recommendations_ = false
 

Detailed Description

Canvas performance integration with dashboard.

Definition at line 77 of file canvas_performance_integration.h.

Constructor & Destructor Documentation

◆ CanvasPerformanceIntegration()

yaze::gui::canvas::CanvasPerformanceIntegration::CanvasPerformanceIntegration ( )
default

Member Function Documentation

◆ Initialize()

void yaze::gui::canvas::CanvasPerformanceIntegration::Initialize ( const std::string &  canvas_id)

Initialize performance integration.

Definition at line 17 of file canvas_performance_integration.cc.

References canvas_id_, current_metrics_, dashboard_, yaze::gfx::PerformanceDashboard::Get(), LOG_DEBUG, monitoring_enabled_, and yaze::gui::canvas::CanvasPerformanceMetrics::Reset().

Here is the call graph for this function:

◆ StartMonitoring()

void yaze::gui::canvas::CanvasPerformanceIntegration::StartMonitoring ( )

Start performance monitoring.

Definition at line 30 of file canvas_performance_integration.cc.

References canvas_id_, frame_timer_, frame_timer_active_, LOG_DEBUG, and monitoring_enabled_.

◆ StopMonitoring()

void yaze::gui::canvas::CanvasPerformanceIntegration::StopMonitoring ( )

◆ UpdateMetrics()

void yaze::gui::canvas::CanvasPerformanceIntegration::UpdateMetrics ( )

◆ RecordOperation()

◆ RecordMemoryUsage()

void yaze::gui::canvas::CanvasPerformanceIntegration::RecordMemoryUsage ( size_t  texture_memory,
size_t  bitmap_memory,
size_t  palette_memory 
)

◆ RecordCachePerformance()

void yaze::gui::canvas::CanvasPerformanceIntegration::RecordCachePerformance ( int  hits,
int  misses 
)

◆ GetCurrentMetrics()

const CanvasPerformanceMetrics & yaze::gui::canvas::CanvasPerformanceIntegration::GetCurrentMetrics ( ) const
inline

Get current performance metrics.

Definition at line 123 of file canvas_performance_integration.h.

References current_metrics_.

◆ GetPerformanceHistory()

const std::vector< CanvasPerformanceMetrics > & yaze::gui::canvas::CanvasPerformanceIntegration::GetPerformanceHistory ( ) const
inline

Get performance history.

Definition at line 128 of file canvas_performance_integration.h.

References performance_history_.

◆ GetPerformanceSummary()

std::string yaze::gui::canvas::CanvasPerformanceIntegration::GetPerformanceSummary ( ) const

◆ GetPerformanceRecommendations()

◆ ExportPerformanceReport()

std::string yaze::gui::canvas::CanvasPerformanceIntegration::ExportPerformanceReport ( ) const

Export performance report.

Definition at line 219 of file canvas_performance_integration.cc.

References canvas_id_, FormatMemory(), FormatTime(), GetPerformanceRecommendations(), GetPerformanceSummary(), monitoring_enabled_, and performance_history_.

Referenced by RenderPerformanceUI().

Here is the call graph for this function:

◆ RenderPerformanceUI()

void yaze::gui::canvas::CanvasPerformanceIntegration::RenderPerformanceUI ( )

◆ SetUsageTracker()

void yaze::gui::canvas::CanvasPerformanceIntegration::SetUsageTracker ( std::shared_ptr< CanvasUsageTracker tracker)

Set usage tracker integration.

Definition at line 294 of file canvas_performance_integration.cc.

References usage_tracker_.

◆ SetMonitoringEnabled()

void yaze::gui::canvas::CanvasPerformanceIntegration::SetMonitoringEnabled ( bool  enabled)
inline

Enable/disable performance monitoring.

Definition at line 160 of file canvas_performance_integration.h.

References monitoring_enabled_.

◆ IsMonitoringEnabled()

bool yaze::gui::canvas::CanvasPerformanceIntegration::IsMonitoringEnabled ( ) const
inline

Definition at line 161 of file canvas_performance_integration.h.

References monitoring_enabled_.

◆ UpdateFrameTime()

void yaze::gui::canvas::CanvasPerformanceIntegration::UpdateFrameTime ( )
private

◆ UpdateDrawTime()

void yaze::gui::canvas::CanvasPerformanceIntegration::UpdateDrawTime ( )
private

◆ UpdateInteractionTime()

void yaze::gui::canvas::CanvasPerformanceIntegration::UpdateInteractionTime ( )
private

◆ UpdateModalTime()

void yaze::gui::canvas::CanvasPerformanceIntegration::UpdateModalTime ( )
private

◆ CalculateCacheHitRatio()

◆ SaveCurrentMetrics()

void yaze::gui::canvas::CanvasPerformanceIntegration::SaveCurrentMetrics ( )
private

Definition at line 335 of file canvas_performance_integration.cc.

References current_metrics_, and performance_history_.

Referenced by UpdateMetrics().

◆ AnalyzePerformance()

void yaze::gui::canvas::CanvasPerformanceIntegration::AnalyzePerformance ( )
private

Definition at line 344 of file canvas_performance_integration.cc.

References canvas_id_, LOG_DEBUG, and performance_history_.

◆ RenderPerformanceOverview()

◆ RenderDetailedMetrics()

void yaze::gui::canvas::CanvasPerformanceIntegration::RenderDetailedMetrics ( )
private

Definition at line 400 of file canvas_performance_integration.cc.

References RenderCachePerformance(), RenderMemoryUsage(), and RenderOperationCounts().

Referenced by RenderPerformanceUI().

Here is the call graph for this function:

◆ RenderMemoryUsage()

void yaze::gui::canvas::CanvasPerformanceIntegration::RenderMemoryUsage ( )
private

◆ RenderOperationCounts()

◆ RenderCachePerformance()

◆ RenderRecommendations()

void yaze::gui::canvas::CanvasPerformanceIntegration::RenderRecommendations ( )
private

Definition at line 455 of file canvas_performance_integration.cc.

References GetPerformanceRecommendations().

Referenced by RenderPerformanceUI().

Here is the call graph for this function:

◆ RenderPerformanceGraph()

void yaze::gui::canvas::CanvasPerformanceIntegration::RenderPerformanceGraph ( )
private

◆ FormatTime()

std::string yaze::gui::canvas::CanvasPerformanceIntegration::FormatTime ( double  time_ms) const
private

◆ FormatMemory()

std::string yaze::gui::canvas::CanvasPerformanceIntegration::FormatMemory ( size_t  bytes) const
private

◆ GetPerformanceColor()

ImVec4 yaze::gui::canvas::CanvasPerformanceIntegration::GetPerformanceColor ( double  value,
double  threshold_good,
double  threshold_warning 
) const
private

Definition at line 516 of file canvas_performance_integration.cc.

Referenced by RenderPerformanceOverview().

Member Data Documentation

◆ canvas_id_

std::string yaze::gui::canvas::CanvasPerformanceIntegration::canvas_id_
private

◆ monitoring_enabled_

bool yaze::gui::canvas::CanvasPerformanceIntegration::monitoring_enabled_ = true
private

◆ current_metrics_

◆ performance_history_

std::vector<CanvasPerformanceMetrics> yaze::gui::canvas::CanvasPerformanceIntegration::performance_history_
private

◆ frame_timer_

std::unique_ptr<gfx::ScopedTimer> yaze::gui::canvas::CanvasPerformanceIntegration::frame_timer_
private

◆ draw_timer_

std::unique_ptr<gfx::ScopedTimer> yaze::gui::canvas::CanvasPerformanceIntegration::draw_timer_
private

Definition at line 171 of file canvas_performance_integration.h.

Referenced by StopMonitoring(), and UpdateDrawTime().

◆ interaction_timer_

std::unique_ptr<gfx::ScopedTimer> yaze::gui::canvas::CanvasPerformanceIntegration::interaction_timer_
private

Definition at line 172 of file canvas_performance_integration.h.

Referenced by StopMonitoring(), and UpdateInteractionTime().

◆ modal_timer_

std::unique_ptr<gfx::ScopedTimer> yaze::gui::canvas::CanvasPerformanceIntegration::modal_timer_
private

Definition at line 173 of file canvas_performance_integration.h.

Referenced by StopMonitoring(), and UpdateModalTime().

◆ frame_timer_active_

bool yaze::gui::canvas::CanvasPerformanceIntegration::frame_timer_active_ = false
private

Definition at line 174 of file canvas_performance_integration.h.

Referenced by StartMonitoring(), and StopMonitoring().

◆ draw_timer_active_

bool yaze::gui::canvas::CanvasPerformanceIntegration::draw_timer_active_ = false
private

Definition at line 175 of file canvas_performance_integration.h.

Referenced by StopMonitoring().

◆ interaction_timer_active_

bool yaze::gui::canvas::CanvasPerformanceIntegration::interaction_timer_active_ = false
private

Definition at line 176 of file canvas_performance_integration.h.

Referenced by StopMonitoring().

◆ modal_timer_active_

bool yaze::gui::canvas::CanvasPerformanceIntegration::modal_timer_active_ = false
private

Definition at line 177 of file canvas_performance_integration.h.

Referenced by StopMonitoring().

◆ usage_tracker_

std::shared_ptr<CanvasUsageTracker> yaze::gui::canvas::CanvasPerformanceIntegration::usage_tracker_
private

Definition at line 180 of file canvas_performance_integration.h.

Referenced by RecordOperation(), and SetUsageTracker().

◆ dashboard_

gfx::PerformanceDashboard* yaze::gui::canvas::CanvasPerformanceIntegration::dashboard_ = nullptr
private

Definition at line 183 of file canvas_performance_integration.h.

Referenced by Initialize().

◆ show_performance_ui_

bool yaze::gui::canvas::CanvasPerformanceIntegration::show_performance_ui_ = false
private

Definition at line 186 of file canvas_performance_integration.h.

Referenced by RenderPerformanceUI().

◆ show_detailed_metrics_

bool yaze::gui::canvas::CanvasPerformanceIntegration::show_detailed_metrics_ = false
private

Definition at line 187 of file canvas_performance_integration.h.

Referenced by RenderPerformanceUI().

◆ show_recommendations_

bool yaze::gui::canvas::CanvasPerformanceIntegration::show_recommendations_ = false
private

Definition at line 188 of file canvas_performance_integration.h.

Referenced by RenderPerformanceUI().


The documentation for this class was generated from the following files: