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

📄 solbm.c

📁 早期freebsd实现
💻 C
字号:
/* *  solBm.c --  * *	remade by A.Fujita, DEC-16-1992 */#include "sol.h"#include "solFb.h"solBmCreate(sol_fb_info)SolFbInfoPtr sol_fb_info;{        struct fb_rfc rfc;#ifdef	DEBUG	fprintf(stderr, "solBmCreate\t[solBm.c]\tStart\n");#endif	if ((sol_fb_info->fbfd = open("/dev/fb", O_RDWR)) < 0) {		Error("Can't open /dev/fb");		return FALSE;	}	sol_fb_info->fbmapsize = (FB_WIDTH/8)*FB_HEIGHT;	sol_fb_info->fbmap = (char *) mmap((caddr_t) 0 ,(size_t) sol_fb_info->fbmapsize,					    (PROT_READ | PROT_WRITE), MAP_SHARED,					    sol_fb_info->fbfd, (off_t) 0);	if (sol_fb_info->fbmap == (char *) -1) {		Error("Can't mmap /dev/fb");		return FALSE;	}	sol_fb_info->plane = sol_fb_info->fbmap + 8;	rfc.rfc_hcnt =  -249;	rfc.rfc_vcnt = -2075;        (void) ioctl(sol_fb_info->fbfd, FBIOSETRFCT, &rfc);#ifdef	DEBUG	fprintf(stderr, "solBmCreate\t[solBm.c]\tEnd\n");#endif	return TRUE;}static BoolsolBmSaveScreen(pScreen, on)ScreenPtr     pScreen;Bool          on;{	return FALSE;}BoolsolBmInit(index, pScreen, argc, argv)    int           index;    ScreenPtr     pScreen;    int           argc;    char          **argv;{	SolFbInfoPtr pFbInfo;	extern miPointerScreenFuncRec  solPointerScreenFuncs;#ifdef	DEBUG	fprintf(stderr, "solBmInit\t[solBm.c]\tStart\n");#endif		pFbInfo = (SolFbInfoPtr) pScreen->devPrivates[solScreenIndex].ptr;	if (!monitorResolution) {		monitorResolution = MONO_TV_RESOLUTION; 	}	if(!mfbScreenInit(pScreen, (pointer) pFbInfo->plane,			  pFbInfo->scr_width, pFbInfo->scr_height,			  monitorResolution, monitorResolution,			  pFbInfo->fb_width)){		ErrorF("mfbScreenInit error.\n");		return FALSE;	}   	pScreen->whitePixel = 0;   	pScreen->blackPixel = 1;	miDCInitialize (pScreen, &solPointerScreenFuncs);	mfbCreateDefColormap(pScreen);	pScreen->SaveScreen = solBmSaveScreen;	solBmSaveScreen(pScreen, SCREEN_SAVER_FORCER);#ifdef	DEBUG	fprintf(stderr, "solBmInit\t[solBm.c]\tEnd\n");#endif	return TRUE;}voidsolBmGiveUp(sol_fb_info)SolFbInfoPtr sol_fb_info;{#ifdef	DEBUG	fprintf(stderr, "solBmGiveUp\t[solBm.c]\tStart\n");	(void) close(sol_fb_info->fbfd);	fprintf(stderr, "solBmGiveUp\t[solBm.c]\tEnd\n");#endif}

⌨️ 快捷键说明

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