#pragma once // shaders_lab/compiler — extrae las rutinas impuras de compilacion del shader // (compile_code, compile_dag, mark_code_dirty) desde main.cpp para que el // archivo principal quede acotado a la composicion de paneles ImGui. // // Las globals (g_source, g_descs, g_store, g_pipeline, etc.) se declaran // extern y viven en main.cpp; aqui solo orquestamos compilacion. namespace shaders_lab { // Compila g_source -> programa OpenGL para g_canvas_code, refresca g_descs // y sincroniza g_store. Actualiza g_code_err / g_code_err_line. void compile_code(); // Compila g_pipeline -> g_dag_glsl -> programa OpenGL para g_canvas_dag. // Actualiza g_dag_err / g_dag_err_line. void compile_dag(); // Marca el shader Code como dirty y registra el timestamp del ultimo edit // (para debounce de 250ms en el render loop). void mark_code_dirty(); } // namespace shaders_lab