Commit Graph
549 Commits
Author SHA1 Message Date
SpaiR 56f02fb0ad chore(build): enable gradle build caching 2024-09-08 12:28:17 +03:00
github-actions eca9df4feb [ci skip] update native binaries 2024-08-29 14:02:47 +00:00
SpaiR c4c03bee9f feat(api): use uintptr_t instead of intptr_t for pointers (#265)
Image methods now accept the `long` type instead of `int`,
as they are expected to work with pointers as well.
2024-08-29 16:54:43 +03:00
SpaiR 473521edba doc: update info about FreeType usage 2024-08-29 11:27:35 +03:00
SpaiR e822240115 v1.87.3 2024-08-26 12:01:53 +03:00
github-actions 473050e755 [ci skip] update native binaries 2024-08-26 08:41:04 +00:00
SpaiR 9518b1cec6 feat: ArgVariant annotation and plot methods with count parameter (#264)
* feat(generator): introduce ArgVariant annotation

New annotation provides an ability to generate methods definitions for different types and names.

* feat(api): expose count param for plot* methods
2024-08-26 11:33:55 +03:00
SpaiR cae0581df2 v1.87.2 2024-08-21 14:57:19 +03:00
github-actions c438644bfb [ci skip] update native binaries 2024-08-21 11:38:33 +00:00
SpaiR 2086b7977b feat(generator): create unwrapped methods for methods with dst arg (#263)
Also, minor fixes for binding declarations.
2024-08-21 14:31:05 +03:00
SpaiR f18c578a10 v1.87.1 2024-08-19 14:51:44 +03:00
github-actions 616ca46e37 [ci skip] update native binaries 2024-08-19 11:42:32 +00:00
SpaiR 8f76b2083f fix: return methods lost during integration of binding generation API 2024-08-19 14:34:02 +03:00
dependabot[bot] 9fbffddbd9 build(deps): bump com.badlogicgames.gdx:gdx-jnigen from 2.5.1 to 2.5.2 (#259)
Bumps [com.badlogicgames.gdx:gdx-jnigen](https://github.com/libgdx/gdx-jnigen) from 2.5.1 to 2.5.2.
- [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/2.5.1...2.5.2)

---
updated-dependencies:
- dependency-name: com.badlogicgames.gdx:gdx-jnigen
  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-19 13:59:27 +03:00
SpaiR c80abd24f1 v1.87.0 2024-08-19 09:40:24 +03:00
SpaiR 40e27f0e11 chore: more specific exclude for vendor folder 2024-08-19 09:40:13 +03:00
SpaiR e6dd09a635 chore(build): add setup-gradle action (#255)
Should improve general Gradle pipeline.
2024-08-18 11:32:14 +03:00
SpaiR d64569912a docs: remove "Description" header from the PR template 2024-08-18 11:18:43 +03:00
SpaiR 5f9efdc1a3 docs: simplify CONTRIBUTING guide for commit types and scopes 2024-08-18 11:02:08 +03:00
SpaiR 1bc1eb5b36 chore: resolve Kotlin warnings 2024-08-18 10:58:06 +03:00
github-actions 400dc4d2bc [ci skip] update native binaries 2024-08-18 07:54:11 +00: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
github-actions 887e3d9c85 [ci skip] update native binaries 2024-08-16 12:44:00 +00:00
SpaiR 47d97102f7 feat(api): Dear ImGui v1.87 + ImPlot v0.13 (#252)
* build(deps): bump Dear ImGui from 1.86 to 1.87

* build(deps): bump implot from 0.12 to 0.13

* feat(api,binding): adapt API to Dear ImGui v1.87

* feat(api,binding): adapt API to implot v0.13

* build: generate API for latest changes

* chore(binding): add missing super call for ImGuiStructDestroyable constructor

* chore: minor code style

* feat: adapt ImGuiImplGlfw to 1.87

* feat: adapt ImGuiImplGl3 to 1.87

* feat: adapt imgui-app module to 1.87

* fix: javadoc for updated imgui-binding

* fix: loosing data when setting struct field of char* type

Since we manually release chars, to store them in field we need to do a local copy.

* fix: invalid methods to check program linking in OpenGL

* chore: remove dedicated method to check GLFW version

* fix: add missing include
2024-08-16 15:35:42 +03:00
dependabot[bot] 341b0af179 build(deps): bump com.fasterxml.jackson.core:jackson-databind (#250)
Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.14.2 to 2.17.2.
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  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>
2024-08-12 16:53:29 +03:00
dependabot[bot] 4f6da8181d build(deps): bump com.fasterxml.jackson.core:jackson-core from 2.14.2 to 2.17.2 (#251)
* build(deps): bump fr.inria.gforge.spoon:spoon-core from 10.3.0 to 11.1.0 (#249)

Bumps fr.inria.gforge.spoon:spoon-core from 10.3.0 to 11.1.0.

---
updated-dependencies:
- dependency-name: fr.inria.gforge.spoon:spoon-core
  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>

* build(deps): bump com.fasterxml.jackson.core:jackson-core

Bumps [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) from 2.14.2 to 2.17.2.
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.14.2...jackson-core-2.17.2)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 16:52:33 +03:00
github-actions c41681f61e [ci skip] update native binaries 2024-08-12 13:42:49 +00:00
Emanuel RabinaandSpaiR 9ca6d97489 feat(api): add missing ImGui.TableGetSortSpecs API (and related objects) (#246)
* Add missing GetTableSortSpecs API

* Add binding for TreeNodeEx(const char* label, ImGuiTreeNodeFlags flags)

* Add generated files

* Wrap > character in code block

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

* Wrap > character in code block

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

---------

Co-authored-by: SpaiR <klimbetoo@gmail.com>
2024-08-12 16:35:02 +03:00
github-actions aef257f0bd [ci skip] update native binaries 2024-08-11 09:17:16 +00:00
SpaiR 6ee9625e3f build(generator): make evaluatedValue to be an Int instead of String 2024-08-11 12:08:35 +03:00
SpaiR 746c4887b8 build(generator): create AST tree with all includes and type definitions 2024-08-11 12:08:35 +03:00
SpaiR 7b8ca029c0 build(generator): ast enum content for numbers
Take into account cases, when enum value can be a number.
2024-08-11 12:08:35 +03:00
SpaiR 588903f7f7 feat: remove offset property from GenerateAst JSON (#243)
* fix: GenerateAst task didn't work

* feat: remove offset property from GenerateAst JSON
2024-08-09 11:13:36 +03:00
SpaiR 555b3d4aba build(deps): bump com.badlogicgames.gdx:gdx-jnigen from 2.4.0 to 2.5.1 (#242) 2024-08-08 16:32:46 +03:00
SpaiR ed6f0922a2 build(deps): bump com.gradleup.shadow from 7.1.2 to 8.3.0 (#241)
The plugin has also moved to the new id.
2024-08-08 16:32:35 +03:00
github-actions ad70e60e49 [ci skip] update native binaries 2024-08-08 11:54:43 +00:00
SpaiR 1c396fb82a build(ci): adapt build pipeline for the generator API
build(ci): make "Compare Binding Hash" job also took into account generated and include folders

build(ci): add JDK 11 to the setup-java pipeline

This is required for the buildSrc module, since it uses "spoon" library, which is compiled for JDK11.

build(ci): keep only JDK11

- Add source ant target compatibility output to the MANIFEST.mf file

build: add auto-provisioning for JDK

just in case
2024-08-08 14:46:23 +03:00
SpaiR 4e884a1a17 build(deps): bump Gradle from 7.4.2 to 8.9 2024-08-08 14:46:23 +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 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