亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fb3dfx.c

?? mini gui 1.6.8 lib and source
?? C
字號:
/***  $Id: fb3dfx.c,v 1.3 2005/04/22 07:38:19 weiym Exp $**  **  Port to MiniGUI by Wei Yongming (2001/10/03).**  Copyright (C) 2001 ~ 2002 Wei Yongming.**  Copyright (C) 2003 Feynman Software.****  SDL - Simple DirectMedia Layer**  Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#include <stdio.h>#include "common.h"#include "newgal.h"#include "blit.h"#include "fb3dfx.h"#include "3dfx_mmio.h"/* Wait for vertical retrace */static void WaitVBL(_THIS){	/* find start of retrace */	tdfx_waitidle();	while( (tdfx_in32(TDFX_STATUS) & STATUS_RETRACE) == STATUS_RETRACE )		;	/* wait until we're past the start */	while( (tdfx_in32(TDFX_STATUS) & STATUS_RETRACE) == 0 )		; }static void WaitIdle(_THIS){	tdfx_waitidle();}/* Sets video mem colorkey and accelerated blit function */static int SetHWColorKey(_THIS, GAL_Surface *surface, Uint32 key){	return(0);}static int FillHWRect(_THIS, GAL_Surface *dst, GAL_Rect *rect, Uint32 color){	int bpp;	char *dst_base;	Uint32 format;	int dstX, dstY;	/* Don't blit to the display surface when switched away */	/* Set the destination pixel format */	dst_base = (char *)((char *)dst->pixels - mapped_mem);	bpp = dst->format->BitsPerPixel;	format = dst->pitch | ((bpp+((bpp==8) ? 0 : 8)) << 13);	/* Calculate source and destination base coordinates */	dstX = rect->x;	dstY = rect->y;	/* Execute the fill command */	tdfx_wait(6);	tdfx_out32(DSTBASE, (Uint32)dst_base);	tdfx_out32(DSTFORMAT, format);	tdfx_out32(COLORFORE, color);	tdfx_out32(COMMAND_2D, COMMAND_2D_FILLRECT);	tdfx_out32(DSTSIZE, rect->w | (rect->h << 16));	tdfx_out32(LAUNCH_2D, dstX | (dstY << 16));	FB_AddBusySurface(dst);	return(0);}static int HWAccelBlit(GAL_Surface *src, GAL_Rect *srcrect,                       GAL_Surface *dst, GAL_Rect *dstrect){	GAL_VideoDevice *this = current_video;	int bpp;	Uint32 src_format;	Uint32 dst_format;	char *src_base;	char *dst_base;	int srcX, srcY;	int dstX, dstY;	Uint32 blitop;	Uint32 use_colorkey;	/* Don't blit to the display surface when switched away */	/* Set the source and destination pixel format */	src_base = (char *)((char *)src->pixels - mapped_mem);	bpp = src->format->BitsPerPixel;	src_format = src->pitch | ((bpp+((bpp==8) ? 0 : 8)) << 13);	dst_base = (char *)((char *)dst->pixels - mapped_mem);	bpp = dst->format->BitsPerPixel;	dst_format = dst->pitch | ((bpp+((bpp==8) ? 0 : 8)) << 13);	srcX = srcrect->x;	srcY = srcrect->y;	dstX = dstrect->x;	dstY = dstrect->y;	/* Assemble the blit operation */	blitop = COMMAND_2D_BITBLT | (0xCC << 24);	if ( srcX <= dstX ) {		blitop |= BIT(14);		srcX += (dstrect->w - 1);		dstX += (dstrect->w - 1);	}	if ( srcY <= dstY ) {		blitop |= BIT(15);		srcY += (dstrect->h - 1);		dstY += (dstrect->h - 1);	}	/* Perform the blit! */	if ( (src->flags & GAL_SRCCOLORKEY) == GAL_SRCCOLORKEY ) {    		tdfx_wait(3);    		tdfx_out32(SRCCOLORKEYMIN, src->format->colorkey);    		tdfx_out32(SRCCOLORKEYMAX, src->format->colorkey);    		tdfx_out32(ROP_2D, 0xAA00);		use_colorkey = 1;	} else {		use_colorkey = 0;	}	tdfx_wait(9);	tdfx_out32(SRCBASE, (Uint32)src_base);	tdfx_out32(SRCFORMAT, src_format);	tdfx_out32(DSTBASE, (Uint32)dst_base);	tdfx_out32(DSTFORMAT, src_format);	tdfx_out32(COMMAND_2D, blitop);	tdfx_out32(COMMANDEXTRA_2D, use_colorkey);	tdfx_out32(DSTSIZE, dstrect->w | (dstrect->h << 16));	tdfx_out32(DSTXY, dstX | (dstY << 16));	tdfx_out32(LAUNCH_2D, srcX | (srcY << 16));	FB_AddBusySurface(src);	FB_AddBusySurface(dst);	return(0);}static int CheckHWBlit(_THIS, GAL_Surface *src, GAL_Surface *dst){	int accelerated;	/* Set initial acceleration on */	src->flags |= GAL_HWACCEL;	/* Set the surface attributes */	if ( (src->flags & GAL_SRCALPHA) == GAL_SRCALPHA ) {		if ( ! this->info.blit_hw_A ) {			src->flags &= ~GAL_HWACCEL;		}	}	if ( (src->flags & GAL_SRCCOLORKEY) == GAL_SRCCOLORKEY ) {		if ( ! this->info.blit_hw_CC ) {			src->flags &= ~GAL_HWACCEL;		}	}	/* Check to see if final surface blit is accelerated */	accelerated = !!(src->flags & GAL_HWACCEL);	if ( accelerated ) {		src->map->hw_blit = HWAccelBlit;	}	return(accelerated);}void FB_3DfxAccel(_THIS, __u32 card){	/* We have hardware accelerated surface functions */	this->CheckHWBlit = CheckHWBlit;	wait_vbl = WaitVBL;	wait_idle = WaitIdle;	/* Reset the 3Dfx controller */	tdfx_out32(BRESERROR0, 0);	tdfx_out32(BRESERROR1, 0);	/* The 3Dfx has an accelerated color fill */	this->info.blit_fill = 1;	this->FillHWRect = FillHWRect;	/* The 3Dfx has accelerated normal and colorkey blits */	this->info.blit_hw = 1;	this->info.blit_hw_CC = 1;	this->SetHWColorKey = SetHWColorKey;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级电影网站| 秋霞成人午夜伦在线观看| 亚洲丰满少妇videoshd| 国产原创一区二区三区| 欧美日韩亚洲综合在线| 国产欧美一区二区精品忘忧草| 亚洲精品美国一| 高清视频一区二区| 欧美一区二区三区在线看| 亚洲自拍偷拍网站| av亚洲精华国产精华精华| 26uuu成人网一区二区三区| 日韩激情一二三区| 在线精品国精品国产尤物884a| 欧美激情一区在线观看| 美国三级日本三级久久99| 欧美色图在线观看| 亚洲日穴在线视频| 99久久亚洲一区二区三区青草| 欧美大片一区二区| 美女诱惑一区二区| 91精品国产日韩91久久久久久| 亚洲欧美日韩国产手机在线| 成人久久久精品乱码一区二区三区 | 日本一区二区三区dvd视频在线| 免费在线欧美视频| 91精品黄色片免费大全| 五月天丁香久久| 制服丝袜亚洲播放| 六月丁香婷婷色狠狠久久| 日韩欧美亚洲国产另类| 另类调教123区| 欧美www视频| 国内精品久久久久影院色| 精品国产乱码久久久久久久| 国产一区在线不卡| 欧美激情一区不卡| 成人av在线网站| 亚洲免费观看高清在线观看| 色爱区综合激月婷婷| 一区二区在线电影| 欧美色欧美亚洲另类二区| 亚洲.国产.中文慕字在线| 91精品国产入口| 国产一二精品视频| 专区另类欧美日韩| 欧美午夜视频网站| 美女精品一区二区| 国产精品网友自拍| k8久久久一区二区三区| 亚洲国产精品自拍| 精品久久久久久无| a级精品国产片在线观看| 亚洲午夜三级在线| 日韩精品一区二区三区中文精品| 国产精品性做久久久久久| 国产精品天干天干在线综合| 在线看日本不卡| 精品无码三级在线观看视频| 中文字幕一区二区三区乱码在线| 日本大香伊一区二区三区| 日本视频一区二区三区| 久久精品视频网| 欧美在线观看一区| 国产精品综合久久| 亚洲成人动漫精品| 国产欧美日韩麻豆91| 在线观看www91| 国产在线精品国自产拍免费| 亚洲欧美偷拍另类a∨色屁股| 欧美精品视频www在线观看| 高清久久久久久| 午夜精品久久久久久| 国产精品传媒入口麻豆| 欧美一级二级三级蜜桃| 色综合一区二区三区| 另类小说一区二区三区| 亚洲激情校园春色| 国产三级精品视频| 91精品国产综合久久精品性色| 不卡的看片网站| 久久国产精品99精品国产| 夜夜亚洲天天久久| 国产精品高清亚洲| 久久亚洲一级片| 制服.丝袜.亚洲.另类.中文| 91网上在线视频| 国产精品中文字幕欧美| 免费看欧美美女黄的网站| 一区二区三区中文免费| 久久久久久久久99精品| 日韩免费电影网站| 91麻豆精品国产91久久久更新时间 | 国产精品久久久久精k8| 欧美一区二区三区性视频| 欧洲av在线精品| 91在线视频网址| av成人动漫在线观看| 国产一二精品视频| 激情另类小说区图片区视频区| 午夜不卡av在线| 亚洲自拍偷拍av| 亚洲一区二区三区影院| 亚洲精品中文字幕在线观看| 国产精品久久看| 国产精品伦一区| 国产精品午夜免费| 日本一区二区三区dvd视频在线| 欧美精品一区二区三区蜜臀| 精品精品国产高清a毛片牛牛| 制服丝袜av成人在线看| 欧美一区午夜精品| 日韩欧美一级特黄在线播放| 日韩一区二区免费在线电影| 日韩一区二区在线观看视频播放 | eeuss鲁片一区二区三区| 高清在线不卡av| 不卡一区二区中文字幕| 91在线视频网址| 欧美伊人久久大香线蕉综合69| 欧洲视频一区二区| 欧美午夜精品一区二区蜜桃| 欧美日韩国产片| 91精品国产一区二区人妖| 日韩精品一区二区三区视频播放| 久久众筹精品私拍模特| 久久久另类综合| 日韩久久一区二区| 亚洲一区二区欧美| 日韩精品乱码免费| 国产自产2019最新不卡| 成人一区二区三区视频| 色综合久久久久久久久| 欧美美女网站色| 久久综合久久综合久久综合| 国产午夜久久久久| 亚洲免费av高清| 奇米影视一区二区三区小说| 国产风韵犹存在线视精品| 一道本成人在线| 欧美大片拔萝卜| 综合久久久久久久| 石原莉奈在线亚洲三区| 国产一区二区影院| 91麻豆国产福利精品| 日韩精品一区二区三区视频| 国产精品国产自产拍高清av王其| 亚洲综合丝袜美腿| 国产一区二区三区美女| 91浏览器在线视频| 欧美xxxxxxxxx| 亚洲人成人一区二区在线观看| 日韩精品免费专区| 99久久99久久久精品齐齐| 欧美一区二区三区四区久久| 中文字幕一区二区视频| 男人的天堂亚洲一区| 色综合中文综合网| 成人av网站在线观看免费| 欧美视频一区二| 欧美激情在线看| 蜜臀av性久久久久蜜臀aⅴ四虎| 99久久国产综合色|国产精品| 欧美一区三区二区| 亚洲天堂av老司机| 国产美女在线观看一区| 5566中文字幕一区二区电影| 国产精品久久久久久久久免费桃花| 天天av天天翘天天综合网| zzijzzij亚洲日本少妇熟睡| 26uuu精品一区二区在线观看| 亚洲一卡二卡三卡四卡无卡久久| 国产精品亚洲成人| 欧美mv日韩mv亚洲| 日韩精彩视频在线观看| 色偷偷88欧美精品久久久| 国产亚洲成年网址在线观看| 久久精品国产亚洲aⅴ| 欧美日韩亚洲综合| 亚洲男人的天堂av| 成人av电影免费在线播放| 2022国产精品视频| 麻豆成人久久精品二区三区小说| 欧美日韩综合在线| 亚洲一区二区免费视频| 91亚洲资源网| 中文字幕一区二区三区蜜月| 成人综合在线视频| 欧美国产一区在线| 国产69精品久久99不卡| 久久精品一区二区三区不卡| 久久国产夜色精品鲁鲁99| 制服视频三区第一页精品| 石原莉奈一区二区三区在线观看| 欧美日韩一区二区在线观看视频| 一区二区在线观看免费| 日本道精品一区二区三区| 亚洲一区免费在线观看| 欧美色涩在线第一页| 午夜精品福利久久久|