#pragma once
#include <cstdint>
#include "!GlobalTypes.hpp"

// /////////////////////////////////////////////////////////////
// Binary: scenesystem.dll
// Classes count: 0 (Allocated) | 9 (Unallocated)
// Enums count: 0 (Allocated) | 1 (Unallocated)
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////

// Registered binary: scenesystem.dll (project 'scenesystem')
// Enumerator count: 4
// Alignment: 1
// Size: 0x1
enum class DisableShadows_t : std::uint8_t
{
	kDisableShadows_None = 0,
	kDisableShadows_All = 1,
	kDisableShadows_Baked = 2,
	kDisableShadows_Realtime = 3,
};

struct SceneViewId_t;

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x30
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSMsg_ViewTarget
{
public:
	CUtlString m_Name; // 0x0	
	uint64_t m_TextureId; // 0x8	
	int32_t m_nWidth; // 0x10	
	int32_t m_nHeight; // 0x14	
	int32_t m_nRequestedWidth; // 0x18	
	int32_t m_nRequestedHeight; // 0x1c	
	int32_t m_nNumMipLevels; // 0x20	
	int32_t m_nDepth; // 0x24	
	int32_t m_nMultisampleNumSamples; // 0x28	
	int32_t m_nFormat; // 0x2c	
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x10
// Has Trivial Constructor
// Has Trivial Destructor
// Construct allowed
// 
// MGetKV3ClassDefaults
struct SceneViewId_t
{
public:
	uint64_t m_nViewId; // 0x0	
	uint64_t m_nFrameCount; // 0x8	
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x10
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSEndFrameViewInfo
{
public:
	uint64_t m_nViewId; // 0x0	
	CUtlString m_ViewName; // 0x8	
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x38
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSMsg_LayerBase
{
public:
	SceneViewId_t m_viewId; // 0x0	
	CUtlString m_ViewName; // 0x10	
	int32_t m_nLayerIndex; // 0x18	
private:
	[[maybe_unused]] uint8_t __pad001c[0x4]; // 0x1c
public:
	uint64_t m_nLayerId; // 0x20	
	CUtlString m_LayerName; // 0x28	
	CUtlString m_displayText; // 0x30	
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x38
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSMsg_PostLayer : public CSSDSMsg_LayerBase
{
public:
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x38
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSMsg_PreLayer : public CSSDSMsg_LayerBase
{
public:
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x30
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSMsg_ViewTargetList
{
public:
	SceneViewId_t m_viewId; // 0x0	
	CUtlString m_ViewName; // 0x10	
	CUtlVector< CSSDSMsg_ViewTarget > m_Targets; // 0x18	
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x18
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSMsg_ViewRender
{
public:
	SceneViewId_t m_viewId; // 0x0	
	CUtlString m_ViewName; // 0x10	
};

// Registered binary: scenesystem.dll (project 'scenesystem')
// Alignment: 8
// Size: 0x18
// Construct allowed
// 
// MGetKV3ClassDefaults
class CSSDSMsg_EndFrame
{
public:
	CUtlVector< CSSDSEndFrameViewInfo > m_Views; // 0x0	
};

