46 lines
		
	
	
		
			824 B
		
	
	
	
		
			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);
 | |
| }
 |