BOINC Graphics
Applications can optionally generate graphics, which are displayed
by the core client in either its application (window) or screensaver
(full-screen) form.
The graphics architecture has not been completed. It may differ
between platforms. Some possibilities:
-
Applications render their graphics into an offscreen buffer in
shared memory. The core client or screensaver BLITs this to the screen.
(Problem: no X11 toolkits let you render into memory in the client. Mesa
does, but that forces you to use OpenGL).
-
Applications are passed a window descriptor by the core client
or screensaver. Problem: can you do this in Windows? in X11?
-
Applications encode their rendering in a byte stream of some
sort (OpenGL had something like this), and send if through a pipe to the
core client or screensaver.
-
Applications supply their rendering code in a separate shared
library which is dynamically linked into the core client or screensaver,
and which communicates with the main application through shared memory.
This is how United Devices works. Disadvantage: complex.