QuartzUIHtmlProjection: 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/QuartzUIHtmlProjection.h) · integration recipe · practical guide
FQuartzUIHtmlAnchor
Experimental type. A world anchor for pixels painted by an HTML document. No native widget artwork.
Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUIHtmlProjection recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Create once; Update copied anchors; PublishContent only on artwork change. Native owner destroys compositor before player/view lifetime ends.
Avoid: Reusing cells without paint consistency or assuming world occlusion. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIHtmlProjection.h#L9)
FQuartzUIHtmlProjectionGeometry
Experimental type. Pixel geometry shared by current-view rendering and focused automation.
Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUIHtmlProjection recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Create once; Update copied anchors; PublishContent only on artwork change. Native owner destroys compositor before player/view lifetime ends.
Avoid: Reusing cells without paint consistency or assuming world occlusion. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIHtmlProjection.h#L22)
FQuartzUIHtmlProjection
Experimental type. Experimental retained HTML surface compositor. A small browser paints a bounded atlas of rectangular HTML cells. Unreal positions those pixels using the current render view. HTML still owns the artwork and activation event.
Prerequisites / integration: Exact-player app/view and real supported RHI for rendering; project-owned HTML/materials. Use the QuartzUIHtmlProjection recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Create once; Update copied anchors; PublishContent only on artwork change. Native owner destroys compositor before player/view lifetime ends.
Avoid: Reusing cells without paint consistency or assuming world occlusion. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIHtmlProjection.h#L34)
Complete header
Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.
#pragma once
#include "CoreMinimal.h"
class ULocalPlayer;
class UQuartzUIView;
class FQuartzUIHtmlProjectionImpl;
/** A world anchor for pixels painted by an HTML document. No native widget artwork. */
struct FQuartzUIHtmlAnchor
{
FString Key;
FVector Position = FVector::ZeroVector;
int32 Cell = 0;
int32 HoverCell = 1;
int32 PressedCell = 1;
float HitRadius = 14.0f;
/** Fraction of the HTML cell placed at Position; centered by default. */
FVector2D Pivot = FVector2D(0.5, 0.5);
};
/** Pixel geometry shared by current-view rendering and focused automation. */
class QUARTZUIRUNTIME_API FQuartzUIHtmlProjectionGeometry
{
public:
static bool IsValidAnchor(const FQuartzUIHtmlAnchor& Anchor);
static FVector4f PixelRect(FVector2D Point, FVector2D OutputScale, FIntPoint CellPixels, FVector2D Pivot);
};
/**
* Experimental retained HTML surface compositor. A small browser paints a
* bounded atlas of rectangular HTML cells. Unreal positions those pixels using the
* current render view. HTML still owns the artwork and activation event.
*/
class QUARTZUIRUNTIME_API FQuartzUIHtmlProjection final
{
public:
FQuartzUIHtmlProjection(ULocalPlayer* Player, UQuartzUIView* View, const FString& Url,
FIntPoint AtlasCells = FIntPoint(2, 1), FIntPoint CellPixels = FIntPoint(64, 64), bool bInteractive = true);
~FQuartzUIHtmlProjection();
bool Update(TArray<FQuartzUIHtmlAnchor> Anchors, float DeltaSeconds);
void SetCallbacks(TFunction<void(const FString&)> Activate, TFunction<void(const FString&)> Hover);
/** Retained, bounded projection.content state. Publish only artwork changes, never camera positions. */
bool PublishContent(const FString& PayloadJson);
private:
TSharedPtr<FQuartzUIHtmlProjectionImpl> Impl;
};