basekernel/kernel/bitmap.c

46 lines
824 B
C

/*
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);
}