chore: actually do what the last commit said

This commit is contained in:
la
2026-03-04 07:56:45 +10:00
parent 94d52937a5
commit 32344c11b1
3 changed files with 24 additions and 40 deletions
+2 -1
View File
@@ -1,3 +1,4 @@
/*
MIT License
@@ -192,4 +193,4 @@ VS_OUTPUT main(VS_INPUT input)
#endif
return output;
}
}
+9 -17
View File
@@ -21,28 +21,20 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
cbuffer screenspace_constants : register(b9)
cbuffer cbuff : register(b4)
{
float4 v_scaleoffset;
float4 clearColour;
};
void VS_ScreenSpace(uint vertex_id : SV_VertexID, out float4 position : SV_POSITION, out float2 texcoord : TEXCOORD0)
{
float2 corner = float2(
(vertex_id << 1) & 2,
vertex_id & 2
);
SamplerState screen_sampler_s : register(s0);
Texture2D<float4> screen_texture : register(t0);
position = float4(corner * float2(2, -2) + float2(-1, 1), 1, 1);
texcoord = corner * 0.5 * v_scaleoffset.zw + v_scaleoffset.xy;
float4 PS_ScreenSpace(float4 position : SV_POSITION, float2 texcoord : TEXCOORD0) : SV_TARGET
{
return screen_texture.Sample(screen_sampler_s, texcoord);
}
void VS_ScreenClear(uint vertex_id : SV_VertexID, out float4 position : SV_POSITION)
float4 PS_ScreenClear(float4 position : SV_POSITION) : SV_TARGET
{
float2 corner = float2(
(vertex_id << 1) & 2,
vertex_id & 2
);
position = float4(corner * float2(2, -2) + float2(-1, 1), 1, 1);
return clearColour;
}
+13 -22
View File
@@ -26,32 +26,23 @@ cbuffer screenspace_constants : register(b9)
float4 v_scaleoffset;
};
void VS_ScreenSpace(uint v0 : SV_VertexID, out float4 o0 : SV_POSITION, out float2 o1 : TEXCOORD0)
void VS_ScreenSpace(uint vertex_id : SV_VertexID, out float4 position : SV_POSITION, out float2 texcoord : TEXCOORD0)
{
float4 r0, r1;
float2 corner = float2(
(vertex_id << 1) & 2,
vertex_id & 2
);
o0.zw = float2(1, 1);
r0.xy = (int2)v0.xx & int2(1, -2);
r0.z = (uint)r0.x << 1;
r0.yz = (int2)r0.yz + int2(-1, -1);
r1.x = (int)r0.x;
o0.xy = (int2)r0.zy;
r0.x = (uint)v0.x >> 1;
r0.x = (int)-r0.x + 1;
r1.y = (int)r0.x;
o1.xy = r1.xy * v_scaleoffset.zw + v_scaleoffset.xy;
position = float4(corner * float2(2, -2) + float2(-1, 1), 1, 1);
texcoord = corner * 0.5 * v_scaleoffset.zw + v_scaleoffset.xy;
}
void VS_ScreenClear(uint v0 : SV_VertexID, out float4 o0 : SV_POSITION)
void VS_ScreenClear(uint vertex_id : SV_VertexID, out float4 position : SV_POSITION)
{
float4 r0;
float2 corner = float2(
(vertex_id << 1) & 2,
vertex_id & 2
);
r0.x = (uint)v0.x << 1;
r0.x = (int)r0.x & 2;
r0.x = (int)r0.x + -1;
o0.x = (int)r0.x;
r0.x = (int)v0.x & -2;
r0.x = (int)r0.x + -1;
o0.y = (int)r0.x;
o0.zw = float2(1, 1);
position = float4(corner * float2(2, -2) + float2(-1, 1), 1, 1);
}