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

📄 interface.c

📁 linux 下svgalib编的一个界面程序示例
💻 C
字号:
#include <stdlib.h>#include <string.h>#include "timing.h"#include "libvga.h"		/* for __svgalib_infotable and ramdac inlines */#include "ramdac/ramdac.h"#include "accel.h"/* * This is a temporary function that allocates and fills in a ModeInfo * structure based on a svgalib mode number. */ModeInfo * __svgalib_createModeInfoStructureForSvgalibMode(int mode){    ModeInfo *modeinfo;    /* Create the new ModeInfo structure. */    modeinfo = malloc(sizeof(ModeInfo));    modeinfo->width = __svgalib_infotable[mode].xdim;    modeinfo->height = __svgalib_infotable[mode].ydim;    modeinfo->bytesPerPixel = __svgalib_infotable[mode].bytesperpixel;    switch (__svgalib_infotable[mode].colors) {    case 16:	modeinfo->colorBits = 4;	break;    case 256:	modeinfo->colorBits = 8;	break;    case 32768:	modeinfo->colorBits = 15;	modeinfo->blueOffset = 0;	modeinfo->greenOffset = 5;	modeinfo->redOffset = 10;	modeinfo->blueWeight = 5;	modeinfo->greenWeight = 5;	modeinfo->redWeight = 5;	break;    case 65536:	modeinfo->colorBits = 16;	modeinfo->blueOffset = 0;	modeinfo->greenOffset = 5;	modeinfo->redOffset = 11;	modeinfo->blueWeight = 5;	modeinfo->greenWeight = 6;	modeinfo->redWeight = 5;	break;    case 256 * 65536:	modeinfo->colorBits = 24;	modeinfo->blueOffset = 0;	modeinfo->greenOffset = 8;	modeinfo->redOffset = 16;	modeinfo->blueWeight = 8;	modeinfo->greenWeight = 8;	modeinfo->redWeight = 8;	break;    }    modeinfo->bitsPerPixel = modeinfo->bytesPerPixel * 8;    if (__svgalib_infotable[mode].colors == 16)	modeinfo->bitsPerPixel = 4;    modeinfo->lineWidth = __svgalib_infotable[mode].xbytes;    return modeinfo;}/* * This function converts a number of significant color bits to a matching * DAC mode type as defined in the RAMDAC interface. */int __svgalib_colorbits_to_colormode(int bpp, int colorbits){    if (colorbits == 8)	return CLUT8_6;    if (colorbits == 15)	return RGB16_555;    if (colorbits == 16)	return RGB16_565;    if (colorbits == 24) {	if (bpp == 24)	    return RGB24_888_B;	else	    return RGB32_888_B;    }    return CLUT8_6;}/* * Clear the accelspecs structure (disable acceleration). */void __svgalib_clear_accelspecs(AccelSpecs * accelspecs){    memset(accelspecs, 0, sizeof(AccelSpecs));}

⌨️ 快捷键说明

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