Graphics settings and display modes

For ownership, readiness, and reset-safe usage guidance, see Graphics & Display State.

Presets and settings

Helper family Purpose
getGraphicsSetting, setGraphicsSetting Read or select an option index for a named graphics setting.
graphicsSettings Enumerate registered settings and their option metadata.
getGraphicsPreset, getGraphicsPresets, getGraphicsPresetsIndices Read one preset, all presets, or their indexes.
getGraphicsPresetPropertyNames Return the setting names participating in preset comparison/application.
getGraphicsSettingApplyMethod(name, option) Report how a setting change must be applied, allowing UI to distinguish immediate, device-recreation, delayed, or restart flows. Exact result values are client-defined.
overrideGraphicsSetting(name, option) Force a setting outside the normal user-selection flow; memory-critical handling uses it to lower texture quality. Do not use it for ordinary preferences.
detectGraphicsPresetFromSystemSettings, getSystemPerformancePresetIdFromName Determine a recommended system preset and map a preset name to its performance ID.
getAutoDetectGraphicsSettingsScore(key) Return a hardware score such as GPU-memory capacity for a supported key.
generateGfxSettings, resetGraphicsSettingsStatus, updateCurrentPresetIndex Native settings lifecycle helpers owned by the graphics/settings subsystem.

User-facing changes should go through the settings core so validation, previews, rollback, device recreation, persistence, and restart prompts remain coherent.

Rendering pipeline and feature checks

  • isForwardPipeline() identifies the low/forward rendering pipeline.
  • isSimplifiedPipeline() identifies an additional simplified/low path.
  • isShadowsEnabled(), isSSAOEnabled(), isDynamicDecalEnabled(), and isTesselationSupported() gate effects that depend on the active renderer or hardware.
  • configureOitPresets(minimum, low, medium, high, ultra) configures order-independent-transparency availability by quality tier; isOitEnabledForPreset(level) queries a tier.
  • isCustomGraphicPreset() and canToDowngradePreset() describe preset state and allowed transitions.

These checks are capability gates. They do not grant ownership to change the pipeline or recreate renderer resources.

Dynamic resolution and color processing

  • getDRRScale()/setDRRScale(scale) read or request the dynamic render resolution scale.
  • getDRRAutoscalerBaseScale() is the configured base scale used by the settings UI.
  • isDRRAutoscalingEnabled() reports whether dynamic autoscaling is active.
  • pauseDRRAutoscaling(paused) temporarily stops or resumes autoscaling during loading, hangar transitions, and similar lifecycle work. Every pause needs a matching resume owned by the same subsystem.
  • Brightness, contrast, saturation, and color-grading strength use paired getColor*/setColor* helpers. setColorBCSSetup(enabled, delimiter) configures the split-screen preview used by color settings.
  • wg_updateColorGrading() asks the renderer to refresh grading state.

Temporary post-processing changes must snapshot and restore all modified values, including vignette or other state owned by WGRenderSettings.

Monitors and window modes

WindowModeWindowed, WindowModeBorderless, and WindowModeExclusiveFullscreen are native mode constants. Related helpers enumerate monitor names, monitor-specific resolutions, borderless parameters, current resolution, native screen resolution, maximum windowed/borderless sizes, active monitor, and exclusive-fullscreen monitor.

The concrete query/setter families are:

  • wg_getMonitorNames, getActiveMonitorIndex, and setActiveMonitorIndex for monitor selection;
  • listVideoModesAllMonitors and listBorderlessResolutionsAllMonitors for enumerating supported sizes;
  • getBorderlessParameters, setBorderlessFixedSize, wg_getMaxBorderlessResolution, and wg_getMaxWindowedResolution for sizing policy;
  • getExclusiveFullscreenMonitorIndex for the fullscreen owner; and
  • wg_getCurrentResolution and the historically misspelled wg_getNativeScreenResoulution for current/native dimensions.

wg_setAdapterOrdinalNotifyCallback(callback) installs a global notification for graphics-adapter changes. Replace or clear it only as part of the owning settings/application lifecycle. onInterfaceScaleChanged() is likewise a notification into native GUI state, not a scale calculation function.

PyGammaWizard is the native calibration helper used by the gamma-settings view. Brightness, contrast, saturation, and grading strength have matching getColor*/setColor* helpers. Use the settings preview/apply/revert flow so temporary calibration does not become an untracked global mutation.

