File tree 2 files changed +33
-1
lines changed
2 files changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -11,7 +11,23 @@ FetchContent_Declare(SFML
11
11
EXCLUDE_FROM_ALL
12
12
SYSTEM )
13
13
FetchContent_MakeAvailable(SFML)
14
+ FetchContent_Declare(ImGui
15
+ GIT_REPOSITORY https://github.com/ocornut/imgui
16
+ GIT_TAG v1.91.1
17
+ GIT_SHALLOW ON
18
+ EXCLUDE_FROM_ALL
19
+ SYSTEM )
20
+ FetchContent_MakeAvailable(ImGui)
21
+ FetchContent_GetProperties(ImGui SOURCE_DIR IMGUI_DIR)
22
+ set (IMGUI_SFML_FIND_SFML OFF )
23
+ FetchContent_Declare(ImGui-SFML
24
+ GIT_REPOSITORY https://github.com/SFML/imgui-sfml
25
+ GIT_TAG v3.0
26
+ GIT_SHALLOW ON
27
+ EXCLUDE_FROM_ALL
28
+ SYSTEM )
29
+ FetchContent_MakeAvailable(ImGui-SFML)
14
30
15
31
add_executable (main src/main.cpp)
16
32
target_compile_features (main PRIVATE cxx_std_17)
17
- target_link_libraries (main PRIVATE SFML::Graphics)
33
+ target_link_libraries (main PRIVATE SFML::Graphics ImGui-SFML::ImGui-SFML )
Original file line number Diff line number Diff line change 1
1
#include < SFML/Graphics.hpp>
2
+ #include < imgui-SFML.h>
3
+ #include < imgui.h>
2
4
3
5
int main ()
4
6
{
5
7
auto window = sf::RenderWindow (sf::VideoMode ({1920u , 1080u }), " CMake SFML Project" );
6
8
window.setFramerateLimit (144 );
9
+ if (!ImGui::SFML::Init (window))
10
+ return -1 ;
7
11
12
+ sf::Clock clock ;
8
13
while (window.isOpen ())
9
14
{
10
15
while (const std::optional event = window.pollEvent ())
11
16
{
17
+ ImGui::SFML::ProcessEvent (window, *event);
18
+
12
19
if (event->is <sf::Event::Closed>())
13
20
{
14
21
window.close ();
15
22
}
16
23
}
17
24
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
+
18
31
window.clear ();
32
+ ImGui::SFML::Render (window);
19
33
window.display ();
20
34
}
35
+
36
+ ImGui::SFML::Shutdown ();
21
37
}
You can’t perform that action at this time.
0 commit comments