openframeworks / openframeworks/openFrameworks

Native windowing for Raspberry Pi 4

Open
#6,713 17 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature linuxarm
Dominant language
C++
Stars
10.4k
Forks
2.6k
Avg merge
1d 21h
Merged PRs (30d)
9

Description

We've had a lot of requests since 0.11.0 for native windowing for Rpi 4.
@jvcleave has an ofxRPI4Window addon which handles just the window ( no mouse / keyboard ) using libdrm.

I recently tried using his window / surface creation from his addon with ofAppEGLWindow.cpp and it works great.
ofAppEGLWindow works fine for Rpi 4 if you sub out the window / display calls from ofxRPI4Window.

Right now ofAppEGLWindow is a bit of a mess because of the split support for X11 and native windowing on older PI devices. I am nervous to add yet another pathway with dependencies for libdrm window creation.

If the window code from https://github.com/jvcleave/ofxRPI4Window could be used for older devices too then it would be cleaner to have the native stuff in ofAppEGLWindow swapped for the DRM code. ( To me that would be ideal )

The other option would be to have something like ofAppDRMWindow which would be similar to ofxRPI4Window but with the event stuff from ofAppEGLWindow. This would add another file to OF and duplicate a lot of code that is already in ofAppEGLWindow.

Would love some thoughts on this.
Tagging @bakercp @jvcleave

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with libs/openFrameworks/app/ofAppEGLWindow.cpp and compare its existing X11 and native Raspberry Pi paths with the window and surface creation in the linked ofxRPI4Window addon. First determine whether the DRM approach can cover older devices or requires a separate ofAppDRMWindow; done means an agreed implementation direction for Raspberry Pi 4 native windowing, including event handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, raspberry-pi
Domain
desktop, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.