#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: ComputeFramework

#include "Basic.hpp"


SDK_NAMESPACE_START

// Enum ComputeFramework.EComputeKernelFlags
// NumValues: 0x0003
enum class EComputeKernelFlags : uint8
{
	IsDefaultKernel                          = 1,
	IsolatedMemoryWrites                     = 2,
	EComputeKernelFlags_MAX                  = 3,
};

// Enum ComputeFramework.EShaderFundamentalType
// NumValues: 0x0007
enum class EShaderFundamentalType : uint8
{
	Bool                                     = 0,
	Int                                      = 1,
	Uint                                     = 2,
	Float                                    = 3,
	Struct                                   = 4,
	None                                     = 255,
	EShaderFundamentalType_MAX               = 256,
};

// Enum ComputeFramework.EShaderFundamentalDimensionType
// NumValues: 0x0004
enum class EShaderFundamentalDimensionType : uint8
{
	Scalar                                   = 0,
	Vector                                   = 1,
	Matrix                                   = 2,
	EShaderFundamentalDimensionType_MAX      = 3,
};

// Enum ComputeFramework.EShaderParamBindingType
// NumValues: 0x0005
enum class EShaderParamBindingType : uint8
{
	None                                     = 0,
	ConstantParameter                        = 1,
	ReadOnlyResource                         = 2,
	ReadWriteResource                        = 3,
	EShaderParamBindingType_MAX              = 4,
};

// Enum ComputeFramework.EShaderResourceType
// NumValues: 0x0009
enum class EShaderResourceType : uint8
{
	None                                     = 0,
	Texture1D                                = 1,
	Texture2D                                = 2,
	Texture3D                                = 3,
	TextureCube                              = 4,
	Buffer                                   = 5,
	StructuredBuffer                         = 6,
	ByteAddressBuffer                        = 7,
	EShaderResourceType_MAX                  = 8,
};

// Enum ComputeFramework.EShaderParamModifier
// NumValues: 0x0005
enum class EShaderParamModifier : uint8
{
	None                                     = 0,
	In                                       = 1,
	Out                                      = 2,
	InOut                                    = 3,
	EShaderParamModifier_MAX                 = 4,
};

