Skip to content

Commit a06bbf9

Browse files
committed
Demonstrate how to acquire and use ImGui-SFML
1 parent 7f96df4 commit a06bbf9

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

CMakeLists.txt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,27 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
55
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
66

77
include(FetchContent)
8+
89
FetchContent_Declare(SFML
910
GIT_REPOSITORY https://github.com/SFML/SFML.git
1011
GIT_TAG 2.6.x
1112
GIT_SHALLOW ON)
1213
FetchContent_MakeAvailable(SFML)
1314

15+
FetchContent_Declare(ImGui
16+
GIT_REPOSITORY https://github.com/ocornut/imgui
17+
GIT_TAG v1.89.9)
18+
FetchContent_MakeAvailable(ImGui)
19+
FetchContent_GetProperties(ImGui SOURCE_DIR IMGUI_DIR)
20+
21+
set(IMGUI_SFML_FIND_SFML OFF)
22+
FetchContent_Declare(ImGui-SFML
23+
GIT_REPOSITORY https://github.com/SFML/imgui-sfml
24+
GIT_TAG 2.6.x)
25+
FetchContent_MakeAvailable(ImGui-SFML)
26+
1427
add_executable(main src/main.cpp)
15-
target_link_libraries(main PRIVATE sfml-graphics)
28+
target_link_libraries(main PRIVATE sfml-graphics ImGui-SFML::ImGui-SFML)
1629
target_compile_features(main PRIVATE cxx_std_17)
1730

1831
if(WIN32)

src/main.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,37 @@
11
#include <SFML/Graphics.hpp>
2+
#include <imgui-SFML.h>
3+
#include <imgui.h>
24

35
int main()
46
{
57
auto window = sf::RenderWindow{ { 1920u, 1080u }, "CMake SFML Project" };
68
window.setFramerateLimit(144);
9+
if (!ImGui::SFML::Init(window))
10+
return -1;
711

12+
sf::Clock clock;
813
while (window.isOpen())
914
{
1015
for (auto event = sf::Event{}; window.pollEvent(event);)
1116
{
17+
ImGui::SFML::ProcessEvent(window, event);
18+
1219
if (event.type == sf::Event::Closed)
1320
{
1421
window.close();
1522
}
1623
}
1724

25+
ImGui::SFML::Update(window, clock.restart());
26+
27+
ImGui::Begin("Hello, world!");
28+
ImGui::Button("Look at this pretty button");
29+
ImGui::End();
30+
1831
window.clear();
32+
ImGui::SFML::Render(window);
1933
window.display();
2034
}
35+
36+
ImGui::SFML::Shutdown();
2137
}

0 commit comments

Comments
 (0)