From 1863fe8cd025f7e1dc36271dacafd6f122f77a9e Mon Sep 17 00:00:00 2001 From: Xottab-DUTY Date: Mon, 1 May 2023 13:30:58 +0300 Subject: [PATCH] xrRender_R1: ability to disable lightmaps with FFP enabled --- src/Layers/xrRender/Blender.cpp | 2 +- src/Layers/xrRender/Light_DB.cpp | 5 +- .../xrRender/blenders/BlenderDefault.cpp | 20 ++++-- src/Layers/xrRender/blenders/Blender_BmmD.cpp | 2 +- .../blenders/Blender_Editor_Selection.cpp | 2 +- .../xrRender/blenders/Blender_Editor_Wire.cpp | 2 +- .../xrRender/blenders/Blender_LaEmB.cpp | 68 ++++++++++++------- .../xrRender/blenders/Blender_Lm(EbB).cpp | 39 +++++++---- .../xrRender/blenders/Blender_Model.cpp | 2 +- .../xrRender/blenders/Blender_Model_EbB.cpp | 2 +- .../xrRender/blenders/Blender_Vertex.cpp | 4 +- .../xrRender/blenders/Blender_Vertex_aref.cpp | 4 +- .../blenders/Blender_default_aref.cpp | 20 ++++-- .../blenders/Blender_detail_still.cpp | 2 +- src/Layers/xrRender/blenders/Blender_tree.cpp | 2 +- src/Layers/xrRender/xrRender_console.cpp | 11 +-- src/Layers/xrRender/xrRender_console.h | 10 +-- src/Layers/xrRenderPC_R1/LightPPA.cpp | 2 +- 18 files changed, 112 insertions(+), 87 deletions(-) diff --git a/src/Layers/xrRender/Blender.cpp b/src/Layers/xrRender/Blender.cpp index 2d5e60978fe..e30df0d4e22 100644 --- a/src/Layers/xrRender/Blender.cpp +++ b/src/Layers/xrRender/Blender.cpp @@ -78,7 +78,7 @@ void IBlender::Compile(CBlender_Compile& C) // and set to true in 'else' path // but it was ignored anyway in the SetParams ¯\_(ツ)_/¯. // Need to research commits from 2003 in xray-soc-history more - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) C.SetParams(oPriority.value, oStrictSorting.value ? true : false); else C.SetParams(oPriority.value, oStrictSorting.value ? true : false); diff --git a/src/Layers/xrRender/Light_DB.cpp b/src/Layers/xrRender/Light_DB.cpp index 378ca54ada6..0666f0bb3fc 100644 --- a/src/Layers/xrRender/Light_DB.cpp +++ b/src/Layers/xrRender/Light_DB.cpp @@ -150,7 +150,10 @@ void CLight_DB::add_light(light* L) L->frame_render = Device.dwFrame; #if RENDER == R_R1 if (L->flags.bStatic) - return; // skip static lighting, 'cause they are in lmaps + { + if (!RImplementation.o.ffp || ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + return; // skip static lighting, 'cause they are in lmaps + } if (ps_r1_flags.test(R1FLAG_DLIGHTS)) RImplementation.L_Dynamic->add(L); #else diff --git a/src/Layers/xrRender/blenders/BlenderDefault.cpp b/src/Layers/xrRender/blenders/BlenderDefault.cpp index 0d3312bb763..d83924b4d41 100644 --- a/src/Layers/xrRender/blenders/BlenderDefault.cpp +++ b/src/Layers/xrRender/blenders/BlenderDefault.cpp @@ -73,7 +73,7 @@ void CBlender_default::Compile(CBlender_Compile& C) void CBlender_default::CompileFFP(CBlender_Compile& C) const { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassBegin(); { @@ -103,9 +103,12 @@ void CBlender_default::CompileFFP(CBlender_Compile& C) const C.PassSET_LightFog(false, true); // Stage0 - Lightmap - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } // Stage1 - Base texture C.StageBegin(); @@ -128,9 +131,12 @@ void CBlender_default::CompileFFP(CBlender_Compile& C) const C.PassSET_LightFog(false, false); // Stage0 - Lightmap - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } } C.PassEnd(); break; diff --git a/src/Layers/xrRender/blenders/Blender_BmmD.cpp b/src/Layers/xrRender/blenders/Blender_BmmD.cpp index 4f0efff58f6..e799b3cb6e2 100644 --- a/src/Layers/xrRender/blenders/Blender_BmmD.cpp +++ b/src/Layers/xrRender/blenders/Blender_BmmD.cpp @@ -80,7 +80,7 @@ void CBlender_BmmD::Compile(CBlender_Compile& C) void CBlender_BmmD::CompileFFP(CBlender_Compile& C) const { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassBegin(); { diff --git a/src/Layers/xrRender/blenders/Blender_Editor_Selection.cpp b/src/Layers/xrRender/blenders/Blender_Editor_Selection.cpp index ff95f23e177..b8ab469a269 100644 --- a/src/Layers/xrRender/blenders/Blender_Editor_Selection.cpp +++ b/src/Layers/xrRender/blenders/Blender_Editor_Selection.cpp @@ -57,7 +57,7 @@ void CBlender_Editor_Selection::Compile(CBlender_Compile& C) { IBlender::Compile(C); - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { CompileForEditor(C); return; diff --git a/src/Layers/xrRender/blenders/Blender_Editor_Wire.cpp b/src/Layers/xrRender/blenders/Blender_Editor_Wire.cpp index 6a7a24972c6..e2f7149ac67 100644 --- a/src/Layers/xrRender/blenders/Blender_Editor_Wire.cpp +++ b/src/Layers/xrRender/blenders/Blender_Editor_Wire.cpp @@ -52,7 +52,7 @@ void CBlender_Editor_Wire::Compile(CBlender_Compile& C) { IBlender::Compile(C); - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { CompileForEditor(C); return; diff --git a/src/Layers/xrRender/blenders/Blender_LaEmB.cpp b/src/Layers/xrRender/blenders/Blender_LaEmB.cpp index 76f118d3c92..8ef4772b064 100644 --- a/src/Layers/xrRender/blenders/Blender_LaEmB.cpp +++ b/src/Layers/xrRender/blenders/Blender_LaEmB.cpp @@ -127,7 +127,7 @@ void CBlender_LaEmB::Compile(CBlender_Compile& C) const bool bConstant = (0 != xr_stricmp(oT2_const, "$null")); - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { if (bConstant) compile_EDc(C); @@ -174,9 +174,12 @@ void CBlender_LaEmB::compile_2(CBlender_Compile& C) C.PassSET_LightFog(FALSE, TRUE); // Stage0 - Lightmap - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } // Stage1 - Environment map C.StageBegin(); @@ -220,11 +223,14 @@ void CBlender_LaEmB::compile_2c(CBlender_Compile& C) C.StageEnd(); // Stage1 - [+] Lightmap - C.StageBegin(); - C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); - C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); - C.StageSET_TMC("$base1", "$null", "$null", 1); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); + C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); + C.StageSET_TMC("$base1", "$null", "$null", 1); + C.StageEnd(); + } } C.PassEnd(); @@ -255,9 +261,12 @@ void CBlender_LaEmB::compile_3(CBlender_Compile& C) C.PassSET_LightFog(FALSE, TRUE); // Stage0 - [=] Lightmap - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } // Stage1 - [+] Env-map C.StageBegin(); @@ -293,11 +302,14 @@ void CBlender_LaEmB::compile_3c(CBlender_Compile& C) C.StageEnd(); // Stage0 - [+] Lightmap - C.StageBegin(); - C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); - C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); - C.StageSET_TMC("$base1", "$null", "$null", 1); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); + C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); + C.StageSET_TMC("$base1", "$null", "$null", 1); + C.StageEnd(); + } // Stage2 - [*] Base C.StageBegin(); @@ -320,9 +332,12 @@ void CBlender_LaEmB::compile_L(CBlender_Compile& C) C.PassSET_LightFog(FALSE, FALSE); // Stage0 - Lightmap - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } // Stage1 - Environment map C.StageBegin(); @@ -350,11 +365,14 @@ void CBlender_LaEmB::compile_Lc(CBlender_Compile& C) C.StageEnd(); // Stage1 - [+] Lightmap - C.StageBegin(); - C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); - C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); - C.StageSET_TMC("$base1", "$null", "$null", 1); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); + C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_ADD, D3DTA_CURRENT); + C.StageSET_TMC("$base1", "$null", "$null", 1); + C.StageEnd(); + } } C.PassEnd(); } diff --git a/src/Layers/xrRender/blenders/Blender_Lm(EbB).cpp b/src/Layers/xrRender/blenders/Blender_Lm(EbB).cpp index 5c9920ba034..74b293dd98e 100644 --- a/src/Layers/xrRender/blenders/Blender_Lm(EbB).cpp +++ b/src/Layers/xrRender/blenders/Blender_Lm(EbB).cpp @@ -56,7 +56,7 @@ void CBlender_LmEbB::Compile(CBlender_Compile& C) void CBlender_LmEbB::CompileFFP(CBlender_Compile& C) const { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) compile_ED(C); else { @@ -125,9 +125,12 @@ void CBlender_LmEbB::compile_2(CBlender_Compile& C) const C.PassSET_LightFog(FALSE, TRUE); // Stage0 - Detail - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } } C.PassEnd(); @@ -178,14 +181,17 @@ void CBlender_LmEbB::compile_3(CBlender_Compile& C) const C.StageEnd(); // Stage2 - [*] Lightmap - C.StageBegin(); - C.StageSET_Address(D3DTADDRESS_CLAMP); - C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_MODULATE2X, D3DTA_CURRENT); - C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_SELECTARG2, D3DTA_CURRENT); - C.Stage_Texture("$base1"); - C.Stage_Matrix("$null", 1); - C.Stage_Constant("$null"); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageSET_Address(D3DTADDRESS_CLAMP); + C.StageSET_Color(D3DTA_TEXTURE, D3DTOP_MODULATE2X, D3DTA_CURRENT); + C.StageSET_Alpha(D3DTA_TEXTURE, D3DTOP_SELECTARG2, D3DTA_CURRENT); + C.Stage_Texture("$base1"); + C.Stage_Matrix("$null", 1); + C.Stage_Constant("$null"); + C.StageEnd(); + } } C.PassEnd(); } @@ -200,9 +206,12 @@ void CBlender_LmEbB::compile_L(CBlender_Compile& C) const C.PassSET_LightFog(FALSE, FALSE); // Stage0 - Detail - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } } C.PassEnd(); } diff --git a/src/Layers/xrRender/blenders/Blender_Model.cpp b/src/Layers/xrRender/blenders/Blender_Model.cpp index 1071b47ec6a..7398ebdb829 100644 --- a/src/Layers/xrRender/blenders/Blender_Model.cpp +++ b/src/Layers/xrRender/blenders/Blender_Model.cpp @@ -77,7 +77,7 @@ void CBlender_Model::Compile(CBlender_Compile& C) void CBlender_Model::CompileFFP(CBlender_Compile& C) const { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassBegin(); { diff --git a/src/Layers/xrRender/blenders/Blender_Model_EbB.cpp b/src/Layers/xrRender/blenders/Blender_Model_EbB.cpp index c2f9cbb5214..c23b8248825 100644 --- a/src/Layers/xrRender/blenders/Blender_Model_EbB.cpp +++ b/src/Layers/xrRender/blenders/Blender_Model_EbB.cpp @@ -51,7 +51,7 @@ void CBlender_Model_EbB::Compile(CBlender_Compile& C) void CBlender_Model_EbB::CompileFFP(CBlender_Compile& C) const { - const bool constant_lighting = ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT; + const bool constant_lighting = !ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS); const size_t element = constant_lighting ? SE_R1_NORMAL_LQ : C.iElement; const auto modulate = constant_lighting ? D3DTOP_MODULATE : D3DTOP_MODULATE2X; diff --git a/src/Layers/xrRender/blenders/Blender_Vertex.cpp b/src/Layers/xrRender/blenders/Blender_Vertex.cpp index 4da7a4fd6ee..236326bd6c2 100644 --- a/src/Layers/xrRender/blenders/Blender_Vertex.cpp +++ b/src/Layers/xrRender/blenders/Blender_Vertex.cpp @@ -68,7 +68,7 @@ void CBlender_Vertex::Compile(CBlender_Compile& C) void CBlender_Vertex::CompileFFP(CBlender_Compile& C) const { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassBegin(); { @@ -97,7 +97,7 @@ void CBlender_Vertex::CompileFFP(CBlender_Compile& C) const { C.PassSET_ZB(TRUE, TRUE); C.PassSET_Blend(FALSE, D3DBLEND_ONE, D3DBLEND_ZERO, FALSE, 0); - C.PassSET_LightFog(ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT, TRUE); + C.PassSET_LightFog(FALSE, TRUE); // Stage0 - Base texture C.StageBegin(); diff --git a/src/Layers/xrRender/blenders/Blender_Vertex_aref.cpp b/src/Layers/xrRender/blenders/Blender_Vertex_aref.cpp index fb3c2133297..3a0b8826054 100644 --- a/src/Layers/xrRender/blenders/Blender_Vertex_aref.cpp +++ b/src/Layers/xrRender/blenders/Blender_Vertex_aref.cpp @@ -60,7 +60,7 @@ void CBlender_Vertex_aref::Compile(CBlender_Compile& C) void CBlender_Vertex_aref::CompileFFP(CBlender_Compile& C) const { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassBegin(); { @@ -96,7 +96,7 @@ void CBlender_Vertex_aref::CompileFFP(CBlender_Compile& C) const C.PassSET_Blend(TRUE, D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE, oAREF.value); else C.PassSET_Blend(TRUE, D3DBLEND_ONE, D3DBLEND_ZERO, TRUE, oAREF.value); - C.PassSET_LightFog(ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT, TRUE); + C.PassSET_LightFog(FALSE, TRUE); // Stage1 - Base texture C.StageBegin(); diff --git a/src/Layers/xrRender/blenders/Blender_default_aref.cpp b/src/Layers/xrRender/blenders/Blender_default_aref.cpp index 337aa80a1ab..31890dbca9d 100644 --- a/src/Layers/xrRender/blenders/Blender_default_aref.cpp +++ b/src/Layers/xrRender/blenders/Blender_default_aref.cpp @@ -67,7 +67,7 @@ void CBlender_default_aref::Compile(CBlender_Compile& C) void CBlender_default_aref::CompileFFP(CBlender_Compile& C) const { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassBegin(); { @@ -105,9 +105,12 @@ void CBlender_default_aref::CompileFFP(CBlender_Compile& C) const C.PassSET_LightFog(false, true); // Stage0 - Lightmap - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } // Stage1 - Base texture C.StageBegin(); @@ -128,9 +131,12 @@ void CBlender_default_aref::CompileFFP(CBlender_Compile& C) const C.PassSET_LightFog(false, true); // Stage0 - Lightmap - C.StageBegin(); - C.StageTemplate_LMAP0(); - C.StageEnd(); + if (ps_r1_flags.test(R1FLAG_FFP_LIGHTMAPS)) + { + C.StageBegin(); + C.StageTemplate_LMAP0(); + C.StageEnd(); + } } C.PassEnd(); break; diff --git a/src/Layers/xrRender/blenders/Blender_detail_still.cpp b/src/Layers/xrRender/blenders/Blender_detail_still.cpp index d3dfc6943f7..d22fb74f5fd 100644 --- a/src/Layers/xrRender/blenders/Blender_detail_still.cpp +++ b/src/Layers/xrRender/blenders/Blender_detail_still.cpp @@ -46,7 +46,7 @@ void CBlender_Detail_Still::CompileFFP(CBlender_Compile& C) const else C.PassSET_Blend_SET(TRUE, 200); - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassSET_LightFog(TRUE, TRUE); diff --git a/src/Layers/xrRender/blenders/Blender_tree.cpp b/src/Layers/xrRender/blenders/Blender_tree.cpp index 29fec4c187a..d3a0c07d534 100644 --- a/src/Layers/xrRender/blenders/Blender_tree.cpp +++ b/src/Layers/xrRender/blenders/Blender_tree.cpp @@ -58,7 +58,7 @@ void CBlender_Tree::CompileFFP(CBlender_Compile& C) const else C.PassSET_Blend_SET(TRUE, 200); - /*if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_CONSTANT) + /*if (!ps_r1_flags.is_any(R1FLAG_FFP_LIGHTMAPS | R1FLAG_DLIGHTS)) { C.PassSET_LightFog(TRUE, TRUE); diff --git a/src/Layers/xrRender/xrRender_console.cpp b/src/Layers/xrRender/xrRender_console.cpp index d995f97b4bd..3b6797a1ecc 100644 --- a/src/Layers/xrRender/xrRender_console.cpp +++ b/src/Layers/xrRender/xrRender_console.cpp @@ -137,15 +137,6 @@ int ps_r1_GlowsPerFrame = 16; // r1-only float ps_r1_fog_luminance = 1.1f; // r1-only int ps_r1_SoftwareSkinning = 0; // r1-only -u32 ps_r1_ffp_lighting_mode = R1_FFP_LIGHTING_LIGHTMAP; // r1-only -const xr_token qffp_lighting_token[] = -{ - { "st_opt_ffp_constant", R1_FFP_LIGHTING_CONSTANT }, - { "st_opt_ffp_lightmap", R1_FFP_LIGHTING_LIGHTMAP }, - { "st_opt_ffp_dynamic", R1_FFP_LIGHTING_DYNAMIC }, - { nullptr, -1 } -}; - // R2 bool ps_r2_sun_static = false; bool ps_r2_advanced_pp = true; // advanced post process and effects @@ -814,7 +805,7 @@ void xrRender_initconsole() CMD4(CCC_Integer, "r1_software_skinning", &ps_r1_SoftwareSkinning, 0, 2); CMD3(CCC_Mask, "r1_ffp", &ps_r1_flags, R1FLAG_FFP); - CMD3(CCC_Token, "r1_ffp_lighting", &ps_r1_ffp_lighting_mode, qffp_lighting_token); + CMD3(CCC_Mask, "r1_ffp_lightmaps", &ps_r1_flags, R1FLAG_FFP_LIGHTMAPS); // R2 CMD4(CCC_Float, "r2_ssa_lod_a", &ps_r2_ssaLOD_A, 16, 96); diff --git a/src/Layers/xrRender/xrRender_console.h b/src/Layers/xrRender/xrRender_console.h index b2de13310df..0e87c98efb9 100644 --- a/src/Layers/xrRender/xrRender_console.h +++ b/src/Layers/xrRender/xrRender_console.h @@ -81,19 +81,11 @@ extern ECORE_API Flags32 ps_r1_flags; // r1-only extern ECORE_API float ps_r1_fog_luminance; // 1.f r1-only extern ECORE_API int ps_r1_SoftwareSkinning; // r1-only -extern ECORE_API u32 ps_r1_ffp_lighting_mode; - -enum R1_FFP_LIGHTING_MODE -{ - R1_FFP_LIGHTING_CONSTANT, // SDK lighting – just constant lighting, not even lightmaps - R1_FFP_LIGHTING_LIGHTMAP, - R1_FFP_LIGHTING_DYNAMIC, -}; - enum { R1FLAG_DLIGHTS = (1 << 0), R1FLAG_FFP = (1 << 1), // don't use shaders, only fixed-function pipeline or software processing + R1FLAG_FFP_LIGHTMAPS = (1 << 2), }; // R2 diff --git a/src/Layers/xrRenderPC_R1/LightPPA.cpp b/src/Layers/xrRenderPC_R1/LightPPA.cpp index dc99b790a00..c9ad9c9767c 100644 --- a/src/Layers/xrRenderPC_R1/LightPPA.cpp +++ b/src/Layers/xrRenderPC_R1/LightPPA.cpp @@ -436,7 +436,7 @@ void CLightR_Manager::render(u32 _priority) { if (RImplementation.o.ffp) { - if (ps_r1_ffp_lighting_mode == R1_FFP_LIGHTING_DYNAMIC) + if (ps_r1_flags.test(R1FLAG_DLIGHTS)) render_ffp(); if (_priority == 1)