Skip to content

Commit e06351c

Browse files
committed
Update Test.NativeLaunch
- it can now take a vertex description from a text file and compile a specified shader using that description to create an input layout - this was needed to get it to run the tangent space generation code during mod load, because my previous "simple vertex" shader didn't apparently have a normal in it and the code needs that - as before heavy LLM vibecoding used here
1 parent a5befae commit e06351c

File tree

6 files changed

+646
-50
lines changed

6 files changed

+646
-50
lines changed

Test.NativeLaunch/basic_format.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// format: semanticname semanticindex offset dxgiformat
2+
// for determining the size of the vert the highest offset + format size of that elem is used,
3+
// so it should be ok to comment out lines here to disable things without changing offsets;
4+
// that should just cause unused space in the vert
5+
Position 0 0 R32G32B32_Float
6+
Normal 0 12 R16G16B16A16_SInt // normal & tangent; 2 s16 per vec packed format
7+
Binormal 0 20 R16G16_SInt // 2 s16 packed format
8+
TEXCOORD 0 24 R16G16B16A16_SNorm
608 Bytes
Binary file not shown.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
struct VS_INPUT
2+
{
3+
float3 position : POSITION;
4+
int4 normal : NORMAL;
5+
int2 binormal : BINORMAL;
6+
float4 texturecoordinate0 : TEXCOORD0;
7+
};
8+
9+
struct VS_OUTPUT
10+
{
11+
float4 position : SV_POSITION;
12+
};
13+
14+
VS_OUTPUT main(VS_INPUT input)
15+
{
16+
VS_OUTPUT output;
17+
output.position = float4(input.position, 1.0);
18+
return output;
19+
}

