/* Copyright (C) 2016-2019 The University of Notre Dame This software is distributed under the GNU General Public License. See the file LICENSE for details. */ #include "bitmap.h" #include "kernelcore.h" #include "kmalloc.h" static struct bitmap root_bitmap; struct bitmap *bitmap_create_root() { root_bitmap.width = video_xres; root_bitmap.height = video_yres; root_bitmap.format = BITMAP_FORMAT_RGB; root_bitmap.data = video_buffer; return &root_bitmap; } struct bitmap *bitmap_create(int width, int height, int format) { struct bitmap *b = kmalloc(sizeof(*b)); if(!b) return 0; b->data = kmalloc(width * height * 3); if(!b->data) { kfree(b); return 0; } b->width = width; b->height = height; b->format = format; return b; } void bitmap_delete(struct bitmap *b) { kfree(b->data); kfree(b); }