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 + -
显示快捷键?