Test.NativeLaunch/dxgiformats.txt

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
// from: https://github.com/retep998/winapi-rs/blob/0.3/src/shared/dxgiformat.rs
2+
DXGI_FORMAT_UNKNOWN = 0
3+
DXGI_FORMAT_R32G32B32A32_TYPELESS = 1
4+
DXGI_FORMAT_R32G32B32A32_FLOAT = 2
5+
DXGI_FORMAT_R32G32B32A32_UINT = 3
6+
DXGI_FORMAT_R32G32B32A32_SINT = 4
7+
DXGI_FORMAT_R32G32B32_TYPELESS = 5
8+
DXGI_FORMAT_R32G32B32_FLOAT = 6
9+
DXGI_FORMAT_R32G32B32_UINT = 7
10+
DXGI_FORMAT_R32G32B32_SINT = 8
11+
DXGI_FORMAT_R16G16B16A16_TYPELESS = 9
12+
DXGI_FORMAT_R16G16B16A16_FLOAT = 10
13+
DXGI_FORMAT_R16G16B16A16_UNORM = 11
14+
DXGI_FORMAT_R16G16B16A16_UINT = 12
15+
DXGI_FORMAT_R16G16B16A16_SNORM = 13
16+
DXGI_FORMAT_R16G16B16A16_SINT = 14
17+
DXGI_FORMAT_R32G32_TYPELESS = 15
18+
DXGI_FORMAT_R32G32_FLOAT = 16
19+
DXGI_FORMAT_R32G32_UINT = 17
20+
DXGI_FORMAT_R32G32_SINT = 18
21+
DXGI_FORMAT_R32G8X24_TYPELESS = 19
22+
DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20
23+
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21
24+
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22
25+
DXGI_FORMAT_R10G10B10A2_TYPELESS = 23
26+
DXGI_FORMAT_R10G10B10A2_UNORM = 24
27+
DXGI_FORMAT_R10G10B10A2_UINT = 25
28+
DXGI_FORMAT_R11G11B10_FLOAT = 26
29+
DXGI_FORMAT_R8G8B8A8_TYPELESS = 27
30+
DXGI_FORMAT_R8G8B8A8_UNORM = 28
31+
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29
32+
DXGI_FORMAT_R8G8B8A8_UINT = 30
33+
DXGI_FORMAT_R8G8B8A8_SNORM = 31
34+
DXGI_FORMAT_R8G8B8A8_SINT = 32
35+
DXGI_FORMAT_R16G16_TYPELESS = 33
36+
DXGI_FORMAT_R16G16_FLOAT = 34
37+
DXGI_FORMAT_R16G16_UNORM = 35
38+
DXGI_FORMAT_R16G16_UINT = 36
39+
DXGI_FORMAT_R16G16_SNORM = 37
40+
DXGI_FORMAT_R16G16_SINT = 38
41+
DXGI_FORMAT_R32_TYPELESS = 39
42+
DXGI_FORMAT_D32_FLOAT = 40
43+
DXGI_FORMAT_R32_FLOAT = 41
44+
DXGI_FORMAT_R32_UINT = 42
45+
DXGI_FORMAT_R32_SINT = 43
46+
DXGI_FORMAT_R24G8_TYPELESS = 44
47+
DXGI_FORMAT_D24_UNORM_S8_UINT = 45
48+
DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46
49+
DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47
50+
DXGI_FORMAT_R8G8_TYPELESS = 48
51+
DXGI_FORMAT_R8G8_UNORM = 49
52+
DXGI_FORMAT_R8G8_UINT = 50
53+
DXGI_FORMAT_R8G8_SNORM = 51
54+
DXGI_FORMAT_R8G8_SINT = 52
55+
DXGI_FORMAT_R16_TYPELESS = 53
56+
DXGI_FORMAT_R16_FLOAT = 54
57+
DXGI_FORMAT_D16_UNORM = 55
58+
DXGI_FORMAT_R16_UNORM = 56
59+
DXGI_FORMAT_R16_UINT = 57
60+
DXGI_FORMAT_R16_SNORM = 58
61+
DXGI_FORMAT_R16_SINT = 59
62+
DXGI_FORMAT_R8_TYPELESS = 60
63+
DXGI_FORMAT_R8_UNORM = 61
64+
DXGI_FORMAT_R8_UINT = 62
65+
DXGI_FORMAT_R8_SNORM = 63
66+
DXGI_FORMAT_R8_SINT = 64
67+
DXGI_FORMAT_A8_UNORM = 65
68+
DXGI_FORMAT_R1_UNORM = 66
69+
DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67
70+
DXGI_FORMAT_R8G8_B8G8_UNORM = 68
71+
DXGI_FORMAT_G8R8_G8B8_UNORM = 69
72+
DXGI_FORMAT_BC1_TYPELESS = 70
73+
DXGI_FORMAT_BC1_UNORM = 71
74+
DXGI_FORMAT_BC1_UNORM_SRGB = 72
75+
DXGI_FORMAT_BC2_TYPELESS = 73
76+
DXGI_FORMAT_BC2_UNORM = 74
77+
DXGI_FORMAT_BC2_UNORM_SRGB = 75
78+
DXGI_FORMAT_BC3_TYPELESS = 76
79+
DXGI_FORMAT_BC3_UNORM = 77
80+
DXGI_FORMAT_BC3_UNORM_SRGB = 78
81+
DXGI_FORMAT_BC4_TYPELESS = 79
82+
DXGI_FORMAT_BC4_UNORM = 80
83+
DXGI_FORMAT_BC4_SNORM = 81
84+
DXGI_FORMAT_BC5_TYPELESS = 82
85+
DXGI_FORMAT_BC5_UNORM = 83
86+
DXGI_FORMAT_BC5_SNORM = 84
87+
DXGI_FORMAT_B5G6R5_UNORM = 85
88+
DXGI_FORMAT_B5G5R5A1_UNORM = 86
89+
DXGI_FORMAT_B8G8R8A8_UNORM = 87
90+
DXGI_FORMAT_B8G8R8X8_UNORM = 88
91+
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89
92+
DXGI_FORMAT_B8G8R8A8_TYPELESS = 90
93+
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91
94+
DXGI_FORMAT_B8G8R8X8_TYPELESS = 92
95+
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93
96+
DXGI_FORMAT_BC6H_TYPELESS = 94
97+
DXGI_FORMAT_BC6H_UF16 = 95
98+
DXGI_FORMAT_BC6H_SF16 = 96
99+
DXGI_FORMAT_BC7_TYPELESS = 97
100+
DXGI_FORMAT_BC7_UNORM = 98
101+
DXGI_FORMAT_BC7_UNORM_SRGB = 99
102+
DXGI_FORMAT_AYUV = 100
103+
DXGI_FORMAT_Y410 = 101
104+
DXGI_FORMAT_Y416 = 102
105+
DXGI_FORMAT_NV12 = 103
106+
DXGI_FORMAT_P010 = 104
107+
DXGI_FORMAT_P016 = 105
108+
DXGI_FORMAT_420_OPAQUE = 106
109+
DXGI_FORMAT_YUY2 = 107
110+
DXGI_FORMAT_Y210 = 108
111+
DXGI_FORMAT_Y216 = 109
112+
DXGI_FORMAT_NV11 = 110
113+
DXGI_FORMAT_AI44 = 111
114+
DXGI_FORMAT_IA44 = 112
115+
DXGI_FORMAT_P8 = 113
116+
DXGI_FORMAT_A8P8 = 114
117+
DXGI_FORMAT_B4G4R4A4_UNORM = 115
118+
DXGI_FORMAT_P208 = 130
119+
DXGI_FORMAT_V208 = 131
120+
DXGI_FORMAT_V408 = 132
121+

0 commit comments

Comments
 (0)