Skip to content
Jan Wielemaker edited this page May 19, 2025 · 7 revisions

Porting xpce to SDL and Cairo

This wiki is not (yet) about XPCE in general. It is about modernising XPCE. The project addresses three issues

  • Portability Get rid of the fading X11 and Win32 GDI dependencies, replacing them by SDL3 for window and multimedia management and Cairo for 2D window content. This will notably produce a native version for MacOS cacao, getting rid of the need for XQuartz.
  • Modern graphics Exploit Cairo for proper device independent rendering, transparency and matrix-based transformations (scale, rotate, sheer).
  • Merge xpce-win Integrate xpce-win, currently a Win32+GDI (Windows) or Qt (MacOS, Linux) into XPCE. This provides portability and reduces dependencies. At the same time, it provides a more uniform environment for SWI-Prolog.

Help welcome

This is a significant project. All help to make this work is welcome.

  • Consider becoming a sponsor
  • If GitHub sponsoring is complicated, contact jan@swi-prolog.org. We can accept direct sponsoring and provide you with an invoice when needed.
  • Coding help is also welcome. Mainly requires experience in C programming. Contact me if you have plans so that we can coordinate first.
  • Testing, evaluation, etc. Think about realizing a test suite. Requires Prolog programming. Just populating a list of bugs is of value as well!
  • If you have talents in graphical design, please help getting a good set of icons for the IDE tools and make suggestions for improving the widgets.
  • Reviving the documentation is another big task. As is, there is a LaTeX user guide and course as well as a reference manual built-in in the form of cards.

Project details

Clone this wiki locally