Quartz UI ↗
Browse docs
On this page
Private preview · 0.57.0-devView Markdown

QuartzUISceneBackdrop: declaration reference

0.57.0-dev · beta source documentation. Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See validation and limits.

Pinned source (source: Source/QuartzUIRuntime/Public/QuartzUISceneBackdrop.h) · integration recipe · practical guide

FQuartzUISceneBackdropRegion

Advanced type. One validated browser-local scene-backdrop region, normalized to the web view.

Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUISceneBackdrop recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Mark HTML data-quartzui-backdrop=frost; set exact player. Per-view snapshots feed render-owned textures; teardown removes regions.

Avoid: Expecting arbitrary CSS filters or cross-browser blur. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUISceneBackdrop.h#L9)

FQuartzUISceneBackdropSnapshot

Advanced type. Immutable result of one bounded DOM layout snapshot.

Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUISceneBackdrop recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Mark HTML data-quartzui-backdrop=frost; set exact player. Per-view snapshots feed render-owned textures; teardown removes regions.

Avoid: Expecting arbitrary CSS filters or cross-browser blur. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUISceneBackdrop.h#L17)

FQuartzUISceneBackdropBlurPlan

Advanced type. Bounded render plan for the shared quarter-resolution scene blur.

Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUISceneBackdrop recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Mark HTML data-quartzui-backdrop=frost; set exact player. Per-view snapshots feed render-owned textures; teardown removes regions.

Avoid: Expecting arbitrary CSS filters or cross-browser blur. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUISceneBackdrop.h#L27)

FQuartzUISceneBackdropRenderPolicy

Internal type. Pure policy separated from RDG submission so its cost bounds stay testable.

Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUISceneBackdrop recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Mark HTML data-quartzui-backdrop=frost; set exact player. Per-view snapshots feed render-owned textures; teardown removes regions.

Avoid: Expecting arbitrary CSS filters or cross-browser blur. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUISceneBackdrop.h#L36)

FQuartzUISceneBackdropContract

Advanced type. Parsing and browser bootstrap contract for scene-aware backdrop regions.

Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUISceneBackdrop recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Mark HTML data-quartzui-backdrop=frost; set exact player. Per-view snapshots feed render-owned textures; teardown removes regions.

Avoid: Expecting arbitrary CSS filters or cross-browser blur. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUISceneBackdrop.h#L44)

FQuartzUISceneBackdropRenderer

Advanced type. Internal render integration used by each SQuartzUIBrowser.

Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUISceneBackdrop recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Mark HTML data-quartzui-backdrop=frost; set exact player. Per-view snapshots feed render-owned textures; teardown removes regions.

Avoid: Expecting arbitrary CSS filters or cross-browser blur. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUISceneBackdrop.h#L61)

Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

#pragma once

#include "CoreMinimal.h"
#include "Layout/Geometry.h"

class ULocalPlayer;

/** One validated browser-local scene-backdrop region, normalized to the web view. */
struct QUARTZUIRUNTIME_API FQuartzUISceneBackdropRegion
{
	FVector4f NormalizedRect = FVector4f(0.0f, 0.0f, 0.0f, 0.0f);
	float BlurRadius = 0.0f;
	float CornerRadius = 0.0f;
};

/** Immutable result of one bounded DOM layout snapshot. */
struct QUARTZUIRUNTIME_API FQuartzUISceneBackdropSnapshot
{
	int32 Revision = 0;
	int32 CssViewportWidth = 0;
	int32 CssViewportHeight = 0;
	float DevicePixelRatio = 1.0f;
	TArray<FQuartzUISceneBackdropRegion> Regions;
};

/** Bounded render plan for the shared quarter-resolution scene blur. */
struct QUARTZUIRUNTIME_API FQuartzUISceneBackdropBlurPlan
{
	int32 DownsampleFactor = 4;
	int32 BlurPassCount = 0;
	float MinimumBlurRadius = 0.0f;
	float MaximumBlurRadius = 0.0f;
};

/** Pure policy separated from RDG submission so its cost bounds stay testable. */
class QUARTZUIRUNTIME_API FQuartzUISceneBackdropRenderPolicy
{
public:
	static constexpr int32 DownsampleFactor = 4;
	static FQuartzUISceneBackdropBlurPlan BuildBlurPlan(TConstArrayView<float> PhysicalBlurRadii);
};

/** Parsing and browser bootstrap contract for scene-aware backdrop regions. */
class QUARTZUIRUNTIME_API FQuartzUISceneBackdropContract
{
public:
	static constexpr int32 MaxRegions = 8;
	static constexpr int32 MaxPayloadCharacters = 32 * 1024;

	/** Parses untrusted page JSON into a strictly bounded, normalized snapshot. */
	static bool TryParseSnapshot(
		const FString& PayloadJson,
		FQuartzUISceneBackdropSnapshot& OutSnapshot,
		FString& OutError);

	/** Installs the data-quartzui-backdrop observer used by normal packaged pages. */
	static FString MakeInitializationScript();
};

/** Internal render integration used by each SQuartzUIBrowser. */
class QUARTZUIRUNTIME_API FQuartzUISceneBackdropRenderer
{
public:
	static void Startup();
	static void Shutdown();
	static void UpdateView(
		const void* ViewKey,
		const FGeometry& Geometry,
		const FQuartzUISceneBackdropSnapshot& Snapshot,
		bool bEnabled, ULocalPlayer* LocalPlayer = nullptr);
	static void RemoveView(const void* ViewKey);
};