bSupportsGranularVideoQualitySettings

bSupportsGranularVideoQualitySettings

#Overview

name: bSupportsGranularVideoQualitySettings

The value of this variable can be defined or overridden in .ini config files. 2 .ini config files referencing this setting variable.

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of bSupportsGranularVideoQualitySettings is to determine whether the platform supports detailed video quality settings in the game. This boolean variable is used to control the availability and visibility of granular video quality options to the user.

This setting variable is primarily used in the Lyra game project, which is built on Unreal Engine 5. It’s part of the performance and settings subsystem of the Lyra game, specifically within the video settings module.

The value of this variable is set in the ULyraPlatformSpecificRenderingSettings class, which inherits from UPlatformSettings. It’s defined as an UPROPERTY with the EditAnywhere and Config specifiers, meaning it can be edited in the Unreal Editor and saved in configuration files.

bSupportsGranularVideoQualitySettings interacts with bSupportsAutomaticVideoQualityBenchmark, another boolean variable in the same class. These two variables work together to determine the level of video quality control available to the user.

Developers must be aware that this variable affects the user interface and available options for video settings. If set to false, it will likely disable or hide more detailed video quality settings in the game’s options menu.

Best practices when using this variable include:

  1. Ensuring it’s correctly set for each platform the game supports.
  2. Using it in conjunction with bSupportsAutomaticVideoQualityBenchmark to provide a consistent user experience.
  3. Implementing proper fallback options when granular settings are not supported.
  4. Testing the game’s performance and visual quality across different settings when this variable is both true and false.
  5. Documenting any platform-specific behavior related to this setting for other team members and for future reference.

#Setting Variables

#References In INI files

Location: <Workspace>/Projects/Lyra/Config/Android/AndroidGame.ini:21, section: [LyraPlatformSpecificRenderingSettings_Android LyraPlatformSpecificRenderingSettings]

Location: <Workspace>/Projects/Lyra/Config/IOS/IOSGame.ini:21, section: [LyraPlatformSpecificRenderingSettings_IOS LyraPlatformSpecificRenderingSettings]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Projects/Lyra/Source/LyraGame/Performance/LyraPerformanceSettings.h:95

Scope (from outer to inner):

file
class        class ULyraPlatformSpecificRenderingSettings : public UPlatformSettings

Source code excerpt:

	// Does the platform support granular video quality settings?
	UPROPERTY(EditAnywhere, Config, Category=VideoSettings)
	bool bSupportsGranularVideoQualitySettings = true;

	// Does the platform support running the automatic quality benchmark (typically this should only be true if bSupportsGranularVideoQualitySettings is also true)
	UPROPERTY(EditAnywhere, Config, Category=VideoSettings)
	bool bSupportsAutomaticVideoQualityBenchmark = true;

	// How is frame pacing controlled
	UPROPERTY(EditAnywhere, Config, Category=VideoSettings)
	ELyraFramePacingMode FramePacingMode = ELyraFramePacingMode::DesktopStyle;

#Loc: <Workspace>/Projects/Lyra/Source/LyraGame/Settings/LyraGameSettingRegistry_Video.cpp:62

Scope: file

Source code excerpt:

//////////////////////////////////////////////////////////////////////

// Checks the platform-specific value for bSupportsGranularVideoQualitySettings
class FGameSettingEditCondition_VideoQuality : public FGameSettingEditCondition
{
public:
	FGameSettingEditCondition_VideoQuality(const FString& InDisableString)
		: DisableString(InDisableString)
	{

#Loc: <Workspace>/Projects/Lyra/Source/LyraGame/Settings/LyraGameSettingRegistry_Video.cpp:73

Scope (from outer to inner):

file
class        class FGameSettingEditCondition_VideoQuality : public FGameSettingEditCondition
function     virtual void GatherEditState

Source code excerpt:

	virtual void GatherEditState(const ULocalPlayer* InLocalPlayer, FGameSettingEditableState& InOutEditState) const override
	{
		if (!ULyraPlatformSpecificRenderingSettings::Get()->bSupportsGranularVideoQualitySettings)
		{
			InOutEditState.Kill(DisableString);
		}
	}

	virtual void SettingChanged(const ULocalPlayer* LocalPlayer, UGameSetting* Setting, EGameSettingChangeReason Reason) const override