diff --git a/.github/workflows/doom3_windows_x64_msvc.yml b/.github/workflows/doom3_windows_x64_msvc.yml index fa1632cfd..74c99eae2 100644 --- a/.github/workflows/doom3_windows_x64_msvc.yml +++ b/.github/workflows/doom3_windows_x64_msvc.yml @@ -6,12 +6,12 @@ on: push: branches: [ "master" ] paths: - - 'Q3E/src/main/jni/doom3/neo/**' + #- 'Q3E/src/main/jni/doom3/neo/**' - '.github/workflows/doom3_windows_x64_msvc.yml' pull_request: branches: [ "master" ] paths: - - 'Q3E/src/main/jni/doom3/neo/**' + #- 'Q3E/src/main/jni/doom3/neo/**' - '.github/workflows/doom3_windows_x64_msvc.yml' jobs: diff --git a/Q3E/src/main/jni/doom3/neo/CMakeLists.txt b/Q3E/src/main/jni/doom3/neo/CMakeLists.txt index b400c5735..8acf36fda 100644 --- a/Q3E/src/main/jni/doom3/neo/CMakeLists.txt +++ b/Q3E/src/main/jni/doom3/neo/CMakeLists.txt @@ -558,7 +558,7 @@ else() #TODO linux if(SDL2_FOUND) set(LINUX_SDL TRUE) message(STATUS "use SDL2") - include_directories(${SDL2_INCLUDE_DIR}) + include_directories(${SDL2_INCLUDE_DIRS}) set(SDLx_LIBRARY ${SDL2_LIBRARIES}) add_definitions(-D_SDL) set(sys_libs ${sys_libs} ${SDLx_LIBRARY}) diff --git a/Q3E/src/main/jni/etw/src/rendererGLES/tr_init.c b/Q3E/src/main/jni/etw/src/rendererGLES/tr_init.c index d6bf5d5a6..b8a073cdb 100644 --- a/Q3E/src/main/jni/etw/src/rendererGLES/tr_init.c +++ b/Q3E/src/main/jni/etw/src/rendererGLES/tr_init.c @@ -1166,10 +1166,10 @@ void R_Register(void) harm_r_stencilShadowPersonal = ri.Cvar_Get("harm_r_stencilShadowPersonal", "1", CVAR_ARCHIVE); // 1=always render player model shadow; 2=render player model shadow(by harm_r_stencilShadowModel); 0= harm_r_stencilShadowMaxAngle = ri.Cvar_Get("harm_r_stencilShadowMaxAngle", "-1", CVAR_ARCHIVE); // if( dot( lightDir, vec3(0, 0, 1) ) > cos(DEG2RAD(harm_r_stencilShadowMaxAngle)) ) render stencil shadow. e.g. <0=allow all angle; 0=disable all; 180=allow all; 90=only when light direction is down harm_r_stencilShadowModel = ri.Cvar_Get("harm_r_stencilShadowModel", "3", CVAR_ARCHIVE); // model type mask=1 2 4 8; 0=all model + harm_r_stencilShadowOp = ri.Cvar_Get("harm_r_stencilShadowOp", "0", CVAR_ARCHIVE); // 1=z-pass; 2=z-fail; 0=auto(personal: z-fail) harm_r_stencilShadowMask = ri.Cvar_Get("harm_r_stencilShadowMask", "0", STENCIL_SHADOW_CVAR_FLAG); // 1=render mask every render shadow volume; 0=render mask after all surfaces render harm_r_stencilShadowDebug = ri.Cvar_Get("harm_r_stencilShadowDebug", "0", 0); // debug stencil shadow: 1=render edges; 2=render front cap; 4=render far cap - harm_r_stencilShadowOp = ri.Cvar_Get("harm_r_stencilShadowOp", "0", STENCIL_SHADOW_CVAR_FLAG); // 1=z-pass; 2=z-fail; 0=auto(personal: z-fail) harm_r_stencilShadowCap = ri.Cvar_Get("harm_r_stencilShadowCap", "1", STENCIL_SHADOW_CVAR_FLAG); // 1=render shadow volume's caps(near cap: back facing light source; far cap: back facing light source); 2=render shadow volume's caps(near cap: facing light source; far cap: back facing light source); 3=render shadow volume's caps(near cap: facing light source; far cap: facing light source); 0=don't render shadow volume's caps exclude personal(personal is same as 1) harm_r_stencilShadowInfinite = ri.Cvar_Get("harm_r_stencilShadowInfinite", "0", STENCIL_SHADOW_CVAR_FLAG); // <0=edge's far.w = 0.0 and use 4-components(xyzw); >=0=use 3-components(xyz). 0: 512, |length| diff --git a/Q3E/src/main/jni/realrtcw/code/renderer/tr_animation.c b/Q3E/src/main/jni/realrtcw/code/renderer/tr_animation.c index 4a861cfd7..fee82564e 100644 --- a/Q3E/src/main/jni/realrtcw/code/renderer/tr_animation.c +++ b/Q3E/src/main/jni/realrtcw/code/renderer/tr_animation.c @@ -406,7 +406,9 @@ void R_AddAnimSurfaces( trRefEntity_t *ent ) { !personalModel #endif && r_shadows->integer == 2 +#if !defined(STENCIL_SHADOW_IMPROVE) //karin: allow shadow on fog && fogNum == 0 +#endif && !(ent->e.renderfx & ( RF_NOSHADOW | RF_DEPTHHACK ) ) && shader->sort == SS_OPAQUE #ifdef STENCIL_SHADOW_IMPROVE //karin: ignore alpha test shader pass and special model type exclude player model @@ -1642,7 +1644,9 @@ void R_MDRAddAnimSurfaces( trRefEntity_t *ent ) { !personalModel #endif && r_shadows->integer == 2 +#if !defined(STENCIL_SHADOW_IMPROVE) //karin: allow shadow on fog && fogNum == 0 +#endif && !(ent->e.renderfx & ( RF_NOSHADOW | RF_DEPTHHACK ) ) && shader->sort == SS_OPAQUE #ifdef STENCIL_SHADOW_IMPROVE //karin: ignore alpha test shader pass and special model type exclude player model diff --git a/Q3E/src/main/jni/realrtcw/code/renderer/tr_cmesh.c b/Q3E/src/main/jni/realrtcw/code/renderer/tr_cmesh.c index b9da11a93..956ca573c 100644 --- a/Q3E/src/main/jni/realrtcw/code/renderer/tr_cmesh.c +++ b/Q3E/src/main/jni/realrtcw/code/renderer/tr_cmesh.c @@ -431,7 +431,9 @@ void R_AddMDCSurfaces( trRefEntity_t *ent ) { !personalModel #endif && r_shadows->integer == 2 +#if !defined(STENCIL_SHADOW_IMPROVE) //karin: allow shadow on fog && fogNum == 0 +#endif && !( ent->e.renderfx & ( RF_NOSHADOW | RF_DEPTHHACK ) ) && shader->sort == SS_OPAQUE #ifdef STENCIL_SHADOW_IMPROVE //karin: ignore alpha test shader pass and special model type exclude player model diff --git a/Q3E/src/main/jni/realrtcw/code/renderer/tr_init.c b/Q3E/src/main/jni/realrtcw/code/renderer/tr_init.c index f8c813843..d9f3f625f 100644 --- a/Q3E/src/main/jni/realrtcw/code/renderer/tr_init.c +++ b/Q3E/src/main/jni/realrtcw/code/renderer/tr_init.c @@ -1403,11 +1403,11 @@ void R_Register( void ) { #endif harm_r_stencilShadowPersonal = ri.Cvar_Get("harm_r_stencilShadowPersonal", "1", CVAR_ARCHIVE); // 1=always render player model shadow; 2=render player model shadow(by harm_r_stencilShadowModel); 0= harm_r_stencilShadowMaxAngle = ri.Cvar_Get("harm_r_stencilShadowMaxAngle", "-1", CVAR_ARCHIVE); // if( dot( lightDir, vec3(0, 0, 1) ) > cos(DEG2RAD(harm_r_stencilShadowMaxAngle)) ) render stencil shadow. e.g. <0=allow all angle; 0=disable all; 180=allow all; 90=only when light direction is down - harm_r_stencilShadowMask = ri.Cvar_Get("harm_r_stencilShadowMask", "0", STENCIL_SHADOW_CVAR_FLAG); // 1=render mask every render shadow volume; 0=render mask after all surfaces render + harm_r_stencilShadowModel = ri.Cvar_Get("harm_r_stencilShadowModel", "3", CVAR_ARCHIVE); // model type mask=1 2 4 8 16; 0=all model + harm_r_stencilShadowOp = ri.Cvar_Get("harm_r_stencilShadowOp", "0", CVAR_ARCHIVE); // 1=z-pass; 2=z-fail; 0=auto(personal: z-fail) + harm_r_stencilShadowMask = ri.Cvar_Get("harm_r_stencilShadowMask", "0", STENCIL_SHADOW_CVAR_FLAG); // 1=render mask every render shadow volume; 0=render mask after all surfaces render harm_r_stencilShadowDebug = ri.Cvar_Get("harm_r_stencilShadowDebug", "0", 0); // debug stencil shadow: 1=render edges; 2=render front cap; 4=render far cap - harm_r_stencilShadowModel = ri.Cvar_Get("harm_r_stencilShadowModel", "3", STENCIL_SHADOW_CVAR_FLAG); // model type mask=1 2 4 8 16; 0=all model - harm_r_stencilShadowOp = ri.Cvar_Get("harm_r_stencilShadowOp", "0", STENCIL_SHADOW_CVAR_FLAG); // 1=z-pass; 2=z-fail; 0=auto(personal: z-fail) harm_r_stencilShadowCap = ri.Cvar_Get("harm_r_stencilShadowCap", "1", STENCIL_SHADOW_CVAR_FLAG); // 1=render shadow volume's caps(near cap: back facing light source; far cap: back facing light source); 2=render shadow volume's caps(near cap: facing light source; far cap: back facing light source); 3=render shadow volume's caps(near cap: facing light source; far cap: facing light source); 0=don't render shadow volume's caps exclude personal(personal is same as 1) harm_r_shadowPolygonOffset = ri.Cvar_Get("harm_r_shadowPolygonOffset", "0", STENCIL_SHADOW_CVAR_FLAG); // render shadow volume's polygon offset units: DOOM3 default is -1 diff --git a/Q3E/src/main/jni/realrtcw/code/renderer/tr_mesh.c b/Q3E/src/main/jni/realrtcw/code/renderer/tr_mesh.c index 83064dbb0..ccae46cd8 100644 --- a/Q3E/src/main/jni/realrtcw/code/renderer/tr_mesh.c +++ b/Q3E/src/main/jni/realrtcw/code/renderer/tr_mesh.c @@ -436,7 +436,9 @@ void R_AddMD3Surfaces( trRefEntity_t *ent ) { !personalModel #endif && r_shadows->integer == 2 +#if !defined(STENCIL_SHADOW_IMPROVE) //karin: allow shadow on fog && fogNum == 0 +#endif && !( ent->e.renderfx & ( RF_NOSHADOW | RF_DEPTHHACK ) ) && shader->sort == SS_OPAQUE #ifdef STENCIL_SHADOW_IMPROVE //karin: ignore alpha test shader pass and special model type exclude player model diff --git a/Q3E/src/main/jni/realrtcw/code/renderer/tr_model_iqm.c b/Q3E/src/main/jni/realrtcw/code/renderer/tr_model_iqm.c index 1bdfbd2a8..a73f4dc00 100644 --- a/Q3E/src/main/jni/realrtcw/code/renderer/tr_model_iqm.c +++ b/Q3E/src/main/jni/realrtcw/code/renderer/tr_model_iqm.c @@ -1144,7 +1144,9 @@ void R_AddIQMSurfaces( trRefEntity_t *ent ) { !personalModel #endif && r_shadows->integer == 2 +#if !defined(STENCIL_SHADOW_IMPROVE) //karin: allow shadow on fog && fogNum == 0 +#endif && !(ent->e.renderfx & ( RF_NOSHADOW | RF_DEPTHHACK ) ) && shader->sort == SS_OPAQUE #ifdef STENCIL_SHADOW_IMPROVE //karin: ignore alpha test shader pass and special model type exclude player model