diff options
| author | Nic Gaffney <gaffney_nic@protonmail.com> | 2024-09-06 22:29:38 -0500 |
|---|---|---|
| committer | Nic Gaffney <gaffney_nic@protonmail.com> | 2024-09-06 22:29:38 -0500 |
| commit | 52a2f5b69eaf3430623ef2ebeeca0c50a3b8217c (patch) | |
| tree | 0fc74f5b192d74452ad74f22ad512b8b663d2139 /vendor/rlImGui-main/README.md | |
| parent | ad6d55aeaa7c87a4008e56a5a3922d2608c73239 (diff) | |
| download | particle-sim-52a2f5b69eaf3430623ef2ebeeca0c50a3b8217c.tar.gz | |
Quickfix: rlimgui bindings added to vendor/
Diffstat (limited to 'vendor/rlImGui-main/README.md')
| -rw-r--r-- | vendor/rlImGui-main/README.md | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/vendor/rlImGui-main/README.md b/vendor/rlImGui-main/README.md new file mode 100644 index 0000000..dca9b65 --- /dev/null +++ b/vendor/rlImGui-main/README.md @@ -0,0 +1,75 @@ +# rlImGui +<img align="left" src="https://github.com/raysan5/raylib/raw/master/logo/raylib_logo_animation.gif" width="64"> +A Raylib integration with DearImGui + +rlImgui provides a backend for [Dear ImGui](https://github.com/ocornut/imgui) using [Raylib](https://www.raylib.com/). + +# Building +rlImGui is setup to use premake to generate a static library and examples for Visual Studio 2019. Premake can also be used to generate makefiles for linux. rlImGui can be used as a static library, or by direclty including the files into your game project. + +If you wish to use premake, you will need to download the Premake5 executable for your platform from. https://premake.github.io/download + +# Setup + +Using rlImGui in your code is very easy. Once you have included the library, or source files for rlImGui and ImGui in your project, simply do the following. +``` +#include "rlImGui.h" // include the API header + +// before your game loop +rlImGuiSetup(true); // sets up ImGui with ether a dark or light default theme + +// inside your game loop, between BeginDrawing() and EndDrawing() +rlImGuiBegin(); // starts the ImGui content mode. Make all ImGui calls after this + +rlImGuiEnd(); // ends the ImGui content mode. Make all ImGui calls before this + +// after your game loop is over, before you close the window + +rlImGuiShutdown(); // cleans up ImGui +``` + +# Examples +There are two example programs in the examples folder. + +## Simple +This is the most simple use of ImGui in raylib, it just shows the ImGui demo window. + + + +## Editor +This is a more complex example of ImGui, showing how to use raylib 2d and 3d cameras to draw into ImGui windows using render textures. + + +# Extras + +## rlImGuiColors.h +This file has a converter to change Raylib colors into ImGui Colors + +## Font Awesome Icons +Support for Font Awesome 6 https://fontawesome.com/ is built into rlImGui and enabled by default. You can simply +#include "extras/IconsFontAwesome6.h" +To use the ICON_FA macros for any icon in the free set. + +If you wish to disable font awesome support you can #define NO_FONT_AWESOME + + +# Images +Raylib textures can be drawn in ImGui using the following functions +``` +void rlImGuiImage(const Texture *image); +void rlImGuiImageSize(const Texture *image, int width, int height); +void rlImGuiImageSizeV(const Texture* image, Vector2 size); +void rlImGuiImageRect(const Texture* image, int destWidth, int destHeight, Rectangle sourceRect); +void rlImGuiImageRenderTexture(const RenderTexture* image); +void rlImGuiImageRenderTextureFit(const RenderTexture* image, bool center); + +bool rlImGuiImageButton(const Texture *image); +bool rlImGuiImageButtonSize(const char* name, const Texture* image, struct ImVec2 size); +``` + +# C vs C++ +ImGui is a C++ library, so rlImGui uses C++ to create the backend and integration with Raylib. +The rlImGui.h API only uses features that are common to C and C++, so rlImGui can be built as a static library and used by pure C code. Users of ImGui who wish to use pure C must use an ImGui wrapper, such as [https://github.com/cimgui/cimgui]. + +# Low level API +If you would like more controll over the ImGui Backend, you can use the low level API that is found in imgui_impl_raylib.h. This is API follows the patterns of other ImGui backends and does not do automatic context management. An example of it's use can be found in imgui_style_example.cpp |
