The attached patch is a port of WireGL's distributed
texture map feature: when calling glTexImage2D,
the following are now valid values for the "type"
argument (in addition to GL_UNSIGNED_BYTE, ... ):
- GL_TRUE: indicates that the pixels are of type
GL_UNSIGNED_BYTE, but are prefixed with a
null-terminated string containing a _relative_
filename in which to store the pixel data. The
data need not be sized to a power of two.
- GL_FALSE: indicates that the pixels array contains
only a filename. Pixel data is obtained by reading
the file (it must be a binary ppm file for now). If
the image in the file is not sized to a power of
two along each axis, it will be padded.
These two modes allow the NCSA pixel blaster (named
npb and located at
to play large movies by distributing the data across
machines using the GL_TRUE argument (to write tiled
portions of movie frames to local disks) and then
GL_FALSE to play back with low network traffic
(assuming you wrote the textures to a local disk :-).
In addition to the attached patch, you must add
the spu/render/renderspu_texture.c file, which is
not in CVS. It should appear shortly as a separate