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.3 KiB
1.3 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, framework, params, output
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | tested | tests | test_file_path | file_path | framework | params | output | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| fullscreen_quad | function | cpp | gfx | 1.0.0 | impure | void quad_init(Quad& q); void quad_draw(const Quad& q); void quad_destroy(Quad& q) | VAO/VBO para un fullscreen quad de 6 vértices. El vertex shader genera las posiciones via gl_VertexID, por lo que el VBO queda vacío. quad_draw emite glDrawArrays(GL_TRIANGLES, 0, 6). |
|
false | error_go_core |
|
false | cpp/functions/gfx/fullscreen_quad.cpp | opengl |
|
Modifica q in-place. quad_draw necesita un programa GL activo con vertex shader que genere posiciones desde gl_VertexID. |
fullscreen_quad
VAO + VBO vacío para dibujar un quad de pantalla completa. El vertex shader de gl_shader ya embebe las 6 posiciones via gl_VertexID, por lo que no se necesitan datos en el VBO.
Ejemplo
fn::gfx::Quad quad{};
fn::gfx::quad_init(quad);
// En el render loop (con program activo):
glUseProgram(program);
fn::gfx::quad_draw(quad);
glUseProgram(0);
// Al destruir:
fn::gfx::quad_destroy(quad);