Warning, /frameworks/khtml/src/imload/DESIGN.txt is written in an unsupported language. File is not indexed.

0001 0. Goals/Philosophy.
0002 
0003 The basic philosophy behind this library's design is simple: the X server is
0004 a shared resource that multiplexes poorly. Therefore, the server is touched
0005 as late as possible, and X memory is conserved (as is for some things main
0006 memory). This makes the worst case much better, but likely makes the best
0007 case worse.
0008 
0009 1. Planes.
0010 
0011 In displaying images, data has to be moved between client and the server,
0012 and perhaps scaled. The concept underlying this is that of a plane.
0013 The original images data is at the original/source plane, and all the other
0014 planes get the data from it or some other plane. Various scenarios are handled
0015 by stacking planes in a different order.
0016 
0017 e.g., here is how a basic displaying looks:
0018 
0019 RawPixmapPlane
0020      ^
0021      |
0022 RawImagePlane <- - - (data from loader)
0023 
0024 
0025 and a client-side scaling scenario:
0026 
0027 RawPixmapPlane
0028      ^
0029      |
0030 ScaledImagePlane
0031      ^
0032      |
0033 RawImagePlane <- - - (data from loader)
0034 
0035 
0036 All planes above the lowest RawImagePlane treat their data as tiles,
0037 and limit the actual resources they use by using the appropriate tile cache
0038 to allocate them.
0039