2 * (c) 2011 Siegen, Germany by Nils Faerber <nils.faerber@kernelconcepts.de>
11 #include "mw_utility.h"
12 #include "metawatch.h"
15 * The pixmap buffer has at least one byte per pixel, even for monochrome (bpp=1)
18 mw_buffer *mw_alloc_pbuffer(unsigned int res_x, unsigned int res_y, unsigned int bpp)
23 nmwbuf = (mw_buffer *) malloc(sizeof(mw_buffer));
27 nmwbuf->res_x = res_x;
28 nmwbuf->res_y = res_y;
31 pbuf_size = nmwbuf->res_x * nmwbuf->res_y * ((nmwbuf->bpp / 8) + 1);
32 nmwbuf->pbuf = malloc(pbuf_size);
37 memset(nmwbuf->pbuf, 0, pbuf_size);
42 void mw_free_pbuffer(mw_buffer *mwbuf)
51 void mw_dump_mw_buffer(mw_buffer *mwbuf)
56 for (y = 0; y < mwbuf->res_y; y++) {
57 for (x = 0; x < mwbuf->res_x; x++) {
58 clr = *(unsigned char *)(mwbuf->pbuf+((y*mwbuf->res_x)+x));
64 fprintf(stderr, "\n");
69 /* clear/fill entire buffer with color */
70 void mw_buf_clear(mw_buffer *mwbuf, mw_color clr)
77 pbuf_size = mwbuf->res_x * mwbuf->res_y * ((mwbuf->bpp / 8) + 1);
78 memset(mwbuf->pbuf, clr, pbuf_size);
81 /* draw a single pixel */
82 void mw_buf_draw_pixel(mw_buffer *mwbuf, unsigned int x, unsigned int y, mw_color clr)
87 *(unsigned char *)(mwbuf->pbuf+((y*mwbuf->res_x)+x)) = clr;