diff options
Diffstat (limited to 'apps/plugin.c')
| -rw-r--r-- | apps/plugin.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/apps/plugin.c b/apps/plugin.c new file mode 100644 index 0000000..440841a --- /dev/null +++ b/apps/plugin.c @@ -0,0 +1,52 @@ +#include <stdlib.h> +#include "plugin.h" +#include "gfx.h" + +static void plugin_clear(void) +{ + gfx_clear(); +} + +static void plugin_drawpix(int x, int y) +{ + gfx_drawpixel(x, y); +} + +static void plugin_vline(int a, int b, int c) +{ + gfx_vline(a, b, c); +} + +static void plugin_hline(int a, int b, int c) +{ + gfx_hline(a, b, c); +} + +static const struct plugin_api kappa_api = { + &plugin_clear, + &plugin_hline, + &plugin_vline, + &plugin_drawpix, + &gfx_drawline, + &gfx_drawrect, + &gfx_fillrect, + &gfx_set_foreground, + &gfx_get_foreground, + &gfx_set_background, + &gfx_get_background, + &srand, + &rand, + &gfx_filltriangle, + &gfx_drawcircle, + &gfx_fillcircle, + &gfx_update, + &gfx_putsxy +}; + +void plugin_load(enum plugin_status (*plugin)(const struct plugin_api*)) +{ + bool status = gfx_get_doublebuffer(); + gfx_set_doublebuffer(true); + plugin(&kappa_api); + gfx_set_doublebuffer(status); +} |