Files
CHIP-8/src/UI/RegisterView.cpp
2025-06-28 17:57:20 -04:00

58 lines
1.6 KiB
C++

#include "RegisterView.h"
#include "imgui.h"
#include "../Interpreter/MachineState.h"
RegisterView::RegisterView(
std::shared_ptr<Graphics> graphics,
std::shared_ptr<MachineState> machine_state,
std::shared_ptr<CallbackManager> callback_manager) :
graphics{std::move(graphics)},
machine_state{std::move(machine_state)},
callback_manager{std::move(callback_manager)}
{
}
void RegisterView::render()
{
if (ImGui::Begin("Chip8 - Registers"))
{
if (ImGui::BeginTable("Registers", 4, ImGuiTableFlags_Borders))
{
ImGui::TableNextRow();
ImGui::TableSetColumnIndex(0);
ImGui::Text("PC");
ImGui::Text("0x%04X", this->machine_state->pc);
ImGui::TableSetColumnIndex(1);
ImGui::Text("I");
ImGui::Text("0x%02X", this->machine_state->i);
ImGui::TableSetColumnIndex(2);
ImGui::Text("DT");
ImGui::Text("0x%04X", this->machine_state->dt);
ImGui::TableSetColumnIndex(3);
ImGui::Text("ST");
ImGui::Text("0x%04X", this->machine_state->st);
}
ImGui::EndTable();
if (ImGui::BeginTable("Registers", 8, ImGuiTableFlags_Borders))
{
for (int i = 0; i < 2; i++)
{
ImGui::TableNextRow();
for (int j = 0; j < 8; j++)
{
ImGui::TableSetColumnIndex(j);
ImGui::Text("V%i", i * 8 + j);
ImGui::Text("0x%02X", this->machine_state->v[i * 8 + j]);
}
}
}
ImGui::EndTable();
}
ImGui::End();
}