gabstv / ebiten-imgui

Dear ImGui renderer for Ebitengine
MIT License
122 stars 18 forks source link

imgui-go is getting discontinued/deprecated #18

Closed eliasdaler closed 10 months ago

eliasdaler commented 1 year ago

Hello. See https://github.com/inkyblackness/imgui-go/discussions/192

This is pretty important, because imgui-go will stop getting updates. I've already ported ebiten-imgui to cimgui-go, see this branch of my fork. Most of the work is done, however cimgui-go doesn't have some stuff exposed here and there - I'll work on that.

I can make a PR, but some discussion is needed. Obviously, this is a big breaking change, so ebiten-imgui probably will need to go to v2. If this is the case, maybe it might be the time to rethink some of API decisions if we're breaking it anyway.

Any thoughts on this?

P.S. I now see that readme still says that "API might change", so maybe there's no need for v2.

gabstv commented 1 year ago

Hello! I just saw the imgui-go thread. I see that you did a great job on replacing the library with cimgui-go. We can split into a v2. There are some things on the v1 (apart from the imgui library change) that could be more aligned to the Ebitengine style. I created a v2 branch. This branch will be merged into the master branch once it is considered stable.

eliasdaler commented 1 year ago

cimgui-go will definitely need to go through a lot of changes so I'll open a PR once I'll consider it "stable enough". Because right now, a lot of things about its API will probably change (e.g. see this https://github.com/AllenDang/cimgui-go/pull/26) and I wouldn't want to make a PR after every change like this.

For now, I think imgui-go is more full-fledged and feature-complete.

damntourists commented 10 months ago

Hi there, just curious if you've given this any more thought since 2022? I've been successfully using cimgui-go inside of AllenDang's other wrapper library giu @ https://github.com/AllenDang/giu. In the last month or so they migrated entirely to cimgui-go and most bugs have been ironed out.

gabstv commented 10 months ago

@damntourists I'll give it another look

gabstv commented 10 months ago

I checked AllenDang/cimgui-go#41 (@eliasdaler) and there is a blocking issue there. Cimgui contains embedded glfw dependencies inside its repository. This conflicts with Ebitengine's glfw embedded dependencies.

In my opinion cmigui should not have a rendering backend by default (this is the major point of AllenDang/cimgui-go#41). While that doesn't happen, a fork of AllenDang/cimgui-go would have to be maintained (that excludes the glfw backend code).

I would rather have a less hacky solution, and if cimgui-go decides to officially have a Ebitengine backend, I will point this repo's readme to it (once it's stable).

gabstv commented 10 months ago

Fixed by using a fork of cimgui-go that excludes the incompatible GLFW dependencies. Not the ideal solution, but at least it's better than to rely on the deprecated inkyblackness/imgui-go. Resolved in c89ba28d8812d7108ad0202847c282e5b828bd23