/******************************************************************************************* * * raylib-extras [ImGui] example - Simple Integration * * This is a simple ImGui Integration * It is done using C++ but with C style code * It can be done in C as well if you use the C ImGui wrapper * https://github.com/cimgui/cimgui * * Copyright (c) 2021 Jeffery Myers * ********************************************************************************************/ #include "raylib.h" #include "raymath.h" #include "imgui.h" #include "rlImGui.h" // DPI scaling functions float ScaleToDPIF(float value) { return GetWindowScaleDPI().x * value; } int ScaleToDPII(int value) { return int(GetWindowScaleDPI().x * value); } int main(int argc, char* argv[]) { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 1280; int screenHeight = 800; SetConfigFlags(FLAG_MSAA_4X_HINT | FLAG_VSYNC_HINT | FLAG_WINDOW_RESIZABLE); InitWindow(screenWidth, screenHeight, "raylib-Extras [ImGui] example - simple ImGui Demo"); SetTargetFPS(144); rlImGuiSetup(true); Texture image = LoadTexture("resources/parrots.png"); // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { BeginDrawing(); ClearBackground(DARKGRAY); // start ImGui Conent rlImGuiBegin(); // show ImGui Content bool open = true; ImGui::ShowDemoWindow(&open); open = true; if (ImGui::Begin("Test Window", &open)) { ImGui::TextUnformatted(ICON_FA_JEDI); rlImGuiImage(&image); } ImGui::End(); // end ImGui Content rlImGuiEnd(); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- rlImGuiShutdown(); UnloadTexture(image); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; }