Commit Graph
195 Commits
Author SHA1 Message Date
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
Rex Fleischerand@Tom-Ski @zly2006 be4734090e build(binding): macOS ARM64 native binaries (#223)
Co-authored-by: @Tom-Ski @zly2006
2024-08-05 00:37:32 +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
SpaiR 49fffaf02d tweak(api): simplify version get from imgui-java.properties file (#204)
Instead of generating `properties` file we make it always.
To provide version value we replace specific token.

Also, small tweaks in code which gets the version
2023-09-29 10:02:21 +03:00
Kusaanko c46830a3b7 fix(api): native loading by stopping creating tmpDir every time (#197)
* [API] Stop creating tmpDir every time

* [API] Add a whitespace after catch

* [API] Fix getting imgui-java version

* [API] Add final to properties variable

* [API] Make it brief to generate properties

* [API] Fix the path of imgui-java.properties

* [API] Change the order of loading native library

1.imgui.library.path
2.java.library.path
3.extract from resources

* [API] Remove debugging codes

* [API] Move extraction code before it is loaded
2023-09-18 09:19:01 +03:00
Kusaanko 64416f1168 fix: glyph range size (#196)
* [API] Fix glyph array size

* [API] Fix macro multiple lines

* [API] Fix variable to use in ImFontAtlas

* [API] Fix counting of size in ImFontAtlas
2023-08-28 14:49:11 +03:00
Bruno Pinto Jácome 70442b64d5 [API] Adding missing ImNodes bindings (#167)
* added missing ImNodes bindings

* add missing binding and fix Style Vars in ImNodes
2023-03-09 08:57:31 +02:00
SpaiR 4a5c587ffd [API] Add ability to set inputBuffer in ImGuiTextFilter
Useful to have a custom inputText field, but to filter using ImGuiTextFilter

resolves #160
2023-03-02 11:44:23 +02:00
SpaiR bf92f04c21 [API] Fix inputText with resizable ImString crashes if the ImGuiInputTextCallback is null
fixes #158
2023-03-01 11:01:09 +02:00
SpaiR d8f8f41a76 [API] Make classes from imgui.type which are represent numbers to extend Number class
- ImDouble
 - ImFloat
 - ImInt
 - ImLong
 - ImShort
2023-02-28 19:08:25 +02:00
SpaiR 25fc8bae8f [API] Make all imgui.type classes to implement Comparable<> interface 2023-02-28 19:02:41 +02:00
Kirill Boginskyandkirill-boginskiy e9f1b72043 [API] Added inputTextWithHint with ability to use callback (#159)
Co-authored-by: kirill-boginskiy <kirill.boginskiy@vizor-games.com>
2023-02-28 12:52:23 +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
Moulberry 667d6108b8 [API] Fix nHasDragDropPayload SIGSEGV when payload doesn't exist (#155)
`getDragDropPayload()` functions should simply return null when
the payload doesn't exist.

Currently, DearImGui will return NULL from `ImGui::GetDragDropPayload()`
when the payload does not exist. This causes a null dereference
since the nHasDragDropPayload function performs no NULL check
2023-02-03 19:11:47 +02:00
virusbear c71ed6f198 [API] Add missing ImNodes::EditorContextGetPanning (#152)
* Add editorContextGetPanning to ImNodes binding

* make editorContextGetPanning call by reference

* Fix typo
2022-12-26 12:58:54 +02:00
SpaiR d760b2b9ef [API] Tweak ImString tests 2022-12-19 11:36:10 +02:00
SpaiR 47baed3b42 [API] Add arithmetic ops to ImVec2 and ImVec4
- plus
- minus
- times
2022-12-19 11:30:51 +02:00
davfsa 72e061637e [API] Fix calcTextSize to be used in a static context (#143) 2022-11-16 12:00:39 +02:00
SpaiR ff9b88ddbb [API] Add convenient methods to ImColor helper 2022-09-02 12:18:29 +03:00
SpaiR 142e312971 [API] Fix invalid setNextPlotFormatY
fixes #129
2022-05-12 13:15:11 +03:00
Duncan Calvert bfbe56c2d5 [API] ImPlot Performance Improvement (#115)
* Make native array method public to enable use of primitive arrays.

* Make public methods for the performance methods that are separate from the native ones.

* Finish adding performance methods.

* Add finals.

* Add final finals.
2022-03-01 21:35:09 +02: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 8c1ef209ad [API] Automatic Module Names (#105)
* Initial implementation of Automatic Module Names

* Fix using java 17 for publishing

* Roll build back to jdk 1.8

* Fix package name for imgui.lwjgl3 module

* Reworking package change to prevent breaking backwards compatability
2022-01-21 09:34:38 +02:00
SpaiR 384e24a6c5 [API] Up OpenGL impl 2021-12-26 17:19:04 +02:00
SpaiR e972af840e [API] Dear ImGui v1.86 (#102) 2021-12-26 16:00:21 +02:00
Trevor FlynnandSpaiR 74203bc333 [API] Add a mechanism for Dear ImGui assertion callbacks (#100)
* Syncing wip to github

* Assertion callback works

* Restore example that does not crash

* Add comment in build script. Merge with upstream.

* Fix assert always triggering

* Resolve jvm env at runtime to prevent looking up bad stack address

* Fixed EXCEPTION_ACCESS_VIOLATION within native code after callback was complete.

* Fix linting errors

* Change ImGui to Dear ImGui

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

* Move jvm native layer to its own header/source

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2021-12-26 14:11:56 +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
SpaiR f172bd6e13 [API] Dear ImGui v1.85 2021-12-01 10:38: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
AlTsayunandaleksandr.cayun 326594f33a [API] Implement binding for ImGui::getWindowScrollbarRect (#81)
* Implemented binding for ImGui::getWindowScrollbarRect

* checkstyle fixes

* more logic naming for boolean fields in ImGuiWindow struct

Co-authored-by: aleksandr.cayun <aleksandr.cayun@vizor-games.com>
2021-09-24 17:01:17 +03:00
SpaiR e529c610fa [API] Fix dragInt3 only shows 2 boxes
fixes #68
2021-09-12 11:29:01 +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 9026dcd4ad [API] Dear ImGui v1.84.1 2021-08-29 11:17:15 +03:00
Perry MacMurray 78694a4263 [API] Add ImGuiContext struct and ability to switch Dear ImGui contexts (#65)
Struct itself has no fields or methods. It can be used for context switching though.

* Implement ImGuiContext

* Move ImGuiContext from imgui to imgui.internal, minor bugfixes

resolves #17
2021-07-13 08:22:48 +03:00
SpaiR 1544682cc4 [Build] Add workflows for automatic releases 2021-07-10 14:15:45 +03:00
SpaiR b1ea4cedb9 [Doc] Fix javadoc 2021-06-21 16:19:39 +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 39a86991f2 [Build] Drop 32bit support 2021-05-30 14:30:00 +03:00
SpaiR b4df8d8611 [API] Dear ImGui v1.83 2021-05-29 13:09:00 +03:00
SpaiR 423612cdc4 [API] Fix #43 2021-05-29 12:09:01 +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 3725ddf2f9 [Build] Add a "one include" header files 2021-04-10 15:30:00 +03:00
SpaiR 0ed891f391 [API] Dear ImGui v1.82 2021-03-27 20:03:16 +02:00
sh54andSpaiR 04b7c4e4fe [API] Allow null to be passed as the shortcut param to MenuItem (#35)
Co-authored-by: SpaiR <klimbetoo@gmail.com>
2021-03-27 17:09:37 +03:00
SpaiR 3fe77320f3 [Example] Add example of Drag & Drop 2021-03-09 17:58:21 +02:00
SpaiR 533fc7f979 [API] Refactor Drag & Drop api
In Java we can easily bind our payload to an object. 
This is a more flexible approach, than using byte arrays so the last one was removed.
2021-03-09 17:58:02 +02:00