Mode and monitor changes can recreate the graphics device. Use the settings flow and respond to GUI/device reset events instead of changing these values inside arbitrary view code.

Space readiness and world rendering

spaceLoadStatus() is not the complete signal that a visually usable space is ready. Current hangar and battle loading paths combine it with virtualTextureRenderComplete() before revealing the world. This prevents UI or screenshots from treating geometry progress as proof that virtual textures have completed their first render.

worldDrawEnabled(value) controls whether the world is drawn. It is global and also historically controls main-thread file-access warnings. Loading flows disable or enable it deliberately; mods should preserve the prior value rather than force-enable drawing during teardown.

SetDrawInflux, DrawAll, notifySpaceChange, notifyBattleTime, enableLoadingTimer, hangarLoaded, hangarDestroyed, lobbyStarted, and loginEntered are engine/client lifecycle notifications. They are owned by the corresponding loading and application flows, not general-purpose mod events.

Scaleform textures and resource cache

Helper Purpose and ownership
wg_addTempScaleformTexture(textureID, imageBytes) Register validated in-memory image bytes under a temporary Scaleform texture ID. Used for downloaded emblems and rare-achievement icons.
wg_addScaleformTexture(textureID, imageBytes) Register a non-temporary in-memory Scaleform texture.
wg_eraseScaleformTexture(textureID) Remove an in-memory texture by the same ID.
wg_precacheScaleformResource(path, forced) Add a Scaleform resource to the native precache.
wg_eraseScaleformResFromCache(path) Remove one path, or the helper-defined broader selection when an empty path is accepted.
wg_clearTextureReuseList() Clear the native texture-reuse list during major view/arena transitions.

Validate image data before registering it, use collision-resistant IDs, retain the ID for removal, and erase owned textures when their cache/view lifetime ends. Gameface and Wulf resources use different delivery systems; these helpers do not register Gameface assets.

Edge highlighting and targeting collision exclusions

The outline system has separate registration helpers for different render owners:

  • wgAddEdgeDetectEntity / wgDelEdgeDetectEntity for BigWorld entities;
  • wgAddEdgeDetectDynamicModel / wgDelEdgeDetectDynamicModel for CGF dynamic model components;
  • wgAddEdgeDetectCompoundModel / wgDelEdgeDetectCompoundModel for compound models.

Registration includes color/drawer-mode and collision/highlight parameters whose exact positions depend on the target helper. Always mirror the current owner's call rather than sharing one guessed signature across all three.

wgSetEdgeDetectEdgeColor, wgSetEdgeDetectSolidColors, and wgSetEdgeDetectPatternColors configure native color slots. setEdgeDrawerRenderMode follows the active control mode, while setEdgeDrawerPenetratableZoneOverlay and setEdgeDrawerImpenetratableZoneOverlay control penetration overlays. enableEdgeDrawerVisual gates a visual layer globally.

Every registration needs matching removal. Re-registering after model rebuild, vehicle respawn, or replay rewind must first release the old render owner.

wgAddIgnoredCollisionEntity(entity, collisionComponent) and wgDelIgnoredCollisionEntity(entity) are related but separate: they exclude a controlled/observed vehicle from relevant targeting/collision queries. They do not merely hide its outline.

Water, decals, and global effects

  • wg_setWaterTexScale, wg_setWaterFreqX, and wg_setWaterFreqZ apply arena-type water parameters when a battle space starts.
  • wg_addWaterRipples and wg_collideWater support water effects and intersection queries.
  • wg_addDecal, wg_addDecalGroup, wg_clearDecals, damage-sticker helpers, and trace/decal texture-index helpers own native world marks. Their limits and lifetime are renderer-managed.
  • wg_traceTextureIndex(name) and wg_decalTextureIndex(name) resolve atlas indexes; a negative result means the requested texture was not registered or could not be added. wg_addMatkindScaleU configures material-dependent trace scaling.
  • wg_registerDamageSticker(...) registers a sticker definition and its texture set, while wg_clearDamageStickers() clears the native registry. Registration belongs to item-data initialization, not per-hit rendering; setDamageStickerCriticalAngle changes the shared critical-hit threshold.
  • wg_setFlagColor and wg_setFlagEmblem configure arena-team flag visuals. wg_defaultFlagEmblemPath and wg_defaultFlagEmblemCoords are restoration defaults rather than arbitrary appearance storage.
  • wg_setKillAllActiveEffects(True) and similar global effect controls are teardown/emergency mechanisms, not selective cleanup for one mod.