mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-07 08:15:59 -10:00
* Add command-line option overrides to options system - Extend `OptionsManager` to support storing and displaying reasons for overrides. - Update related code paths to prioritize command-line overrides, ensure correct option resolution, and display override details in the UI. - Add unit tests for override behavior and round-trip validation. - Remove unused legacy functions (`removeVSyncOption`, `removeWindowModeOption`) in favor of the new system. * Add unit tests for `Graphics.Anisotropy` option validation with and without OpenGL * Add support for associating command-line option names to `OptionsManager` overrides - Update HDR, shadow rendering, and graphics API option overrides to include their respective command-line flag names. - Refactor `Graphics.RenderAPI` to use the `GraphicsAPI` enum instead of raw integers for better type safety and clarity. - Ensure Vulkan support logic and fallback behavior function correctly with the updated options system. - Update unit tests to validate override functionality and enum-based API configuration. * Remove unused `removeVSyncOption` function * Apply the PR review feedback for the command-line option overrides Delete the unit-test run artifacts that this branch committed by mistake, and add .gitignore rules for the files that the unittests binary writes. Give an override priority over an in-session edit again. The options UI now shows a disabled control for an overridden option, and setConfigValue() refuses an edit for an overridden key. Before this change, a save wrote the edit to the config file and applied it to the bound global, but getValue() kept returning the override. The game and the options menu then showed different values for the rest of the session. Add a setOverride() overload that takes a JSON value. Every command-line flag now builds its override with json_integer, json_real, json_true, json_false or json_pack, in place of a hand-formatted string. Make Graphics.CockpitFOV and Graphics.CockpitFOVToggle independent of the order in which the options manager loads them, and remove the forced override on the player's toggle preference. The toggle listener also replaces an identical bind_to() call that made the listener dead code. Add 16 to the values of Graphics.MSAASamples. The -msaa flag accepts 16, so an override with that value made printValues() report an invalid value. Keep the render API that the caller gives to gr_init(). Only a Default value now comes from the Graphics.RenderAPI option, so FRED and the unit tests keep the backend that they ask for. Make the default_func of Graphics.Shadows and Graphics.ShadowRenderMethod return their global. A constant discarded the value that -enable_shadows and the mod table set. Set Max_rt_shadow_local_lights to 4, because 3 is not one of the values that the option offers. Also: resolve -lang one time, share the render API name with version.cpp, correct the stale comments, and add unit tests with a fixture that clears the overrides after each test. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01UGh4ZM2u4oUGSbrP122Uyr * Fix the order-dependent crash in the MSAA option test The test `MsaaOverrideAcceptsEverySampleCountTheFlagAllows` calls `getValidValues()`. `Option<T>` makes a display string for each value, and the display function of `Graphics.MSAASamples` calls `XSTR()`. `XSTR()` runs `Int3()` if `lcl_xstr_init()` did not run before. Only `FSTestFixture` runs it, and `Xstr_inited` stays set for the remainder of the process. Thus the shuffled test order decided if the test passed or if it stopped the test binary with SIGILL. Move that one test to a new fixture that derives from `FSTestFixture`. The fixture initializes localization, and it also clears the overrides after each test. Refresh the comment that told that the test binary never runs `lcl_init()`. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01UGh4ZM2u4oUGSbrP122Uyr --------- Co-authored-by: Claude Opus 5 <[email protected]>
270 lines
5.4 KiB
Plaintext
270 lines
5.4 KiB
Plaintext
#OS junk files
|
|
[Tt]humbs.db
|
|
*.DS_Store
|
|
|
|
#Visual Studio files
|
|
*.[Oo]bj
|
|
*.user
|
|
*.aps
|
|
*.pch
|
|
*.vspscc
|
|
*.vssscc
|
|
*_i.c
|
|
*_p.c
|
|
*.ncb
|
|
*.suo
|
|
*.tlb
|
|
*.tlh
|
|
*.bak
|
|
*.[Cc]ache
|
|
*.ilk
|
|
*.log
|
|
*.lib
|
|
*.sbr
|
|
*.sdf
|
|
*.opensdf
|
|
*.unsuccessfulbuild
|
|
ipch/
|
|
[Oo]bj/
|
|
Ankh.NoLoad
|
|
*.VC.db
|
|
*.VC.VC.opendb
|
|
|
|
#MonoDevelop
|
|
*.pidb
|
|
*.userprefs
|
|
|
|
#Tooling
|
|
_ReSharper*/
|
|
*.resharper
|
|
[Tt]est[Rr]esult*
|
|
*.sass-cache
|
|
|
|
#Project files
|
|
[Bb]uild/
|
|
[Oo]ut/
|
|
|
|
#Subversion files
|
|
.svn
|
|
|
|
# Office Temp Files
|
|
~$*
|
|
|
|
# vim Temp Files
|
|
*~
|
|
|
|
#NuGet
|
|
packages/
|
|
*.nupkg
|
|
|
|
#ncrunch
|
|
*ncrunch*
|
|
*crunch*.local.xml
|
|
|
|
# visual studio database projects
|
|
*.dbmdl
|
|
|
|
#Test files
|
|
*.testsettings
|
|
|
|
#===========
|
|
|
|
#########################
|
|
# .gitignore file for Xcode4 and Xcode5 Source projects
|
|
#
|
|
# Apple bugs, waiting for Apple to fix/respond:
|
|
#
|
|
# 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
|
|
#
|
|
# Version 2.1
|
|
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
|
|
#
|
|
# 2013 updates:
|
|
# - fixed the broken "save personal Schemes"
|
|
# - added line-by-line explanations for EVERYTHING (some were missing)
|
|
#
|
|
# NB: if you are storing "built" products, this WILL NOT WORK,
|
|
# and you should use a different .gitignore (or none at all)
|
|
# This file is for SOURCE projects, where there are many extra
|
|
# files that we want to exclude
|
|
#
|
|
#########################
|
|
|
|
#####
|
|
# OS X temporary files that should never be committed
|
|
#
|
|
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
|
|
|
|
.DS_Store
|
|
|
|
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
|
|
|
|
.Trashes
|
|
|
|
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
|
|
|
|
*.swp
|
|
|
|
# *.lock - this is used and abused by many editors for many different things.
|
|
# For the main ones I use (e.g. Eclipse), it should be excluded
|
|
# from source-control, but YMMV
|
|
|
|
*.lock
|
|
|
|
#
|
|
# profile - REMOVED temporarily (on double-checking, this seems incorrect; I can't find it in OS X docs?)
|
|
#profile
|
|
|
|
|
|
####
|
|
# Xcode temporary files that should never be committed
|
|
#
|
|
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
|
|
|
|
*~.nib
|
|
|
|
|
|
####
|
|
# Xcode build files -
|
|
#
|
|
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"
|
|
|
|
DerivedData/
|
|
|
|
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
|
|
|
|
build/
|
|
|
|
|
|
#####
|
|
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
|
|
#
|
|
# This is complicated:
|
|
#
|
|
# SOMETIMES you need to put this file in version control.
|
|
# Apple designed it poorly - if you use "custom executables", they are
|
|
# saved in this file.
|
|
# 99% of projects do NOT use those, so they do NOT want to version control this file.
|
|
# ..but if you're in the 1%, comment out the line "*.pbxuser"
|
|
|
|
# .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html
|
|
|
|
*.pbxuser
|
|
|
|
# .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
|
|
|
|
*.mode1v3
|
|
|
|
# .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
|
|
|
|
*.mode2v3
|
|
|
|
# .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file
|
|
|
|
*.perspectivev3
|
|
|
|
# NB: also, whitelist the default ones, some projects need to use these
|
|
!default.pbxuser
|
|
!default.mode1v3
|
|
!default.mode2v3
|
|
!default.perspectivev3
|
|
|
|
|
|
####
|
|
# Xcode 4 - semi-personal settings
|
|
#
|
|
#
|
|
# OPTION 1: ---------------------------------
|
|
# throw away ALL personal settings (including custom schemes!
|
|
# - unless they are "shared")
|
|
#
|
|
# NB: this is exclusive with OPTION 2 below
|
|
xcuserdata
|
|
|
|
# OPTION 2: ---------------------------------
|
|
# get rid of ALL personal settings, but KEEP SOME OF THEM
|
|
# - NB: you must manually uncomment the bits you want to keep
|
|
#
|
|
# NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,
|
|
# or manually install git over the top of the OS X version
|
|
# NB: this is exclusive with OPTION 1 above
|
|
#
|
|
#xcuserdata/**/*
|
|
|
|
# (requires option 2 above): Personal Schemes
|
|
#
|
|
#!xcuserdata/**/xcschemes/*
|
|
|
|
####
|
|
# XCode 4 workspaces - more detailed
|
|
#
|
|
# Workspaces are important! They are a core feature of Xcode - don't exclude them :)
|
|
#
|
|
# Workspace layout is quite spammy. For reference:
|
|
#
|
|
# /(root)/
|
|
# /(project-name).xcodeproj/
|
|
# project.pbxproj
|
|
# /project.xcworkspace/
|
|
# contents.xcworkspacedata
|
|
# /xcuserdata/
|
|
# /(your name)/xcuserdatad/
|
|
# UserInterfaceState.xcuserstate
|
|
# /xcsshareddata/
|
|
# /xcschemes/
|
|
# (shared scheme name).xcscheme
|
|
# /xcuserdata/
|
|
# /(your name)/xcuserdatad/
|
|
# (private scheme).xcscheme
|
|
# xcschememanagement.plist
|
|
#
|
|
#
|
|
|
|
####
|
|
# Xcode 4 - Deprecated classes
|
|
#
|
|
# Allegedly, if you manually "deprecate" your classes, they get moved here.
|
|
#
|
|
# We're using source-control, so this is a "feature" that we do not want!
|
|
|
|
*.moved-aside
|
|
|
|
# .xccheckout
|
|
#
|
|
# Per http://stackoverflow.com/questions/18340453/should-xccheckout-files-in-xcode5-be-ignored-under-vcs
|
|
#
|
|
|
|
*.xccheckout
|
|
|
|
####
|
|
# Visual Studio Code
|
|
.vscode
|
|
|
|
####
|
|
# Documentation
|
|
#
|
|
documentation/doxygen/*
|
|
!documentation/doxygen/.gitkeep
|
|
|
|
|
|
.idea/*
|
|
projects/*
|
|
/.vs
|
|
CMakeSettings.json
|
|
CMakePresets.json
|
|
|
|
# Weird files created by Linux
|
|
.fuse_hidden*
|
|
|
|
# This gets ignored by one of the rules above for some reason...
|
|
!/code/scripting/lua/LuaConvert.h
|
|
!/code/debugconsole/
|
|
!/docker/build
|
|
CMakeFiles/cmake.check_cache
|
|
CMakeCache.txt
|
|
|
|
# Written by the unittests binary at runtime
|
|
test/test_data/**/*_settings.ini
|
|
test/test_data/data/players/presets/asdf.json
|
|
test/test_data/pilotfile/data/asdf.hdp
|