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

📄 mqpat.blt

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 BLT
字号:
void
MQGC::PatternSetupSolid( GPEBltParms *pBltParms, ULONG *ulCmd )
{
	// NO NEED to set pattern offset since it is a solid pattern anyway

	if ( m_pSrc->Format() == gpe1Bpp )
	{
		geWAITCMDFIFO( 3 );
		geREG(MONO_PATTERN0, 0xFFFFFFFFUL);
		geREG(MONO_PATTERN1, 0xFFFFFFFFUL);
		geREG(PAT_FG_COLOR, m_ulSolidColor);
		*ulCmd |= MONO_PATTERN;
	}
	else
	{
		geWAITCMDFIFO( 1 );
		geREG(PAT_FG_COLOR, m_ulSolidColor);
		*ulCmd |= MONO_PATTERN | MONO_SOLID;
	}
}

#ifdef	MPATBLT_ON
void
MQGC::PatternSetup1BPP( GPEBltParms *pBltParms, ULONG *ulCmd )
{
	// Set Pattern Offset
	m_ulDestXY |=
			((((m_ulDestXY & 0x0FFFUL) - pBltParms->pptlBrush->x)
				& 0x7UL) << 13)
			| (((((m_ulDestXY >> 16) & 0x0FFFUL) - pBltParms->pptlBrush->y)
				& 0x7UL) << 29);

	geWAITCMDFIFO( 4 );
	geREG(MONO_PATTERN0, *m_lpPattern);
	geREG(MONO_PATTERN1, *(m_lpPattern+1));
	geREG(PAT_FG_COLOR, *(m_pLookup+1));
	geREG(PAT_BG_COLOR,  *m_pLookup);
	*ulCmd |= MONO_PATTERN;
}
#endif	//MPATBLT_ON

#ifdef CHECK_8BPP
void
MQGC::PatternSetup8BPP( GPEBltParms *pBltParms, ULONG *ulCmd )
{
	ULONG	idx,max;

	DEBUGMSG(GPE_ZONE_MQEMUL1,(TEXT(">> PATTERN BLT8\r\n")));

	m_ulDestXY |=
			((((m_ulDestXY & 0x0FFFUL) - pBltParms->pptlBrush->x)
				& 0x7UL) << 13)
			| (((((m_ulDestXY >> 16) & 0x0FFFUL) - pBltParms->pptlBrush->y)
				& 0x7UL) << 29);

	max = COLOR_PATTERN + (16 * uBUSW);
	geWAITFULLCMDFIFO;
	for( idx = COLOR_PATTERN; idx < max; idx += uBUSW )
		geREG(idx, *m_lpPattern++);
}
#endif	//CHECK_8BPP

#ifdef CHECK_16BPP
void
MQGC::PatternSetup16BPP( GPEBltParms *pBltParms, ULONG *ulCmd )
{
	ULONG	idx,regmax;

	DEBUGMSG(GPE_ZONE_MQEMUL1,(TEXT(">> PATTERN BLT16\r\n")));

	// Set Pattern Offset
	m_ulDestXY |=
			((((m_ulDestXY & 0x0FFFUL) - pBltParms->pptlBrush->x)
				& 0x7UL) << 13)
			| (((((m_ulDestXY >> 16) & 0x0FFFUL) - pBltParms->pptlBrush->y)
				& 0x7UL) << 29);

#ifdef CHECK_CMDFIFO
	regmax = COLOR_PATTERN;
	idx = regmax;
	for (ULONG Max = 2 ; Max > 0; Max--)
	{
		geWAITFULLCMDFIFO;
		for(regmax += (16 * uBUSW); idx < regmax; idx += uBUSW )
			geREG(idx, *m_lpPattern++);
	}
#else	//CHECK_CMDFIFO
	regmax = COLOR_PATTERN + (32 * uBUSW);
	for( idx = COLOR_PATTERN; idx < regmax; idx += uBUSW )
		geREG(idx, *m_lpPattern++);
#endif	//CHECK_CMDFIFO
}
#endif	//CHECK_16BPP

#ifdef CHECK_24BPP
//Not supported!!!
void
MQGC::PatternSetup24BPP( GPEBltParms *pBltParms, ULONG *ulCmd )
{
}
#endif	//CHECK_24BPP

#ifdef CHECK_32BPP
void
MQGC::PatternSetup32BPP( GPEBltParms *pBltParms, ULONG *ulCmd )
{
	ULONG	idx,regmax;

	DEBUGMSG(GPE_ZONE_MQEMUL1,(TEXT(">> PATTERN BLT32\r\n")));

#ifdef CHECK_CMDFIFO
	regmax = COLOR_PATTERN;
	idx = regmax;
	for (ULONG Max = 2 ; Max > 0; Max--)
	{
		geWAITFULLCMDFIFO;
		for(regmax += (16 * uBUSW); idx < regmax; idx += uBUSW )
			geREG(idx, *m_lpPattern++);
	}
#else	//CHECK_CMDFIFO
	regmax = COLOR_PATTERN + (32 * uBUSW);
	for( idx = COLOR_PATTERN; idx < regmax; idx += uBUSW )
		geREG(idx, *m_lpPattern++);
#endif	//CHECK_CMDFIFO

}
#endif	//CHECK_32BPP

⌨️ 快捷键说明

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