feat: Enhance Logging and Buffer Management in ROM and Editor Components

- Added critical logging for graphics buffer management in LoadAllGraphicsData to prevent data corruption during ROM loads.
- Updated logging levels from INFO to DEBUG across various components for consistency and to reduce log verbosity.
- Refactored texture creation and palette application logic to allow editors to manage their own rendering, improving flexibility and user experience.
- Improved background buffer handling to ensure fresh bitmap creation only when necessary, optimizing performance.
- Enhanced debugging output for canvas and performance tracking, aiding in better diagnostics during development.
This commit is contained in:
scawful
2025-10-07 11:56:53 -04:00
parent 167dc86819
commit 33f64f38a5
14 changed files with 132 additions and 119 deletions

View File

@@ -22,7 +22,7 @@ void CanvasPerformanceIntegration::Initialize(const std::string& canvas_id) {
// Initialize performance profiler integration
dashboard_ = &gfx::PerformanceDashboard::Get();
LOG_INFO("CanvasPerformance",
LOG_DEBUG("CanvasPerformance",
"Initialized performance integration for canvas: %s",
canvas_id_.c_str());
}
@@ -34,7 +34,7 @@ void CanvasPerformanceIntegration::StartMonitoring() {
frame_timer_active_ = true;
frame_timer_ = std::make_unique<gfx::ScopedTimer>("canvas_frame_" + canvas_id_);
LOG_INFO("CanvasPerformance", "Started performance monitoring for canvas: %s",
LOG_DEBUG("CanvasPerformance", "Started performance monitoring for canvas: %s",
canvas_id_.c_str());
}
@@ -57,7 +57,7 @@ void CanvasPerformanceIntegration::StopMonitoring() {
frame_timer_active_ = false;
}
LOG_INFO("CanvasPerformance", "Stopped performance monitoring for canvas: %s",
LOG_DEBUG("CanvasPerformance", "Stopped performance monitoring for canvas: %s",
canvas_id_.c_str());
}
@@ -363,12 +363,12 @@ void CanvasPerformanceIntegration::AnalyzePerformance() {
// Log trends
if (std::abs(frame_time_trend) > 1.0) {
LOG_INFO("CanvasPerformance", "Canvas %s: Frame time trend: %.2f ms/sample",
LOG_DEBUG("CanvasPerformance", "Canvas %s: Frame time trend: %.2f ms/sample",
canvas_id_.c_str(), frame_time_trend);
}
if (std::abs(memory_trend) > 1.0) {
LOG_INFO("CanvasPerformance", "Canvas %s: Memory trend: %.2f MB/sample",
LOG_DEBUG("CanvasPerformance", "Canvas %s: Memory trend: %.2f MB/sample",
canvas_id_.c_str(), memory_trend);
}
}
@@ -536,7 +536,7 @@ void CanvasPerformanceManager::RegisterIntegration(
const std::string& canvas_id,
std::shared_ptr<CanvasPerformanceIntegration> integration) {
integrations_[canvas_id] = integration;
LOG_INFO("CanvasPerformance",
LOG_DEBUG("CanvasPerformance",
"Registered performance integration for canvas: %s",
canvas_id.c_str());
}
@@ -604,7 +604,7 @@ void CanvasPerformanceManager::ClearAllIntegrations() {
integration->StopMonitoring();
}
integrations_.clear();
LOG_INFO("CanvasPerformance", "Cleared all canvas performance integrations");
LOG_DEBUG("CanvasPerformance", "Cleared all canvas performance integrations");
}
} // namespace canvas

View File

@@ -31,7 +31,7 @@ void CanvasUsageTracker::SetUsageMode(CanvasUsage usage) {
// Record mode change interaction
RecordInteraction(CanvasInteraction::kModeChange, GetUsageModeName(usage));
LOG_INFO("CanvasUsage", "Canvas %s: Usage mode changed to %s",
LOG_DEBUG("CanvasUsage", "Canvas %s: Usage mode changed to %s",
canvas_id_.c_str(), GetUsageModeName(usage).c_str());
}
}
@@ -267,7 +267,7 @@ void CanvasUsageTracker::EndSession() {
// Save final stats
SaveCurrentStats();
LOG_INFO("CanvasUsage", "Canvas %s: Session ended. Duration: %s, Operations: %d",
LOG_DEBUG("CanvasUsage", "Canvas %s: Session ended. Duration: %s, Operations: %d",
canvas_id_.c_str(),
FormatDuration(std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::steady_clock::now() - session_start_)).c_str(),
@@ -352,7 +352,7 @@ CanvasUsageManager& CanvasUsageManager::Get() {
void CanvasUsageManager::RegisterTracker(const std::string& canvas_id,
std::shared_ptr<CanvasUsageTracker> tracker) {
trackers_[canvas_id] = tracker;
LOG_INFO("CanvasUsage", "Registered usage tracker for canvas: %s", canvas_id.c_str());
LOG_DEBUG("CanvasUsage", "Registered usage tracker for canvas: %s", canvas_id.c_str());
}
std::shared_ptr<CanvasUsageTracker> CanvasUsageManager::GetTracker(const std::string& canvas_id) {
@@ -421,7 +421,7 @@ void CanvasUsageManager::ClearAllTrackers() {
tracker->ClearHistory();
}
trackers_.clear();
LOG_INFO("CanvasUsage", "Cleared all canvas usage trackers");
LOG_DEBUG("CanvasUsage", "Cleared all canvas usage trackers");
}
} // namespace canvas

View File

@@ -85,7 +85,7 @@ bool LoadROMPaletteGroups(Rom* rom, CanvasPaletteManager& palette_manager) {
}
palette_manager.palettes_loaded = true;
LOG_INFO("Canvas", "Loaded %zu ROM palette groups",
LOG_DEBUG("Canvas", "Loaded %zu ROM palette groups",
palette_manager.rom_palette_groups.size());
return true;
@@ -116,7 +116,7 @@ bool ApplyPaletteGroup(gfx::Bitmap* bitmap,
}
Renderer::Get().UpdateBitmap(bitmap);
LOG_INFO("Canvas", "Applied palette group %d, index %d to bitmap",
LOG_DEBUG("Canvas", "Applied palette group %d, index %d to bitmap",
group_index, palette_index);
return true;