vgabgpage.c

来自「linux 下svgalib编的一个界面程序示例」· C语言 代码 · 共 89 行

C
89
字号
/* */#ifdef BACKGROUND#include <stdio.h>#include "vga.h"#include "vgabg.h"static int lastrpage = -1, lastwpage = -1;inline void vga_setpage(int p){    if (p == __svgalib_currentpage)	return;    __svgalib_dont_switch_vt_yet();    if (!__svgalib_oktowrite) {#if BACKGROUND == 1	__svgalib_map_virtual_screen(p);#endif#if BACKGROUND == 2	__svgalib_graph_mem = graph_buf + (GRPAH_SIZE * p);#endif    } else {	__svgalib_setpage(p);    }    __svgalib_currentpage = lastrpage = lastwpage = p;    __svgalib_is_vt_switching_needed();    return;}inline void __svgalib_fast_setpage(int p)/* This does not check vt switching. */{    if (p == __svgalib_currentpage)	return;    if (!__svgalib_oktowrite) {#if BACKGROUND == 1	__svgalib_map_virtual_screen(p);#endif#if BACKGROUND == 2	__svgalib_graph_mem = graph_buf + (GRPAH_SIZE * p);#endif    } else {	__svgalib_setpage(p);    }    __svgalib_currentpage = lastrpage = lastwpage = p;}inline void __svgalib_setpage_fg(int p){    if (p == __svgalib_currentpage)	return;    __svgalib_dont_switch_vt_yet();    __svgalib_setpage(p);    __svgalib_currentpage = lastrpage = lastwpage = p;    __svgalib_is_vt_switching_needed();}inline void __svgalib_setpage_bg(int p){    if (p == __svgalib_currentpage)	return;    __svgalib_dont_switch_vt_yet();#if BACKGROUND == 1    __svgalib_map_virtual_screen(p);#endif#if BACKGROUND == 2    __svgalib_graph_mem = graph_buf + (GRPAH_SIZE * p);#endif    __svgalib_currentpage = lastrpage = lastwpage = p;    __svgalib_is_vt_switching_needed();    return;}void vga_setreadpage(int p){      puts("svgalib: vga_setreadpage() call impossible in background mode.");      exit(2); }void vga_setwritepage(int p){      puts("svgalib: vga_setwritepage() call impossible in background mode.");      exit(2); }#endif				/* BACKGROUND */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?