* 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
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.