mirror of https://github.com/BOINC/boinc.git
40 lines
1.1 KiB
HTML
40 lines
1.1 KiB
HTML
|
<h2>Graphics</h2>
|
||
|
|
||
|
<p>
|
||
|
Applications can optionally generate graphics,
|
||
|
which are displayed by the core client in either
|
||
|
its application (window) or screensaver (full-screen) form.
|
||
|
|
||
|
<p>
|
||
|
The graphics architecture has not been completed.
|
||
|
It may differ between platforms.
|
||
|
Some possibilities:
|
||
|
<ul>
|
||
|
<li>
|
||
|
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).
|
||
|
|
||
|
<li>
|
||
|
Applications are passed a window descriptor by the
|
||
|
core client or screensaver.
|
||
|
Problem: can you do this in Windows? in X11?
|
||
|
|
||
|
<li>
|
||
|
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.
|
||
|
|
||
|
<li>
|
||
|
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.
|
||
|
|
||
|
</ul>
|