lwjgl3ify.cfg 配置

基本信息

属性 值
配置文件 config/lwjgl3ify.cfg
解析类 net.minecraftforge.common.config.Configuration(Forge 1.7.10)
读取入口 Config.loadConfig()
首次调用点 Lwjgl3ifyCoremod 构造器
配置项总数 34(34 个唯一键)
使用的分类数 7
声明但未使用的分类 1(ime)
GUI 暴露的分类数 3

功能

加载时机与路径

Config.loadConfig()(Config.java:68-85)带 configLoaded 幂等守卫。它在 new File(Launch.minecraftHome, "config") 下建目录,写入 lwjgl3ify.cfg,调用 reloadConfigObject() 填值,若 config.hasChanged() 则 config.save()(Config.java:73-84)。

它由 FML coremod 构造器调用(Lwjgl3ifyCoremod.java:37),即在 preInit 之前、在 FML 生命周期之外。

34 个配置项(按分类)

reloadConfigObject()(Config.java:87-238)共 34 次 getBoolean/getFloat/getString 调用,34 个唯一键:

mixin(3)

键 类型 默认值 说明
stbiTextureLoading boolean true 使用基于 spng 的更快纹理加载器
stbiTextureStitching boolean true 使用基于 stb_rectpack 的更快拼接器
stbiIgnoreFastcraft boolean false 即使有 FastCraft 也强制启用 STB mixin,可能导致屏幕快速闪烁等视觉异常

core(2)

键 类型 默认值 说明
showJavaVersion boolean true 在调试 HUD 显示 Java 版本
showLwjglVersion boolean true 在调试 HUD 显示 LWJGL 版本

debug(4)

键 类型 默认值 说明
printKeyEvents boolean false 打印键盘事件到日志
printMouseEvents boolean false 打印鼠标事件到日志
printWindowEvents boolean false 打印窗口事件到日志
registerOpenGLLogger boolean false 注册可记录 GL 错误与性能警告的调试回调

window(11)

键 类型 默认值 说明
maximized boolean false 启动时最大化
focused boolean true 启动时获得焦点
iconified boolean false 启动时最小化
centered boolean true 启动时居中
borderless boolean false 以无边框窗口替代独占全屏
borderlessWindowsCompatibility boolean true 仅 Windows:无边框窗口高度 +1 以修复失焦闪烁
decorated boolean true 窗口是否带装饰(标题栏/边框/关闭按钮)
showLoadingProgress boolean true 在受支持系统上把加载进度显示到任务栏
appId String com.gtnewhorizons.Lwjgl3ifyMinecraft 窗口管理器中用于归类窗口、保存每应用设置的应用 ID
hidpiRendering boolean true 高 DPI 渲染;启用后需相应调大 GUI 缩放
linuxCreateAppDesktopEntry boolean true 仅 Linux:在 XDG_DATA_HOME/applications 下创建隐藏 .desktop 文件以改善 Wayland 支持

input(8)

键 类型 默认值 范围 说明
invertScrollWheel boolean false — 反转滚动方向
invertHorizontalScroll boolean false — 反转水平滚动方向(受 invertScrollWheel 影响)
scrollSpeedMultiplier float 1.0 +0.05 – +20.0 滚动速度倍率(本组唯一非布尔项)
ctrlAltText boolean false — 允许 Ctrl+左 Alt 时输入文本字符(关闭该组合的特殊转义码处理)
altGrEscapeCodes boolean false — 允许 Ctrl+key 组合中使用 AltGr(关闭按 AltGr 时的文本输入处理)
rawMouseInput boolean false — 使用原始(无加速)鼠标输入
alwaysRepeatKeys boolean false — 长按按键始终生成重复按键事件,而非交给游戏运行时决定
forceDiscreteScrolling boolean false — 强制所有滚动事件获得离散滚轮值,可修复滚轮不换槽的问题

openglcontext(5)

键 类型 默认值 说明
debugContext boolean false 启用 KHR_debug 上下文
srgb boolean false 帧缓冲使用 sRGB 色彩空间
doubleBuffer boolean true 双缓冲(关闭会产生视觉异常)
noError boolean false 启用 GL_KHR_no_error;出错时可能导致内存损坏
sharedContext boolean true 创建与主上下文共享的隐藏 GL 上下文供加载闪屏线程使用;移动端 / 不支持共享上下文的 OpenGL ES 驱动需关闭

openalcontext(1)

键 类型 默认值 说明
enableHRTF boolean false 启用 HRTF 空间音频

未使用的分类

Config.CATEGORY_IME = "ime" 在 Config.java:59 声明,但全仓 grep 'CATEGORY_IME' 只有这一处命中——reloadConfigObject() 中没有任何 ime 分类的读取。属死代码,不产生配置项。

同理 Config.java:60-64 共声明 8 个 CATEGORY_* 常量,其中 7 个有配置项、ime 无。

非配置项的静态字段

Config 中另有三个 public static 字段不经配置文件读取:

字段 值 来源
LWJGL3IFY_VERSION Tags.VERSION(Gradle 占位符 VERSION 替换而来) Config.java:55,gradle.properties:79-83
config Configuration 实例,loadConfig() 后非空 Config.java:66
configLoaded 布尔幂等标志 Config.java:14

getExtensibleEnums() / addExtensibleEnum(String)(Config.java:239-246)是转发到 EarlyConfig 的便捷方法,真实存储在早期配置 JSON 侧。

数值

数值 值
配置项总数 34(唯一键 34,与读取次数 34 一致)
CATEGORY_* 常量数 8
实际有配置项的分类 7
空分类 1(ime)
GUI 暴露分类 3(window、input、openglcontext)
非布尔配置项 2(scrollSpeedMultiplier 浮点、appId 字符串)
带数值范围的配置项 1(scrollSpeedMultiplier:+0.05–+20.0,Config.java:183-184)

交互

触发 行为
coremod 构造 读入全部 34 项;有改动则落盘
游戏内「Mod 选项」→ lwjgl3ify 打开 GuiConfigLwjgl3ify,仅显示 window / input / openglcontext 三页
在配置 GUI 改动后关闭 触发 ConfigChangedEvent(modID 为 lwjgl3ify),ClientProxy.onConfigChange 保存并 reloadConfigObject(),并调用 Display.lwjgl3ify$updateRawMouseMode(Config.INPUT_RAW_MOUSE) 重新应用鼠标模式(ClientProxy.java:92-101)
手工编辑 config/lwjgl3ify.cfg 的 mixin/core/debug/openalcontext 段 有效,但 GUI 不显示

相关条目