feat(shaders_lab): scaffold C++ app with GLSL live-reload canvas
- 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>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
|
||||
namespace fn::gfx {
|
||||
|
||||
struct CompileResult {
|
||||
unsigned int program = 0; // GL program id, 0 si falla
|
||||
bool ok = false;
|
||||
int err_line = -1; // línea parseada del infoLog, -1 si no
|
||||
std::string err_msg;
|
||||
};
|
||||
|
||||
// Compila un fragment shader GLSL (sólo el cuerpo del usuario).
|
||||
// Prepends automáticamente: version, out vec4 fragColor, y uniforms u_resolution/u_time/u_mouse.
|
||||
// Usa un vertex shader fijo que genera un fullscreen quad via gl_VertexID.
|
||||
// Si falla, program = 0. Si ok, program es una id válida de glProgram lista para usar.
|
||||
CompileResult compile_fragment(const std::string& user_fragment_src);
|
||||
|
||||
// Libera el programa. Seguro con id = 0.
|
||||
void delete_program(unsigned int program);
|
||||
|
||||
} // namespace fn::gfx
|
||||
Reference in New Issue
Block a user