#include <MaterialCacheTagProvider.h>
|
| uint32 | AllocatePrimitiveTagOffset () |
| |
| void | FreePrimitiveTagOffset (uint32 TagOffset) |
| |
| void | SetTagEntry (uint32 TagOffset, const FGuid &TagGuid, const UE::HLSL::FMaterialCacheTagEntry &Entry) |
| |
| void | Update (FRDGBuilder &GraphBuilder) |
| |
| void | CallPendingCallbacks () |
| |
| virtual FMaterialCacheTagBindingData | GetBindingData (const FGuid &Guid) override |
| |
| virtual FMaterialCacheTagUniformData | GetUniformData (const FGuid &Guid) override |
| |
| virtual void | Register (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FMaterialCacheTagLayout &TagLayout, IAllocatedVirtualTexture *VirtualTexture) override |
| |
| virtual void | Unregister (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FGuid &TagGuid, IAllocatedVirtualTexture *VirtualTexture) override |
| |
| virtual void | Flush (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FGuid &TagGuid) override |
| |
| virtual IVirtualTexture * | CreateProducer (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FMaterialCacheTagLayout &TagLayout, const FVTProducerDescription &ProducerDesc) override |
| |
| virtual void | AddTagSceneInvalidationCallback (const FGuid &TagGuid, FMaterialCacheTagProviderSceneInvalidationDelegate Delegate, void *Baton) override |
| |
| virtual void | RemoveTagSceneInvalidationCallbacks (void *Baton) override |
| |
| virtual | ~IMaterialCacheTagProvider ()=default |
| |
◆ AddTagSceneInvalidationCallback()
Add a callback for whenever the tag scene bindings / data has changed
- Parameters
-
| TagGuid | The tag to subscribe to |
| Delegate | Delegate to be called on invalidations |
| Baton | Baton to pass into the callback, also used for broad deregistration |
Implements IMaterialCacheTagProvider.
◆ AllocatePrimitiveTagOffset()
| uint32 FMaterialCacheTagProvider::AllocatePrimitiveTagOffset |
( |
| ) |
|
Allocate a new primitive tag offset, each tag may serve a number of tags (backing virtual textures)
◆ CallPendingCallbacks()
| void FMaterialCacheTagProvider::CallPendingCallbacks |
( |
| ) |
|
Call all pending invalidation callbacks
◆ CreateProducer()
Create
- Parameters
-
| Scene | The scene the producer renders for |
| PrimitiveComponentId | The primitive the producer renders for |
| TagLayout | Generated layout of the virtual texture |
| ProducerDesc | General producer description |
- Returns
- nullptr if failed
Implements IMaterialCacheTagProvider.
◆ Flush()
Flush all pages of a given tag
- Parameters
-
| Scene | Scene to flush against |
| PrimitiveComponentId | Primitive to flush against |
| TagGuid | Optional, null for default tag |
Implements IMaterialCacheTagProvider.
◆ FreePrimitiveTagOffset()
| void FMaterialCacheTagProvider::FreePrimitiveTagOffset |
( |
uint32 |
TagOffset | ) |
|
Free a primitive tag offset
◆ Get()
◆ GetBindingData()
◆ GetUniformData()
Get the scene uniform data for a given tag
- Parameters
-
| Guid | Optional, null for default tag |
- Returns
- Always valid
Implements IMaterialCacheTagProvider.
◆ Initialize()
| void FMaterialCacheTagProvider::Initialize |
( |
| ) |
|
|
static |
Installation Initialize the global tag provider
◆ Register()
Register a new virtual texture for a given primitive
- Parameters
-
| Scene | The scene it's registered against |
| PrimitiveComponentId | The primitive that is to own the virtual texture |
| TagLayout | Generated layout of the virtual texture |
| VirtualTexture | Texture to be registered |
Implements IMaterialCacheTagProvider.
◆ RemoveTagSceneInvalidationCallbacks()
| void FMaterialCacheTagProvider::RemoveTagSceneInvalidationCallbacks |
( |
void * |
Baton | ) |
|
|
overridevirtual |
Remove all tag scene bindings / data listeners
- Parameters
-
| Baton | Baton whose listeners are to be removed |
Implements IMaterialCacheTagProvider.
◆ SetTagEntry()
| void FMaterialCacheTagProvider::SetTagEntry |
( |
uint32 |
TagOffset, |
|
|
const FGuid & |
TagGuid, |
|
|
const UE::HLSL::FMaterialCacheTagEntry & |
Entry |
|
) |
| |
◆ Shutdown()
| void FMaterialCacheTagProvider::Shutdown |
( |
| ) |
|
|
static |
Shutdown the global tag provider
◆ Unregister()
Deregister an existing virtual texture from a given primitive
- Parameters
-
| Scene | The scene it's registered against |
| PrimitiveComponentId | The primitive that owns the virtual texture |
| TagGuid | Optional, null for default tag |
| VirtualTexture | Texture to be deregistered |
Implements IMaterialCacheTagProvider.
◆ Update()
Update the GPU state
Note: We're just updating the full tag buffer for now, this can easily be a scatter upload But let's keep it simple for now to get things going.
The documentation for this class was generated from the following files: