Giter VIP home page Giter VIP logo

imgui-java's People

Contributors

1312delta avatar aastrophysics avatar abvadabra avatar aeris170 avatar altsayun avatar boginsky avatar brunopj1 avatar calvertdw avatar davfsa avatar davidalmarinho avatar dependabot[bot] avatar github-actions[bot] avatar illithidek avatar kusaanko avatar marco012 avatar moheng233 avatar moulberry avatar perrymacmurray avatar rmarquis avatar sh54 avatar silentorb avatar socketbyte avatar spair avatar theverysharpflat avatar tlf30 avatar tmvkrpxl0 avatar trolobezka avatar tyruiop avatar virusbear avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imgui-java's Issues

Results of getGlyphRangesChinese*() are cut-off

The glyph range arrays provided by the functions ImFontAtlas.getGlyphRangesChineseFull() and ImFontAtlas.getGlyphRangesChineseSimplifiedCommond() are cut-off after the first 4 ranges.

For example, with getGlyphRangesChineseFull() it is supposed to be this array (see here):

0x0020, 0x00FF, // Basic Latin + Latin Supplement
0x2000, 0x206F, // General Punctuation
0x3000, 0x30FF, // CJK Symbols and Punctuations, Hiragana, Katakana
0x31F0, 0x31FF, // Katakana Phonetic Extensions
0xFF00, 0xFFEF, // Half-width characters
0xFFFD, 0xFFFD, // Invalid
0x4e00, 0x9FAF, // CJK Ideograms

The result from the method returns just the first four ranges, though:

0x0020, 0x00FF, // Basic Latin + Latin Supplement
0x2000, 0x206F, // General Punctuation
0x3000, 0x30FF, // CJK Symbols and Punctuations, Hiragana, Katakana
0x31F0, 0x31FF, // Katakana Phonetic Extensions

Note that all but one of the missing values are too large for a Java short (e.g. 0xFF00). I don't know what exactly happens during a JNI call, but it looks to me like the data is cut-off because it doesn't fit into the signed short data type. If that is true, one solution would be to use a char instead of a short here, considering it is unsigned and could represent all the relevant glyph ranges necessary (the ImWchar16 used in C++ dear imgui is also an unsigned 16 bit data type).

DockNodeBuilder?

Hi any chance we could get support for dock node builder? Right now I have to set the position of child windows to where they should and move them to dock onto the parent/bg window if I want them to be split. Would be nice if we could have the windows split on the start of the application. Regardless thanks again for the awesome bindings and sorry to bother you so much!

UnsupportedOperationException

