/* * set default framebuffer */ bool_t set_default_framebuffer(const char * name) { struct fb * fb; fb = search_framebuffer(name); if(!fb) return FALSE; default_framebuffer = fb; return TRUE; }
static bool_t sandbox_unregister_framebuffer(struct resource_t * res) { struct fb_t * fb; char name[64]; snprintf(name, sizeof(name), "%s.%d", res->name, res->id); fb = search_framebuffer(name); if(!fb) return FALSE; if(!unregister_framebuffer(fb)) return FALSE; free(fb->name); free(fb); return TRUE; }
struct display_t * display_alloc(const char * fb) { struct display_t * disp; struct framebuffer_t * dev; dev = search_framebuffer(fb); if(!dev) { dev = search_first_framebuffer(); if(!dev) dev = &fb_dummy; } disp = malloc(sizeof(struct display_t)); if(!disp) return NULL; disp->fb = dev; disp->rl = region_list_alloc(0); disp->cs = cairo_xboot_surface_create(disp->fb); disp->cr = cairo_create(disp->cs); disp->cursor.cs = cairo_image_surface_create_from_png("/framework/assets/images/cursor.png"); disp->cursor.width = cairo_image_surface_get_width(disp->cursor.cs); disp->cursor.height = cairo_image_surface_get_height(disp->cursor.cs); disp->cursor.ox = 0; disp->cursor.oy = 0; disp->cursor.nx = 0; disp->cursor.ny = 0; disp->cursor.dirty = 0; disp->cursor.show = 0; disp->fps.rate = 60; disp->fps.frame = 0; disp->fps.stamp = ktime_get(); disp->fps.show = 0; disp->showobj = 0; return disp; }