Add initial FnixLib development implementation
This commit is contained in:
commit
84742ae38e
33 files changed
+3340
No files matched your search
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* FnixLib - lienzo (búfer de píxeles en memoria).
|
||||
*
|
||||
* Un FnixCanvas es la superficie sobre la que dibuja el renderizador 2D por
|
||||
* software. Cada ventana tiene uno (fnix_window_canvas), pero también se
|
||||
* pueden crear lienzos independientes, por ejemplo para pruebas sin pantalla.
|
||||
*
|
||||
* Formato de píxel: uint32_t 0x00RRGGBB, filas consecutivas sin relleno,
|
||||
* origen (0,0) arriba a la izquierda.
|
||||
*/
|
||||
#ifndef FNIX_CANVAS_H
|
||||
#define FNIX_CANVAS_H
|
||||
|
||||
#include "fnix/types.h"
|
||||
|
||||
FNIX_BEGIN_DECLS
|
||||
|
||||
/* Lado máximo de un lienzo, en píxeles. */
|
||||
#define FNIX_CANVAS_MAX_SIZE 16384
|
||||
|
||||
/* Crea un lienzo negro de width x height. Devuelve NULL si el tamaño no está
|
||||
* entre 1 y FNIX_CANVAS_MAX_SIZE o si falta memoria (ver fnix_last_error). */
|
||||
FnixCanvas *fnix_canvas_create(int width, int height);
|
||||
|
||||
/* Libera el lienzo. Acepta NULL. Si era el destino de dibujo del hilo actual,
|
||||
* el destino pasa a ser NULL. */
|
||||
void fnix_canvas_destroy(FnixCanvas *canvas);
|
||||
|
||||
int fnix_canvas_width(const FnixCanvas *canvas);
|
||||
int fnix_canvas_height(const FnixCanvas *canvas);
|
||||
|
||||
/* Acceso de solo lectura a los píxeles (0x00RRGGBB). NULL si canvas es NULL. */
|
||||
const uint32_t *fnix_canvas_pixels(const FnixCanvas *canvas);
|
||||
|
||||
/* Color del píxel (x, y) con alfa 255. Fuera del lienzo devuelve FNIX_TRANSPARENT. */
|
||||
FnixColor fnix_canvas_get_pixel(const FnixCanvas *canvas, int x, int y);
|
||||
|
||||
/* Lienzo sobre el que dibujan las funciones fnix_draw_*. Es un valor por hilo.
|
||||
* fnix_begin_frame() lo establece al lienzo de la ventana. */
|
||||
void fnix_set_target(FnixCanvas *canvas);
|
||||
FnixCanvas *fnix_get_target(void);
|
||||
|
||||
FNIX_END_DECLS
|
||||
|
||||
#endif /* FNIX_CANVAS_H */
|
||||
Reference in new issue
Block a user