Commit Graph
511 Commits
Author SHA1 Message Date
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 e64df5a433 doc: revamp available commit type names
- Remove excessive commit types
- Add `ci` scope
2024-08-07 16:14:58 +03:00
SpaiR 4ad5032c1c doc: fix maven link in README 2024-08-07 16:03:12 +03:00
SpaiR d00f7b5a12 v1.86.12 2024-08-07 11:54:43 +03:00
dependabot[bot] 54812d48a3 build(deps): bump org.junit.jupiter:junit-jupiter-api (#234)
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-07 10:05:41 +03:00
dependabot[bot] 363eaf7071 build(deps): bump org.lwjgl:lwjgl-bom from 3.3.3 to 3.3.4 (#238)
Bumps [org.lwjgl:lwjgl-bom](https://github.com/LWJGL/lwjgl3) from 3.3.3 to 3.3.4.
- [Release notes](https://github.com/LWJGL/lwjgl3/releases)
- [Commits](https://github.com/LWJGL/lwjgl3/compare/3.3.3...3.3.4)

---
updated-dependencies:
- dependency-name: org.lwjgl:lwjgl-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-07 10:00:24 +03:00
dependabot[bot] f545026cc5 build(deps): bump org.junit.jupiter:junit-jupiter-engine (#233)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-07 09:57:12 +03:00
github-actions 066cbe591f [ci skip] update native binaries 2024-08-07 06:46:59 +00: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
github-actions 66522fa265 [ci skip] update native binaries 2024-08-05 06:40:23 +00: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
dependabot[bot] 3d75eb3da0 build(deps): bump org.junit.jupiter:junit-jupiter-api (#221)
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.1 to 5.10.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.1...r5.10.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 07:55:58 +02:00
dependabot[bot] 4b0879e4d2 build(deps): bump softprops/action-gh-release from 1 to 2 (#225)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 09:41:21 +02:00
dependabot[bot] 3eaf77de88 build(deps): bump org.junit.jupiter:junit-jupiter-engine (#222)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.1 to 5.10.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.1...r5.10.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 09:40:36 +02:00
github-actions 3e33dde643 [ci skip] update native binaries 2024-01-09 08:41:05 +00: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
dependabot[bot] 89cbacbf97 build(deps): bump actions/setup-java from 3 to 4 (#213)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 14:51:36 +02:00
dependabot[bot] b8f5001442 build(deps): bump org.junit.jupiter:junit-jupiter-engine (#208)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 12:51:09 +02:00
dependabot[bot] b0add80135 build(deps): bump org.junit.jupiter:junit-jupiter-api (#209)
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 12:47:04 +02:00
dependabot[bot] 85e198f581 build(deps): bump actions/checkout from 3 to 4 (#206)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 13:09:36 +03:00
SpaiR e2222f45d3 doc: add conventional commits naming and move to MIT License
- Add conventional commits naming.
- Move imgui-java to a more straightforward MIT License.
  Apache license is ok, yet MIT license is easier to read and understand.
2023-10-01 20:57:31 +03:00
SpaiR 1288f119a8 build: add signing key password 2023-09-29 12:47:09 +03:00
SpaiR 2cef96d993 v1.86.11 2023-09-29 11:35:13 +03:00
SpaiR f683e6c595 build(deps): bump org.lwjgl:lwjgl from 3.3.2 to 3.3.3 (#205)
fixes #201
2023-09-29 11:03:58 +03:00
dependabot[bot] 4b69030f41 build(deps): bump org.junit.jupiter:junit-jupiter-api from 5.9.3 to 5.10.0 (#191)
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-29 10:48:32 +03:00
dependabot[bot] de88bdb27e build(deps): bump org.junit.jupiter:junit-jupiter-engine from 5.9.3 to 5.10.0 (#192)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-29 10:35:40 +03:00
github-actions 7ce1b36f92 [ci skip] update native binaries 2023-09-29 07:13:31 +00: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
SpaiR 3f2532a478 tweak(build): move LICENSE into META-INF folder (#203) 2023-09-29 09:59:37 +03:00
github-actions a704140930 [ci skip] update native binaries 2023-09-18 06:26:52 +00: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
github-actions f9a152d49f [ci skip] update native binaries 2023-08-28 11:56:31 +00: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
Richard Kokstein 7d545c3e27 doc: add missing import for Configuration class in README.md (#186) 2023-06-13 09:40:57 +03:00
dependabot[bot] 6b836aa2f9 up: bump org.lwjgl:lwjgl-bom from 3.3.1 to 3.3.2 (#175)
Bumps [org.lwjgl:lwjgl-bom](https://github.com/LWJGL/lwjgl3) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/LWJGL/lwjgl3/releases)
- [Commits](https://github.com/LWJGL/lwjgl3/compare/3.3.1...3.3.2)

---
updated-dependencies:
- dependency-name: org.lwjgl:lwjgl-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-19 21:59:21 +03:00
dependabot[bot] e1737228e6 up: bump org.junit.jupiter:junit-jupiter-engine from 5.9.2 to 5.9.3 (#180)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.9.2 to 5.9.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.9.3)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-19 21:58:53 +03:00
dependabot[bot] 297e69d5d4 up: bump com.badlogicgames.gdx:gdx-jnigen from 2.3.1 to 2.4.0 (#184)
Bumps [com.badlogicgames.gdx:gdx-jnigen](https://github.com/libgdx/gdx-jnigen) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/libgdx/gdx-jnigen/releases)
- [Changelog](https://github.com/libgdx/gdx-jnigen/blob/master/CHANGES)
- [Commits](https://github.com/libgdx/gdx-jnigen/commits)

---
updated-dependencies:
- dependency-name: com.badlogicgames.gdx:gdx-jnigen
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-19 21:43:46 +03:00
dependabot[bot] ed746f3168 up: bump org.junit.jupiter:junit-jupiter-api from 5.9.2 to 5.9.3 (#179)
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.9.2 to 5.9.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.9.3)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-19 21:43:16 +03:00
SpaiR bca843e51b [Build] Remove submodule update 2023-03-29 21:13:27 +03:00
dependabot[bot] bad058853e [Build] Bump org.junit.jupiter:junit-jupiter-api from 5.5.2 to 5.9.2 (#170)
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.5.2 to 5.9.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.5.2...r5.9.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-14 09:49:21 +02:00
dependabot[bot] b528cdcf2f [Build] Bump org.junit.jupiter:junit-jupiter-engine from 5.5.2 to 5.9.2 (#169)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.5.2 to 5.9.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.5.2...r5.9.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-14 09:48:06 +02:00
dependabot[bot] e4ee51527a [Build] Bump com.badlogicgames.gdx:gdx-jnigen from 2.0.1 to 2.3.1 (#168)
Bumps [com.badlogicgames.gdx:gdx-jnigen](https://github.com/libgdx/gdx-jnigen) from 2.0.1 to 2.3.1.
- [Release notes](https://github.com/libgdx/gdx-jnigen/releases)
- [Changelog](https://github.com/libgdx/gdx-jnigen/blob/master/CHANGES)
- [Commits](https://github.com/libgdx/gdx-jnigen/compare/v2.0.1...2.3.1)

---
updated-dependencies:
- dependency-name: com.badlogicgames.gdx:gdx-jnigen
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-14 09:46:17 +02:00
SpaiR 05ba6f90eb [Build] Create .github/dependabot.yml 2023-03-14 09:32:26 +02:00
github-actions 10bcc7dcb0 [ci skip] update native binaries 2023-03-10 07:08:27 +00:00
SpaiR 9ddf875745 [Build] Add binding hash sort 2023-03-10 09:02:05 +02:00
github-actions 7b9bb505fc [ci skip] update native binaries 2023-03-10 06:43:39 +00:00
SpaiR f99f052602 v1.86.10 2023-03-10 08:34:48 +02:00
github-actions 9a69e8b7ba [ci skip] update native binaries 2023-03-09 07:10:18 +00: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 fd7d2f77d4 v1.86.9 2023-03-02 16:31:22 +02:00