Juce without X11

Is there a way to use juce with barebone desktopless devices?

Goal is to run a juce application barebone, at best case based with DRM/GBM/EGL OpenGLES context

I did not find yet any information if there is a way to make it happen or not at any mean.

There was a post which mentioned to subclass ComponentPeer - however, it’s not obvious to me if this can be an option for what i seek for as noted above.

1 Like

do you mean console app? then - yes
or you can write your own GUI and include required JUCE stuff
another example GitHub - Krasjet/imgui_juce: JUCE backend for Dear ImGui

No, not a console app, but an GUI app without the dependency on X11

On the targeted device i’ve a Linux with GPU (DRM/GBM/ Mesa OpenGLES) which should be used.
Current implementation’s GUI directly uses the framebuffer (/dev/fb0) but should be switched to the GPU to offload rendering tasks.
As juce offers many other things I may can leaverage from, it’s worth to understand if there is a way to use it.

JUCE can be told to use hardware acceleration if its available, see the OpenGL tutorial [1] …

However, this is not quite what you’re asking - you seem to want to not use JUCE’s X11 client implementation - maybe you want to just use the raw Linux framebuffer device, in which case you’d have to take the existing JUCE X11 implementation and refactor it to use a raw framebuffer device, perhaps using SDL2 or something?

This is wraught with potential issues, but not an entirely unproductive effort - it would mean you could bundle a JUCE application/plugin on an embedded device without having to budget for huge RAM on the BOM just to run X11 …

As someone who has also been quite interested in using JUCE for embedded (see also the LMN3-DAW [2] project, which is just freakin’ awesome), this is quite interesting …

[1] - JUCE: Tutorial: Build an OpenGL application
[2] - GitHub - FundamentalFrequency/LMN-3-DAW: LMN-3 DAW