mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-25 11:22:50 +00:00
40 lines
1.1 KiB
Text
40 lines
1.1 KiB
Text
![]() |
0. Goals/Philosophy.
|
||
|
|
||
|
The basic philosophy behind this library's design is simple: the X server is
|
||
|
a shared resource that multiplexes poorly. Therefore, the server is touched
|
||
|
as late as possible, and X memory is conserved (as is for some things main
|
||
|
memory). This makes the worst case much better, but likely makes the best
|
||
|
case worse.
|
||
|
|
||
|
1. Planes.
|
||
|
|
||
|
In displaying images, data has to be moved between client and the server,
|
||
|
and perhaps scaled. The concept underlying this is that of a plane.
|
||
|
The original images data is at the original/source plane, and all the other
|
||
|
planes get the data from it or some other plane. Various scenarios are handled
|
||
|
by stacking planes in a different order.
|
||
|
|
||
|
e.g., here is how a basic displaying looks:
|
||
|
|
||
|
RawPixmapPlane
|
||
|
^
|
||
|
|
|
||
|
RawImagePlane <- - - (data from loader)
|
||
|
|
||
|
|
||
|
and a client-side scaling scenario:
|
||
|
|
||
|
RawPixmapPlane
|
||
|
^
|
||
|
|
|
||
|
ScaledImagePlane
|
||
|
^
|
||
|
|
|
||
|
RawImagePlane <- - - (data from loader)
|
||
|
|
||
|
|
||
|
All planes above the lowest RawImagePlane treat their data as tiles,
|
||
|
and limit the actual resources they use by using the appropriate tile cache
|
||
|
to allocate them.
|
||
|
|