From a3689c694c3e5ffafd569be195e96b899479448f Mon Sep 17 00:00:00 2001 From: NepDisk Date: Sun, 19 Oct 2025 12:19:13 -0400 Subject: [PATCH] Add brightmap versions --- src/r_draw.h | 10 ++++++++++ src/screen.c | 29 ++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/r_draw.h b/src/r_draw.h index 5d2a0c036..5a1ef0f1d 100644 --- a/src/r_draw.h +++ b/src/r_draw.h @@ -240,6 +240,16 @@ void R_Draw2sMultiPatchColumn_Brightmap(drawcolumndata_t* dc); void R_Draw2sMultiPatchTranslucentColumn_Brightmap(drawcolumndata_t* dc); void R_DrawColumnShadowed_Brightmap(drawcolumndata_t* dc); +// column drawers which use buffered drawing with flush +void R_DrawColumnFlush_Brightmap(drawcolumndata_t* dc); +void R_DrawTranslucentColumnFlush_Brightmap(drawcolumndata_t* dc); +void R_DrawTranslatedColumnFlush_Brightmap(drawcolumndata_t* dc); +void R_DrawColumnShadowedFlush_Brightmap(drawcolumndata_t* dc); +void R_DrawTranslatedTranslucentColumnFlush_Brightmap(drawcolumndata_t* dc); +void R_Draw2sMultiPatchColumnFlush_Brightmap(drawcolumndata_t* dc); +void R_Draw2sMultiPatchTranslucentColumnFlush_Brightmap(drawcolumndata_t* dc); + + void R_DrawSpan(drawspandata_t* ds); void R_DrawTranslucentSpan(drawspandata_t* ds); void R_DrawSplat(drawspandata_t* ds); diff --git a/src/screen.c b/src/screen.c index 4db2536fb..860501b47 100644 --- a/src/screen.c +++ b/src/screen.c @@ -128,13 +128,28 @@ void SCR_SetDrawFuncs(enum columncontext_e _columncontext) colfuncs[COLDRAWFUNC_FOG] = R_DrawFogColumn; colfuncs[COLDRAWFUNC_DROPSHADOW] = R_DrawDropShadowColumn; - colfuncs_bm[BASEDRAWFUNC] = R_DrawColumn_Brightmap; - colfuncs_bm[COLDRAWFUNC_FUZZY] = R_DrawTranslucentColumn_Brightmap; - colfuncs_bm[COLDRAWFUNC_TRANS] = R_DrawTranslatedColumn_Brightmap; - colfuncs_bm[COLDRAWFUNC_SHADOWED] = R_DrawColumnShadowed_Brightmap; - colfuncs_bm[COLDRAWFUNC_TRANSTRANS] = R_DrawTranslatedTranslucentColumn_Brightmap; - colfuncs_bm[COLDRAWFUNC_TWOSMULTIPATCH] = R_Draw2sMultiPatchColumn_Brightmap; - colfuncs_bm[COLDRAWFUNC_TWOSMULTIPATCHTRANS] = R_Draw2sMultiPatchTranslucentColumn_Brightmap; + + if (_columncontext == COLUMNCONTEXT_FLUSH) + { + colfuncs_bm[BASEDRAWFUNC] = R_DrawColumnFlush_Brightmap; + colfuncs_bm[COLDRAWFUNC_FUZZY] = R_DrawTranslucentColumnFlush_Brightmap; + colfuncs_bm[COLDRAWFUNC_TRANS] = R_DrawTranslatedColumnFlush_Brightmap; + colfuncs_bm[COLDRAWFUNC_SHADOWED] = R_DrawColumnShadowedFlush_Brightmap; + colfuncs_bm[COLDRAWFUNC_TRANSTRANS] = R_DrawTranslatedTranslucentColumnFlush_Brightmap; + colfuncs_bm[COLDRAWFUNC_TWOSMULTIPATCH] = R_Draw2sMultiPatchColumnFlush_Brightmap; + colfuncs_bm[COLDRAWFUNC_TWOSMULTIPATCHTRANS] = R_Draw2sMultiPatchTranslucentColumnFlush_Brightmap; + } + else + { + colfuncs_bm[BASEDRAWFUNC] = R_DrawColumn_Brightmap; + colfuncs_bm[COLDRAWFUNC_FUZZY] = R_DrawTranslucentColumn_Brightmap; + colfuncs_bm[COLDRAWFUNC_TRANS] = R_DrawTranslatedColumn_Brightmap; + colfuncs_bm[COLDRAWFUNC_SHADOWED] = R_DrawColumnShadowed_Brightmap; + colfuncs_bm[COLDRAWFUNC_TRANSTRANS] = R_DrawTranslatedTranslucentColumn_Brightmap; + colfuncs_bm[COLDRAWFUNC_TWOSMULTIPATCH] = R_Draw2sMultiPatchColumn_Brightmap; + colfuncs_bm[COLDRAWFUNC_TWOSMULTIPATCHTRANS] = R_Draw2sMultiPatchTranslucentColumn_Brightmap; + } + colfuncs_bm[COLDRAWFUNC_FOG] = NULL; // Not needed colfuncs_bm[COLDRAWFUNC_DROPSHADOW] = NULL; // Not needed