Skip to content

Commit 04856a5

Browse files
committed
ImGui integration
1 parent 21937aa commit 04856a5

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

guide/src/dear_imgui/imgui_integration.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ m_device->resetFences(*render_sync.drawn);
3434
m_imgui->new_frame();
3535

3636
// ...
37-
render_sync.command_buffer.beginRendering(rendering_info);
37+
command_buffer.beginRendering(rendering_info);
3838
ImGui::ShowDemoWindow();
3939
// draw stuff here.
40-
render_sync.command_buffer.endRendering();
40+
command_buffer.endRendering();
4141
```
4242
4343
ImGui doesn't draw anything here (the actual draw command requires the Command Buffer), it's just a good customization point to use indirection at later.
@@ -46,11 +46,11 @@ We use a separate render pass for Dear ImGui, again for isolation, and to enable
4646
4747
```cpp
4848
m_imgui->end_frame();
49-
rendering_info.setColorAttachments(attachment_info)
49+
rendering_info.setColorAttachments(color_attachment)
5050
.setPDepthAttachment(nullptr);
51-
render_sync.command_buffer.beginRendering(rendering_info);
52-
m_imgui->render(render_sync.command_buffer);
53-
render_sync.command_buffer.endRendering();
51+
command_buffer.beginRendering(rendering_info);
52+
m_imgui->render(command_buffer);
53+
command_buffer.endRendering();
5454
```
5555

5656
![ImGui Demo](./imgui_demo.png)

src/app.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ auto App::wait_for_frame() -> vk::CommandBuffer {
197197
// reset fence _after_ acquisition of image: if it fails, the
198198
// fence remains signaled.
199199
m_device->resetFences(*render_sync.drawn);
200+
m_imgui->new_frame();
200201

201202
auto command_buffer_bi = vk::CommandBufferBeginInfo{};
202203
// this flag means recorded commands will not be reused.
@@ -238,8 +239,16 @@ void App::render(vk::CommandBuffer const command_buffer) {
238239
.setLayerCount(1);
239240

240241
command_buffer.beginRendering(rendering_info);
242+
ImGui::ShowDemoWindow();
241243
// draw stuff here.
242244
command_buffer.endRendering();
245+
246+
m_imgui->end_frame();
247+
rendering_info.setColorAttachments(color_attachment)
248+
.setPDepthAttachment(nullptr);
249+
command_buffer.beginRendering(rendering_info);
250+
m_imgui->render(command_buffer);
251+
command_buffer.endRendering();
243252
}
244253

245254
void App::transition_for_present(vk::CommandBuffer const command_buffer) const {

0 commit comments

Comments
 (0)