#pragma once

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

// Package: ComputeFramework

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "ComputeFramework_structs.hpp"
#include "Engine_classes.hpp"


SDK_NAMESPACE_START

// Class ComputeFramework.ComputeDataInterface
// 0x0000 (0x0028 - 0x0028)
class UComputeDataInterface : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeDataInterface")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeDataInterface")
	}
	static class UComputeDataInterface* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeDataInterface>();
	}
};
DUMPER7_ASSERTS_UComputeDataInterface;

// Class ComputeFramework.ComputeDataProvider
// 0x0000 (0x0028 - 0x0028)
class UComputeDataProvider : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeDataProvider")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeDataProvider")
	}
	static class UComputeDataProvider* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeDataProvider>();
	}
};
DUMPER7_ASSERTS_UComputeDataProvider;

// Class ComputeFramework.ComputeKernelSource
// 0x0070 (0x0098 - 0x0028)
class UComputeKernelSource : public UObject
{
public:
	class FString                                 EntryPoint;                                        // 0x0028(0x0010)(Edit, ZeroConstructor, EditConst, AssetRegistrySearchable, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FIntVector                             GroupSize;                                         // 0x0038(0x000C)(Edit, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, AssetRegistrySearchable, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_44[0x4];                                       // 0x0044(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	struct FComputeKernelPermutationSet           PermutationSet;                                    // 0x0048(0x0010)(Edit, EditConst, NativeAccessSpecifierPublic)
	struct FComputeKernelDefinitionSet            DefinitionsSet;                                    // 0x0058(0x0010)(Edit, EditConst, NativeAccessSpecifierPublic)
	TArray<class UComputeSource*>                 AdditionalSources;                                 // 0x0068(0x0010)(Edit, ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPublic, TObjectPtr)
	TArray<struct FShaderFunctionDefinition>      ExternalInputs;                                    // 0x0078(0x0010)(Edit, EditFixedSize, ZeroConstructor, EditConst, NativeAccessSpecifierPublic)
	TArray<struct FShaderFunctionDefinition>      ExternalOutputs;                                   // 0x0088(0x0010)(Edit, EditFixedSize, ZeroConstructor, EditConst, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeKernelSource")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeKernelSource")
	}
	static class UComputeKernelSource* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeKernelSource>();
	}
};
DUMPER7_ASSERTS_UComputeKernelSource;

// Class ComputeFramework.ComputeSource
// 0x0010 (0x0038 - 0x0028)
class UComputeSource : public UObject
{
public:
	TArray<class UComputeSource*>                 AdditionalSources;                                 // 0x0028(0x0010)(Edit, ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPublic, TObjectPtr)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeSource")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeSource")
	}
	static class UComputeSource* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeSource>();
	}
};
DUMPER7_ASSERTS_UComputeSource;

// Class ComputeFramework.ComputeGraph
// 0x00B8 (0x00E0 - 0x0028)
class UComputeGraph : public UObject
{
public:
	TArray<class UComputeKernel*>                 KernelInvocations;                                 // 0x0028(0x0010)(ZeroConstructor, Protected, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	TArray<class UComputeDataInterface*>          DataInterfaces;                                    // 0x0038(0x0010)(ZeroConstructor, Protected, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	TArray<struct FComputeGraphEdge>              GraphEdges;                                        // 0x0048(0x0010)(ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	TArray<TSubclassOf<class UObject>>            Bindings;                                          // 0x0058(0x0010)(ZeroConstructor, Protected, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	TArray<int32>                                 DataInterfaceToBinding;                            // 0x0068(0x0010)(ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	uint8                                         Pad_78[0x68];                                      // 0x0078(0x0068)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeGraph")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeGraph")
	}
	static class UComputeGraph* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeGraph>();
	}
};
DUMPER7_ASSERTS_UComputeGraph;

// Class ComputeFramework.ComputeGraphComponent
// 0x0020 (0x00D8 - 0x00B8)
class UComputeGraphComponent final : public UActorComponent
{
public:
	class UComputeGraph*                          ComputeGraph;                                      // 0x00B8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	struct FComputeGraphInstance                  ComputeGraphInstance;                              // 0x00C0(0x0018)(NativeAccessSpecifierPrivate)

public:
	void CreateDataProviders(int32 InBindingIndex, class UObject* InBindingObject);
	void DestroyDataProviders();
	void QueueExecute();

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeGraphComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeGraphComponent")
	}
	static class UComputeGraphComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeGraphComponent>();
	}
};
DUMPER7_ASSERTS_UComputeGraphComponent;

// Class ComputeFramework.ComputeKernel
// 0x0010 (0x0038 - 0x0028)
class UComputeKernel final : public UObject
{
public:
	class UComputeKernelSource*                   KernelSource;                                      // 0x0028(0x0008)(Edit, ZeroConstructor, NoDestructor, AssetRegistrySearchable, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	int32                                         KernelFlags;                                       // 0x0030(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_34[0x4];                                       // 0x0034(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeKernel")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeKernel")
	}
	static class UComputeKernel* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeKernel>();
	}
};
DUMPER7_ASSERTS_UComputeKernel;

// Class ComputeFramework.ComputeKernelFromText
// 0x0010 (0x00A8 - 0x0098)
class UComputeKernelFromText final : public UComputeKernelSource
{
public:
	struct FFilePath                              SourceFile;                                        // 0x0098(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, AssetRegistrySearchable, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeKernelFromText")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeKernelFromText")
	}
	static class UComputeKernelFromText* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeKernelFromText>();
	}
};
DUMPER7_ASSERTS_UComputeKernelFromText;

// Class ComputeFramework.ComputeSourceFromText
// 0x0010 (0x0048 - 0x0038)
class UComputeSourceFromText final : public UComputeSource
{
public:
	struct FFilePath                              SourceFile;                                        // 0x0038(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, AssetRegistrySearchable, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ComputeSourceFromText")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ComputeSourceFromText")
	}
	static class UComputeSourceFromText* GetDefaultObj()
	{
		return GetDefaultObjImpl<UComputeSourceFromText>();
	}
};
DUMPER7_ASSERTS_UComputeSourceFromText;

SDK_NAMESPACE_END
