08cc179ca8
Auditoria del issue 0044: 14 archivos .md de cpp/functions/gfx/ con uses_functions actualizado. Resuelve dependencias detectadas via #include: gl_loader (consumido por casi todo el dominio gfx), dag_catalog (consumido por la familia dag_*), fullscreen_quad, gl_framebuffer, gl_shader, mesh_obj_load, uniform_parser y dag_node_previews. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
---
|
|
name: fullscreen_quad
|
|
kind: function
|
|
lang: cpp
|
|
domain: gfx
|
|
version: "1.0.0"
|
|
purity: impure
|
|
signature: "void quad_init(Quad& q); void quad_draw(const Quad& q); void quad_destroy(Quad& q)"
|
|
description: "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)."
|
|
tags: [opengl, quad, fullscreen, vao, vbo, gfx]
|
|
uses_functions: ["gl_loader_cpp_gfx"]
|
|
uses_types: []
|
|
returns: []
|
|
returns_optional: false
|
|
error_type: "error_go_core"
|
|
imports: [GL/gl.h, GL/glext.h]
|
|
tested: false
|
|
tests: []
|
|
test_file_path: ""
|
|
file_path: "cpp/functions/gfx/fullscreen_quad.cpp"
|
|
framework: opengl
|
|
params:
|
|
- name: q
|
|
desc: "Struct Quad con campos vao, vbo (GL ids). Inicializar a {0} antes de quad_init."
|
|
output: "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
|
|
|
|
```cpp
|
|
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);
|
|
```
|