Skip to content

michaelforney/libblit

Repository files navigation

libblit

libblit is a small 2D graphics library. It aims to provide an API along the lines of the X11 render extension, Plan 9's libdraw, and Go's image/draw package. Another goal is to provide a common interface that can be used with a variety of windowing systems and rendering systems.

Here are some planned rendering and display mechanisms:

  • Rendering to X11 pixmap with X11 render extension, presented with X11 present extension.
  • Rendering and presenting with Vulkan to VkSurfaceKHR (X11 or Wayland).
  • Rendering to SHM buffer with pixman, exported to X11 pixmap with X11 SHM extension, presented with X11 present extension.
  • Rendering to SHM buffer with pixman, exported to wl_buffer with wl_shm, attached to wl_surface.
  • Rendering to mmapped DRM dumb buffer with pixman, presented directly to display with KMS.
  • Rendering to VkImage imported from gbm_bo created for scanout with GBM, exported to DMA-BUF fd, presented directly to display with KMS.

Current status

libblit is currently in the design/experimentation phase, so none of the API is final and may change dramatically without notice.

Things to figure out

  • Importing/exporting buffers (DMA-BUF, SHM).
  • Synchronization, both internally and DRM syncobj for imported/exported buffers.
  • Format modifier for image creation.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages