void reinit_graphics_window(gfx_context_t * out, window_t * window) { out->width = window->width; out->height = window->height; out->depth = 32; out->size = GFX_H(out) * GFX_W(out) * GFX_B(out); if (out->buffer == out->backbuffer) { out->buffer = window->buffer; out->backbuffer = out->buffer; } else { out->buffer = window->buffer; out->backbuffer = realloc(out->backbuffer, sizeof(uint32_t) * GFX_W(out) * GFX_H(out)); } }
void reinit_graphics_fullscreen(gfx_context_t * out) { ioctl(framebuffer_fd, IO_VID_WIDTH, &out->width); ioctl(framebuffer_fd, IO_VID_HEIGHT, &out->height); ioctl(framebuffer_fd, IO_VID_DEPTH, &out->depth); out->size = GFX_H(out) * GFX_W(out) * GFX_B(out); if (out->buffer != out->backbuffer) { ioctl(framebuffer_fd, IO_VID_ADDR, &out->buffer); out->backbuffer = realloc(out->backbuffer, sizeof(uint32_t) * GFX_W(out) * GFX_H(out)); } else { ioctl(framebuffer_fd, IO_VID_ADDR, &out->buffer); out->backbuffer = out->buffer; } }
gfx_context_t * init_graphics_window(window_t * window) { gfx_context_t * out = malloc(sizeof(gfx_context_t)); out->width = window->width; out->height = window->height; out->depth = 32; out->size = GFX_H(out) * GFX_W(out) * GFX_B(out); out->buffer = window->buffer; out->backbuffer = out->buffer; return out; }
gfx_context_t * init_graphics_sprite(sprite_t * sprite) { gfx_context_t * out = malloc(sizeof(gfx_context_t)); out->width = sprite->width; out->height = sprite->height; out->depth = 32; out->size = GFX_H(out) * GFX_W(out) * GFX_B(out); out->buffer = (char *)sprite->bitmap; out->backbuffer = out->buffer; return out; }
/* Deprecated */ gfx_context_t * init_graphics_fullscreen() { gfx_context_t * out = malloc(sizeof(gfx_context_t)); int fd = open("/dev/fb0", O_RDONLY); if (fd < 0) { /* oh shit */ return NULL; } ioctl(fd, IO_VID_WIDTH, &out->width); ioctl(fd, IO_VID_HEIGHT, &out->height); ioctl(fd, IO_VID_DEPTH, &out->depth); ioctl(fd, IO_VID_ADDR, &out->buffer); out->size = GFX_H(out) * GFX_W(out) * GFX_B(out); out->backbuffer = out->buffer; return out; }
gfx_context_t * init_graphics_fullscreen_double_buffer() { gfx_context_t * out = init_graphics_fullscreen(); if (!out) return NULL; out->backbuffer = malloc(sizeof(uint32_t) * GFX_W(out) * GFX_H(out)); return out; }
gfx_context_t * init_graphics_window_double_buffer(window_t * window) { gfx_context_t * out = init_graphics_window(window); out->backbuffer = malloc(sizeof(uint32_t) * GFX_W(out) * GFX_H(out)); return out; }