Skip to content

Commit

Permalink
v1.82.2
Browse files Browse the repository at this point in the history
  • Loading branch information
SpaiR committed Apr 12, 2021
1 parent 44c5ca1 commit 87fa05d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 18 deletions.
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ JNI based binding for [Dear ImGui](https://github.com/ocornut/imgui) with no dep
Read official [documentation](https://github.com/ocornut/imgui#usage) and [wiki](https://github.com/ocornut/imgui/wiki) to see how to work with Dear ImGui.
Almost everything from C++ could be done in Java in the same way.

Binding has an OpenGL renderer and a GLFW backend implementation, using a [LWJGL3](https://www.lwjgl.org/) library. Could be found in [imgui-lwjgl3](https://github.com/SpaiR/imgui-java/blob/v1.82.1/imgui-lwjgl3) module.<br>
Binding has an OpenGL renderer and a GLFW backend implementation, using a [LWJGL3](https://www.lwjgl.org/) library. Could be found in [imgui-lwjgl3](https://github.com/SpaiR/imgui-java/blob/v1.82.2/imgui-lwjgl3) module.<br>
They are recommended, yet optional to use. The advantage of Dear ImGui is a portability, so feel free to copy-paste classes or write your own implementations.<br>

Additionally, there is an [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.82.1/imgui-app) module, which provides **a high abstraction layer**.<br>
Additionally, there is an [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.82.2/imgui-app) module, which provides **a high abstraction layer**.<br>
It hides all low-level stuff under one class to extend, so you can build your GUI application instantly.

### Features
Expand All @@ -47,12 +47,12 @@ _Make sure you have installed Java 8 or higher._
You can try binding by yourself in three simple steps:

```
git clone --branch v1.82.1 https://github.com/SpaiR/imgui-java.git
git clone --branch v1.82.2 https://github.com/SpaiR/imgui-java.git
cd imgui-java
./gradlew :example:start
./gradlew :example:run
```

See [example](https://github.com/SpaiR/imgui-java/blob/v1.82.1/example) module to try other widgets in action.
See [example](https://github.com/SpaiR/imgui-java/blob/v1.82.2/example) module to try other widgets in action.

# How To Use
**[ImGui in LWJGL YouTube video](https://youtu.be/Xq-eVcNtUbw)** by [GamesWithGabe](https://www.youtube.com/channel/UCQP4qSCj1eHMHisDDR4iPzw).<br>
Expand All @@ -61,7 +61,7 @@ You can use this video as a basic step-by-step tutorial. It shows how to integra
Take a note, that integration itself is a very flexible process. It could be done in one way or another. If you just need a framework for your GUI - use **Application** module. Otherwise, if you need more control, the best way is not just to repeat steps, but to understand what each step does.

## Application
If you don't care about OpenGL or other low-level stuff, then you can use application layer from [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.82.1/imgui-app) module.
If you don't care about OpenGL or other low-level stuff, then you can use application layer from [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.82.2/imgui-app) module.
It is a **one jar solution** which includes: GLFW, OpenGL and Dear ImGui itself. So you only need **one dependency** line or **one jar in classpath** to make everything to work. <ins>You don't need to add separate dependencies to LWJGL or native libraries, since they are already included.</ins><br>
Application module is the best choice if everything you care is the GUI for your app.

Expand Down Expand Up @@ -102,7 +102,7 @@ repositories {
}
dependencies {
implementation "io.github.spair:imgui-java-app:1.82.1"
implementation "io.github.spair:imgui-java-app:1.82.2"
}
```
</details>
Expand All @@ -115,7 +115,7 @@ dependencies {
<dependency>
<groupId>io.github.spair</groupId>
<artifactId>imgui-java-app</artifactId>
<version>1.82.1</version>
<version>1.82.2</version>
</dependency>
</dependencies>
```
Expand All @@ -131,7 +131,7 @@ dependencies {

## Binding
Using binding without the wrapper requires to "attach" it to your application manually.
You can refer to [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.82.1/imgui-app) module and see how things are done there.
You can refer to [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.82.2/imgui-app) module and see how things are done there.

### Dependencies
For simplicity, example of dependencies for Gradle/Maven only shows how to add natives for Windows.
Expand All @@ -157,7 +157,7 @@ repositories {
ext {
lwjglVersion = '3.2.3'
imguiVersion = '1.82.1'
imguiVersion = '1.82.2'
}
dependencies {
Expand All @@ -182,7 +182,7 @@ dependencies {
```
<properties>
<lwjgl.version>3.2.3</lwjgl.version>
<imgui.java.version>1.82.1</imgui.java.version>
<imgui.java.version>1.82.2</imgui.java.version>
</properties>
<dependencyManagement>
Expand Down Expand Up @@ -260,9 +260,9 @@ dependencies {
</details>

## Extensions
- [ImNodes](https://github.com/Nelarius/imnodes/tree/857cc860af05ac0f6a4039c2af33d982377b6cf4) | [Example](https://github.com/SpaiR/imgui-java/blob/v1.82.1/example/src/main/java/ExampleImNodes.java) <br>
- [ImNodes](https://github.com/Nelarius/imnodes/tree/857cc860af05ac0f6a4039c2af33d982377b6cf4) | [Example](https://github.com/SpaiR/imgui-java/blob/v1.82.2/example/src/main/java/ExampleImNodes.java) <br>
A small, dependency-free node editor for dear imgui. (A good choice for simple start.)
- [imgui-node-editor](https://github.com/thedmd/imgui-node-editor/tree/687a72f940c76cf5064e13fe55fa0408c18fcbe4) | [Example](https://github.com/SpaiR/imgui-java/blob/v1.82.1/example/src/main/java/ExampleImGuiNodeEditor.java) <br>
- [imgui-node-editor](https://github.com/thedmd/imgui-node-editor/tree/687a72f940c76cf5064e13fe55fa0408c18fcbe4) | [Example](https://github.com/SpaiR/imgui-java/blob/v1.82.2/example/src/main/java/ExampleImGuiNodeEditor.java) <br>
Node Editor using ImGui. (A bit more complex than ImNodes, but has more features.)

## Freetype
Expand Down Expand Up @@ -302,7 +302,7 @@ Don't forget to make clear for your Linux/Mac users, that they will need to inst
ext {
lwjglVersion = '3.2.3'
imguiVersion = '1.82.1'
imguiVersion = '1.82.2'
}
dependencies {
Expand Down Expand Up @@ -340,17 +340,17 @@ Read [javadoc](https://javadoc.io/doc/io.github.spair/imgui-java-binding) and so
* Ant
* Mingw-w64 (recommended way: use [MSYS2](https://www.msys2.org/) and install [mingw-w64-x86_64-toolchain](https://packages.msys2.org/group/mingw-w64-x86_64-toolchain) group)
- Build with: `./gradlew :imgui-binding:generateLibs -Denvs=win64 -Dlocal`
- Run with: `./gradlew :example:start -DlibPath="../imgui-binding/build/libsNative/windows64"`
- Run with: `./gradlew :example:run -DlibPath="../imgui-binding/build/libsNative/windows64"`

### Linux
- Install dependencies: `openjdk8`, `mingw-w64-gcc`, `ant`. (Package names could vary from system to system.)
- Build with: `./gradlew :imgui-binding:generateLibs -Denvs=linux64 -Dlocal`
- Run with: `./gradlew :example:start -DlibPath=../imgui-binding/build/libsNative/linux64`
- Run with: `./gradlew :example:run -DlibPath=../imgui-binding/build/libsNative/linux64`

### MacOS
- Check dependencies from "Linux" section and make sure you have them installed.
- Build with: `./gradlew :imgui-binding:generateLibs -Denvs=mac64 -Dlocal`
- Run with: `./gradlew :example:start -DlibPath=../imgui-binding/build/libsNative/macosx64`
- Run with: `./gradlew :example:run -DlibPath=../imgui-binding/build/libsNative/macosx64`

In `envs` parameter next values could be used `win32`, `win64`, `linux32`, `linux64` or `mac64`.<br>
`-Dlocal` is optional and means that natives will be built under the `./imgui-binding/build/` folder. Otherwise `/tmp/imgui` folder will be used.
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=1.82.1
version=1.82.2

0 comments on commit 87fa05d

Please sign in to comment.