// ScriptStruct ComputeFramework.ComputeGraphEdge
// 0x0038 (0x0038 - 0x0000)
struct FComputeGraphEdge final
{
public:
	int32                                         KernelIndex;                                       // 0x0000(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         KernelBindingIndex;                                // 0x0004(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         DataInterfaceIndex;                                // 0x0008(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         DataInterfaceBindingIndex;                         // 0x000C(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bKernelInput;                                      // 0x0010(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_11[0x7];                                       // 0x0011(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	class FString                                 BindingFunctionNameOverride;                       // 0x0018(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 BindingFunctionNamespace;                          // 0x0028(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FComputeGraphEdge;

// ScriptStruct ComputeFramework.ShaderValueTypeHandle
// 0x0008 (0x0008 - 0x0000)
struct alignas(0x08) FShaderValueTypeHandle final
{
public:
	uint8                                         Pad_0[0x8];                                        // 0x0000(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FShaderValueTypeHandle;

// ScriptStruct ComputeFramework.ComputeGraphInstance
// 0x0018 (0x0018 - 0x0000)
struct FComputeGraphInstance final
{
public:
	TArray<class UComputeDataProvider*>           DataProviders;                                     // 0x0000(0x0010)(ZeroConstructor, Transient, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_10[0x8];                                       // 0x0010(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FComputeGraphInstance;

// ScriptStruct ComputeFramework.ComputeKernelPermutationBool
// 0x0018 (0x0018 - 0x0000)
struct FComputeKernelPermutationBool final
{
public:
	class FString                                 Name;                                              // 0x0000(0x0010)(Edit, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          Value;                                             // 0x0010(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_11[0x7];                                       // 0x0011(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FComputeKernelPermutationBool;

// ScriptStruct ComputeFramework.ComputeKernelPermutationSet
// 0x0010 (0x0010 - 0x0000)
struct FComputeKernelPermutationSet final
{
public:
	TArray<struct FComputeKernelPermutationBool>  BooleanOptions;                                    // 0x0000(0x0010)(Edit, EditFixedSize, ZeroConstructor, DisableEditOnInstance, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FComputeKernelPermutationSet;

// ScriptStruct ComputeFramework.ShaderParamTypeDefinition
// 0x0030 (0x0030 - 0x0000)
struct FShaderParamTypeDefinition final
{
public:
	class FString                                 TypeDeclaration;                                   // 0x0000(0x0010)(Edit, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 Name;                                              // 0x0010(0x0010)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FShaderValueTypeHandle                 ValueType;                                         // 0x0020(0x0008)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint16                                        ArrayElementCount;                                 // 0x0028(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EShaderParamBindingType                       BindingType;                                       // 0x002A(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EShaderResourceType                           ResourceType;                                      // 0x002B(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EShaderParamModifier                          Modifier;                                          // 0x002C(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2D[0x3];                                       // 0x002D(0x0003)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FShaderParamTypeDefinition;

// ScriptStruct ComputeFramework.ComputeKernelDefinition
// 0x0020 (0x0020 - 0x0000)
struct FComputeKernelDefinition final
{
public:
	class FString                                 Symbol;                                            // 0x0000(0x0010)(Edit, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 Define;                                            // 0x0010(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FComputeKernelDefinition;

// ScriptStruct ComputeFramework.ComputeKernelPermutationVector
// 0x0058 (0x0058 - 0x0000)
struct FComputeKernelPermutationVector final
{
public:
	TMap<class FString, uint32>                   Permutations;                                      // 0x0000(0x0050)(NativeAccessSpecifierPublic)
	uint32                                        BitCount;                                          // 0x0050(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_54[0x4];                                       // 0x0054(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FComputeKernelPermutationVector;

// ScriptStruct ComputeFramework.ComputeKernelDefinitionSet
// 0x0010 (0x0010 - 0x0000)
struct FComputeKernelDefinitionSet final
{
public:
	TArray<struct FComputeKernelDefinition>       Defines;                                           // 0x0000(0x0010)(Edit, EditFixedSize, ZeroConstructor, DisableEditOnInstance, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FComputeKernelDefinitionSet;

// ScriptStruct ComputeFramework.ArrayShaderValue
// 0x0010 (0x0010 - 0x0000)
struct FArrayShaderValue final
{
public:
	TArray<uint8>                                 ArrayOfValues;                                     // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FArrayShaderValue;

// ScriptStruct ComputeFramework.ShaderValueContainer
// 0x0020 (0x0020 - 0x0000)
struct FShaderValueContainer final
{
public:
	TArray<uint8>                                 ShaderValue;                                       // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FArrayShaderValue>              ArrayList;                                         // 0x0010(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FShaderValueContainer;

// ScriptStruct ComputeFramework.ShaderValueType
// 0x0020 (0x0020 - 0x0000)
struct alignas(0x08) FShaderValueType final
{
public:
	EShaderFundamentalType                        Type;                                              // 0x0000(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EShaderFundamentalDimensionType               DimensionType;                                     // 0x0001(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2[0x2];                                        // 0x0002(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
	class FName                                   Name;                                              // 0x0004(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bIsDynamicArray;                                   // 0x000C(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_D[0x13];                                       // 0x000D(0x0013)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FShaderValueType;

// ScriptStruct ComputeFramework.ShaderFunctionDefinition
// 0x0028 (0x0028 - 0x0000)
struct FShaderFunctionDefinition final
{
public:
	class FString                                 Name;                                              // 0x0000(0x0010)(Edit, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<struct FShaderParamTypeDefinition>     ParamTypes;                                        // 0x0010(0x0010)(Edit, ZeroConstructor, EditConst, NativeAccessSpecifierPublic)
	bool                                          bHasReturnType;                                    // 0x0020(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_21[0x7];                                       // 0x0021(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FShaderFunctionDefinition;

SDK_NAMESPACE_END
