need to update sdl
This commit is contained in:
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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
-2759
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user