📄 utils.c
字号:
int idx = getFmtIdx(fmt);
if(idx == -1) {
FIXME("Can't find format %s(%d) in the format lookup table\n", debug_d3dformat(fmt), fmt);
/* Get the caller a valid pointer */
idx = getFmtIdx(WINED3DFMT_UNKNOWN);
}
if(glDesc) {
if(!gl_info) {
ERR("OpenGL pixel format information was requested, but no gl info structure passed\n");
return NULL;
}
*glDesc = &gl_info->gl_formats[idx];
}
return &formats[idx];
}
/*****************************************************************************
* Trace formatting of useful values
*/
const char* debug_d3dformat(WINED3DFORMAT fmt) {
switch (fmt) {
#define FMT_TO_STR(fmt) case fmt: return #fmt
FMT_TO_STR(WINED3DFMT_UNKNOWN);
FMT_TO_STR(WINED3DFMT_R8G8B8);
FMT_TO_STR(WINED3DFMT_A8R8G8B8);
FMT_TO_STR(WINED3DFMT_X8R8G8B8);
FMT_TO_STR(WINED3DFMT_R5G6B5);
FMT_TO_STR(WINED3DFMT_X1R5G5B5);
FMT_TO_STR(WINED3DFMT_A1R5G5B5);
FMT_TO_STR(WINED3DFMT_A4R4G4B4);
FMT_TO_STR(WINED3DFMT_R3G3B2);
FMT_TO_STR(WINED3DFMT_A8);
FMT_TO_STR(WINED3DFMT_A8R3G3B2);
FMT_TO_STR(WINED3DFMT_X4R4G4B4);
FMT_TO_STR(WINED3DFMT_A2B10G10R10);
FMT_TO_STR(WINED3DFMT_A8B8G8R8);
FMT_TO_STR(WINED3DFMT_X8B8G8R8);
FMT_TO_STR(WINED3DFMT_G16R16);
FMT_TO_STR(WINED3DFMT_A2R10G10B10);
FMT_TO_STR(WINED3DFMT_A16B16G16R16);
FMT_TO_STR(WINED3DFMT_A8P8);
FMT_TO_STR(WINED3DFMT_P8);
FMT_TO_STR(WINED3DFMT_L8);
FMT_TO_STR(WINED3DFMT_A8L8);
FMT_TO_STR(WINED3DFMT_A4L4);
FMT_TO_STR(WINED3DFMT_V8U8);
FMT_TO_STR(WINED3DFMT_L6V5U5);
FMT_TO_STR(WINED3DFMT_X8L8V8U8);
FMT_TO_STR(WINED3DFMT_Q8W8V8U8);
FMT_TO_STR(WINED3DFMT_V16U16);
FMT_TO_STR(WINED3DFMT_W11V11U10);
FMT_TO_STR(WINED3DFMT_A2W10V10U10);
FMT_TO_STR(WINED3DFMT_UYVY);
FMT_TO_STR(WINED3DFMT_YUY2);
FMT_TO_STR(WINED3DFMT_DXT1);
FMT_TO_STR(WINED3DFMT_DXT2);
FMT_TO_STR(WINED3DFMT_DXT3);
FMT_TO_STR(WINED3DFMT_DXT4);
FMT_TO_STR(WINED3DFMT_DXT5);
FMT_TO_STR(WINED3DFMT_MULTI2_ARGB8);
FMT_TO_STR(WINED3DFMT_G8R8_G8B8);
FMT_TO_STR(WINED3DFMT_R8G8_B8G8);
FMT_TO_STR(WINED3DFMT_D16_LOCKABLE);
FMT_TO_STR(WINED3DFMT_D32);
FMT_TO_STR(WINED3DFMT_D15S1);
FMT_TO_STR(WINED3DFMT_D24S8);
FMT_TO_STR(WINED3DFMT_D24X8);
FMT_TO_STR(WINED3DFMT_D24X4S4);
FMT_TO_STR(WINED3DFMT_D16);
FMT_TO_STR(WINED3DFMT_L16);
FMT_TO_STR(WINED3DFMT_D32F_LOCKABLE);
FMT_TO_STR(WINED3DFMT_D24FS8);
FMT_TO_STR(WINED3DFMT_VERTEXDATA);
FMT_TO_STR(WINED3DFMT_INDEX16);
FMT_TO_STR(WINED3DFMT_INDEX32);
FMT_TO_STR(WINED3DFMT_Q16W16V16U16);
FMT_TO_STR(WINED3DFMT_R16F);
FMT_TO_STR(WINED3DFMT_G16R16F);
FMT_TO_STR(WINED3DFMT_A16B16G16R16F);
FMT_TO_STR(WINED3DFMT_R32F);
FMT_TO_STR(WINED3DFMT_G32R32F);
FMT_TO_STR(WINED3DFMT_A32B32G32R32F);
FMT_TO_STR(WINED3DFMT_CxV8U8);
#undef FMT_TO_STR
default:
{
char fourcc[5];
fourcc[0] = (char)(fmt);
fourcc[1] = (char)(fmt >> 8);
fourcc[2] = (char)(fmt >> 16);
fourcc[3] = (char)(fmt >> 24);
fourcc[4] = 0;
if( isprint(fourcc[0]) && isprint(fourcc[1]) && isprint(fourcc[2]) && isprint(fourcc[3]) )
FIXME("Unrecognized %u (as fourcc: %s) WINED3DFORMAT!\n", fmt, fourcc);
else
FIXME("Unrecognized %u WINED3DFORMAT!\n", fmt);
}
return "unrecognized";
}
}
const char* debug_d3ddevicetype(WINED3DDEVTYPE devtype) {
switch (devtype) {
#define DEVTYPE_TO_STR(dev) case dev: return #dev
DEVTYPE_TO_STR(WINED3DDEVTYPE_HAL);
DEVTYPE_TO_STR(WINED3DDEVTYPE_REF);
DEVTYPE_TO_STR(WINED3DDEVTYPE_SW);
#undef DEVTYPE_TO_STR
default:
FIXME("Unrecognized %u WINED3DDEVTYPE!\n", devtype);
return "unrecognized";
}
}
const char* debug_d3dusage(DWORD usage) {
switch (usage & WINED3DUSAGE_MASK) {
#define WINED3DUSAGE_TO_STR(u) case u: return #u
WINED3DUSAGE_TO_STR(WINED3DUSAGE_RENDERTARGET);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_DEPTHSTENCIL);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_WRITEONLY);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_SOFTWAREPROCESSING);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_DONOTCLIP);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_POINTS);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_RTPATCHES);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_NPATCHES);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_DYNAMIC);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_AUTOGENMIPMAP);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_DMAP);
#undef WINED3DUSAGE_TO_STR
case 0: return "none";
default:
FIXME("Unrecognized %u Usage!\n", usage);
return "unrecognized";
}
}
const char* debug_d3dusagequery(DWORD usagequery) {
switch (usagequery & WINED3DUSAGE_QUERY_MASK) {
#define WINED3DUSAGEQUERY_TO_STR(u) case u: return #u
WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_FILTER);
WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_LEGACYBUMPMAP);
WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING);
WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_SRGBREAD);
WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_SRGBWRITE);
WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_VERTEXTEXTURE);
WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_WRAPANDMIP);
#undef WINED3DUSAGEQUERY_TO_STR
case 0: return "none";
default:
FIXME("Unrecognized %u Usage Query!\n", usagequery);
return "unrecognized";
}
}
const char* debug_d3ddeclmethod(WINED3DDECLMETHOD method) {
switch (method) {
#define WINED3DDECLMETHOD_TO_STR(u) case u: return #u
WINED3DDECLMETHOD_TO_STR(WINED3DDECLMETHOD_DEFAULT);
WINED3DDECLMETHOD_TO_STR(WINED3DDECLMETHOD_PARTIALU);
WINED3DDECLMETHOD_TO_STR(WINED3DDECLMETHOD_PARTIALV);
WINED3DDECLMETHOD_TO_STR(WINED3DDECLMETHOD_CROSSUV);
WINED3DDECLMETHOD_TO_STR(WINED3DDECLMETHOD_UV);
WINED3DDECLMETHOD_TO_STR(WINED3DDECLMETHOD_LOOKUP);
WINED3DDECLMETHOD_TO_STR(WINED3DDECLMETHOD_LOOKUPPRESAMPLED);
#undef WINED3DDECLMETHOD_TO_STR
default:
FIXME("Unrecognized %u declaration method!\n", method);
return "unrecognized";
}
}
const char* debug_d3ddecltype(WINED3DDECLTYPE type) {
switch (type) {
#define WINED3DDECLTYPE_TO_STR(u) case u: return #u
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_FLOAT1);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_FLOAT2);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_FLOAT3);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_FLOAT4);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_D3DCOLOR);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_UBYTE4);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_SHORT2);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_SHORT4);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_UBYTE4N);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_SHORT2N);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_SHORT4N);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_USHORT2N);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_USHORT4N);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_UDEC3);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_DEC3N);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_FLOAT16_2);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_FLOAT16_4);
WINED3DDECLTYPE_TO_STR(WINED3DDECLTYPE_UNUSED);
#undef WINED3DDECLTYPE_TO_STR
default:
FIXME("Unrecognized %u declaration type!\n", type);
return "unrecognized";
}
}
const char* debug_d3ddeclusage(BYTE usage) {
switch (usage) {
#define WINED3DDECLUSAGE_TO_STR(u) case u: return #u
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_POSITION);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_BLENDWEIGHT);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_BLENDINDICES);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_NORMAL);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_PSIZE);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_TEXCOORD);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_TANGENT);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_BINORMAL);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_TESSFACTOR);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_POSITIONT);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_COLOR);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_FOG);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_DEPTH);
WINED3DDECLUSAGE_TO_STR(WINED3DDECLUSAGE_SAMPLE);
#undef WINED3DDECLUSAGE_TO_STR
default:
FIXME("Unrecognized %u declaration usage!\n", usage);
return "unrecognized";
}
}
const char* debug_d3dresourcetype(WINED3DRESOURCETYPE res) {
switch (res) {
#define RES_TO_STR(res) case res: return #res;
RES_TO_STR(WINED3DRTYPE_SURFACE);
RES_TO_STR(WINED3DRTYPE_VOLUME);
RES_TO_STR(WINED3DRTYPE_TEXTURE);
RES_TO_STR(WINED3DRTYPE_VOLUMETEXTURE);
RES_TO_STR(WINED3DRTYPE_CUBETEXTURE);
RES_TO_STR(WINED3DRTYPE_VERTEXBUFFER);
RES_TO_STR(WINED3DRTYPE_INDEXBUFFER);
#undef RES_TO_STR
default:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -