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