MCPcopy Create free account
hub / github.com/BoomingTech/Piccolo / draw

Method draw

engine/source/runtime/function/render/passes/main_camera_pass.cpp:1913–2012  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1911 }
1912
1913 void MainCameraPass::draw(ColorGradingPass& color_grading_pass,
1914 FXAAPass& fxaa_pass,
1915 ToneMappingPass& tone_mapping_pass,
1916 UIPass& ui_pass,
1917 CombineUIPass& combine_ui_pass,
1918 ParticlePass& particle_pass,
1919 uint32_t current_swapchain_image_index)
1920 {
1921 {
1922 RHIRenderPassBeginInfo renderpass_begin_info {};
1923 renderpass_begin_info.sType = RHI_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
1924 renderpass_begin_info.renderPass = m_framebuffer.render_pass;
1925 renderpass_begin_info.framebuffer = m_swapchain_framebuffers[current_swapchain_image_index];
1926 renderpass_begin_info.renderArea.offset = {0, 0};
1927 renderpass_begin_info.renderArea.extent = m_rhi->getSwapchainInfo().extent;
1928
1929 RHIClearValue clear_values[_main_camera_pass_attachment_count];
1930 clear_values[_main_camera_pass_gbuffer_a].color = {{0.0f, 0.0f, 0.0f, 0.0f}};
1931 clear_values[_main_camera_pass_gbuffer_b].color = {{0.0f, 0.0f, 0.0f, 0.0f}};
1932 clear_values[_main_camera_pass_gbuffer_c].color = {{0.0f, 0.0f, 0.0f, 0.0f}};
1933 clear_values[_main_camera_pass_backup_buffer_odd].color = {{0.0f, 0.0f, 0.0f, 1.0f}};
1934 clear_values[_main_camera_pass_backup_buffer_even].color = {{0.0f, 0.0f, 0.0f, 1.0f}};
1935 clear_values[_main_camera_pass_post_process_buffer_odd].color = {{0.0f, 0.0f, 0.0f, 1.0f}};
1936 clear_values[_main_camera_pass_post_process_buffer_even].color = {{0.0f, 0.0f, 0.0f, 1.0f}};
1937 clear_values[_main_camera_pass_depth].depthStencil = {1.0f, 0};
1938 clear_values[_main_camera_pass_swap_chain_image].color = {{0.0f, 0.0f, 0.0f, 1.0f}};
1939 renderpass_begin_info.clearValueCount = (sizeof(clear_values) / sizeof(clear_values[0]));
1940 renderpass_begin_info.pClearValues = clear_values;
1941
1942 m_rhi->cmdBeginRenderPassPFN(m_rhi->getCurrentCommandBuffer(), &renderpass_begin_info, RHI_SUBPASS_CONTENTS_INLINE);
1943 }
1944
1945 float color[4] = { 1.0f, 1.0f, 1.0f, 1.0f };
1946 m_rhi->pushEvent(m_rhi->getCurrentCommandBuffer(), "BasePass", color);
1947
1948 drawMeshGbuffer();
1949
1950 m_rhi->popEvent(m_rhi->getCurrentCommandBuffer());
1951
1952 m_rhi->cmdNextSubpassPFN(m_rhi->getCurrentCommandBuffer(), RHI_SUBPASS_CONTENTS_INLINE);
1953
1954 m_rhi->pushEvent(m_rhi->getCurrentCommandBuffer(), "Deferred Lighting", color);
1955
1956 drawDeferredLighting();
1957
1958 m_rhi->popEvent(m_rhi->getCurrentCommandBuffer());
1959
1960 m_rhi->cmdNextSubpassPFN(m_rhi->getCurrentCommandBuffer(), RHI_SUBPASS_CONTENTS_INLINE);
1961
1962 m_rhi->pushEvent(m_rhi->getCurrentCommandBuffer(), "Forward Lighting", color);
1963
1964 particle_pass.draw();
1965
1966 m_rhi->popEvent(m_rhi->getCurrentCommandBuffer());
1967
1968 m_rhi->cmdNextSubpassPFN(m_rhi->getCurrentCommandBuffer(), RHI_SUBPASS_CONTENTS_INLINE);
1969
1970 tone_mapping_pass.draw();

Callers 1

drawForwardMethod · 0.45

Calls 8

getSwapchainInfoMethod · 0.80
cmdBeginRenderPassPFNMethod · 0.80
pushEventMethod · 0.80
popEventMethod · 0.80
cmdNextSubpassPFNMethod · 0.80
cmdEndRenderPassPFNMethod · 0.80

Tested by

no test coverage detected