Commit Graph
18 Commits
Author SHA1 Message Date
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 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 e972af840e [API] Dear ImGui v1.86 (#102) 2021-12-26 16:00:21 +02: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 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 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
SpaiR 36415d60f3 [API] Add API to directly return ImVec2/ImVec4 2021-02-27 16:16:03 +02:00
SpaiR d285bbfb34 [API] Add ImRect#set(ImRect) method 2021-02-27 16:15:58 +02:00
SpaiR 91d636a659 [API] Remove lazy-created sructs and add methods to verify struct pointer 2021-02-27 16:15:11 +02:00
SpaiR 642d7ab2f5 [API] Change ImFontConfig#setEllipsisChar "short" to "int" 2021-02-20 12:17:00 +02:00
SpaiR 859a9af307 [API] Add internal ImGui#calcItemSize and ImGui#splitterBehavior methods 2021-01-25 23:19:09 +02:00
SpaiR 8ac8a0719b [API] Add API for Dear ImGui v1.79 2020-10-17 14:58:04 +03:00
SpaiR 9fdd6d7e14 [API] Add internal ImGuiItemFlags api 2020-09-21 18:12:17 +03:00
SpaiR 1abbf9d14d [API] Fix dockBuilderSplitNode arguments 2020-09-06 14:24:28 +03:00
SpaiR 3d438a0029 [Example] Refactor example 2020-09-05 15:27:03 +03:00
SpaiR 4e564240ca [API] Add support for DockBuilder 2020-09-05 15:27:03 +03:00