summaryrefslogtreecommitdiff
path: root/src/gpu/post_process_helper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/post_process_helper.cc')
-rw-r--r--src/gpu/post_process_helper.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/gpu/post_process_helper.cc b/src/gpu/post_process_helper.cc
index 2e8f6ad..5f2ff56 100644
--- a/src/gpu/post_process_helper.cc
+++ b/src/gpu/post_process_helper.cc
@@ -36,6 +36,31 @@ WGPURenderPipeline create_post_process_pipeline(WGPUDevice device,
return pipeline;
}
+// Helper to create a simple post-processing pipeline (no effect params)
+WGPURenderPipeline create_post_process_pipeline_simple(WGPUDevice device,
+ WGPUTextureFormat format,
+ const char* shader_code) {
+ WGPUBindGroupLayout bgl =
+ BindGroupLayoutBuilder()
+ .sampler(PP_BINDING_SAMPLER, WGPUShaderStage_Fragment)
+ .texture(PP_BINDING_TEXTURE, WGPUShaderStage_Fragment)
+ .uniform(PP_BINDING_UNIFORMS,
+ WGPUShaderStage_Vertex | WGPUShaderStage_Fragment)
+ .build(device);
+
+ const std::string composed_shader =
+ ShaderComposer::Get().Compose({}, shader_code);
+
+ WGPURenderPipeline pipeline = RenderPipelineBuilder(device)
+ .shader(composed_shader.c_str())
+ .bind_group_layout(bgl)
+ .format(format)
+ .build();
+
+ wgpuBindGroupLayoutRelease(bgl);
+ return pipeline;
+}
+
// --- PostProcess Implementation Helper ---
static GpuBuffer g_dummy_buffer = {nullptr, 0};