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

📄 mqmacros.blt

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 BLT
📖 第 1 页 / 共 5 页
字号:

#endif

#if 1 // No FIFO check version
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP16BPP90_270(pSrcBits, width, height, LineInc, \
								PixelInc, ulExtras, pLookup) \
	ULONG   w;\
	PDWORD  pDWord;\
	ULONG	ulData,ulRData;\
	ULONG	ulData1;\
	ULONG	i;\
	ULONG	ulWordStart;\
	PDWORD	pBuffer=(PDWORD)MM_GetMemory(width*4);\
	ulWordStart = (ULONG)pSrcBits & 0x03UL;\
	if(ulWordStart)\
	{\
		--height;\
		w = width;\
		pDWord = (PDWORD)(((ULONG)pSrcBits) & ~0x03UL); \
		pSrcBits += LineInc; \
		while ( w >= 2) \
		{ \
			ulData = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData1 = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData = (ulData>>16) + (ulData1&0xFFFF0000);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
			w -= 2;\
		}\
		if(w)\
		{\
			ulData = (ulData>>16);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
		}\
	}\
	while(height)\
	{ \
		--height;\
		i=0;\
		w = width;\
		pDWord = (PDWORD)(((ULONG)pSrcBits) & ~0x03UL); \
		pSrcBits += LineInc; \
		while ( w >= 2) \
		{ \
			ulData = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData1 = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			pBuffer[i++]= (ulData>>16) + (ulData1&0xFFFF0000);\
			ulData = (ulData & 0x0000FFFF) +(ulData1<<16);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
			w -= 2;\
		}\
		if(w)\
		{\
			ulData = *pDWord; \
			pBuffer[i]= (ulData>>16);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
		}\
		i=0;\
		pSrcBits += LineInc; \
	   	if(height)\
		{\
			--height;\
			w = width;\
			while ( w >= 2) \
			{ \
				ulData = pBuffer[i++]; \
				LOOKUP_16BPP(ulRData, ulData, pLookup); \
				geREG(SRC_IMAGE_DATA,ulRData);\
				w -= 2;\
			}\
			if(w)\
			{\
				ulData = pBuffer[i];\
				LOOKUP_16BPP(ulRData, ulData, pLookup); \
				geREG(SRC_IMAGE_DATA,ulRData);\
			}\
		}\
	}\
	MM_ReturnMemory((ADDRESS)pBuffer);\
	while(ulExtras--)\
	{\
		geREG(SRC_IMAGE_DATA,0UL);\
	}
	
#else // FIFO check version

