---
title: "QuartzUITextureResources: declaration reference"
description: "Quartz UI 0.57.0-dev: QuartzUITextureResources: declaration reference. Source-reviewed guidance, usage and limitations."
status: approved
visibility: public
sourceRevision: fe5b709ec900e282b50e58b819a25041945005f9
reviewedAt: 2026-09-24
---

# 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](https://betterbuilt.games/docs/quartz-ui/evidence).

Pinned source (source: `Source/QuartzUIRuntime/Public/QuartzUITextureResources.h`) · [integration recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuitextureresources) · [practical guide](https://betterbuilt.games/docs/quartz-ui/integrations)

## 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](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuitextureresources) 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](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuitextureresources) 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.

```cpp
#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;
};
```

Canonical HTML: https://betterbuilt.games/docs/quartz-ui/reference-quartzuitextureresources
