Files
fn_registry/cpp/functions/gfx/fullscreen_quad.md
T
egutierrez 3008b56e76 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>
2026-04-24 20:33:36 +02:00

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: []
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);
```