Caused by: java.lang.UnsupportedOperationException: java.lang.UnsatisfiedLinkError: shadow.org.lwjgl.system.jni.JNINativeInterface.nNewDirectByteBuffer(JJ)Ljava/nio/ByteBuffer;
at shadow.org.lwjgl.system.MemoryUtil.(MemoryUtil.java:133

Macos bindings

Hi I'm trying to create a cross platform editor could you create mac bindings please?

NIOBuffer or address arguments for interactive widgets

As LWJGL3 introduced more efficient stack and off-heap memory buffers, it would be convenient to use those sometimes instead of allocating heap Im_type_ or type[]. As an example (maybe a bit artificial), I would like to do

FloatBuffer lengthBuffer = MemoryUtil.memAllocFloat(1);
lengthBuffer.put(length).flip();
if (ImGui.dragFloat("Length", MemoryUtil.memAddress(lengthBuffer)) {
    // update length
}

or even

try (MemoryStack stack = MemoryStack.stackPush()) {
    FloatBuffer coordsBuffer = stack.floats(z, y, x);
    if (ImGui.dragFloat("X", stack.getPointerAddress()) {
        // update x
    }
    if (ImGui.dragFloat("Y", stack.getPointerAddress() + 4) {
        // update y
    }
    if (ImGui.dragFloat("Z", stack.getPointerAddress() + 8) {
        // update z
    }
}

Backport to lwjgl 3.2.1

I know. This doesn't really make sense to go back to an older version of lwjgl but hear me out. Please check out this issue which describes why I think a back-port could be useful: here, I don't ask you to fully port the master branch but perhaps a secondary branch that supports lwjgl 3.2.1. TL;DR macos forces lwjgl 3.2.1 for minecraft, your ImGui bindings requires <= 3.2.2

imgui-java breaks

I successfully compiled the imgui-java and generated the libimgui-java64.so. When I try to run the example demo I get this:

/opt/idea-IU-192.7142.36/jbr/bin/java: symbol lookup error: /opt/imgui-java/imgui-java/bin/libimgui-java64.so: undefined symbol: FT_New_Library

I have the freetype2 library linked when I compiled it, so I don't understand.

        linux64.cppFlags += " -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include"
        linux64.linkerFlags += " -lfreetype "

Building on linux error

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/imgui-java-bin_jraynor/libimgui-java64.so: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /tmp/imgui-java-bin_jraynor/libimgui-java64.so)`

I think you've built the linux bindings with a unreleased verision of GLIBC, the current release is 2.28, so could you possibily rebuild those natives with a other version of GLIBC so it will work for more users? (Coming from zorin 15.2)

Add PushMultiItemsWidths

Its will be very useful for me.

I first wanted to try to write code directly in Java, but in C++ ImGui there is also ImGuiContext and ImGuiWindow/ImGuiWindowClass in which I need to get win32 DC (device context) and through it ItemWidth as well as ItemWidthStack. I just used this function in C++ before, but now I'm writing in Java and I'm wondering how it will look on it. And is it even possible to somehow get the ImGuiContext from via JNI? In the same place, it seems like if you need a DC, then we need to get through to the Win32 API.

Error if `MenuItem` is passed a null shortcut

This should reproduce it:

ImGui.menuItem("label", null, false, true);

I am on macOS and calling it via Clojure.

Looking at the autogenerated JNI bindings I see it always calls GetStringUTFChars on the shortcut parameter. I don't know much about JNI but this seems to crash if supplied with a null.

ImGuiTextFilter class

Greetings,

could you please add this class in your next release with all its functions.

// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]"
struct ImGuiTextFilter
{
    IMGUI_API           ImGuiTextFilter(const char* default_filter = "");
    IMGUI_API bool      Draw(const char* label = "Filter (inc,-exc)", float width = 0.0f);  // Helper calling InputText+Build
    IMGUI_API bool      PassFilter(const char* text, const char* text_end = NULL) const;
    IMGUI_API void      Build();
    void                Clear()          { InputBuf[0] = 0; Build(); }
    bool                IsActive() const { return !Filters.empty(); }

    // [Internal]
    struct ImGuiTextRange
    {
        const char*     b;
        const char*     e;

        ImGuiTextRange()                                { b = e = NULL; }
        ImGuiTextRange(const char* _b, const char* _e)  { b = _b; e = _e; }
        bool            empty() const                   { return b == e; }
        IMGUI_API void  split(char separator, ImVector<ImGuiTextRange>* out) const;
    };
    char                    InputBuf[256];
    ImVector<ImGuiTextRange>Filters;
    int                     CountGrep;
};

Thanks,
Georgii

Weird display

So I integrated, following your example with my engine, I get no errors, but my display is this for the exampleUI window
Screenshot from 2020-06-18 17-52-45

Any help will be appreciated.

Library crashes upon invocation of certain functions.

I've succesfully installed the library using Maven. Tried to run the example in here but the program crashes when it hits these functions:

ImGui#setConfigViewportsNoTaskBarIcon(boolean); (Line 150)
ImFontConfig#setMergeMode(boolean); (Line 166 & 171)
ImFontConfig#setPixelSnapH(boolean); (Line 167 & 172)

Here is the crash message:
Screenshot 2020-09-24 115904


Also, although unrelated, when invoking the ImFontAtlas#addFontFromFileTTF(String, float, ImFontConfig), I have to give the string "src/main/resources/Righteous-Regular.ttf" instead of "/Righteous-Regular.ttf". I'd normally give the latter to "load from file system" functions but it doesn't work. Why does that happen? (for example ImGuiGlfwExample#loadFromResources(String) takes the latter and works).

Question regarding polling keyboard inputs, for example isKeyPressed()

The ImGui.java file states

    // Inputs Utilities: Keyboard
    // - For 'int user_key_index' you can use your own indices/enums according to how your backend/engine stored them in io.KeysDown[].
    // - We don't know the meaning of those value. You can use GetKeyIndex() to map a ImGuiKey_ value into the user index.

This seems to imply I would need to forward keyboard inputs to ImGui from my engine, then poll isKeyPressed() using the appropriate indices.

However, given that ImGui is able to provide text input out of the box, I was wondering if there was a way to poll the keyboard without doing so? Or is it the case that ImGui is able to detect and process keyboard input, but does not have a mapping of key names to integers, hence I would need to define this mapping myself?

P.S. Thank you for creating this binding, I'm finding it stable and very straightforward to use with my libGDX projects! ๐Ÿ‘

Default Callbacks is implemented without programmers consent

Hi, I have just begun on a new LWJGL 3 game and wanted to use ImGui for testing stuff. But I ran into a problem. I am using my own GLFW window so when initializing ImGui I set installCallbacks to false. But even though I do that, input like "Mouse Down" and "Mouse Movement" still works.

MY ImGui class

public class ImGuiLayer extends Layer {
	private Application application;
	private ImGuiImplGlfw imGuiImp;
	private ImGuiImplGl3 imGuiGlImp;
	
	public ImGuiLayer(Application app) {
		super();
		this.application = app;
		
		ImGui.createContext();
		imGuiImp = new ImGuiImplGlfw();
		imGuiImp.init(app.window.windowId, false);
		imGuiGlImp = new ImGuiImplGl3();
		imGuiGlImp.init("#version 150");
        ImGui.init();
		ImGui.styleColorsDark();
	}
	
	@Override
	public boolean handleEvent(Event e) {
		return false;
	}

	@Override
	public void close() {
		imGuiImp.dispose();
		imGuiGlImp.dispose();
		ImGui.destroyContext();
	}
	
	public void draw() {
		// aft
		DecimalFormat df = new DecimalFormat("#.#####");
		String aft = df.format(application.window.getAft());
		
		ImGui.begin("Eninge Stats");
		
		// Window stats
		ImGui.text("Window Stats:");
		ImGui.text("FPS: " + application.window.getFps());
		ImGui.text("AFT: " + aft);
		
		// memory,
		double maxMem = Runtime.getRuntime().maxMemory() / (double)(1024 * 1024);
		double freMem = Runtime.getRuntime().freeMemory() / (double)(1024 * 1024);
		double usedMem = maxMem-freMem;
		ImGui.newLine();
		ImGui.text("Memory Stats:");
		ImGui.text("Memory Allocated: " + Math.round(maxMem) + "MB");
		ImGui.text("Memory Used: " + Math.round(usedMem) + "/" + Math.round(maxMem) + "MB");
		ImGui.text("Memory Free: " + Math.round(freMem) + "MB");
		
		ImGui.end();
		
	}

	@Override
	public void render() {
		// Start frame
		imGuiImp.newFrame();
        ImGui.newFrame();
        
        draw();
		
		// render
		ImGui.render();
		imGuiGlImp.renderDrawData(ImGui.getDrawData());
	}
}
2021-03-05.14-13-08.mp4

dragInt3 only shows 2 boxes?

When using ImGui.dragInt3 like so for example:

int[] TestArray = new int[3];
ImGui.dragInt3("Test", TestArray);

The result is identical to a dragInt2, there are only 2 boxes available.

image_2021-07-26_225406

Empty command list when imgui.ini present

Hi,

I'm facing a strange issue with this library. I'm doing some tests, and it seems that once the imgui.ini file is created, the commands list is always 0 and the buffers are not populated. I've tried to create a simple sample to show this. The folloing code just initializes Imgui, creates the demo window, renders it and then tries to get the commands list.

package org.vulkanb;

import imgui.*;
import imgui.type.ImInt;

public class TestImGui {
    public static void main(String[] args) {
        try {
            ImGui.createContext();

            ImGuiIO imGuiIO = ImGui.getIO();
            imGuiIO.setDisplaySize(1280, 720);
            imGuiIO.setDisplayFramebufferScale(1.0f, 1.0f);

            ImInt outWidth = new ImInt();
            ImInt outHeight = new ImInt();
            imGuiIO.getFonts().getTexDataAsAlpha8(outWidth, outHeight);

            ImGui.newFrame();
            ImGui.showDemoWindow();
            ImGui.render();

            ImDrawData imDrawData = ImGui.getDrawData();

            System.out.println("Cmd Lists=" + imDrawData.getCmdListsCount());
            System.out.println("Total vertices count=" + imDrawData.getTotalVtxCount());
            System.out.println("Total indices count=" + imDrawData.getTotalIdxCount());
            System.out.println("Draw data valid=" + imDrawData.getValid());

            ImGui.destroyContext();
        } catch (Exception excp) {
            excp.printStackTrace();
        }
    }
}

The first time it ies ececuted, no imgui.ini file is present, I get the following result:

Cmd Lists=1
Total vertices count=814
Total indices count=1365
Draw data valid=true

However, if I execute the example again, the imgui.ini is present, I get the following output:

Cmd Lists=0
Total vertices count=0
Total indices count=0
Draw data valid=true

I'm using openjdk 15.0.2 2021-01-19 and version 1.81.2 of the imgui-java library.

Any idea of what I am missing? In addition to that, it seems to mee that the vertex coordinates have quite small values (the display size seems not to be applied). I don't know if this related to this issue or not.

Any guidance is very much appreciated.

Multiple Contexts

Is there a way for you to included the following native call methods like GetCurrentContext and SetCurrentContext?


    // Context creation and access
    // Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between imgui contexts.
    // None of those functions is reliant on the current context.
    IMGUI_API ImGuiContext* CreateContext(ImFontAtlas* shared_font_atlas = NULL);
    IMGUI_API void          DestroyContext(ImGuiContext* ctx = NULL);   // NULL = destroy current context
    IMGUI_API ImGuiContext* **GetCurrentContext**();
    IMGUI_API void          **SetCurrentContext**(ImGuiContext* ctx);

https://github.com/ocornut/imgui/blob/master/imgui.h

I need to have the ability to support multiple contexts because I'm using multiple secondary buffers in Vulkan.

Sometimes it works.. sometimes some unknown garbage text. sometimes crashed.

Target: Minecraft 1.16.2
Fabric: latest

Sometimes work
image
Sometimes not
image

heres the example code

package net.fabricmc.example.screen;

import java.util.Objects;

import imgui.ImGui;
import imgui.ImGuiIO;
import imgui.flag.ImGuiConfigFlags;
import imgui.gl3.ImGuiImplGl3;
import imgui.glfw.ImGuiImplGlfw;
import imgui.type.ImString;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;

@Environment(EnvType.CLIENT)
public class ImguiScreen extends Screen {

	private long windowPtr;

	private final ImGuiImplGlfw implGlfw = new ImGuiImplGlfw();

	private final ImGuiImplGl3 implGl3 = new ImGuiImplGl3();

	private final ImGuiIO io;

	public ImguiScreen() {
		super(new LiteralText("ImguiScreen"));
		windowPtr = MinecraftClient.getInstance().getWindow().getHandle();
		ImGui.createContext();
		io = ImGui.getIO();
		implGlfw.init(windowPtr, false);
		implGl3.init("#version 150");
	}

	@Override
	public boolean isPauseScreen() {
		return false;
	}

	@Override
	public boolean charTyped(char chr, int keyCode) {
		if (io.getWantTextInput()) {
			io.addInputCharacter(chr);
		}
		super.charTyped(chr, keyCode);
		return true;
	}

	@Override
	public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
		if (io.getWantCaptureKeyboard()) {
			if (io.getKeysDown(keyCode)) {
				io.setKeysDown(new boolean[] { true });
			}
		}
		super.keyPressed(keyCode, scanCode, modifiers);
		return true;
	}

	@Override
	public boolean keyReleased(int keyCode, int scanCode, int modifiers) {
		if (io.getWantCaptureKeyboard()) {
			if (io.getKeysDown(keyCode)) {
				io.setKeysDown(new boolean[] { false });
			}
		}
		super.keyReleased(keyCode, scanCode, modifiers);
		return true;
	}

	ImString msg = new ImString();

	@Override
	public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
		// TODO Auto-generated method stub
		implGlfw.newFrame();
		ImGui.newFrame();
		ImGui.begin("hello");
		ImGui.text("hello");
		ImGui.inputText("Sample", msg);
		ImGui.end();
		ImGui.render();
		implGl3.renderDrawData(Objects.requireNonNull(ImGui.getDrawData()));
	}
}

sometimes access violation error stuff

Cannot use with Maven

It says Missing artifact io.imgui.java:binding:jar:1.78-1.2.0 on pom.xml

<dependency>
	<groupId>io.imgui.java</groupId>
	<artifactId>binding</artifactId>
	<version>1.78-1.2.0</version>
</dependency>
<dependency>
	<groupId>io.imgui.java</groupId>
	<artifactId>lwjgl3</artifactId>
	<version>1.78-1.2.0</version>
</dependency>

Binaries for arm64 (windows/macos)

Would it be possible to get binaries (as in packages as part of the releases on maven central) for both Windows and MacOS for arm64?

Thanks,
Trevor

Bug: setColors crashes

I've recently upgraded to the new version from 1.79-1.4.0 to 1.80-1.5.0.
It appears that the setColors method does not behave correctly.
If i try to upload my theme by correctly reading all the values from a file (exported from the inbuild theme builder) in a float[][] buffer, I get a strange JVM-Crash.

I didn't have that issue before with 1.79-1.4.0.

This is the stacktrace that java automatically generated:
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j imgui.ImGuiStyle.setColors([[F)V+0 j OxyEngine.System.OxyUISystem.init()V+33 j OxyEngine.System.OxyUISystem.<init>(LOxyEngine/Core/Window/WindowHandle;)V+50 j OxyEngine.Core.Layers.UILayer.<init>(LOxyEngine/Core/Window/WindowHandle;)V+24 j OxyEngineEditor.EditorApplication.init()V+230 j OxyEngineEditor.EditorApplication.lambda$run$0()V+1 j OxyEngineEditor.EditorApplication$$Lambda$36+0x0000000800bd2810.run()V+4 j java.lang.Thread.run()V+11 [email protected] v ~StubRoutines::call_stub

Thanks in advance!

UserCallback bindings

How are you handling situations when the render state changes, in vulkan they are using a callback function. Is it possible for you to quickly add this binding to your native library?

`    // Render command lists
    // (Because we merged all buffers into a single one, we maintain our own offset into them)
    int global_vtx_offset = 0;
    int global_idx_offset = 0;
    for (int n = 0; n < draw_data->CmdListsCount; n++)
    {
        const ImDrawList* cmd_list = draw_data->CmdLists[n];
        for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++)
        {
            const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i];
            if (pcmd->UserCallback != NULL)
            {
                // User callback, registered via ImDrawList::AddCallback()
                // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.)
                if (pcmd->UserCallback == ImDrawCallback_ResetRenderState)
                    ImGui_ImplVulkan_SetupRenderState(draw_data, command_buffer, rb, fb_width, fb_height);
                else
                    pcmd->UserCallback(cmd_list, pcmd);
            }
            else
            {
                // Project scissor/clipping rectangles into framebuffer space
                ImVec4 clip_rect;
                clip_rect.x = (pcmd->ClipRect.x - clip_off.x) * clip_scale.x;
                clip_rect.y = (pcmd->ClipRect.y - clip_off.y) * clip_scale.y;
                clip_rect.z = (pcmd->ClipRect.z - clip_off.x) * clip_scale.x;
                clip_rect.w = (pcmd->ClipRect.w - clip_off.y) * clip_scale.y;

                if (clip_rect.x < fb_width && clip_rect.y < fb_height && clip_rect.z >= 0.0f && clip_rect.w >= 0.0f)
                {
                    // Negative offsets are illegal for vkCmdSetScissor
                    if (clip_rect.x < 0.0f)
                        clip_rect.x = 0.0f;
                    if (clip_rect.y < 0.0f)
                        clip_rect.y = 0.0f;

                    // Apply scissor/clipping rectangle
                    VkRect2D scissor;
                    scissor.offset.x = (int32_t)(clip_rect.x);
                    scissor.offset.y = (int32_t)(clip_rect.y);
                    scissor.extent.width = (uint32_t)(clip_rect.z - clip_rect.x);
                    scissor.extent.height = (uint32_t)(clip_rect.w - clip_rect.y);
                    vkCmdSetScissor(command_buffer, 0, 1, &scissor);

                    // Draw
                    vkCmdDrawIndexed(command_buffer, pcmd->ElemCount, 1, pcmd->IdxOffset + global_idx_offset, pcmd->VtxOffset + global_vtx_offset, 0);
                }
            }
        }
        global_idx_offset += cmd_list->IdxBuffer.Size;
        global_vtx_offset += cmd_list->VtxBuffer.Size;
    }`

Which one to download?

I'm really confused. I only wanted to use imgui-app, but the jar imgui-app-1.82.2.jar seems not enough.

Cannot build when using openjdk 16

Relevant build issue:

> Task :imgui-app:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':imgui-app:compileJava'.
> java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x5eb4340f) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x5eb4340f

Failing to find mac natives on jcenter

Hi again, sorry to bother you, but upon trying to add the native bindings for mac, gradle fails to find the jar. I thought this was user error, but it seems they aren't present in the actual jcenter repo? Maybe it's a cache issue and will be resolved with time? Regardless gradle is failing to find the natives at the moment with the following error `Could not resolve all files for configuration ':modules:ide:runtimeClasspath.

Could not find io.imgui.java:natives-macos:1.76-0.11.
Searched in the following locations:
- https://repo.maven.apache.org/maven2/io/imgui/java/natives-macos/1.76-0.11/natives-macos-1.76-0.11.pom
- https://jcenter.bintray.com/io/imgui/java/natives-macos/1.76-0.11/natives-macos-1.76-0.11.pom'

ImFontGlyphRangesBuilder bindings/reimplementation

A couple of weeks ago I was working on font-awesome integration in our project and found out that imgui-java currently lacks bindings for ImFontGlyphRangesBuilder. Fortunately, it's a fairly simple utility class which can be easily reimplemented in java, and so I did, but it still feels like something which should be a part of the library.

I am willing to make a PR but wanted to ask if you think it should be an actual bindings or java reimplementation. I also would be willing to add an example of font-awesome integration (with ImFontGlyphRangesBuilder usage) in the demo application but only if you think it will be of any benefit for the project.

p.s. tried to contact you on discord but unable to send messages for some reason.

Docking support?

First of all, I just wanted to say, this is an amazing binding. I haven't had any problems, and it's working exactly as expected. This is a wonder library. Secondly, I was wondering if you could create bindings for the docking branch of imgui? Here is the branch for docking. Thanks again for this awesome library, looking forward to (maybe) getting to use docking though aswell!

Include ImPlot

Tl;DR This is a big ol' feature request.

What about including bindings for https://github.com/epezent/implot?

Should Java bindings for it be included in a separate project?

P.S. Thanks for working on this library. I've been using it and it's working very well! Absolutely love it.

Version `GLIBC_2.29' not found

Greetings,

I'm getting this error with your java bindings on my 18.04 Ubuntu running Java 11:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/imgui-java-bin_gviznyuk/libimgui-java64.so: /lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.29' not found (required by /tmp/imgui-java-bin_gviznyuk/libimgui-java64.so)

Checked my version: using "lbb --version"

ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

how do you make inputtext accept any lenght of input

I'm using the below code to type into the input text box;

ImGui.inputText("default", new imgui.type.ImString("test"), 32);

but it just lets me write 4 characters instead of 32,,,, which is the correct way?

Render State flag

Greetings,

I have successfully integrated your Imgui API with Vulkan (lwjgl bindings)! My only question is there is a way for you to send me a flag that tells that the render state has changed? Given the nature of Vulkan with Imgui, I have to reset the command pool, for every frame, and redraw all the objects. This way I can save a few GPU cycles.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.