#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP16BPP90_270(pSrcBits, width, height, LineInc, \
								PixelInc, ulExtras, pLookup) \
	ULONG   w;\
	PDWORD  pDWord;\
	ULONG	ulData,ulRData;\
	ULONG	ulData1;\
	ULONG	i,j;\
	ULONG	ulWordStart;\
	TraceFIFO();\
	PDWORD	pBuffer=(PDWORD)MM_GetMemory(width*4);\
	ulWordStart = (ULONG)pSrcBits & 0x03UL;\
	if(ulWordStart)\
	{\
		--height;\
		w = width;\
		pDWord = (PDWORD)(((ULONG)pSrcBits) & ~0x03UL); \
		pSrcBits += LineInc; \
		while ( w >= 2) \
		{ \
			ulData = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData1 = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData = (ulData>>16) + (ulData1&0xFFFF0000);\
			LOOKUP_16BPP(ulRData, ulData,pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
			w -= 2;\
		}\
		if(w)\
		{\
			ulData = (ulData>>16);\
			LOOKUP_16BPP(ulRData, ulData,pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
		}\
	}\
	while(height)\
	{ \
		--height;\
		i=0;\
		w = width;\
		pDWord = (PDWORD)(((ULONG)pSrcBits) & ~0x03UL); \
		pSrcBits += LineInc; \
		while ( w >= 2) \
		{ \
			ulData = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData1 = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			pBuffer[i++]= (ulData>>16) + (ulData1&0xFFFF0000);\
			ulData = (ulData & 0x0000FFFF) +(ulData1<<16);\
			LOOKUP_16BPP(ulRData, ulData,pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
			w -= 2;\
		}\
		if(w)\
		{\
			ulData = *pDWord; \
			pBuffer[i]= (ulData>>16);\
			LOOKUP_16BPP(ulRData, ulData,pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
		}\
		i=0;\
		pSrcBits += LineInc; \
	   	if(height)\
		{\
			--height;\
			w = (width>>1);\
			while ( w >= SRC_FIFO_MAX_DWORDS ) \
			{ \
				geWAITSRCFIFO( SRC_FIFO_MAX_DWORDS ); \
				for ( j = 0; j < SRC_FIFO_MAX_DWORDS; j++ ) \
				{									\
					ulData = pBuffer[i++]; \
					LOOKUP_16BPP(ulRData, ulData,pLookup); \
					geREG(SRC_IMAGE_DATA, ulRData); \
				}\
				w -= SRC_FIFO_MAX_DWORDS; \
			}\
			geWAITSRCFIFO( w ); \
			while (w) \
			{ \
				ulData = pBuffer[i++]; \
				LOOKUP_16BPP(ulRData, ulData,pLookup); \
				geREG(SRC_IMAGE_DATA,ulRData);\
				--w;\
			}\
			if(width&0x01L)\
			{\
				ulData = pBuffer[i];\
				LOOKUP_16BPP(ulRData, ulData,pLookup); \
				geREG(SRC_IMAGE_DATA,ulRData);\
			}\
		}\
	}\
	MM_ReturnMemory((ADDRESS)pBuffer);\
	geWAITSRCFIFO( ulExtras ); \
	while(ulExtras--)\
	{\
		geREG(SRC_IMAGE_DATA,0UL);\
	}
#endif
	
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP16BPP(pSrcBits, ulDWords, ulExtras, \
										ulDWordsTotal, lSrcStride, pLookup) \
	PULONG	pulData; \
	ULONG		ulData, ulRData, i, j; \
	while( height-- ) \
	{ \
		pulData = (PULONG)(((ULONG)pSrcBits + 3UL) & ~0x03UL); \
		j = ulDWords; \
		while ( j >= SRC_FIFO_MAX_DWORDS ) \
		{ \
			geWAITSRCFIFO( SRC_FIFO_MAX_DWORDS ); \
			for ( i = 0; i < SRC_FIFO_MAX_DWORDS; i++ ) \
			{ \
				ulRData = *pulData++; \
				LOOKUP_16BPP(ulData, ulRData, pLookup); \
				geREG(SRC_IMAGE_DATA, ulData); \
		    } \
			j -= SRC_FIFO_MAX_DWORDS; \
		}\
		geWAITSRCFIFO( j ); \
		while( j-- ) \
		{ \
			ulRData = *pulData++; \
			LOOKUP_16BPP(ulData, ulRData, pLookup); \
			geREG(SRC_IMAGE_DATA, ulData); \
		} \
		pSrcBits += lSrcStride; \
	} \
	geWAITSRCFIFO( ulExtras ); \
	while( ulExtras-- ) \
		geREG(SRC_IMAGE_DATA, 0UL);
		
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP32BPP(pSrcBits, ulDWords, ulExtras, \
										ulDWordsTotal, lSrcStride, pLookup) \
	PULONG	pulData; \
	ULONG		ulData, ulRData, i, j; \
	while( height-- ) \
	{ \
		pulData = (PULONG)(((ULONG)pSrcBits + 3UL) & ~0x03UL); \
		j = ulDWords; \
		while ( j >= SRC_FIFO_MAX_DWORDS ) \
		{ \
			geWAITSRCFIFO( SRC_FIFO_MAX_DWORDS ); \
			for ( i = 0; i < SRC_FIFO_MAX_DWORDS; i++ ) \
			{ \
				ulRData = *pulData++; \
				LOOKUP_32BPP(ulData, ulRData, pLookup); \
				geREG(SRC_IMAGE_DATA, ulData); \
		    } \
			j -= SRC_FIFO_MAX_DWORDS; \
		}\
		geWAITSRCFIFO( j ); \
		while( j-- ) \
		{ \
			ulRData = *pulData++; \
			LOOKUP_32BPP(ulData, ulRData, pLookup); \
			geREG(SRC_IMAGE_DATA, ulData); \
		} \
		pSrcBits += lSrcStride; \
	} \
	geWAITSRCFIFO( ulExtras ); \
	while( ulExtras-- ) \
		geREG(SRC_IMAGE_DATA, 0UL);
		
#else	//CHECK_SRCFIFO

#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP8BPP(pSrcBits, ulDWords, ulExtras, \
											lSrcStride, height, pLookup ) \
	PULONG	pulData; \
	ULONG		ulData, ulRData, ulCount; \
	while( height-- ) \
	{ \
		pulData = (PULONG)pSrcBits; \
		ulCount = ulDWords; \
		while ( ulCount ) \
		{ \
			ulCount--; \
			ulRData = *pulData++; \
			LOOKUP_8BPP(ulData, ulRData, pLookup); \
			geREG(SRC_IMAGE_DATA, ulData); \
		} \
		pSrcBits += lSrcStride; \
	} \
	while( ulExtras ) \
	{ \
		ulExtras--; \
		geREG(SRC_IMAGE_DATA, 0UL); \
	}
		
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP8BPP180(pSrcBits, ulDWords, ulExtras, \
										ulDWordsTotal, lSrcStride, pLookup) \
	ULONG j;\
	ULONG ulData,ulRData;\
	PULONG pulData;\
	while( height-- ) \
	{ \
		pulData = (PULONG)(((ULONG)pSrcBits) & ~0x03UL); \
		j = ulDWords; \
		while (j) \
		{ \
			--j;\
			ulRData = *pulData--; \
			LOOKUP_8BPP(ulData, ulRData, pLookup); \
			ulRData = (ulData >> 24) | (ulData &0x00FF0000) >> 8 \
				| (ulData & 0x0000FF00) << 8 | (ulData & 0x000000FF)<<24;\
			geREG(SRC_IMAGE_DATA, ulRData); \
		}\
		pSrcBits += lSrcStride; \
	} \
	while( ulExtras) \
	{\
		--ulExtras;\
		geREG(SRC_IMAGE_DATA, 0UL);\
	}
		
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP8BPP90_270(pSrcBits, width, height, LineInc, \
								PixelInc, ulExtras, pLookup) \
	ULONG	ulData,ulRData; \
	ULONG   w;\
	PBYTE   pByte;\
	while( height-- ) \
	{ \
		w = width;\
		pByte = (PBYTE)pSrcBits;\
		pSrcBits += LineInc; \
		while ( w >= 4) \
		{ \
			ulData= (ULONG)(*pByte); \
			pByte += PixelInc;\
			ulData|= ( (ULONG )(*pByte) << 8);\
			pByte += PixelInc;\
			ulData|= ( (ULONG )(*pByte) << 16);\
			pByte += PixelInc;\
			ulData|= ( (ULONG )(*pByte) << 24);\
			pByte += PixelInc;\
			LOOKUP_8BPP(ulRData, ulData,pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
			w -= 4;\
		}\
		if(w)\
		{\
			switch(w)\
			{\
				default:\
					break;\
				case 1:	\
					ulData = (ULONG)(*pByte); \
					break;\
				case 2:\
					ulData = (ULONG)(*pByte); \
					pByte += PixelInc;\
					ulData  |= ( (ULONG )(*pByte) << 8);\
					break;\
				case 3:\
					ulData = (ULONG)(*pByte); \
					pByte += PixelInc;\
					ulData  |= ( (ULONG )(*pByte) << 8);\
					pByte += PixelInc;\
					ulData  |= ( (ULONG )(*pByte) << 16);\
					break;\
			}\
			LOOKUP_8BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
		}\
	}\
	while(ulExtras--)\
	{\
		geREG(SRC_IMAGE_DATA,0UL);\
	}
			
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP16BPP180(pSrcBits, ulDWords, ulExtras, \
										ulDWordsTotal, lSrcStride, pLookup) \
	ULONG j;\
	ULONG ulData,ulRData;\
	PULONG pulData;\
	while( height-- ) \
	{ \
		pulData = (PULONG)(((ULONG)pSrcBits) & ~0x03UL); \
		j = ulDWords; \
		while (j) \
		{ \
			--j;\
			ulRData = *pulData--; \
			ulData = (ulRData >> 16) | (ulRData &0x0000FFFF) << 16; \
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA, ulRData); \
		} \
		pSrcBits += lSrcStride; \
	} \
	while( ulExtras) \
	{\
		--ulExtras;\
		geREG(SRC_IMAGE_DATA, 0UL);\
	}
		
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP16BPP90_270(pSrcBits, width, height, LineInc, \
								PixelInc, ulExtras, pLookup) \
	ULONG   w;\
	PDWORD  pDWord;\
	ULONG	ulData,ulRData;\
	ULONG	ulData1;\
	ULONG	i;\
	ULONG	ulWordStart;\
	PDWORD	pBuffer=(PDWORD)MM_GetMemory(width*4);\
	ulWordStart = (ULONG)pSrcBits & 0x03UL;\
	if(ulWordStart)\
	{\
		--height;\
		w = width;\
		pDWord = (PDWORD)(((ULONG)pSrcBits) & ~0x03UL); \
		pSrcBits += LineInc; \
		while ( w >= 2) \
		{ \
			ulData = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData1 = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData = (ulData>>16) + (ulData1&0xFFFF0000);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
			w -= 2;\
		}\
		if(w)\
		{\
			ulData = (ulData>>16);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
		}\
	}\
	while(height)\
	{ \
		--height;\
		i=0;\
		w = width;\
		pDWord = (PDWORD)(((ULONG)pSrcBits) & ~0x03UL); \
		pSrcBits += LineInc; \
		while ( w >= 2) \
		{ \
			ulData = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			ulData1 = *pDWord; \
			pDWord = (PDWORD)((PWORD)(pDWord) + PixelInc);\
			pBuffer[i++]= (ulData>>16) + (ulData1&0xFFFF0000);\
			ulData = (ulData & 0x0000FFFF) +(ulData1<<16);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
			w -= 2;\
		}\
		if(w)\
		{\
			ulData = *pDWord; \
			pBuffer[i]= (ulData>>16);\
			LOOKUP_16BPP(ulRData, ulData, pLookup); \
			geREG(SRC_IMAGE_DATA,ulRData);\
		}\
		i=0;\
		pSrcBits += LineInc; \
	   	if(height)\
		{\
			--height;\
			w = width;\
			while ( w >= 2) \
			{ \
				ulData = pBuffer[i++]; \
				LOOKUP_16BPP(ulRData, ulData, pLookup); \
				geREG(SRC_IMAGE_DATA,ulRData);\
				w -= 2;\
			}\
			if(w)\
			{\
				ulData = pBuffer[i];\
				LOOKUP_16BPP(ulRData, ulData, pLookup); \
				geREG(SRC_IMAGE_DATA,ulRData);\
			}\
		}\
	}\
	MM_ReturnMemory((ADDRESS)pBuffer);\
	while(ulExtras--)\
	{\
		geREG(SRC_IMAGE_DATA,0UL);\
	}
	
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP16BPP(pSrcBits, ulDWords, ulExtras, \
											lSrcStride, height, pLookup ) \
	PULONG	pulData; \
	ULONG		ulData, ulRData, ulCount; \
	while( height-- ) \
	{ \
		pulData = (PULONG)pSrcBits; \
		ulCount = ulDWords; \
		while ( ulCount ) \
		{ \
			ulCount--; \
			ulRData = *pulData++; \
			LOOKUP_16BPP(ulData, ulRData, pLookup); \
			geREG(SRC_IMAGE_DATA, ulData); \
		} \
		pSrcBits += lSrcStride; \
	} \
	while( ulExtras ) \
	{ \
		ulExtras--; \
		geREG(SRC_IMAGE_DATA, 0UL); \
	}
		
#define	MACRO_PUMP_PACKED_SRCFIFO_LOOKUP32BPP(pSrcBits, ulDWords, ulExtras, \
											lSrcStride, height, pLookup ) \
	PULONG	pulData; \
	ULONG		ulData, ulRData, ulCount; \
	while( height-- ) \
	{ \
		pulData = (PULONG)pSrcBits; \

⌨️ 快捷键说明

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