debug.c

来自「Lido PXA270平台开发板的最新BSP,包括源代码」· C语言 代码 · 共 2,713 行 · 第 1/5 页

C
2,713
字号
				MBX1_TSPOBJ_FACTORGSHIFT;
	dwFactorG = (255 * dwFactorG) / 
				((~MBX1_TSPOBJ_FACTORGMASK) >> MBX1_TSPOBJ_FACTORGSHIFT);

	dwFactorB = (dwTSPObjCtl & (~MBX1_TSPOBJ_FACTORBMASK)) >> 
				MBX1_TSPOBJ_FACTORBSHIFT;
	dwFactorB = (255 * dwFactorB) / 
				((~MBX1_TSPOBJ_FACTORBMASK) >> MBX1_TSPOBJ_FACTORBSHIFT);

	sprintf(pszFactorColour, 
			"(ARGB) 0x%02X%02X%02X%02X", 
			dwFactorA, 
			dwFactorR, 
			dwFactorG, 
			dwFactorB);

	return pszFactorColour;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPObjword
    
 PURPOSE	: Decodes a TSP-per obj control word to the PDUMP and/or DEBUG text
			  output streams

 PARAMETERS	: dwTSPObjCtl	- The TSP per-obj word to decode
  
 RETURNS	: void
*****************************************************************************/
void DBGDecodeTSPObjWord(LPD3DM_CONTEXT psContext, DWORD dwTSPObjCtl)
{
	DBGDecodePF(psContext, "---- TSP per-object word (0x%8.8lX)", dwTSPObjCtl);
	DBGDecodePF(psContext, "--       Alpha-compare mode: %hs", DBGDecodeTSPObjAlphaCmpMode(dwTSPObjCtl));
	DBGDecodePF(psContext, "--                Alpha-ref: %hs", DBGDecodeTSPObjAlphaRef(dwTSPObjCtl));
	DBGDecodePF(psContext, "--            Factor colour: %hs", DBGDecodeTSPObjFactorColour(dwTSPObjCtl));
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1TexAddrMode
    
 PURPOSE	: Decodes a HW U/V texture-addresing mode

 PARAMETERS	: dwHWTexAddrMode	- The HW texture-addresing mode to decode
 
 RETURNS	: PSTR				- The decoded texture addressing mode
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1TexAddrMode(DWORD dwHWTexAddrMode)
{
	PSTR	pszTexAddrMode;

	switch (dwHWTexAddrMode & MBX1_TSPPL1_TADDRMODEMASK)
	{
		case MBX1_TSPPL1_TADDRMODEREPEAT:
		{
			pszTexAddrMode = "repeat";
			break;
		}

		case MBX1_TSPPL1_TADDRMODEFLIP:
		{
			pszTexAddrMode = "flip";
			break;
		}

		case MBX1_TSPPL1_TADDRMODECLAMP:
		{
			pszTexAddrMode = "clamp";
			break;
		}

		case MBX1_TSPPL1_TADDRMODEWRAP:
		{
			pszTexAddrMode = "wrap";
			break;
		}

		default:
		{
			pszTexAddrMode = "invalid";
			break;
		}
	}

	return pszTexAddrMode;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1UAddrMode
    
 PURPOSE	: Decodes the U-dimension addressing-mode from a TSP per-layer
			  word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded U-dimension addressing mode
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1UAddrMode(DWORD dwTSPLCtl1)
{
	PSTR	pszUAddrMode;
	DWORD	dwUAddrMode;

	dwUAddrMode = (dwTSPLCtl1 & (~MBX1_TSPPL1_TUADDRMODECLRMASK)) >> 
				  MBX1_TSPPL1_TUADDRMODESHIFT;

	pszUAddrMode = DBGDecodeTSPLCtl1TexAddrMode(dwUAddrMode);

	return pszUAddrMode;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1VAddrMode
    
 PURPOSE	: Decodes the V-dimension addressing-mode from a TSP per-layer
			  word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded V-dimension addressing mode
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1VAddrMode(DWORD dwTSPLCtl1)
{
	PSTR	pszVAddrMode;
	DWORD	dwVAddrMode;

	dwVAddrMode = (dwTSPLCtl1 & (~MBX1_TSPPL1_TVADDRMODECLRMASK)) >> 
				  MBX1_TSPPL1_TVADDRMODESHIFT;

	pszVAddrMode = DBGDecodeTSPLCtl1TexAddrMode(dwVAddrMode);

	return pszVAddrMode;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1TexSize
    
 PURPOSE	: Decodes a HW U/V texture-size

 PARAMETERS	: dwHWTexSize	- The HW texture-size to decode
 
 RETURNS	: PSTR			- The decoded texture size
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1TexSize(DWORD dwHWTexSize)
{
	PSTR	pszTexSize;

	switch (dwHWTexSize & 0xF)
	{
		case MBX1_TSPPL1_TSIZE2048:
		{
			pszTexSize = "2048";
			break;
		}

		case MBX1_TSPPL1_TSIZE1024:
		{
			pszTexSize = "1024";
			break;
		}

		case MBX1_TSPPL1_TSIZE512:
		{
			pszTexSize = "512";
			break;
		}

		case MBX1_TSPPL1_TSIZE256:
		{
			pszTexSize = "256";
			break;
		}

		case MBX1_TSPPL1_TSIZE128:
		{
			pszTexSize = "128";
			break;
		}

		case MBX1_TSPPL1_TSIZE64:
		{
			pszTexSize = "64";
			break;
		}

		case MBX1_TSPPL1_TSIZE32:
		{
			pszTexSize = "32";
			break;
		}

		case MBX1_TSPPL1_TSIZE16:
		{
			pszTexSize = "16";
			break;
		}

		case MBX1_TSPPL1_TSIZE8:
		{
			pszTexSize = "8";
			break;
		}

		default:
		{
			pszTexSize = "invalid";
			break;
		}
	}

	return pszTexSize;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1UTexSize
    
 PURPOSE	: Decodes the U-dimension texture-size from a TSP per-layer word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded U-dimension texture size
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1UTexSize(DWORD dwTSPLCtl1)
{
	PSTR	pszUSize;
	DWORD	dwUSize;

	dwUSize = (dwTSPLCtl1 & (~MBX1_TSPPL1_TUSIZECLRMASK)) >>
			  MBX1_TSPPL1_TUSIZESHIFT;

	pszUSize = DBGDecodeTSPLCtl1TexSize(dwUSize);

	return pszUSize;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1VTexSize
    
 PURPOSE	: Decodes the V-dimension texture-size from a TSP per-layer word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded V-dimension texture size
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1VTexSize(DWORD dwTSPLCtl1)
{
	PSTR	pszVSize;
	DWORD	dwVSize;

	dwVSize = (dwTSPLCtl1 & (~MBX1_TSPPL1_TVSIZECLRMASK)) >>
			  MBX1_TSPPL1_TVSIZESHIFT;

	pszVSize = DBGDecodeTSPLCtl1TexSize(dwVSize);

	return pszVSize;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1SuperSampleCtl
    
 PURPOSE	: Decodes the super-sample control in a TSP per-layer word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded super-sample control
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1SuperSampleCtl(DWORD dwTSPLCtl1)
{
	PSTR	pszState;

	if	(dwTSPLCtl1 & MBX1_TSPPL1_TSUPERSAMPLE)
	{
		pszState = "enabled";
	}
	else
	{
		pszState = "disabled";
	}

	return pszState;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1SoftEdgePTCtl
    
 PURPOSE	: Decodes the soft-edged punchthough control in a TSP per-layer
			  word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded soft-edged punchthrough control
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1SoftEdgePTCtl(DWORD dwTSPLCtl1)
{
	PSTR	pszState;

	if	(dwTSPLCtl1 & MBX1_TSPPL1_TSOFTEDGEPT)
	{
		pszState = "enabled";
	}
	else
	{
		pszState = "disabled";
	}

	return pszState;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1TexFormat
    
 PURPOSE	: Decodes the texture-format in a TSP per-layer word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded texture-format
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1TexFormat(DWORD dwTSPLCtl1)
{
	PSTR	pszFormat;
	DWORD	dwFormat;

	dwFormat = dwTSPLCtl1 & (~MBX1_TSPPL1_TPIXFORMCLRMASK);

	switch (dwFormat)
	{
		case MBX1_TSPPL1_TPIXFORM1555:
		{
			pszFormat = "1555";
			break;
		}

		case MBX1_TSPPL1_TPIXFORM565:
		{
			pszFormat = "565";
			break;
		}

		case MBX1_TSPPL1_TPIXFORM4444:
		{
			pszFormat = "4444";
			break;
		}

		case MBX1_TSPPL1_TPIXFORM8332:
		{
			pszFormat = "8332";
			break;
		}

		case MBX1_TSPPL1_TPIXFORM88:
		{
			pszFormat = "88";
			break;
		}

		case MBX1_TSPPL1_TPIXFORM8:
		{
			pszFormat = "8";
			break;
		}

		case MBX1_TSPPL1_TPIXFORM8888:
		{
			pszFormat = "8888";
			break;
		}

		case MBX1_TSPPL1_TPIXFORM1:
		{
			pszFormat = "1";
			break;
		}

		case MBX1_TSPPL1_TPIXFORMPVRTC2:
		{
			pszFormat = "PVRTC2";
			break;
		}

		case MBX1_TSPPL1_TPIXFORMY1VY0U:
		{
			pszFormat = "Y1VY0U";
			break;
		}

		case MBX1_TSPPL1_TPIXFORMPVRTC4:
		{
			pszFormat = "PVRTC4";
			break;
		}

		case MBX1_TSPPL1_TPIXFORMVY1UY0:
		{
			pszFormat = "VY1UY0";
			break;
		}

		default:
		{
			pszFormat = "invalid";
			break;
		}
	}

	return pszFormat;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1CSUMCtl
    
 PURPOSE	: Decodes the CSUM control in a TSP per-layer word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded CSUM control
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1CSUMCtl(DWORD dwTSPLCtl1)
{
	PSTR	pszState;

	if	(dwTSPLCtl1 & MBX1_TSPPL1_CSUM)
	{
		pszState = "enabled";
	}
	else
	{
		pszState = "disabled";
	}

	return pszState;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl1MipmapClamp
    
 PURPOSE	: Decodes the mipmap level-clamp control in a TSP per-layer word 1

 PARAMETERS	: dwTSPLCtl1	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded mipmap level-clamp control
*****************************************************************************/
PSTR DBGDecodeTSPLCtl1MipmapClamp(DWORD dwTSPLCtl1)
{
	static char	pszMipmapClamp[3];
	DWORD			dwMipmapClamp;

	dwMipmapClamp = (dwTSPLCtl1 & (~MBX1_TSPPL1_MIPMAPCLAMPCLRMASK)) >>
					MBX1_TSPPL1_MIPMAPCLAMPSHIFT;

	sprintf(pszMipmapClamp, "%-2d", dwMipmapClamp);

	return pszMipmapClamp;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl2MapFilterCtl
    
 PURPOSE	: Decodes the bilinear-filtering enable control in TSP per-layer 
			  word 2

 PARAMETERS	: dwTSPLCtl2	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- Whether bilinear-filtering is enabled or not
*****************************************************************************/
PSTR DBGDecodeTSPLCtl2MapFilterCtl(DWORD dwTSPLCtl2)
{
	PSTR	pszState;

	if	(dwTSPLCtl2 & MBX1_TSPPL2_MAPFILTERENABLE)
	{
		pszState = "linear";
	}
	else
	{
		pszState = "point";
	}

	return pszState;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl2MipFilterCtl
    
 PURPOSE	: Decodes the mipmap-filtering mode control in TSP per-layer 
			  word 2

 PARAMETERS	: dwTSPLCtl2	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- the decoded mipmap-filtering mode
*****************************************************************************/
PSTR DBGDecodeTSPLCtl2MipFilterCtl(DWORD dwTSPLCtl2)
{
	PSTR	pszMipFilterMode;
	DWORD	dwMipFilterMode;

	dwMipFilterMode = dwTSPLCtl2 & (~MBX1_TSPPL2_MIPCTLCLRMASK);
	switch (dwMipFilterMode)
	{
		case MBX1_TSPPL2_MIPCTLNOTMIPMAP:
		{
			pszMipFilterMode = "disabled";
			break;
		}

		case MBX1_TSPPL2_MIPCTLNOMIPFILTER:
		{
			pszMipFilterMode = "point";
			break;
		}

		case MBX1_TSPPL2_MIPCTLMIPFILTER:
		{
			pszMipFilterMode = "linear";
			break;
		}

		case MBX1_TSPPL2_MIPCTLTOPMAP:
		{
			pszMipFilterMode = "top-map";
			break;
		}

		default:
		{
			pszMipFilterMode = "invalid";
			break;
		}
	}

	return pszMipFilterMode;
}

/*****************************************************************************
 FUNCTION	: DBGDecodeTSPLCtl2DAdjust
    
 PURPOSE	: Decodes the D-adjust value in TSP per-layer word 2

 PARAMETERS	: dwTSPLCtl2	- The TSP per-layer word to decode
 
 RETURNS	: PSTR			- The decoded D-adjust value
*****************************************************************************/
PSTR DBGDecodeTSPLCtl2DAdjust(DWORD 

⌨️ 快捷键说明

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