shader semantic macros
This commit is contained in:
parent
85bac53e78
commit
332e8fdf2c
@ -1,5 +1,7 @@
|
|||||||
|
#define DECL(t, n) t n : n
|
||||||
|
#define DECL_PS(n) float4 n : SV_POSITION
|
||||||
|
|
||||||
float4 linear_from_srgb(float4 srgb)
|
float4 linear_from_srgb(float4 srgb)
|
||||||
{
|
{
|
||||||
return float4(pow(srgb.rgb, 2.2), srgb.a);
|
return float4(pow(srgb.rgb, 2.2), srgb.a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,27 +1,27 @@
|
|||||||
#include "res/shaders/common.hlsl"
|
#include "res/shaders/common.hlsl"
|
||||||
|
|
||||||
struct vs_input {
|
struct vs_input {
|
||||||
float4 pos : POSITION;
|
DECL(float4, pos);
|
||||||
float line_thickness : THICKNESS;
|
DECL(float, line_thickness);
|
||||||
float line_spacing : SPACING;
|
DECL(float, line_spacing);
|
||||||
float2 offset : OFFSET;
|
DECL(float2, offset);
|
||||||
float4 bg0_srgb : COLOR0;
|
DECL(float4, bg0_srgb);
|
||||||
float4 bg1_srgb : COLOR1;
|
DECL(float4, bg1_srgb);
|
||||||
float4 line_srgb : COLOR2;
|
DECL(float4, line_srgb);
|
||||||
float4 x_srgb : COLOR3;
|
DECL(float4, x_srgb);
|
||||||
float4 y_srgb : COLOR4;
|
DECL(float4, y_srgb);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ps_input {
|
struct ps_input {
|
||||||
float4 screen_pos : SV_POSITION;
|
DECL_PS(screen_pos);
|
||||||
float line_thickness : THICKNESS;
|
DECL(float, line_thickness);
|
||||||
float line_spacing : SPACING;
|
DECL(float, line_spacing);
|
||||||
float2 offset : OFFSET;
|
DECL(float2, offset);
|
||||||
float4 bg0_lin : COLOR0;
|
DECL(float4, bg0_lin);
|
||||||
float4 bg1_lin : COLOR1;
|
DECL(float4, bg1_lin);
|
||||||
float4 line_lin : COLOR2;
|
DECL(float4, line_lin);
|
||||||
float4 x_lin : COLOR3;
|
DECL(float4, x_lin);
|
||||||
float4 y_lin : COLOR4;
|
DECL(float4, y_lin);
|
||||||
};
|
};
|
||||||
|
|
||||||
cbuffer vs_constants : register(b0)
|
cbuffer vs_constants : register(b0)
|
||||||
|
|||||||
@ -11,22 +11,22 @@ cbuffer constants : register(b0)
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct vs_input {
|
struct vs_input {
|
||||||
float4 pos : POSITION;
|
DECL(float4, pos);
|
||||||
float2 uv : TEXCOORD;
|
DECL(float2, uv);
|
||||||
float4 tint_srgb : COLOR;
|
DECL(float4, tint_srgb);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ps_input {
|
struct ps_input {
|
||||||
float4 pos : SV_POSITION;
|
DECL_PS(screen_pos);
|
||||||
float2 uv : TEXCOORD;
|
DECL(float2, uv);
|
||||||
float4 tint_lin : COLOR;
|
DECL(float4, tint_lin);
|
||||||
};
|
};
|
||||||
|
|
||||||
ps_input vs_main(vs_input input)
|
ps_input vs_main(vs_input input)
|
||||||
{
|
{
|
||||||
ps_input output;
|
ps_input output;
|
||||||
|
|
||||||
output.pos = mul(projection, float4(input.pos.xy, 0.f, 1.f));
|
output.screen_pos = mul(projection, float4(input.pos.xy, 0.f, 1.f));
|
||||||
output.uv = input.uv;
|
output.uv = input.uv;
|
||||||
output.tint_lin = linear_from_srgb(input.tint_srgb);
|
output.tint_lin = linear_from_srgb(input.tint_srgb);
|
||||||
|
|
||||||
|
|||||||
@ -464,9 +464,9 @@ INTERNAL void init_shader_table(void)
|
|||||||
.name_cstr = "res/shaders/triangle.hlsl",
|
.name_cstr = "res/shaders/triangle.hlsl",
|
||||||
.vertex_size = sizeof(struct triangle_shader_vertex),
|
.vertex_size = sizeof(struct triangle_shader_vertex),
|
||||||
.input_layout_desc = {
|
.input_layout_desc = {
|
||||||
{ "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "pos", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "uv", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }
|
{ "tint_srgb", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -476,15 +476,15 @@ INTERNAL void init_shader_table(void)
|
|||||||
.name_cstr = "res/shaders/grid.hlsl",
|
.name_cstr = "res/shaders/grid.hlsl",
|
||||||
.vertex_size = sizeof(struct grid_shader_vertex),
|
.vertex_size = sizeof(struct grid_shader_vertex),
|
||||||
.input_layout_desc = {
|
.input_layout_desc = {
|
||||||
{ "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "pos", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "THICKNESS", 0, DXGI_FORMAT_R32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "line_thickness", 0, DXGI_FORMAT_R32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "SPACING", 0, DXGI_FORMAT_R32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "line_spacing", 0, DXGI_FORMAT_R32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "OFFSET", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "offset", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "bg0_srgb", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "COLOR", 1, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "bg1_srgb", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "COLOR", 2, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "line_srgb", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "COLOR", 3, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
{ "x_srgb", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
|
||||||
{ "COLOR", 4, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }
|
{ "y_srgb", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user