a27dcc028c
El doctor reportaba el dominio gamedev en doble FAIL: el tag plano `gamedev` (44 funciones) como `ungrouped_candidate` y la pagina `gamedev-2d.md` como `doc_orphan`. Causa raiz: el INDEX declaraba `[gamedev](gamedev-2d.md)` y el auditor solo registra el slug cuando label==target, asi que ni casaba la pagina ni declaraba el tag. Al revisar las 44 funciones habia dos clusters reales bajo el mismo tag, asi que se separan en dos grupos honestos: - gamedev-2d (tag canonico): 31 builders de workflow ComfyUI + 5 de apoyo (post-proceso + puente a Godot) = 36. Se elimina el tag plano `gamedev` de los builders (ya tenian `gamedev-2d`) y se reemplaza por `gamedev-2d` en las de apoyo. - gamedev-engine (grupo nuevo, pagina madre nueva): runtime de juego C++ multiplataforma (SDL3 + sokol_gfx + miniaudio, Issue 0072b) = 8. Game loop, camara 2D, input unificado, sprite batch, setup render/audio, build wasm. El tag plano `gamedev` queda eliminado (count 0). INDEX corregido: fila gamedev-2d con label==target y conteo 36 + fila nueva gamedev-engine (8). Verificacion: `fn index` + `fn doctor capabilities` -> ambos grupos OK (declared_in_index=yes, doc_exists=yes, sin issues); `gamedev` plano = 0. Solo se modifico el campo `tags` de los .md, ningun archivo de codigo. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
---
|
|
name: sokol_setup
|
|
kind: function
|
|
lang: cpp
|
|
domain: gfx
|
|
version: "0.1.0"
|
|
purity: pure
|
|
signature: "make_environment() -> sg_environment; make_swapchain(int w, int h) -> sg_swapchain"
|
|
description: "Builders puros para inicializar sokol_gfx encima de un GL context creado por SDL3 (no por sokol_app). Construye sg_environment con defaults RGBA8 + depth/stencil y sg_swapchain con el default framebuffer del contexto activo. Issue 0072b — base del runtime gamedev en PC + WASM."
|
|
tags: [gamedev-engine, sokol, gfx, sdl3, wasm]
|
|
uses_functions: []
|
|
uses_types: []
|
|
returns: []
|
|
returns_optional: false
|
|
error_type: ""
|
|
imports: []
|
|
example: |
|
|
// tras SDL_GL_CreateContext():
|
|
sg_desc d{};
|
|
d.environment = fn::gfx::make_environment();
|
|
d.logger.func = slog_func;
|
|
sg_setup(&d);
|
|
// por frame:
|
|
sg_pass p{};
|
|
p.swapchain = fn::gfx::make_swapchain(w, h);
|
|
sg_begin_pass(&p);
|
|
tested: false
|
|
tests: []
|
|
test_file_path: ""
|
|
file_path: "cpp/functions/gfx/sokol_setup.cpp"
|
|
params:
|
|
- name: width
|
|
desc: "Ancho del framebuffer en pixeles. Usar SDL_GetWindowSizeInPixels."
|
|
- name: height
|
|
desc: "Alto del framebuffer en pixeles."
|
|
output: "Estructuras sg_environment / sg_swapchain listas para sokol_gfx."
|
|
---
|
|
|
|
# sokol_setup
|
|
|
|
Helpers minimos para usar `sokol_gfx` con SDL3 sin depender de `sokol_glue.h` (que importa simbolos de `sokol_app` y rompe en stacks SDL3-driven).
|
|
|
|
Definidos como funciones puras: solo construyen structs, no tocan estado global. Llamadas tipicas en `engine_smoke` (issue 0072a) y `runtime_test` (0072b).
|