- Add mainloop.zig section with feature status - Note that patterns are tested via zsimifactu manual implementation - Add to verification history 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.4 KiB
7.4 KiB
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 |
mainloop.zig
| Feature | Estado | Notas |
|---|---|---|
| MainLoop init/deinit | ⚠️ | Tests only |
| Progressive sleep | ⚠️ | Tests only (patrón probado en zsimifactu manual) |
| SDL_WaitEventTimeout | ⚠️ | Tests only (patrón probado en zsimifactu manual) |
| App interface (handleEvent/update/draw) | ⚠️ | Tests only |
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 |
| clearRect | ✅ | Partial redraw support |
| setPixel | ✅ | zsimifactu (via font) |
| fillRect | 🔧 | SIMD @memset optimizado 2025-12-10 |
| 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 |
| waitEvent | ✅ | zsimifactu - 0% CPU idle |
| waitEventTimeout | 🔧 | zsimifactu - sleep progresivo 2025-12-10 |
| 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) |
| 2025-12-10 | zsimifactu | waitEvent, waitEventTimeout - CPU 92% → 1.9% |
| 2025-12-10 | zsimifactu | Partial redraw, fillRect SIMD - render 1.4ms → 1.0ms |
| 2025-12-10 | zcatgui | MainLoop helper (encapsula optimizaciones CPU) |
Próximos a Verificar (Prioridad zsimifactu)
- button.zig - Guardar, Cancelar, Nuevo
- select.zig - Dropdowns (tipo WHO, país, provincia)
- modal.zig - Confirmaciones, errores
- tabs.zig - Navegación entre secciones
- checkbox.zig - Opciones booleanas