32 Commits
Author SHA1 Message Date
SpaiR 634e28b76a feat(api): bump Dear ImGui from 1.89.0 to 1.90.9 2025-08-26 13:33:36 +03:00
SpaiR e70576f322 feat(api): bump Dear ImGui from 1.88 to 1.89.9
resolves #134
resolves #135
resolves #145
resolves #220
resolves #310

- Bump imgui-node-editor to the latest coomit
- Bump implot from 0.13 to 0.16
2025-01-29 15:24:43 +02:00
SpaiR 7190b51a72 chore(build): update to Gradle 8.12 and set CI to use JDK 17 (#308)
Upgraded the build system to Gradle 8.12 and updated the CI pipeline to use JDK 17 for improved compatibility and performance.
2024-12-27 15:00:01 +02:00
SpaiR d252c145c5 feat(api): make FreeType a toggleable option which is disabled by default (#254)
* deps(build): bump FreeType from 2.12.1 to 2.13.3

* fix(generator): add missing ImGuiFreeTypeBuilderFlags

* feat(generator): add possibility to provide additional defines specifically for AST

* feat(api): make FreeType optional and disabled by default

FreeType renderer is still included in the final build.
Its usage is toggleable and DISABLED by default.
2024-08-18 10:45:27 +03:00
SpaiR 8a8cd22ed6 feat: introduce binding generator
A squash of hundreds of commits with a binding API generator.

The API generator works with a hybrid model:
1. We define methods and fields in the code.
2. Mark them with API annotations.
3. For specific use cases, we use the old approach with JNI generation comments.

There is also an API to generate an AST tree, which is saved to JSON.
This JSON can be used for full API generation by declaring only field/method names.
Currently, it is used to generate constants.

By eyeballing, 95% of the API has been converted to the new approach.
This is sufficient for the current moment. Only edge cases with specific API calls are left.

fix: ambiguous call for ImGui::GetColorU32

build: disable checkstyle for imgui-binding module

Since the module is heavily generated, checkstyle for it doesn't make sense.

build: make buildSrc to use JDK 11

build: make generateApi optional when compiling project

Initially generated module was not included to the project VCS.
Since it's now in the separate src folder, we don't need to call generator every time.
Only when a new generation result is required.
2024-08-08 14:46:23 +03:00
SpaiR 46c008eb02 build(binding): add universal macOS ARM64 dylib and static FreeType compilation
- Static FreeType linking flow for all OS
- Flow to build universal binaries for macOS (x86_64, aarch64)
- Simplified CI workflow by removing FreeType branches from the build matrix

Added 2 new scripts:
1. `buildSrc/scripts/vendor_freetype.sh`
2. `buildSrc/scripts/build.sh`

The first script prepares FreeType for usage in the build process.
The result of this script is used in the `GenerateLibs` task.
Other ways of building with FreeType are removed.
If it's impossible to build with FreeType, it is recommended to set `freetype=false`.

The second script aggregates commands to build native binaries.
It includes specific steps, such as creating a universal library for macOS and copying the result to the specific folder `/tmp/imgui/dst`.

Script 1 can be used for local builds. Script 2 is primarily intended for use in CI.
2024-08-07 09:41:09 +03:00
ΔeltaandSpaiR 194381c44e feat(api): add bindings for imgui-knobs (#211)
* feat(api): add bindings for imgui-knobs

Add bindings for the imgui-knobs extension

* Update example/src/main/java/Extra.java

Update styling

Co-authored-by: SpaiR <klimbetoo@gmail.com>

* Update example/src/main/java/Extra.java

Update styling

Co-authored-by: SpaiR <klimbetoo@gmail.com>

* Update .gitignore

Remove gradle.properties from git ignore

* Update styling

Update styling, field names set to UPPER_CASE, remove throwing exceptions from constructors, refactored flags to general style

---------

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2024-01-09 10:34:10 +02:00
墨恒andSpaiR 986aa532ff [API] Added callback binding for InputText (#156)
* Added callback binding for InputText

* Add JavaDoc

* Change

* Add Javadoc

* Fix Import

* Teaks and improvements

- Extended example;
- Added input text callback ImGuiInputTextFlags#CallbackEdit;
- Minor code improvements.

---------

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2023-02-07 13:13:02 +02:00
SpaiR 8a560ca439 [API] Fix dependency tree issue for imgui-java-app
resolve #75
resolve #127

Removed shadowing for `imgui-java-app.jar` which is published to Maven Central.
Shadow Jar now has a prefix `-all` - for those one who prefer to use raw jars instead dependencies in maven/gradle.
2022-12-14 12:01:50 +02:00
David MarinhoandSpaiR 3a494ba6a3 [Example] Add example of Canvas Editor (#126)
* [Example] Add example of Canvas Editor

* [Example] Adjust Canvas Editor example (#126)

* [Example] Wrap examples to their own window

* Tweaks

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2022-05-05 23:52:13 +03:00
Trevor Flynn fefac80157 [API] Memory editor extension (#110)
* Working on memory editor bindings for SpaiR/imgui-java#109

* Initial working implementation

* Add mising entry for imgui_club in .gitmodules

* Sorry, fixing readme link type and description for memory editor.

* Rename .club package to .memedit

* Rename _club.h to _memedit.h
2022-02-02 13:17:07 +02:00
Trevor Flynn 45f625a5b7 [API] Allow for null passed as file filter for ImGuiFileDialog (#98) 2021-12-10 10:56:49 +02:00
TyruiopandSpaiR a78f0b9e71 [API] Update imnodes with minimap support (#87)
* Attempt to get imnodes minimap working

* Working minimap

* Bottom right minimap in demo

* Restoring bin/libimgui-java.so

* Fix style issue + typo

* Restoring node editor

* Fix example indents

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2021-12-05 20:32:46 +02:00
Trevor Flynn 0bbbc2e037 [API] Implement ImGuiFileDialog extension (#89)
* Initial setup for ImGuiFileDialog extension

* Need to resolve linker errors. Working on PaneFun callback.

* Remove jni callback code that is not compiling to expose linker error.

* Callbacks for paneFun not yet implemented. Linker error still present, seems that some header is being included multiple times.

* Fixed linker errors. Added example for demo.

* Add support for multiple callbacks

* Callbacks work
2021-11-16 13:07:13 +02:00
Trevor Flynn 3744297452 [API] Added multi Y ImPlot#plotShaded (#84) 2021-10-10 08:03:35 +03:00
Adam GrzegorzewskiandSpaiR 4e56056222 [API] Bindings for ImGuiColorTextEdit (#79)
* Add ImGuiColorTextEdit submodule

* ImGuiColorTextEdit integration

* Remove unused Identifier class (oops)

* Fix checkstyle

* Small tweaks and fixes

* Remove empty line before imports

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2021-09-12 11:22:43 +03:00
SpaiR 68b36de553 [Doc] Add info about ImPlot 2021-06-21 16:17:29 +03:00
92fa416657 [API] Include ImPlot (#56)
* Add implot submodule.

* Add implot to generateLibs

* Add _implot.h

* Add placeholder ImPlot java classes.

* Create demo window.

* Try to show the ImPlot demo in the window.

* Create ImPlot context.

* Fix final check.

* Implement ImPlotFlags.

* Implement the rest of the enums.

* Make classes final.

* Implement ImPlotContext and related methods

* Added more methods to ImPlot wrapper (mostly plot utils)

* Implement ImPlotPoint

* Implement ImPlotRange

* Switch native method to static in ImPlotPoint

* Implement ImPlotLimits

* Finish ImPlot Plot Utils bindings

* Implement more ImPlot methods (Miscellaneous)

* Implement more ImPlot methods (Legend utils/tools)

* Implement more ImPlot methods (Drag and drop utils)

* Implement more ImPlot methods (Plot tools)

* Implement more ImPlot methods (most plot items)

* Fix compile error (casting to double and not Double)

* Fix ImDrawData.getCmdListCmdBufferTextureId()

* Implement more ImPlot methods (rest of plot items)
(except for PlotImage, which is not currently supported)

* Fix ImGui binding problems due to API changes

* Adhere to style guidelines.

* Fix imguizmo submodule

* Fix API

* Implement ImPlotStyle

* Implement more ImPlot methods (Plot and Item styling)

* Implement remainder of ImPlot methods (Colormaps)

* Modify ImPlot example program

* Fix ImPlot example program bug

* ImPlot bugfixes

* Update ImPlot Demo

* Revert merge errors.

* Make the submodules the version on master.

* Fix URL/style in ExampleImPlot

* Fix merge conflicts with example ImPlot context creation

* Remove unneccesary static block for field declarations

* Revert libimgui-java64.so

* Change construction to use define (vs passing a pointer)

* Fixed memory leaks
Changed ImPlotLimits, ImPlotRange, and ImPlotPoint to extend ImGuiStructDestroyable instead of ImGuiStruct so user-created instances can be destroyed. Methods that create instances that must be destroyed manually specify this in the docs.

* Fix style violations

* Fix compile error

* Replace exception type

Co-authored-by: Perry MacMurray <perrymacmurray@gmail.com>
Co-authored-by: Perry <pmacmurray@ihmc.org>
Co-authored-by: SpaiR <klimbetoo@gmail.com>
2021-06-21 16:07:16 +03:00
SpaiR 5a8692248a [Example] Tweak fonts 2021-05-30 21:17:17 +03:00
SpaiR b4df8d8611 [API] Dear ImGui v1.83 2021-05-29 13:09:00 +03:00
SpaiR e5a30ab6be [Build] Fix passing local natives to the example
resolves #48
2021-05-29 12:48:39 +03:00
SpaiR 2730c93469 [Example] Fix example 2021-05-29 12:20:45 +03:00
Okan GüclüandSpaiR 5ea2712c91 [API] ImGuizmo (#54)
* [API] ImGuizmo

* [Example] Fix ImGuizmo demo

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2021-05-29 12:06:09 +03:00
SpaiR 8070e9668d [Example] Minor styling 2021-04-29 09:03:34 +03:00
Dubrovsky Danil 36e59c4cba [API] ImFontGlyphRangesBuilder and fonts example 2021-04-29 08:43:02 +03:00
SpaiR 44c5ca18ca [Build] Make imgui-app to use a freetype version of library for Windows
It's absolutely safe to use FreeType for Windows, since dll's are compiled fully statically.
2021-04-12 13:09:38 +03:00
SpaiR 0ed891f391 [API] Dear ImGui v1.82 2021-03-27 20:03:16 +02:00
SpaiR 3fe77320f3 [Example] Add example of Drag & Drop 2021-03-09 17:58:21 +02:00
SpaiR b07160da15 [API] Extend ImString to accept more objects to set string from
Also make getBytes method to use UTF-8 charset
2021-02-27 16:15:54 +02:00
SpaiR f9620cb20f [Binding] ImNodes 2021-02-20 12:32:47 +02:00
SpaiR cf9e74b1d0 [Example] Migrate example to the new module 2021-01-24 22:20:37 +02:00
SpaiR 46f74381aa [API] Add imgui-app and example modules 2021-01-24 17:56:45 +02:00