UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    raylib framework - clickable build template pure

    Scheduled Pinned Locked Moved App Development
    7 Posts 2 Posters 1.4k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • WendigoW Offline
        Wendigo
        last edited by

        Hi UBporters,
        I finally managed to get a game engine compiled and running: raylib
        There is just one more problem to solve and this is packaging a raylib example that I previously compiled inside a Libertine container.

        What I have done:

        • Compiled the raylib game framework + the examples inside a Libertine container
        • Copied one of the examples onto my Desktop PC
        • Created a cmake project using clickable (since there is no template for a pure x11 make target)
        • Erased everything except:
          • the assets folder with the icon
          • clickable.json
          • manifest.json
          • apparmor file
          • .desktop file
        • Added the executable (compiled for armhf) to the project folder
        • Changed "template" in clickable.json to "pure"
        • Changed "architecture" in manifest.json to "armhf"
        • Ran "clickable build" and "clickable click-build" (the click package got created without any errors)
        • Copied the click file into the Downloads folder of my phone and installed it via UT Tweak Tool (and terminal after It didn't work - but same result)
        • The install went through without any errors, as far as I can tell the files got copied to their destinations
        • But: The starter doesn't appear on the App Launcher screen, even after several refreshes.

        Did I do something wrong?
        Here is the zipped clickable project file

        1 Reply Last reply Reply Quote 1
        • dobeyD Offline
          dobey
          last edited by

          You mention X11 in your post, but your .desktop file has X-Ubuntu-Touch=True in it. Which is correct? You cannot specify the latter for X11 apps.

          Also, when you install a click package with a desktop hook, a new version of the file matching the package/name/version for your app, in ~/.local/share/applications/. You should check there to ensure it's generated correctly. Judging from your zip file, it seems like your package is simply named "raylibtest" without a proper namespace. The name field in your manifest.json should be a properly namespaced value, such as raylibtest.wendigo.

          WendigoW 1 Reply Last reply Reply Quote 1
          • WendigoW Offline
            Wendigo @dobey
            last edited by Wendigo

            Thanks for your quick response 🙂
            I got it to show up on the launcher screen after removing the "X-Ubuntu-Touch=True" line from the desktop file.
            But it still refuses to run. After installation another desktop file was automatically created:

            Before installation:

            [Desktop Entry]
            Name=raylibdemo
            Exec=raylibdemo
            Icon=assets/logo.svg
            Terminal=false
            Type=Application
            

            After installation:

            [Desktop Entry]
            Name=raylibdemo
            Exec=aa-exec-click -p raylibdemo.wendigo_raylibdemo_1.0.0 -- raylibdemo
            Icon=/opt/click.ubuntu.com/.click/users/phablet/raylibdemo.wendigo/assets/logo.svg
            Terminal=false
            Type=Application
            Path=/opt/click.ubuntu.com/.click/users/phablet/raylibdemo.wendigo
            X-Ubuntu-Old-Icon=assets/logo.svg
            X-Ubuntu-Application-ID=raylibdemo.wendigo_raylibdemo_1.0.0
            X-Ubuntu-UAL-Source-Desktop=/opt/click.ubuntu.com/.click/users/phablet/raylibdemo.wendigo/raylibdemo.desktop
            

            I have to admit that I don't know anything about the commands that were added in the "Exec" parameter automatically (nor about the X-Ubuntu-Touch, X-Ubuntu-XMir-Enable etc. parameters. Is there any documentation about it?)
            When I open a Terminal and try to run the executable from there (./raylibdemo)I get this output:

            INFO: Initializing raylib 2.0
            WARNING: [GLFW3 Error] Code: 65544 Decription: X11: The DISPLAY enviraonment variable is missing
            WARNING: Failed to initialize GLFW
            INFO: [resources/cubimap.png] Image loaded successfully (32x16)
            Segmentation fault
            

            So it seems to be display server related.

            1 Reply Last reply Reply Quote 0
            • dobeyD Offline
              dobey
              last edited by

              Does raylib require X11? If so, then X-Ubuntu-XMir-Enable=True will be required in the .desktop file.

              However, it may still fail to run with that. XMir does not have support for video acceleration on the phones, so if that is required under X11, it won't be very viable here. If instea, raylib is just an abstraction on top of SDL2 or something else which can talk to Mir directly, then it may be possible to use it with accelerated video.

              WendigoW 1 Reply Last reply Reply Quote 0
              • WendigoW Offline
                Wendigo @dobey
                last edited by Wendigo

                I chose Raylib as a test candidate because it is a game library that has no external dependencies and when building it as "Raspberry Pi" target the docs say that no windowing system would be required:
                https://github.com/raysan5/raylib/wiki/raylib-platforms-and-graphics

                PLATFORM_RPI	Raspbian (native)	OpenGL ES 2.0	Runs graphics natively on console, no X11 windowing/inputs system required.
                

                I thought building it for the Pi would be the same as for UT. At least it compiled without errors and ran when I called it from within the Libertine container where I built it (but with bad performance).

                EDIT:
                It still crashes on startup with X-Ubuntu-XMir-Enable=True set.

                1 Reply Last reply Reply Quote 0
                • dobeyD Offline
                  dobey
                  last edited by

                  OK. I took a closer look. It seems like it won't work. I'm not sure what it means when it says "no X11 windowing system is required" there. I suppose it's trying to use the framebuffer device directly, which will not work under Mir either. That seems to be for running it from a console directly, without a windowing system.

                  Without X11, a Mir backend is required to authenticate to the display server and create the buffer for the app to draw on. With X11, GL acceleration will not be possible under Xmir.

                  So it seems like raylib will not be usable for now.

                  1 Reply Last reply Reply Quote 1
                  • WendigoW Offline
                    Wendigo
                    last edited by

                    That's a pity, thank you very much for investigating. 🙂

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post