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