zcatgui/VERIFIED_FEATURES.md
reugenio d8f0523e8f docs: Add VERIFIED_FEATURES.md - tracking production-tested features
Documento que distingue features realmente probadas en producción
vs solo tests unitarios. Incluye:
- 48 widgets con estado de verificación
- Core modules (context, input, layout, style)
- Render modules (framebuffer, font, software)
- Backends (SDL2, WASM, Android, iOS)

Verificado en zsimifactu:
- Table, TextInput, Split, Panel
- Font 8x16 Latin-1, UTF-8 rendering
- SDL2 backend completo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 12:00:37 +01:00

235 lines
6.6 KiB
Markdown

# VERIFIED_FEATURES.md - zcatgui
Estado de verificación de funcionalidades en aplicaciones reales.
**Leyenda:**
-**Verificado** - Probado en aplicación real, funciona correctamente
- ⚠️ **Tests only** - Solo tests unitarios, no probado en app real
- 🔧 **Mejorado** - Probado y mejorado/corregido durante uso real
-**Incompleto** - Conocido como incompleto o con limitaciones
-**Sin probar** - No tiene tests ni uso real
---
## Core
### context.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Context init/deinit | ✅ | zsimifactu |
| beginFrame/endFrame | ✅ | zsimifactu |
| pushCommand | ✅ | zsimifactu |
| getId (widget IDs) | ✅ | zsimifactu |
| frameAllocator | ⚠️ | Tests only |
| dirty_rects tracking | ⚠️ | Infraestructura lista, no usada aún |
| resize | ✅ | zsimifactu |
### input.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| handleKeyEvent | ✅ | zsimifactu - navegación tabla |
| mousePos/setMousePos | ✅ | zsimifactu |
| mousePressed | ✅ | zsimifactu - clicks |
| getTextInput | ✅ | zsimifactu - edición TextInput |
| navKeyPressed | ⚠️ | 1 test fallando |
| Key repeat detection | ✅ | zsimifactu - scroll continuo |
### layout.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| LayoutState | ✅ | zsimifactu |
| Rect operations | ✅ | zsimifactu |
| nextRect | ✅ | zsimifactu |
| row_height | ✅ | zsimifactu |
### style.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Color struct | ✅ | zsimifactu |
| Color.toABGR | 🔧 | Optimizado para font rendering |
| Color.blend | ⚠️ | Tests only |
| Theme.dark | ✅ | zsimifactu |
### command.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| DrawCommand.rect | ✅ | zsimifactu |
| DrawCommand.text | ✅ | zsimifactu |
| DrawCommand.rect_outline | ✅ | zsimifactu |
| DrawCommand.line | ⚠️ | Tests only |
| DrawCommand.clip | ✅ | zsimifactu - tabla clipping |
---
## Render
### framebuffer.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| init/deinit | ✅ | zsimifactu |
| clear | ✅ | zsimifactu |
| setPixel | ✅ | zsimifactu (via font) |
| fillRect | ✅ | zsimifactu |
| resize | ✅ | zsimifactu |
| getData/getPitch | ✅ | zsimifactu - SDL2 present |
| drawLine | ⚠️ | Tests only |
| Alpha blending | ⚠️ | Tests only |
### font.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Font 8x8 ASCII | ⚠️ | Tests only |
| Font 8x8 Latin-1 | ⚠️ | Tests only |
| Font 8x16 ASCII | ⚠️ | Tests only |
| Font 8x16 Latin-1 | 🔧 | zsimifactu - optimizado 2025-12-10 |
| drawChar fast path | 🔧 | Añadido 2025-12-10, ~26x más rápido |
| drawChar clipping | ✅ | zsimifactu |
| UTF-8 decoding | ✅ | zsimifactu - caracteres españoles |
| getFontForSize | ⚠️ | Tests only |
### software.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| SoftwareRenderer init | ✅ | zsimifactu |
| execute commands | ✅ | zsimifactu |
| drawRect | ✅ | zsimifactu |
| drawText (UTF-8) | 🔧 | zsimifactu - fix UTF-8 2025-12-10 |
| drawRectOutline | ✅ | zsimifactu |
| clip stack | ✅ | zsimifactu |
### ttf.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| TtfFont.loadFromFile | ❌ | Placeholder - no rasteriza curvas |
| TTF parsing | ⚠️ | Parsea headers, no glyphs reales |
### animation.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Todas | ❓ | Sin probar |
### antialiasing.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Todas | ❓ | Sin probar |
### effects.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Todas | ❓ | Sin probar |
---
## Backend
### sdl2.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| init/deinit | ✅ | zsimifactu |
| pollEvent | ✅ | zsimifactu |
| present | ✅ | zsimifactu |
| getSize | ✅ | zsimifactu |
| Window resize | ✅ | zsimifactu |
| VSync | 🔧 | Configurado, funciona con GPU |
| Key translation | ✅ | zsimifactu |
| Mouse events | ✅ | zsimifactu |
| Text input events | ✅ | zsimifactu |
### wasm.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Todas | ❓ | Sin probar |
### android.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Todas | ❓ | Sin probar |
### ios.zig
| Feature | Estado | Notas |
|---------|--------|-------|
| Todas | ❓ | Sin probar |
---
## Widgets
### Verificados en zsimifactu
| Widget | Estado | Notas |
|--------|--------|-------|
| table.zig | ✅ | 510 registros, scroll, selección |
| text_input.zig | 🔧 | Edición, cursor, fix buffers 2025-12-10 |
| split.zig | ✅ | hsplit con drag |
| panel.zig | ✅ | Con título |
| scroll.zig | ✅ | Via Table |
### Solo tests unitarios
| Widget | Estado | Notas |
|--------|--------|-------|
| button.zig | ⚠️ | |
| checkbox.zig | ⚠️ | |
| label.zig | ⚠️ | |
| select.zig | ⚠️ | |
| slider.zig | ⚠️ | |
| radio.zig | ⚠️ | |
| tabs.zig | ⚠️ | |
| list.zig | ⚠️ | |
| menu.zig | ⚠️ | |
| modal.zig | ⚠️ | |
| tooltip.zig | ⚠️ | |
| toast.zig | ⚠️ | |
| progress.zig | ⚠️ | |
### Sin probar / Avanzados
| Widget | Estado | Notas |
|--------|--------|-------|
| autocomplete.zig | ❓ | |
| chart.zig | ❓ | |
| colorpicker.zig | ❓ | |
| datepicker.zig | ❓ | |
| textarea.zig | ❓ | |
| tree.zig | ❓ | |
| image.zig | ❓ | |
| canvas.zig | ❓ | |
| richtext.zig | ❓ | |
| virtual_scroll.zig | ❓ | |
| reorderable.zig | ❓ | |
| numberentry.zig | ❓ | |
| badge.zig | ❓ | |
| breadcrumb.zig | ❓ | |
| appbar.zig | ❓ | |
| navdrawer.zig | ❓ | |
| sheet.zig | ❓ | |
| icon.zig | ❓ | |
| iconbutton.zig | ❓ | |
| divider.zig | ❓ | |
| loader.zig | ❓ | |
| switch.zig | ❓ | |
| discloser.zig | ❓ | |
| selectable.zig | ❓ | |
| resize.zig | ❓ | |
| surface.zig | ❓ | |
| grid.zig | ❓ | |
| focus.zig | ❓ | |
---
## Historial de Verificación
| Fecha | Proyecto | Features Verificadas |
|-------|----------|---------------------|
| 2025-12-10 | zsimifactu | Table, TextInput, Split, Panel, Font 8x16 Latin-1, UTF-8 |
| 2025-12-10 | zsimifactu | Optimización font.drawChar (26x speedup) |
---
## Próximos a Verificar (Prioridad zsimifactu)
1. **button.zig** - Guardar, Cancelar, Nuevo
2. **select.zig** - Dropdowns (tipo WHO, país, provincia)
3. **modal.zig** - Confirmaciones, errores
4. **tabs.zig** - Navegación entre secciones
5. **checkbox.zig** - Opciones booleanas