// This file is part of the 64k demo project. // It implements the PassthroughEffect. #include "gpu/demo_effects.h" #include "gpu/gpu.h" // --- PassthroughEffect --- PassthroughEffect::PassthroughEffect(const GpuContext& ctx) : PostProcessEffect(ctx) { pipeline_ = create_post_process_pipeline(ctx_.device, ctx_.format, passthrough_shader_wgsl); } void PassthroughEffect::update_bind_group(WGPUTextureView input_view) { const CommonPostProcessUniforms u = { .resolution = {(float)width_, (float)height_}, .aspect_ratio = 1.0f, .time = 0.0f, .beat = 0.0f, .audio_intensity = 0.0f, }; uniforms_.update(ctx_.queue, u); pp_update_bind_group(ctx_.device, pipeline_, &bind_group_, input_view, uniforms_.get(), {}); }