source2sdk/sdk/rendersystemdx11.hpp

234 lines
6.0 KiB
C++
Raw Normal View History

2023-03-15 15:20:35 +00:00
#pragma once
#include <cstdint>
#include "!GlobalTypes.hpp"
///////////////////////////////////////////
// Binary: rendersystemdx11.dll
2023-03-15 18:56:19 +00:00
// Class Count: 8
// Enum Count: 7
2023-03-15 15:20:35 +00:00
///////////////////////////////////////////
2023-03-15 18:56:19 +00:00
// Aligment: 4
// Size: 21
enum class TextureSpecificationFlags_t : uint32_t
{
TSPEC_FLAGS = 0x0,
TSPEC_RENDER_TARGET = 0x1,
TSPEC_VERTEX_TEXTURE = 0x2,
TSPEC_UNFILTERABLE_OK = 0x4,
TSPEC_RENDER_TARGET_SAMPLEABLE = 0x8,
TSPEC_SUGGEST_CLAMPS = 0x10,
TSPEC_SUGGEST_CLAMPT = 0x20,
TSPEC_SUGGEST_CLAMPU = 0x40,
TSPEC_NO_LOD = 0x80,
TSPEC_CUBE_TEXTURE = 0x100,
TSPEC_VOLUME_TEXTURE = 0x200,
TSPEC_TEXTURE_ARRAY = 0x400,
TSPEC_TEXTURE_GEN_MIP_MAPS = 0x800,
TSPEC_LINE_TEXTURE_360 = 0x1000,
TSPEC_LINEAR_ADDRESSING_360 = 0x2000,
TSPEC_USE_TYPED_IMAGEFORMAT = 0x4000,
TSPEC_SHARED_RESOURCE = 0x8000,
TSPEC_UAV = 0x10000,
TSPEC_INPUT_ATTACHMENT = 0x20000,
TSPEC_CUBE_CAN_SAMPLE_AS_ARRAY = 0x40000,
TSPEC_LINEAR_COLOR_SPACE = 0x80000,
};
// Aligment: 4
// Size: 6
enum class CubeMapFace_t : uint32_t
{
CUBEMAP_FACE_POSITIVE_X = 0x0,
CUBEMAP_FACE_NEGATIVE_X = 0x1,
CUBEMAP_FACE_POSITIVE_Y = 0x2,
CUBEMAP_FACE_NEGATIVE_Y = 0x3,
CUBEMAP_FACE_POSITIVE_Z = 0x4,
CUBEMAP_FACE_NEGATIVE_Z = 0x5,
};
2023-03-15 17:43:32 +00:00
// Aligment: 4
// Size: 3
enum class RenderSlotType_t : uint32_t
{
RENDER_SLOT_INVALID = 0xffffffffffffffff,
RENDER_SLOT_PER_VERTEX = 0x0,
RENDER_SLOT_PER_INSTANCE = 0x1,
};
// Aligment: 4
2023-03-15 19:24:28 +00:00
// Size: 8
2023-03-15 17:43:32 +00:00
enum class RenderBufferFlags_t : 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,
};
// Aligment: 4
// Size: 45
enum class RenderPrimitiveType_t : 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_1_CONTROL_POINT_PATCHLIST = 0xb,
RENDER_PRIM_2_CONTROL_POINT_PATCHLIST = 0xc,
RENDER_PRIM_3_CONTROL_POINT_PATCHLIST = 0xd,
RENDER_PRIM_4_CONTROL_POINT_PATCHLIST = 0xe,
RENDER_PRIM_5_CONTROL_POINT_PATCHLIST = 0xf,
RENDER_PRIM_6_CONTROL_POINT_PATCHLIST = 0x10,
RENDER_PRIM_7_CONTROL_POINT_PATCHLIST = 0x11,
RENDER_PRIM_8_CONTROL_POINT_PATCHLIST = 0x12,
RENDER_PRIM_9_CONTROL_POINT_PATCHLIST = 0x13,
RENDER_PRIM_10_CONTROL_POINT_PATCHLIST = 0x14,
RENDER_PRIM_11_CONTROL_POINT_PATCHLIST = 0x15,
RENDER_PRIM_12_CONTROL_POINT_PATCHLIST = 0x16,
RENDER_PRIM_13_CONTROL_POINT_PATCHLIST = 0x17,
RENDER_PRIM_14_CONTROL_POINT_PATCHLIST = 0x18,
RENDER_PRIM_15_CONTROL_POINT_PATCHLIST = 0x19,
RENDER_PRIM_16_CONTROL_POINT_PATCHLIST = 0x1a,
RENDER_PRIM_17_CONTROL_POINT_PATCHLIST = 0x1b,
RENDER_PRIM_18_CONTROL_POINT_PATCHLIST = 0x1c,
RENDER_PRIM_19_CONTROL_POINT_PATCHLIST = 0x1d,
RENDER_PRIM_20_CONTROL_POINT_PATCHLIST = 0x1e,
RENDER_PRIM_21_CONTROL_POINT_PATCHLIST = 0x1f,
RENDER_PRIM_22_CONTROL_POINT_PATCHLIST = 0x20,
RENDER_PRIM_23_CONTROL_POINT_PATCHLIST = 0x21,
RENDER_PRIM_24_CONTROL_POINT_PATCHLIST = 0x22,
RENDER_PRIM_25_CONTROL_POINT_PATCHLIST = 0x23,
RENDER_PRIM_26_CONTROL_POINT_PATCHLIST = 0x24,
RENDER_PRIM_27_CONTROL_POINT_PATCHLIST = 0x25,
RENDER_PRIM_28_CONTROL_POINT_PATCHLIST = 0x26,
RENDER_PRIM_29_CONTROL_POINT_PATCHLIST = 0x27,
RENDER_PRIM_30_CONTROL_POINT_PATCHLIST = 0x28,
RENDER_PRIM_31_CONTROL_POINT_PATCHLIST = 0x29,
RENDER_PRIM_32_CONTROL_POINT_PATCHLIST = 0x2a,
RENDER_PRIM_COMPUTE_SHADER = 0x2b,
RENDER_PRIM_TYPE_COUNT = 0x2c,
};
// Aligment: 4
2023-03-15 19:24:28 +00:00
// Size: 6
2023-03-15 17:43:32 +00:00
enum class InputLayoutVariation_t : uint32_t
{
INPUT_LAYOUT_VARIATION_DEFAULT = 0x0,
2023-03-15 19:24:28 +00:00
INPUT_LAYOUT_VARIATION_STREAM1_MAT3X4 = 0x1,
INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID = 0x2,
INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_LIGHTMAP_PARAMS = 0x3,
INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_MORPH_VERT_ID = 0x4,
INPUT_LAYOUT_VARIATION_MAX = 0x5,
2023-03-15 17:43:32 +00:00
};
// Aligment: 4
// Size: 8
enum class RenderMultisampleType_t : uint32_t
{
RENDER_MULTISAMPLE_INVALID = 0xffffffffffffffff,
RENDER_MULTISAMPLE_NONE = 0x0,
RENDER_MULTISAMPLE_2X = 0x1,
RENDER_MULTISAMPLE_4X = 0x2,
RENDER_MULTISAMPLE_6X = 0x3,
RENDER_MULTISAMPLE_8X = 0x4,
RENDER_MULTISAMPLE_16X = 0x5,
RENDER_MULTISAMPLE_TYPE_COUNT = 0x6,
};
2023-03-15 18:56:19 +00:00
// Aligment: 2
// Size: 8
struct SequenceFloatParam_t
{
public:
CResourceString m_name; // 0x0
float m_value; // 0x4
};
// Aligment: 9
// Size: 32
struct SheetSequence_t
{
public:
uint32_t m_nId; // 0x0
bool m_bClamp; // 0x4
bool m_bAlphaCrop; // 0x5
bool m_bNoColor; // 0x6
bool m_bNoAlpha; // 0x7
CResourceArray< SheetSequenceFrame_t > m_Frames; // 0x8
float m_flTotalTime; // 0x10
CResourceString m_name; // 0x14
CResourceArray< SequenceFloatParam_t > m_floatParams; // 0x18
};
// Aligment: 2
// Size: 12
struct SheetSequenceFrame_t
{
public:
float m_flDisplayTime; // 0x0
CResourceArray< SheetFrameImage_t > m_Images; // 0x4
};
// Aligment: 2
// Size: 32
struct SheetFrameImage_t
{
public:
Vector2D[2] uvCropped; // 0x0
Vector2D[2] uvUncropped; // 0x10
};
// Aligment: 1
// Size: 8
struct Sheet_t
{
public:
CResourceArray< SheetSequence_t > m_Sequences; // 0x0
};
2023-03-15 15:20:35 +00:00
// Aligment: 7
// Size: 56
struct RenderInputLayoutField_t
{
public:
uint8[32] m_pSemanticName; // 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
};
// Aligment: 4
// Size: 196
struct VsInputSignatureElement_t
{
public:
char[64] m_pName; // 0x0
char[64] m_pSemantic; // 0x40
char[64] m_pD3DSemanticName; // 0x80
int32_t m_nD3DSemanticIndex; // 0xc0
};
// Aligment: 1
// Size: 24
struct VsInputSignature_t
{
public:
CUtlVector< VsInputSignatureElement_t > m_elems; // 0x0
};