diff --git a/VERIFIED_FEATURES.md b/VERIFIED_FEATURES.md new file mode 100644 index 0000000..bb15075 --- /dev/null +++ b/VERIFIED_FEATURES.md @@ -0,0 +1,235 @@ +# 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