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

// /////////////////////////////////////////////////////////////
// Binary: rendersystemdx11.dll
// Classes count: 0 (Allocated) | 3 (Unallocated)
// Enums count: 0 (Allocated) | 5 (Unallocated)
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Enumerator count: 13
// Alignment: 4
// Size: 0x4
enum class RenderPrimitiveType_t : std::uint32_t
{
	RENDER_PRIM_POINTS = 0x0,
	RENDER_PRIM_LINES = 0x1,
	RENDER_PRIM_LINES_WITH_ADJACENCY = 0x2,
	RENDER_PRIM_LINE_STRIP = 0x3,
	RENDER_PRIM_LINE_STRIP_WITH_ADJACENCY = 0x4,
	RENDER_PRIM_TRIANGLES = 0x5,
	RENDER_PRIM_TRIANGLES_WITH_ADJACENCY = 0x6,
	RENDER_PRIM_TRIANGLE_STRIP = 0x7,
	RENDER_PRIM_TRIANGLE_STRIP_WITH_ADJACENCY = 0x8,
	RENDER_PRIM_INSTANCED_QUADS = 0x9,
	RENDER_PRIM_HETEROGENOUS = 0xa,
	RENDER_PRIM_COMPUTE_SHADER = 0xb,
	RENDER_PRIM_TYPE_COUNT = 0xc,
};

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Enumerator count: 12
// Alignment: 4
// Size: 0x4
enum class RenderBufferFlags_t : std::uint32_t
{
	RENDER_BUFFER_USAGE_VERTEX_BUFFER = 0x1,
	RENDER_BUFFER_USAGE_INDEX_BUFFER = 0x2,
	RENDER_BUFFER_USAGE_SHADER_RESOURCE = 0x4,
	RENDER_BUFFER_USAGE_UNORDERED_ACCESS = 0x8,
	RENDER_BUFFER_BYTEADDRESS_BUFFER = 0x10,
	RENDER_BUFFER_STRUCTURED_BUFFER = 0x20,
	RENDER_BUFFER_APPEND_CONSUME_BUFFER = 0x40,
	RENDER_BUFFER_UAV_COUNTER = 0x80,
	RENDER_BUFFER_UAV_DRAW_INDIRECT_ARGS = 0x100,
	RENDER_BUFFER_ACCELERATION_STRUCTURE = 0x200,
	RENDER_BUFFER_SHADER_BINDING_TABLE = 0x400,
	RENDER_BUFFER_PER_FRAME_WRITE_ONCE = 0x800,
};

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Enumerator count: 8
// Alignment: 1
// Size: 0x1
enum class RenderMultisampleType_t : std::uint8_t
{
	RENDER_MULTISAMPLE_INVALID = 255,
	RENDER_MULTISAMPLE_NONE = 0,
	RENDER_MULTISAMPLE_2X = 1,
	RENDER_MULTISAMPLE_4X = 2,
	RENDER_MULTISAMPLE_6X = 3,
	RENDER_MULTISAMPLE_8X = 4,
	RENDER_MULTISAMPLE_16X = 5,
	RENDER_MULTISAMPLE_TYPE_COUNT = 6,
};

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Enumerator count: 4
// Alignment: 4
// Size: 0x4
enum class InputLayoutVariation_t : std::uint32_t
{
	INPUT_LAYOUT_VARIATION_DEFAULT = 0x0,
	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID = 0x1,
	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_MORPH_VERT_ID = 0x2,
	INPUT_LAYOUT_VARIATION_MAX = 0x3,
};

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Enumerator count: 3
// Alignment: 4
// Size: 0x4
enum class RenderSlotType_t : std::uint32_t
{
	RENDER_SLOT_INVALID = 0xffffffff,
	RENDER_SLOT_PER_VERTEX = 0x0,
	RENDER_SLOT_PER_INSTANCE = 0x1,
};

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Alignment: 8
// Size: 0xc4
// Has Trivial Destructor
struct VsInputSignatureElement_t
{
public:
	char m_pName[64]; // 0x0	
	char m_pSemantic[64]; // 0x40	
	char m_pD3DSemanticName[64]; // 0x80	
	int32_t m_nD3DSemanticIndex; // 0xc0	
};

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Alignment: 8
// Size: 0x18
struct VsInputSignature_t
{
public:
	CUtlVector< VsInputSignatureElement_t > m_elems; // 0x0	
};

// Registered binary: rendersystemdx11.dll (project 'rendersystemdx11')
// Alignment: 8
// Size: 0x38
// Has Trivial Destructor
struct RenderInputLayoutField_t
{
public:
	uint8_t m_pSemanticName[32]; // 0x0	
	int32_t m_nSemanticIndex; // 0x20	
	uint32_t m_Format; // 0x24	
	int32_t m_nOffset; // 0x28	
	int32_t m_nSlot; // 0x2c	
	RenderSlotType_t m_nSlotType; // 0x30	
	int32_t m_nInstanceStepRate; // 0x34	
};

