summaryrefslogtreecommitdiff
path: root/src/effects/gaussian_blur_effect.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/effects/gaussian_blur_effect.cc')
-rw-r--r--src/effects/gaussian_blur_effect.cc22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/effects/gaussian_blur_effect.cc b/src/effects/gaussian_blur_effect.cc
index 7304321..1d39256 100644
--- a/src/effects/gaussian_blur_effect.cc
+++ b/src/effects/gaussian_blur_effect.cc
@@ -9,27 +9,15 @@ GaussianBlur::GaussianBlur(const GpuContext& ctx,
const std::vector<std::string>& inputs,
const std::vector<std::string>& outputs, float start_time,
float end_time)
- : Effect(ctx, inputs, outputs, start_time, end_time), pipeline_(nullptr), bind_group_(nullptr),
- sampler_(nullptr) {
- // Headless mode: skip GPU resource creation (compiled out in STRIP_ALL)
+ : Effect(ctx, inputs, outputs, start_time, end_time), pipeline_(nullptr), bind_group_(nullptr) {
HEADLESS_RETURN_IF_NULL(ctx_.device);
- // Create pipeline
+ init_uniforms_buffer();
+ create_linear_sampler();
+ params_buffer_.init(ctx_.device);
+
pipeline_ = create_post_process_pipeline(
ctx_.device, WGPUTextureFormat_RGBA8Unorm, gaussian_blur_shader_wgsl);
-
- // Create sampler
- WGPUSamplerDescriptor sampler_desc = {};
- sampler_desc.addressModeU = WGPUAddressMode_ClampToEdge;
- sampler_desc.addressModeV = WGPUAddressMode_ClampToEdge;
- sampler_desc.magFilter = WGPUFilterMode_Linear;
- sampler_desc.minFilter = WGPUFilterMode_Linear;
- sampler_desc.maxAnisotropy = 1;
- sampler_ = wgpuDeviceCreateSampler(ctx_.device, &sampler_desc);
-
- // Init uniform buffers
- params_buffer_.init(ctx_.device);
- uniforms_buffer_.init(ctx_.device);
}
void GaussianBlur::render(WGPUCommandEncoder encoder,