summaryrefslogtreecommitdiff
path: root/src/gpu/effects/chroma_aberration_effect.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-02 15:55:03 +0100
committerskal <pascal.massimino@gmail.com>2026-02-02 15:55:03 +0100
commitc194f59e171a1e58ce1704f37d99ffcd09a42433 (patch)
treef77a32f2c4c23b335209b8df11cc82920388b51a /src/gpu/effects/chroma_aberration_effect.cc
parent316825883c705ed0fe927c32e072f98141d3eaa3 (diff)
fix(gpu): Resolve high-DPI squished rendering and 3D shadow bugs
- Implemented dynamic resolution support in all shaders and effects. - Added explicit viewport setting for all render passes to ensure correct scaling. - Fixed 3D shadow mapping by adding PLANE support and standardizing soft shadow logic. - Propagated resize events through the Effect hierarchy. - Applied project-wide code formatting.
Diffstat (limited to 'src/gpu/effects/chroma_aberration_effect.cc')
-rw-r--r--src/gpu/effects/chroma_aberration_effect.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gpu/effects/chroma_aberration_effect.cc b/src/gpu/effects/chroma_aberration_effect.cc
index ef9e963..6e64988 100644
--- a/src/gpu/effects/chroma_aberration_effect.cc
+++ b/src/gpu/effects/chroma_aberration_effect.cc
@@ -10,7 +10,7 @@ ChromaAberrationEffect::ChromaAberrationEffect(WGPUDevice device,
WGPUTextureFormat format)
: PostProcessEffect(device, queue) {
uniforms_ =
- gpu_create_buffer(device_, sizeof(float) * 4,
+ gpu_create_buffer(device_, sizeof(float) * 6,
WGPUBufferUsage_Uniform | WGPUBufferUsage_CopyDst);
pipeline_ = create_post_process_pipeline(device_, format,
chroma_aberration_shader_wgsl);
@@ -18,8 +18,8 @@ ChromaAberrationEffect::ChromaAberrationEffect(WGPUDevice device,
void ChromaAberrationEffect::render(WGPURenderPassEncoder pass, float t,
float b, float i, float a) {
struct {
- float t, b, i, a;
- } u = {t, b, i, a};
+ float t, b, i, a, w, h;
+ } u = {t, b, i, a, (float)width_, (float)height_};
wgpuQueueWriteBuffer(queue_, uniforms_.buffer, 0, &u, sizeof(u));
PostProcessEffect::render(pass, t, b, i, a);
}