mirror of
https://github.com/pound-emu/pound.git
synced 2025-12-12 01:36:57 +00:00
- Create modular GUI architecture with base Panel class - Implement GUIManager to handle window lifecycle and panel management - Add Window wrapper class for SDL3/OpenGL context management - Create specialized panels: - ConsolePanel: Colored log output with timestamps - CPUPanel: CPU debugging with tabs for registers, memory, and disassembly - PerformancePanel: Real-time FPS and frame time monitoring - Apply modern dark theme with purple accents - Add comprehensive menu bar (File, Emulation, View, Tools, Help) - Update CMakeLists.txt to include new gui/ directory structure - Refactor main.cpp to use the new GUI system - Cutom theme on switch colors
32 lines
No EOL
784 B
C++
32 lines
No EOL
784 B
C++
// Copyright 2025 Pound Emulator Project. All rights reserved.
|
|
#pragma once
|
|
|
|
#include "../Panel.h"
|
|
#include <functional>
|
|
|
|
namespace Pound::GUI
|
|
{
|
|
|
|
class CPUPanel : public Panel
|
|
{
|
|
public:
|
|
CPUPanel();
|
|
|
|
void Render() override;
|
|
void SetCPUTestCallback(std::function<void()> callback) { cpu_test_callback = callback; }
|
|
void ShowTestResult(bool show = true) { show_test_result = show; }
|
|
|
|
private:
|
|
std::function<void()> cpu_test_callback;
|
|
bool show_test_result = false;
|
|
|
|
// CPU state display (placeholder for future integration)
|
|
struct CPUState
|
|
{
|
|
uint64_t registers[32] = {0};
|
|
uint64_t pc = 0;
|
|
uint32_t flags = 0;
|
|
} cpu_state;
|
|
};
|
|
|
|
} // namespace Pound::GUI
|