feat: gamma functionality on windows64

This commit is contained in:
pieeebot committed 2026-09-12 00:23:31 +01:00
1 parent acee40a506
commit d0f99a6d28
6 files changed
+327 -6

No files matched your search

+2 -1
View File
@@ -21,4 +21,5 @@ if not exist %OUT% mkdir %OUT%
%FXC% %OPT% /T ps_4_0 /E main /D TEXTURE_PROJECTION /Fh %OUT%/PS_TextureProjection.h /Vn g_main_PS_TextureProjection main_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E main /D FORCE_LOD /Fh %OUT%/PS_ForceLOD.h /Vn g_main_PS_ForceLOD main_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E PS_ScreenSpace /Fh %OUT%/PS_ScreenSpace.h /Vn g_main_PS_ScreenSpace screen_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E PS_ScreenClear /Fh %OUT%/PS_ScreenClear.h /Vn g_main_PS_ScreenClear screen_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E PS_ScreenClear /Fh %OUT%/PS_ScreenClear.h /Vn g_main_PS_ScreenClear screen_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E PS_ScreenGamma /Fh %OUT%/PS_ScreenGamma.h /Vn g_main_PS_ScreenGamma screen_PS.hlsl
@@ -26,6 +26,11 @@ cbuffer cbuff : register(b4)
float4 clearColour;
};
cbuffer gammaBuff : register(b6)
{
float4 gammaParams;
};
SamplerState screen_sampler_s : register(s0);
Texture2D<float4> screen_texture : register(t0);
@@ -37,4 +42,12 @@ float4 PS_ScreenSpace(float4 position : SV_POSITION, float2 texcoord : TEXCOORD0
float4 PS_ScreenClear(float4 position : SV_POSITION) : SV_TARGET
{
return clearColour;
}
float4 PS_ScreenGamma(float4 position : SV_POSITION, float2 texcoord : TEXCOORD0) : SV_TARGET
{
float4 colour = screen_texture.Sample(screen_sampler_s, texcoord);
float invGamma = gammaParams.x;
colour.rgb = pow(saturate(colour.rgb), invGamma);
return colour;
}