#pragma once // Capture mode: renderiza cada demo de la gallery en una ventana GLFW // invisible y guarda un PNG en `output_dir/.png` via stb_image_write. // // DiseƱado para CI / golden-image diffing: ver `cpp/scripts/update_goldens.sh` // y `cpp/tests/test_visual.cpp`. // // Importante: // - Requiere un contexto OpenGL real. En entornos sin GPU (containers minimos) // funciona con `LIBGL_ALWAYS_SOFTWARE=1` (Mesa/llvmpipe) o swiftshader. // - Si el entorno (WSL sin GL) no puede crear un contexto GL valido, el // binario sale con codigo != 0 sin generar PNGs. #include #include namespace gallery { struct CaptureItem { std::string id; void (*fn)(); }; struct CaptureConfig { std::string output_dir; int warmup_frames = 3; int capture_w = 800; int capture_h = 600; }; // Devuelve true si todo el set se capturo OK. bool run_capture(const CaptureConfig& cfg, const std::vector& items); } // namespace gallery