lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 11/15/16, Bulat Ziganshin <bulat.ziganshin@gmail.com> wrote:
> Hello Eric,
>
> Friday, November 4, 2016, 5:52:37 AM, you wrote:
>
>> probably not something you guys want to venture in to. I would suggest
>> that IUP is small enough and useful enough that your engineers might
>> see it as plausible. (As a data point, I recently did a tiiny Qt app.
>> After fighting a ton of platform specific bugs in the SDK, it was
>> about 60MB of Qt binaries on my Mac. And it failed to work on a
>> Raspberry Pi due to the way they try to use OpenGL. I wrote an
>> equivalent IUP program. The IUP library was about 800KB.)
>
> are you seen "Dear ImGui"? the entire program, consisting of library
> plus a demo of its *every* feature, can be compiled down to 250 KB
>
> You can download precompiled windows binaries from author:
> http://www.miracleworld.net/imgui/binaries/imgui-demo-binaries-20161113.zip
>
> or compile demos yourself:
> https://github.com/ocornut/imgui/tree/master/examples
>
> Bindings/backends list is here:
> https://github.com/ocornut/imgui/wiki/Links
>
>
>
>
> --
> Best regards,
>  Bulat                            mailto:Bulat.Ziganshin@gmail.com
>
>

Hi Bulat,
Thank you for your response.

Yes, I have seen Dear ImGUI. I'm actually using a similar one called
Nuklear for several  projects. (You can briefly see an elaborate GUI
in the project I show at the very end of my JavaScript talk at the
LuaWorkshop this year when it goes up. The GUI is Nuklear based.)

The problem with both of these are they aren't native UI. While this
can be acceptable for games, for other classes of apps, there are huge
trade offs. In my aforementioned program, I actually have to jump
through hoops to use native file dialogs (because sandboxing on
platforms like Mac requires you to go though native), touch screen
virtual keyboard handling, performance and battery consumption
concerns on mobile devices, and a few other things...and this was a
relatively game-like friendly type of application. But for other
applications, as much as I like these, it's not always the right tool.

A more specific problem with ImGUI is that it is C++. (Incidentally,
if you see my JavaScript talk, I have a section on the problems of
using C++ for library development.) And for language bindings, C++ is
a much harder chore. I know there is an unofficial C binding for
ImGUI, but I've been warned away of it. Both Nuklear and IUP are C.

So I promote IUP because it provides native UI with a pure C API (and
C core backend) and was designed with language bindings in mind, and
it is still relatively small/lightweight.


Thanks,
Eric