3008b56e76
- cpp/functions/gfx: gl_shader, gl_framebuffer, fullscreen_quad, shader_canvas - cpp/apps/shaders_lab: main + 3 seed shaders (plasma, circle, checker) - ImGui docking layout: Code | Canvas | Controls Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
name, lang, domain, description, tags, uses_functions, uses_types, framework, entry_point, dir_path
| name | lang | domain | description | tags | uses_functions | uses_types | framework | entry_point | dir_path | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| shaders_lab | cpp | gfx | Live GLSL fragment shader editor con preview en tiempo real. Layout de 3 paneles: editor de código, canvas de preview y controles. |
|
|
imgui + opengl3 | cpp/build/linux/apps/shaders_lab/shaders_lab | cpp/apps/shaders_lab |
Descripción
Editor interactivo de fragment shaders GLSL con preview en tiempo real. Incluye 3 presets (Plasma, Circle, Checker) y recompila automáticamente con debounce de 250ms al editar el código.
Layout
- Code (izquierda): editor de texto con botones de preset y footer de errores de compilación
- Canvas (centro): preview del shader renderizado a FBO y mostrado via ImGui::Image
- Controls (derecha): placeholder para fase 2 + FPS overlay
Build
./fn run build_cpp_linux_bash_infra shaders_lab
Binario: cpp/build/linux/apps/shaders_lab/shaders_lab
Uniforms disponibles en los shaders
u_resolution: vec2 — dimensiones del canvas en pixelsu_time: float — segundos desde inicio de la app (ImGui::GetTime())u_mouse: vec2 — posición del mouse relativa al canvas, origen bottom-left
Notas
No requiere dependencias externas más allá de lo ya vendorizado (GLFW, ImGui, OpenGL). Los fragment shaders se escriben sin #version, sin out vec4 fragColor ni declaraciones de uniforms — compile_fragment() los prepende automáticamente.