Skip to content

Commit 3182e7f

Browse files
committed
Fix double buffer allocation
1 parent 8fab113 commit 3182e7f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/sys/vga/screen.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ enum ModeName {
1111
G640x480x16,
1212
}
1313

14-
const FRAMEBUFFER: usize = 0xA0000;
14+
const FRAME_BUFFER_ADDR: usize = 0xA0000;
15+
const DOUBLE_BUFFER: [u8; 640 * 480] = [0; 640 * 480];
1516

1617
static MODE: Mutex<Option<ModeName>> = Mutex::new(None);
1718

@@ -174,14 +175,13 @@ fn set_640x480_mode() {
174175

175176
fn clear_screen() {
176177
// Clear screen
177-
let screen = [0; 640 * 480];
178178
let size = match *MODE.lock() {
179179
Some(ModeName::G320x200x256) => 320 * 200,
180180
Some(ModeName::G640x480x16) => 640 * 480,
181181
_ => return,
182182
};
183-
let src = screen.as_ptr();
184-
let dst = FRAMEBUFFER as *mut u8;
183+
let src = DOUBLE_BUFFER.as_ptr();
184+
let dst = FRAME_BUFFER_ADDR as *mut u8;
185185
unsafe {
186186
core::ptr::copy_nonoverlapping(src, dst, size);
187187
}

0 commit comments

Comments
 (0)