The frame background can have transparency, at least for the JAVA2D / “default” renderer in Processing. Here’s a post the question of which shows code for doing so:
I had myself used this technique many months ago, and it works nicely! I don’t know if the code in the aforementioned post still works as expected, but feel free to ask me for my old code if it doesn’t.
Hello there…
…Iiiiiiiii know it has been 6 months, but it’s important that I write the answer here even though I’m this terribly late. At least for future readers.
…
Steps on how I did that back then:
Use the JAVA2D renderer in your call to size(),
Now we write some Java AWT code!
Get the AWT JFrame from your Processing sketch by using PApplet::getSurface(), then calling PSurface::getNative() on it, and casting it to a JFrame.
Give it a transparent background using JFrame::setBackground(). Pass a new Color(0, 0, 0, 1) into it. I think this has to be repeated in PApplet::draw().
Call JFrame::setOpacity() with 0.5f or a similar value. Setting the alpha in the background-color to 1 in the [1, 255] range that AWT accepts is enough only on Windows; opacity control is required everywhere else. It’s just neater to use it anyway…!
I also realized that I essentially re-created Processing’s event-handling using AWT listeners, but in a poorer manner - one that does not consider using PApplet::handle*Event() methods. That part is apparently entirely useless!
All we’re doing here is literally “[busy-]waiting” until the GLWindowis fullscreen. Tracking time.
…Like every other time, here’s a simpler Processing sketch that should get you started [and done!]: