need to update sdl

This commit is contained in:
2026-04-02 14:12:41 +02:00
parent 848b199201
commit 4d16e1cb4f
2038 changed files with 0 additions and 1011118 deletions
File diff suppressed because it is too large Load Diff
@@ -1,7 +0,0 @@
#include "D3D11_PixelShader_Common.hlsli"
float4 main(PixelShaderInput input) : SV_TARGET
{
return AdvancedPixelShader(input);
}
@@ -1,290 +0,0 @@
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer Constants
// {
//
// float scRGB_output; // Offset: 0 Size: 4 [unused]
// float texture_type; // Offset: 4 Size: 4 [unused]
// float input_type; // Offset: 8 Size: 4 [unused]
// float color_scale; // Offset: 12 Size: 4
// float4 texel_size; // Offset: 16 Size: 16 [unused]
// float tonemap_method; // Offset: 32 Size: 4 [unused]
// float tonemap_factor1; // Offset: 36 Size: 4 [unused]
// float tonemap_factor2; // Offset: 40 Size: 4 [unused]
// float sdr_white_point; // Offset: 44 Size: 4 [unused]
// float4 Yoffset; // Offset: 48 Size: 16 [unused]
// float4 Rcoeff; // Offset: 64 Size: 16 [unused]
// float4 Gcoeff; // Offset: 80 Size: 16 [unused]
// float4 Bcoeff; // Offset: 96 Size: 16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim HLSL Bind Count
// ------------------------------ ---------- ------- ----------- -------------- ------
// Constants cbuffer NA NA cb0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float
// COLOR 0 xyzw 2 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TARGET 0 xyzw 0 TARGET float xyzw
//
//
// Constant buffer to DX9 shader constant mappings:
//
// Target Reg Buffer Start Reg # of Regs Data Conversion
// ---------- ------- --------- --------- ----------------------
// c0 cb0 0 1 ( FLT, FLT, FLT, FLT)
//
//
// Level9 shader bytecode:
//
ps_2_0
dcl t1
mul r0.xyz, t1, c0.w
mov r0.w, t1.w
mov oC0, r0
// approximately 3 instruction slots used
ps_4_0
dcl_constantbuffer CB0[1], immediateIndexed
dcl_input_ps linear v2.xyzw
dcl_output o0.xyzw
dcl_temps 1
mov r0.x, cb0[0].w
mov r0.w, l(1.000000)
mul o0.xyzw, r0.xxxw, v2.xyzw
ret
// Approximately 4 instruction slots used
#endif
const BYTE g_main[] =
{
68, 88, 66, 67, 131, 2,
46, 215, 253, 13, 129, 98,
132, 106, 250, 166, 217, 206,
9, 154, 1, 0, 0, 0,
224, 4, 0, 0, 6, 0,
0, 0, 56, 0, 0, 0,
172, 0, 0, 0, 56, 1,
0, 0, 180, 1, 0, 0,
56, 4, 0, 0, 172, 4,
0, 0, 65, 111, 110, 57,
108, 0, 0, 0, 108, 0,
0, 0, 0, 2, 255, 255,
60, 0, 0, 0, 48, 0,
0, 0, 1, 0, 36, 0,
0, 0, 48, 0, 0, 0,
48, 0, 0, 0, 36, 0,
0, 0, 48, 0, 0, 0,
0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 2,
255, 255, 31, 0, 0, 2,
0, 0, 0, 128, 1, 0,
15, 176, 5, 0, 0, 3,
0, 0, 7, 128, 1, 0,
228, 176, 0, 0, 255, 160,
1, 0, 0, 2, 0, 0,
8, 128, 1, 0, 255, 176,
1, 0, 0, 2, 0, 8,
15, 128, 0, 0, 228, 128,
255, 255, 0, 0, 83, 72,
68, 82, 132, 0, 0, 0,
64, 0, 0, 0, 33, 0,
0, 0, 89, 0, 0, 4,
70, 142, 32, 0, 0, 0,
0, 0, 1, 0, 0, 0,
98, 16, 0, 3, 242, 16,
16, 0, 2, 0, 0, 0,
101, 0, 0, 3, 242, 32,
16, 0, 0, 0, 0, 0,
104, 0, 0, 2, 1, 0,
0, 0, 54, 0, 0, 6,
18, 0, 16, 0, 0, 0,
0, 0, 58, 128, 32, 0,
0, 0, 0, 0, 0, 0,
0, 0, 54, 0, 0, 5,
130, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
0, 0, 128, 63, 56, 0,
0, 7, 242, 32, 16, 0,
0, 0, 0, 0, 6, 12,
16, 0, 0, 0, 0, 0,
70, 30, 16, 0, 2, 0,
0, 0, 62, 0, 0, 1,
83, 84, 65, 84, 116, 0,
0, 0, 4, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 82, 68,
69, 70, 124, 2, 0, 0,
1, 0, 0, 0, 72, 0,
0, 0, 1, 0, 0, 0,
28, 0, 0, 0, 0, 4,
255, 255, 0, 1, 0, 0,
84, 2, 0, 0, 60, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 1, 0, 0, 0,
67, 111, 110, 115, 116, 97,
110, 116, 115, 0, 171, 171,
60, 0, 0, 0, 13, 0,
0, 0, 96, 0, 0, 0,
112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
152, 1, 0, 0, 0, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
184, 1, 0, 0, 4, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
197, 1, 0, 0, 8, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
208, 1, 0, 0, 12, 0,
0, 0, 4, 0, 0, 0,
2, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
220, 1, 0, 0, 16, 0,
0, 0, 16, 0, 0, 0,
0, 0, 0, 0, 232, 1,
0, 0, 0, 0, 0, 0,
248, 1, 0, 0, 32, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
7, 2, 0, 0, 36, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
23, 2, 0, 0, 40, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
39, 2, 0, 0, 44, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 168, 1,
0, 0, 0, 0, 0, 0,
55, 2, 0, 0, 48, 0,
0, 0, 16, 0, 0, 0,
0, 0, 0, 0, 232, 1,
0, 0, 0, 0, 0, 0,
63, 2, 0, 0, 64, 0,
0, 0, 16, 0, 0, 0,
0, 0, 0, 0, 232, 1,
0, 0, 0, 0, 0, 0,
70, 2, 0, 0, 80, 0,
0, 0, 16, 0, 0, 0,
0, 0, 0, 0, 232, 1,
0, 0, 0, 0, 0, 0,
77, 2, 0, 0, 96, 0,
0, 0, 16, 0, 0, 0,
0, 0, 0, 0, 232, 1,
0, 0, 0, 0, 0, 0,
115, 99, 82, 71, 66, 95,
111, 117, 116, 112, 117, 116,
0, 171, 171, 171, 0, 0,
3, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0,
0, 0, 116, 101, 120, 116,
117, 114, 101, 95, 116, 121,
112, 101, 0, 105, 110, 112,
117, 116, 95, 116, 121, 112,
101, 0, 99, 111, 108, 111,
114, 95, 115, 99, 97, 108,
101, 0, 116, 101, 120, 101,
108, 95, 115, 105, 122, 101,
0, 171, 1, 0, 3, 0,
1, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0,
116, 111, 110, 101, 109, 97,
112, 95, 109, 101, 116, 104,
111, 100, 0, 116, 111, 110,
101, 109, 97, 112, 95, 102,
97, 99, 116, 111, 114, 49,
0, 116, 111, 110, 101, 109,
97, 112, 95, 102, 97, 99,
116, 111, 114, 50, 0, 115,
100, 114, 95, 119, 104, 105,
116, 101, 95, 112, 111, 105,
110, 116, 0, 89, 111, 102,
102, 115, 101, 116, 0, 82,
99, 111, 101, 102, 102, 0,
71, 99, 111, 101, 102, 102,
0, 66, 99, 111, 101, 102,
102, 0, 77, 105, 99, 114,
111, 115, 111, 102, 116, 32,
40, 82, 41, 32, 72, 76,
83, 76, 32, 83, 104, 97,
100, 101, 114, 32, 67, 111,
109, 112, 105, 108, 101, 114,
32, 49, 48, 46, 49, 0,
73, 83, 71, 78, 108, 0,
0, 0, 3, 0, 0, 0,
8, 0, 0, 0, 80, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 3, 0,
0, 0, 0, 0, 0, 0,
15, 0, 0, 0, 92, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0,
0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 101, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0,
0, 0, 2, 0, 0, 0,
15, 15, 0, 0, 83, 86,
95, 80, 79, 83, 73, 84,
73, 79, 78, 0, 84, 69,
88, 67, 79, 79, 82, 68,
0, 67, 79, 76, 79, 82,
0, 171, 79, 83, 71, 78,
44, 0, 0, 0, 1, 0,
0, 0, 8, 0, 0, 0,
32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 0,
0, 0, 15, 0, 0, 0,
83, 86, 95, 84, 65, 82,
71, 69, 84, 0, 171, 171
};
@@ -1,7 +0,0 @@
#include "D3D11_PixelShader_Common.hlsli"
float4 main(PixelShaderInput input) : SV_TARGET
{
return GetOutputColor(1.0) * input.color;
}
@@ -1,252 +0,0 @@
Texture2D texture0 : register(t0);
Texture2D texture1 : register(t1);
Texture2D texture2 : register(t2);
SamplerState sampler0 : register(s0);
struct PixelShaderInput
{
float4 pos : SV_POSITION;
float2 tex : TEXCOORD0;
float4 color : COLOR0;
};
// These should mirror the definitions in SDL_render_d3d11.c
static const float TONEMAP_NONE = 0;
static const float TONEMAP_LINEAR = 1;
static const float TONEMAP_CHROME = 2;
static const float TEXTURETYPE_NONE = 0;
static const float TEXTURETYPE_RGB = 1;
static const float TEXTURETYPE_RGB_PIXELART = 2;
static const float TEXTURETYPE_NV12 = 3;
static const float TEXTURETYPE_NV21 = 4;
static const float TEXTURETYPE_YUV = 5;
static const float INPUTTYPE_UNSPECIFIED = 0;
static const float INPUTTYPE_SRGB = 1;
static const float INPUTTYPE_SCRGB = 2;
static const float INPUTTYPE_HDR10 = 3;
cbuffer Constants : register(b0)
{
float scRGB_output;
float texture_type;
float input_type;
float color_scale;
float4 texel_size;
float tonemap_method;
float tonemap_factor1;
float tonemap_factor2;
float sdr_white_point;
float4 Yoffset;
float4 Rcoeff;
float4 Gcoeff;
float4 Bcoeff;
};
static const float3x3 mat709to2020 = {
{ 0.627404, 0.329283, 0.043313 },
{ 0.069097, 0.919541, 0.011362 },
{ 0.016391, 0.088013, 0.895595 }
};
static const float3x3 mat2020to709 = {
{ 1.660496, -0.587656, -0.072840 },
{ -0.124547, 1.132895, -0.008348 },
{ -0.018154, -0.100597, 1.118751 }
};
float sRGBtoLinear(float v)
{
if (v <= 0.04045) {
v = (v / 12.92);
} else {
v = pow(abs(v + 0.055) / 1.055, 2.4);
}
return v;
}
float sRGBfromLinear(float v)
{
if (v <= 0.0031308) {
v = (v * 12.92);
} else {
v = (pow(abs(v), 1.0 / 2.4) * 1.055 - 0.055);
}
return v;
}
float3 PQtoLinear(float3 v)
{
const float c1 = 0.8359375;
const float c2 = 18.8515625;
const float c3 = 18.6875;
const float oo_m1 = 1.0 / 0.1593017578125;
const float oo_m2 = 1.0 / 78.84375;
float3 num = max(pow(abs(v), oo_m2) - c1, 0.0);
float3 den = c2 - c3 * pow(abs(v), oo_m2);
return (10000.0 * pow(abs(num / den), oo_m1) / sdr_white_point);
}
float3 ApplyTonemap(float3 v)
{
if (tonemap_method == TONEMAP_LINEAR) {
v *= tonemap_factor1;
} else if (tonemap_method == TONEMAP_CHROME) {
if (input_type == INPUTTYPE_SCRGB) {
// Convert to BT.2020 colorspace for tone mapping
v = mul(mat709to2020, v);
}
float vmax = max(v.r, max(v.g, v.b));
if (vmax > 0.0) {
float scale = (1.0 + tonemap_factor1 * vmax) / (1.0 + tonemap_factor2 * vmax);
v *= scale;
}
if (input_type == INPUTTYPE_SCRGB) {
// Convert to BT.709 colorspace after tone mapping
v = mul(mat2020to709, v);
}
}
return v;
}
float4 GetInputColor(PixelShaderInput input)
{
float4 rgba;
if (texture_type == TEXTURETYPE_NONE) {
rgba = 1.0;
} else if (texture_type == TEXTURETYPE_RGB) {
rgba = texture0.Sample(sampler0, input.tex);
} else if (texture_type == TEXTURETYPE_RGB_PIXELART) {
// box filter size in texel units
float2 boxSize = clamp(fwidth(input.tex) * texel_size.zw, 1e-5, 1);
// scale uv by texture size to get texel coordinate
float2 tx = input.tex * texel_size.zw - 0.5 * boxSize;
// compute offset for pixel-sized box filter
float2 txOffset = smoothstep(1 - boxSize, 1, frac(tx));
// compute bilinear sample uv coordinates
float2 uv = (floor(tx) + 0.5 + txOffset) * texel_size.xy;
// sample the texture
rgba = texture0.SampleGrad(sampler0, uv, ddx(input.tex), ddy(input.tex));
} else if (texture_type == TEXTURETYPE_NV12) {
float3 yuv;
yuv.x = texture0.Sample(sampler0, input.tex).r;
yuv.yz = texture1.Sample(sampler0, input.tex).rg;
yuv += Yoffset.xyz;
rgba.r = dot(yuv, Rcoeff.xyz);
rgba.g = dot(yuv, Gcoeff.xyz);
rgba.b = dot(yuv, Bcoeff.xyz);
rgba.a = 1.0;
} else if (texture_type == TEXTURETYPE_NV21) {
float3 yuv;
yuv.x = texture0.Sample(sampler0, input.tex).r;
yuv.yz = texture1.Sample(sampler0, input.tex).gr;
yuv += Yoffset.xyz;
rgba.r = dot(yuv, Rcoeff.xyz);
rgba.g = dot(yuv, Gcoeff.xyz);
rgba.b = dot(yuv, Bcoeff.xyz);
rgba.a = 1.0;
} else if (texture_type == TEXTURETYPE_YUV) {
float3 yuv;
yuv.x = texture0.Sample(sampler0, input.tex).r;
yuv.y = texture1.Sample(sampler0, input.tex).r;
yuv.z = texture2.Sample(sampler0, input.tex).r;
yuv += Yoffset.xyz;
rgba.r = dot(yuv, Rcoeff.xyz);
rgba.g = dot(yuv, Gcoeff.xyz);
rgba.b = dot(yuv, Bcoeff.xyz);
rgba.a = 1.0;
} else {
// Error!
rgba.r = 1.0;
rgba.g = 0.0;
rgba.b = 0.0;
rgba.a = 1.0;
}
return rgba;
}
float4 GetOutputColor(float4 rgba)
{
float4 output;
output.rgb = rgba.rgb * color_scale;
output.a = rgba.a;
return output;
}
float3 GetOutputColorFromSRGB(float3 rgb)
{
float3 output;
if (scRGB_output) {
rgb.r = sRGBtoLinear(rgb.r);
rgb.g = sRGBtoLinear(rgb.g);
rgb.b = sRGBtoLinear(rgb.b);
}
output.rgb = rgb * color_scale;
return output;
}
float3 GetOutputColorFromLinear(float3 rgb)
{
float3 output;
output.rgb = rgb * color_scale;
if (!scRGB_output) {
output.r = sRGBfromLinear(output.r);
output.g = sRGBfromLinear(output.g);
output.b = sRGBfromLinear(output.b);
output.rgb = saturate(output.rgb);
}
return output;
}
float4 AdvancedPixelShader(PixelShaderInput input)
{
float4 rgba = GetInputColor(input);
float4 output;
if (input_type == INPUTTYPE_HDR10) {
rgba.rgb = PQtoLinear(rgba.rgb);
}
if (tonemap_method != TONEMAP_NONE) {
rgba.rgb = ApplyTonemap(rgba.rgb);
}
if (input_type == INPUTTYPE_SRGB) {
output.rgb = GetOutputColorFromSRGB(rgba.rgb);
output.a = rgba.a;
} else if (input_type == INPUTTYPE_SCRGB) {
output.rgb = GetOutputColorFromLinear(rgba.rgb);
output.a = rgba.a;
} else if (input_type == INPUTTYPE_HDR10) {
rgba.rgb = mul(mat2020to709, rgba.rgb);
output.rgb = GetOutputColorFromLinear(rgba.rgb);
output.a = rgba.a;
} else {
output = GetOutputColor(rgba);
}
return output * input.color;
}
@@ -1,338 +0,0 @@
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer Constants
// {
//
// float scRGB_output; // Offset: 0 Size: 4 [unused]
// float texture_type; // Offset: 4 Size: 4 [unused]
// float input_type; // Offset: 8 Size: 4 [unused]
// float color_scale; // Offset: 12 Size: 4
// float4 texel_size; // Offset: 16 Size: 16 [unused]
// float tonemap_method; // Offset: 32 Size: 4 [unused]
// float tonemap_factor1; // Offset: 36 Size: 4 [unused]
// float tonemap_factor2; // Offset: 40 Size: 4 [unused]
// float sdr_white_point; // Offset: 44 Size: 4 [unused]
// float4 Yoffset; // Offset: 48 Size: 16 [unused]
// float4 Rcoeff; // Offset: 64 Size: 16 [unused]
// float4 Gcoeff; // Offset: 80 Size: 16 [unused]
// float4 Bcoeff; // Offset: 96 Size: 16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim HLSL Bind Count
// ------------------------------ ---------- ------- ----------- -------------- ------
// theSampler sampler NA NA s0 1
// theTexture texture float4 2d t0 1
// Constants cbuffer NA NA cb0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TARGET 0 xyzw 0 TARGET float xyzw
//
//
// Constant buffer to DX9 shader constant mappings:
//
// Target Reg Buffer Start Reg # of Regs Data Conversion
// ---------- ------- --------- --------- ----------------------
// c0 cb0 0 1 ( FLT, FLT, FLT, FLT)
//
//
// Sampler/Resource to DX9 shader sampler mappings:
//
// Target Sampler Source Sampler Source Resource
// -------------- --------------- ----------------
// s0 s0 t0
//
//
// Level9 shader bytecode:
//
ps_2_0
dcl t0.xy
dcl t1
dcl_2d s0
texld r0, t0, s0
mul r0.xyz, r0, c0.w
mul r0, r0, t1
mov oC0, r0
// approximately 4 instruction slots used (1 texture, 3 arithmetic)
ps_4_0
dcl_constantbuffer CB0[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyzw
dcl_output o0.xyzw
dcl_temps 1
sample r0.xyzw, v1.xyxx, t0.xyzw, s0
mul r0.xyz, r0.xyzx, cb0[0].wwww
mul o0.xyzw, r0.xyzw, v2.xyzw
ret
// Approximately 4 instruction slots used
#endif
const BYTE g_main[] =
{
68, 88, 66, 67, 59, 235,
166, 93, 21, 32, 225, 129,
78, 220, 127, 97, 218, 34,
222, 113, 1, 0, 0, 0,
164, 5, 0, 0, 6, 0,
0, 0, 56, 0, 0, 0,
220, 0, 0, 0, 168, 1,
0, 0, 36, 2, 0, 0,
252, 4, 0, 0, 112, 5,
0, 0, 65, 111, 110, 57,
156, 0, 0, 0, 156, 0,
0, 0, 0, 2, 255, 255,
104, 0, 0, 0, 52, 0,
0, 0, 1, 0, 40, 0,
0, 0, 52, 0, 0, 0,
52, 0, 1, 0, 36, 0,
0, 0, 52, 0, 0, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 255, 255,
31, 0, 0, 2, 0, 0,
0, 128, 0, 0, 3, 176,
31, 0, 0, 2, 0, 0,
0, 128, 1, 0, 15, 176,
31, 0, 0, 2, 0, 0,
0, 144, 0, 8, 15, 160,
66, 0, 0, 3, 0, 0,
15, 128, 0, 0, 228, 176,
0, 8, 228, 160, 5, 0,
0, 3, 0, 0, 7, 128,
0, 0, 228, 128, 0, 0,
255, 160, 5, 0, 0, 3,
0, 0, 15, 128, 0, 0,
228, 128, 1, 0, 228, 176,
1, 0, 0, 2, 0, 8,
15, 128, 0, 0, 228, 128,
255, 255, 0, 0, 83, 72,
68, 82, 196, 0, 0, 0,
64, 0, 0, 0, 49, 0,
0, 0, 89, 0, 0, 4,
70, 142, 32, 0, 0, 0,
0, 0, 1, 0, 0, 0,
90, 0, 0, 3, 0, 96,
16, 0, 0, 0, 0, 0,
88, 24, 0, 4, 0, 112,
16, 0, 0, 0, 0, 0,
85, 85, 0, 0, 98, 16,
0, 3, 50, 16, 16, 0,
1, 0, 0, 0, 98, 16,
0, 3, 242, 16, 16, 0,
2, 0, 0, 0, 101, 0,
0, 3, 242, 32, 16, 0,
0, 0, 0, 0, 104, 0,
0, 2, 1, 0, 0, 0,
69, 0, 0, 9, 242, 0,
16, 0, 0, 0, 0, 0,
70, 16, 16, 0, 1, 0,
0, 0, 70, 126, 16, 0,
0, 0, 0, 0, 0, 96,
16, 0, 0, 0, 0, 0,
56, 0, 0, 8, 114, 0,
16, 0, 0, 0, 0, 0,
70, 2, 16, 0, 0, 0,
0, 0, 246, 143, 32, 0,
0, 0, 0, 0, 0, 0,
0, 0, 56, 0, 0, 7,
242, 32, 16, 0, 0, 0,
0, 0, 70, 14, 16, 0,
0, 0, 0, 0, 70, 30,
16, 0, 2, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 116, 0, 0, 0,
4, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 82, 68, 69, 70,
208, 2, 0, 0, 1, 0,
0, 0, 156, 0, 0, 0,
3, 0, 0, 0, 28, 0,
0, 0, 0, 4, 255, 255,
0, 1, 0, 0, 168, 2,
0, 0, 124, 0, 0, 0,
3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 135, 0,
0, 0, 2, 0, 0, 0,
5, 0, 0, 0, 4, 0,
0, 0, 255, 255, 255, 255,
0, 0, 0, 0, 1, 0,
0, 0, 13, 0, 0, 0,
146, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0,
0, 0, 116, 104, 101, 83,
97, 109, 112, 108, 101, 114,
0, 116, 104, 101, 84, 101,
120, 116, 117, 114, 101, 0,
67, 111, 110, 115, 116, 97,
110, 116, 115, 0, 146, 0,
0, 0, 13, 0, 0, 0,
180, 0, 0, 0, 112, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 236, 1,
0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 12, 2,
0, 0, 4, 0, 0, 0,
4, 0, 0, 0, 0, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 25, 2,
0, 0, 8, 0, 0, 0,
4, 0, 0, 0, 0, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 36, 2,
0, 0, 12, 0, 0, 0,
4, 0, 0, 0, 2, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 48, 2,
0, 0, 16, 0, 0, 0,
16, 0, 0, 0, 0, 0,
0, 0, 60, 2, 0, 0,
0, 0, 0, 0, 76, 2,
0, 0, 32, 0, 0, 0,
4, 0, 0, 0, 0, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 91, 2,
0, 0, 36, 0, 0, 0,
4, 0, 0, 0, 0, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 107, 2,
0, 0, 40, 0, 0, 0,
4, 0, 0, 0, 0, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 123, 2,
0, 0, 44, 0, 0, 0,
4, 0, 0, 0, 0, 0,
0, 0, 252, 1, 0, 0,
0, 0, 0, 0, 139, 2,
0, 0, 48, 0, 0, 0,
16, 0, 0, 0, 0, 0,
0, 0, 60, 2, 0, 0,
0, 0, 0, 0, 147, 2,
0, 0, 64, 0, 0, 0,
16, 0, 0, 0, 0, 0,
0, 0, 60, 2, 0, 0,
0, 0, 0, 0, 154, 2,
0, 0, 80, 0, 0, 0,
16, 0, 0, 0, 0, 0,
0, 0, 60, 2, 0, 0,
0, 0, 0, 0, 161, 2,
0, 0, 96, 0, 0, 0,
16, 0, 0, 0, 0, 0,
0, 0, 60, 2, 0, 0,
0, 0, 0, 0, 115, 99,
82, 71, 66, 95, 111, 117,
116, 112, 117, 116, 0, 171,
171, 171, 0, 0, 3, 0,
1, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0,
116, 101, 120, 116, 117, 114,
101, 95, 116, 121, 112, 101,
0, 105, 110, 112, 117, 116,
95, 116, 121, 112, 101, 0,
99, 111, 108, 111, 114, 95,
115, 99, 97, 108, 101, 0,
116, 101, 120, 101, 108, 95,
115, 105, 122, 101, 0, 171,
1, 0, 3, 0, 1, 0,
4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 116, 111,
110, 101, 109, 97, 112, 95,
109, 101, 116, 104, 111, 100,
0, 116, 111, 110, 101, 109,
97, 112, 95, 102, 97, 99,
116, 111, 114, 49, 0, 116,
111, 110, 101, 109, 97, 112,
95, 102, 97, 99, 116, 111,
114, 50, 0, 115, 100, 114,
95, 119, 104, 105, 116, 101,
95, 112, 111, 105, 110, 116,
0, 89, 111, 102, 102, 115,
101, 116, 0, 82, 99, 111,
101, 102, 102, 0, 71, 99,
111, 101, 102, 102, 0, 66,
99, 111, 101, 102, 102, 0,
77, 105, 99, 114, 111, 115,
111, 102, 116, 32, 40, 82,
41, 32, 72, 76, 83, 76,
32, 83, 104, 97, 100, 101,
114, 32, 67, 111, 109, 112,
105, 108, 101, 114, 32, 49,
48, 46, 49, 0, 73, 83,
71, 78, 108, 0, 0, 0,
3, 0, 0, 0, 8, 0,
0, 0, 80, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 15, 0,
0, 0, 92, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0,
1, 0, 0, 0, 3, 3,
0, 0, 101, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0,
2, 0, 0, 0, 15, 15,
0, 0, 83, 86, 95, 80,
79, 83, 73, 84, 73, 79,
78, 0, 84, 69, 88, 67,
79, 79, 82, 68, 0, 67,
79, 76, 79, 82, 0, 171,
79, 83, 71, 78, 44, 0,
0, 0, 1, 0, 0, 0,
8, 0, 0, 0, 32, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0,
0, 0, 0, 0, 0, 0,
15, 0, 0, 0, 83, 86,
95, 84, 65, 82, 71, 69,
84, 0, 171, 171
};
@@ -1,9 +0,0 @@
Texture2D theTexture : register(t0);
SamplerState theSampler : register(s0);
#include "D3D11_PixelShader_Common.hlsli"
float4 main(PixelShaderInput input) : SV_TARGET
{
return GetOutputColor(theTexture.Sample(theSampler, input.tex)) * input.color;
}
-339
View File
@@ -1,339 +0,0 @@
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer VertexShaderConstants
// {
//
// row_major float4x4 model; // Offset: 0 Size: 64
// row_major float4x4 projectionAndView;// Offset: 64 Size: 64
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim HLSL Bind Count
// ------------------------------ ---------- ------- ----------- -------------- ------
// VertexShaderConstants cbuffer NA NA cb0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyz 0 NONE float xyz
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float xyzw
//
//
// Constant buffer to DX9 shader constant mappings:
//
// Target Reg Buffer Start Reg # of Regs Data Conversion
// ---------- ------- --------- --------- ----------------------
// c1 cb0 0 8 ( FLT, FLT, FLT, FLT)
//
//
// Runtime generated constant mappings:
//
// Target Reg Constant Description
// ---------- --------------------------------------------------
// c0 Vertex Shader position offset
//
//
// Level9 shader bytecode:
//
vs_2_0
dcl_texcoord v0
dcl_texcoord1 v1
dcl_texcoord2 v2
mul r0, v0.y, c2
mad r0, v0.x, c1, r0
mad r0, v0.z, c3, r0
add r0, r0, c4
mul r1, r0.y, c6
mad r1, r0.x, c5, r1
mad r1, r0.z, c7, r1
mad r0, r0.w, c8, r1
mad oPos.xy, r0.w, c0, r0
mov oPos.zw, r0
mov oT0.xy, v1
mov oT1, v2
// approximately 12 instruction slots used
vs_4_0
dcl_constantbuffer CB0[8], immediateIndexed
dcl_input v0.xyz
dcl_input v1.xy
dcl_input v2.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyzw
dcl_temps 2
mul r0.xyzw, v0.yyyy, cb0[1].xyzw
mad r0.xyzw, v0.xxxx, cb0[0].xyzw, r0.xyzw
mad r0.xyzw, v0.zzzz, cb0[2].xyzw, r0.xyzw
add r0.xyzw, r0.xyzw, cb0[3].xyzw
mul r1.xyzw, r0.yyyy, cb0[5].xyzw
mad r1.xyzw, r0.xxxx, cb0[4].xyzw, r1.xyzw
mad r1.xyzw, r0.zzzz, cb0[6].xyzw, r1.xyzw
mad o0.xyzw, r0.wwww, cb0[7].xyzw, r1.xyzw
mov o1.xy, v1.xyxx
mov o2.xyzw, v2.xyzw
ret
// Approximately 11 instruction slots used
#endif
const BYTE g_main[] =
{
68, 88, 66, 67, 152, 172,
81, 45, 198, 200, 12, 38,
143, 4, 178, 228, 158, 175,
169, 64, 1, 0, 0, 0,
140, 5, 0, 0, 6, 0,
0, 0, 56, 0, 0, 0,
108, 1, 0, 0, 52, 3,
0, 0, 176, 3, 0, 0,
168, 4, 0, 0, 24, 5,
0, 0, 65, 111, 110, 57,
44, 1, 0, 0, 44, 1,
0, 0, 0, 2, 254, 255,
248, 0, 0, 0, 52, 0,
0, 0, 1, 0, 36, 0,
0, 0, 48, 0, 0, 0,
48, 0, 0, 0, 36, 0,
1, 0, 48, 0, 0, 0,
0, 0, 8, 0, 1, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 254, 255,
31, 0, 0, 2, 5, 0,
0, 128, 0, 0, 15, 144,
31, 0, 0, 2, 5, 0,
1, 128, 1, 0, 15, 144,
31, 0, 0, 2, 5, 0,
2, 128, 2, 0, 15, 144,
5, 0, 0, 3, 0, 0,
15, 128, 0, 0, 85, 144,
2, 0, 228, 160, 4, 0,
0, 4, 0, 0, 15, 128,
0, 0, 0, 144, 1, 0,
228, 160, 0, 0, 228, 128,
4, 0, 0, 4, 0, 0,
15, 128, 0, 0, 170, 144,
3, 0, 228, 160, 0, 0,
228, 128, 2, 0, 0, 3,
0, 0, 15, 128, 0, 0,
228, 128, 4, 0, 228, 160,
5, 0, 0, 3, 1, 0,
15, 128, 0, 0, 85, 128,
6, 0, 228, 160, 4, 0,
0, 4, 1, 0, 15, 128,
0, 0, 0, 128, 5, 0,
228, 160, 1, 0, 228, 128,
4, 0, 0, 4, 1, 0,
15, 128, 0, 0, 170, 128,
7, 0, 228, 160, 1, 0,
228, 128, 4, 0, 0, 4,
0, 0, 15, 128, 0, 0,
255, 128, 8, 0, 228, 160,
1, 0, 228, 128, 4, 0,
0, 4, 0, 0, 3, 192,
0, 0, 255, 128, 0, 0,
228, 160, 0, 0, 228, 128,
1, 0, 0, 2, 0, 0,
12, 192, 0, 0, 228, 128,
1, 0, 0, 2, 0, 0,
3, 224, 1, 0, 228, 144,
1, 0, 0, 2, 1, 0,
15, 224, 2, 0, 228, 144,
255, 255, 0, 0, 83, 72,
68, 82, 192, 1, 0, 0,
64, 0, 1, 0, 112, 0,
0, 0, 89, 0, 0, 4,
70, 142, 32, 0, 0, 0,
0, 0, 8, 0, 0, 0,
95, 0, 0, 3, 114, 16,
16, 0, 0, 0, 0, 0,
95, 0, 0, 3, 50, 16,
16, 0, 1, 0, 0, 0,
95, 0, 0, 3, 242, 16,
16, 0, 2, 0, 0, 0,
103, 0, 0, 4, 242, 32,
16, 0, 0, 0, 0, 0,
1, 0, 0, 0, 101, 0,
0, 3, 50, 32, 16, 0,
1, 0, 0, 0, 101, 0,
0, 3, 242, 32, 16, 0,
2, 0, 0, 0, 104, 0,
0, 2, 2, 0, 0, 0,
56, 0, 0, 8, 242, 0,
16, 0, 0, 0, 0, 0,
86, 21, 16, 0, 0, 0,
0, 0, 70, 142, 32, 0,
0, 0, 0, 0, 1, 0,
0, 0, 50, 0, 0, 10,
242, 0, 16, 0, 0, 0,
0, 0, 6, 16, 16, 0,
0, 0, 0, 0, 70, 142,
32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 70, 14,
16, 0, 0, 0, 0, 0,
50, 0, 0, 10, 242, 0,
16, 0, 0, 0, 0, 0,
166, 26, 16, 0, 0, 0,
0, 0, 70, 142, 32, 0,
0, 0, 0, 0, 2, 0,
0, 0, 70, 14, 16, 0,
0, 0, 0, 0, 0, 0,
0, 8, 242, 0, 16, 0,
0, 0, 0, 0, 70, 14,
16, 0, 0, 0, 0, 0,
70, 142, 32, 0, 0, 0,
0, 0, 3, 0, 0, 0,
56, 0, 0, 8, 242, 0,
16, 0, 1, 0, 0, 0,
86, 5, 16, 0, 0, 0,
0, 0, 70, 142, 32, 0,
0, 0, 0, 0, 5, 0,
0, 0, 50, 0, 0, 10,
242, 0, 16, 0, 1, 0,
0, 0, 6, 0, 16, 0,
0, 0, 0, 0, 70, 142,
32, 0, 0, 0, 0, 0,
4, 0, 0, 0, 70, 14,
16, 0, 1, 0, 0, 0,
50, 0, 0, 10, 242, 0,
16, 0, 1, 0, 0, 0,
166, 10, 16, 0, 0, 0,
0, 0, 70, 142, 32, 0,
0, 0, 0, 0, 6, 0,
0, 0, 70, 14, 16, 0,
1, 0, 0, 0, 50, 0,
0, 10, 242, 32, 16, 0,
0, 0, 0, 0, 246, 15,
16, 0, 0, 0, 0, 0,
70, 142, 32, 0, 0, 0,
0, 0, 7, 0, 0, 0,
70, 14, 16, 0, 1, 0,
0, 0, 54, 0, 0, 5,
50, 32, 16, 0, 1, 0,
0, 0, 70, 16, 16, 0,
1, 0, 0, 0, 54, 0,
0, 5, 242, 32, 16, 0,
2, 0, 0, 0, 70, 30,
16, 0, 2, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 116, 0, 0, 0,
11, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0,
6, 0, 0, 0, 8, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 82, 68, 69, 70,
240, 0, 0, 0, 1, 0,
0, 0, 84, 0, 0, 0,
1, 0, 0, 0, 28, 0,
0, 0, 0, 4, 254, 255,
0, 1, 0, 0, 198, 0,
0, 0, 60, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 86, 101,
114, 116, 101, 120, 83, 104,
97, 100, 101, 114, 67, 111,
110, 115, 116, 97, 110, 116,
115, 0, 171, 171, 60, 0,
0, 0, 2, 0, 0, 0,
108, 0, 0, 0, 128, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 156, 0,
0, 0, 0, 0, 0, 0,
64, 0, 0, 0, 2, 0,
0, 0, 164, 0, 0, 0,
0, 0, 0, 0, 180, 0,
0, 0, 64, 0, 0, 0,
64, 0, 0, 0, 2, 0,
0, 0, 164, 0, 0, 0,
0, 0, 0, 0, 109, 111,
100, 101, 108, 0, 171, 171,
2, 0, 3, 0, 4, 0,
4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 112, 114,
111, 106, 101, 99, 116, 105,
111, 110, 65, 110, 100, 86,
105, 101, 119, 0, 77, 105,
99, 114, 111, 115, 111, 102,
116, 32, 40, 82, 41, 32,
72, 76, 83, 76, 32, 83,
104, 97, 100, 101, 114, 32,
67, 111, 109, 112, 105, 108,
101, 114, 32, 49, 48, 46,
49, 0, 171, 171, 73, 83,
71, 78, 104, 0, 0, 0,
3, 0, 0, 0, 8, 0,
0, 0, 80, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 7, 7,
0, 0, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0,
1, 0, 0, 0, 3, 3,
0, 0, 98, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0,
2, 0, 0, 0, 15, 15,
0, 0, 80, 79, 83, 73,
84, 73, 79, 78, 0, 84,
69, 88, 67, 79, 79, 82,
68, 0, 67, 79, 76, 79,
82, 0, 79, 83, 71, 78,
108, 0, 0, 0, 3, 0,
0, 0, 8, 0, 0, 0,
80, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0,
0, 0, 15, 0, 0, 0,
92, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 1, 0,
0, 0, 3, 12, 0, 0,
101, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 2, 0,
0, 0, 15, 0, 0, 0,
83, 86, 95, 80, 79, 83,
73, 84, 73, 79, 78, 0,
84, 69, 88, 67, 79, 79,
82, 68, 0, 67, 79, 76,
79, 82, 0, 171
};
@@ -1,38 +0,0 @@
#pragma pack_matrix( row_major )
cbuffer VertexShaderConstants : register(b0)
{
matrix model;
matrix projectionAndView;
};
struct VertexShaderInput
{
float3 pos : POSITION;
float2 tex : TEXCOORD0;
float4 color : COLOR0;
};
struct VertexShaderOutput
{
float4 pos : SV_POSITION;
float2 tex : TEXCOORD0;
float4 color : COLOR0;
};
VertexShaderOutput main(VertexShaderInput input)
{
VertexShaderOutput output;
float4 pos = float4(input.pos, 1.0f);
// Transform the vertex position into projected space.
pos = mul(pos, model);
pos = mul(pos, projectionAndView);
output.pos = pos;
// Pass through texture coordinates and color values without transformation
output.tex = input.tex;
output.color = input.color;
return output;
}
File diff suppressed because it is too large Load Diff
-116
View File
@@ -1,116 +0,0 @@
/*
Simple DirectMedia Layer
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_internal.h"
#ifdef SDL_VIDEO_RENDER_D3D11
#define COBJMACROS
#include "../../core/windows/SDL_windows.h"
#include <d3d11_1.h>
#include "SDL_shaders_d3d11.h"
#define SDL_COMPOSE_ERROR(str) SDL_STRINGIFY_ARG(__FUNCTION__) ", " str
#if SDL_WINAPI_FAMILY_PHONE
#error Need to build shaders with level_9_3
#endif
// The shaders here were compiled with compile_shaders.bat
#define g_main D3D11_PixelShader_Colors
#include "D3D11_PixelShader_Colors.h"
#undef g_main
#define g_main D3D11_PixelShader_Textures
#include "D3D11_PixelShader_Textures.h"
#undef g_main
#define g_main D3D11_PixelShader_Advanced
#include "D3D11_PixelShader_Advanced.h"
#undef g_main
#define g_main D3D11_VertexShader
#include "D3D11_VertexShader.h"
#undef g_main
static struct
{
const void *shader_data;
SIZE_T shader_size;
} D3D11_shaders[] = {
{ NULL, 0 },
{ D3D11_PixelShader_Colors, sizeof(D3D11_PixelShader_Colors) },
{ D3D11_PixelShader_Textures, sizeof(D3D11_PixelShader_Textures) },
{ D3D11_PixelShader_Advanced, sizeof(D3D11_PixelShader_Advanced) },
};
SDL_COMPILE_TIME_ASSERT(D3D11_shaders, SDL_arraysize(D3D11_shaders) == NUM_SHADERS);
bool D3D11_CreateVertexShader(ID3D11Device1 *d3dDevice, ID3D11VertexShader **vertexShader, ID3D11InputLayout **inputLayout)
{
// Declare how the input layout for SDL's vertex shader will be setup:
const D3D11_INPUT_ELEMENT_DESC vertexDesc[] = {
{ "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 },
{ "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0 },
};
HRESULT result;
// Load in SDL's one and only vertex shader:
result = ID3D11Device_CreateVertexShader(d3dDevice,
D3D11_VertexShader,
sizeof(D3D11_VertexShader),
NULL,
vertexShader);
if (FAILED(result)) {
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateVertexShader"), result);
}
// Create an input layout for SDL's vertex shader:
result = ID3D11Device_CreateInputLayout(d3dDevice,
vertexDesc,
ARRAYSIZE(vertexDesc),
D3D11_VertexShader,
sizeof(D3D11_VertexShader),
inputLayout);
if (FAILED(result)) {
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateInputLayout"), result);
}
return true;
}
bool D3D11_CreatePixelShader(ID3D11Device1 *d3dDevice, D3D11_Shader shader, ID3D11PixelShader **pixelShader)
{
HRESULT result;
result = ID3D11Device_CreatePixelShader(d3dDevice,
D3D11_shaders[shader].shader_data,
D3D11_shaders[shader].shader_size,
NULL,
pixelShader);
if (FAILED(result)) {
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreatePixelShader"), result);
}
return true;
}
#endif // SDL_VIDEO_RENDER_D3D11
-35
View File
@@ -1,35 +0,0 @@
/*
Simple DirectMedia Layer
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_internal.h"
// D3D11 shader implementation
typedef enum
{
SHADER_NONE,
SHADER_SOLID,
SHADER_RGB,
SHADER_ADVANCED,
NUM_SHADERS
} D3D11_Shader;
extern bool D3D11_CreateVertexShader(ID3D11Device1 *d3dDevice, ID3D11VertexShader **vertexShader, ID3D11InputLayout **inputLayout);
extern bool D3D11_CreatePixelShader(ID3D11Device1 *d3dDevice, D3D11_Shader shader, ID3D11PixelShader **pixelShader);
@@ -1,4 +0,0 @@
fxc /T ps_4_0_level_9_1 /Fh D3D11_PixelShader_Colors.h D3D11_PixelShader_Colors.hlsl
fxc /T ps_4_0_level_9_1 /Fh D3D11_PixelShader_Textures.h D3D11_PixelShader_Textures.hlsl
fxc /T ps_5_0 /Fh D3D11_PixelShader_Advanced.h D3D11_PixelShader_Advanced.hlsl
fxc /T vs_4_0_level_9_1 /Fh D3D11_VertexShader.h D3D11_VertexShader.hlsl