feat: add C++ support with ImGui/ImPlot framework and vendor submodules

Añade soporte C++ al registry: vendor submodules (glfw, imgui, implot, tracy),
sistema de build con CMake y toolchains cross-platform, runner C++ en fn CLI,
parser de tests Google Test, y funciones bash para build Linux/Windows.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 23:46:36 +02:00
parent 0c759c1b66
commit 4b2bb6998a
36 changed files with 1065 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
#include "core/fps_overlay.h"
#include "imgui.h"
#ifdef TRACY_ENABLE
#include "tracy/Tracy.hpp"
#endif
void fps_overlay() {
#ifdef TRACY_ENABLE
ZoneScoped;
#endif
ImGuiIO& io = ImGui::GetIO();
ImGuiWindowFlags flags = ImGuiWindowFlags_NoDecoration
| ImGuiWindowFlags_AlwaysAutoResize
| ImGuiWindowFlags_NoSavedSettings
| ImGuiWindowFlags_NoFocusOnAppearing
| ImGuiWindowFlags_NoNav
| ImGuiWindowFlags_NoMove;
const float pad = 10.0f;
const ImGuiViewport* viewport = ImGui::GetMainViewport();
ImVec2 pos(viewport->WorkPos.x + viewport->WorkSize.x - pad,
viewport->WorkPos.y + pad);
ImGui::SetNextWindowPos(pos, ImGuiCond_Always, ImVec2(1.0f, 0.0f));
ImGui::SetNextWindowBgAlpha(0.65f);
if (ImGui::Begin("##fps_overlay", nullptr, flags)) {
ImGui::Text("%.1f FPS", io.Framerate);
ImGui::Text("%.3f ms", 1000.0f / io.Framerate);
}
ImGui::End();
}
+5
View File
@@ -0,0 +1,5 @@
#pragma once
// Renders an FPS counter overlay in the top-right corner.
// Call within an ImGui frame.
void fps_overlay();
+30
View File
@@ -0,0 +1,30 @@
---
name: fps_overlay
kind: component
lang: cpp
domain: core
version: "1.0.0"
purity: pure
signature: "void fps_overlay()"
description: "Renderiza un overlay de FPS y frametime en la esquina superior derecha, con soporte opcional de Tracy"
tags: [imgui, fps, overlay, profiling, debug]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: [imgui]
tested: false
tests: []
test_file_path: ""
file_path: "cpp/functions/core/fps_overlay.cpp"
framework: imgui
params: []
output: "Renderiza el overlay de FPS en el frame ImGui actual"
---
# fps_overlay
Muestra FPS y frametime (ms) en una ventana semi-transparente en la esquina superior derecha.
Si se compila con `TRACY_ENABLE`, incluye un `ZoneScoped` para profiling con Tracy.