1 module draw 2 3 def draw_tonemap (framebuffer : Framebuffer 4 descriptor_set : DescriptorSet 5 size : Size 6 max_size : Size) = 7 let vulkan : Vulkan @auto 8 begin_label "Tonemap" 9 10 let render_pass = begin framebuffer 11 EnterOp/Load ExitOp/Read 12 EnterOp/Clear ExitOp/Discard 13 [Vector4 0 0 0 1] 14 15 let pipeline_cache = vulkan.tonemap.pipeline_cache 16 bind_pipeline (pipeline_cache.get null render_pass) 17 bind_descriptor_set descriptor_set 0 18 bind_index_buffer vulkan.quad_index_buffer 0 6 19 20 let width = size.width as f32 / max_size.width as f32 21 let height = size.height as f32 / max_size.height as f32 22 let push_constant = TonemapPushConstant 23 use_debanding = 1 24 =width 25 =height 26 27 set_push_constant push_constant@ptr 28 draw 29 end 30 31 end_label 32