Announcement

Collapse
No announcement yet.

Ultra App Kit 1.1 Released As New Cross-Platform UI Toolkit

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Originally posted by evil_core View Post
    It's dual licensed. you can use LGPL and link dynamically in proprietary software.

    It has been LGPL since aqcuired by Nokia, so RTFM and please don't spread FUD.

    https://www.qt.io/licensing/
    No evil_core there is a problem with LGPL and with dynamically linking with closed source game developers and anti-cheat logic. Really static linked as long as end user and relink is technically legal with LGPL as well. Lot of GUI intended for game development if open source are MIT or BSD or something like it where they can be linked into the executable with no requirement that the end user has the rights to change them. Think about it if you could replace the graphic GUI library with a hacked version you can get up to a lot of mischief with a game. To have a license of qt where you don't have allow relink or dynamic loader by end user does cost a bit.

    Of course now that we are seeing computer vision controlled computers/consoles starting to happen client side anti-cheat protections(this includes static linking the GUI in) are really losing their effectiveness. So over the next decade the importance of not being dynamically linked may disappear for game developers.

    Comment


    • #22
      Originally posted by V1tol View Post

      Kotlin/Native can be used from C. Swift also has some tricks (though unofficial). Don't see any problem to do that if you don't want to tinker with that monster called C++
      Is Kotlin able to output C libraries? I know about cinterop, but it works the other way, letting Kotlin use C libraries.

      Originally posted by V1tol View Post
      The reason I am using Rust right now - it fits everywhere, from NodeJS native plugin to iOS dylib
      The point is that Rust has been designed to work this way. One of the requirements is to be 100% interoperable with C/C++ libraries.

      Comment


      • #23
        Originally posted by pabloski View Post
        Is Kotlin able to output C libraries? I know about cinterop, but it works the other way, letting Kotlin use C libraries.
        https://kotlinlang.org/docs/native-d...kotlin-library
        Yes you can have Kotlin make a native C/C++ usable library. But the when using them from C or C++ really do make you want to harm someone due to all the wrapper code you have todo to use use one kotlin function. Yes you cannot use normal platform library open functions like dlopen you have to be using kotlin particular functions.

        pabloski basically this works in theory but if you want sanity it does not.

        Comment


        • #24
          For those discussing Kotlin/Native

          I have been in development of a Kotlin/Native GTK library

          https://github.com/Doomsdayrs/kotlinx-gtk


          I'll just say that, what it takes for c++ to do in 50 lines is 10 lines in Kotlin

          Comment


          • #25
            Originally posted by Doomsdayrs View Post
            For those discussing Kotlin/Native

            I have been in development of a Kotlin/Native GTK library

            https://github.com/Doomsdayrs/kotlinx-gtk

            I'll just say that, what it takes for c++ to do in 50 lines is 10 lines in Kotlin
            That going from Kotlin to a native C library. Now when you make a native Kotlin library and attempt to use it in a C/C++ program it turns to hell. Lot of ways it does not really have to.

            Comment


            • #26
              Originally posted by oiaohm View Post

              That going from Kotlin to a native C library. Now when you make a native Kotlin library and attempt to use it in a C/C++ program it turns to hell. Lot of ways it does not really have to.
              Why would you ever use a kotlin native library in C/C++?

              The plan of creating a Kotlin/Native library is to eventually loop into KMP and integrate with other languages.

              Comment


              • #27
                Hi, I am the developer of Ultra App Kit and Leadwerks. When I started working on my new 3D engine I surveyed all the available GUI toolkits out there and could not find anything that met my needs. ImGUI is designed for games and renders in immediate mode, meaning that the entire interface is drawn each frame. A GUI designed for desktop applications will typically use something called retained mode, which means that great care is taken to ensure that only the region of the screen that has been "corrupted" gets redrawn. This makes an interface using retained mode drawing will be extremely snappy and responsive to mouse input and resize events, which was important for my purposes.

                I opted to use the low-level OS drawing commands (XRender / GDI+ / Quartz) for a few reasons:
                • Vulkan initialization can take a few seconds and I wanted applications to start instantly.
                • Any time you do "2D GUI in a 3D viewport" there are always small graphical glitches and window resizing tends to suffer from slow redraw speeds, since you have to initialize a new swap chain at each resolution.
                • I wanted applications to be able to run without graphics drivers installed and with minimal dependencies. For example, in my work at NASA I can't count on the latest graphics drivers being installed on all the machines I want to deploy applications to.
                I've been waiting for Wayland for a long time, but I don't feel it is quite ready yet. Ubuntu 20.04 still defaults to X11, at least on my machine, so I decided to release this now with X11 so it will work on any distro. I am definitely interested in switching over to Wayland when the time is right.

                Comment


                • #28
                  What is the licensing? I see nothing on the web site. If users can't see their code, I assume it's not open source compatible....

                  Comment


                  • #29
                    Originally posted by oiaohm View Post

                    https://kotlinlang.org/docs/native-d...kotlin-library
                    Yes you can have Kotlin make a native C/C++ usable library. But the when using them from C or C++ really do make you want to harm someone due to all the wrapper code you have todo to use use one kotlin function. Yes you cannot use normal platform library open functions like dlopen you have to be using kotlin particular functions.

                    pabloski basically this works in theory but if you want sanity it does not.
                    So there is a catch that makes it practically unusable. I was thinking about how name mangling is handled, then reading the article you have posted, I see they use a very strange solution...embedding everything into nested structs. I don't know if it is a good idea or a nightmare.

                    It would be interesting to have a tool like Shiboken, the binding generator for PyQt/PySide. At least it would make generating bindings easier.

                    Comment


                    • #30
                      Originally posted by darkoverlordofdata View Post
                      What is the licensing? I see nothing on the web site. If users can't see their code, I assume it's not open source compatible....
                      Sorry about that. I updated the product pages in the store to include a link to the EULA. Use it for commercial products with no royalties due, ever. Basically, the only restriction is you cannot make a GUI toolkit with my GUI toolkit. (This kind of thing does happen with game engines if it is not explicitly forbidden.)

                      It is completely possible to make an open-source project with Ultra App Kit if the UAK libraries and headers are not distributed with your source code, so that it requires a UAK license to compile. Depending on your usage that might or might not be appealing, but it is doable.

                      Comment

                      Working...
                      X