// Copyright (c) 2025 Danielel. All rights reserved. #pragma once #include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "ShaderPipelineCache.h" #include "ShaderPipeline.generated.h" /** * */ UCLASS() class PSOFUNCTIONS_API UShaderPipeline : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category = "PSO precompile", meta = (ToolTip = "Sets the precompilation batching mode to Fast")) static void SetBatchModeFast(); UFUNCTION(BlueprintCallable, Category = "PSO precompile", meta = (ToolTip = "Sets the precompilation batching mode to Background")) static void SetBatchModeBackground(); UFUNCTION(BlueprintCallable, Category = "PSO precompile", meta = (ToolTip = "Sets the precompilation batching mode to Precompile")) static void SetBatchModePrecompile(); /** Pauses precompilation batching. */ UFUNCTION(BlueprintCallable, Category = "PSO precompile", meta = (ToolTip = "Pauses precompilation batching")) static void PauseBatching(); /** Resumes precompilation batching. */ UFUNCTION(BlueprintCallable, Category = "PSO precompile", meta = (ToolTip = "Resumes precompilation batching")) static void ResumeBatching(); /** true if pipeline cache(s) are precompiling. */ UFUNCTION(BlueprintCallable, Category = "PSO precompile", BlueprintPure, meta = (ToolTip = "True if pipeline cache(s) are precompiling")) static bool IsPrecompiling(); /** Returns the number of pipelines waiting for precompilation of the current PSOFC task. if there are multiple PSOFCs pending this will return a minimum value of 1. It may increase as subsequent caches are processed.*/ UFUNCTION(BlueprintCallable, Category = "PSO precompile", BlueprintPure, meta = (ToolTip = "Returns the number of pipelines waiting for precompilation of the current PSOFC task. If there are multiple PSOFCs pending this will return a minimum value of 1. It may increase as subsequent caches are processed.")) static int NumPrecompilesRemaining(); UFUNCTION(BlueprintCallable, Category = "PSO precompile", BlueprintPure, meta = (ToolTip = "Returns if the precompilation batching is paused")) static bool IsBatchingPaused(); };