use libc::c_void; use super::gfx::*; #[repr(C)] #[derive(Clone, Copy)] pub struct ConsoleFont { pub gfx: *mut u8, pub asciiOffset: u16, pub numChars: u16, } pub type ConsolePrint = extern "C" fn(con: *mut c_void, c: i32) -> u8; #[repr(C)] #[derive(Clone, Copy)] pub struct PrintConsole { pub font: ConsoleFont, pub frameBuffer: *mut u16, pub cursorX: i32, pub cursorY: i32, pub prevCursorX: i32, pub prevCursorY: i32, pub consoleWidth: i32, pub consoleHeight: i32, pub windowX: i32, pub windowY: i32, pub windowWidth: i32, pub windowHeight: i32, pub tabSize: i32, pub fg: i32, pub bg: i32, pub flags: i32, pub PrintChar: ConsolePrint, pub consoleInitialised: u8, } pub const CONSOLE_COLOR_BOLD: i32 = 1; pub const CONSOLE_COLOR_FAINT: i32 = 2; pub const CONSOLE_ITALIC: i32 = 4; pub const CONSOLE_UNDERLINE: i32 = 8; pub const CONSOLE_BLINK_SLOW: i32 = 16; pub const CONSOLE_BLINK_FAST: i32 = 32; pub const CONSOLE_COLOR_REVERSE: i32 = 64; pub const CONSOLE_CONCEAL: i32 = 128; #[repr(C)] pub enum debugDevice { NULL = 0, _3DMOO = 1, CONSOLE = 2, } extern "C" { pub fn consoleSetFont(console: *mut PrintConsole, font: *mut ConsoleFont) -> (); pub fn consoleSetWindow(console: *mut PrintConsole, x: i32, y: i32, width: i32, height: i32) -> (); pub fn consoleGetDefault() -> *mut PrintConsole; pub fn consoleSelect(console: *mut PrintConsole) -> *mut PrintConsole; pub fn consoleInit(screen: gfxScreen_t, console: *mut PrintConsole) -> *mut PrintConsole; pub fn consoleDebugInit(device: debugDevice) -> (); pub fn consoleClear() -> (); }