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

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

?? sdl_cgxaccel.c

?? Simple DirectMedia Layer - Simple DirectMedia Layer 是一個跨平臺的多媒體庫設計用來提供快速圖形framebuffer和音頻驅動。應用MPEG為軟件
?? C
字號:
/*    SDL - Simple DirectMedia Layer    Copyright (C) 1997, 1998, 1999, 2000  Sam Lantinga    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 of the License, or (at your option) any later version.    This library 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    Library General Public License for more details.    You should have received a copy of the GNU Library General Public    License along with this library; if not, write to the Free    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA    Sam Lantinga    slouken@libsdl.org*/#ifdef SAVE_RCSIDstatic char rcsid = "@(#) $Id: SDL_cgxaccel.c,v 1.4 2002/03/06 11:23:03 slouken Exp $";#endif#include "SDL_error.h"#include "SDL_endian.h"#include "SDL_sysvideo.h"#include "SDL_blit.h"#include "SDL_video.h"#include "SDL_cgxvideo.h"static int CGX_HWAccelBlit(SDL_Surface *src, SDL_Rect *srcrect,					SDL_Surface *dst, SDL_Rect *dstrect);// These are needed to avoid register troubles with gcc -O2!#if defined(__SASC) || defined(__PPC__) || defined(MORPHOS)#define BMKBRP(a,b,c,d,e,f,g,h,i,j) BltMaskBitMapRastPort(a,b,c,d,e,f,g,h,i,j)#define	BBRP(a,b,c,d,e,f,g,h,i) BltBitMapRastPort(a,b,c,d,e,f,g,h,i)#define BBB(a,b,c,d,e,f,g,h,i,j,k) BltBitMap(a,b,c,d,e,f,g,h,i,j,k)#elsevoid BMKBRP(struct BitMap *a,WORD b, WORD c,struct RastPort *d,WORD e,WORD f,WORD g,WORD h,UBYTE i,APTR j){BltMaskBitMapRastPort(a,b,c,d,e,f,g,h,i,j);}void BBRP(struct BitMap *a,WORD b, WORD c,struct RastPort *d,WORD e,WORD f,WORD g,WORD h,UBYTE i){BltBitMapRastPort(a,b,c,d,e,f,g,h,i);}void BBB(struct BitMap *a,WORD b, WORD c,struct BitMap *d,WORD e,WORD f,WORD g,WORD h,UBYTE i,UBYTE j,UWORD *k){BltBitMap(a,b,c,d,e,f,g,h,i,j,k);}#endifint CGX_SetHWColorKey(_THIS,SDL_Surface *surface, Uint32 key){	if(surface->hwdata)	{		if(surface->hwdata->mask)			free(surface->hwdata->mask);		if(surface->hwdata->mask=malloc(RASSIZE(surface->w,surface->h)))		{			Uint32 pitch,ok=0;			APTR lock;			memset(surface->hwdata->mask,255,RASSIZE(surface->w,surface->h));			D(bug("Building colorkey mask: color: %ld, size: %ld x %ld, %ld bytes...Bpp:%ld\n",key,surface->w,surface->h,RASSIZE(surface->w,surface->h),surface->format->BytesPerPixel));			if(lock=LockBitMapTags(surface->hwdata->bmap,LBMI_BASEADDRESS,(ULONG)&surface->pixels,					LBMI_BYTESPERROW,(ULONG)&pitch,TAG_DONE))			{				switch(surface->format->BytesPerPixel)				{					case 1:					{						unsigned char k=key;						register int i,j,t;						register unsigned char *dest=surface->hwdata->mask,*map=surface->pixels;						pitch-=surface->w;						for(i=0;i<surface->h;i++)						{							for(t=128,j=0;j<surface->w;j++)							{								if(*map==k)									*dest&=~t;									t>>=1;								if(t==0)								{									dest++;									t=128;								}								map++;							}							map+=pitch;						}					}					break;					case 2:					{						Uint16 k=key,*mapw;						register int i,j,t;						register unsigned char *dest=surface->hwdata->mask,*map=surface->pixels;						for(i=surface->h;i;--i)						{							mapw=(Uint16 *)map;							for(t=128,j=surface->w;j;--j)							{								if(*mapw==k)									*dest&=~t;								t>>=1;								if(t==0)								{									dest++;									t=128;								}								mapw++;							}							map+=pitch;						}					}					break;					case 4:					{						Uint32 *mapl;						register int i,j,t;						register unsigned char *dest=surface->hwdata->mask,*map=surface->pixels;						for(i=surface->h;i;--i)						{							mapl=(Uint32 *)map;							for(t=128,j=surface->w;j;--j)							{								if(*mapl==key)									*dest&=~t;								t>>=1;								if(t==0)								{									dest++;									t=128;								}								mapl++;							}							map+=pitch;						}					}					break;					default:						D(bug("Pixel mode non supported for color key..."));						free(surface->hwdata->mask);						surface->hwdata->mask=NULL;						ok=-1;				}				UnLockBitMap(lock);				D(bug("...Colorkey built!\n"));				return ok;			}		}	}	D(bug("HW colorkey not supported for this depth\n"));	return -1;}int CGX_CheckHWBlit(_THIS,SDL_Surface *src,SDL_Surface *dst){// Doesn't support yet alpha blitting	if(src->hwdata&& !(src->flags & (SDL_SRCALPHA)))	{		D(bug("CheckHW blit... OK!\n"));		if ( (src->flags & SDL_SRCCOLORKEY) == SDL_SRCCOLORKEY ) {			if ( CGX_SetHWColorKey(this, src, src->format->colorkey) < 0 ) {				src->flags &= ~SDL_HWACCEL;				return -1;			}		}		src->flags|=SDL_HWACCEL;		src->map->hw_blit = CGX_HWAccelBlit;		return 1;	}	else		src->flags &= ~SDL_HWACCEL;	D(bug("CheckHW blit... NO!\n"));	return 0;}static int temprp_init=0;static struct RastPort temprp;static int CGX_HWAccelBlit(SDL_Surface *src, SDL_Rect *srcrect,					SDL_Surface *dst, SDL_Rect *dstrect){	struct SDL_VideoDevice *this=src->hwdata->videodata;//	D(bug("Accel blit!\n"));	if(src->flags&SDL_SRCCOLORKEY && src->hwdata->mask)	{		if(dst==SDL_VideoSurface)		{			BMKBRP(src->hwdata->bmap,srcrect->x,srcrect->y,						SDL_RastPort,dstrect->x+SDL_Window->BorderLeft,dstrect->y+SDL_Window->BorderTop,						srcrect->w,srcrect->h,0xc0,src->hwdata->mask);		}		else if(dst->hwdata)		{			if(!temprp_init)			{				InitRastPort(&temprp);				temprp_init=1;			}			temprp.BitMap=(struct BitMap *)dst->hwdata->bmap;			BMKBRP(src->hwdata->bmap,srcrect->x,srcrect->y,						&temprp,dstrect->x,dstrect->y,						srcrect->w,srcrect->h,0xc0,src->hwdata->mask);					}	}	else if(dst==SDL_VideoSurface)	{		BBRP(src->hwdata->bmap,srcrect->x,srcrect->y,SDL_RastPort,dstrect->x+SDL_Window->BorderLeft,dstrect->y+SDL_Window->BorderTop,srcrect->w,srcrect->h,0xc0);	}	else if(dst->hwdata)		BBB(src->hwdata->bmap,srcrect->x,srcrect->y,dst->hwdata->bmap,dstrect->x,dstrect->y,srcrect->w,srcrect->h,0xc0,0xff,NULL);	return 0;}int CGX_FillHWRect(_THIS,SDL_Surface *dst,SDL_Rect *dstrect,Uint32 color){	if(dst==SDL_VideoSurface)	{		FillPixelArray(SDL_RastPort,dstrect->x+SDL_Window->BorderLeft,dstrect->y+SDL_Window->BorderTop,dstrect->w,dstrect->h,color);	}	else if(dst->hwdata)	{		if(!temprp_init)		{			InitRastPort(&temprp);			temprp_init=1;		}		temprp.BitMap=(struct BitMap *)dst->hwdata->bmap;		FillPixelArray(&temprp,dstrect->x,dstrect->y,dstrect->w,dstrect->h,color);	}	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va欧美va人人爽| 一区二区三区波多野结衣在线观看| 在线精品视频一区二区三四| 国内成人精品2018免费看| 日韩av中文字幕一区二区三区| 色屁屁一区二区| 成人黄色av电影| eeuss鲁片一区二区三区在线观看| 亚洲少妇最新在线视频| 中文字幕佐山爱一区二区免费| 色琪琪一区二区三区亚洲区| 日本高清免费不卡视频| 欧美三级资源在线| 91成人在线精品| 91精品国产综合久久蜜臀| 日韩丝袜美女视频| 久久久久久影视| 亚洲人午夜精品天堂一二香蕉| 欧美一区二区三区婷婷月色| 这里只有精品电影| 精品国产免费久久| 国产精品国产a| 亚洲第一二三四区| 久久精品国产精品亚洲精品 | 欧美日本乱大交xxxxx| 一本大道综合伊人精品热热| 日本精品一级二级| 欧美不卡在线视频| 国产精品福利一区二区三区| 香蕉久久一区二区不卡无毒影院| 中文欧美字幕免费| 性做久久久久久免费观看| 日本欧美一区二区在线观看| 国产精品88888| 国产日韩欧美制服另类| 亚洲欧美日韩国产手机在线| 午夜欧美2019年伦理| 国产一区二区在线观看视频| 91蜜桃在线免费视频| 欧美精品乱码久久久久久按摩| 成人美女在线视频| 欧美久久久久久蜜桃| 国产性色一区二区| 亚洲va在线va天堂| 国产成人精品一区二区三区四区 | 国产清纯白嫩初高生在线观看91 | 久久新电视剧免费观看| 亚洲色图在线播放| 久久97超碰色| 在线一区二区三区四区| 国产欧美日韩在线| 蜜桃av一区二区在线观看| 91啦中文在线观看| 国产亚洲精品免费| 国内精品国产成人| 91麻豆精品国产91久久久| 亚洲人成在线播放网站岛国| 久久国产尿小便嘘嘘| 欧美日韩免费电影| 亚洲精品老司机| 99久久免费国产| 久久精品夜色噜噜亚洲aⅴ| 日韩精品91亚洲二区在线观看| 亚洲视频电影在线| 成人黄色av电影| 亚洲国产精品精华液ab| 日本中文字幕一区二区有限公司| 日韩精品欧美精品| 欧美日韩国产一级二级| 亚洲色图清纯唯美| 成人黄色大片在线观看| 国产精品三级在线观看| 国产原创一区二区三区| 精品欧美乱码久久久久久1区2区| 欧美日韩一区二区在线视频| 樱花草国产18久久久久| 夫妻av一区二区| 国产欧美日韩视频在线观看| 国产麻豆精品在线观看| 久久精品一区二区| jvid福利写真一区二区三区| 国产精品―色哟哟| 色综合中文字幕国产 | 一区二区三区欧美视频| 国产精品99精品久久免费| ww久久中文字幕| 极品尤物av久久免费看| 久久蜜臀中文字幕| 成人黄色网址在线观看| 中国色在线观看另类| 97久久精品人人澡人人爽| 亚洲视频在线观看一区| 在线观看视频欧美| 亚洲一区二区三区中文字幕| 91精品国产品国语在线不卡| 国内精品伊人久久久久av影院 | 成人av资源在线观看| 中文字幕亚洲区| 精品视频一区 二区 三区| 日本亚洲欧美天堂免费| 精品久久久久久无| 春色校园综合激情亚洲| 亚洲一区二区视频在线| 日韩欧美一区二区久久婷婷| 丁香六月综合激情| 亚洲最大的成人av| 欧美r级在线观看| 成人ar影院免费观看视频| 国产精品亚洲人在线观看| 国产精品久久久久aaaa| 欧美无砖专区一中文字| 国产精品资源在线看| 亚洲精品美腿丝袜| 久久久久久日产精品| 在线观看91视频| 国产老妇另类xxxxx| 亚洲一区二区在线免费看| 久久久国产一区二区三区四区小说| 丝袜美腿亚洲一区二区图片| 欧美激情一区二区三区| 91精品国产乱码久久蜜臀| 成人永久aaa| 久久99久久99精品免视看婷婷| 国产精品综合久久| 午夜激情综合网| 欧美国产精品一区二区三区| 欧美性大战久久| 国产黄人亚洲片| 蜜芽一区二区三区| 亚洲欧美另类图片小说| 欧美成人精品高清在线播放| 在线视频国内一区二区| 国产99精品视频| 美腿丝袜亚洲三区| 亚洲一二三四在线| 中文字幕在线免费不卡| 久久众筹精品私拍模特| 欧美日本一道本在线视频| 91香蕉视频在线| 国产精品一品二品| 精品一区二区三区免费播放| 一区二区日韩av| 18成人在线视频| 国产精品久久久久久户外露出 | 亚洲综合激情另类小说区| 国产亚洲综合av| 欧美精品一区二区在线观看| 欧美日韩国产中文| 在线日韩av片| 欧美色偷偷大香| 欧美精品乱码久久久久久| 色呦呦网站一区| 日本韩国视频一区二区| 99vv1com这只有精品| 91最新地址在线播放| 97久久超碰国产精品电影| 波多野结衣一区二区三区 | 成人h精品动漫一区二区三区| 国产精品国产三级国产| 国产精品国产三级国产普通话99| 91同城在线观看| 成人毛片视频在线观看| 成人黄色大片在线观看| av亚洲精华国产精华精| eeuss鲁一区二区三区| 色88888久久久久久影院野外| 亚洲自拍欧美精品| 亚洲成人高清在线| 日韩精品三区四区| 国产在线精品一区二区不卡了 | 欧美tk—视频vk| 日韩欧美色综合网站| 欧美精品一区二区蜜臀亚洲| 久久久久久久综合日本| 国产精品第一页第二页第三页| 欧美一区午夜精品| 国产香蕉久久精品综合网| 久久网这里都是精品| 中文字幕一区在线观看视频| 夜夜精品视频一区二区| 美女视频一区二区三区| 国产成人综合精品三级| 色综合久久中文综合久久97| 3d成人h动漫网站入口| 久久一留热品黄| 一区二区三区在线视频免费观看| 欧美理论电影在线| 国产日产欧美一区| 亚洲欧美韩国综合色| 美女网站在线免费欧美精品| av在线不卡观看免费观看| 91精品国产综合久久精品麻豆 | 亚洲第一电影网| 国产精品一区久久久久| 91色九色蝌蚪| 337p粉嫩大胆色噜噜噜噜亚洲| 6080国产精品一区二区| 国产精品国产自产拍在线| 日韩精品午夜视频| 91精品办公室少妇高潮对白|