simplified write_cell_fb interface logic for drivers by removing u16 cell parameter
This commit is contained in:
parent
02e6b3f7b6
commit
6f25710ca9
@ -10,19 +10,19 @@
|
|||||||
|
|
||||||
// State trackers from header
|
// State trackers from header
|
||||||
static u8* Frame_Buffer = (u8*)FRAME_BUFFER_ADDR;
|
static u8* Frame_Buffer = (u8*)FRAME_BUFFER_ADDR;
|
||||||
s32 Frame_Buffer_Cursor = 0;
|
s32 Frame_Buffer_Cursor = 0x0000;
|
||||||
|
|
||||||
// Writes character to a given cell in the framebuffer
|
// Writes character to a given cell in the framebuffer
|
||||||
// @cell parameter is the logical (linear)index into the buffer
|
// @cell parameter is the logical (linear)index into the buffer
|
||||||
void write_cell_fb(u16 cell, u8 c, u8 fg, u8 bg) {
|
void write_cell_fb(u8 c, u8 fg, u8 bg) {
|
||||||
Frame_Buffer[cell] = c;
|
Frame_Buffer[Frame_Buffer_Cursor] = c;
|
||||||
Frame_Buffer[cell+1] = (fg & 0x0f << 4) | (bg & 0x0f);
|
Frame_Buffer[Frame_Buffer_Cursor+1] = (fg & 0x0f << 4) | (bg & 0x0f);
|
||||||
Frame_Buffer_Cursor++;
|
Frame_Buffer_Cursor += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void clear_fb(void) {
|
void clear_fb(void) {
|
||||||
for(unsigned cell=0;cell<AREA; cell+=2) {
|
for(unsigned cell=0;cell<AREA; cell+=2) {
|
||||||
write_cell_fb(cell, ' ', 0x00, 0x00);
|
write_cell_fb(' ', 0x00, 0x00);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
extern s32 Frame_Buffer_Cursor;
|
extern s32 Frame_Buffer_Cursor;
|
||||||
|
|
||||||
void write_cell_fb(u16, u8, u8, u8);
|
void write_cell_fb(u8, u8, u8);
|
||||||
|
|
||||||
void clear_fb(void);
|
void clear_fb(void);
|
||||||
|
|
||||||
|
3
stlio.c
3
stlio.c
@ -1,10 +1,9 @@
|
|||||||
#include "stlio.h"
|
#include "stlio.h"
|
||||||
|
|
||||||
u64 write(const s8* buffer, const u64 size) {
|
u64 write(const s8* buffer, const u64 size) {
|
||||||
s32 offset = Frame_Buffer_Cursor;
|
|
||||||
u64 i;
|
u64 i;
|
||||||
for(i = 0; i < size; i++) {
|
for(i = 0; i < size; i++) {
|
||||||
write_cell_fb((u64)offset + i, buffer[i], Green, White);
|
write_cell_fb(buffer[i], Green, White);
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user