home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
InfoMagic Source Code 1993 July
/
THE_SOURCE_CODE_CD_ROM.iso
/
X
/
mit
/
doc
/
CLX
/
s07.doc
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
Interleaf document
|
1989-10-18
|
37.8 KB
|
1,362 lines
<!OPS, Version = 5.2>
<!Document,
Print Rev Bars = no,
Final Output Device = "ps",
Default Printer = "nearest-adps">
<!Font Definitions,
F2 = Times 10 Italic,
F3 = Times 10,
F4 = Times 8 Italic,
F5 = Times 18 Bold,
F6 = Times 10 Bold,
F7 = Times 12 Bold,
F8 = Symbol_B 8>
<!Page,
Bottom Margin = 1 inches,
Left Margin = 1 inches,
Right Margin = 1.15 inches,
First Page = Right,
Starting Page # = Inherit,
Page # Prefix = "7<#1e>",
Hyphenation = on,
Consecutive Hyphens = 2,
Vert. Just. = off>
<!Autonumber Stream, List, 2,
Level 2 Suffix = ,
Level 2 Starting Value = 0,
Level 2 Show = no>
<!Autonumber Stream, Outline, 3,
Level 1 Symbol Type = UPPER ROMAN,
Level 2 Symbol Type = UPPER ALPHA>
<!Autonumber Stream, figure, 2,
Level 1 Prefix = "Figure ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = ,
Level 2 Starting Value = 0,
Level 2 Show = no>
<!Autonumber Stream, figurelet, 2,
Level 1 Symbol Type = UPPER ALPHA,
Level 1 Prefix = "Figure ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = "<#04>">
<!Autonumber Stream, invisible, 1,
Level 1 Suffix = ,
Level 1 Show = no>
<!Autonumber Stream, item, 2,
Level 2 Symbol Type = LOWER ALPHA,
Level 2 Trail = yes>
<!Autonumber Stream, paralet, 4,
Level 1 Symbol Type = UPPER ALPHA,
Level 1 Suffix = ,
Level 1 Show = no,
Level 2 Prefix = .,
Level 2 Suffix = ,
Level 3 Prefix = .,
Level 3 Suffix = ,
Level 4 Prefix = .,
Level 4 Suffix = >
<!Autonumber Stream, paranum, 4,
Level 1 Suffix = ,
Level 1 Show = no,
Level 2 Prefix = .,
Level 2 Suffix = ,
Level 3 Prefix = .,
Level 3 Suffix = ,
Level 4 Prefix = .,
Level 4 Suffix = >
<!Autonumber Stream, table, 2,
Level 1 Prefix = "Table ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = >
<!Autonumber Stream, tablelet, 2,
Level 1 Symbol Type = UPPER ALPHA,
Level 1 Prefix = "Table ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = "<#04>">
<!Class, arg,
Bottom Margin = 0.08 inches,
Left Margin = 1.85 inches,
First Indent = -0.25 inches,
Line Spacing = 1.121 lines,
Font = F2,
Left Tab = -0.25/0 inches>
<!Class, bullet,
Bottom Margin = 0.153 inches,
Left Margin = 1.85 inches,
First Indent = -0.25 inches,
Line Spacing = 1.121 lines,
Font = F3,
Allow Page Break Within = no,
Left Tab = -0.50/0 inches>
<!Class, caption,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Font = F4>
<!Class, fig,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Alignment = Left,
Font = F5>
<!Class, p1para,
Bottom Margin = 0.153 inches,
Left Margin = 1.60 inches,
First Indent = -1.60 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F3,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -1.70/0 inches>
<!Class, p1rule,
Bottom Margin = 0 inches,
Line Spacing = 1 lines,
Font = F3,
Hyphenation = off,
Allow Page Break After = no,
Left Tab = 0/0.75*13 inches>
<!Class, p1stacked,
Bottom Margin = 0 inches,
Left Margin = 1.60 inches,
First Indent = -1.60 inches,
Line Spacing = 1 lines,
Font = F3,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -1.60/-0.17/0 inches>
<!Class, p2para,
Bottom Margin = 0.153 inches,
Left Margin = 1.60 inches,
First Indent = -1.60 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F3,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = 0 inches,
Right Tab = -1.60/-0.17 inches,
TOC Doc Name = TOC>
<!Class, p2rule,
Bottom Margin = 0 inches,
Left Margin = 1.60 inches,
Line Spacing = 1 lines,
Alignment = Left,
Font = F3,
Hyphenation = off,
Allow Page Break After = no,
Left Tab = 0/0.75*13 inches>
<!Class, p2stacked,
Bottom Margin = 0 inches,
Left Margin = 1.60 inches,
First Indent = -1.60 inches,
Line Spacing = 1.121 lines,
Font = F6,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = 0 inches,
Right Tab = -1.60/-0.17 inches>
<!Class, para,
Bottom Margin = 0.153 inches,
Left Margin = 1.60 inches,
Line Spacing = 1.121 lines,
Font = F3,
Allow Page Break Within = no,
Left Tab = 0/0.75*13 inches>
<!Class, return,
Bottom Margin = 0.077 inches,
Left Margin = 1.60 inches,
First Indent = -0.90 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F6,
Hyphenation = off,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -0.90/0 inches,
Right Tab = 7.50 inches>
<!Class, secno,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Alignment = Left,
Font = F5,
Autonumber Name = paranum>
<!Class, secrule,
Bottom Margin = 0 inches,
Line Spacing = 1 lines,
Font = F3,
Hyphenation = off,
Allow Page Break After = no,
Left Tab = 0/0.75*13 inches,
Autonumber Name = table>
<!Class, sectitle,
Bottom Margin = 0 inches,
Line Spacing = 1 lines,
Alignment = Right,
Font = F5,
Hyphenation = off,
New Page = yes,
Left Tab = 0/0.75*13 inches>
<!Class, syntax,
Bottom Margin = 0.077 inches,
Left Margin = 1.60 inches,
First Indent = -0.90 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F6,
Hyphenation = off,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -0.90/0 inches,
Right Tab = 8 inches>
<!Class, syntax0,
Bottom Margin = 0 inches,
Left Margin = 1.60 inches,
First Indent = -0.90 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F6,
Hyphenation = off,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -0.90/0 inches,
Right Tab = 8 inches>
<!Class, "table",
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Font = F6,
Autonumber Name = table>
<!Class, title,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Alignment = Right,
Font = F5,
TOC Doc Name = TOC>
<!Master Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 0.41 inches,
Height = 0.137 inches,
Vertical Alignment = 0.03 inches,
Diagram =
V4,
(g9,32767,0
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<!Master Frame,
Name = p2rule,
Placement = At Anchor,
Width = 4.75 inches,
Height = 0.15 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes,
Diagram =
V4,
(g9,1,0
(v4,1,0,4.733333,0.066611,0.006667,0.066723,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<First Page Header, Frame =
V4,
(g9,0,0
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,1,1,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Right Page Header, Frame =
V4,
(g9,1,0
(T8,1,12,4.533333,0.306667,1.8,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,
102,1101,2,
<caption,
Alignment = Right>
Images
<End Text>)
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Left Page Header, Frame =
V4,
(g9,1,0
(T8,1,12,0,0.293333,2.4,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110
1,2,
<caption>
Images
<End Text>)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Right Page Footer, Frame =
V4,
(g9,1,0
(t8,1,4,6.333333,0.266667,2,17,@nntimsps10b,\240)
(t8,2,4,0.006667,0.266667,0,17,@nntimsps8i,CLX\ Programmer's\ Reference)
(v4,3,0,0,0.066667,6.333333,0.066554,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Left Page Footer, Frame =
V4,
(g9,1,0
(t8,1,4,0,0.266667,0,17,@nntimsps10b,\240)
(t8,2,4,6.333333,0.266667,2,17,@nntimsps8i,CLX\ Programmer's\ Reference)
(v4,3,0,0.026667,0.066667,6.333333,0.066554,17,2,0)
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<sectitle,
Allow Page Break Within = no,
Allow Page Break After = no>
<|,"7<#1e>81">
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 4.72 inches,
Height = 0.94 inches,
Vertical Alignment = 0.03 inches,
Diagram =
V4,
(g9,1,0
(T8,1,12,0.133333,0.72,4.563333,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512
,102,1101,3,
<title>
IMAGES
<End Text>)
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 1.626 inches,
Height = 0.938 inches,
Vertical Alignment = 0 inches,
Diagram =
V4,
(g9,1,0
(T8,1,12,0.066667,0.276667,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
2,1101,3,
<secno,
TOC Doc Name = TOC>
<Autonum, paranum, 1, First = Yes>
<End Text>)
(T8,2,12,0.026667,0.733333,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
2,1101,3,
<"table">
<Autonum, table, 1, First = Yes>
<End Text>)
(T8,3,12,0.066667,0.6,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110
1,3,
<fig,
Alignment = Both,
Font = F6,
Autonumber Name = figure>
<Autonum, figure, 1, First = Yes>
<End Text>)
(g9,5,0
(p7,5,8,19
(g9,5,0
(g9,5,0
(v4,5,0,0.266667,0,1.6,0,17,1,0)
(v4,6,0,1.6,0,1.6,0.933333,17,1,0)
(v4,7,0,1.6,0.933333,0.266667,0.933333,17,1,0)
(v4,8,0,0.266667,0.933333,0.266667,0,17,1,0))))
(g9,10,8
(p7,10,1032,13
(g9,10,0
(g9,10,0
(v4,10,0,1.183159,0.934816,1.497546,0.296785,17,1,0)
(v4,11,0,1.497546,0.296785,1.497546,0.146666,17,1,0)
(v4,12,0,1.497546,0.146666,0.846316,0.146666,17,1,0)
(v4,13,0,0.846316,0.146666,0.846316,0.371849,17,1,0)
(v4,14,0,0.846316,0.371849,1.04842,0.371849,17,1,0)
(v4,15,0,1.04842,0.371849,1.04842,0.296785,17,1,0)
(v4,16,0,1.04842,0.296785,1.29544,0.296785,17,1,0)
(v4,17,0,1.29544,0.296785,0.981051,0.934816,17,1,0)
(v4,18,0,0.981051,0.934816,1.183159,0.934816,17,1,0))))
(g9,19,2048
(v4,19,33,0.846316,0.146666,0.846316,0.146666,17,0,0)
(v4,20,33,0.846316,1.16,0.846316,1.16,17,0,0)
(v4,21,33,1.52,1.16,1.52,1.16,17,0,0)
(v4,22,33,1.52,0.146666,1.52,0.146666,17,0,0))))
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<secrule,
Allow Page Break Within = no,
Allow Page Break After = yes,
Autonumber Name = >
<Index, "image", To Named = sectitle>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Diagram =
V4,
(g9,1,0
(v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<p1para,
Alignment = Both,
Allow Page Break After = yes>
<F7>Introduction<Tab><F6>7.1<F0><#04>The X protocol provides for
the transfer of images (two<#1e>dimensional arrays<SP>of pixel data)
between a client program and a <F6>drawable<F0>. The format for<SP>image
data can vary considerably. In order to present a uniform data<SP>representatio
n for the manipulation of a variety of images, CLX defines a<SP>special <F6>im
age<F0> data type. Additional <F6>image<F0> subtypes <#1f> <F6>image<#1e>xy
<F0> and <F6>image<#1e>z<F0><SP><#1f> allow for the representation
of an image either as a sequence of bit<SP>planes or as an array of
pixels. CLX includes functions for accessing <F6>image<F0><SP>objects;
for transferring image data between <F6>image<F0> objects, <F6>drawables
<F0>, and<SP>files; and also for direct transfer of raw image data.
<p1rule>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Diagram =
V4,
(g9,1,0
(v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<p1para,
Alignment = Both,
Allow Page Break After = yes>
<F7>Image Types<Tab><F6>7.2<F0><#04>The <F6>image<F0> data type
is the base type for all <F6>image<F0> objects. <F6>image<#1e>xy<F0>
and <F6>image<#1e>z<F0> are subtypes of the <F6>image<F0> type
which furnish accessors specialized for different image representations.
<p2rule>
<Frame,
Name = p2rule,
Placement = At Anchor,
Width = 4.75 inches,
Height = 0.15 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p2para,
Alignment = Both,
Allow Page Break Within = yes,
Allow Page Break After = yes,
TOC Doc Name = >
<Tab><F6>Basic Images<Tab>7.2.1<F0><#04>The following paragraphs
describe the CLX functions that can be used to access all types of <F6>image
<F0> objects.
<syntax0>
image<#1e>blue<#1e>mask<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>blue<#1e>mask", Sort String = "image<#1e>blue<#1e>mask">
<return>
<Tab><F3>Returns: <F2><HR>
mask<F3> <#1f> Type <F0>pixel<F3> or <F0>null<F3>.
<para>
Returns (and with <F6>setf<F0>) changes the <F2>mask<F0> that
selects the pixel subfield<SP>for blue intensity values. The <F2>mask<F0>
is non<#1e><F6>nil<F0> only for images for<SP><F6>:direct<#1e>color<F0>
or <F6>:true<#1e>color<F0> visual types.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>depth<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>depth", Sort String = "image<#1e>depth">
<return>
<Tab><F3>Returns: <F2><HR>
depth<F3> <#1f> Type <F0>card8<F3>.
<para>
Returns the <F2>depth<F0> (that is, the number of bits per pixel)
for the <F2>image<F0>.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>green<#1e>mask<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>green<#1e>mask", Sort String = "image<#1e>green<#1e>mask">
<return>
<Tab><F3>Returns: <F2><HR>
mask<F3> <#1f> Type <F0>pixel<F3> or <F0>null<F3>.
<para>
Returns (and with <F6>setf<F0>) changes the mask that selects the
pixel subfield<SP>for green intensity values. The mask is non<#1e><F6>nil
<F0> only for images for<SP><F6>:direct<#1e>color<F0> or <F6>:true<#1e>colo
r<F0> visual types.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0,
New Page = yes>
<|,"7<#1e>82">image<#1e>height<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>height", Sort String = "image<#1e>height">
<return>
<Tab><F3>Returns: <F2><HR>
height<F3> <#1f> Type <F0>card16<F3>.
<para>
Returns the <F2>height<F0> of the <F2>image<F0> in pixels.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>name<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>name", Sort String = "image<#1e>name">
<return>
<Tab><F3>Returns: <F2><HR>
name<F3> <#1f> Type <F0>stringable<F3> or <F0>null<F3>.
<para>
Returns and (with <F6>setf<F0>) changes the <F2>name<F0> string
optionally associated with<SP>the <F2>image<F0>.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>plist<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>plist", Sort String = "image<#1e>plist">
<return>
<Tab><F3>Returns: <F2><HR>
plist<F3> <#1f> Type <F0>list<F3>.
<para>
Returns and (with <F6>setf<F0>) changes the <F2>image<F0> property
list. The property list<SP>is a hook for added application extensions.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>red<#1e>mask<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>red<#1e>mask", Sort String = "image<#1e>red<#1e>mask">
<return>
<Tab><F3>Returns: <F2><HR>
mask<F3> <#1f> Type <F0>pixel<F3> or <F0>null<F3>.
<para>
Returns (and with <F6>setf<F0>) changes the <F2>mask<F0> which
selects the pixel subfield<SP>for red intensity values. The <F2>mask<F0>
is non<#1e><F6>nil<F0> only for images for<SP><F6>:direct<#1e>color<F0>
or <F6>:true<#1e>color<F0> visual types.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>width<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>width", Sort String = "image<#1e>width">
<return>
<Tab><F3>Returns: <F2><HR>
width<F3> <#1f> Type <F0>card16<F3>.
<para>
Returns the <F2>width<F0> of the <F2>image<F0> in pixels.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>x<#1e>hot<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>x<#1e>hot", Sort String = "image<#1e>x<#1e>hot">
<return>
<Tab><F3>Returns: <F2><HR>
x<#1e>position<F3> <#1f> Type <F0>card16<F3> or <F0>null<F3>.
<para>
Returns and (with <F6>setf<F0>) changes the x position of the hot
spot for an image<SP>used as a cursor glyph. The hot spot position
is specified relative to the<SP>upper<#1e>left origin of the <F2>image<F0>.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<syntax0>
image<#1e>y<#1e>hot<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>y<#1e>hot", Sort String = "image<#1e>y<#1e>hot">
<return>
<Tab><F3>Returns: <F2><HR>
y<#1e>position<F3> <#1f> Type <F0>card16<F3> or <F0>null<F3>.<F2>
<para>
Returns and (with <F6>setf<F0>) changes the y position of the hot
spot for an image<SP>used as a cursor glyph. The hot spot position
is specified relative to the<SP>upper<#1e>left origin of the <F2>image<F0>.
<arg>
image <#1f> <F3>An <F6>image<F3> object.
<p2rule>
<|,"7<#1e>83">
<Frame,
Name = p2rule,
Placement = At Anchor,
Width = 4.75 inches,
Height = 0.15 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p2stacked,
Font = F3>
<Tab><F6>XY<#1e>Format<Tab>7.2.2<F0><#04>The <F6>image<#1e>xy<F0>
subtype represents an image as a sequence of bitmaps,
<p2para,
Alignment = Both,
Allow Page Break Within = yes,
Allow Page Break After = yes,
TOC Doc Name = >
<Tab><F6>Images<Tab><F0>one for<SP>each plane of the image, in most<#1e>signi
ficant to least<#1e>significant bit order.<SP>The following paragraphs
describe the additional CLX functions that can be used to<SP>access <F6>image<#1e>
xy<F0> objects.
<syntax0>
image<#1e>xy<#1e>bitmap<#1e>list<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>xy<#1e>bitmap<#1e>list", Sort String = "image<#1e>xy<#1e>bitmap<#1e>list">
<return>
<Tab><F3>Returns: <F2><HR>
bitmaps<F3> <#1f> Type <F0>list<F3> of <F0>bitmap<F3>.
<para>
Returns and (with <F6>setf<F0>) changes the list of bitmap planes
for the <F2>image<F0>.
<arg>
image <#1f> <F3>An <F6>image<#1e>xy<F3> object.
<p2rule>
<Frame,
Name = p2rule,
Placement = At Anchor,
Width = 4.75 inches,
Height = 0.15 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p2stacked,
Font = F3>
<Tab><F6>Z<#1e>Format<Tab>7.2.3<F0><#04>The <F6>image<#1e>z<F0>
subtype represents an image as a two<#1e>dimensional array
<p2para,
Alignment = Both,
Allow Page Break Within = yes,
Allow Page Break After = yes,
TOC Doc Name = >
<Tab><F6>Images<Tab><F0>of<SP>pixels, in scanline order. The following
paragraphs describe the additional CLX<SP>functions that can be used
to access <F6>image<#1e>z<F0> objects.<SP>
<syntax0>
image<#1e>z<#1e>bits<#1e>per<#1e>pixel<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>z<#1e>bits<#1e>per<#1e>pixel", Sort String = "image<#1e>z<#1e>bits<#1e>per<#1e>pixel">
<return>
<Tab><F3>Returns: <F2><HR>
pixel<#1e>data<#1e>size<F3> <#1f> One of 1, 4, 8, 16, 24, or 32.
<para>
Returns and (with <F6>setf<F0>) changes the number of bits per data
unit used to<SP>contain a pixel value for the <F2>image<F0>. Depending
on the storage format for<SP>image data, this value can be larger
than the actual <F2>image<F0> depth.
<arg>
image <#1f> <F3>An <F6>image<#1e>z<F3> object.
<syntax0>
image<#1e>z<#1e>pixarray <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>z<#1e>pixarray", Sort String = "image<#1e>z<#1e>pixarray">
<return>
<Tab><F3>Returns: <F2><HR>
pixarray<F3> <#1f> Type <F0>pixarray<F3>.
<para>
Returns and (with <F6>setf<F0>) changes the two<#1e>dimensional
array of pixel data for<SP>the <F2>image<F0>.
<arg>
image <#1f> <F3>An <F6>image<#1e>z<F3> object.
<p1rule>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Diagram =
V4,
(g9,1,0
(v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<p1para,
Alignment = Both,
Allow Page Break After = yes>
<F7>Image Functions<Tab><F6>7.3<F0><#04>The following paragraphs
describe the CLX functions used to:
<bullet>
<F8>w<Tab><F0>Create an <F6>image<F0> object.
<F8>w<Tab><F0>Copy an image or a subimage.
<F8>w<Tab><F0>Read an image from a <F6>drawable<F0>.
<F8>w<Tab><F0>Display an image to a <F6>drawable<F0>.
<syntax0>
create<#1e>image<F3> &key <F0>:bit<#1e>lsb<#1e>first<#1e>p :bits<#1e>per<#1e>
pixel :blue<#1e>mask <Tab><F3>Function<Index, Doc = operations, "xlib:create<#1e>image", Sort String = "create<#1e>image", To Next><HR>
<F0>:byte<#1e>lsb<#1e>first<#1e>p :bytes<#1e>per<#1e>line :data :depth
:format <HR>
:green<#1e>mask :height :name :plist :red<#1e>mask :width <HR>
:x<#1e>hot :y<#1e>hot
<return>
<Tab><F3>Returns:<HR>
<F2>image<F3> <#1f> Type <F0>image<F3>.
<para>
Creates an <F6>image<F0> object from the given <F6>:data<F0> and
returns either an <F6>image<F0>,<SP><F6>image<#1e>xy<F0>, or an <F6>image<#1e>
z<F0>, depending on the type of image <F6>:data<F0>. If the <F6>:data<F0><SP>
is a list, it is assumed to be a <F6>list<F0> of <F6>bitmaps<F0>
and an <F6>image<#1e>xy<F0> is<SP>created. If the <F6>:data<F0>
is a <F6>pixarray<F0>, an <F6>image<#1e>z<F0> is created.<SP>Otherwise,
the <F6>:data<F0> must be an array of bytes (<F6>card8<F0>), in
which case a<SP>basic <F6>image<F0> object is created.
<|,"7<#1e>84">If the <F6>:data<F0> is a list, each element must be a bitmap
of equal size.<SP><F6>:width<F0> and <F6>:height<F0> default to
the bitmap width <#1f> <SP>(<F6>array<#1e>dimension<F0> <F6>bitmap<F0><SP>1
) <#1f> and the bitmap height <#1f> (<F6>array<#1e>dimension<F0> <F6>bitmap
<F0> 0) <#1f> respectively. <F6>:depth<F0> defaults to the number
of bitmaps.
If the <F6>:data<F0> is a <F6>pixarray<F0>, <F6>:width<F0> and <F6>:heig
ht<F0> default to the <F6>pixarray<F0><FJ>
width <#1f> (<F6>array<#1e>dimension pixarray<F0> 1), and the pixarray
height <#1f><FJ>
(<F6>array<#1e>dimension pixarray<F0> 0), respectively. <F6>:depth<F0>
defaults to (<F6>pixarray<#1e>depth :data<F0>). The <F6>:bits<#1e>per<#1e>pi
xel<F0> is rounded to a valid size, if<SP>necessary. By default,
the <F6>:bits<#1e>per<#1e>pixel<F0> is equal to the <F6>:depth<F0>.
If the <F6>:data<F0> is an array of <F6>card8<F0>, the <F6>:width<F0>
and <F6>:height<F0> are required<SP>to interpret the image data
correctly. The <F6>:bits<#1e>per<#1e>pixel<F0> defaults to the<SP><F6>:depth
<F0>, and the <F6>:depth<F0> defaults to 1. <F6>:bytes<#1e>per<#1e>line
<F0> defaults to:
(<F6>floor<F0><SP>(<F6>length :data<F0>) (* <F6>:bits<#1e>per<#1e>pixel
:height<F0>))
The <F6>:format<F0> defines the storage<SP>format of image data
bytes and can be one of the following values:
<bullet>
<F8>w<Tab><F6>:xy<#1e>pixmap<F0> <#1f> The <F6>:data<F0> is organized
as a set of bitmaps representing<SP>image bit planes, appearing in
most<#1e>significant to<SP> least<#1e>significant bit order.
<F8>w<Tab><F6>:z<#1e>pixmap<F0> <#1f> The <F6>:data<F0> is organized
as a set of pixel values in<SP>scanline order.
<F8>w<Tab><F6>:bitmap<F0> <#1f> Similar to <F6>:xy<#1e>pixmap<F0>,
except that the <F6>:depth<F0> must be 1,<SP> and 1 and 0 bits represent
the foreground and background pixels, respectively.
<para>
By default, the <F6>:format<F0> is <F6>:bitmap<F0> if <F6>:depth<F0>
is 1; otherwise, <F6>:z<#1e>pixmap<F0>.
<arg>
<F6>:bit<#1e>lsb<#1e>first<#1e>p<F3> <#1f> For a returned image,
true if the order of bits in each <F6>:data<F3> byte is least<#1e>significant
bit first.
<F6>:bits<#1e>per<#1e>pixel <F3><#1f> One of 1, 4, 8, 16, 24, or
32.
<F6>:blue<#1e>mask<F3> <#1f> For <F6>:true<#1e>color<F3> or <F6>:direct<#1e>
color<F3> images, a pixel mask.
<F6>:byte<#1e>lsb<#1e>first<#1e>p<F3> <#1f> For a returned <F0>image<F3>,
true if the <F6>:data<F3> byte order is<SP>least<#1e>significant
byte first.
<F6>:bytes<#1e>per<#1e>line<F3> <#1f> For a returned <F0>image<F3>,
the number of <F6>:data<F3> bytes per<SP>scanline.
<F6>:data<F3> <#1f> Either a <F6>list<F3> of <F6>bitmaps<F3>,
a <F6>pixarray<F3>, or an array of<SP><F6>card8<F3> bytes.
<F6>:depth<F3> <#1f> The number of bits per displayed pixel.
<F6>:format<F3> <#1f> One of <F6>:bitmap<F3>, <F6>:xy<#1e>format<F3>,
or <F6>:z<#1e>format<F3>.
<F6>:green<#1e>mask<F3> <#1f> For <F6>:true<#1e>color<F3> or <F6>:direct<#1e>
color<F3> images, a pixel mask.
<F6>:height<F3> <#1f> A <F6>card16<F3> for the image height in
pixels.
<F6>:name<F3> <#1f> An optional <F6>stringable<F3> for the image
name.
<F6>:plist <F3><#1f> An optional image property list.
<F6>:red<#1e>mask<F3> <#1f> For <F6>:true<#1e>color<F3> or <F6>:direct<#1e>
color<F3> images, a pixel mask.
<F6>:width<F3> <#1f> A <F6>card16<F3> for the image width in pixels.
<F6>:x<#1e>hot<F3> <#1f> For a <F6>cursor <F3>image, the x position
of the hot spot.
<F6>:y<#1e>hot<F3> <#1f> For a cursor image, the y position of the
hot spot.
<syntax0>
<|,"7<#1e>85">copy<#1e>image<F3> <F2>image <F3>&key (<F0>:x<F3> 0) (<F0>:y<F3>
0) <F0>:width :height :result<#1e>type<F3> <F0><Tab><F3>Function<Index, Doc = operations, "xlib:copy<#1e>image", Sort String = "copy<#1e>image">
<return>
<Tab><F3>Returns:<HR>
<F2>new<#1e>image<F3> <#1f> Type <F0>image<F3>.
<para>
Returns a new image, of the given <F6>:result<#1e>type<F0>, containing
a copy of the<SP>portion of the <F2>image<F0> defined by <F6>:x<F0>, <F6>:
y<F0>, <F6>:width<F0>, and <F6>:height<F0>. By default,<SP><F6>:width
<F0> is:
(- (<F6>image<#1e>width<F0> <F2>image<F0>) <F6>:x<F0>)
and <F6>:height<F0> is:
(- (<F6>image<#1e>height<F0> <F2>image<F0>)<SP><F6>:y<F0>)
If necessary, the new image is converted to the <F6>:result<#1e>type<F0>,
that can be one of the following values:
<bullet>
<F8>w<Tab><F6>'image<#1e>x<F0> <#1f> A basic <F6>image<F0> object
is returned.
<F8>w<Tab><F6>'image<#1e>xy<F0> <#1f> An <F6>image<#1e>xy<F0>
is returned.
<F8>w<Tab><F6>'image<#1e>z<F0> <#1f> An <F6>image<#1e>z<F0> is
returned.
<arg>
image<F3> <#1f> An <F6>image<F3> object.
<F6>:x<F3>, <F6>:y<F3> <#1f> <F6>card16<F3> values defining
the position of the upper<#1e>left corner of the subimage copied.
<F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values
defining the size of subimage copied.
<F6>:result<#1e>type<F3> <#1f> One of <F6>'image<#1e>x<F3>, <F6>'image<#1e>
xy<F3>, or <F6>'image<#1e>z<F3>.
<syntax0>
get<#1e>image<F3> <F2>drawable <F3>&key <F0>:x<F3> <F0>:y<F3> <F0>:widt
h<F3> <F0>:height<F3> <F0>:plane<#1e>mask <Tab><F3>Function<Index, Doc = operations, "xlib:get<#1e>image", Sort String = "get<#1e>image", To Next><HR>
(<F0>:format :z<#1e>format<F3>)<F0> :result<#1e>type
<return>
<Tab><F3>Returns: <HR>
<F2>image<F3> <#1f> Type <F0>image<F3>.
<para>
Returns an <F2>image<F0> containing pixel values from the region
of the <F2>drawable<F0> given<SP>by <F6>:x<F0>, <F6>:y<F0>, <F6>:width
<F0>, and <F6>:height<F0>. The bits for all planes selected by
1 bits<SP>in the <F6>:plane<#1e>mask<F0> are returned as zero; the
default <F6>:plane<#1e>mask<F0> is all 1<SP>bits. The <F6>:format<F0>
of the returned pixel values may be either <F6>:xy<#1e>format<F0>
or<SP><F6>:z<#1e>format<F0>.
<para,
New Page = yes>
<|,"7<#1e>86">The <F6>:result<#1e>type<F0> defines the type of image object
returned:
<bullet>
<F8>w<Tab><F6>'image<#1e>x<F0> <#1f> A basic <F6>image<F0> object
is returned.
<F8>w<Tab><F6>'image<#1e>xy<F0> <#1f> An <F6>image<#1e>xy<F0>
is returned.
<F8>w<Tab><F6>'image<#1e>z<F0> <#1f> An <F6>image<#1e>z<F0> is
returned.
<para>
By default, <F6>:result<#1e>type<F0> is <F6>'image<#1e>z<F0> if <F6>:forma
t<F0> is <F6>:z<#1e>format<F0> and <F6>'image<#1e>xy<F0> if <F6>:format
<F0> is <F6>:xy<#1e>format<F0>.
<arg>
drawable<F3> <#1f> A <F6>drawable<F3>.
<F6>:x<F3>, <F6>:y<F3> <#1f> <F6>card16<F3> values defining
the upper<#1e>left <F6>drawable<F3> pixel returned. These arguments
are required.
<F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values
defining the size of the <F0>image<F3> returned. These arguments
are required.
<F6>:plane<#1e>mask<F3> <#1f> A pixel mask.
<F6>:format<F3> <#1f> Either <F6>:xy<#1e>pixmap<F3> or <F6>:z<#1e>pixmap
<F3>.
<F6>:result<#1e>type<F3> <#1f> One of <F6>'image<#1e>x<F3>, <F6>'image<#1e>
xy<F3>, or <F6>'image<#1e>z<F3>.
<syntax>
put<#1e>image<F3> <F2>drawable gcontext image <F3>&key (<F0>:src<#1e>x
<F3> 0) (<F0>:src<#1e>y<F3> 0) <F0>:x<F3> <F0>:y<F3> <F0><Tab><F3>Func
tion<Index, Doc = operations, "xlib:put<#1e>image", Sort String = "put<#1e>image"><HR>
<F0>:width :height :bitmap<#1e>p
<para>
Displays a region of the <F2>image<F0> defined by <F6>:src<#1e>x<F0>,
<F6>:src<#1e>y<F0>, <F6>:width<F0>, and<SP><F6>:height<F0> on
the destination d<F2>rawable<F0>, with the upper<#1e>left pixel
of the <F2>image<F0><SP>region displayed at the <F2>drawable<F0>
position given by <F6>:x<F0> and <F6>:y<F0>. By default,<SP><F6>:width
<F0> is:
(- (<F6>image<#1e>width<F0> <F2>image<F0>) <F6>:src<#1e>x<F0>)
and <F6>:height<F0> is:
(- (<F6>image<#1e>height<F0><SP><F2>image<F0>) <F6>:src<#1e>y<F0>)
The following attributes of the <F2>gcontext<F0> are used to display
the <F6>image<F0>:<SP>clip<#1e>mask, clip<#1e>x, clip<#1e>y, function,
plane<#1e>mask, and subwindow<#1e>mode.
The <F6>:bitmap<#1e>p<F0> argument applies only to images of depth
1. In this case, if<SP><F6>:bitmap<#1e>p<F0> is true or if the <F2>image
<F0> is a basic <F6>image<F0> object created with<SP><F6>:format
:bitmap<F0>, the <F2>image<F0> is combined with the foreground
and<SP>background pixels of the <F6>gcontext<F0>. 1 bits of the <F2>image
<F0> are displayed in the<SP>foreground pixel and 0 bits are displayed
in the background pixel.
<arg>
drawable<F3> <#1f> The destination <F6>drawable<F3>.
gcontext<F3> <#1f> The graphics context used to display the <F0>image<F3>.
image<F3> <#1f> An <F6>image<F3> object.
<F6>:src<#1e>x<F3>, <F6>:src<#1e>y<F3> <#1f> <F6>card16<F3>
values defining the upper<#1e>left position of the <F0>image<F3>
region to display.
<F6>:x<F3>, <F6>:y<F3> <#1f> The position in the <F0>drawable<F3>
where the <F0>image<F3> region is displayed. These arguments are
required.
<F6>:width<F3>, <F6>:height <F3><#1f> <F6>card16<F3> values
defining the size of the <F0>image<F3> region displayed.
<F6>:bitmap<#1e>p<F3> <#1f> If <F0>image<F3> is depth 1, then
if true, foreground and background pixels are used to display 1 and
0 bits of the <F0>image<F3>.
<p1rule,
New Page = yes>
<|,"7<#1e>87">
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Diagram =
V4,
(g9,1,0
(v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<p1para,
Alignment = Both,
Allow Page Break After = yes>
<F7>Image Files<Tab><F6>7.4<F0><#04>CLX provides functions that
allow images to be written to a file in a standard X format. The following
paragraphs describe the CLX functions used to:
<bullet>
<F8>w<Tab><F0>Read an image from a file.
<F8>w<Tab><F0>Write an image to a file.
<syntax0>
read<#1e>bitmap<#1e>file<F3> <F2>pathname<F3> <F0><Tab><F3>Function<Index, Doc = operations, "xlib:read<#1e>bitmap<#1e>file", Sort String = "read<#1e>bitmap<#1e>file">
<return>
<Tab><F3>Returns:<HR>
<F2>image<F3> <#1f> Type <F0>image<F3>.
<para>
Reads an image file in standard X format and returns an <F6>image<F0>
object. The returned <F2>image<F0> can have depth greater than one.
<arg>
pathname<F3> <#1f> An image file pathname.<F0>
<syntax>
write<#1e>bitmap<#1e>file<F3> <F2>pathname image<F3> &optional <F2>name
<F0><Tab><F3>Function<Index, Doc = operations, "xlib:write<#1e>bitmap<#1e>file", Sort String = "write<#1e>bitmap<#1e>file">
<para>
Writes the <F2>image<F0> to an image file in standard X format.
The <F2>image<F0> can have depth greater than one. The <F2>name<F0>
is an image identifier written to the file; the default <F2>name<F0>
is (<F6>or<F0> (<F6>image<#1e>name<F0> <F2>image<F0>)<F6> 'image<F0>).
<arg>
pathname<F3> <#1f> An image file pathname.
image<F3> <#1f> An <F6>image<F3> object.
name<F3> <#1f> A <F6>stringable<F3> image name.
<p1rule>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Diagram =
V4,
(g9,1,0
(v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<p1stacked,
Left Tab = -1.70/0 inches>
<F7>Direct Image <Tab><F6>7.5<F0><#04>For cases where the <F6>image<F0>
representation is not needed, CLX provides
<p1para,
Alignment = Both,
Allow Page Break After = yes>
<F7>Transfer<Tab><F0>functions to read and display image data directly.
<syntax>
get<#1e>raw<#1e>image<F3> <F2>drawable <F3>&key <F0>:data<F3>
(<F0>:start<F3> 0)<F0> :x :y :width :height<Tab><F3>Function<Index, Doc = operations, "xlib:get<#1e>raw<#1e>image", Sort String = "get<#1e>raw<#1e>image", To Next><HR>
<F0>:plane<#1e>mask <F3>(<F0>:format<F3> <F0>:z<#1e>format<F3>)
(<F0>:result<#1e>type<F3> <F0>'<F3>(<F0>vector<F3> <F0>card8<F3>))
<return,
Left Tab = -0.90/0/0.10/7.50 inches>
<Tab><F3>Returns:<HR>
<Tab><F2>data<F3> <#1f> Type <F0>sequence<F3> or <F0>card8<F3>.<HR>
<Tab><F2>depth<F3> <#1f> Type <F0>card8<F3>.<HR>
<Tab><F2>visual<F3> <#1f> Type <F0>card29<F3>.
<para>
Returns a sequence of image data from the region of the <F2>drawable<F0>
given by<SP><F6>:x<F0>, <F6>:y<F0>, <F6>:width<F0>, and <F6>:height
<F0>. If <F6>:data<F0> is given, it is modified<SP>beginning with
the element at the <F6>:start<F0> index and returned. The <F2>depth<F0>
and<SP><F2>visua<F0>l type ID of the <F2>drawable<F0> are also
returned.
The bits for all planes selected by 1 bits in the <F6>:plane<#1e>mask<F0>
are returned<SP>as zero; the default <F6>:plane<#1e>mask<F0> is
all 1 bits. The <F6>:format<F0> of the returned<SP>pixel values
may be either <F6>:xy<#1e>format<F0> or <F6>:z<#1e>format<F0>.
The <F6>:result<#1e>type<F0> defines the type of image data returned.
The calling program is responsible for handling the byte<#1e>order
and bit<#1e>order<SP>returned by the server for the <F2>drawable<F0>'s
display (see <F6>display<#1e>byte<#1e>order<F0><SP>and <F6>display<#1e>image
<#1e>lsb<#1e>first<#1e>p<F0>).
<arg>
drawable<F3> <#1f> A <F6>drawable<F3>.
<F6>:data<F3> <#1f> An optional <F6>sequence<F3> of <F6>card8<F3>.
<F6>:start <F3><#1f> The index of the first <F6>:data<F3> element
modified.<F0>
<F6>:x<F3>, <F6>:y<F3> <#1f> <F6>card16<F3> values defining
the size of the <F6>image<F3> returned. These arguments are required.
<|,"7<#1e>88"><F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values
defining the size of the image returned.These arguments are required.
<F6>:plane<#1e>mask<F3> <#1f> A pixel mask.
<F6>:format<F3> <#1f> Either <F6>:xy-pixmap<F3> or <F6>:z-pixmap<F3>.
This argument is required.
<F6>:result<#1e>type<F3> <#1f> The type of image data sequence to
return.
<syntax>
put<#1e>raw<#1e>image<F3> <F2>drawable gcontext data <F3>&key (<F0>:start
<F3> 0) <F0>:depth :x :y <Tab><F3>Function<Index, Doc = operations, "xlib:put<#1e>raw<#1e>image", Sort String = "put<#1e>raw<#1e>image"><HR>
<F0>:width :height<F3> (<F0>:left<#1e>pad<F3> 0) <F0>:format
<para>
Displays a region of the image data defined by <F6>:start<F0>, <F6>:left<#1e>
pad<F0>, <F6>:width,<F0><SP>and <F6>:height<F0> on the destination <F2>dr
awable<F0>, with the upper<#1e>left pixel of the<SP>image region
displayed at the <F2>drawable<F0> position given by <F6>:x<F0>
and <F6>:y<F0>.
The <F6>:format<F0> can be either <F6>:xy<#1e>pixmap<F0>, <F6>:z<#1e>pixma
p<F0>, or <F6>:bitmap<F0>. If <F6>:xy<#1e>pixmap<F0><SP>or <F6>:z<#1e>pix
map<F0> formats are used, <F6>:depth<F0> must match the depth of
the<SP>destination <F2>drawable<F0>. For <F6>:xy<#1e>pixmap<F0>,
the data must be in XY format. For<SP><F6>:z<#1e>pixmap<F0>, the
data must be in Z format for the given <F6>:depth<F0>.
If the <F6>:format<F0> is <F6>:bitmap<F0>, the <F6>:depth<F0>
must be 1. In this case, the<SP>image is combined with the foreground
and background pixels of the <F2>gcontext<F0>. 1 bits of the image
are displayed in the foreground pixel and 0 bits are<SP>displayed
in the background pixel.
The <F6>:left<#1e>pad<F0> must be zero for <F6>:z<#1e>pixmap<F0>
format. For <F6>:bitmap<F0> and <F6>:xy<#1e>pixmap<F0><SP>formats,
the <F6>:left<#1e>pad<F0> must be less than the bitmap<#1e>scanline<#1e>pad
for the<SP><F2>drawable<F0>'s display (see <F6>display<#1e>bitmap<#1e>format
<F0>). The first <F6>:left<#1e>pad<F0> bits in<SP>every scanline
are to be ignored by the server; the actual image begins that<SP>many
bits into the data.<SP>
The following attributes of the <F2>gcontext<F0> are used to display
the <F6>image<F0>:<SP>clip<#1e>mask, clip<#1e>x, clip<#1e>y, function,
plane<#1e>mask, and subwindow<#1e>mode.
The calling program is responsible for handling the byte<#1e>order
and bit<#1e>order<SP>required by the server for the <F2>drawable<F0>'s
display (see <F6>display<#1e>byte<#1e>order<F0><SP>and <F6>display<#1e>image
<#1e>lsb<#1e>first<#1e>p<F0>).
<arg>
drawable<F3> <#1f> The destination <F6>drawable<F3>.
gcontext<F3> <#1f> The graphics context used to display the image.
data<F3> <#1f> A sequence of integers.
<F6>:start<F3> <#1f> The index of the first element of <F0>data<F3>
displayed.
<F6>:depth <F3><#1f> The number of bits per pixel displayed. This
argument is required.
<F6>:x<F3>, <F6>:y<F3> <#1f> The position in the <F0>drawable<F3>
where the image region is displayed. These arguments are required.
<F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values
defining the size of the image region displayed. These arguments are
required.
<F6>:left<#1e>pad<F3> <#1f> A <F6>card8<F3> specifying the number
of leading bits to discard for each image scanline.
<F6>:format<F3> <#1f> One of <F6>:bitmap<F3>, <F6>:xy<#1e>pixmap<F3>,
or <F6>:z<#1e>pixmap<F3>.