diff --git a/cmake/cvars.cmake b/cmake/cvars.cmake index cebfe39..a4239f6 100644 --- a/cmake/cvars.cmake +++ b/cmake/cvars.cmake @@ -1,5 +1,6 @@ set(CVAR_VSYNC_ENABLED "gVsyncEnabled" CACHE STRING "") set(CVAR_Z_FIGHTING_MODE "gZFightingMode" CACHE STRING "") +set(CVAR_DISABLE_CLOSE_COLOR_WRAP "gDisableCloseColorWrap" CACHE STRING "") set(CVAR_NEW_FILE_DROPPED "gNewFileDropped" CACHE STRING "") set(CVAR_DROPPED_FILE "gDroppedFile" CACHE STRING "") set(CVAR_INTERNAL_RESOLUTION "gInternalResolution" CACHE STRING "") @@ -24,6 +25,7 @@ set(CVAR_PREFIX_ADVANCED_RESOLUTION "gAdvancedResolution" CACHE STRING "") add_compile_definitions( CVAR_VSYNC_ENABLED="${CVAR_VSYNC_ENABLED}" CVAR_Z_FIGHTING_MODE="${CVAR_Z_FIGHTING_MODE}" + CVAR_DISABLE_CLOSE_COLOR_WRAP="${CVAR_DISABLE_CLOSE_COLOR_WRAP}" CVAR_NEW_FILE_DROPPED="${CVAR_NEW_FILE_DROPPED}" CVAR_DROPPED_FILE="${CVAR_DROPPED_FILE}" CVAR_INTERNAL_RESOLUTION="${CVAR_INTERNAL_RESOLUTION}" diff --git a/src/graphic/Fast3D/gfx_direct3d_common.cpp b/src/graphic/Fast3D/gfx_direct3d_common.cpp index 003b44c..ed231c8 100644 --- a/src/graphic/Fast3D/gfx_direct3d_common.cpp +++ b/src/graphic/Fast3D/gfx_direct3d_common.cpp @@ -4,6 +4,7 @@ #include "gfx_direct3d_common.h" #include "gfx_cc.h" +#include static void append_str(char* buf, size_t* len, const char* str) { while (*str != '\0') @@ -401,7 +402,7 @@ void gfx_direct3d_common_build_shader(char buf[8192], size_t& len, size_t& num_f } append_line(buf, &len, ";"); - if (c == 0) { + if (c == 0 && !CVarGetInteger(CVAR_DISABLE_CLOSE_COLOR_WRAP, 0)) { append_str(buf, &len, "texel.rgb = WRAP(texel.rgb, -1.01, 1.01);"); } } diff --git a/src/graphic/Fast3D/gfx_metal_shader.cpp b/src/graphic/Fast3D/gfx_metal_shader.cpp index 8757ab5..77d2b41 100644 --- a/src/graphic/Fast3D/gfx_metal_shader.cpp +++ b/src/graphic/Fast3D/gfx_metal_shader.cpp @@ -8,6 +8,7 @@ #ifdef __APPLE__ #include +#include #include "gfx_metal_shader.h" @@ -395,7 +396,7 @@ MTL::VertexDescriptor* gfx_metal_build_shader(char buf[8192], size_t& num_floats } append_line(buf, &len, ";"); - if (c == 0) { + if (c == 0 && !CVarGetInteger(CVAR_DISABLE_CLOSE_COLOR_WRAP, 0)) { append_str(buf, &len, "texel.xyz = WRAP(texel.xyz, -1.01, 1.01);"); } } diff --git a/src/graphic/Fast3D/gfx_opengl.cpp b/src/graphic/Fast3D/gfx_opengl.cpp index 6aa9389..bee0c78 100644 --- a/src/graphic/Fast3D/gfx_opengl.cpp +++ b/src/graphic/Fast3D/gfx_opengl.cpp @@ -529,7 +529,7 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad } append_line(fs_buf, &fs_len, ";"); - if (c == 0) { + if (c == 0 && !CVarGetInteger(CVAR_DISABLE_CLOSE_COLOR_WRAP, 0)) { append_str(fs_buf, &fs_len, "texel.rgb = WRAP(texel.rgb, -1.01, 1.01);"); } }