[D3D12] Immediate drawer

This commit is contained in:
Triang3l
2018-08-17 16:55:31 +03:00
parent e572f65d11
commit bf0f20df9b
5 changed files with 567 additions and 49 deletions

View File

@@ -1,16 +1,16 @@
Texture2D<float4> immediate_texture : register(t0);
SamplerState immediate_sampler : register(s0);
bool restrict_texture_samples : register(b0);
Texture2D<float4> xe_immediate_texture : register(t0);
SamplerState xe_immediate_sampler : register(s0);
bool xe_restrict_texture_samples : register(b0);
struct ps_input {
float2 uv : TEXCOORD0;
struct XePixelShaderInput {
float2 texcoord : TEXCOORD0;
float4 color : TEXCOORD1;
};
float4 main(ps_input input) : SV_Target {
float4 main(XePixelShaderInput input) : SV_Target {
float4 output = input.color;
if (!restrict_texture_samples || input.uv.x <= 1.0) {
output *= immediate_texture.Sample(immediate_sampler, input.uv);
if (!xe_restrict_texture_samples || input.texcoord.x <= 1.0) {
output *= xe_immediate_texture.Sample(xe_immediate_sampler, input.texcoord);
}
return output;
}

View File

@@ -1,21 +1,23 @@
float2 viewport_inv_size : register(b0);
float2 xe_viewport_inv_size : register(b0);
struct vs_input {
float2 pos : POSITION;
float2 uv : TEXCOORD;
struct XeVertexShaderInput {
float2 position : POSITION;
float2 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct vs_output {
float4 pos : SV_Position;
float2 uv : TEXCOORD0;
struct XeVertexShaderOutput {
float2 texcoord : TEXCOORD0;
float4 color : TEXCOORD1;
float4 position : SV_Position;
};
vs_output main(vs_input input) {
vs_output output;
output.pos = float4(viewport_inv_size * input.pos, 0.0, 1.0);
output.uv = input.uv;
XeVertexShaderOutput main(XeVertexShaderInput input) {
XeVertexShaderOutput output;
output.position = float4(
input.position * xe_viewport_inv_size * float2(2.0, -2.0) +
float2(-1.0, 1.0), 0.0, 1.0);
output.texcoord = input.texcoord;
output.color = input.color;
return output;
}