QuartzUITextureResources: 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/QuartzUITextureResources.h) · integration recipe · practical guide
FQuartzUIStaticTextureEntry
Internal type. Static Texture Entry: a declared type in view-owned static texture2d snapshots and revocable png urls; use its exact fields/operations below.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUITextureResources recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: GetTextureResources()->RegisterTexture(loadedTexture). View retains assets/bytes; ReleaseAll/close revokes URLs.
Avoid: Treating empty URL as ready or snapshots as live GPU import. 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/QuartzUITextureResources.h#L12)
UQuartzUITextureResources
Public type. View-owned static Texture2D snapshots. HTML receives opaque same-origin PNG URLs. One bounded snapshot per tick; no asset-path loading, filesystem exports or live GPU sharing. See Documentation/TextureResources.md for formats, lifetime and performance limits.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUITextureResources recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: GetTextureResources()->RegisterTexture(loadedTexture). View retains assets/bytes; ReleaseAll/close revokes URLs.
Avoid: Treating empty URL as ready or snapshots as live GPU import. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUITextureResources.h#L25)
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 "Tickable.h"
#include "UObject/Object.h"
#include "QuartzUITextureResources.generated.h"
class UTexture2D;
class UQuartzUIView;
USTRUCT()
struct FQuartzUIStaticTextureEntry
{
GENERATED_BODY()
UPROPERTY(Transient) TObjectPtr<UTexture2D> Texture;
FString Url;
double RequestedAt = 0;
bool bFinished = false;
};
/** View-owned static Texture2D snapshots. HTML receives opaque same-origin PNG URLs.
* One bounded snapshot per tick; no asset-path loading, filesystem exports or live GPU sharing.
* See Documentation/TextureResources.md for formats, lifetime and performance limits. */
UCLASS(BlueprintType)
class QUARTZUIRUNTIME_API UQuartzUITextureResources : public UObject, public FTickableGameObject
{
GENERATED_BODY()
public:
static constexpr int32 MaxTextures = 256;
static constexpr int32 MaxDimension = 1024;
/** Empty while queued/unsupported. Repeated calls reuse the same snapshot and URL. */
UFUNCTION(BlueprintCallable, Category = "QuartzUI|Textures")
FString RegisterTexture(UTexture2D* Texture);
/** Revoke this set's URLs and release retained textures. Safe to call repeatedly. */
UFUNCTION(BlueprintCallable, Category = "QuartzUI|Textures")
void ReleaseAll();
UFUNCTION(BlueprintPure, Category = "QuartzUI|Textures")
int64 GetRevision() const { return Revision; }
virtual void Tick(float DeltaTime) override;
virtual bool IsTickable() const override;
virtual TStatId GetStatId() const override;
virtual void BeginDestroy() override;
/** Browser IO-thread seam: copies ready bytes only; never touches UObjects. */
static bool ReadImage(const FString& Url, TArray<uint8>& OutBytes, int32& OutLength, bool bHead);
private:
void Initialize(UQuartzUIView* InView);
bool PublishImage(FQuartzUIStaticTextureEntry& Entry, TArray<uint8>&& Bytes);
UPROPERTY(Transient) TWeakObjectPtr<UQuartzUIView> View;
UPROPERTY(Transient) TArray<FQuartzUIStaticTextureEntry> Entries;
FString Origin;
int64 Revision = 0;
int32 NextEntry = 0;
friend class UQuartzUIView;
friend struct FQuartzUITextureTestAccess;
};