所以我正在把PRBoom移植到手臂上,我可以跨越一个问题......
有以下代码....
R_DrawColumn_f R_GetDrawColumnFunc(enum column_pipeline_e type,
enum draw_filter_type_e filter,
enum draw_filter_type_e filterz) {
R_DrawColumn_f result = drawcolumnfuncs[V_GetMode()][filterz][filter][type];
if (result == NULL)
I_Error("R_GetDrawColumnFunc: undefined function (%d, %d, %d)",
type, filter, filterz);
return result;
}
哪个产生
04-12 12:58:45.970:E / DJNI(16943):系统错误:R_GetDrawColumnFunc:未定义的函数(2,1,0)
所以我的理解是drawcolumnfuncs方法会变得混乱。但这里是我挣扎的地方,我不确定这个功能sig在做什么......
static R_DrawColumn_f drawcolumnfuncs[VID_MODEMAX][RDRAW_FILTER_MAXFILTERS][RDRAW_FILTER_MAXFILTERS][RDC_PIPELINE_MAXPIPELINES] = {
{
{
{NULL, NULL, NULL, NULL,},
{R_DrawColumn8_PointUV,
R_DrawTLColumn8_PointUV,
R_DrawTranslatedColumn8_PointUV,
R_DrawFuzzColumn8_PointUV,},
{R_DrawColumn8_LinearUV,
R_DrawTLColumn8_LinearUV,
R_DrawTranslatedColumn8_LinearUV,
R_DrawFuzzColumn8_LinearUV,},
{R_DrawColumn8_RoundedUV,
R_DrawTLColumn8_RoundedUV,
R_DrawTranslatedColumn8_RoundedUV,
R_DrawFuzzColumn8_RoundedUV,},
},
...
看起来它只是制作HashMap的C版本,但为什么它会返回null呢?
答案 0 :(得分:3)
这不是一个功能,先生,只是一个阵列。
它在这个数组中说如果第二个索引为零,则其所有内容都为NULL。它的第二个索引是你函数的第三个参数,恰好是零。
这意味着您的函数使用错误的参数调用R_GetDrawColumnFunc 。