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

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

?? gfx_drawcontrol.c.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
	}	else if (isJpeg(g_bitmaps[bmpindex].path))	{		status = load_jpeg(pRua, &g_bitmaps[bmpindex], bmpsize);	}	else	{		status = load_gif(pRua, &g_bitmaps[bmpindex], bmpsize);	}	if (RMFAILED(status) || g_bitmaps[bmpindex].bmp.uiDataSize == 0)	{		RMDBGLOG((GFXDBG, "Error %s while loading %s \n", RMstatusToString(status), g_bitmaps[bmpindex].path));		RMMemset(&g_bitmaps[bmpindex], '\0', sizeof(g_bitmaps[bmpindex]));		return status;	}	return status;}void ResetNonBackgroundBuffers(){	RMuint8 i;	RMuint32 usedbuffer = 0;	RMEnterCriticalSection(g_cs);	for (i = 1; i < MAX_BITMAPS; i++)	{		if (g_bitmaps[i].path[0] != '\0')		{			usedbuffer += g_bitmaps[i].bmp.uiDataSize;			// clear bmp buffer			RMMemset(&g_bitmaps[i], 0, sizeof(RMbitmapdata));		}		else			break;	}	ResetUsedBuffer(usedbuffer);	RMLeaveCriticalSection(g_cs);}RMstatus GetBitmapIndex(struct RUA *pRua, RMascii* path, RMuint8 *bmpindex, RMbool attemptReload){	RMuint8 i;	RMstatus status;	RMuint32 bmpsize = 0;	RMuint8 index;	RMEnterCriticalSection(g_cs);	// check if we already have the bitmap data from index 1 since 0 is reserved to background image	for (i = 1; i < MAX_BITMAPS; i++)	{		if (g_bitmaps[i].path[0] != '\0')		{			if (RMCompareAscii(g_bitmaps[i].path, path) && g_bitmaps[i].charwidth == 0)			{				*bmpindex = i;				UpdateCache(i);				RMLeaveCriticalSection(g_cs);				return RM_OK;			}			// not loaded			continue;		}		else		{			RMCopyAscii(g_bitmaps[i].path, path);			g_bitmaps[i].charwidth = 0;			*bmpindex = i;			status = LoadImage(pRua, i, &bmpsize);			// check if not background file and try loading again by			// resetting used bitmap buffers one at the time			if (status == RM_FATALOUTOFMEMORY)			{				status = FindFreeSpace(bmpsize, &index);				{					RMCopyAscii(g_bitmaps[index].path, path);					g_bitmaps[index].charwidth = 0;					*bmpindex = index;					status = LoadImage(pRua, index, &bmpsize);				}			}			RMLeaveCriticalSection(g_cs);			return status;		}	}	RMLeaveCriticalSection(g_cs);	// more than MAX_BITMAPS!!!!	return RM_ERROR;}// background is stored at index 0RMstatus LoadPageBackground(struct RUA *pRua, RMascii* path){	// check if we already have the bitmap data	//	printf("%s\n%s\n", path, g_bitmaps[0].path);	if (RMCompareAscii(g_bitmaps[0].path, path))	{		return RM_OK;	}	else	{		RMstatus status;		RMuint32 bmpsize = 0;		RMEnterCriticalSection(g_cs);		RMCopyAscii(g_bitmaps[0].path, path);		g_bitmaps[0].isBackground = TRUE;		printf("load background\n");		status = LoadImage(pRua, 0, &bmpsize);		UpdateCache(0);		RMLeaveCriticalSection(g_cs);		return status;	}	return RM_ERROR;}RMstatus SetTextPalette(struct RUA *pRua, RMuint32 foregroundcolor, RMuint32 backgroundcolor, RMbool transparentbkgnd){	struct GFXEngine_Palette_1BPP_type palette_param;	RMstatus status;	palette_param.Palette[0] = foregroundcolor;	palette_param.Palette[1] = (transparentbkgnd ? backgroundcolor & 0xffffffff : 0);	palette_param.SurfaceID = GFX_SURFACE_ID_Y;	if (CompareTextPalette(&palette_param))	{		//		printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> skipping TEXT palette\n");		return RM_OK;	}	//	printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> setting TEXT palette\n");	status = GFX1BPPPaletteProperty(pRua, &palette_param);	if (RMFAILED(status))		RMDBGLOG((GFXDBG, "Error sending command set palette\n"));	RMMemcpy(&g_lastpal, &palette_param, sizeof(palette_param));	g_last_palbpp = 1;	return status;}RMstatus SetTextColorFormat(struct RUA *pRua){	struct GFXEngine_ColorFormat_type format_param;	RMstatus status;	// color format	format_param.SurfaceID = GFX_SURFACE_ID_Y;	format_param.MainMode = EMhwlibColorMode_LUT_1BPP;	format_param.SubMode = EMhwlibColorFormat_32BPP;	status = GFXColorFormatProperty(pRua, &format_param);	if (RMFAILED(status))		RMDBGLOG((GFXDBG, "Error setting color format parameters\n"));	return status;}RMstatus SetPalette(struct RUA *pRua, RMuint8 alpha, RMuint8 bmpindex, RMuint32 surfaceID){	RMstatus status = RM_OK;	RMuint32 i;	RMuint8 bpp = g_bitmaps[bmpindex].bmp.uiNbBitPerPixel;	RMuint32 uiNbLUTColor = g_bitmaps[bmpindex].bmp.uiPaletteSize / sizeof(struct tagRMRGBQuad);	struct GFXEngine_Palette_1BPP_type palette1bpp_param;	struct GFXEngine_Palette_2BPP_type palette2bpp_param;	struct GFXEngine_Palette_4BPP_type palette4bpp_param;	struct GFXEngine_Palette_8BPP_type palette8bpp_param;	switch (bpp)	{	case 1:		for (i = 0; i < uiNbLUTColor; i++)		{			struct tagRMRGBQuad *pQuad;			pQuad = (struct tagRMRGBQuad*) (g_bitmaps[bmpindex].bmp.palette + i);			palette1bpp_param.Palette[i] = alpha << 24 | pQuad->rgbRed << 16 | pQuad->rgbGreen << 8 | pQuad->rgbBlue;			if (g_bitmaps[bmpindex].usetransparentcolor)				if ((palette1bpp_param.Palette[i] & 0x00ffffff) == (g_bitmaps[bmpindex].transparentcolor & 0x00ffffff))					palette1bpp_param.Palette[i] = palette1bpp_param.Palette[i] & 0x00ffffff;		}		palette1bpp_param.SurfaceID = surfaceID;		status = GFX1BPPPaletteProperty(pRua, &palette1bpp_param);		break;	case 2:		for (i = 0; i < uiNbLUTColor; i++)		{			struct tagRMRGBQuad *pQuad;			pQuad = (struct tagRMRGBQuad*) (g_bitmaps[bmpindex].bmp.palette + i);			palette2bpp_param.Palette[i] = alpha << 24 | pQuad->rgbRed << 16 | pQuad->rgbGreen << 8 | pQuad->rgbBlue;			if (g_bitmaps[bmpindex].usetransparentcolor)				if ((palette2bpp_param.Palette[i] & 0x00ffffff) == (g_bitmaps[bmpindex].transparentcolor & 0x00ffffff))					palette2bpp_param.Palette[i] = palette2bpp_param.Palette[i] & 0x00ffffff;		}		palette2bpp_param.SurfaceID = surfaceID;		status = GFX2BPPPaletteProperty(pRua, &palette2bpp_param);		break;	case 4:		for (i = 0; i < uiNbLUTColor; i++)		{			struct tagRMRGBQuad *pQuad;			pQuad = (struct tagRMRGBQuad*) (g_bitmaps[bmpindex].bmp.palette + i);			palette4bpp_param.Palette[i] = alpha << 24 | pQuad->rgbRed << 16 | pQuad->rgbGreen << 8 | pQuad->rgbBlue;			if (g_bitmaps[bmpindex].usetransparentcolor)				if ((palette4bpp_param.Palette[i] & 0x00ffffff) == (g_bitmaps[bmpindex].transparentcolor & 0x00ffffff))					palette4bpp_param.Palette[i] = palette4bpp_param.Palette[i] & 0x00ffffff;		}		palette4bpp_param.SurfaceID = surfaceID;		status = GFX4BPPPaletteProperty(pRua, &palette4bpp_param);		break;	case 8:		for (i = 0; i < uiNbLUTColor; i++)		{			struct tagRMRGBQuad *pQuad;			pQuad = (struct tagRMRGBQuad*) (g_bitmaps[bmpindex].bmp.palette + i);			palette8bpp_param.Palette[i] = alpha << 24 | pQuad->rgbRed << 16 | pQuad->rgbGreen << 8 | pQuad->rgbBlue;			if (g_bitmaps[bmpindex].usetransparentcolor)				if ((palette8bpp_param.Palette[i] & 0x00ffffff) == (g_bitmaps[bmpindex].transparentcolor & 0x00ffffff))				{					palette8bpp_param.Palette[i] = palette8bpp_param.Palette[i] & 0x00ffffff;				}		}		if (CompareBitmapPalette(&palette8bpp_param))		{			//				printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> skipping palette %d bpp\n", bpp);			return RM_OK;		}		//			printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> setting palette %d bpp\n", bpp);		palette8bpp_param.SurfaceID = surfaceID;		status = GFX8BPPPaletteProperty(pRua, &palette8bpp_param);		RMMemcpy(&g_lastpal, &palette8bpp_param, sizeof(palette4bpp_param));		g_last_palbpp = 8;		break;	default:		status = RM_ERROR;		break;	}	if (RMFAILED(status))		RMDBGLOG((GFXDBG, "Error sending command set palette\n"));	return status;}RMstatus DrawBitmapBlendBack(struct RUA *pRua, RMint32 x, RMint32 y, RMuint32 transparentcolor, RMbool usetransparentcolor,		RMuint8 alpha, RMuint8 bmpindex, RMbool blend, RMuint8 parentindex){	RMstatus status = RM_OK;	struct GFXEngine_BlendRectangles_type blend_param;	RMuint32 width, height;	RMuint32 mainmode, bkmode;	RMuint32 startaddr;	width = g_bitmaps[bmpindex].bmp.uiWidth;	height = g_bitmaps[bmpindex].bmp.uiHeight;	//verify bitmap fits within surface	if ((RMuint32) (width + x) > gdata.osdWidth || (RMuint32) (height + y) > gdata.osdHeight)	{		RMDBGLOG((ENABLE, "GOES OUTSIDE SURFACE BOUNDARIES\n", g_bitmaps[bmpindex].path));		return RM_ERROR;	}	// setup input Y surface	// set transparency	g_bitmaps[bmpindex].transparentcolor = transparentcolor;	g_bitmaps[bmpindex].usetransparentcolor = usetransparentcolor;	// fill the palette	if (g_bitmaps[bmpindex].bmp.uiNbBitPerPixel <= 8)		SetPalette(pRua, alpha, bmpindex, GFX_SURFACE_ID_Y);	// color format	switch (g_bitmaps[bmpindex].bmp.uiNbBitPerPixel)	{	case 1:		mainmode = EMhwlibColorMode_LUT_1BPP;		break;	case 2:		mainmode = EMhwlibColorMode_LUT_2BPP;		break;	case 4:		mainmode = EMhwlibColorMode_LUT_4BPP;		break;	case 8:		mainmode = EMhwlibColorMode_LUT_8BPP;		break;	default:		mainmode = EMhwlibColorMode_TrueColor;		break;	}	startaddr = g_bitmaps[bmpindex].pBmpAddr;	if (g_bitmaps[parentindex].pBmpAddr == 0)		return RM_ERROR;	// setup X surface -- background	// color format	bkmode = EMhwlibColorMode_TrueColor;	status = SetInputSurface(pRua, bkmode, gdata.backBuffer.baseAddr, g_bitmaps[0].bmp.uiWidth, GFX_SURFACE_ID_X);	if (RMFAILED(status))		RMDBGLOG((GFXDBG, "Error setting surface parameters\n"));	// setup Y surface	// color format -- set above	status = SetInputSurface(pRua, mainmode, startaddr, width, GFX_SURFACE_ID_Y);	if (RMFAILED(status))		RMDBGLOG((GFXDBG, "Error setting surface parameters\n"));	blend_param.Src1X = 0; // YZ	blend_param.Src1Y = 0;	blend_param.Src2X = x; // X	blend_param.Src2Y = y;	blend_param.DstX = x;	blend_param.DstY = y;	blend_param.Width = width;	blend_param.Height = height;	blend_param.SaturateAlpha = FALSE;	status = GFXBlendRectanglesProperty(pRua, &blend_param);	return RM_OK;}RMstatus DrawBitmap(struct RUA *pRua, RMint32 x, RMint32 y, RMuint32 transparentcolor, RMbool usetransparentcolor, RMuint8 alpha,		RMuint8 bmpindex, RMbool blend, RMuint8 parentindex){	RMstatus status = RM_OK;	struct GFXEngine_BlendRectangles_type blend_param;	struct GFXEngine_MoveReplaceRectangle_type move_param;	RMuint32 width, height;	RMuint32 mainmode, bkmode;	RMuint32 startaddr;	width = g_bitmaps[bmpindex].bmp.uiWidth;	height = g_bitmaps[bmpindex].bmp.uiHeight;	//verify bitmap fits within surface	if ((RMuint32) (width + x) > gdata.osdWidth || (RMuint32) (height + y) > gdata.osdHeight)	{		RMDBGLOG((ENABLE, "GOES OUTSIDE SURFACE BOUNDARIES\n", g_bitmaps[bmpindex].path));		return RM_ERROR;	}	// setup input Y surface	// set transparency	g_bitmaps[bmpindex].transparentcolor = transparentcolor;	g_bitmaps[bmpindex].usetransparentcolor = usetransparentcolor;	// fill the palette	if (g_bitmaps[bmpindex].bmp.uiNbBitPerPixel <= 8)		SetPalette(pRua, alpha, bmpindex, GFX_SURFACE_ID_Y);	// color format	switch (g_bitmaps[bmpindex].bmp.uiNbBitPerPixel)	{	case 1:		mainmode = EMhwlibColorMode_LUT_1BPP;		break;	case 2:		mainmode = EMhwlibColorMode_LUT_2BPP;		break;	case 4:		mainmode = EMhwlibColorMode_LUT_4BPP;		break;	case 8:		mainmode = EMhwlibColorMode_LUT_8BPP;		break;	default:		mainmode = EMhwlibColorMode_TrueColor;		break;	}	startaddr = g_bitmaps[bmpindex].pBmpAddr;	if (bmpindex == 0 || blend == FALSE)	{		//		RMuint16 i;		RMASSERT(startaddr != 0);		// setup Y surface		status = SetInputSurface(pRua, mainmode, startaddr, width, GFX_SURFACE_ID_Y);		if (RMFAILED(status))			RMDBGLOG((GFXDBG, "Error setting surface parameters\n"));		//		for(i = 0; i < x; i++){		move_param.SrcX = 0;		move_param.SrcY = 0;		move_param.AlphaX = 0;		move_param.AlphaY = 0;		move_param.DstX = x;		//		move_param.DstX = i;		move_param.DstY = y;		move_param.Width = width;		move_param.Height = height;		move_param.Merge = FALSE;		status = GFXReplaceRectangleProperty(pRua, &move_param);		//		}		return RM_OK;	}	if (g_bitmaps[parentindex].pBmpAddr == 0)		return RM_ERROR;	// setup X surface -- background	// color format	switch (g_bitmaps[parentindex].bmp.uiNbBitPerPixel)	{	case 1:		bkmode = EMhwlibColorMode_LUT_1BPP;		break;	case 2:		bkmode = EMhwlibColorMode_LUT_2BPP;		break;	case 4:		bkmode = EMhwlibColorMode_LUT_4BPP;		break;	case 8:		bkmode = EMhwlibColorMode_LUT_8BPP;		break;	default:		bkmode = EMhwlibColorMode_TrueColor;		break;	}	status = SetInputSurface(pRua, bkmode, g_bitmaps[parentindex].pBmpAddr, g_bitmaps[parentindex].bmp.uiWidth, GFX_SURFACE_ID_X);	if (RMFAILED(status))		RMDBGLOG((GFXDBG, "Error setting surface parameters\n"));	// setup Y surface	// color format -- set above	status = SetInputSurface(pRua, mainmode, startaddr, width, GFX_SURFACE_ID_Y);	if (RMFAILED(status))		RMDBGLOG((GFXDBG, "Error setting surface parameters\n"));	blend_param.Src1X = 0; // YZ

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线观看 | 97久久超碰国产精品| 国内不卡的二区三区中文字幕| 性欧美大战久久久久久久久| 一区二区三区av电影| 亚洲一区电影777| 亚洲一区二区在线视频| 五月婷婷综合在线| 久久99国产精品久久99| 国产一区二区网址| 成人黄色在线网站| 色欧美片视频在线观看在线视频| 欧美专区在线观看一区| 欧美一区二区三区在线电影| 欧美tk—视频vk| 久久久99精品久久| 亚洲色欲色欲www在线观看| 亚洲黄色片在线观看| 亚洲成av人片www| 美女视频免费一区| 国产91在线看| 欧美视频在线一区二区三区| 日韩欧美国产一区二区在线播放| 久久色视频免费观看| 136国产福利精品导航| 视频一区二区三区中文字幕| 国产一区二三区好的| 色噜噜狠狠色综合欧洲selulu| 在线综合+亚洲+欧美中文字幕| 精品国产成人系列| 亚洲视频一区二区在线| 青娱乐精品视频在线| 99久久综合色| 日韩欧美色综合| 亚洲精品伦理在线| 国内精品久久久久影院色| 91麻豆免费看| 精品日产卡一卡二卡麻豆| 亚洲欧美一区二区不卡| 精品系列免费在线观看| 在线观看亚洲专区| 国产欧美一区二区三区沐欲| 亚洲午夜电影网| 成人午夜免费视频| 精品99一区二区三区| 亚洲一区二区三区四区不卡| 国产精品456露脸| 337p亚洲精品色噜噜| 亚洲视频一区二区在线| 国产成人自拍网| 欧美一激情一区二区三区| 亚洲精品国产一区二区精华液| 精品一区二区三区免费视频| 欧美日韩在线直播| 亚洲精品国产第一综合99久久| 国产中文字幕精品| 欧美一级片免费看| 日韩专区中文字幕一区二区| 91性感美女视频| 欧美国产精品中文字幕| 国产做a爰片久久毛片| 91麻豆精品久久久久蜜臀| 亚洲成人动漫av| 欧美日韩一区二区三区在线| 日韩一区有码在线| 不卡在线观看av| 国产精品九色蝌蚪自拍| 粉嫩久久99精品久久久久久夜| 久久久久久免费网| 国产成人免费xxxxxxxx| 欧美激情综合五月色丁香小说| 黑人巨大精品欧美黑白配亚洲| 日韩三级视频在线看| 麻豆精品在线播放| 日韩三级伦理片妻子的秘密按摩| 日韩高清在线观看| 日韩欧美国产三级电影视频| 卡一卡二国产精品| 26uuu亚洲综合色欧美| 国产激情一区二区三区四区| 国产欧美一区二区在线观看| 风间由美一区二区av101 | 亚洲欧洲日产国产综合网| 成人精品鲁一区一区二区| 国产精品久久久一本精品| 91小视频免费观看| 亚洲成人www| 精品免费视频一区二区| 国产精品18久久久久久vr| 国产区在线观看成人精品| 国产69精品久久久久777| 亚洲婷婷在线视频| 欧美日韩国产电影| 极品美女销魂一区二区三区| 日本一区二区三区在线观看| 91视频一区二区三区| 亚洲一区二区三区中文字幕在线| 欧美日本高清视频在线观看| 国产专区欧美精品| 亚洲美女淫视频| 欧美一区二区三区日韩视频| 国模大尺度一区二区三区| 亚洲视频在线一区观看| 欧美一级淫片007| 国产精品18久久久久久久久 | 亚洲日本在线a| 91精品国产综合久久精品麻豆| 国产在线视频精品一区| 亚洲欧美自拍偷拍| 日韩欧美国产一二三区| 成人av在线播放网址| 日韩精品电影一区亚洲| 中文字幕在线观看不卡视频| 6080国产精品一区二区| av亚洲精华国产精华精华| 美国三级日本三级久久99| 国产精品成人免费| 26uuu国产一区二区三区| 欧美影院精品一区| 国产91精品精华液一区二区三区 | 久久99精品国产麻豆婷婷洗澡| 国产日韩综合av| 欧美一区二区三区四区五区| caoporm超碰国产精品| 亚洲1区2区3区4区| 日韩码欧中文字| 久久久久免费观看| 欧美一卡2卡三卡4卡5免费| 99久久国产综合精品麻豆| 国产精品综合二区| 无码av中文一区二区三区桃花岛| 亚洲色图清纯唯美| 国产日韩欧美电影| 日韩欧美黄色影院| 69久久99精品久久久久婷婷| 色欧美片视频在线观看| 99精品热视频| 成人黄色国产精品网站大全在线免费观看 | 日韩高清不卡一区| 亚洲高清一区二区三区| 亚洲激情av在线| 亚洲美女区一区| 亚洲人成网站精品片在线观看| 久久精品亚洲精品国产欧美 | 视频一区视频二区中文字幕| 一区二区在线免费| 亚洲免费观看高清完整版在线观看| 国产精品天美传媒沈樵| 国产三级精品三级| 中日韩免费视频中文字幕| 久久久久久久久久看片| 久久精品亚洲精品国产欧美| 久久久久久久久久久久久夜| 久久久精品国产免大香伊| 国产日韩一级二级三级| 国产欧美日韩麻豆91| 国产精品久久久久久亚洲伦| 国产精品水嫩水嫩| 亚洲乱码一区二区三区在线观看| 亚洲视频综合在线| 亚洲一本大道在线| 日韩国产欧美一区二区三区| 另类调教123区| 国产精品一区2区| eeuss鲁片一区二区三区在线观看| 99久久综合色| 欧美剧情片在线观看| 日韩视频免费观看高清完整版在线观看 | 亚瑟在线精品视频| 久久超碰97人人做人人爱| 国产美女久久久久| 91亚洲精品久久久蜜桃网站 | 久久久久88色偷偷免费| 国产清纯美女被跳蛋高潮一区二区久久w | 中文字幕一区二区三区在线播放| 亚洲精品一二三四区| 亚洲线精品一区二区三区八戒| 日韩精品乱码免费| 国产精品中文有码| 色婷婷精品大在线视频| 日韩免费观看高清完整版| 亚洲国产精品ⅴa在线观看| 亚洲国产视频一区| 国产精品自拍av| 欧美日韩情趣电影| 国产视频一区在线播放| 亚洲成人资源在线| 粉嫩av一区二区三区在线播放 | 一区二区三区中文字幕精品精品| 亚洲午夜三级在线| 成人夜色视频网站在线观看| 欧美日韩你懂的| 最新成人av在线| 精品一区二区在线视频| 在线亚洲人成电影网站色www| 日韩三级av在线播放| 亚洲欧美日韩久久| 激情av综合网| 在线电影欧美成精品| 国产精品久久久99|