Open pthom opened 4 years ago
Nice work! Would be nice to have the ImGui Metal backend enabled as well.
Nice work! Would be nice to have the ImGui Metal backend enabled as well.
Thanks! I will have a look at metal. It's a bit complex, since it requires additional tweaking for the storyboards.
However the doc in imgui_impl_osx.h inside ImGui repo advises to prefer SDL or GLFW on Mac.
That statement in the comment is very true ~ Metal isn't portable but OpenGL is. Sadly Apple's deprecation of OpenGL makes the imgui_impl_osx.h advice not so great as time goes on!
Anyway, thanks again for putting your project together!
Another demo with Hello ImGui, showcasing implot is available here
The source code for the demo is at: https://github.com/pthom/implot_demo
It was introduced in this issue
Very nice work for rapid C++ GUI developments. I think a Vulkan backend can be useful since it can run on all platforms including the macOS with MoltenVK.
Very nice work for rapid C++ GUI developments. I think a Vulkan backend can be useful since it can run on all platforms including the macOS with MoltenVK.
Thanks! Concerning Vulkan, I do not have experience on this framework. I know it is quite more complex than OpenGL. Let's hope someone helps on this in the future!
Dear Imgui is a beautiful piece of code that deserves much more love than it gets, it's mature and poised to become the backbone of a modern, liberally licensed, general application framework. You've done a great job with the cross platform scaffolding and I'm curious if you plan to add any other components like notifications, screen rotation, camera access, or audio. I know that any framework can become a bottomless pit and each project has to draw the line somewhere. I'm curious about your thoughts...
You've done a great job with the cross platform scaffolding and I'm curious if you plan to add any other components like notifications, screen rotation, camera access, or audio. I know that any framework can become a bottomless pit and each project has to draw the line somewhere. I'm curious about your thoughts...
Many thanks (and sorry for the delay, I was on holiday)! My original intent when working on this project was to provide a jump start framework for rapid prototyping of research and computer vision applications, especially on mobile platforms.
So let me answer straight. I would like to add the following features to the project:
Notifications, Audio & screen rotation are not on my main list at the moment (but I welcome PR in that direction).
Great thanks. I'm looking at this as a rapid prototype framework as well. (My use case is cross platform audio applications...)
Having thought about this for a while, I think audio should remain separate to to keep it lean and allow more choice... (MiniAudio and SoLoud are probably the best paring - both MIT/Zlib license)
If you're going to do gyro access then screen rotation is probably trivial once you get there. The resizability on web targets already proves that resizing should not be difficult. I imagine we'll see a Gist on this before this thing is overly mature.
I actually think the same about camera and gyro access: a separate repo is a better idea. I think I will create an external project that would allow camera and gyro access, and that will use this project as a submodule.
BTW: I notice the Sokol Dear Imgui Demo produce WASM binaries are a magnitude smaller... (523kb vs 1.4Mb) My guess is that's because of SDL is heavy compared to Sokol. But that's about a 3-4 seconds savings in startup which is very a big deal on the web...
When comparing this GUI framework to QT and wxWidgets a few thoughts come to mind: Hello ImGui is more portable, less bloated and more powerful than any of those options. This project is now my go-to answer when beginners ask me how to create a "hello world" graphical project in C++. At the same time, this project is my go-to solution when I need to create a professional realtime visualization software for an electronics instruments company. Being able to set up a C++ GUI project with 6 lines of code is something that has never existed before, an innovation. To put this into perspective: QT charges a minimum of $302 per developer per month, whereas this library is MIT and is totally better than QT. With this library I can use the IDE of my choice, and it doesn't take over my code. QT is so evil, wxWidgets is a hassle to set up and it's so bloated and buggy. This project is now only professionally executed with documentation and everything, but is also totally called for and necessary in this day and age of web taking over everything.
Maybe we can do something with Imgui File Dialog? like reading a file that has file content "Hello World" and printing it into the imgui window.
@JunedKhan101 : Hello ImGui does not include ImGui file dialog. However Dear ImGui Bundle which is based on it provides it, as well as many widgets. You might want to take look at it.
I needed to make a quick GUI to inspect some of my research results and this (bundled with Dear ImGui Bundle), made my life so much easier. Two things that would make it even better for me:
I've been playing with hello_imgui. I really like the ambition of this project. To provide feedback; I had a hard time mixing it with the workflow of Dear ImGui. Dear ImGui is programmed in C++ but has a more C-like no-nosense API. Hello ImGui has a very C++/OO API which feels very alien when compared to Dear ImGui. So although it's handy to jumpstart when I need more specifics I tempt to move back to the Dear ImGui examples and work from there then to jump into the abstractions of Hello ImGui. I would have liked the Hello ImGui to follow the same paradigm as Dear imGui because I think that's where the strength is. But that's just my 2 cents.
I've been playing with hello_imgui. I really like the ambition of this project.
Hello, and thank you for your feedback!
Hello ImGui has a very C++/OO API which feels very alien when compared to Dear ImGui. So although it's handy to jumpstart when I need more specifics I tempt to move back to the Dear ImGui examples and work from there then to jump into the abstractions of Hello ImGui. I would have liked the Hello ImGui to follow the same paradigm as Dear imGui because I think that's where the strength is. But that's just my 2 cents.
I can understand your point. However, I would not say that Hello ImGui uses an object oriented API: all the parameters you see in the API are just Plain Old Data structs, with no methods and no inheritance whatsoever.
The difference from Dear ImGui is that RunnerCallbacks uses C++ function pointers instead of C function pointers. This is to address the standard shortcomings of C functions pointers (where no context can be passed, except may be with a void*
pointer, which I really wanted to avoid).
Constructive feedback is always welcome!