Skip to content

Commit

Permalink
Demonstrate how to acquire and use ImGui-SFML
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisThrasher committed Sep 7, 2023
1 parent 5312df6 commit 7bde340
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 3 deletions.
15 changes: 14 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,26 @@ cmake_minimum_required(VERSION 3.21)
project(CMakeSFMLProject LANGUAGES CXX)

include(FetchContent)

FetchContent_Declare(SFML
GIT_REPOSITORY https://github.com/SFML/SFML.git
GIT_TAG 2.6.x)
FetchContent_MakeAvailable(SFML)

FetchContent_Declare(ImGui
GIT_REPOSITORY https://github.com/ocornut/imgui
GIT_TAG v1.89.5)
FetchContent_MakeAvailable(ImGui)
FetchContent_GetProperties(ImGui SOURCE_DIR IMGUI_DIR)

set(IMGUI_SFML_FIND_SFML OFF)
FetchContent_Declare(ImGui-SFML
GIT_REPOSITORY https://github.com/SFML/imgui-sfml
GIT_TAG 2.6.x)
FetchContent_MakeAvailable(ImGui-SFML)

add_executable(CMakeSFMLProject src/main.cpp)
target_link_libraries(CMakeSFMLProject PRIVATE sfml-graphics)
target_link_libraries(CMakeSFMLProject PRIVATE sfml-graphics ImGui-SFML::ImGui-SFML)
target_compile_features(CMakeSFMLProject PRIVATE cxx_std_17)
if (WIN32 AND BUILD_SHARED_LIBS)
add_custom_command(TARGET CMakeSFMLProject POST_BUILD
Expand Down
19 changes: 17 additions & 2 deletions src/main.cpp
Original file line number Diff line number Diff line change
@@ -1,21 +1,36 @@
#include <SFML/Graphics.hpp>
#include <imgui-SFML.h>
#include <imgui.h>

int main()
{
auto window = sf::RenderWindow{ { 1920u, 1080u }, "CMake SFML Project" };
auto window = sf::RenderWindow{ { 1280u, 720u }, "CMake SFML Project" };
window.setFramerateLimit(144);
ImGui::SFML::Init(window);

sf::Clock clock;
while (window.isOpen())
{
for (auto event = sf::Event{}; window.pollEvent(event);)
{
ImGui::SFML::ProcessEvent(window, event);

if (event.type == sf::Event::Closed)
{
window.close();
}
}

ImGui::SFML::Update(window, clock.restart());

ImGui::Begin("Hello, world!");
ImGui::Button("Look at this pretty button");
ImGui::End();

window.clear();
ImGui::SFML::Render(window);
window.display();
}
}

ImGui::SFML::Shutdown();
}

0 comments on commit 7bde340

Please sign in to comment.