Skip to main content

Layer-based screen manager for Raspberry Pi and embedded Linux: persistent layers, compositing, and output to DRM/KMS

Project description

drm_screen

Stateful screen manager. Owns persistent layers, composites them into a single frame, and pushes it to drm_display.

Python package: drm_screen.

drm_composer  →  drm_screen  →  drm_display
 scene → cmds     layers →         frame →
                  composited       DRM/KMS
                  frame            pixels
  • Owns layer state (named RGBA buffers: position, z, visibility, opacity)
  • Z-ordered alpha composition → one canvas
  • Exposes the command API that drm_composer targets
  • Dirty-flagged render loop

All buffers are RGBA; the single RGBA→BGRA conversion happens in the backend adapter just before drm_display. It does not parse HTML and does not touch DRM/KMS.

See outline.md for the design.

Install

pip install drm-screen            # also pulls in drm-display
pip install "drm-screen[assets]"  # + pillow, for image/asset loading

Standalone — drm-screen is all you need to manage layers and drive a display.

Part of the drm_stack

Each package installs and runs on its own:

Package Role
drm-composer screen-HTML → layer commands
drm-screen layers → composited frame · this package
drm-display frame → DRM/KMS pixels

Full stack, bootstrap, and integration demo: drm_stack.

License

GPL-3.0-or-later (see LICENSE). Use it freely under the GPL. For proprietary/closed use that cannot comply with the GPL, a separate commercial license is available — contact Carsten Bund carstenbund@gmail.com.

Dependencies are permissive (BSD/MIT) and installed separately; their notices are in THIRD_PARTY_LICENSES.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drm_screen-0.1.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

drm_screen-0.1.0-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file drm_screen-0.1.0.tar.gz.

File metadata

  • Download URL: drm_screen-0.1.0.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for drm_screen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5deb2fcdb7507ce7d7e795c4093dcfeae8c33f8f3333e0b259c85a090f4d0bb8
MD5 af411b7588da50b14fe948da896d46a1
BLAKE2b-256 70e203174e047276d5f5c37f3db4c98f079990441806ed165890ea9cb5cf0d95

See more details on using hashes here.

File details

Details for the file drm_screen-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: drm_screen-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for drm_screen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82a2a2366c75973a1769b18a237443e48891c6c62d372693a202d8a43bc2acb0
MD5 df4019ff2d74eec065661eab6be9082d
BLAKE2b-256 7ac304765cc8759039f47c8106eb0254a12b9d12e817bd19ecce48f9eeea950b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page