⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vgaline.c

📁 linux 下svgalib编的一个界面程序示例
💻 C
字号:
/* VGAlib version 1.2 - (c) 1993 Tommy Frandsen                    *//*                                                                 *//* This library is free software; you can redistribute it and/or   *//* modify it without any restrictions. This library is distributed *//* in the hope that it will be useful, but without any warranty.   *//* Multi-chipset support Copyright 1993 Harm Hanemaayer *//* partially copyrighted (C) 1993 by Hartmut Schirmer */#include <stdio.h>#include "vga.h"#include "libvga.h"#ifdef BACKGROUND#include "vgabg.h"#endif#define ABS(a) (((a)<0) ? -(a) : (a))int vga_drawline(int x1, int y1, int x2, int y2){    int dx = x2 - x1;    int dy = y2 - y1;    int ax = ABS(dx) << 1;    int ay = ABS(dy) << 1;    int sx = (dx >= 0) ? 1 : -1;    int sy = (dy >= 0) ? 1 : -1;    int x = x1;    int y = y1;#ifdef BACKGROUND    __svgalib_dont_switch_vt_yet();#endif    if (ax > ay) {	int d = ay - (ax >> 1);	while (x != x2) {#ifndef BACKGROUND	    vga_drawpixel(x, y);#endif#ifdef BACKGROUND            __svgalib_fast_drawpixel(x, y);#endif	    if (d > 0 || (d == 0 && sx == 1)) {		y += sy;		d -= ax;	    }	    x += sx;	    d += ay;	}    } else {	int d = ax - (ay >> 1);	while (y != y2) {#ifndef BACKGROUND	    vga_drawpixel(x, y);#endif#ifdef BACKGROUND            __svgalib_fast_drawpixel(x, y);#endif	    if (d > 0 || (d == 0 && sy == 1)) {		x += sx;		d -= ay;	    }	    y += sy;	    d += ax;	}    }#ifndef BACKGROUND    vga_drawpixel(x, y);#endif#ifdef BACKGROUND    __svgalib_fast_drawpixel(x, y);    __svgalib_is_vt_switching_needed();#endif    return 0;}

⌨️ 快捷键说明

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