guikit.h (1562B)
1 /* guikit.h - ventana SDL3 con un framebuffer RGB565. 2 * 3 * gk_open: tamano fijo w x h, escalado entero con bordes. 4 * gk_open_fluid: el framebuffer sigue la forma de la ventana (el lado justo mide 5 * el minimo, el otro crece) y se escala sin bordes; Surface.w/h 6 * cambian al redimensionar (llega EV_RESIZE). F11 / Alt+Enter: 7 * pantalla completa. 8 * 9 * Depuracion (sirve para probar sin mirar la ventana): 10 * APP_SHOT=archivo.ppm vuelca cada cuadro a PPM 11 * APP_WIN=AxB tamano inicial de la ventana adaptable 12 * APP_KEYS="teclas" alimenta el input: ~ Enter, < Esc, > Tab, ^ v { } flechas, 13 * . pausa de 300 ms, ! salir; el resto, tal cual */ 14 #ifndef COMUN_GUIKIT_H 15 #define COMUN_GUIKIT_H 16 #include "gfx.h" 17 18 Surface *gk_open(const char *title, int w, int h, int scale); /* NULL si falla */ 19 Surface *gk_open_fluid(const char *title, int min_w, int min_h); 20 void gk_present(void); 21 int gk_wait(int timeout_ms, int nfds, InEvent *ev); /* 1 = hay evento */ 22 void gk_close(void); 23 char *gk_clipboard(void); /* texto del portapapeles (malloc) o NULL */ 24 /* Pide una linea de texto con un cuadro propio del sistema. Solo existe en la web 25 * (el navegador no muestra el teclado tactil para el canvas): ahi muestra un campo de 26 * entrada y devuelve 1 con el texto en buf, o 0 si se cancelo. En escritorio devuelve 27 * -1 sin hacer nada y se escribe con el teclado como siempre. */ 28 int gk_text_input(const char *title, char *buf, int n); 29 30 #endif