blob: 7b77aef33f5d2d303910d9bb5d78518b7cbab0d7 [file] [log] [blame]
%!PS-Adobe-2.0
%%Creator: dvipsk 5.55a Copyright 1986, 1994 Radical Eye Software
%%Title: glspec.dvi
%%Pages: 194
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: whaeberli
%%EndComments
%DVIPSCommandLine: dvips glspec
%DVIPSParameters: dpi=300, compressed, comments removed
%DVIPSSource: TeX output 1997.03.28:0103
%%BeginProcSet: texc.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
%%BeginFont: whaeberli
/F_whaeberli 10 dict def
F_whaeberli begin
/FontType 3 def
/FontMatrix [0.001 0 0 0.001 0 0] def
/FontBBox [0 -319 777 703] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 32 /space put
Encoding 33 /exclam put
Encoding 34 /quotedbl put
Encoding 35 /numbersign put
Encoding 36 /dollar put
Encoding 37 /percent put
Encoding 38 /ampersand put
Encoding 39 /quoteright put
Encoding 40 /parenleft put
Encoding 41 /parenright put
Encoding 42 /asterisk put
Encoding 43 /plus put
Encoding 44 /comma put
Encoding 45 /hyphen put
Encoding 46 /period put
Encoding 47 /slash put
Encoding 48 /zero put
Encoding 49 /one put
Encoding 50 /two put
Encoding 51 /three put
Encoding 52 /four put
Encoding 53 /five put
Encoding 54 /six put
Encoding 55 /seven put
Encoding 56 /eight put
Encoding 57 /nine put
Encoding 58 /colon put
Encoding 59 /semicolon put
Encoding 60 /less put
Encoding 61 /equal put
Encoding 62 /greater put
Encoding 63 /question put
Encoding 64 /at put
Encoding 65 /A put
Encoding 66 /B put
Encoding 67 /C put
Encoding 68 /D put
Encoding 69 /E put
Encoding 70 /F put
Encoding 71 /G put
Encoding 72 /H put
Encoding 73 /I put
Encoding 74 /J put
Encoding 75 /K put
Encoding 76 /L put
Encoding 77 /M put
Encoding 78 /N put
Encoding 79 /O put
Encoding 80 /P put
Encoding 81 /Q put
Encoding 82 /R put
Encoding 83 /S put
Encoding 84 /T put
Encoding 85 /U put
Encoding 86 /V put
Encoding 87 /W put
Encoding 88 /X put
Encoding 89 /Y put
Encoding 90 /Z put
Encoding 91 /bracketleft put
Encoding 92 /backslash put
Encoding 93 /bracketright put
Encoding 94 /asciicircum put
Encoding 95 /underscore put
Encoding 96 /quoteleft put
Encoding 97 /a put
Encoding 98 /b put
Encoding 99 /c put
Encoding 100 /d put
Encoding 101 /e put
Encoding 102 /f put
Encoding 103 /g put
Encoding 104 /h put
Encoding 105 /i put
Encoding 106 /j put
Encoding 107 /k put
Encoding 108 /l put
Encoding 109 /m put
Encoding 110 /n put
Encoding 111 /o put
Encoding 112 /p put
Encoding 113 /q put
Encoding 114 /r put
Encoding 115 /s put
Encoding 116 /t put
Encoding 117 /u put
Encoding 118 /v put
Encoding 119 /w put
Encoding 120 /x put
Encoding 121 /y put
Encoding 122 /z put
Encoding 123 /braceleft put
Encoding 124 /bar put
Encoding 125 /braceright put
Encoding 126 /asciitilde put
/CharProcs 96 dict def
CharProcs begin
/.notdef {} def
/space {
600 0 0 0 600 800 setcachedevice
} def
/exclam {
259 0 69 -14 321 624 setcachedevice
newpath
111 -14 moveto
156 13 lineto
157 79 lineto
105 101 lineto
69 48 lineto
75 12 lineto
closepath
147 143 moveto
180 170 lineto
321 611 lineto
287 624 lineto
251 570 lineto
124 158 lineto
closepath
fill
} def
/quotedbl {
304 0 161 483 377 681 setcachedevice
newpath
189 483 moveto
221 512 lineto
245 666 lineto
222 681 lineto
190 653 lineto
161 507 lineto
closepath
280 493 moveto
319 546 lineto
377 665 lineto
355 681 lineto
320 657 lineto
250 509 lineto
closepath
fill
} def
/numbersign {
515 0 103 70 533 587 setcachedevice
newpath
263 70 moveto
300 92 lineto
376 215 lineto
382 224 lineto
465 239 lineto
474 277 lineto
427 286 lineto
419 289 lineto
425 300 lineto
451 349 lineto
458 356 lineto
468 358 lineto
529 370 lineto
533 407 lineto
495 414 lineto
488 416 lineto
491 425 lineto
533 536 lineto
514 554 lineto
479 532 lineto
425 412 lineto
416 407 lineto
385 404 lineto
375 402 lineto
370 409 lineto
428 570 lineto
397 587 lineto
366 544 lineto
310 404 lineto
304 395 lineto
169 368 lineto
162 338 lineto
207 326 lineto
259 333 lineto
270 335 lineto
273 326 lineto
248 277 lineto
241 268 lineto
232 266 lineto
118 246 lineto
103 218 lineto
131 196 lineto
203 208 lineto
209 202 lineto
168 96 lineto
185 76 lineto
220 98 lineto
268 207 lineto
275 216 lineto
284 217 lineto
306 221 lineto
316 219 lineto
316 211 lineto
246 98 lineto
closepath
311 287 moveto
337 338 lineto
347 342 lineto
380 347 lineto
389 345 lineto
383 335 lineto
356 286 lineto
347 277 lineto
315 275 lineto
305 277 lineto
closepath
fill
} def
/dollar {
552 0 103 -28 562 625 setcachedevice
newpath
181 -28 moveto
219 -16 lineto
270 90 lineto
276 100 lineto
286 101 lineto
328 104 lineto
337 101 lineto
333 90 lineto
312 -8 lineto
336 -19 lineto
370 19 lineto
397 112 lineto
405 119 lineto
503 172 lineto
541 250 lineto
522 333 lineto
475 379 lineto
470 386 lineto
493 500 lineto
496 510 lineto
506 513 lineto
555 523 lineto
562 560 lineto
513 569 lineto
503 566 lineto
502 575 lineto
500 625 lineto
462 625 lineto
443 565 lineto
440 555 lineto
431 550 lineto
421 546 lineto
410 541 lineto
405 547 lineto
394 583 lineto
356 573 lineto
346 522 lineto
343 512 lineto
287 456 lineto
290 409 lineto
313 393 lineto
319 386 lineto
246 171 lineto
237 165 lineto
159 218 lineto
128 237 lineto
103 216 lineto
111 181 lineto
193 119 lineto
210 112 lineto
218 107 lineto
214 97 lineto
171 -13 lineto
closepath
298 158 moveto
301 168 lineto
364 351 lineto
367 361 lineto
377 365 lineto
402 352 lineto
403 344 lineto
355 167 lineto
349 160 lineto
307 156 lineto
closepath
418 184 moveto
421 194 lineto
446 298 lineto
448 308 lineto
456 312 lineto
464 308 lineto
484 245 lineto
457 199 lineto
426 184 lineto
closepath
405 418 moveto
396 421 lineto
387 425 lineto
386 435 lineto
392 469 lineto
394 479 lineto
405 485 lineto
426 493 lineto
432 490 lineto
430 479 lineto
420 425 lineto
414 414 lineto
closepath
fill
} def
/percent {
549 0 51 -96 613 643 setcachedevice
newpath
60 -96 moveto
97 -81 lineto
613 623 lineto
585 643 lineto
523 578 lineto
51 -61 lineto
closepath
378 63 moveto
461 86 lineto
517 142 lineto
516 192 lineto
512 200 lineto
504 204 lineto
512 214 lineto
512 250 lineto
462 244 lineto
372 173 lineto
338 107 lineto
360 68 lineto
closepath
398 122 moveto
404 131 lineto
435 165 lineto
444 172 lineto
453 171 lineto
459 164 lineto
462 156 lineto
455 145 lineto
406 119 lineto
closepath
208 333 moveto
292 351 lineto
346 407 lineto
340 465 lineto
336 472 lineto
343 479 lineto
359 515 lineto
307 537 lineto
215 509 lineto
149 446 lineto
137 386 lineto
180 340 lineto
closepath
215 393 moveto
194 409 lineto
224 455 lineto
254 472 lineto
265 474 lineto
268 469 lineto
281 435 lineto
289 430 lineto
292 421 lineto
287 412 lineto
225 389 lineto
closepath
fill
} def
/ampersand {
521 0 75 2 465 570 setcachedevice
newpath
444 2 moveto
454 4 lineto
463 13 lineto
465 50 lineto
365 150 lineto
364 158 lineto
391 203 lineto
372 223 lineto
342 209 lineto
335 201 lineto
327 203 lineto
295 284 lineto
294 293 lineto
408 433 lineto
433 526 lineto
402 570 lineto
343 565 lineto
270 495 lineto
228 384 lineto
224 296 lineto
105 158 lineto
75 78 lineto
92 34 lineto
157 17 lineto
259 61 lineto
305 96 lineto
312 104 lineto
321 101 lineto
434 2 lineto
closepath
134 90 moveto
182 178 lineto
238 237 lineto
248 240 lineto
251 231 lineto
283 160 lineto
288 152 lineto
281 143 lineto
186 81 lineto
143 75 lineto
134 79 lineto
closepath
286 377 moveto
316 469 lineto
363 518 lineto
372 518 lineto
375 508 lineto
344 428 lineto
300 374 lineto
294 365 lineto
285 367 lineto
closepath
fill
} def
/quoteright {
219 0 146 418 276 614 setcachedevice
newpath
158 418 moveto
195 435 lineto
276 589 lineto
253 614 lineto
221 587 lineto
146 432 lineto
closepath
fill
} def
/parenleft {
293 0 99 -59 366 689 setcachedevice
newpath
179 -59 moveto
209 -54 lineto
220 -17 lineto
164 79 lineto
161 229 lineto
222 444 lineto
309 597 lineto
366 666 lineto
353 689 lineto
314 675 lineto
215 552 lineto
126 333 lineto
99 136 lineto
127 4 lineto
closepath
fill
} def
/parenright {
321 0 117 -105 317 685 setcachedevice
newpath
140 -105 moveto
180 -71 lineto
272 93 lineto
314 268 lineto
317 460 lineto
270 626 lineto
225 685 lineto
195 679 lineto
189 642 lineto
247 513 lineto
264 316 lineto
221 109 lineto
138 -45 lineto
117 -93 lineto
closepath
fill
} def
/asterisk {
416 0 117 208 436 513 setcachedevice
newpath
173 208 moveto
217 238 lineto
239 264 lineto
246 266 lineto
249 256 lineto
279 209 lineto
316 224 lineto
315 261 lineto
296 305 lineto
292 314 lineto
302 319 lineto
426 361 lineto
436 400 lineto
398 404 lineto
346 386 lineto
334 384 lineto
337 393 lineto
395 499 lineto
363 513 lineto
276 397 lineto
270 388 lineto
262 386 lineto
258 395 lineto
228 465 lineto
189 455 lineto
193 398 lineto
207 361 lineto
211 354 lineto
206 347 lineto
123 317 lineto
117 289 lineto
151 275 lineto
172 282 lineto
183 286 lineto
187 280 lineto
179 273 lineto
154 225 lineto
closepath
fill
} def
/plus {
530 0 117 79 533 476 setcachedevice
newpath
286 79 moveto
313 112 lineto
347 259 lineto
354 266 lineto
364 268 lineto
510 282 lineto
533 317 lineto
503 335 lineto
377 324 lineto
366 324 lineto
365 333 lineto
379 476 lineto
342 476 lineto
318 397 lineto
307 335 lineto
303 324 lineto
293 324 lineto
136 321 lineto
117 287 lineto
147 268 lineto
281 268 lineto
289 263 lineto
289 254 lineto
259 90 lineto
closepath
fill
} def
/comma {
247 0 43 -111 201 107 setcachedevice
newpath
74 -108 moveto
140 -46 lineto
201 71 lineto
194 107 lineto
163 103 lineto
79 -41 lineto
43 -82 lineto
63 -111 lineto
closepath
fill
} def
/hyphen {
500 0 111 231 494 289 setcachedevice
newpath
389 231 moveto
481 233 lineto
494 270 lineto
429 286 lineto
129 289 lineto
111 254 lineto
141 238 lineto
closepath
fill
} def
/period {
210 0 68 20 164 108 setcachedevice
newpath
98 20 moveto
150 32 lineto
164 71 lineto
124 108 lineto
76 82 lineto
68 41 lineto
closepath
fill
} def
/slash {
512 0 51 -71 569 625 setcachedevice
newpath
70 -71 moveto
115 -43 lineto
303 185 lineto
569 588 lineto
564 625 lineto
525 614 lineto
210 145 lineto
51 -43 lineto
closepath
fill
} def
/zero {
524 0 107 43 545 603 setcachedevice
newpath
211 43 moveto
305 71 lineto
440 175 lineto
525 307 lineto
545 430 lineto
510 508 lineto
449 550 lineto
442 556 lineto
447 565 lineto
449 596 lineto
401 603 lineto
285 536 lineto
180 416 lineto
117 287 lineto
107 165 lineto
143 78 lineto
200 43 lineto
closepath
213 104 moveto
169 160 lineto
173 282 lineto
237 411 lineto
351 522 lineto
380 540 lineto
388 537 lineto
403 505 lineto
465 463 lineto
488 381 lineto
447 270 lineto
349 162 lineto
253 104 lineto
closepath
fill
} def
/one {
194 0 62 -7 238 584 setcachedevice
newpath
90 -4 moveto
118 25 lineto
223 448 lineto
238 572 lineto
214 584 lineto
184 558 lineto
93 133 lineto
62 10 lineto
71 -4 lineto
80 -7 lineto
closepath
fill
} def
/two {
505 0 142 -17 453 579 setcachedevice
newpath
183 -17 moveto
442 8 lineto
453 45 lineto
397 54 lineto
231 43 lineto
222 45 lineto
223 54 lineto
418 391 lineto
453 513 lineto
424 569 lineto
337 579 lineto
213 541 lineto
157 486 lineto
165 460 lineto
203 469 lineto
301 518 lineto
392 518 lineto
383 449 lineto
255 203 lineto
142 14 lineto
164 -14 lineto
closepath
fill
} def
/three {
460 0 81 2 475 582 setcachedevice
newpath
103 2 moveto
312 70 lineto
401 137 lineto
444 224 lineto
430 321 lineto
411 384 lineto
475 488 lineto
465 544 lineto
379 582 lineto
234 572 lineto
166 532 lineto
158 495 lineto
195 493 lineto
276 526 lineto
396 515 lineto
413 508 lineto
420 501 lineto
420 490 lineto
352 377 lineto
368 312 lineto
387 228 lineto
344 152 lineto
247 97 lineto
91 48 lineto
81 18 lineto
closepath
fill
} def
/four {
523 0 113 7 575 587 setcachedevice
newpath
363 7 moveto
398 25 lineto
575 564 lineto
550 584 lineto
519 555 lineto
440 312 lineto
430 305 lineto
181 277 lineto
173 282 lineto
179 291 lineto
321 566 lineto
305 587 lineto
268 569 lineto
113 266 lineto
124 231 lineto
234 224 lineto
402 246 lineto
412 246 lineto
416 239 lineto
346 28 lineto
347 17 lineto
354 10 lineto
closepath
fill
} def
/five {
544 0 67 -12 602 606 setcachedevice
newpath
152 -12 moveto
266 -4 lineto
375 48 lineto
442 136 lineto
452 228 lineto
406 298 lineto
276 356 lineto
216 363 lineto
206 363 lineto
206 372 lineto
263 544 lineto
273 549 lineto
583 555 lineto
602 592 lineto
597 600 lineto
497 606 lineto
209 601 lineto
197 564 lineto
203 527 lineto
140 324 lineto
180 303 lineto
271 296 lineto
373 246 lineto
398 185 lineto
362 107 lineto
288 57 lineto
173 41 lineto
93 71 lineto
67 39 lineto
115 -2 lineto
closepath
fill
} def
/six {
406 0 100 39 396 620 setcachedevice
newpath
184 39 moveto
256 59 lineto
355 153 lineto
396 252 lineto
382 340 lineto
315 375 lineto
234 363 lineto
224 361 lineto
214 356 lineto
210 361 lineto
214 370 lineto
312 521 lineto
396 593 lineto
391 620 lineto
341 611 lineto
243 517 lineto
142 344 lineto
100 201 lineto
113 93 lineto
165 41 lineto
closepath
186 98 moveto
155 167 lineto
173 270 lineto
261 317 lineto
321 310 lineto
340 248 lineto
295 162 lineto
216 97 lineto
closepath
fill
} def
/seven {
554 0 176 32 610 620 setcachedevice
newpath
235 32 moveto
273 46 lineto
444 310 lineto
454 314 lineto
513 308 lineto
532 335 lineto
498 363 lineto
489 367 lineto
483 370 lineto
489 381 lineto
610 579 lineto
589 620 lineto
413 611 lineto
184 591 lineto
176 583 lineto
178 546 lineto
437 556 lineto
541 569 lineto
546 564 lineto
541 555 lineto
430 384 lineto
421 379 lineto
339 375 lineto
322 340 lineto
366 324 lineto
377 324 lineto
387 324 lineto
384 314 lineto
224 57 lineto
closepath
fill
} def
/eight {
541 0 86 2 571 629 setcachedevice
newpath
210 2 moveto
335 21 lineto
450 93 lineto
517 181 lineto
524 252 lineto
449 342 lineto
445 347 lineto
453 354 lineto
542 425 lineto
571 493 lineto
537 578 lineto
500 559 lineto
513 474 lineto
458 418 lineto
347 368 lineto
267 368 lineto
241 393 lineto
260 453 lineto
351 537 lineto
453 574 lineto
490 597 lineto
477 629 lineto
374 609 lineto
255 524 lineto
188 423 lineto
190 354 lineto
250 312 lineto
256 305 lineto
247 300 lineto
141 217 lineto
86 135 lineto
92 57 lineto
160 8 lineto
closepath
216 59 moveto
145 86 lineto
149 145 lineto
218 221 lineto
350 284 lineto
402 293 lineto
409 289 lineto
470 223 lineto
448 164 lineto
361 90 lineto
226 57 lineto
closepath
fill
} def
/nine {
484 0 140 -54 477 634 setcachedevice
newpath
387 -54 moveto
418 -27 lineto
460 382 lineto
421 405 lineto
245 344 lineto
195 367 lineto
205 426 lineto
278 513 lineto
385 574 lineto
468 583 lineto
477 592 lineto
475 629 lineto
407 634 lineto
295 587 lineto
191 499 lineto
140 402 lineto
144 333 lineto
194 291 lineto
286 298 lineto
389 338 lineto
400 344 lineto
405 340 lineto
407 330 lineto
363 -18 lineto
377 -52 lineto
closepath
fill
} def
/colon {
208 0 66 7 220 379 setcachedevice
newpath
79 7 moveto
140 14 lineto
160 63 lineto
170 122 lineto
132 126 lineto
74 70 lineto
66 20 lineto
closepath
148 275 moveto
208 301 lineto
220 363 lineto
175 379 lineto
128 333 lineto
130 282 lineto
closepath
fill
} def
/semicolon {
254 0 85 -61 227 360 setcachedevice
newpath
119 -61 moveto
175 -6 lineto
212 92 lineto
165 135 lineto
116 115 lineto
85 57 lineto
120 30 lineto
131 32 lineto
135 26 lineto
131 16 lineto
93 -37 lineto
closepath
150 246 moveto
202 261 lineto
227 307 lineto
214 354 lineto
167 360 lineto
125 324 lineto
120 266 lineto
closepath
fill
} def
/less {
474 0 114 -46 530 603 setcachedevice
newpath
377 -46 moveto
407 -35 lineto
410 3 lineto
265 209 lineto
203 268 lineto
197 275 lineto
201 284 lineto
528 570 lineto
530 600 lineto
492 603 lineto
174 326 lineto
114 273 lineto
130 244 lineto
244 144 lineto
closepath
fill
} def
/equal {
451 0 133 225 467 418 setcachedevice
newpath
162 225 moveto
410 252 lineto
416 289 lineto
286 291 lineto
161 273 lineto
147 237 lineto
152 229 lineto
closepath
396 351 moveto
456 358 lineto
464 367 lineto
467 388 lineto
462 395 lineto
209 418 lineto
146 405 lineto
133 368 lineto
178 358 lineto
closepath
fill
} def
/greater {
508 0 54 -50 508 621 setcachedevice
newpath
76 -50 moveto
294 108 lineto
508 300 lineto
501 335 lineto
243 621 lineto
204 614 lineto
201 575 lineto
439 314 lineto
443 305 lineto
435 298 lineto
91 14 lineto
54 -25 lineto
closepath
fill
} def
/question {
426 0 156 19 467 587 setcachedevice
newpath
225 19 moveto
263 41 lineto
273 46 lineto
301 59 lineto
304 97 lineto
257 127 lineto
196 107 lineto
188 68 lineto
207 26 lineto
closepath
272 197 moveto
304 223 lineto
339 324 lineto
456 449 lineto
467 529 lineto
414 582 lineto
271 587 lineto
192 546 lineto
156 481 lineto
179 455 lineto
208 469 lineto
234 515 lineto
306 532 lineto
395 521 lineto
414 490 lineto
356 411 lineto
273 317 lineto
252 215 lineto
closepath
fill
} def
/at {
624 0 117 17 603 600 setcachedevice
newpath
353 17 moveto
468 46 lineto
551 103 lineto
603 199 lineto
589 231 lineto
553 211 lineto
503 126 lineto
403 78 lineto
302 83 lineto
219 143 lineto
175 246 lineto
189 370 lineto
256 483 lineto
343 533 lineto
445 537 lineto
505 495 lineto
523 400 lineto
487 287 lineto
464 263 lineto
454 259 lineto
450 268 lineto
448 368 lineto
456 375 lineto
474 411 lineto
431 428 lineto
329 402 lineto
241 330 lineto
207 273 lineto
224 222 lineto
279 208 lineto
370 246 lineto
379 254 lineto
389 261 lineto
393 254 lineto
412 210 lineto
470 209 lineto
536 270 lineto
575 368 lineto
571 488 lineto
528 560 lineto
430 600 lineto
317 580 lineto
215 512 lineto
153 419 lineto
117 287 lineto
137 163 lineto
201 72 lineto
304 24 lineto
closepath
265 277 moveto
337 347 lineto
389 368 lineto
397 365 lineto
392 356 lineto
326 279 lineto
275 264 lineto
265 268 lineto
closepath
fill
} def
/A {
790 0 59 -48 723 625 setcachedevice
newpath
693 -48 moveto
713 -46 lineto
722 -39 lineto
723 29 lineto
583 524 lineto
554 625 lineto
515 620 lineto
308 337 lineto
300 330 lineto
195 319 lineto
186 282 lineto
244 273 lineto
254 270 lineto
252 261 lineto
59 -1 lineto
79 -28 lineto
122 4 lineto
320 268 lineto
328 275 lineto
597 272 lineto
601 264 lineto
684 -43 lineto
closepath
555 330 moveto
376 333 lineto
373 337 lineto
380 347 lineto
506 523 lineto
514 532 lineto
519 527 lineto
579 342 lineto
582 331 lineto
575 328 lineto
closepath
fill
} def
/B {
606 0 76 -28 590 629 setcachedevice
newpath
193 -28 moveto
349 -14 lineto
480 41 lineto
566 130 lineto
590 222 lineto
557 300 lineto
474 344 lineto
406 356 lineto
396 356 lineto
396 363 lineto
406 370 lineto
485 451 lineto
502 531 lineto
457 588 lineto
317 626 lineto
204 629 lineto
181 607 lineto
186 451 lineto
154 216 lineto
84 35 lineto
76 0 lineto
105 -19 lineto
closepath
194 28 moveto
156 35 lineto
150 41 lineto
219 256 lineto
221 266 lineto
226 275 lineto
308 301 lineto
469 284 lineto
524 238 lineto
529 179 lineto
479 104 lineto
372 46 lineto
215 26 lineto
closepath
236 351 moveto
246 564 lineto
250 572 lineto
259 574 lineto
404 547 lineto
446 512 lineto
424 453 lineto
313 372 lineto
242 340 lineto
234 340 lineto
closepath
fill
} def
/C {
609 0 107 -23 580 593 setcachedevice
newpath
299 -23 moveto
434 8 lineto
552 93 lineto
575 129 lineto
548 150 lineto
409 54 lineto
316 32 lineto
228 68 lineto
171 165 lineto
171 284 lineto
218 393 lineto
310 495 lineto
409 540 lineto
500 535 lineto
552 497 lineto
580 512 lineto
572 559 lineto
517 592 lineto
405 593 lineto
304 551 lineto
195 451 lineto
123 316 lineto
107 172 lineto
155 59 lineto
243 -9 lineto
closepath
fill
} def
/D {
736 0 53 -43 741 625 setcachedevice
newpath
79 -43 moveto
265 -35 lineto
442 14 lineto
587 98 lineto
689 206 lineto
741 326 lineto
738 425 lineto
671 517 lineto
536 586 lineto
363 625 lineto
206 619 lineto
180 584 lineto
207 564 lineto
249 569 lineto
258 568 lineto
258 558 lineto
205 237 lineto
136 23 lineto
133 13 lineto
123 9 lineto
62 4 lineto
53 -32 lineto
closepath
193 23 moveto
275 289 lineto
316 558 lineto
319 568 lineto
328 569 lineto
511 532 lineto
644 460 lineto
689 377 lineto
665 266 lineto
581 158 lineto
448 74 lineto
272 19 lineto
197 9 lineto
189 13 lineto
closepath
fill
} def
/E {
653 0 61 -43 699 624 setcachedevice
newpath
77 -43 moveto
460 -35 lineto
573 -37 lineto
592 -1 lineto
551 17 lineto
177 14 lineto
135 13 lineto
127 16 lineto
128 25 lineto
206 358 lineto
211 367 lineto
222 367 lineto
510 363 lineto
530 388 lineto
510 416 lineto
219 423 lineto
216 430 lineto
231 564 lineto
236 572 lineto
246 572 lineto
680 569 lineto
699 596 lineto
676 621 lineto
198 624 lineto
175 575 lineto
128 246 lineto
61 -20 lineto
closepath
fill
} def
/F {
636 0 49 -64 694 634 setcachedevice
newpath
75 -64 moveto
105 -35 lineto
201 358 lineto
208 363 lineto
509 368 lineto
534 400 lineto
504 421 lineto
224 421 lineto
214 423 lineto
216 435 lineto
235 569 lineto
240 578 lineto
251 578 lineto
653 572 lineto
692 583 lineto
694 620 lineto
565 634 lineto
214 625 lineto
180 601 lineto
155 407 lineto
49 -54 lineto
55 -61 lineto
closepath
fill
} def
/G {
627 0 113 -111 686 609 setcachedevice
newpath
435 -111 moveto
474 -103 lineto
528 123 lineto
545 275 lineto
509 282 lineto
491 233 lineto
459 57 lineto
455 48 lineto
445 46 lineto
291 46 lineto
208 92 lineto
164 186 lineto
179 298 lineto
245 400 lineto
375 490 lineto
530 546 lineto
675 560 lineto
686 597 lineto
609 609 lineto
442 577 lineto
273 490 lineto
167 386 lineto
113 268 lineto
114 137 lineto
171 41 lineto
273 -8 lineto
425 -12 lineto
435 -10 lineto
444 -12 lineto
443 -23 lineto
430 -104 lineto
closepath
fill
} def
/H {
631 0 107 -43 694 629 setcachedevice
newpath
128 -43 moveto
162 -17 lineto
238 314 lineto
241 324 lineto
252 328 lineto
576 337 lineto
583 333 lineto
581 324 lineto
513 -6 lineto
549 -12 lineto
582 76 lineto
694 616 lineto
687 624 lineto
657 624 lineto
649 615 lineto
598 409 lineto
596 398 lineto
587 395 lineto
264 381 lineto
254 384 lineto
254 393 lineto
273 619 lineto
239 629 lineto
217 584 lineto
196 389 lineto
193 379 lineto
182 379 lineto
133 365 lineto
134 328 lineto
173 324 lineto
183 323 lineto
184 312 lineto
107 -26 lineto
closepath
fill
} def
/I {
190 0 83 13 224 588 setcachedevice
newpath
108 13 moveto
138 43 lineto
218 469 lineto
224 582 lineto
188 588 lineto
168 541 lineto
119 209 lineto
83 23 lineto
89 16 lineto
closepath
fill
} def
/J {
587 0 84 28 650 634 setcachedevice
newpath
183 28 moveto
287 46 lineto
353 105 lineto
421 266 lineto
469 524 lineto
474 555 lineto
479 564 lineto
489 566 lineto
634 579 lineto
650 616 lineto
597 634 lineto
241 597 lineto
225 560 lineto
230 552 lineto
405 559 lineto
415 558 lineto
416 547 lineto
364 268 lineto
305 128 lineto
252 87 lineto
172 93 lineto
118 143 lineto
84 123 lineto
99 71 lineto
closepath
fill
} def
/K {
554 0 78 -32 583 621 setcachedevice
newpath
94 -32 moveto
128 -8 lineto
175 187 lineto
182 194 lineto
242 246 lineto
250 254 lineto
259 252 lineto
448 -26 lineto
478 -25 lineto
494 1 lineto
307 293 lineto
306 301 lineto
548 544 lineto
583 600 lineto
557 621 lineto
224 296 lineto
198 275 lineto
191 266 lineto
190 275 lineto
232 614 lineto
197 620 lineto
174 574 lineto
99 97 lineto
78 -24 lineto
closepath
fill
} def
/L {
534 0 93 -25 484 578 setcachedevice
newpath
120 -25 moveto
381 7 lineto
475 21 lineto
484 50 lineto
452 67 lineto
160 39 lineto
150 35 lineto
147 43 lineto
213 435 lineto
217 577 lineto
180 578 lineto
163 519 lineto
100 76 lineto
93 -3 lineto
closepath
fill
} def
/M {
589 0 78 -43 623 620 setcachedevice
newpath
488 -43 moveto
517 -32 lineto
613 421 lineto
623 603 lineto
592 620 lineto
543 574 lineto
364 266 lineto
356 261 lineto
354 270 lineto
280 572 lineto
253 609 lineto
209 580 lineto
93 170 lineto
78 7 lineto
110 -6 lineto
132 28 lineto
176 286 lineto
238 490 lineto
242 499 lineto
245 488 lineto
314 196 lineto
358 182 lineto
411 240 lineto
554 493 lineto
559 503 lineto
565 503 lineto
565 493 lineto
473 -32 lineto
closepath
fill
} def
/N {
492 0 81 -23 548 597 setcachedevice
newpath
102 -23 moveto
112 -19 lineto
137 13 lineto
206 405 lineto
209 446 lineto
213 456 lineto
216 449 lineto
323 150 lineto
369 -4 lineto
417 4 lineto
475 218 lineto
548 580 lineto
517 596 lineto
490 563 lineto
397 128 lineto
390 123 lineto
389 133 lineto
280 460 lineto
217 597 lineto
177 588 lineto
154 467 lineto
100 97 lineto
81 -4 lineto
closepath
fill
} def
/O {
590 0 111 2 592 583 setcachedevice
newpath
276 2 moveto
369 9 lineto
465 64 lineto
555 180 lineto
592 312 lineto
588 462 lineto
536 550 lineto
456 583 lineto
365 565 lineto
254 490 lineto
167 386 lineto
111 256 lineto
121 128 lineto
194 30 lineto
closepath
283 61 moveto
197 118 lineto
165 218 lineto
187 310 lineto
257 423 lineto
354 504 lineto
437 527 lineto
504 495 lineto
540 395 lineto
522 241 lineto
465 135 lineto
386 71 lineto
292 59 lineto
closepath
fill
} def
/P {
683 0 124 -54 715 632 setcachedevice
newpath
146 -54 moveto
179 -27 lineto
293 425 lineto
316 570 lineto
318 580 lineto
327 583 lineto
537 559 lineto
654 495 lineto
655 456 lineto
584 402 lineto
275 282 lineto
273 245 lineto
282 241 lineto
511 312 lineto
661 389 lineto
715 460 lineto
705 527 lineto
614 593 lineto
453 632 lineto
226 632 lineto
181 606 lineto
187 572 lineto
249 578 lineto
258 578 lineto
259 569 lineto
190 216 lineto
124 -37 lineto
closepath
fill
} def
/Q {
695 0 107 -64 646 566 setcachedevice
newpath
251 -64 moveto
376 -52 lineto
491 14 lineto
518 37 lineto
526 39 lineto
611 -2 lineto
640 26 lineto
593 68 lineto
569 85 lineto
563 90 lineto
569 100 lineto
630 239 lineto
646 382 lineto
583 550 lineto
498 566 lineto
362 538 lineto
248 469 lineto
165 377 lineto
107 237 lineto
108 98 lineto
158 -2 lineto
closepath
271 -7 moveto
192 57 lineto
159 156 lineto
170 268 lineto
234 384 lineto
319 460 lineto
453 509 lineto
536 483 lineto
585 393 lineto
580 261 lineto
527 130 lineto
520 122 lineto
513 125 lineto
414 196 lineto
384 184 lineto
385 145 lineto
474 75 lineto
478 68 lineto
470 61 lineto
363 -2 lineto
closepath
fill
} def
/R {
676 0 140 -59 645 625 setcachedevice
newpath
152 -59 moveto
182 -54 lineto
242 149 lineto
299 521 lineto
302 551 lineto
302 561 lineto
310 566 lineto
495 536 lineto
583 467 lineto
583 418 lineto
518 356 lineto
354 291 lineto
273 264 lineto
276 229 lineto
353 162 lineto
521 0 lineto
579 -57 lineto
607 -41 lineto
597 3 lineto
428 179 lineto
368 224 lineto
361 230 lineto
364 238 lineto
374 241 lineto
557 321 lineto
627 393 lineto
645 453 lineto
613 531 lineto
506 592 lineto
300 625 lineto
196 616 lineto
178 591 lineto
200 566 lineto
231 569 lineto
241 569 lineto
246 563 lineto
192 180 lineto
140 -45 lineto
closepath
fill
} def
/S {
559 0 101 -7 526 614 setcachedevice
newpath
253 -7 moveto
388 -2 lineto
482 59 lineto
526 135 lineto
522 233 lineto
450 319 lineto
216 462 lineto
214 500 lineto
278 542 lineto
393 555 lineto
489 536 lineto
514 569 lineto
479 597 lineto
350 614 lineto
225 577 lineto
162 513 lineto
155 453 lineto
206 388 lineto
421 264 lineto
470 196 lineto
462 116 lineto
395 56 lineto
280 46 lineto
172 86 lineto
138 152 lineto
101 134 lineto
122 50 lineto
closepath
fill
} def
/T {
705 0 160 -30 755 578 setcachedevice
newpath
398 -30 moveto
432 -4 lineto
497 356 lineto
505 488 lineto
509 500 lineto
518 501 lineto
737 527 lineto
755 554 lineto
732 578 lineto
506 564 lineto
469 560 lineto
314 546 lineto
177 537 lineto
160 501 lineto
203 486 lineto
444 497 lineto
451 492 lineto
401 109 lineto
378 -13 lineto
closepath
fill
} def
/U {
501 0 126 2 538 643 setcachedevice
newpath
262 2 moveto
342 32 lineto
436 158 lineto
509 340 lineto
538 536 lineto
527 643 lineto
489 637 lineto
481 558 lineto
459 363 lineto
379 162 lineto
300 68 lineto
261 63 lineto
211 128 lineto
183 282 lineto
209 508 lineto
209 555 lineto
170 549 lineto
126 333 lineto
142 146 lineto
195 35 lineto
closepath
fill
} def
/V {
573 0 180 -12 639 652 setcachedevice
newpath
310 -12 moveto
350 1 lineto
500 305 lineto
639 634 lineto
610 652 lineto
578 611 lineto
342 90 lineto
335 87 lineto
334 97 lineto
263 503 lineto
216 615 lineto
180 600 lineto
188 532 lineto
251 257 lineto
295 -2 lineto
closepath
fill
} def
/W {
724 0 170 -48 777 629 setcachedevice
newpath
250 -48 moveto
290 -39 lineto
476 240 lineto
482 245 lineto
487 236 lineto
543 8 lineto
581 -12 lineto
618 6 lineto
677 157 lineto
769 528 lineto
777 629 lineto
740 629 lineto
718 560 lineto
639 218 lineto
597 85 lineto
592 75 lineto
585 71 lineto
583 82 lineto
522 316 lineto
484 321 lineto
396 217 lineto
282 37 lineto
275 32 lineto
274 43 lineto
231 426 lineto
222 595 lineto
185 597 lineto
170 550 lineto
206 82 lineto
235 -39 lineto
closepath
fill
} def
/X {
658 0 96 -7 651 620 setcachedevice
newpath
109 -7 moveto
147 4 lineto
379 254 lineto
388 263 lineto
395 259 lineto
569 -6 lineto
598 3 lineto
603 41 lineto
438 305 lineto
433 314 lineto
440 323 lineto
646 580 lineto
651 619 lineto
615 620 lineto
409 363 lineto
400 360 lineto
395 368 lineto
208 614 lineto
180 601 lineto
178 564 lineto
354 319 lineto
359 310 lineto
354 301 lineto
96 14 lineto
closepath
fill
} def
/Y {
669 0 177 -75 730 632 setcachedevice
newpath
298 -75 moveto
335 -54 lineto
415 252 lineto
730 609 lineto
717 632 lineto
678 615 lineto
393 303 lineto
385 294 lineto
380 296 lineto
294 500 lineto
213 602 lineto
177 586 lineto
189 541 lineto
282 388 lineto
340 194 lineto
285 -61 lineto
closepath
fill
} def
/Z {
618 0 75 -28 631 588 setcachedevice
newpath
103 -26 moveto
404 -18 lineto
546 -20 lineto
555 -13 lineto
550 21 lineto
274 39 lineto
192 35 lineto
182 37 lineto
188 45 lineto
416 282 lineto
631 559 lineto
614 587 lineto
201 588 lineto
171 559 lineto
182 535 lineto
534 532 lineto
544 532 lineto
543 523 lineto
268 192 lineto
75 1 lineto
93 -28 lineto
closepath
fill
} def
/bracketleft {
330 0 54 -122 370 676 setcachedevice
newpath
125 -122 moveto
239 -104 lineto
254 -75 lineto
251 -67 lineto
204 -59 lineto
121 -64 lineto
114 -57 lineto
116 -48 lineto
236 583 lineto
239 603 lineto
243 612 lineto
253 614 lineto
358 633 lineto
370 670 lineto
322 676 lineto
208 661 lineto
182 615 lineto
78 24 lineto
54 -98 lineto
95 -119 lineto
closepath
fill
} def
/backslash {
602 0 188 -79 528 657 setcachedevice
newpath
509 -79 moveto
519 -76 lineto
527 -70 lineto
528 -20 lineto
266 592 lineto
226 657 lineto
188 643 lineto
194 596 lineto
383 167 lineto
489 -75 lineto
closepath
fill
} def
/bracketright {
349 0 62 -127 412 703 setcachedevice
newpath
90 -127 moveto
255 -100 lineto
278 -52 lineto
317 254 lineto
412 680 lineto
384 703 lineto
198 693 lineto
191 656 lineto
331 643 lineto
342 644 lineto
347 639 lineto
345 629 lineto
240 141 lineto
221 -43 lineto
219 -52 lineto
209 -57 lineto
64 -82 lineto
62 -119 lineto
closepath
fill
} def
/asciicircum {
457 0 131 330 474 547 setcachedevice
newpath
159 330 moveto
259 405 lineto
319 474 lineto
326 476 lineto
331 469 lineto
443 356 lineto
474 386 lineto
394 488 lineto
334 547 lineto
282 510 lineto
187 416 lineto
131 360 lineto
149 330 lineto
closepath
fill
} def
/underscore {
780 0 60 -59 716 14 setcachedevice
newpath
489 -59 moveto
696 -54 lineto
716 -19 lineto
686 -2 lineto
98 14 lineto
60 4 lineto
60 -32 lineto
261 -52 lineto
closepath
fill
} def
/quoteleft {
284 0 186 486 325 674 setcachedevice
newpath
287 486 moveto
325 504 lineto
313 560 lineto
228 674 lineto
198 671 lineto
186 633 lineto
265 517 lineto
closepath
fill
} def
/a {
564 0 71 -59 511 442 setcachedevice
newpath
237 -59 moveto
466 -41 lineto
501 -14 lineto
511 208 lineto
481 330 lineto
410 404 lineto
301 442 lineto
207 425 lineto
180 395 lineto
194 372 lineto
307 384 lineto
406 328 lineto
446 244 lineto
447 233 lineto
445 224 lineto
437 228 lineto
310 252 lineto
195 225 lineto
98 150 lineto
71 59 lineto
117 -21 lineto
217 -57 lineto
closepath
233 -2 moveto
153 28 lineto
130 90 lineto
163 144 lineto
252 189 lineto
363 189 lineto
440 153 lineto
448 97 lineto
442 27 lineto
439 17 lineto
430 10 lineto
253 -4 lineto
closepath
fill
} def
/b {
570 0 82 -25 546 616 setcachedevice
newpath
103 -25 moveto
136 0 lineto
145 2 lineto
324 -19 lineto
428 6 lineto
511 79 lineto
546 180 lineto
523 252 lineto
451 296 lineto
299 301 lineto
196 270 lineto
188 270 lineto
188 280 lineto
230 616 lineto
193 616 lineto
165 527 lineto
82 -8 lineto
closepath
267 39 moveto
160 59 lineto
152 64 lineto
152 74 lineto
177 199 lineto
186 207 lineto
289 245 lineto
432 239 lineto
484 201 lineto
479 130 lineto
423 61 lineto
329 35 lineto
closepath
fill
} def
/c {
530 0 96 -28 500 435 setcachedevice
newpath
275 -28 moveto
420 -16 lineto
470 3 lineto
469 39 lineto
284 28 lineto
176 68 lineto
147 126 lineto
172 238 lineto
241 340 lineto
333 379 lineto
431 368 lineto
465 314 lineto
500 333 lineto
500 381 lineto
442 428 lineto
342 435 lineto
239 398 lineto
158 319 lineto
96 180 lineto
96 81 lineto
147 16 lineto
254 -25 lineto
closepath
fill
} def
/d {
586 0 87 -28 616 615 setcachedevice
newpath
322 -28 moveto
496 -14 lineto
529 14 lineto
524 71 lineto
616 601 lineto
583 615 lineto
558 580 lineto
513 300 lineto
510 289 lineto
503 289 lineto
406 331 lineto
262 328 lineto
160 284 lineto
100 204 lineto
87 114 lineto
128 28 lineto
212 -13 lineto
closepath
252 35 moveto
174 72 lineto
144 152 lineto
172 223 lineto
248 268 lineto
372 277 lineto
462 243 lineto
493 224 lineto
498 217 lineto
462 50 lineto
458 39 lineto
448 35 lineto
closepath
fill
} def
/e {
470 0 90 -12 424 409 setcachedevice
newpath
241 -12 moveto
345 8 lineto
424 72 lineto
419 108 lineto
381 97 lineto
295 46 lineto
214 50 lineto
159 100 lineto
147 158 lineto
153 165 lineto
278 197 lineto
370 259 lineto
391 321 lineto
351 395 lineto
284 409 lineto
195 365 lineto
109 246 lineto
90 134 lineto
128 37 lineto
201 -7 lineto
closepath
163 236 moveto
228 328 lineto
288 354 lineto
326 326 lineto
328 287 lineto
207 229 lineto
166 221 lineto
158 225 lineto
closepath
fill
} def
/f {
498 0 108 -30 534 587 setcachedevice
newpath
194 -30 moveto
228 -7 lineto
247 207 lineto
255 212 lineto
319 219 lineto
326 226 lineto
332 257 lineto
326 264 lineto
265 268 lineto
257 270 lineto
256 280 lineto
291 476 lineto
334 526 lineto
424 522 lineto
474 481 lineto
491 437 lineto
521 444 lineto
534 481 lineto
500 549 lineto
402 587 lineto
308 572 lineto
247 507 lineto
204 342 lineto
197 270 lineto
190 263 lineto
108 244 lineto
108 207 lineto
178 207 lineto
189 208 lineto
192 200 lineto
178 -21 lineto
closepath
fill
} def
/g {
528 0 22 -319 499 356 setcachedevice
newpath
234 -319 moveto
317 -307 lineto
384 -247 lineto
448 -98 lineto
499 180 lineto
496 317 lineto
410 356 lineto
295 337 lineto
179 268 lineto
103 172 lineto
74 70 lineto
95 7 lineto
158 -12 lineto
272 17 lineto
374 89 lineto
432 158 lineto
437 164 lineto
438 153 lineto
388 -112 lineto
326 -241 lineto
266 -264 lineto
42 -201 lineto
22 -236 lineto
114 -282 lineto
closepath
136 56 moveto
145 136 lineto
201 217 lineto
295 280 lineto
398 296 lineto
425 289 lineto
433 284 lineto
432 273 lineto
354 141 lineto
254 67 lineto
160 43 lineto
closepath
fill
} def
/h {
505 0 91 -41 485 615 setcachedevice
newpath
404 -41 moveto
439 -14 lineto
485 201 lineto
468 317 lineto
414 367 lineto
341 351 lineto
213 237 lineto
192 209 lineto
184 204 lineto
182 215 lineto
232 606 lineto
197 615 lineto
175 579 lineto
103 93 lineto
91 1 lineto
114 -12 lineto
125 -8 lineto
159 43 lineto
247 199 lineto
345 293 lineto
395 308 lineto
425 241 lineto
410 87 lineto
384 -24 lineto
closepath
fill
} def
/i {
295 0 134 -18 315 523 setcachedevice
newpath
157 -18 moveto
188 8 lineto
230 215 lineto
226 363 lineto
188 360 lineto
173 291 lineto
157 97 lineto
134 -4 lineto
closepath
284 389 moveto
315 400 lineto
315 437 lineto
191 523 lineto
159 497 lineto
191 453 lineto
closepath
fill
} def
/j {
406 0 38 -188 428 527 setcachedevice
newpath
128 -188 moveto
189 -172 lineto
260 -86 lineto
319 86 lineto
341 351 lineto
304 356 lineto
295 349 lineto
254 43 lineto
194 -97 lineto
151 -134 lineto
94 -101 lineto
61 -86 lineto
38 -108 lineto
61 -156 lineto
closepath
394 391 moveto
428 414 lineto
413 446 lineto
296 527 lineto
262 504 lineto
277 472 lineto
closepath
fill
} def
/k {
434 0 81 -39 384 609 setcachedevice
newpath
106 -39 moveto
135 -8 lineto
166 115 lineto
217 160 lineto
227 165 lineto
234 159 lineto
314 34 lineto
339 -4 lineto
376 12 lineto
357 85 lineto
279 202 lineto
273 209 lineto
279 217 lineto
384 321 lineto
376 347 lineto
337 340 lineto
194 208 lineto
187 200 lineto
179 202 lineto
179 211 lineto
224 601 lineto
217 609 lineto
180 600 lineto
145 393 lineto
89 32 lineto
81 -26 lineto
closepath
fill
} def
/l {
190 0 79 -2 226 592 setcachedevice
newpath
105 -2 moveto
134 25 lineto
226 577 lineto
205 592 lineto
173 569 lineto
79 28 lineto
96 -2 lineto
closepath
fill
} def
/m {
661 0 112 -41 613 382 setcachedevice
newpath
557 -39 moveto
566 -41 lineto
576 -37 lineto
600 -1 lineto
613 210 lineto
570 317 lineto
526 333 lineto
472 293 lineto
423 218 lineto
417 209 lineto
412 209 lineto
412 218 lineto
375 338 lineto
327 367 lineto
270 340 lineto
193 241 lineto
189 240 lineto
187 250 lineto
176 379 lineto
139 382 lineto
127 335 lineto
121 92 lineto
112 10 lineto
147 1 lineto
156 7 lineto
228 200 lineto
308 307 lineto
317 308 lineto
325 303 lineto
355 193 lineto
347 -8 lineto
373 -16 lineto
400 14 lineto
470 197 lineto
512 263 lineto
519 272 lineto
527 268 lineto
558 157 lineto
544 -25 lineto
closepath
fill
} def
/n {
484 0 107 -64 446 423 setcachedevice
newpath
122 -64 moveto
142 -61 lineto
152 -54 lineto
262 206 lineto
349 323 lineto
358 324 lineto
365 317 lineto
388 164 lineto
369 -18 lineto
404 -28 lineto
427 17 lineto
446 222 lineto
414 354 lineto
368 384 lineto
309 356 lineto
210 219 lineto
203 210 lineto
196 215 lineto
197 224 lineto
194 405 lineto
163 423 lineto
138 391 lineto
136 160 lineto
107 -54 lineto
closepath
fill
} def
/o {
551 0 98 23 534 405 setcachedevice
newpath
245 23 moveto
349 35 lineto
465 104 lineto
530 195 lineto
534 286 lineto
467 388 lineto
392 405 lineto
246 365 lineto
138 280 lineto
98 193 lineto
111 105 lineto
179 41 lineto
closepath
237 83 moveto
167 130 lineto
155 197 lineto
201 272 lineto
308 333 lineto
411 347 lineto
475 270 lineto
473 200 lineto
418 129 lineto
318 81 lineto
closepath
fill
} def
/p {
530 0 0 -317 497 356 setcachedevice
newpath
21 -317 moveto
53 -289 lineto
128 -32 lineto
133 -23 lineto
142 -17 lineto
320 -4 lineto
432 41 lineto
494 120 lineto
497 201 lineto
435 282 lineto
306 342 lineto
198 356 lineto
148 335 lineto
44 -138 lineto
0 -301 lineto
closepath
160 39 moveto
150 39 lineto
147 46 lineto
189 286 lineto
191 296 lineto
199 301 lineto
333 270 lineto
425 207 lineto
444 143 lineto
408 87 lineto
296 45 lineto
closepath
fill
} def
/q {
476 0 83 -291 468 377 setcachedevice
newpath
334 -291 moveto
363 -261 lineto
468 368 lineto
392 377 lineto
278 342 lineto
153 245 lineto
83 119 lineto
87 21 lineto
145 -24 lineto
236 -17 lineto
340 48 lineto
355 64 lineto
363 71 lineto
367 68 lineto
308 -282 lineto
closepath
174 28 moveto
136 67 lineto
151 148 lineto
235 254 lineto
344 312 lineto
397 319 lineto
406 317 lineto
407 307 lineto
351 143 lineto
275 59 lineto
194 26 lineto
closepath
fill
} def
/r {
468 0 71 0 463 425 setcachedevice
newpath
87 0 moveto
122 25 lineto
179 294 lineto
267 338 lineto
347 333 lineto
402 282 lineto
428 256 lineto
463 279 lineto
427 354 lineto
342 395 lineto
239 388 lineto
199 370 lineto
189 370 lineto
189 379 lineto
182 425 lineto
152 421 lineto
128 340 lineto
71 8 lineto
closepath
fill
} def
/s {
520 0 53 -64 470 405 setcachedevice
newpath
142 -64 moveto
309 -52 lineto
421 -7 lineto
470 52 lineto
469 109 lineto
386 185 lineto
248 268 lineto
245 277 lineto
248 286 lineto
380 347 lineto
449 347 lineto
461 384 lineto
421 405 lineto
306 377 lineto
202 310 lineto
185 261 lineto
230 202 lineto
408 93 lineto
415 57 lineto
349 14 lineto
214 -9 lineto
67 4 lineto
53 -32 lineto
closepath
fill
} def
/t {
485 0 122 -9 498 497 setcachedevice
newpath
300 -9 moveto
328 20 lineto
361 300 lineto
363 310 lineto
373 312 lineto
488 328 lineto
498 365 lineto
451 375 lineto
378 368 lineto
370 370 lineto
371 381 lineto
372 493 lineto
336 497 lineto
317 449 lineto
312 377 lineto
311 365 lineto
303 361 lineto
136 340 lineto
122 312 lineto
151 291 lineto
297 307 lineto
306 303 lineto
304 293 lineto
274 -2 lineto
closepath
fill
} def
/u {
525 0 106 -23 517 435 setcachedevice
newpath
428 -23 moveto
464 -1 lineto
517 428 lineto
482 435 lineto
461 388 lineto
434 202 lineto
427 193 lineto
277 70 lineto
217 54 lineto
178 92 lineto
164 218 lineto
194 416 lineto
170 428 lineto
140 400 lineto
106 153 lineto
136 43 lineto
185 0 lineto
267 8 lineto
379 85 lineto
414 115 lineto
421 119 lineto
422 109 lineto
414 -10 lineto
closepath
fill
} def
/v {
433 0 135 13 461 462 setcachedevice
newpath
219 13 moveto
258 23 lineto
461 444 lineto
432 462 lineto
398 421 lineto
264 157 lineto
257 146 lineto
253 151 lineto
198 356 lineto
172 395 lineto
135 377 lineto
175 230 lineto
closepath
fill
} def
/w {
673 0 127 2 699 455 setcachedevice
newpath
448 2 moveto
496 18 lineto
699 432 lineto
674 455 lineto
637 414 lineto
483 108 lineto
478 98 lineto
474 107 lineto
437 338 lineto
403 365 lineto
358 333 lineto
257 126 lineto
252 115 lineto
245 119 lineto
169 368 lineto
132 361 lineto
127 312 lineto
219 19 lineto
259 20 lineto
317 127 lineto
383 266 lineto
388 275 lineto
395 275 lineto
395 264 lineto
433 13 lineto
closepath
fill
} def
/x {
494 0 64 2 453 414 setcachedevice
newpath
78 2 moveto
118 10 lineto
276 160 lineto
285 168 lineto
293 165 lineto
409 30 lineto
444 52 lineto
427 93 lineto
333 212 lineto
333 222 lineto
452 386 lineto
453 405 lineto
447 414 lineto
408 409 lineto
308 272 lineto
300 263 lineto
292 263 lineto
178 412 lineto
140 398 lineto
148 352 lineto
251 216 lineto
250 208 lineto
64 25 lineto
closepath
fill
} def
/y {
537 0 126 -268 546 381 setcachedevice
newpath
164 -268 moveto
201 -254 lineto
546 344 lineto
540 381 lineto
502 374 lineto
334 72 lineto
328 70 lineto
323 78 lineto
164 342 lineto
134 340 lineto
126 333 lineto
127 294 lineto
291 8 lineto
289 0 lineto
154 -252 lineto
closepath
fill
} def
/z {
595 0 129 -14 576 386 setcachedevice
newpath
149 -14 moveto
441 -7 lineto
532 -8 lineto
540 28 lineto
404 52 lineto
278 48 lineto
268 48 lineto
267 56 lineto
275 64 lineto
574 331 lineto
576 368 lineto
499 381 lineto
159 386 lineto
131 356 lineto
144 333 lineto
486 328 lineto
495 326 lineto
489 319 lineto
211 79 lineto
129 19 lineto
140 -12 lineto
closepath
fill
} def
/braceleft {
377 0 120 -75 417 672 setcachedevice
newpath
265 -75 moveto
295 -72 lineto
309 -35 lineto
211 35 lineto
222 136 lineto
261 268 lineto
231 300 lineto
205 312 lineto
199 319 lineto
209 323 lineto
276 358 lineto
316 541 lineto
358 606 lineto
417 635 lineto
416 672 lineto
367 670 lineto
296 615 lineto
246 505 lineto
229 393 lineto
226 386 lineto
215 381 lineto
135 342 lineto
120 303 lineto
178 259 lineto
196 252 lineto
199 245 lineto
151 59 lineto
170 -13 lineto
closepath
fill
} def
/bar {
212 0 86 -68 237 657 setcachedevice
newpath
116 -68 moveto
144 -35 lineto
219 419 lineto
237 653 lineto
201 657 lineto
181 610 lineto
118 125 lineto
86 -50 lineto
closepath
fill
} def
/braceright {
348 0 58 -127 341 663 setcachedevice
newpath
76 -127 moveto
179 -97 lineto
243 -35 lineto
266 148 lineto
263 196 lineto
262 206 lineto
270 212 lineto
341 268 lineto
336 305 lineto
286 345 lineto
317 467 lineto
330 579 lineto
293 644 lineto
228 663 lineto
189 648 lineto
186 611 lineto
253 597 lineto
274 536 lineto
225 342 lineto
249 291 lineto
266 282 lineto
271 275 lineto
266 270 lineto
204 222 lineto
200 21 lineto
178 -35 lineto
99 -67 lineto
60 -82 lineto
58 -119 lineto
closepath
fill
} def
/asciitilde {
488 0 125 280 504 414 setcachedevice
newpath
337 280 moveto
409 296 lineto
504 379 lineto
495 414 lineto
456 402 lineto
376 338 lineto
305 365 lineto
229 400 lineto
168 377 lineto
125 328 lineto
135 303 lineto
174 316 lineto
218 344 lineto
closepath
fill
} def
end
/BuildChar {
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/whaeberli F_whaeberli definefont pop
%%EndFont
%%BeginProcSet: texps.pro
TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont /setfont load]cvx def}def
/ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def
/ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def
end
%%EndProcSet
%%BeginProcSet: special.pro
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
clippath mark{transform{itransform moveto}}{transform{itransform lineto}
}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
maxlength dict begin /magscale false def normalscale currentpoint TR
/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
begin /SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
TeXDict begin @defspecial
userdict begin /start-hook { /cshow {dup stringwidth pop 2 div neg
0 rmoveto show} def} def /bop-hook{ gsave /Times-Roman findfont 10
scalefont setfont 306 20 translate 0 0 moveto (Version 1.1 - 4 March 1997)
cshow grestore} def end
@fedspecial end TeXDict begin
40258437 52099154 1000 300 300 (glspec.dvi) @start /Fa
1 4 df<1204A3EAC460EAF5E0EA3F80EA0E00EA3F80EAF5E0EAC460EA0400A30B0D7E8D
11>3 D E /Fb 19 122 df<EAFFC0A30A037D890F>45 D<48B512F038003C0001381330
1520A35BA214081500495AA21430EBFFF03801C020A448485A91C7FCA348C8FCA45AEAFF
F01C1C7E9B1B>70 D<001FB512C0381C070138300E0000201480126012405B1280A20000
14005BA45BA45BA4485AA41203EA7FFE1A1C799B1E>84 D<EA01E3EA0717EA0C0F1218EA
380E12301270A2EAE01CA41339A3EA6079EA319AEA1E0C10127C9115>97
D<13F8EA0304120EEA1C0EEA181CEA30001270A25AA51304EA60081310EA3060EA0F800F
127C9113>99 D<13F8EA0704120CEA1802EA38041230EA7008EA7FF0EAE000A5EA600413
08EA30101360EA0F800F127C9113>101 D<EB78C0EA01C5EA03031206000E1380120C12
1CA238380700A4130EA3EA181EEA0C7CEA079CEA001CA25BA2EAC030EAE070EAC1C0007F
C7FC121A7E9113>103 D<EA01801203EA0100C7FCA7121C12261247A2128EA2120E5AA3
5AA21271A31272A2123C091C7C9B0D>105 D<EA1F801203A2EA0700A4120EA45AA45AA4
5AA412E2A312E412641238091D7D9C0B>108 D<EA383EEA4CC3384D0380124E129E129C
121CA238380700A3130E00701340A2131C1480EAE00C3860070012127C9117>110
D<13F8EA030CEA0E06487E1218123000701380A238E00700A3130EA25BEA60185BEA30E0
EA0F8011127C9115>I<380387803804C860EBD03013E0EA09C014381201A238038070A3
1460380700E014C0EB0180EB8300EA0E86137890C7FCA25AA45AB4FC151A809115>I<EA
1C3CEA2642EA4687EA4707EA8E061300120EA25AA45AA45A123010127C9112>114
D<EA01F0EA0608120C131CEA1818EA1C00121F13C0EA0FF01207EA00781338EA603012E0
12C0EA8060EA60C0EA1F000E127D9111>I<12035AA3120EA4EAFFE0EA1C00A35AA45AA4
EAE080A2EAE100A2126612380B1A7C990E>I<381C0180EA2E03124EA2388E0700A2121C
A2EA380EA438301C80A3EA383C38184D00EA0F8611127C9116>I<EA1C06EA2E0EEA4E06
A2EA8E02A2121CA2EA3804A313081230A21310EA3820EA1840EA0F800F127C9113>I<38
038780380CC840380870E012103820E0C014001200A2485AA4EA03811263EAE38212C5EA
8584EA787813127E9113>120 D<381C0180EA2E03124EA2388E0700A2121CA2EA380EA4
EA301CA3EA383CEA1878EA0FB8EA003813301370EAE0605BEA81800043C7FC123C111A7C
9114>I E /Fc 3 55 df<0040132000C01360006013C03830018038180300EA0C066C5A
6C5AEA01B0EA00E0A2EA01B0EA0318EA060C487E487E38300180386000C0481360004013
2013147A9320>2 D<1203A4EAC30CEAE31CEA7338EA1FE0EA0780A2EA1FE0EA7338EAE3
1CEAC30CEA0300A40E127D9215>I<1460A214C0A2EB0180A3EB0300A21306A25BA25BA3
5BA25BA25BA2485AA248C7FCA31206A25AA25AA25AA35AA25A124013287A9D00>54
D E /Fd 12 94 df<1360AAB512F0A238006000AA14167E9119>43
D<120FEA30C0EA6060A2EA4020EAC030A9EA4020EA6060A2EA30C0EA0F000C137E9211>
48 D<120C121C12EC120CAFEAFFC00A137D9211>I<121FEA60C01360EAF07013301260EA
0070A2136013C012011380EA02005AEA08101210EA2020EA7FE012FF0C137E9211>I<EA
0FC0EA3070EA7038A31200133013E0EA0FC0EA007013381318131C126012F01318EAE038
EA6070EA1FC00E137F9211>I<136013E0A2EA016012021206120C120812101220126012
C0EAFFFCEA0060A5EA03FC0E137F9211>I<EA6060EA7FC01380EA44001240A3124FEA70
C0EA40E0EA00601370A212E0A21360EA40E0EA21C0EA1F000C137E9211>I<EA07C0EA0C
20EA10701220EA6000A25A12CFEAD0C0EAE060EAC0201330A31240EA6020EA2060EA10C0
EA0F000C137E9211>I<EA0FC0EA1070EA20181260A21270EA3C30EA3F60EA0F8013E0EA
31F0EA6078EAC01C130CA3EA6018EA3030EA0FC00E137F9211>56
D<120FEA3080EA6040EA4060EAC0201330A31240EA6070EA30B0EA0F30120013201360EA
E0401380EA4100123E0C137E9211>I<12FCA212C0B3A712FCA2061D7E9509>91
D<12FCA2120CB3A712FCA2061D809509>93 D E /Fe 35 124 df<120412081210123012
201260A2124012C0AA12401260A212201230121012081204061A7D920C>40
D<128012401220123012101218A21208120CAA12081218A212101230122012401280061A
7F920C>I<124012E0124003037E8209>46 D<121FEA3180EA60C0EA4040EAC060A8EA40
40EA60C0EA3180EA1F000B107F8F0F>48 D<1218127812981218AC12FF08107D8F0F>I<
121FEA6180EA40C0EA806012C01200A213C0EA0180EA030012065AEA10201220EA7FC012
FF0B107F8F0F>I<124012E012401200A5124012E01240030B7E8A09>58
D<13C0A2487E1360A2EA0230A3487EA2487EEA0FFCEA080C487EA2EA300738FC1FC01211
7F9016>65 D<EAFFF0EA3018130C1306A3130C1338EA3FF8EA300C1306A4130C131CEAFF
F00F117E9015>I<EA03F1EA0C0BEA1807EA3003EA60011240EAC000A5EA40011260EA30
021218EA0C0CEA03F010117E9016>I<EAFFF8EA180C13037F1480130014C0A6EB018014
005B130EEAFFF812117F9017>I<EAFFF8EA30181308130C13041344134013C0123F1230
1342A213021304A2131CEAFFFC0F117E9014>I<EAFFFEEA180613021303130113211320
1360EA1FE0EA18601320A21300A4B4FC10117F9014>I<EA03F1EA0C0BEA1807487E487E
124000C0C7FCA3EB1FC0EB030012401260123012186C5AEA03F912117E9017>I<38FF3F
C038180600A7EA1FFEEA1806A738FF3FC012117F9016>I<12FF1218AF12FF08117F900B>
I<EA0FE0EA0180AC12C1A2EA4300123E0B117E9010>I<38FF07E0381803001302130C13
105B5B13C0EA1960EA1A30EA1C10EA18187F7F1302130338FF07E013117F9017>I<B4FC
1218A91302A313061304131CEAFFFC0F117F9013>I<00FC137E001C1370001613B0A338
130130A2EA1182A3EA10C4A21368A3133038FE31FE17117F901B>I<38F81FC0381C0200
A212161213A2EA1182EA10C2A2136213321312131A130E1306A2EAFE0212117F9016>I<
EA03E0EA0C18EA1004487EEA6003EA400100C01380A538600300A2EA3006A2EA0C18EA03
E011117E9017>I<EAFFE0EA30381308130CA313081338EA3FE0EA3000A712FC0E117E90
14>I<EA03E0EA0C18EA1004EA3006487EEA400100C01380A500401300EA6003EA21C2EA
3226EA0E383803F080EA0010A21319EB1F00130E11167E9017>I<EAFFF0EA180C7F7FA3
13065BEA1FF0EA181C1306A41420130238FF01C013117F9016>I<EA1F20EA60E0EA0060
EA8020A213001260123EEA1F80EA01C0EA006013201280A2EAC040EAE0C0EA9F000B117E
9011>I<387FFF80EA60C1EA40C000C013C000801340A200001300AAEA0FFC12117F9016>
I<38FF1FC038180200AC1208EA0C046C5AEA01F012117F9016>I<38FC07C0383003007F
EA1802A26C5AA2EA0E0CEA0608A26C5AA2EA01A0A3EA00C0A212117F9016>I<39FC3F07
C039300C0180010E1300A20018130213131406000C1304EB2184000613881361EB40C800
0313D0EB8070A200011360EB00201A117F901E>I<38FE1F8038180E00EA0C0CEA0E08EA
06106C5AEA01E05B1200EA0160487EEA0238EA0418487EEA1806EA380738FC0FC012117F
9016>I<38FC07C038300300EA1802EA1C06EA0C046C5AEA07101203EA01A0EA00C0A7EA
07F012117F9016>I<EA7FFCEA7018EA6038EA4030136013C012011380EA03001206EA0E
04120C12181230EA700CEA601CEAFFFC0E117F9012>I<EAF8F0EA7060EA3040A2EA1880
A2EA0D00A37EA20C0B7F8A10>118 D<EAFFF80D0180860F>123 D
E /Ff 5 111 df<124012E012601220A31240A2128003097D820A>59
D<123C120C5AA45AEA3380EA3C60EA3020EA6030A4EAC060A2EA40C0EA6080EA2300121E
0C147F930F>98 D<1206120712061200A41238124CA2128C12981218A212301232A21264
A2123808147F930C>105 D<3830F87C38590C86384E0D06EA9C0EEA980C1218A248485A
15801418A23960301900140E190D7F8C1D>109 D<EA30F8EA590C124E129C12981218A2
EA301813191331A2EA6032131C100D7F8C15>I E /Fg 5 121 df<1204120C1200A51230
12581298A21230A212601264A21268123006127E910B>105 D<12781218A21230A41260
A412C0A212C8A212D0126005117E900A>108 D<3871F1F0389A1A18EA9C1CEA98181218
38303030A214321462386060641438170B7E8A1B>I<EA73C0EA5C20EA9860130012185A
A45AA20B0B7E8A0E>114 D<EA0F38EA1144EA218C13801201EA0300A21308EA4310EAC7
30EA79C00E0B7F8A11>120 D E /Fh 24 122 df<13F8EA030C380E0604EA1C07383803
080030138800701390A200E013A0A214C01480A3EA6007EB0B8838307190380F80E01612
7E911B>11 D<EB01F0EB0618EB080C1310EB200E13401380141CEA01001418143838020F
F0EB10C0EB0FE0EB00305AA21438A2481370A314E01218EB01C000141380EB0300EA230E
EA20F890C7FCA25AA45AA217257F9C17>I<140CA2141CA2143C145CA2149E148EEB010E
1302A21304A213081310A2497EEB3FFFEB40071380A2EA0100A212025AA2001C148039FF
803FF01C1D7F9C1F>65 D<48B5FC39003C01C090383800E015F01570A25B15F0A2EC01E0
9038E003C0EC0780EC1F00EBFFFC3801C00FEC0780EC03C0A2EA0380A439070007801500
140E5C000E1378B512C01C1C7E9B1F>I<903801F80890380E0618903838013890386000
F048481370485A48C71230481420120E5A123C15005AA35AA45CA300701302A200305B00
385B6C5B6C136038070180D800FEC7FC1D1E7E9C1E>I<48B5128039003C01E090383800
701538153C151C5B151EA35BA44848133CA3153848481378157015F015E039070001C0EC
0380EC0700141C000E1378B512C01F1C7E9B22>I<3801FFC038003C001338A45BA45BA4
485AA4485AA448C7FCA45AEAFFE0121C7E9B12>73 D<D801FE14FFD8003E14F0012EEB01
E01502A21504014EEB09C0A201471311A20187EB23801543A215833A0107010700A2EB03
82A20002EB840E1488A214900004EBA01CA2EB01C0120C001CEB803C3AFF8103FF80281C
7E9B28>77 D<D801FCEBFF80D8001CEB1C00012E13181510A2132701475B13431480A290
3881C040A3EB80E0D801005B1470A300020139C7FCA3141D48131E140EA2120C001C1304
EAFF80211C7E9B21>I<48B5FC39003C03C090383800E015F01570A24913F0A315E0EBE0
01EC03C0EC0700141E3801FFF001C0C7FCA3485AA448C8FCA45AEAFFE01C1C7E9B1B>80
D<3801FFFE39003C03C090383800E015F01570A24913F0A3EC01E001E013C0EC0780EC1E
00EBFFF03801C038140C140EA2EA0380A43807001E1508A2151048130FD8FFE01320C7EA
03C01D1D7E9B20>82 D<001FB512F0391C03807039300700300020142012601240130E12
80A2000014005BA45BA45BA45BA41201EA7FFF1C1C7F9B18>84 D<39FFC00FF0391C0003
8015001402A25C5C121E000E5B143014205CA25C49C7FC120FEA07025BA25BA25B5BEA03
A013C05BA290C8FCA21C1D7D9B18>86 D<39FFE007F8390F0001E0158015006C13026D5A
00035BEBC018141000015B6D5A00005B01F1C7FC13F21376137C1338A25BA45BA4485AEA
1FFC1D1C7F9B18>89 D<90B512E09038F001C03901C003809038800700EB000E141E0002
131C5C5CC75A495A495A49C7FC5B131E131C5BEB7002495AEA01C0EA038048485A5A000E
1318485B48137048485AB5FC1B1C7E9B1C>I<EA01E3EA0717EA0C0F1218EA380E123012
70A2485AA4EB3880A3EA607838319900EA1E0E11127E9116>97 D<EB07E01300A2EB01C0
A4EB0380A43801E700EA0717EA0C0F1218EA380E12301270A2485AA4EB3880A3EA607838
319900EA1E0E131D7E9C16>100 D<EA01C01203A2EA0180C7FCA6121C12271247A21287
A2120EA25AA35A1380A21270EA71001232121C0A1C7E9B0E>105
D<EA0FC01201A2485AA448C7FCA4EA0E07EB0880EB11C01323381C4780EB8300001DC7FC
121EEA3FC0EA38E01370A2EA7071A31372EAE032EA601C121D7E9C16>107
D<39381F81F0394E20C618394640E81CEB80F0EA8F00008E13E0120EA2391C01C038A315
703938038071A215E115E23970070064D83003133820127E9124>109
D<EA3C1F384E6180384681C0EA4701128F128E120EA2381C0380A3EB070000381310A213
0E1420387006403830038014127E9119>I<EA01F0EA060CEA0C04130EEA180CEA1C0012
1FEA0FE013F0EA03F8EA0038EA201CEA701812F01310EA8030EA6060EA1F800F127E9113
>115 D<380787803808C8403810F0C03820F1E0EBE3C03840E1803800E000A2485AA438
63808012F3EB810012E5EA84C6EA787813127E9118>120 D<001C13C0EA27011247A238
870380A2120EA2381C0700A4EA180EA3EA1C1EEA0C3CEA07DCEA001C1318EA6038EAF030
5B485AEA4180003EC7FC121A7E9114>I E /Fi 31 116 df<132013401380EA01005A12
06A25AA25AA212381230A21270A3126012E0AD12601270A31230A212381218A27EA27EA2
7E7EEA0080134013200B317A8113>0 D<7E12407E7E12187EA27EA27EA213801201A213
C0A3120013E0AD13C01201A31380A212031300A21206A25AA25A12105A5A5A0B317F8113
>I<12C0B3A9021B7A800E>12 D<1430146014C0EB0180EB03005B130E130C5B13381330
13705B5B12015B1203A290C7FC5A1206120EA2120C121CA312181238A45AA75AB3A31270
A77EA41218121CA3120C120EA2120612077E7FA212017F12007F13701330133813187F13
0E7F7FEB0180EB00C014601430146377811F>18 D<12C012607E7E7E120E7E7E6C7E7F12
007F1370133013381318131CA2130C130E13061307A27F1480A3130114C0A4EB00E0A714
70B3A314E0A7EB01C0A414801303A314005BA21306130E130C131CA21318133813301370
5B5B12015B48C7FC5A120E120C5A5A5A5A14637F811F>I<EAFFF8A3EAE000B3B3B3B3B3
A60D63768118>24 D<EAFFF8A3EA0038B3B3B3B3B3A60D63808118>I<1470EB01F0EB03
C0EB0780EB0E005B5B5BA213F05BB3AC485AA3485A48C7FC1206120E12385A12C012707E
120E120612076C7E6C7EA36C7EB3AC7F1370A27F7F7FEB0780EB03C0EB01F0EB00701463
7B811F>I<12E07E127C121E7E7E6C7E6C7EA26C7EB3AD1370A27FA27F7F7FEB03C0EB00
F0147014E0EB03C0EB0700130E5B5BA25BA25BB3AD485AA2485A48C7FC5A121E127C12F0
5A14637B811F>I<1608161CA21638A31670A216E0A3ED01C0A3ED0380A3ED0700A2150E
A35DA35DA35DA25DA34A5AA34A5AA34AC7FCA2140EA35CA35CA25CA35CA3495AA3495AA2
49C8FCA3130EA35BA35BA25BA35BA3485AA3485AA248C9FCA3120EA35AA35AA25AA35AA2
124026637E812B>30 D<14181430146014E014C0EB01801303EB07001306130E130C131C
5BA25BA25BA212015BA2485AA3120790C7FCA25A120EA2121EA3121CA2123CA412381278
A8127012F0B3A812701278A81238123CA4121CA2121EA3120EA2120F7EA27F1203A36C7E
A27F1200A21370A27FA27F130C130E13061307EB03801301EB00C014E014601430141815
7C768121>32 D<12C012607E123812187E120E7E7E7F12017F6C7EA21370A27FA2133C13
1CA27FA3130F7FA214801303A214C0A31301A214E0A4130014F0A814701478B3A8147014
F0A814E01301A414C0A21303A31480A213071400A25B130EA35BA2133C1338A25BA25BA2
485A5B120390C7FC5A120E120C5A123812305A5A157C7F8121>I<141C143C14F8EB01E0
EB03C0EB0780EB0F00130E131E5BA35BB3B3A25BA3485AA2485A5B48C7FC120E5A127812
E0A21278121C7E7E6C7E7F6C7EA26C7EA31378B3B3A27FA37F130E130FEB0780EB03C0EB
01E0EB00F8143C141C167C7B8121>40 D<140C141814381430146014E014C01301EB0380
A2EB0700A2130EA25BA25BA21378137013F0A25B1201A2485AA4485AA3120F90C7FCA35A
A2121EA3123EA4123CA3127CA81278A212F8B1164B748024>48 D<12C01260127012307E
121C120C120E7EA26C7EA26C7EA26C7EA21370A213781338133CA2131C131EA27FA4EB07
80A314C01303A314E0A21301A314F0A41300A314F8A81478A2147CB1164B7F8024>I<13
18137813F0EA01E0EA03C0EA0780EA0F005A121E123E123C127CA2127812F8B3A50D2570
7E25>56 D<12C012F0127C121E7EEA078013C01203EA01E013F0120013F8A3137CB3A50E
25797E25>I<12F8B3A51278127CA2123C123E121E121F7EEA0780EA03C0EA01E0EA00F0
137813180D25708025>I<137CB3A513F8A313F0120113E0EA03C012071380EA0F00121E
127C12F012C00E25798025>I<137CB3A613F8A313F0120113E0120313C0EA0780130012
0E5A5A12F012C012F012387E7E7E1380EA03C013E0120113F0120013F8A3137CB3A60E4D
798025>I<12F8B3A61278127CA2123CA2123E121E7EA2EA0780EA03C01201EA00E01378
1318137813E0EA01C01203EA0780EA0F00A2121E123E123CA2127CA2127812F8B3A60D4D
708025>I<12F8AE050E708025>I<12F8B11278A2127CA8123CA3123EA4121EA3121FA27E
A37F1207A36C7EA46C7EA212007FA2137013781338A27FA27FA27FA2EB0380A2EB01C013
0014E01460143014381418140C164B748224>64 D<147CB11478A214F8A814F0A31301A4
14E0A31303A214C0A313071480A3EB0F00A4131EA2131C133CA2133813781370A25BA248
5AA2485AA248C7FCA2120E120C121C12185A127012605A164B7F8224>I<12F8B3A9051B
748024>I<12F8B3A9051B6E8024>I<B712F0A20070C7EA0FF8007814006C1538001C151C
6C150C000F15046C15066C6C14026D14006C7E1200137013787F131C131E7F7F6D7EA291
C8FC5B13065B5B133813305B5B120149140248C8120600061504000E150C000C151C4815
384815F80070140F007FB612F0B7FC272A7E7F2C>80 D<B912C018E06CC81201EE001F6C
6CED03F06C6C1500000F17386D16186C6C160C6C6C1604A26C6C16026C6C1600137FA26D
7E6D7E130F806D7E6D7EA26D7E6D7E147E147F6E7E6E7EA2140F6E5A14034AC9FC140E5C
5C5CA25C495A495A49CAFC130EA24916024916045B49160C00011718491638484816F848
C9EA01F0000E160F48ED01FF003FB812E0A25AB912C0373A7E7F3C>88
D<16021606160CA21618A21630A21660A216C0A2ED0180A2ED0300A21506A25DA25DA25D
A25D1208001C5C123C00CE495A120E4AC7FC7E1406EA03805CEA01C05C13E000005BA2EB
7060A26D5AA2EB1D80A2011FC8FC7F130E130627327C812A>112
D<16021606A2160CA31618A31630A31660A316C0A3ED0180A3ED0300A31506A35DA35DA3
5DA35DA21208001C5C123C127C00DC495A128E120E4AC7FC7EA21406EA0380A25CA2EA01
C05CA2EA00E05CA3EB7060A36D5AA3EB1D80A3011FC8FC7FA2130E1306A2274B7C812A>
I<16021606A3160CA51618A51630A51660A516C0A5ED0180A5ED0300A51506A65DA55DA5
5DA55DA31208A2001C5CA2123CA2125C4A5A128E120EA34AC7FCA27EA31406A2EA0380A4
5CA2EA01C0A35CA3EA00E0A25CA31370A25CA413385CA5EB1D80A5010FC8FCA5130E1306
A3277D7C812A>115 D E /Fj 7 123 df<137F3801FF803807C1C0380F00E05A123E383C
01C0387C0780387FFF0013FC00F8C7FCA412781480EB03C0383C0F80381FFF00EA07F813
147C9318>101 D<137013F8A213F013601300A8EA0780EA1FC0EA39E012331273A2EAE7
C01207A2EA0F80A2EA1F00A21338EA3E70A21360EA3CE0EA1FC0EA0F000D217DA010>
105 D<3803C1F83807F7FC380EFE1E48487E01F81380A2EA39F01201A33903E01F00A314
3EEA07C0143C6D5AEBE1F0380FFFC0019FC7FC1380A248C8FCA4123EEAFFC0A2191D7F93
1B>112 D<13FE3803FF80380783C0EA0607120E1480381F030013F0EA0FFC6C7E6C7EC6
1380130FEA780700F81300A2EAF00EEA701CEA3FF8EA1FE012147D9316>115
D<13E0EA01F0A2EA03E0A4EA07C0A2EAFFF8A2EA0F80A4EA1F00A4123EA3131CEA7C38A2
1370EA3CE0EA3FC0EA0F800E1D7C9C12>I<3807800E381FE01E0039133EEA31F01271EA
73E000E3137CEA07C0A3380F80F8A4EB81F0A21383EA07873803FFE0EA01FBEA000314C0
EA1C07003E1380EB0F00EA3C1EEA387CEA1FF8EA0FC0171D7D931A>121
D<EBF0383803FC703807FFF04813E014C038000380EB0700130E5B13785BEA01C0485A38
070070000E13E0EA1FFF4813C048138038707F00EAE03C15147E9316>I
E /Fk 36 124 df<127012F812FCA3127C1204A21208A3121012201240060E7D850D>44
D<EB01801303A2EB0700A3130EA25BA35BA35BA25BA3485AA3485AA348C7FCA2120EA35A
A35AA25AA35AA25A11297D9E18>47 D<B512F814FF390FC01F80EC0FC0140715E0A515C0
EC0F80EC3F00EBFFFE9038C00F80EC07C0EC03E0A215F0A5EC07E0A2EC1FC0B6120014FC
1C1C7E9B22>66 D<90381FE0209038FFF8E03803F80F3807C003380F800148C7FC123E15
60127E127C00FC1400A8007C1460127E123E15C07E390F8001803907C003003803F80E38
00FFFCEB1FE01B1C7D9B22>I<B512F814FF390FC01FC0EC07E0EC01F015F8140015FC15
7CA2157EA8157CA315F8A2EC01F0EC07E0EC1FC0B6120014F81F1C7E9B25>I<B6FCA238
0FC01F1407801580A214C1A39038C1C00013C313FFA213C313C113C01560A2EC00E015C0
A21401A21403EC0F80B6FCA21B1C7E9B1F>I<B6FCA2380FC01F1407801580A2140114C1
A2ECC00013C113C313FFA213C313C113C0A391C7FCA6EAFFFEA2191C7E9B1E>I<90380F
F00890387FFE383901FC07F83807E001390F80007848C7FC481438123E007E1418127C00
FC1400A6EC7FFFA2007CEB01F8127E123E123F7EEA0F80EA07E03801FC0739007FFE7890
380FF818201C7D9B26>I<EAFFFCA2EA0FC0B3A6EAFFFCA20E1C7E9B12>73
D<EAFFFEA2EA0FC0AF1403A31407A21406140E141E147EB512FEA2181C7E9B1D>76
D<D8FFC0EB03FF6D5B000F15F0D80DF0130DA3D80CF81319A2017C1331A26D1361A26D13
C1A390380F8181A2903807C301A2EB03E6A2EB01FCA3EB00F8A23AFFC0701FFFA2281C7E
9B2D>I<B512F814FE390FC03F80140FEC07C015E0A515C0A2EC0F80EC3F00EBFFFC01C0
C7FCABEAFFFCA21B1C7E9B21>80 D<B512F014FE380FC03FEC0F806E7E81A55D4A5A023E
C7FCEBFFF0EBC07C80143F6E7EA6ED8180A2EC0FC13AFFFC07C300EC01FE211C7E9B24>
82 D<3807F820381FFEE0EA3C07EA7801EA700012F01460A26C130012FEEAFFE0EA7FFE
6C7E1480000F13C06C13E0EA007FEB03F01301130012C0A214E07E38F001C0EAFC0338EF
FF00EA83FC141C7D9B1B>I<007FB512E0A238781F81007013800060146000E0147000C0
1430A400001400B03807FFFEA21C1C7E9B21>I<EA0FF8EA1C1E383E0F80130714C0121C
1200137FEA07E7EA1F07123C127C12F8A3EA780B383E13F8EA0FE115127F9117>97
D<B4FCA2121FA9EB3F80EBE1E0EB8070EB0078143CA2143EA6143CA21478EB8070381EC1
E0381C3F00171D7F9C1B>I<EB0FF0A21301A9EA01F9EA0F07EA1C03EA3C011278A212F8
A61278A2123CEA1C03380F0FFEEA03F9171D7E9C1B>100 D<EA03FCEA0F07381C038038
3C01C0127814E012F8A2B5FC00F8C7FCA3127814607E6C13C0380F03803801FC0013127F
9116>I<137F3801E3803803C7C0EA0787120FEB8380EB8000A5EAFFF8A2EA0F80AEEA7F
F0A2121D809C0F>I<3803F0F0380E1F38EA3C0F3838073000781380A400381300EA3C0F
EA1E1CEA33F00030C7FCA3EA3FFF14C06C13E014F0387801F838F00078A3007013700078
13F0381E03C03807FF00151B7F9118>I<B4FCA2121FA9EB0FC0EB31E0EB40F0EB80F8A2
1300AB38FFE7FFA2181D7F9C1B>I<121E123FA4121EC7FCA6127FA2121FAEEAFFC0A20A
1E7F9D0E>I<B4FCA2121FB3A7EAFFE0A20B1D7F9C0E>108 D<39FF0FC07E903831E18F3A
1F40F20780D980FC13C0A2EB00F8AB3AFFE7FF3FF8A225127F9128>I<38FF0FC0EB31E0
381F40F0EB80F8A21300AB38FFE7FFA218127F911B>I<EA01FC380F0780381C01C0003C
13E0387800F0A200F813F8A6007813F0A2383C01E0381E03C0380F07803801FC0015127F
9118>I<38FF3F80EBE1E0381F80F0EB0078147C143C143EA6143C147C1478EB80F0EBC1
E0EB3F0090C7FCA6EAFFE0A2171A7F911B>I<EAFE3E1347381E8F80A3381F070090C7FC
AAEAFFE0A211127F9114>114 D<EA1FD8EA3078EA601812E0A2EAF000EAFF80EA7FE013
F0EA1FF8EA07FCEA007CEAC01CA212E01318EAF830EACFC00E127E9113>I<1203A45AA2
5AA2EA3FFC12FFEA1F00A9130CA4EA0F08EA0798EA03F00E1A7F9913>I<38FFC1FCA238
1F00601380000F13C0A23807C180A23803E300A213F7EA01F613FE6C5AA21378A2133016
127F9119>118 D<39FF8FF8FEA2391F03E030A3390F87F06013869038C6F8E03907CC78
C0A23903FC7D80EBF83D143F3901F01F00A20000131EEBE00EA21F127F9122>I<38FFC7
FCA2381F81C0380F83803807C700EA03EEEA01FC5B1200137C13FEEA01DF38039F80EA07
0F380607C0380C03E038FF07FCA216127F9119>I<38FFC1FCA2381F00601380000F13C0
A23807C180A23803E300A213F7EA01F613FE6C5AA21378A21330A25B1270EAF8E05BEAF9
800073C7FC123E161A7F9119>I<B512FE1701808B18>123 D E /Fl
58 123 df<90380FF83F90397FFDFFC03A01F81FE3E03903E03F87EA07C0D80F801307ED
03C06EC7FCA6B612FCA2260F801FC7FCB2397FF0FFF0A223237FA221>11
D<EB0FF0EB7FFC3801F80E3803E01F48485AEA0F80A2141E140C91C7FCA4B6FCA2380F80
1FB2397FF0FFE0A21B237FA21F>I<1238127C12FEA3127C123807077C8610>46
D<14181438A21470A214E0A3EB01C0A2EB0380A3EB0700A3130EA25BA35BA25BA35BA248
5AA3485AA248C7FCA3120EA35AA25AA35AA25AA25A15317DA41C>I<13FE3807FFC0380F
83E0381F01F0383E00F8A248137CA312FC147EAD007C137CA36C13F8A2381F01F0380F83
E03807FFC03800FE0017207E9F1C>I<13181378EA01F812FFA21201B3A7387FFFE0A213
207C9F1C>I<EA03FCEA0FFF383C1FC0387007E0007C13F0EAFE0314F8A21301127CEA38
03120014F0A2EB07E014C0EB0F80EB1F00133E13385BEBE018EA01C0EA0380EA0700000E
1338380FFFF05A5A5AB5FCA215207D9F1C>I<13FE3807FFC0380F07E0381E03F0123FEB
81F8A3EA1F0314F0120014E0EB07C0EB1F803801FE007F380007C0EB01F014F8EB00FCA2
003C13FE127EB4FCA314FCEA7E01007813F8381E07F0380FFFC03801FE0017207E9F1C>
I<14E013011303A21307130F131FA21337137713E7EA01C71387EA03071207120E120C12
181238127012E0B6FCA2380007E0A790B5FCA218207E9F1C>I<00301320383E01E0383F
FFC0148014005B13F8EA33C00030C7FCA4EA31FCEA37FF383E0FC0383807E0EA30030000
13F0A214F8A21238127C12FEA200FC13F0A2387007E0003013C0383C1F80380FFF00EA03
F815207D9F1C>I<EB1F80EBFFE03803E0703807C0F0380F01F8121F123EA2387E00F000
7C1300A2EAFC08EB7FC0EBFFE038FD80F038FF00F848137CA248137EA4127CA3003C137C
123E001E13F86C13F0380783E03803FFC0C6130017207E9F1C>I<12601278387FFFFEA2
14FC14F8A214F038E0006014C038C00180EB0300A2EA00065B131C131813381378A25BA3
1201A31203A76C5A17227DA11C>I<13FE3803FFC0380703E0380E00F05A1478123C123E
123F1380EBE0F0381FF9E0EBFFC06C13806C13C06C13E04813F0381E7FF8383C1FFCEA78
07EB01FEEAF000143E141EA36C131C007813387E001F13F0380FFFC00001130017207E9F
1C>I<EA01FE3807FF80380F83E0381E01F0EA3E004813F8147800FC137CA3147EA4007C
13FEA2EA3E01381E037EEA0FFEEA07FCEA0020EB007CA2121E003F13F8A214F0EB01E038
1E03C0381C0F80380FFE00EA03F817207E9F1C>I<1470A214F8A3497EA2497EA3EB067F
A2010C7F143FA2496C7EA201307F140F01707FEB6007A201C07F90B5FC4880EB8001A2D8
03007F14004880000680A23AFFE007FFF8A225227EA12A>65 D<B67E15F03907F001F86E
7E157EA2157FA5157E15FE5DEC03F890B55AA29038F001FCEC007E811680151F16C0A6ED
3F80A2ED7F00EC01FEB612F815C022227EA128>I<D903FE138090381FFF819038FF01E3
3901F8003FD803E0131F4848130F48481307121F48C71203A2481401127EA200FE91C7FC
A8127EED0180127F7E15036C6C1400120F6C6C1306D803F05B6C6C13386CB413F090381F
FFC0D903FEC7FC21227DA128>I<B67E15F03907F003FCEC007E81ED1F80ED0FC0ED07E0
A216F01503A316F8A916F0A3ED07E0A2ED0FC0ED1F80ED3F00157EEC03FCB612F0158025
227EA12B>I<B612FCA23807F000153C151C150C150EA21506140CA31500141C143CEBFF
FCA2EBF03C141C140CA21503A214001506A3150EA2151E153EEC01FCB6FCA220227EA125
>I<B612F8A23807F001EC007815381518151CA2150CA21418A21500A214381478EBFFF8
A2EBF07814381418A491C7FCA8B512C0A21E227EA123>I<D903FE134090391FFFC0C090
387F00F1D801F8133F4848130FD807C01307000F1403485A48C71201A2481400127EA200
FE1500A791380FFFFC127E007F9038001FC0A27EA26C7E6C7E6C7E6C7ED801FC133F3900
7F80E790381FFFC30103130026227DA12C>I<B51280A23807F000B3ACB51280A211227E
A115>73 D<B512C0A2D807F0C7FCB31518A41538A21570A215F014011407B6FCA21D227E
A122>76 D<D8FFF0EC0FFF6D5C000716E0D806FC1437A3017E1467A26D14C7A290391F80
0187A290390FC00307A3903807E006A2903803F00CA2903801F818A3903800FC30A2EC7E
60A2EC3FC0A2EC1F80A3EC0F00D8FFF091B5FC140630227EA135>I<D8FFF8EB1FFE7F00
07EC00C07FEA06FF6D7E6D7E6D7E130F806D7E6D7E6D7E130080EC7F80EC3FC0EC1FE0EC
0FF0140715F8EC03FCEC01FEEC00FF157FA2153F151F150F15071503A2D8FFF013011500
27227EA12C>I<EB07FC90383FFF809038FC07E03903F001F848486C7E4848137E48487F
A248C7EA1F80A24815C0007E140FA200FE15E0A9007E15C0007F141FA26C15806D133F00
1F15006C6C137E6C6C5B6C6C485A3900FC07E090383FFF80D907FCC7FC23227DA12A>I<
B6FC15E03907F007F0EC01FC1400157EA2157FA5157EA215FC1401EC07F090B512E01500
01F0C7FCADB57EA220227EA126>I<B512FEECFFC03907F007F0EC01F86E7E157E157FA6
157E5D4A5AEC07F090B512C05D9038F00FE06E7E6E7E6E7EA81606EC00FEEDFF0CB53880
3FF8ED0FF027227EA12A>82 D<3801FE023807FF86381F01FE383C007E007C131E007813
0EA200F81306A27E1400B4FC13E06CB4FC14C06C13F06C13F86C13FC000313FEEA003F13
03EB007F143FA200C0131FA36C131EA26C133C12FCB413F838C7FFE00080138018227DA1
1F>I<007FB61280A2397E03F80F00781407007014030060140100E015C0A200C01400A4
00001500B3A248B512F0A222227EA127>I<B538803FFCA23A07F0000180B3A60003EC03
007F000114066C6C130E017E5B90383F80F890380FFFE0010190C7FC26227EA12B>I<B5
EB0FFEA2D807F0EB00C0A26C6CEB0180A26D1303000115007F000014067F6D5BA2EC801C
013F1318ECC038011F133014E0010F5BA26D6C5AA214F901035B14FD6DB4C7FCA26D5AA3
147CA21438A227227FA12A>I<B53A0FFFF00FFEA2260FF00090C712E000076E14C0A26C
6C90393F800180A26D14C00001EE0300A26D496C5A0000026F1306A2017F9038C7F00CA2
028113F8013F01835BA29139C301FC38011F153016FE90260FE6005BA202FEEBFFE06D48
6D5AA26D486D5AA36D486DC7FCA36D48130EA237227FA13A>I<EA0FFC383FFF80387E07
C0EB03E0130114F0123C1200A2133FEA03FDEA1FC1EA3F01127E12FCA4EA7E02EB0CF838
1FF87F3807E03F18167E951B>97 D<B4FCA2121FABEB0FE0EB3FF8EBE07CEB803E497EEC
0F80A215C0A81580141F01801300EBC03E381EE07C381C3FF838180FC01A237EA21F>I<
EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6127C127EA2003E13
186C1330380FC0603807FFC0C6130015167E9519>I<EB01FEA2EB003EABEA01FC3807FF
BE380F81FE381F007E003E133E127E127C12FCA8127CA26C137E6C13FE380F83BE3907FF
3FC0EA01FC1A237EA21F>I<13FE3807FF80380F87C0381E01E0003E13F0EA7C0014F812
FCA2B5FCA200FCC7FCA3127CA2127E003E13186C1330380FC0703803FFC0C6130015167E
951A>I<EB1FC0EB7FE0EBF1F0EA01E31203EA07C3EBC1E0EBC000A6EAFFFEA2EA07C0B2
EA3FFCA2142380A211>I<3801FE0F3907FFBF80380F87C7381F03E7391E01E000003E7F
A5001E5BEA1F03380F87C0EBFF80D809FEC7FC0018C8FCA2121C381FFFE06C13F86C13FE
001F7F383C003F48EB0F80481307A40078EB0F006C131E001F137C6CB45A000113C01921
7F951C>I<B4FCA2121FABEB07E0EB1FF8EB307CEB403CEB803EA21300AE39FFE1FFC0A2
1A237EA21F>I<121C123E127FA3123E121CC7FCA7B4FCA2121FB2EAFFE0A20B247EA310>
I<1338137C13FEA3137C13381300A7EA03FEA2EA003EB3A5127812FC133C137CEA78F8EA
7FE0EA1F800F2E83A311>I<B4FCA2121FABECFF80A2EC38001460495A495A49C7FC130E
5B137E13FF13CFEB0F806D7E6D7E1301806D7E147C143C39FFE0FFC0A21A237EA21E>I<
B4FCA2121FB3ADEAFFE0A20B237EA210>I<3AFF07F007F090391FFC1FFC3A1F303E303E
01401340496C487EA201001300AE3BFFE0FFE0FFE0A22B167E9530>I<38FF07E0EB1FF8
381F307CEB403CEB803EA21300AE39FFE1FFC0A21A167E951F>I<13FE3807FFC0380F83
E0381E00F0003E13F848137CA300FC137EA7007C137CA26C13F8381F01F0380F83E03807
FFC03800FE0017167E951C>I<38FF0FE0EB3FF8381FE07CEB803E497E1580A2EC0FC0A8
EC1F80A29038803F00EBC03EEBE0FCEB3FF8EB0FC090C8FCA8EAFFE0A21A207E951F>I<
EAFE1FEB3FC0381E67E013C71387A2381F83C090C7FCADEAFFF0A213167E9517>114
D<EA0FF3EA3FFFEA781FEA6007EAE003A212F000FCC7FCEA7FE013F8EA3FFEEA0FFF1201
38000F80EAC007130312E0A238F00700EAFC0EEAEFFCEAC7F011167E9516>I<487EA412
03A21207A2120F123FB5FCA2EA0F80ABEB8180A5EB8300EA07C3EA03FEEA00F811207F9F
16>I<38FF01FEA2381F003EAF147E14FE380F81BE3907FF3FC0EA01FC1A167E951F>I<39
FFE01FE0A2391F800700000F1306EBC00E0007130C13E000035BA26C6C5AA26C6C5AA2EB
7CC0A2137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFE3FF07F8A23A1F007800C090
38807C01000F1580A23A07C07E030014DE5D3903E1DF06148FD801F1138CEBF307A2D800
FF13D8EBFE0315F890387C01F0A2013C5BEB3800A225167F9528>I<39FFE07FC0A2390F
801C006C6C5A6C6C5AEBF0606C6C5A3800F980137F6DC7FC7F80497E1337EB63E0EBC1F0
3801C0F848487E3807007E000E133E39FF80FFE0A21B167F951E>I<39FFE01FE0A2391F
800700000F1306EBC00E0007130C13E000035BA26C6C5AA26C6C5AA2EB7CC0A2137F6D5A
A26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8FC1B207F951E>
I<387FFFF0A2387C03E0387007C0EA600F38E01F8000C01300133E137EC65A5B485A0003
1330EA07E013C0380F8070121F383F0060003E13E0EA7C03B5FCA214167E9519>I
E /Fm 73 124 df<EB7E1F3901C1B180390303E3C0000713C3000EEBC180903801C000A6
B512FC380E01C0B0387F87FC1A1D809C18>11 D<137E3801C180EA0301380703C0120EEB
018090C7FCA5B512C0EA0E01B0387F87F8151D809C17>I<EB7FC0EA01C1EA03031207EA
0E01A7B5FCEA0E01B0387FCFF8151D809C17>I<90383F07E03901C09C18380380F0D807
01133C000E13E00100131892C7FCA5B612FC390E00E01CB03A7FC7FCFF80211D809C23>
I<13E0EA0310EA0608A2120EA45BA25B6C5AEC3FE09038800F80EC060000031304120738
09C00800115BEA30E03820F020EA607038E03840EB3C80131C90380F00207F0070EB8040
383009C0391830E180390FC03F001B1F7E9D20>38 D<126012F012F812681208A31210A2
122012401280050C7C9C0C>I<1380EA0100120212065AA25AA25AA35AA412E0AC1260A4
7EA37EA27EA27E12027EEA0080092A7C9E10>I<7E12407E12307EA27EA27EA37EA41380
AC1300A41206A35AA25AA25A12205A5A092A7E9E10>I<126012F0A212701210A41220A2
12401280040C7C830C>44 D<EAFFE0A20B0280890E>I<126012F0A2126004047C830C>I<
130113031306A3130CA31318A31330A31360A213C0A3EA0180A3EA0300A31206A25AA35A
A35AA35AA35AA210297E9E15>I<EA03C0EA0C30EA1818EA300CA2EA700EEA6006A2EAE0
07ADEA6006A2EA700EEA300CA2EA1818EA0C30EA07E0101D7E9B15>I<5A1207123F12C7
1207B3A5EAFFF80D1C7C9B15>I<EA07C0EA1830EA201CEA400C130EEAF00F12F81307A2
1270EA000F130EA2131CA213381370136013C0EA0180EA0300EA0601120C1218EA1002EA
3FFE127F12FF101C7E9B15>I<EA07E0EA1830EA201CA2EA781E130E131E1238EA001CA2
131813301360EA07C0EA0030131CA2130E130FA2127012F8A3EAF00EEA401C1220EA1830
EA07C0101D7E9B15>I<130CA2131C133CA2135C13DC139CEA011C120312021204120C12
08121012301220124012C0B512C038001C00A73801FFC0121C7F9B15>I<EA300CEA3FF8
13F013C0EA2000A6EA23E0EA2C30EA3018131CEA200E1200130FA3126012F0A3EA800EEA
401E131CEA2038EA1870EA07C0101D7E9B15>I<13F0EA030CEA0404EA0C0EEA181E1230
130CEA7000A21260EAE3E0EAE430EAE818EAF00C130EEAE0061307A51260A2EA7006EA30
0E130CEA1818EA0C30EA03E0101D7E9B15>I<1240387FFF801400A2EA4002485AA25B48
5AA25B1360134013C0A212015BA21203A41207A66CC7FC111D7E9B15>I<EA03E0EA0C30
EA1008EA200C13061260A21270A2EA7C0CEA3E18EA3FB0EA1FE0EA07F013F8EA18FCEA30
7EEA601E130FEAC0071303A4EA60021304EA300CEA1C10EA07E0101D7E9B15>I<EA03C0
EA0C30EA1818EA300C1270EA600EEAE006A21307A51260EA700F1230EA1817EA0C27EA07
C7EA0006A2130EEA300C127813181270EA2030EA10C0EA0F80101D7E9B15>I<126012F0
A212601200AA126012F0A2126004127C910C>I<126012F0A212601200AA126012F0A212
701210A41220A212401280041A7C910C>I<007FB512C0B612E0C9FCA8B612E06C14C01B
0C7E8F20>61 D<1306A3130FA3EB1780A2EB37C01323A2EB43E01341A2EB80F0A3380100
78A2EBFFF83802003CA3487FA2000C131F80001E5BB4EBFFF01C1D7F9C1F>65
D<B512C0380F00788080140E140FA4140E141E5C14F8EBFFF0EB003C8080801580A5EC0F
00A2141E1478B512E0191C7F9B1D>I<90381F8080EBE0613801801938070007000E1303
5A14015A00781300A2127000F01400A8007014801278A212386CEB0100A26C13026C5B38
0180083800E030EB1FC0191E7E9C1E>I<B512C0380F00F0143C140E80A2EC038015C014
01A215E0A815C0A21403158014071500140E5C1470B512C01B1C7E9B20>I<B512FC380F
003C140C1404A214061402A213011400A35B13FF13037FA3140113001402A31406A2140C
143CB512FC181C7E9B1C>I<B512F8380F007814181408A2140C1404A213011400A35B13
FF13037FA490C7FCA8EAFFF8161C7E9B1B>I<90381F8080EBE061380180193807000700
0E13035A14015A00781300A2127000F01400A6ECFFF0EC0F80007013071278A212387EA2
7E6C130B380180113800E06090381F80001C1E7E9C21>I<EAFFF0EA0F00B3A8EAFFF00C
1C7F9B0F>73 D<EAFFF8EA0F8090C7FCB01408A31418A2141014301470EB01F0B5FC151C
7E9B1A>76 D<B46CEBFF80000FECF800A2390BC00178A33809E002A23808F004A3EB7808
A3EB3C10A3EB1E20A3EB0F40A2EB0780A3EB0300121C3AFF8307FF80211C7E9B26>I<B4
EB1FF0390F8003809038C00100120BEA09E0EA08F0A21378133C133E131E130F14811307
EB03C1EB01E114F113001479147D143D141FA2808080121CB46C7E1C1C7F9B1F>I<EB3F
80EBE0E03803803848487E000E7F487F003C148000381303007814C0A20070130100F014
E0A8007014C000781303A200381480003C1307001C14006C130E6C5B6C6C5A3800E0E0EB
3F801B1E7E9C20>I<B51280380F00E01478143C141C141EA5141C143C147814E0EBFF80
90C7FCACEAFFF0171C7E9B1C>I<EB3F80EBE0E03803803848487E000E7F487F003C1480
00381303007814C0A20070130100F014E0A8007014C000781303A200381480383C0E07D8
1C111300380E208E0007135C3803A0783900F0E020133FEB0060EC3060EC38E0EC3FC0A2
EC1F80EC0F001B257E9C20>I<B5FC380F01E0EB007880141C141EA4141C143C5CEB01E0
01FFC7FCEB01E0EB0070147880A61510A2141CA239FFF00E20C7EA03C01C1D7E9B1F>I<
3807E080EA1C19EA30051303EA600112E01300A36C13007E127CEA7FC0EA3FF8EA1FFEEA
07FFC61380130FEB07C0130313011280A300C01380A238E00300EAD002EACC0CEA83F812
1E7E9C17>I<007FB512C038700F010060130000401440A200C014201280A300001400B1
497E3803FFFC1B1C7F9B1E>I<39FFF01FF0390F000380EC0100B3A26C1302138000035B
EA01C03800E018EB7060EB0F801C1D7F9B1F>I<39FFE00FF0391F0003C0EC01806C1400
A238078002A213C000035BA2EBE00C00011308A26C6C5AA213F8EB7820A26D5AA36D5AA2
131F6DC7FCA21306A31C1D7F9B1F>I<3AFFE1FFC0FF3A1F003E003C001E013C13186C6D
1310A32607801F1320A33A03C0278040A33A01E043C080A33A00F081E100A39038F900F3
017913F2A2017E137E013E137CA2013C133C011C1338A20118131801081310281D7F9B2B
>I<39FFF07FC0390FC01E003807800CEBC00800035B6C6C5A13F000005BEB7880137C01
3DC7FC133E7F7F80A2EB13C0EB23E01321EB40F0497E14783801007C00027F141E000613
1F001F148039FF807FF01C1C7F9B1F>I<EA1FC0EA3070EA78387F12301200A2EA01FCEA
0F1C12381270126000E01340A3EA603C38304E80381F870012127E9115>97
D<12FC121CAA137CEA1D87381E0180381C00C014E014601470A6146014E014C0381E0180
38190700EA10FC141D7F9C17>I<EA03F8EA0C0CEA181E1230EA700CEA600012E0A61260
EA70021230EA1804EA0C18EA03E00F127F9112>I<EB1F801303AAEA03F3EA0E0BEA1807
EA30031270126012E0A6126012701230EA1807EA0E1B3803E3F0141D7F9C17>I<EA07E0
EA0C30EA1818EA300CEA700EEA600612E0EAFFFEEAE000A41260EA70021230EA1804EA0C
18EA03E00F127F9112>I<13F8EA018CEA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7F
E00F1D809C0D>I<EB03803807C4C0EA1C783838388038301800EA701CA4EA3018EA3838
6C5AEA27C00020C7FCA21230EA3FF86CB4FC1480EA2003386001C0EAC000A33860018038
300300EA1C0EEA07F8121C7F9215>I<12FC121CAA137C1387EA1D03001E1380121CAD38
FF9FF0141D7F9C17>I<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>I<13C0
EA01E0A2EA00C01300A7EA07E01200B3A21260EAF0C012F1EA6180EA3E000B25839C0D>
I<12FC121CAAEB0FE0EB0780EB06005B13105B5B13E0121DEA1E70EA1C781338133C131C
7F130F148038FF9FE0131D7F9C16>I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0
391C838838391D019018001EEBE01C001C13C0AD3AFF8FF8FF8021127F9124>I<EAFC7C
EA1C87EA1D03001E1380121CAD38FF9FF014127F9117>I<EA03F0EA0E1CEA1806487E00
701380EA600100E013C0A600601380EA700300301300EA1806EA0E1CEA03F012127F9115
>I<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01C0001E1380381D07
00EA1CFC90C7FCA7B47E141A7F9117>I<3803E080EA0E19EA1805EA3807EA7003A212E0
A61270A2EA38071218EA0E1BEA03E3EA0003A7EB1FF0141A7F9116>I<EAFCE0EA1D38EA
1E78A2EA1C301300ACEAFFC00D127F9110>I<EA1F90EA2070EA4030EAC010A212E0EAF8
00EA7F80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>
I<1204A4120CA2121C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<
38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>I<38FF07E0383C0380381C
0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A3134013127F9116>
I<39FF3FC7E0393C0703C0001CEB01801500130B000E1382A21311000713C4A213203803
A0E8A2EBC06800011370A2EB8030000013201B127F911E>I<38FF0FE0381E0700EA1C06
EA0E046C5AEA039013B0EA01E012007F12011338EA021C1204EA0C0E487E003C138038FE
1FF014127F9116>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388
A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>I<EA
7FFCEA70381260EA407013F013E0EA41C012031380EA0700EA0F04120E121CEA3C0CEA38
0812701338EAFFF80E127F9112>I<B512F01401808B15>I E /Fn
2 68 df<EA01C0A7B51280A33801C000A711117F9314>43 D<3801F180EA07FFEA0E1FEA
1C071238EA7003A348C7FCA738700380A338380700121CEA0E0EEA07FCEA01F011177F96
14>67 D E /Fo 30 122 df<126012F0A2126004047D830B>46 D<130CA3131EA2132F13
27A2EB4380A3EB81C0A200017F1300A248B47E38020070A2487FA3487FA2003C131EB4EB
FFC01A1A7F991D>65 D<EB3F023801C0C63803002E000E131E48130E14065A0078130212
70A200F01300A600701302A21278003813047E14087E000313303801C0C038003F00171A
7E991C>67 D<EAFF80EA1C00B3A6EAFF80091A7E990E>73 D<EAFFE0000EC7FCB01408A3
141814101430147014F0B5FC151A7F9918>76 D<B414FF000F14F0A2390B800170A23809
C002A33808E004A2EB7008A3EB3810A3EB1C20A2EB0E40A3EB0780A2EB0300121C39FF83
07FF201A7F9923>I<00FEEB7FC0000FEB0E001404EA0B80EA09C0A2EA08E01370A21338
131CA2130E1307EB0384A2EB01C4EB00E4A21474143CA2141C140C121C38FF80041A1A7F
991D>I<EA0FC2EA1836EA200EEA600612C01302A3EAE0001270127EEA3FE0EA1FF8EA03
FCEA007E130E130713031280A3EAC0021306EAE004EAD818EA87E0101A7E9915>83
D<007FB5FC38701C0700401301A200C0148000801300A300001400B13803FFE0191A7F99
1C>I<39FFC0FF80390F003C0014106C5BEA03806D5A00015BEA00E101F1C7FC137A133E
131C131EA21317EB27801343EB41C0EB81E0EA010048137000021378481338000C7F001E
133EB4EB7FC01A1A7F991D>88 D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C123812
7012E01480A2133CEA705F381F8F0011107F8F13>97 D<EA07F8EA1C1C1238EA70081300
5AA612701304EA3808EA1C18EA07E00E107F8F11>99 D<133F1307A9EA03E7EA0C17EA18
0F487E127012E0A6126012706C5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30
181270EA600C12E0EAFFFCEAE000A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<
EA01F0EA0718EA0E38EA1C101300A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF38
18718038303000EA7038A4EA30306C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600F
EAC003A4EA6006EA381CEA07E011187F8F13>I<12FC121CA9137CEA1D87381E0380A212
1CAB38FF9FF0141A809915>I<1218123CA212181200A612FC121CAE12FF081A80990A>I<
12FC121CA9EB1FC0EB0F00130C5B13205B13E0121DEA1E70EA1C7813387F131E7F148038
FF9FE0131A809914>107 D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380
391E0781C0A2001C1301AB39FF9FE7F81D107F8F20>I<EAFC7CEA1D87381E0380A2121C
AB38FF9FF01410808F15>I<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA70
0EEA381CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6
EB01C01480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<EAFC78EA1D9CEA1E
1C1308EA1C00ABEAFF800E10808F0F>114 D<EA1F20EA60E0EA402012C0A2EAF000127F
EA3FC0EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218
A21238EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB
1307120CEA0E0B3803F3F01410808F15>I<39FE7F1F8039381C0700003C1306381C0C04
130E380E16081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>119
D<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5AA248C7FCA2
12E112E212E4127811177F8F14>121 D E /Fp 1 4 df<120CA2EACCC012EDEA7F80EA0C
00EA7F80EAEDC012CCEA0C00A20A0B7D8B10>3 D E /Fq 16 94
df<120112021204120C1218A21230A212701260A312E0AA1260A312701230A21218A212
0C12041202120108227D980E>40 D<12801240122012301218A2120CA2120E1206A31207
AA1206A3120E120CA21218A2123012201240128008227E980E>I<1330ABB512FCA23800
3000AB16187E931B>43 D<EA07C0EA1830EA3018EA701CEA600CA2EAE00EA9EA600CA2EA
701CEA3018EA1C70EA07C00F157F9412>48 D<1206120E12FE120EB1EAFFE00B157D9412
>I<EA0F80EA30E0EA4070EA8030EAC03812E0124012001370A2136013C0EA0180EA0300
1206EA0C081208EA1018EA3FF0127F12FF0D157E9412>I<EA0FE0EA3030EA6018EA701C
A21200131813381360EA07E0EA00301318130C130EA212E0A2EAC00CEA4018EA3030EA0F
E00F157F9412>I<1330A2137013F012011370120212041208121812101220124012C0EA
FFFEEA0070A5EA03FE0F157F9412>I<EA6030EA7FE013C0EA44001240A4EA4F80EA70E0
EA4070EA00301338A2124012E0A2EA8030EA4060EA20C0EA1F000D157E9412>I<EA01F0
EA0608EA080CEA181C1230EA7000126012E0EAE3E0EAEC30EAF018130CEAE00EA31260A2
EA300C1318EA1830EA07C00F157F9412>I<1240EA7FFE13FC13F8EAC008EA80101320EA
00401380A2EA01005AA212021206A2120EA512040F167E9512>I<EA07E0EA1830EA2018
EA600CA21270EA7818EA3E10EA1F60EA07C0EA0FF0EA18F8EA607C131EEAC00E1306A213
04EA600CEA3830EA0FE00F157F9412>I<EA07C0EA1830EA30181260EAE00CA2130EA3EA
601E1230EA186EEA0F8EEA000E130C131CEA7018A2EA6030EA20E0EA1F800F157F9412>
I<B512FCA2C8FCA6B512FCA2160A7E8C1B>61 D<12FCA212C0B3AB12FCA206217D980A>
91 D<12FCA2120CB3AB12FCA2062180980A>93 D E /Fr 56 122
df<12301278127C123C121CA41238127812F012E01240060D789816>39
D<EA03E0EA0FF8487EEA1E3CEA380EEA780FEA7007A238E00380A8EAF00700701300A2EA
780FEA3C1E6C5AEA1FFC6C5AEA03E011197E9816>48 D<12035AA25A5AB4FCA212E71207
AEEAFFF8A30D197B9816>I<EA07E0EA1FF8487EEA783EEAE00700F01380130312601200
A2EB0700A2130E5B5B5B5B485A485A000FC7FC381E03801238EA7FFFB5FC7E11197E9816
>I<EA07E0EA1FF8487EEA781E130712301200A2130E133EEA07FC13F013FCEA001E1307
7F1480A2126012F038E00700EA781EEA3FFC6C5AEA07E011197E9816>I<137C13FC13DC
1201EA039CA2EA071C120F120E121E123C1238127812F0B512E0A338001C00A53801FFC0
A313197F9816>I<EA3FFE127FA20070C7FCA7EA77F0EA7FFC7FEA780FEA300738000380
A2126012F0A238E00700EA781EEA3FFC6C5AEA07E011197E9816>I<13F8EA03FC487EEA
0F07EA1C0F1238EA78060070C7FCA2EAE3F8EAEFFCB47EEAF80F487EEB038012E0A21270
A2130700381300EA3C1EEA1FFC6C5AEA03E011197E9816>I<EA07F0EA1FFC487EEA7C1F
38F00780EAE003A338700700EA7C1FEA1FFCEA07F0EA1FFCEA3C1EEA700700F01380EAE0
03A3EAF00700701300EA7C1FEA3FFE6C5AEA07F011197E9816>56
D<13E0487EA213B0A2EA03B8A31318EA071CA5EA0E0EA2EA0FFEA2487EEA1C07A3387E0F
C038FF1FE0387E0FC013197F9816>65 D<EA7FF8EAFFFE6C7EEA1C0714801303A4EB0700
EA1FFF5BA2EA1C1FEB038014C01301A41303EB0780EA7FFFB51200EA7FFC12197F9816>
I<3801F180EA07FBEA0FFFEA1F0FEA3C07EA38031270A200F0C7FC5AA77E38700380A212
38383C0700EA1F0FEA0FFE6C5AEA01F011197E9816>I<EA7FF8EAFFFE6C7EEA1C0FEB07
80EB03C01301A214E01300A8EB01C0A21303EB0780130F387FFF00485AEA7FF813198098
16>I<387FFFC0B5FC7EEA1C01A490C7FCA2131CA2EA1FFCA3EA1C1CA290C7FC14E0A5EA
7FFFB5FC7E13197F9816>I<387FFFE0B5FC7EEA1C00A41400A2131CA2EA1FFCA3EA1C1C
A290C7FCA6EA7F80487E6C5A13197F9816>I<3801F180EA07FBEA0FFFEA1F0FEA3C07EA
38031270A200F0C7FC5AA4EB1FC014E014C038F00380127013071238123CEA1E0FEA0FFF
EA07FBEA01F313197F9816>I<387F07F038FF8FF8387F07F0381C01C0A7EA1FFFA3EA1C
01A9387F07F038FF8FF8387F07F01519809816>I<EA7FFCEAFFFEEA7FFCEA0380B3EA7F
FCEAFFFEEA7FFC0F197D9816>I<48B4FC4813806C1300EA001CB0126012F05BEA7FF85B
EA1FC011197E9816>I<387F0FE038FF8FF0387F0FE0381C0780EB0F00130E5B133C5B5B
5BEA1DF0121F7F1338EA1E1C121C7FA27FA2EB0380387F07E038FF8FF0387F07E0141980
9816>I<B47E7F5B001CC7FCAE144014E0A4B5FCA313197F9816>I<38FC07E0EAFE0FA238
3A0B80EA3B1BA513BBEA39B3A413F3EA38E3A21303A538FE0FE0A313197F9816>I<387E
07F038FF0FF8387F07F0381D81C0A313C1121C13E1A213611371A313311339A21319131D
130DA3EA7F07EAFF87EA7F031519809816>I<EA1FFC487E487EEA780F38F00780EAE003
AEEAF007A238780F00EA7FFF6C5A6C5A11197E9816>I<EA7FF8EAFFFE6C7E381C0F8013
0314C01301A313031480130F381FFF005B13F8001CC7FCA7127F487E6CC7FC12197F9816
>I<EA1FFC487E487EEA780F38F00780EAE003AD13E312E1EAF0F738787F00EA7FFF6C5A
6C5AEA001C131E130E130F7FA2111F7E9816>I<EA7FF0EAFFFC6C7EEA1C0FEB07801303
A41307EB0F00EA1FFE5B7FEA1C0E7FA414101438A2387F03F0EAFF83387F01E015198098
16>I<EA07E3EA1FFF5AEA781FEAF00712E0A290C7FC7E1278EA3F80EA1FF0EA07FCC67E
130F7FEB0380A2126012E0EB0700EAF80FEAFFFE5BEAC7F011197E9816>I<387FFFE0B5
FCA2EAE0E0A400001300AFEA07FC487E6C5A13197F9816>I<387F07F038FF8FF8387F07
F0381C01C0B0380E0380A23807070013FF6C5AEA00F81519809816>I<38FE0FE0A33838
0380EA3C07001C1300A3EA1E0FEA0E0EA46C5AA4EA031813B8A3EA01B013F0A26C5A1319
7F9816>I<387E03F038FF07F8387E03F0383800E0A4381C01C0A3137113F9A213D9A200
0C1380A3EA0DDD138DA338078F00A213071519809816>I<387F1F80EB3FC0EB1F80380E
1E00131C12075BEA03B813F012015B120012017F120313B81207131C120FEA0E0EA2487E
387E0FC038FF1FE0387E0FC013197F9816>I<38FE0FE0EAFF1FEAFE0F381C0700A2EA0E
0EA26C5AA3EA03B8A2EA01F0A26C5AA8EA03F8487E6C5A13197F9816>I<387FFF80B5FC
A238E007005B131E131CEA003C5B137013F0485A5B1203485A90C7FC5A381E0380121C12
3C12781270B5FCA311197E9816>I<EA1FE0487E487EEA783CEA300E1200A2EA03FE121F
EA3E0E127012E0A3EA783E387FFFE0EA3FE7EA0F8313127E9116>97
D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E03C0EA1C01EB00E0A6EB01C0EA1E0338
1F0780EBFF00EA1DFEEA0C7813197F9816>I<EA03F8EA0FFCEA1FFEEA3C1EEA780CEA70
005AA57EEA70071278EA3E0EEA1FFCEA0FF8EA03F010127D9116>I<133FA31307A4EA03
C7EA0FF748B4FCEA3C1F487EEA700712E0A6EA700F12786C5A381FFFE0EA0FF7EA07C713
197F9816>I<EA03F0EA0FFC487EEA3C0F487E3870038012E0B5FCA300E0C7FCA2387003
801278EA3E07381FFF00EA07FEEA01F811127E9116>I<131E137F3801FF8013C7380383
001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C5A11197F9816>I<3803E3C03807F7E0
EA0FFF381C1CC038380E00A56C5AEA0FF8485AEA1BE00038C7FC1218EA1FFC13FF481380
387003C038E000E0A4387001C0EA7C07383FFF80380FFE00EA03F8131C7F9116>I<12FC
A3121CA41378EA1DFCEA1FFE130FEA1E07121CAA38FF8FE0139F138F13197F9816>I<12
03EA0780A2EA0300C7FCA4EAFF80A31203ACEAFFFC13FE13FC0F1A7C9916>I<13301378
A213301300A4EA0FF8121F120FEA0038B3EA6070EAF0F0EAFFE0EA7FC0EA3F800D237E99
16>I<EA7FC012FF127F1201B3EA7FFFB512806C130011197E9816>108
D<EAFC78EAFDFCB47EEA1F0FEA1E07121CAA38FF8FE0139F138F13127F9116>110
D<EA03E0EA0FF8487EEA3C1E487EEA700738E00380A5EAF00700701300EA780FEA3C1EEA
1FFC6C5AEA03E011127E9116>I<EAFC7CEAFDFEB5FC381F0780381E03C0EA1C01EB00E0
A6EB01C0EA1E03381F0780EBFF00EA1DFEEA1C7890C7FCA6B47EA3131B7F9116>I<387F
0FC038FF3FE0EA7F7F3807F040EBC0005BA290C7FCA8EA7FFC12FF127F13127F9116>
114 D<EA0FECEA3FFC127FEAF03CEAE01CA2EA7000EA7F80EA1FF0EA07F8EA003CEA600E
12E012F0EAF81EEAFFFC13F8EAC7E00F127D9116>I<12035AA4EA7FFFB5FCA20007C7FC
A75BEB0380A3EB8700EA03FE6C5A6C5A11177F9616>I<EAFC3FA3EA1C07AB131F381FFF
E0EA0FF7EA07C713127F9116>I<387F1FC038FF9FE0387F1FC0381C0700A2EA0E0EA36C
5AA4EA03B8A3EA01F0A26C5A13127F9116>I<387F1FC0133F131F380F1E006C5AEA03B8
13F012016C5A12017FEA03B8EA073C131CEA0E0E387F1FC038FF3FE0387F1FC013127F91
16>120 D<387F1FC038FF9FE0387F1FC0381C0700120E130EA212075BA2EA039CA21398
EA01B8A2EA00F0A35BA3485A1279127BEA7F8090C7FC123C131B7F9116>I
E /Fs 60 122 df<903901FF81FE010FEBEFFF903A7F81FF8F80D9FE01EB1FC03901F803
FE000314FCEA07F0EE0F80020190C7FCA7B712F0A32707F001FCC7FCB3A33A7FFF1FFFE0
A32A2A7FA927>11 D<49B4FC011F13C090387F81E0EBFC013901F807F01203EA07F0A4EC
01C091C8FCA3EC3FF8B6FCA33807F003B3A33A7FFF3FFF80A3212A7FA925>I<123C127F
EAFF80A213C0A3127F123E1200A2EA0180A3EA0300A21206120E5A5A12100A157BA913>
39 D<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A21206120E5A5A12
100A157B8813>44 D<B51280A611067F9016>I<121C127FA2EAFF80A3EA7F00A2121C09
097B8813>I<1403EC0780A2140F1500A25C141E143E143CA2147C1478A214F85C13015C
A213035CA213075C130F91C7FCA25B131E133E133CA2137C1378A213F85B12015BA21203
5BA212075B120F90C8FCA25A121EA2123E123C127C1278A212F85AA21260193C7CAC22>
I<EB3F803801FFF03807E0FC380FC07E48487E497E481480003E130F007E14C0A400FE14
E0AF007E14C0A46CEB1F80A26C14006D5A380FC07E6C6C5A3801FFF038003F801B277DA6
22>I<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>I<EBFF800007
13F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2127E003C131F
C7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013705B3901C001
C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803FFF04813FC38
0F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07F0EBFFC0A2EB
01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F481480007CEB7F00383F
01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03BFEB073F130E
131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8A3C7EA7F00A8
90381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091C7FC001CC8FC
A7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218127C12FEA315
C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA622>I<EB07F8
EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F8091C7FC127E
A3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4127EA4123E00
3F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622>I<1238123E
003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA2495A130791C7FC
5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>I<EB3FC03801FFF0
4813FC3807C07E48C67E001E7FEC0F80123EA2123F138001C01300EBF01F381FFC1E6D5A
380FFFF86C13E06C7F6C13FC8000077FD80F0F1380D81E0713C0EA3E01397C007FE0141F
48130F14071403A315C0127C007EEB07806CEB0F00381FC03F380FFFFC00035B38007FC0
1B277DA622>I<EB7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00
FE14C0A315E0A5007E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013
C0A3EC1F80123E127FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B
277DA622>I<48B4FC000F13E0381E03F0383801F8387800FC00FC13FE7EA3127C003813
FCEA0001EB03F8EB07E0EB0FC01480EB1E00A25B1338A25BA790C7FCA5137013F8487E48
7EA36C5A6C5A1370172A7CA920>63 D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC
14E3A2903801C1FEA201037F1480A249486C7EA24980010E133FA2496D7EA2013FB57EA3
9039700007F8A201F080491303000181491301A2000381D8FFFE013F13FCA32E297EA833
>65 D<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED
07F0150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216
FFA616FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>I<91387FE0039039
07FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F484814
1F485A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C
143C6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA8
31>I<B612FCEDFF8016E03A03FC001FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2
EE07F0A417F8AA17F0A3EE0FE0A217C0161FEE3F80EE7F005EED03FCED1FF8B75A168003
FCC7FC2D297EA834>I<B712E0A33903FC001FED07F01501A215001670A3913801C07816
38A302031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C16381678
16F815011503151FB712F0A327297EA82C>I<B712C0A33903FC003FED0FE015031501A2
1500A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B5
12FCA324297EA82A>I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF00
01FFD801FC7F484880484880484880485A82485A82127FA290CAFC5AA892B512F87E7F03
001300123FA26C7EA26C7E6C7E6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F90
39007FF0032D297CA835>I<B5D8F00FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123F
B1B5D8F00FB5FCA330297EA835>I<B512F0A33803FC00B3B1B512F0A314297EA819>I<B5
12FCA3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F157F913801FF00B7FC
A322297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99FC0EB
01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338A202
7F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5AA26E
5AD8FFFE0203B51280A2157039297DA840>I<ECFFC0010F13FC90383F807F9039FE001F
C0D801F8EB07E048486D7E48486D7E000F8148486D7EA24848147FA2007F168090C8123F
A34816C0AA6C16806D147FA2003F1600A26C6C14FEA26C6C495A6C6C495A6C6C495A6C6C
495A6C6C495A90263FC0FFC7FC90380FFFFC010013C02A297CA833>79
D<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA716FC150316F8ED07F0
ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<B612E015FE6F7E3A03FC
003FE0ED0FF06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00
FF80ED3FC06F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F297E
A832>82 D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200
FC1301A214007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC01
0F13E0EB007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39
E3FFFE0000E15B38C01FF01C297CA825>I<007FB71280A39039807F807FD87C00140F00
781507A20070150300F016C0A2481501A5C791C7FCB3A490B612C0A32A287EA72F>I<B5
00F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B017F140E80013F5CA2
6E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301015CECFF076D91C7
FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230297FA833>86
D<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C604B
138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F09126
F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA2913AFE
E001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141EA242
297FA845>I<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF
3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC03
1E1B7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F0
01F89038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090
380FFF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F
00A248133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803
F83C3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F38
0FC00F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF38
01FFE738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB
0F80127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907
C007003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03
F813F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80
F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F
137E6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14
E06C14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806C
B5120038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413
E0EBE80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA
3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<1307
EB0F80EB1FC0EB3FE0A3EB1FC0EB0F80EB070090C7FCA7EBFFE0A3130FB3AA127C12FE14
C0EB1F801400EA7C3EEA3FFCEA0FF0133784AA15>I<EAFFE0A3120FACEC1FFCA3EC0780
EC0F00141E5C5C14E0EBE3C013E7EBEFE0EBFFF08013F3EBE1FCEBC0FE147FA2EC3F80EC
1FC0EC0FE0A2EC07F039FFFC1FFFA3202A7FA923>I<EAFFE0A3120FB3B2EAFFFEA30F2A
7EA912>I<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039
C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC0
7E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA320
1B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0393F0007E0A2007EEB
03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907F07F003801FF
FC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F001F8
01E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0FE090
38EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC63E38
0FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 D<3803FE30380FFFF0EA
3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6
FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FFC000C11300161B7E9A1B
>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000AD1470A73807F0E00003
13C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F1307B2140FA20007131739
03F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA3390FF000F0000714E07F00
03EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D
5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE00FE001C02607F007EB03
80A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600FE1C5B15FE9039FF387E
3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2EC800701075CA22E1B7F
9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801FE1E00005BEB7F3814F8
6D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F803901E01FC0D803C013
E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF000F0000714E07F0003EB
01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA3
6D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5BEA74F0EA3FE0EA0F8020
277F9A23>I E /Ft 19 121 df<143C147CEB01FC1307133FB5FCA313CFEA000FB3B3A7
007FB61280A4213879B730>49 D<EB07FC90387FFFC048B512F04814FC3907E01FFE390F
8007FF261E00031380486D13C0007E6D13E0D87F80137F6D14F012FF6DEB3FF8A46C5A6C
5A6CC7FCC8FC16F0157F16E0A2EDFFC016805C16004A5A4A5A5DEC0FE04A5A4A5A4AC7FC
14FC495A5C49481378EB078049C7FC131E4914F05B5B4848130148B6FC5A5A5A5A4815E0
B7FCA425387BB730>I<EB03FF011F13F0017F13FC9038FC07FE3901F001FF2603C00013
804848EB7FC0D80FE014E07F486C14F07FA46C5A6C4814E06C5AD8008013FF90C713C016
804A13005D4A5A4A5AEC1FF090380FFFC05D15F090380007FEEC00FFED7FC016E0ED3FF0
16F8A2ED1FFCA216FEA2EA1F80487E487E487EA216FCA349EB3FF86C5A49EB7FF0003EC7
13E0D81FC0EBFFC0260FF80313806CB61200000114FC6C6C13F0010790C7FC27397CB730
>I<ED0F80A2151F153F157F15FFA25C5C5CA25C141E143E5C14785C495A13035C495A49
5A5B133E133C5B5B12015B485A485A120F48C7FC121E5A5A12F8B81280A4C70001EB8000
AA0103B61280A429377DB630>I<000C15C0D80F80130701F8137F90B6128016005D5D5D
5D15C092C7FC14FCEB1F8090C9FCA8EB03FE90381FFFE0017F13F89038FC07FC9038E001
FE496C7E49EB7F8090C713C0000E15E0C8123F16F0A316F8A3121F487E487E12FF7FA216
F05B5B6CC7EA7FE0127C003C15C0003EECFF806C491300390FC003FE3907F00FFC6CB55A
6C14E06C6C1380D90FF8C7FC25397BB730>I<EC0FF8ECFFFE0103EBFF8090390FF80FC0
90391FE003E090397F8001F09038FF0003484813074848EB0FF8151F485A120F5B001FEC
0FF0ED07E0003FEC03C092C7FC5B127FA3EC7FF039FFE1FFFC01E37F9039E7007F8001EE
EB3FC001ECEB1FE001F814F0A249EB0FF8A216FCA24914FEA4127FA5123FA216FC6C7E16
F8120FED1FF06C7E6C6CEB3FE06C6CEB7FC03A00FF81FF8090397FFFFE006D5B010F13F0
0101138027397CB730>I<ED01E04B7EA24B7EA34B7EA24B7EA34B7EA24B7F157BA203F3
7F15F102018015E00203805D167F020780ED803F020F80ED001FA24A80021E130F023E80
023C7FA24A818202F8814A7FA249B77EA24982A2D907C0C76C7E5C173F010F8291C8121F
4982011E150FA2013E82013C81017C8301788113FCB500F00103B612C0A4423B7DBA49>
65 D<B87E17F817FF8428007FE0000313E004007FEF3FF8717EA2717EA28483A64D5AA3
4D5A4D5A60EFFFE04C5B040F90C7FC91B612FCA2EFFF8002E0C713E0EF3FF8EF0FFC8471
7E711380A27113C0A219E0A819C05F19805F4D13004D5A4D5A4CB45AB95A18C095C7FC17
F03B3B7CBA45>I<DB1FFE14600203B500E013E0021FECF801027FECFE03903B01FFFC00
FF07010701C0EB1FCF4990C7EA07FFD91FFC1401D93FF0804948157F4948153F4849151F
4890C9120F5A48481607A248481603A2485A1801A2127FA24993C7FCA212FFAB127FA27F
F001E0123FA36C7EF003C06C7EA26C6CEE07807E6C6DED0F006C6D5D6D6C153E6D6C5DD9
1FFC5D6DB4EC03F06D01C0EB0FE0010101FCEB7F806D6CB6C7FC021F14FC020314E09126
001FFEC8FC3B3D7BBB46>I<EB3FFE48B512E0000714F8390FE007FC9038F001FE486C6C
7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F3803FF803807FC00EA0F
F0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F0FFFE03807FFFE0001
497E39003FE0002B267DA52F>97 D<EE3F80ED3FFFA4150181B0ECFF80010F13F0013F13
FC9038FFC03F3901FE000F4848130348487F48487F121F485AA2127F5BA312FFA9127FA3
6C7EA2121F6C6C5B6C6C5B00035CD801FE011F13C02700FF807E13FE90387FFFF8010F13
E0010113002F3C7DBB36>100 D<49B47E010F13F0017F13FC9038FF81FE3A03FE007F80
D807F8133F4848EB1FC0ED0FE0485A003F15F01507485A16F8A212FFA290B6FCA301C0C8
FCA4127FA36C7E1678121F7F000F15F06C6C13016C6CEB03E06C6CEB0FC03A00FFC07F80
90393FFFFE00010F13F8010013C025267DA52C>I<13FE12FFA412071203B0EDFF800203
13F0020F7F91381E03FC91383801FE02607F4A7E01FF15805C91C7FCA35BB3A4B5D8F83F
13FEA42F3C7CBB36>104 D<EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13
FE127FA412071203B3AAB512F0A4143D7DBC1A>I<D801FCEBFF8000FF010313F0020F7F
91381E03FC91383801FE000701607F0003497E01FD15805C01FFC7FCA35BB3A4B5D8F83F
13FEA42F267CA536>110 D<9038FE01FF00FF011F13F0027F13FC9138FC07FE9039FFF0
01FF00079039C0007F806C90C7EA3FC04915E0EE1FF017F8160F17FCA2160717FEA917FC
160FA317F8EE1FF0A26DEC3FE06EEB7FC06EEBFF806E4813009039FEFC07FE91387FFFF8
021F13E0DA03FEC7FC91C9FCADB512F8A42F377DA536>112 D<3901FC03F000FFEB0FFC
4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A201FFEB7F809138003F0015
1E92C7FC5BB3A3B512FCA422267DA528>114 D<130FA55BA45BA25BA25B5A5A5A001FEB
FFF0B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D1380
903801FE001E377EB626>116 D<B539E00FFFF8A4000190390001FC00028013F06CEBC0
036D6C485A013F5C6D6C485A6D6C48C7FCECFC3E6D6C5A903803FFFC6D5B6D5B5D147F6E
7E141F4A7E4A7E81ECFBFFD901F17FEB03E049486C7E010F8049486C7E4A6C7E013E130F
496D7E496D7E000181B5011F13FCA42E267EA533>120 D E /Fu
25 123 df<126012F0A212701210A21220A21240A2040A7D830A>59
D<381FFFFE38381C0E00201304126012401338128000001300A25BA45BA4485AA41203EA
3FFC17177F9615>84 D<EA0710EA18F0EA30701260136012C0A3EA80C013C4A212C1EA46
C8EA38700E0E7E8D13>97 D<127C1218A45AA4EA6780EA68C0EA7040EA606012C0A4EA80
C0A2EA8180EAC1001246123C0B177E960F>I<EA07C0EA0C20EA10701220EA60005AA35A
A2EAC0101320EA60C0EA3F000C0E7E8D0F>I<133E130CA41318A4EA0730EA18F0EA3070
1260136012C0A3EA80C013C4A212C1EA46C8EA38700F177E9612>I<EA07C0EA1C20EA30
1012601320EAFFC0EAC000A41310EA4020EA60C0EA1F000C0E7E8D10>I<130E13131337
133613301360A4EA03FCEA00C0A5EA0180A5EA0300A41202126612E65A1278101D7E9611
>I<120313801300C7FCA6121C12241246A25A120C5AA31231A21232A2121C09177F960C>
105 D<1318133813101300A6EA01C0EA0220EA0430A2EA08601200A313C0A4EA0180A4EA
630012E312C612780D1D80960E>I<121F1206A45AA4EA181C1366138EEA190CEA320012
3C123FEA3180EA60C013C4A3EAC0C813700F177E9612>I<123E120CA41218A41230A412
60A412C012C8A312D0127007177E960B>I<38383C1E3844C6633847028138460301388E
0703EA0C06A338180C061520140C154039301804C0EC07001B0E7F8D1F>I<EA383CEA44
C6EA47021246EA8E06120CA3485A144013181480EA3009EB0E00120E7F8D15>I<EA07C0
EA0C20EA1010EA2018126012C0A3EA8030A2EAC06013C0EA6180EA3E000D0E7E8D11>I<
EA1C3CEA2246EA2382130312461206A3EA0C06A2130C1308EA1A30EA19E0EA1800A25AA3
12FC1014808D12>I<EA30F0EA4918EA4E38EA4C30EA9C001218A35AA45AA20D0E7F8D10>
114 D<EA07C0EA0C20EA1870A2EA3800121EEA0FC0EA03E0EA0060126012E0EAC0C0EAC1
80EA3F000C0E7E8D10>I<1203A21206A4EAFFC0EA0C00A35AA45A1380A2EA3100123212
1C0A147F930D>I<EA1C02EA26061246A2EA860C120CA3485A1480A21338380C5900EA07
8E110E7F8D14>I<EA1C04EA26061246A2EA8604120CA3EA1808A213101320EA0C60EA07
800F0E7F8D11>I<381C0204382606061246A238860C04120CA338181808A21410120838
0C2C203803C7C0170E7F8D19>I<EA0F1F3811A180EA20C31400EA41801201A348C7FC13
0212C3EAE704EAC508EA78F0110E7F8D14>I<EA1C02EA26061246A2EA860C120CA3EA18
18A31338EA0C70EA07B0EA00301360127013C0EA2180EA1E000F147F8D11>I<EA0704EA
0FCCEA1878EA1010EA00201340EA0180EA02005AEA08081210EA3C30EA43E0EA81C00E0E
7F8D10>I E /Fv 61 123 df<91383F03E09138C38470903901878CF001031398913803
3860D907001300A35D130EA390B6FC90380E00E05BA44A5A1338A549485AA54948C7FCA4
EBC00E1201140CEA318638798F1838F31E1038620C60383C07C02429829F1C>11
D<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B512E0EB0E0090
381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E00640EC038091
C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>I<EC3FCEECE0EE90380181FC
1303EC00DC49131C1538A3130E1570A290B512F090380E00704913E0A4EC01C01338A3EC
0380A213701588EC0710A313E0EC0320EC01C091C7FC5B1201A2EA3180127948C8FC1262
123C1F29829F1B>I<130113021304130813101320136013C0EA0180A2EA03005A120612
0E120C121C12181238A212301270A21260A212E0A25AAD12401260A212207EA27E102E79
A113>40 D<13107F7F130613021303A37F1480A71303A31400A35BA21306A2130E130CA2
131C1318133813301370136013E05B485A90C7FC5A12065A5A5A5A1280112E80A113>I<
1330A31320A2381861C0381C678038064E00EA0378EA01E0A2EA07B0EA1C98EA798EEAE1
860001C7FCA25AA3121478A117>I<121C123CA41204A21208A212101220A21240128006
0E7D840E>44 D<EA7FF0EAFFE0127F0C037D8A10>I<127012F8A212F012E005057B840E>
I<EB0F80EB30E0EBE070EA01C0380380301438EA0700481378A2120E121E14704813F0A4
387801E0A314C0EA700312F01480130714001270130E5BEA30386C5AEA0FC0151F7C9D17
>48 D<1302A21306130E133C13DCEA031C12001338A41370A413E0A4EA01C0A4EA0380A4
1207EAFFF80F1E7B9D17>I<131FEB61C0EB80E0EA010000021370134012041320380840
F0A3EB80E0EA0901000613C038000380EB0700130C5B13605B0003C7FC12044813405A14
80EA2001EA7E033847FF00EA41FEEA80FC1378141F7C9D17>I<EB1F80EB60E0EB807038
01003000021338EA0440A21320EB407013C038038060C712E0EB01C0EB030013FE131C13
0613071480A312301278A238F00F001280EA401E131C5BEA30E0EA0F80151F7C9D17>I<
146014E0A3EB01C0A3EB0380A214005BA21306130E130C5BA25BA213635B1387EA010712
03EA060E12041208EA3F8EEA607C38801FC038001C00A25BA45BA2136013277E9D17>I<
EB07C0EB18201330EBE0E0EA01C11381380380C048C7FC5A120E121E1378EA1D84EA3E06
1307123C007C13801278A338700F00A212F0130E131EEA701C1260EA7038EA3070EA10C0
EA0F80131F7B9D17>54 D<1207120F121FA2120E1200AA127012F8A212F012E008147B93
0E>58 D<14021406A2140E141EA2143F142F144F14CF148FEB010FA21302A213041308A2
0110138014071320EB3FFFEB40071380A2EA0100A2120212061204001E14C039FF807FF8
1D207E9F22>65 D<48B512C039001E00F015781538153C5BA4491378A215F0EC01E09038
F007809038FFFE009038F00F80EC03C03801E00115E0A3EA03C0A315C038078003EC0780
EC0F00141E380F007CB512E01E1F7D9E20>I<ECFE02903807818690381C004C49133C13
6049131C00011418485A48C7FC5A001E1410A2481400A25AA45AA415801270A2EC01007E
140200185B6C13186C1320380381C0D800FEC7FC1F217A9F21>I<90B5128090381E00E0
15701538151C5B150EA35BA449131EA44848133CA3157848481370A215E0EC01C0380780
031580EC0E005C380F0070B512C01F1F7D9E22>I<48B512FE39001E001C150C1504A25B
A490387804081500A2140C495AEBFFF8EBF018A23801E010A3EC001048481320A21540A2
48481380140115001407380F001FB512FE1F1F7D9E1F>I<48B512FC39001E0038151815
08A25BA4491310EC0800A3495A1430EBFFF0EBF0303801E020A44848C7FCA4485AA4120F
EAFFF81E1F7D9E1E>I<ECFC04903807030C90381C00980130137813E048481338484813
30A248C7FC120E001E1420A2481400A25AA45AECFFF0EC0780A2EC0F001270A3141E7E00
18133E001C132E6C13CC38038304D800FCC7FC1E217A9F23>I<3801FFF038001F00131E
A35BA45BA45BA4485AA4485AA4485AA4120FEAFFF0141F7D9E12>73
D<3801FFF8D8001FC7FC131EA35BA45BA45BA4485AA315803903C00100A25C1402380780
06A25C141C380F0078B512F8191F7D9E1D>76 D<D801FEEC7FC0D8001EECFC005E0117EB
0178A20127EB02F01504A215080147EB09E015111521A20187495AEB83801583A23A0103
8107801482A2148400024AC7FC14881490A2390401E01EA214C0000C1380001C143E3AFF
8103FFC02A1F7D9E29>I<01FFEB3FE0011FEB0F001504EB1780A201275BEB23C0A39038
41E010A214F0134001805B1478A348486C5AA3141E00025CA2140FA24891C7FC80A2120C
001C1302EAFF80231F7D9E22>I<48B5128039001E00E015701538153C5BA4491378A215
F015E09038F003C0EC0F00EBFFFC01F0C7FC485AA4485AA4485AA4120FEAFFF01E1F7D9E
1F>80 D<90B5FC90381E03C0EC00E0157015785BA44913F0A2EC01E015C09038F0070014
1EEBFFF0EBF01C48487E140F8015803903C00F00A43807801E1508A21510000F130ED8FF
F01320C7EA03C01D207D9E21>82 D<903807E04090381C18C09038300580EB600313C000
011301018013001203A391C7FC7FA213F86CB47E14E06C6C7E131FEB01F8EB0078A21438
A21220A2143000601370146014E000705B38E80380D8C606C7FCEA81F81A217D9F1A>I<
000FB512FC391E03C03800181418001014081220EB078012601240A239800F0010000014
00A3131EA45BA45BA45BA41201387FFF801E1F799E21>I<3BFFE1FFC07F803B1F003E00
1C00001E013C13181610143E021E5B121F6C013E5BA2025E5B149E4BC7FC9038011E02A2
01025BA201045BA201085BA201105B13205D01405BA2D9801FC8FC80EB000E7E0006130C
A2000413082920779E2D>87 D<9039FFF07FE090391F801F0090380F000C6E5A01071310
5D6E5A01035B02C1C7FC14E2EB01E614EC14F86D5AA280A2EB017CEB023C1306EB043EEB
081E1310EB201F497E1380D801007F4813071206001F497E39FFC03FF8231F7E9E22>I<
EB1FC0A2EB1800A25BA45BA45BA4485AA448C7FCA41206A45AA45AA45AA45AA3127F12FE
122D7EA10E>91 D<EB1FC0A21300A2EB0180A4EB0300A41306A45BA45BA45BA45BA45BA4
485AA448C7FCA3127F12FE122D82A10E>93 D<EBF180380389C038070780EA0E03121C12
3C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070013147C9317
>97 D<EA0780123FEA0700A4120EA45AA213F0EA1D0CEA3A0E123CEA380FA21270A4EAE0
1EA3131C133C1338EA607013E0EA31C0EA1F0010207B9F15>I<137EEA01C138030080EA
0E07121E001C1300EA3C0248C7FCA35AA5EA70011302EA3004EA1838EA07C011147C9315
>I<1478EB03F8EB0070A414E0A4EB01C0A213F1EA038938070780EA0E03121C123C3838
07001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070015207C9F17>I<13
7CEA01C2EA0701120E121C123CEA3802EA780CEA7BF0EA7C0012F0A4127013011302EA38
04EA1838EA07C010147C9315>I<1478EB019CEB033CA2EB07181400A2130EA5EBFFE0EB
1C00A45BA55BA55BA5485AA35B1231007BC7FC12F31266123C1629829F0E>I<EB1E30EB
7138EBE0F03801C070EA03801207EB00E05AA3381E01C0A4EB0380A2EA0E07130B380617
00EA01E7EA0007A2130EA21230EA781C485AEA6070EA3FC0151D7F9315>I<EA01E0120F
EA01C0A4485AA448C7FCA2131E1363380E8180380F01C0120EA2381C0380A438380700A3
EB0E1000701320A2131CEB0C4000E013803860070014207D9F17>I<13C0EA01E0A213C0
C7FCA7120E12131223EA4380EA4700A21287120EA35AA3EA38401380A21270EA31001232
121C0B1F7C9E0E>I<EB0180EB03C0A2148090C7FCA7133C13461387A2EA0107A2EA020E
1200A35BA45BA45BA45BA21230EA79C0EAF1800063C7FC123C1228829E0E>I<EA01E012
0FEA01C0A4485AA448C7FCA2EB03C0EB0420380E08E013111321EB40C0381C8000001DC7
FC121EEA1FC0EA38E01370A2EB384038707080A3EB310012E0EA601E13207D9F15>I<EA
03C0121FEA0380A4EA0700A4120EA45AA45AA45AA3127112E2A4126412380A207C9F0C>
I<391C0F80F0392630C318394740640C903880680EEB0070A2008E495A120EA34848485A
A3ED70803A3803807100A215E115623970070064D83003133821147C9325>I<381C0F80
382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB038400381388A2EB07
08EB031000701330383001C016147C931A>I<137CEA01C338030180000E13C0121E001C
13E0123C1278A338F003C0A3EB07801400EA700F130EEA3018EA1870EA07C013147C9317
>I<3801C1E0380262183804741C1378EB701EA2EA08E01200A33801C03CA31438380380
78147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2B47E171D809317>I<EBF040
380388C038070580EA0E03121C123C383807001278A3EAF00EA45BA2EA703C135CEA30B8
EA0F381200A25BA45BA2EA0FFE121D7C9315>I<EA1C1EEA266138278380EA47871307EB
0300008EC7FC120EA35AA45AA45A123011147C9313>I<13FCEA0302EA0601EA0C031307
13061300EA0F8013F0EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA4010EA2060EA
1F8010147D9313>I<EA018013C0EA0380A4EA0700A2EAFFF0EA0700120EA45AA45AA313
20EA7040A21380A2EA3100121E0C1C7C9B0F>I<000E13C0001313E0382301C0EA4381EA
4701A238870380120EA3381C0700A31410EB0E201218A2381C1E40EA0C263807C3801414
7C9318>I<380E0380EA1307002313C0EA4383EA4701130000871380120EA3381C0100A3
1302A25BA25BEA0E30EA03C012147C9315>I<000EEBC1C0001313E3392301C3E0384381
C1384701C015603987038040120EA3391C070080A3EC0100A21306EB0F02000C5B380E13
083803E1F01B147C931E>I<38038380380CC440381068E013711220EB70C03840E00012
00A3485AA314403863808012F3EB810012E5EA84C6EA787813147D9315>I<000E13C000
1313E0382301C0EA4381EA4701A238870380120EA3381C0700A4130E1218A2EA1C1EEA0C
3CEA07DCEA001CA25B12F05BEAE060485AEA4380003EC7FC131D7C9316>I<3801C04038
03E080EA07F1380C1F00EA0802C65A5B5B5B5B5B48C7FC1202485AEA08021210EA3E0CEA
63FCEA41F8EA80E012147D9313>I E /Fw 52 123 df<137013F0EA01E0EA03C0EA0780
EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
24799F18>40 D<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA
01C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780
EAFDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A411
147D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<12
1C123E127E127F123F121F1207120E121E127C12F81260080C788518>I<EA01F0EA07FC
487EEA1F1FEA1C0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA7803
00381380381C0700EA1F1FEA0FFE6C5AEA01F0131C7E9B18>48 D<EA01801203A2120712
0F123F12FF12FB12431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3F
FF387C0F80387003C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E
5B5B5B485AEA07C0485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<1218123C127EA212
3C12181200A81218123C127EA2123E121E120E121C123C127812F01260071A789318>59
D<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C
7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E9918>I<387FFFC0
B512E0A3C8FCA4B512E0A36C13C0130C7E9318>I<137013F8A213D8A2EA01DCA3138CEA
038EA4EA0707A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B
18>65 D<EA7FFCB5FC6C1380381C03C01301EB00E0A4130114C01307381FFF80140014C0
EA1C03EB00E014F01470A414F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EB
F8E0EA03FEEA07FFEA0F07EA1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E
01C0EA0F073807FF803803FE00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB
03C0A2EB01E01300A214F01470A814F014E0A2130114C01303EB0F80387FFF00485AEA7F
F8141C7F9B18>I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA214
38A5B512F8A3151C7F9B18>I<B512F8A3381C0038A41400A21307A3EA1FFFA3EA1C07A3
90C7FCA7EAFFC0A3151C7F9B18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C031238130112
70A290C7FC5AA5EB0FF0131F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FD
EA01F1141C7E9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D
9B18>73 D<387F07F038FF87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0
121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0
151C7F9B18>75 D<EAFFC0A3001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE
03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C
7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA213E1A313611371A213
311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF8048
13C0EA7803EA700100F013E0EAE000B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00
131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF
1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA0FFE383FFF804813C0EA7803EA7001
00F013E0EAE000AE1370A2EAF079387039C0EA783FEA7FFF6C1380380FFE00EA000FEB07
80A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE6C7E381C0F80130314C01301A31303
1480130F381FFF005BA2EA1C0F7FEB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B
18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FE
C67EEB0F80EB03C01301EB00E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8
131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF
83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300EA007C171C809B18>I<38
FE03F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3
EA00F8A21370A9EA01FC487E6C5A151C7F9B18>89 D<EA0FF0EA1FFC487EEA3C0FEA1807
38000380A213FF1207121FEA7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015
147E9318>97 D<127E12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E14
38A6000F1370A2EB80E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF
001F1380EA3E073838030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA
01FC12147D9318>I<EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA70
07130312E0A6EA7007A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA
01F0EA07FCEA1FFEEA3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C0
1238EA3E07381FFF8000071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801
C0C01400A3387FFFC0B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF8
5A381E1E30381C0E00487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC0
4813E0387801F038700070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F
9318>I<127E12FE127E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC
38FFE7FE387FC7FC171C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F12
01AEB5FCA3101D7C9C18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>108
D<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E171480
9318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387F
C7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF0
01007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FE
FF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E13
80EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<38FF0FC0EB3FE0EB7FF0EA07F0EB
E060EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>114 D<EA07F7EA3FFF5AEA780FEA
E007A3007CC7FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13
FCEAE7F011147D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1
C013FF6C1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F0338
07FFFC6C13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E03
80A338070700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<387F8FF000FF
13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC
1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>121
D<383FFFF05AA2387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F00
70121E5A5AB512F0A314147F9318>I E /Fx 39 91 df<1218123C127CA2123C1204A212
08A21210A2122012401280060E7D840D>44 D<EAFFF0A20C027E8A0F>I<1230127812F8
1278127005057C840D>I<14011403A21406A2140CA214181430A21460A214C0A2EB0180
A2EB0300A21306A25B5BA25BA25BA25BA2485AA248C7FCA212065AA25AA25AA25AA25AA2
5A182D7FA117>I<137EEA01C338030180000713C0EA0E0014E05AA2EA3C0112381278A5
38F003C0A51480130712E01400A2130E1260EA701CEA3038EA3870EA0FC0131F7C9D17>
I<13181338EA01F8EA0E701200A513E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B
9D17>I<EB3F80EBC1E038010070000213785AA2000F137C1380A2EB00781206C712F814
F0EB01E014C0EB0380EB0700130E5B5B13605B485A380300201206000813405A383FFFC0
481380B5FC161E7E9D17>I<137F380183C0380201E0EA0400000713F05A1301A2000013
E0A2EB03C0EB07801400131CEA01F8EA000E7F148014C0130313071230127812F8A200F0
138038800F00EA400E6C5AEA1078EA0FE0141F7D9D17>I<1460A214E0EB01C013031305
130D13091311EB2380134313C31383EA010312023804070012081218121012201240B512
F038000E00A55B131E3801FFC0141E7E9D17>I<380180303803FFE014C0140013FC0002
C7FCA25AA4137CEA0587380A0380EA0C01000813C0120014E0A4387003C012F812F000E0
1380EA800700401300130E6C5AEA1070EA0FC0141F7D9D17>I<EB1F80EB7040EBC02038
0180E0EA03011207380E00C0001E1300121C123C1238EA78F8EA790EEA7A07EA7C0300F8
1380A200F013C0A4EB078012E0A214005BEA600EEA701CEA3018EA1870EA07C0131F7C9D
17>I<1220383FFFF04813E014C03840008038C0010012801302485A5B5B5BA25B13C048
5AA2120390C7FC5AA25A120EA2121EA35AA31218141F7A9D17>I<133FEBC1C038010060
00021320481330120CA3000E1360A2380F80C0EBC1803807F600EA03FC120113FF38063F
80EA0C1F381007C0EA3003EA600113005AA31480EB0100EA6003EA3004EA1818EA07E014
1F7D9D17>I<137EEA01C338030180000613C0120EEA1C00003C13E0A213011278A41303
A2003813C01307EA1C0BEA0C133803E380EA0007A214005BEA600EEAF01C1318485AEA80
60EA41C0003FC7FC131F7C9D17>I<1408140C141C143CA2147C147E149EA2EB011EA213
02801304A21308A20110138014071320A2EB7FFF90384007C0EB8003A2EA0100A21202EC
01E01206001F130339FF801FFE1F207F9F22>65 D<0007B5FC3900F803C090387801E0EC
00F04913F8A515F03801E001EC03E015C0EC0F809038FFFE009038E00F803903C003C0EC
01E015F0A21400A2485A1401A215E01403EC07C0390F000F80EC3E00B512F01D1F7E9E20
>I<ECFE02903807018690381C004E0170133E49131E4848131C4848130C120748C7FC5A
121E003E1408003C1400127CA45AA4127815101520A27E1540001C14806CEB01006C1302
3803800C3800E030EB3FC01F217C9F21>I<0007B57E3900F801E0903878007081497F15
1E150E150FA348481480A6484814005DA3151E153E4848133C5DA25D4A5A4A5A260F000F
C7FC143CB512F0211F7E9E23>I<0007B512FC3900F8007C0178131C150C5B1504A41404
3901E00800A31438EBFFF8EBE0383803C010A4EC00081510485AA21520A2156015C0380F
00011407B612801E1F7E9E1F>I<0007B512F83900F800780178133815185B1508A53901
E00800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E
>I<ECFE02903807018690381C004E0170133E49131E4848131C4848130C120748C7FC5A
121E003E1408003C1400127CA45AA2EC3FFEEC01F000781300A2EC01E0A27EA2121C6C13
036CEB05C0380380083900E0304090383FC0001F217C9F24>I<3A07FF83FFC03A00F800
7C000178133CA2495BA648485BA490B5FCEBE0004848485AA64848485AA64848485A0180
7F39FFF07FF8221F7E9E22>I<3807FF803800F8001378A25BA6485AA6485AA6485AA648
C7FC7FEAFFF0111F7E9E10>I<3A07FF803FE03A00F8001F000178130C5D4913205D5D4A
C7FC1402140848485A5C146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F
48487E81140781140381380F00016D487E39FFF00FFE231F7E9E23>75
D<3807FFE0D800FCC7FC1378A25BA6485AA6485AA41580EC0100EA0780A25C1402140614
0E380F001E147CB512FC191F7E9E1C>I<D807F8EC7FE00000ED7C00017814BCA2019C49
5AA21502A2018E13041508D8010E5C1510A26D1320A215400002EC41E09038038081EC81
01A21482A23A0401C403C0A214C8A2EB00F0000C13E04B5A001E01C07FD8FFC0EB7FFC2B
1F7E9E2A>I<D807F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83
C0D801035BEB01E0A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A214
01000C5C001E1300B47E221F7E9E22>I<EB01FCEB0E0790383801C090387000E0484813
F048481378485A153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01
F0007C14E01403003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F80
1F217C9F23>I<0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC
01E0EC03C0EC0F00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<EB01
FCEB0E0790383803C090387001E03901E000F048481378485A153C48C7FC5A001E143E12
3E123C127CA448147CA3157815F8127815F0EC01E0EA7C0F393C1083C0391C204780001E
EB4F00380F405E3807A0783901E0E010EA007F9038006030EC702015E0147F15C0EC3F80
A2EC1E001F297C9F23>I<3807FFFE3900F8078090387801E0EC00F05B15F8A415F03801
E00115E0EC03C0EC0780EC1E00EBFFF03803C03880141E140EA2140F48485AA51502D80F
001304EB800F39FFF00788C7EA01F01F207E9E21>I<EB1F82EB7066EBC01E3801800EEA
030048130C00061304120EA3000F1300A27FEA07F013FF6C13C06C13E038003FF0EB03F8
13001478143CA200401338A3143000601370146000F013C038E8018038C60300EA81FC17
217E9F19>I<003FB512F0383C078000301430126039400F0010A212C01280A3D8001E13
00A65BA65BA65B7F383FFFE01C1F7A9E21>I<39FFF00FF8391F0003E06CEB0180140000
1EEB0100A6481302A6485BA600705BA25CA200785B1238001813C06C48C7FCEA0706EA01
F81D20799E22>I<39FFF001FE391F8000F86CC712601540A215807F0007EB0100A21402
1406EBC00400035BA25CA26C6C5AA25CA26D5A120001F1C7FC13F2A213FC137C1378A213
70A213201F207A9E22>I<3BFFF07FF81FF03B1F000FC007C0001E903907800380001FED
01006C1502140F5EEC17C002135B142301805C000713435E14C3913883E0401481D98101
5B13C1D803C213E193C7FC13C415F2EBC80015F4EA01F015F85B5D5B15605B000014402C
207A9E2F>I<3A03FFC0FFC03A007F003E00013C1318013E1310011E5B011F5B6D5B0281
C7FCEB078314C2EB03C414E8EB01F0A2130080A2EB017CEB023CEB043EEB0C1EEB081F49
7E132001407FEB8007000180EB0003000780391F8007F039FFC01FFE221F7F9E22>I<39
FFF001FF391F8000786CC712606D134000071480EBC00100031400EBE0025C12016D5A00
005B6D5A1378EB7C40EB3C80013FC7FC7F131EA3131C133CA513381378137C3807FF8020
1F7A9E22>I<0003B512F09038F001E0EB8003010013C00006EB0780EC0F000004131E14
3E143C5CC75A495A13035C495A49C7FC131E133E133C4913805B3901E00100120313C048
485A380F0002001E1306003E130E003C131E4813FCB5FC1C1F7E9E1C>I
E /Fy 57 123 df<137EEA01C33903018080380E00C0001E13E0001CEBE100123C5A14E2
14E45A14E814F0A25C1270EB016038300671381818323807E01C19147E931D>11
D<14F8EB03061304EB080313101320EB4007A2138014063801000E140CEB07F8EB047038
0207D8EB001CA2141E5AA448133CA3147800181370001413F014E0381201C038218700EA
207C90C7FCA25AA45AA318297F9F1A>I<133EEB7FC013833801018090C7FC7FA27F1200
7FA213701378A2EA01BCEA071E120EEA1C0E1218EA380F12707FA2EAE006130EA2130CA2
EA6018A26C5A6C5AEA0F8012217EA014>14 D<137CEA0180EA0700120E5A123C12381278
A2EA7FF0EAF000A31270A312301238EA0C18EA07E00E147E9312>I<131E1363EBC380EA
01C1EA0381EB01C01207120F120EEA1E03121C123CA338780780EA7FFFA2EA780738F00F
00A3130E131EEAE01C133C13381330EA60705BEA70C0EA3180001EC7FC12207E9F15>18
D<1207EA01C07F12007F1370A213781338A2133C131CA2131E130EA2130F7F131FEB3780
136313C3380183C0EA0381EA0701000E13E0EA1C005A48137012F048137848133815207D
9F1B>21 D<EB0F80EB38C0EB6060EBC070120138038078A2EA0700A3000E13F0A3EB01E0
001C13C0A2381E0380EB0700EA390CEA38F090C7FCA25AA45AA35A151E7F9318>26
D<380FFFF05A5A3860400012C0EA80C012005B1201A4120390C7FCA25AA3120E12061414
7E9314>28 D<127012F8A3127005057C840D>58 D<127012F012F8A212781208A31210A3
1220A21240050E7C840D>I<EC01C0EC0780EC1E001478EB01E0EB0780010EC7FC133813
F0EA03C0000FC8FC123C12F0A2123C120FEA03C0EA00F01338130E6D7EEB01E0EB007814
1EEC0780EC01C01A1A7C9723>I<144014C0EB0180A3EB0300A31306A25BA35BA35BA25B
A35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D7EA117>I<12E01278121E
EA0780EA01E0EA0078131C1307EB03C0EB00F0143C140FEC03C0A2EC0F00143C14F0EB03
C049C7FC131C1378EA01E0EA0780001EC8FC127812E01A1A7C9723>I<131FEB60C0EB80
6038010030000213183803801C13C0EA0780EA0300C7121EA3133E13C13803809C380700
7C120E5A123C003813781278A214F05A14E0A2EB01C0A2EB03800070130013066C5AEA1C
38EA07E017227EA018>64 D<14021406140EA2141E141F142F146F144F148FA2EB010F13
03130201041380A2EB0807131813101320A2EB7FFFEB8007A2D8010013C0140312025AA2
120C003C1307B4EB3FFC1E207E9F22>I<48B512E039001E0078153C151C151E5BA44913
3CA2157815F09038F003C090B512009038F007C0EC00E0484813F01578A3485AA3157048
4813F0EC01E0EC03C0EC0780390F001E00B512F01F1F7E9E22>I<027F1380903803C0C1
90390E0023000138131749130F5B48481306485A48C7FC5A000E1404121E4891C7FCA25A
A45AA400701420A35D6C5CA26C49C7FC6C13066C13183801C06038007F8021217F9F21>
I<48B512E039001E0038150E81A249EB0380A2ED01C0A25BA4491303A44848EB0780A216
005D4848130E151E151C5D48485B5D4A5A0207C7FC380F001CB512F0221F7E9E26>I<48
B6FC39001E001E1506A215025BA4491304EC0200A3495A140CEBFFFCEBF00C3801E008A4
4848C7FCA4485AA4120FEAFFFC201F7E9E1D>70 D<027F1380903803C0C190390E002300
0138131749130F5B48481306485A48C7FC5A000E1404121E4891C7FCA25AA45AEC3FFEEC
00F0A20070495AA46C495AA26C13076C13056CEB19803801C06026007F80C7FC21217F9F
24>I<3801FFF038001F00131EA35BA45BA45BA4485AA4485AA4485AA4120FEAFFF0141F
7E9E14>73 D<3801FFF8D8001FC7FC131EA35BA45BA45BA4485AA3154048481380A21401
150048485AA21406140E380F007CB512FC1A1F7E9E1F>76 D<D801FEEC0FF8D8001EEC1F
8001171500162F164F0127145E169EED011EA290394380023CA21504150801835C151015
20EB81C0D80101495A1580A2ECC10000024A5A14C214C4EB00E4489038E803C014F0A200
0C13E0001EEBC007D8FFC0EB7FFC2D1F7E9E2C>I<48B4EB1FF8D8001FEB03C091388001
001317A2903823C002A2EB21E0A2903841F0041340A2147801805B147C143CA248486C5A
A2140FA2000214A01407A2EC03E0485CA21401120C001E6D5AEAFFC0251F7E9E25>I<48
B512E039001E0078151C150E150F5BA449131EA2153C15784913E0EC03C09038FFFE0001
F0C7FC485AA4485AA4485AA4120FEAFFF8201F7E9E1D>80 D<48B5128039001E00F01538
151CA249131EA449133CA2157815F09038F001C0EC0700EBFFF8EBF00E48487E15801403
15C03903C00780A43907800F001502A21504000F130739FFF80308C7EA01F01F207E9E23
>82 D<903803F04090380C08C09038300580EB600313C000011301018013001203A391C7
FC7F7F13FC3801FFC06C13F06D7E131FEB01FCEB007C143C141CA21220A2141800601338
1430147000705B38E80180D8C603C7FCEA81FC1A217E9F1C>I<000FB512FC391E03C038
00181418001014081220EB078012601240A239800F001000001400A3131EA45BA45BA45B
A41201387FFFC01E1F7F9E1B>I<39FFF001FF390F80007890C712301520154015807F00
07EB01005C14025CA25C6D5AA200035B146014405CA201C1C7FC13E2120113E413E8A213
F0A25B5B12005B20207E9E1B>86 D<39FFF001FF390F80007815301540000714C06D1380
0003EB0100EBE0025C00015BEBF018141000005B6D5AEB7880137D91C7FC7F133CA21338
1378A3137013F0A4485AEA1FFE201F7F9E1A>89 D<90387FFFFE9038FC003C01F0137801
C013F090388001E00001EB03C09038000780140FEC1F000002131EC75A5C5C495A495A49
5A130F91C7FC131E4913405B491380485A3803C0010007140048485AEB0002001E130648
131E48137CB512FC1F1F7E9E1F>I<EBF180380389C038070780EA0E03121C123C383807
001278A3EAF00EA31410EB1C20A2EA703CEB5C40EA308C380F078014147E9318>97
D<EA0780123FEA0700A4120EA45AA213F0EA1D0CEA3A0E123CEA380FA21270A4EAE01EA3
131C133C1338EA607013E0EA31C0EA1F0010207E9F14>I<137CEA01C338070080EA0E07
121E001C1300EA3C0248C7FCA35AA5EA70011302EA3004EA1838EA0FC011147E9314>I<
1478EB03F8EB0070A414E0A4EB01C0A213F1EA038938070780EA0E03121C123C38380700
1278A3EAF00EA31410EB1C20A2EA703CEB5C40EA308C380F078015207E9F18>I<137CEA
0182EA0701120E121C123CEA3802EA780CEA7BF0EA7C0012F0A4127013011302EA3004EA
1838EA0FC010147E9315>I<147C14CEEB019E1303140CEB0700A4130EA3EBFFF0EB0E00
A25BA55BA55BA55BA45B1201EA3180127948C7FC1262123C17297E9F16>I<EB1E30EB71
38EBE0F03801C070EA03801207EB00E05AA3381E01C0A4EB0380A2EA0E07130B38061700
EA01E7EA0007A2130EA21230EA781C485AEA6070EA3FC0151D809316>I<EA01E0120FEA
01C0A4485AA448C7FCA2131FEB6180380E80C0EA0F00000E13E0A2381C01C0A438380380
A3EB070400701308130E1410130600E01320386003C016207E9F1A>I<13E01201A2EA00
C01300A7120E1213EA23801243A3EA87001207A2120EA25AA21320EA3840A31380EA1900
120E0B1F7E9E10>I<14C0EB01E0A214C090C7FCA7131E1323EB43801383EA0103A23802
07001200A3130EA45BA45BA45BA21230EA78E0EAF1C0EA6380003EC7FC1328819E13>I<
EA01E0120FEA01C0A4485AA448C7FCA2EB01E0EB0610380E0870EB10F013201460381C40
00EA1D80001EC7FCEA1FC0EA38707FA2EB1C2038703840A3EB188012E038600F0014207E
9F18>I<EA01C0121FEA0380A4EA0700A4120EA45AA45AA45AA3127112E2A4126412380A
207E9F0E>I<391E07C07C39231861869038A032033843C034D980381380A23A87007007
001207A3000EEBE00EA3ED1C10261C01C01320153816401518263803801380D81801EB0F
0024147E9328>I<381E0780382318C0EBA0603843C0701380A2388700E01207A3380E01
C0A3EB0382001C1384EB07041408130300381310381801E017147E931B>I<137CEA01C3
38030180000E13C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA30
18EA1870EA07C013147E9316>I<3803C1E038046218EB741CEA0878EB701EA2EA10E012
00A33801C03CA3143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2
EAFFC0171D819317>I<EBF040380388C038070580EA0E03121C123C383807001278A3EA
F00EA45BA2EA703C135CEA30B8EA0F381200A25BA45BA2EA0FFC121D7E9314>I<EA1C1E
EA26213847438013871307EB0300008EC7FC120EA35AA45AA45A123011147E9315>I<13
FCEA030338060080EA0C0113031400000EC7FCEA0F8013F86C7EEA01FEEA001F13071270
EAF006A2EAE004EA4008EA2030EA1FC011147E9315>I<EA018013C0EA0380A4EA0700A2
EAFFF8EA0700120EA45AA45AA31310EA7020A213401380EA3100121E0D1C7F9B10>I<00
0F136038118070002113E013C01241EA4380388381C0EA0701A3380E0380A31484EB0708
120CA2380E0F10EA06133803E1E016147E931A>I<381E01C0EA230314E0EA4381130000
47136000871340120EA3481380A3EB0100A213025B120CEA0E18EA03E013147E9316>I<
000FEB607039118070F00021EBE0F801C0137800411438D843801318398381C010EA0701
A3390E038020A31540A2158013070006EB8100380709C23801F07C1D147E9321>I<3803
C1C0380C622038103470EB38F012201460384070001200A35BA314203861C04012F11480
12E238446300EA383C14147E931A>I<001E13600023137014E0EA438013001247388701
C0120EA3381C0380A4EB07001218121C5BEA0C3EEA03CEEA000EA25BEAF0181338485AEA
C060EA41C0003FC7FC141D7E9316>I<3801C0203803F0403807F8C0380C1F8038080100
EA00025B5B5B13605B48C7FC120248138038080100485AEA3F06EA63FEEA40FCEA807013
147E9315>I E /Fz 67 123 df<90380FF07F90397FF9FF809039F83FC7C03901E07F8F
0003140FEA07C091383F07806EC7FCA5B612F8A22607C01FC7FCB0393FF8FFF0A2222080
9F1F>11 D<EB0FE0EB7FF8EBF81C3801E07C1203EA07C0A2143891C7FCA3EBC1FEB5FCA2
3807C03EB0393FF9FFC0A21A20809F1D>I<EB0FFE137FEBF87E3801E0FE12033807C07E
A2143EA5B512FEA23807C03EB0393FF9FFC0A21A20809F1D>I<1330136013C0EA018012
03EA07005A120E121E121C123CA212381278A412F85AA97E1278A41238123CA2121C121E
120E120F7EEA03801201EA00C0136013300C2D7CA114>40 D<12C012607E7E121C7E120F
7E1380120313C0A2120113E0A413F01200A9120113E0A413C01203A21380120713005A12
0E5A12185A5A5A0C2D7DA114>I<13E0487E6C5AA23870E1C038F8E3E0EAFCE7387E4FC0
380F5E00EA03F8A2EA0F5E387E4FC038FCE7E0EAF8E33870E1C03800E000A2487E6C5A13
147DA11A>I<EAFFF0A40C047F8B11>45 D<1238127C12FEA3127C123807077C860F>I<EA
01FCEA07FF381F07C0EA1E03003E13E0387C01F0A300FC13F8AD007C13F0A3383E03E000
1E13C0EA1F8F3807FF00EA01FC151D7E9C1A>48 D<137013F0120712FF12F91201B3A438
7FFFC0A2121D7D9C1A>I<EA03FC381FFF8038381FC0387C07E038FE03F0A214F8130112
7C1238EA000314F0A2EB07E0EB0FC01400131E5B13705B3801C018EA0380EA0600481338
381FFFF05A5AB5FCA2151D7E9C1A>I<EA03FC380FFF80381C0FC0383C07E0387E03F0A3
1307003C13E01200EB0FC0EB3F803803FE005B38000F80EB07C0EB03E014F014F8123812
7C12FEA214F012FC387807E0383C0FC0381FFF803803FC00151D7E9C1A>I<EB01C01303
1307A2130F131F133B1373136313C3EA01831203EA0703120E120C12181238127012E0B5
12FEA2380007C0A6EBFFFEA2171D7F9C1A>I<001C13E0EA1FFF14C01480140013FC13C0
0018C7FCA4EA19FE381FFF80381E07C0381803E0381001F0120014F8A2127812FCA314F0
EA7803007013E0383C0FC0380FFF00EA03FC151D7E9C1A>I<133F3801FFC03807C0E0EA
0F81381F03F0121E123E127CEB01E090C7FCEAFC1013FF00FD13C0EB03E038FE01F0A200
FC13F8A4127CA3003C13F0123E381E03E0380F07C03807FF803801FE00151D7E9C1A>I<
1260387FFFF8A214F014E014C038E0018038C00300A21306C65A5B13381330137013F0A2
485AA21203A41207A56C5A6C5A151E7D9D1A>I<EA01FE380FFF80381E07C0383801E0EB
00F01278A2127C127FEBC1E0383FE3C0381FFF80380FFE003807FF8014C0001F13E0383C
3FF0EA780FEB03F8EAF00113001478A214701278007C13E0383E03C0380FFF803803FC00
151D7E9C1A>I<1238127C12FEA3127C12381200A61238127C12FEA3127C123807147C93
0F>58 D<14E0A2497EA3497EA2EB06FCA2EB0EFEEB0C7EA2497EA201307F141F01707FEB
600FA2496C7E90B5FC4880EB8003000380EB0001A200066D7EA2000E803AFFE00FFFE0A2
231F7E9E28>65 D<B512FEECFFC03907C007E0EC03F0EC01F815FCA515F8140315F0EC0F
E090B5128015C09038C003F0EC01F815FC140015FEA515FC1401EC03F8EC07F0B612E015
001F1F7E9E25>I<903807FC0290383FFF0E9038FE03DE3903F000FE4848133E4848131E
485A48C7120EA2481406127EA200FE1400A7127E1506127F7E150C6C7E6C6C13186C6C13
386C6C13703900FE01C090383FFF80903807FC001F1F7D9E26>I<B512FEECFFC03907E0
07F0EC01F86E7E157E81A2ED1F80A316C0A91680A3ED3F00A2157E5D4A5AEC07F0B612C0
4AC7FC221F7E9E28>I<B612E0A23807E00714011400156015701530A21430A215001470
14F013FFA213E014701430150CA214001518A31538157815F8EC03F0B6FCA21E1F7E9E22
>I<B612E0A23807E00714011400156015701530A21430A21500147014F013FFA213E014
701430A391C7FCA8B57EA21C1F7E9E21>I<903807FC0290383FFF0E9038FE03DE3903F0
00FE4848133E4848131E485A48C7120EA2481406127EA200FE91C7FCA591381FFFE0A200
7E9038007E00A2127F7EA26C7E6C7E6C7E6C6C13FE3800FE0190383FFF8E903807FC0623
1F7D9E29>I<B5380FFFF0A23A07E0007E00AC90B512FEA29038E0007EADB5380FFFF0A2
241F7E9E29>I<B5FCA2EA07E0B3A9B5FCA2101F7E9E14>I<B57EA2D807E0C7FCB115C0A3
1401A3EC0380A2140F141FB6FCA21A1F7E9E1F>76 D<D8FFE0EC3FF86D147F00071600D8
06F814DFA3017CEB019FA26DEB031FA26D1306A290380F800CA2903807C018A3903803E0
30A2903801F060A2903800F8C0A2EC7D80A2EC3F00A3141ED8FFF0903803FFF8140C2D1F
7E9E32>I<D8FFE0EBFFF07F0007EC06007FEA06FC137E7F1480131FEB0FC0EB07E0EB03
F0EB01F814FC1300147E143FEC1F8615C6EC0FE61407EC03F6EC01FE1400A2157E153E15
1E150ED8FFF01306A2241F7E9E29>I<EB1FF890B5FC3901F81F803907E007E0390FC003
F0391F8001F890C7FC4814FC4814FE007E147EA200FE147FA9007E147E007F14FEA26C14
FCEB8001001F14F8390FC003F03907E007E03901F81F806CB51200EB1FF8201F7D9E27>
I<B512FEECFF803907E00FE0EC03F0EC01F8A215FCA515F8A2EC03F0EC0FE090B51280EC
FE0001E0C7FCACB5FCA21E1F7E9E24>I<EB1FF890B5FC3901F81F803907E007E0390FC0
03F0391F8001F8A248C712FC4814FEA2007E147E00FE147FA9007E147EA2007F14FE6C14
FCEB87C1391F8FE1F8390FD833F03907F81FE0000114806CB5120090381FFE03EB000EEC
0F0715FF8015FEA2EC03FCEC01F8EC00F020287D9E27>I<B512FCECFF803907E00FE0EC
03F081140181A45D14035DEC0FE090B5128002FCC7FCEBE03FEC0F8081140781A381A316
30EC03F802011360B53800FFC0ED3F80241F7E9E27>I<3803FC08380FFF38381E03F8EA
3800481378143812F01418A26C13007EEA7FC013FE383FFF806C13C06C13E06C13F0C613
F81307EB00FC147C143C12C0A36C1338147800F8137038FE01E038EFFFC000811300161F
7D9E1D>I<007FB512FCA2397C07E07C0070141C0060140CA200E0140E00C01406A40000
1400B10003B512C0A21F1E7E9D24>I<B53801FFE0A23A07E0000C00B3A400035C6C7E5D
6C6C5B90387E03C090381FFF80D903FCC7FC231F7E9E28>I<D8FFFEEB3FF8A2D80FE0EB
0380000715006D5B000314067F00015C7F00005CA2017E5BA2017F13706D1360EC80E001
1F5B14C090380FC180A2D907E3C7FCA2EB03F6A214FE6D5AA26D5AA21470A2251F7F9E28
>I<3CFFFC0FFFC0FFE0A23C0FC000FC000E007F00076E130CA26D151C0003D901BF1318
A2D801F85D9138031F80A22600FC076D5AEC060F01FE15E0903A7E0C07E0C0A2013FECE1
8091381803F1A2D91FB801FBC7FCECB00102F013FF6D486C5AA201075C4A137CA2010314
784A133801011430331F7F9E36>I<003FB51280A29038803F00383E007F0038137E5CEA
70015C386003F013075CC6485A131F5C49C7FC5B137E5B0001EB018013F8EA03F01207EB
E003EA0FC0001F1400495A48485A485B007E137FB6FCA2191F7D9E20>90
D<12FFA312E0B3B3A312FFA3082D7BA10F>I<12FFA31207B3B3A312FFA3082D7FA10F>
93 D<EA07FC381FFF80383F07C0EB03E0EB01F0A2120C1200133FEA07FDEA1F81EA3E01
127C12F8A3EAFC02EA7E0C383FF87E380FE03E17147F9319>97 D<B4FCA2121FAAEB1FC0
EB7FF0EBE0F8EB807CEB007E143EA2143FA6143EA2147C1380381EC1F8381C7FE038181F
8018207E9F1D>I<EA01FE3807FF80381F0FC0123EA2127CEB030000FCC7FCA6127C127E
003E1360003F13C0EA1F813807FF00EA01FC13147E9317>I<EB07F8A21300AAEA01F8EA
07FEEA1F83EA3E01EA7E00127CA212FCA6127CA2127EEA3E01EA1F07380FFEFFEA03F818
207E9F1D>I<EA01FE3807FF80380F83C0381E01E0383E00F05A14F812FCB5FCA200FCC7
FCA3127CA26C1318121E380F80703807FFE0C6138015147F9318>I<EB3F80EBFFC03803
E3E0EA07C71387120FEB83C0EB8000A5EAFFFCA2EA0F80B0EA7FF8A213207F9F10>I<38
03FC3C380FFFFE381E079E383C03DE007C13E0A5003C13C0381E0780381FFF00EA13FC00
30C7FCA21238383FFF806C13F06C13F84813FC3878007C0070133E00F0131EA30078133C
A2383F01F8380FFFE000011300171E7F931A>I<B4FCA2121FAAEB0FC0EB3FE0EB61F0EB
C0F813801300AD38FFE7FFA218207D9F1D>I<121C123E127FA3123E121CC7FCA6B4FCA2
121FB0EAFFE0A20B217EA00E>I<B4FCA2121FAAEB01FEA2EB00F014C0EB0380EB070013
0C5B137C13FC139E130F001E1380EB07C01303EB01E014F0EB00F838FFC3FFA218207E9F
1C>107 D<B4FCA2121FB3AAEAFFE0A20B207E9F0E>I<3AFE0FE03F8090391FF07FC03A1E
70F9C3E09039407D01F0EB807E121FEB007CAC3AFFE3FF8FFEA227147D932C>I<38FE0F
C0EB3FE0381E61F0EBC0F81380EA1F00AD38FFE7FFA218147D931D>I<48B4FC000713C0
381F83F0383E00F8A248137CA200FC137EA6007C137CA26C13F8A2381F83F03807FFC000
01130017147F931A>I<38FF1FC0EB7FF0381FE1F8EB80FCEB007EA2143E143FA6143E14
7E147CEB80FCEBC1F8EB7FE0EB1F8090C7FCA7EAFFE0A2181D7E931D>I<3801F8183807
FE38381F8778383F01F8123EEA7E00127C12FCA6127C127EA2EA3F01EA1F87EA0FFEEA03
F8C7FCA7EB07FFA2181D7E931C>I<EAFE3EEB7F80381ECFC0138FA2121FEB030090C7FC
ABEAFFF0A212147E9316>I<EA0FE6EA3FFEEA701EEA600EEAE006A2EAF800EAFFC0EA7F
F8EA3FFCEA1FFE1203EA001FEAC007A212E0EAF006EAF81EEAFFFCEAC7F010147E9315>
I<1203A45AA25AA2123FEAFFFCA2EA1F00AA1306A5EA0F8CEA07F8EA03F00F1D7F9C14>
I<38FF07F8A2EA1F00AD1301A2EA0F063807FCFF6C5A18147D931D>I<39FFE07F80A239
1F001C00380F8018A26C6C5AA26C6C5AA2EBF0E000015B13F900005B13FF6DC7FCA2133E
A2131CA219147F931C>I<3AFFC7FE1FE0A23A1F00F0030014F8D80F801306A29038C1BC
0E0007140CEBC3BE3903E31E18A29038F60F380001143001FE13B03900FC07E0A2EBF803
01785BA2903830018023147F9326>I<38FFC0FFA2380F80703807C0606D5A3803E180EA
01F36CB4C7FC137E133E133F497E136FEBC7C0380183E0380381F048C67E000E7F39FF81
FF80A219147F931C>I<39FFE07F80A2391F001C00380F8018A26C6C5AA26C6C5AA2EBF0
E000015B13F900005B13FF6DC7FCA2133EA2131CA21318A2EA783012FC5BEAC0E0EAE1C0
EA7F80001EC8FC191D7F931C>I<383FFFE0A2383C07C038380F80EA701F38603F00133E
5BC65A1201485AEBE060EA07C0EA0F80001F13E0383F00C0EA3E01EA7C03B5FCA213147F
9317>I E /FA 37 123 df<92261FFF80EBFFC00203B5D8F01F13F0021FDAF87F13FC91
267FF801B5EAC0FE902801FFC0003FEB01FF010790C738FFFC03D90FFC4949481380495A
013F4A13F05C017F16E04A70130001FF6E6E5A735A70153097C7FCABBA12FEA4C601E0C7
01E0C8FCB3B3A2007F9026FFC07FEBFFF0A449487EC744>11 D<B612FEA91F097F9B27>
45 D<EA07C0EA1FF0EA3FF8EA7FFCA2EAFFFEA5EA7FFCA2EA3FF8EA1FF0EA07C00F0F78
8E20>I<EC01E01403140F143F14FF130F0003B5FCB6FCA213F1EAFC011200B3B3B1003F
B71280A4294478C33A>49 D<DC7FFE1406030FB500C0131E037F02F8133E0203B600FE13
7E020F903AF800FF80FE023F0180EB1FC1DAFFFCC7EA07F34901F0EC01FF010701C0EC00
7F4990C9123F4948161F4948160F49481607495A4818034A16015A48491600A2485B1A7E
5A91CBFC48193EA35A491800A312FFAD127FA37F6C191EA37E806C193E1A3C6C7FA26C6D
17787E6E17F06C18016D6C17E06D6CEE03C06D6CEE07806D6C6CED0F006D6D153E010101
F05D6D01FC4A5A91263FFF80EB0FF0020F01F8EB7FC0020390B6C7FCDA007F14FC030F14
E09226007FFEC8FC47497AC754>67 D<BA12F0A4D8001F902680000713F8EF007F181F18
0718031801A2180019FC197CA3193CA4191E1778A31900A317F8A316011603161F92B5FC
A4ED801F160316011600A31778A694C8FCB2B712FEA43F477CC649>70
D<DC7FFC140C030FB500C0133C92B600F0137C020303FC13FC021F9039F001FF014A90C7
EA3FC3DAFFF8EC07E7010301E0EC03FF494914004990C9127F4948163F4948161F494816
0F495A48180748491603A248491601A2485B481800A291CBFC48197CA35A4995C7FCA312
FFAD007F043FB612FCA37F6C93C7EBFC00A37E80A27E6C7FA26C7FA26C7F7E6D7E6D7E6D
7E6D6C5D6D13C06D01F05C010001FCEC0FCF91263FFF80EB1F876E01F8EBFF03020390B5
EAFE00020003F8133C030F02E0130C9226007FFEC9FC4E497AC75B>I<B712F0A4D8001F
EB8000B3B3B3A9B712F0A424477DC62B>73 D<B712FEA4D8001F0180C9FCB3B3A419F0A4
F001E0A41803A31807A219C0180F181FA2183F187FEF01FF5F170F94B51280BAFCA43C47
7CC646>76 D<923803FFF0037FEBFF800203B612F0020F9038003FFCDA3FF8EB07FFDAFF
E0010113C0010301809038007FF04990C86C7E49486F7E49486F7E49486F7E49486F7F01
FF8448496F7F48854A8148854A167F4885A24890CA6C7EA24885A3481A804983A400FF1A
C0AE007F1A806D5FA36C1A00A36C6D4C5AA36C6D4C5AA26C616C6D4B5BA26C6D4B5B6C6D
4B5B017F606E5D6D6C4B90C7FCD90FFFED3FFC6D01C0ECFFF86D6D495B010001F8010713
C091277FFF807F5B020F90B500FCC8FC020315F0DA007F1480030301F0C9FC4A497AC757
>79 D<B9FC18F818FEF0FFC0D8001F902680001F7F050113F8717FF03FFE727E1A80841A
C0841AE0A21AF0A81AE0A31AC0601A80601A004E5AF0FFFC050313F0051F5B92B7128006
FCC7FC18E00380CAFCB3ABB712F0A444477CC64F>I<B812F8EFFFE018FC18FFD8001F90
2680003F13C0050313F005007FF07FFE727E84727F86A2727FA286A862A24E5BA2624E90
C8FC4E5A4E5AF0FFF005075B053F138092B600FCC9FC18E084DB800013FCEF1FFF717F05
0313E08583717F85187FA285A785A5F30180F303C01A8084A272EC07801AC072EC0F00B7
00F06D6D5A0601EBF83E9539007FFFFC071F5BCD13C052487CC657>82
D<DA7FF013030107B55B011FECE00F017F6E5A903AFFC00FFC3F4848C76C5AD803F8EC3F
FF4848140F48488048488082003F814981127F83A200FF82A27FA2837F7F7F01FE92C7FC
6C6C7E14F8ECFF806C14FCEDFFC06C15F86C15FF6C8217E06C826C826C6C816D81010F81
1303D9007F1580020315C0EC003F030114E0ED001F16077013F01600A20070167F00F016
3FA3171FA27E18E0A27E18C06C163F7E188001C0ED7F007F01F815FE01FEEC03FC26FE7F
C0495A26FC3FFCEB3FF0D8F80FB612C0D8F00392C7FC48C66C13FC48010313E034497AC7
41>I<003FBA12FCA49026FE00079038E0007F01F0170FD87FC0EF03FE49170190C71600
007E197EA2007C193EA30078191EA400F8191F48190FA5C81700B3B3A60103B812C0A448
467CC551>I<B700C0023FB512E0A4D8003F90CA387FE0006FEE1F806D96C7FC81626D6D
163E1A7E6D187C6F16FC6D608119016D6D5E19036D606F1507027F5F81190F6E6D5D191F
6E94C8FC705C6E163E82197E6E6D147C19FC6E5E7013016E5E8218036E6D5C1807037F5D
70130F6F5DEF801FA26F01C090C9FC606FEBE03E187E6F147CEFF0FC6F5C17F817F96FEB
FDF017FF6F5CA2705BA3705BA27090CAFCA2705AA3705AA2705AA2705A53487EC658>86
D<90380FFFF090B6FC000315C03A07F8007FF0486CEB1FFCED07FE486C6D7E838183816C
48816C5A6C5AC9FCA5157F023FB5FC0103B6FC011F13F090387FFE003801FFE0481380D8
0FFEC7FC485A5B123F485AA2485AA45DA26C6C5BED077F6C6C130F6C6C013E13F83C0FFF
80F83FFFE000039038FFF01FC6ECC00F90390FFE0003332E7CAD38>97
D<EB7FC0B5FCA412037EB3A2ED1FFC92B57E02C314F09139CFE01FFC9139DF0003FE02FC
6D7E4A6D13804AEC7FC04AEC3FE04A15F0EF1FF8A218FCA2EF0FFEA418FFAA18FEA318FC
171FA218F8EF3FF0A26EEC7FE06E15C06EECFF80023C491300D9FE1FEB07FE903AFC0FC0
3FF8D9F803B512E049C6148049D91FF8C7FC38487CC741>I<91381FFFC049B512FC0107
14FF903A1FF8007F80D97FE0EBFFC0EBFF8048494813E0485A1207485AA248486D13C000
3FED7F80EE3F00007F92C7FC5BA312FFAA127FA27FA2123FA26C6C15F0120F6DEC01E012
076C6CEC03C06C6DEB07806C6DEB0F00D97FF0133E90391FFC01FC0107B512F0010114C0
9026001FFCC7FC2C2E7CAD34>I<EFFF804BB5FCA4ED000782B3A2EC1FFC49B512830107
14E390391FFC03F390397FE0007FD9FF807F4890C7120F484880000781485AA2485A123F
A25B127FA312FFAA127FA46C7EA2121FA26C7E00075D6C6C5C6C6C5C6C6D137F6D6C01FB
13C090273FF807E313FF010FB512C3010114039038003FF038487CC741>I<EC1FFC49B5
12C0010714F090391FF80FFC90397FC001FE49486C7E4890C7EA7F804848EC3FC04848EC
1FE0120F484815F0160F003F16F8A25B007F150717FCA212FFA290B7FCA301F0C9FCA512
7FA36C7EA2001F163CA26C7E17786C6C15F86C6CEC01F06C6DEB03E06C6DEB07C0D93FE0
EB1F80903A1FFC01FF000107B512FC010014E0020F90C7FC2E2E7DAD35>I<EDFFC0021F
13F0027F13FC903901FFC0FE49EB01FF903807FC034948481380131FEB3FF0137F14E001
FF6D13006F5A6F5A163093C7FCABB612FEA4C601E0C8FCB3B3A2007FEBFFF0A429487DC7
24>I<171FDA7FF0EBFFC00107B5000313E0011FECC7E7903B7FE03FFF0FF09039FF800F
FC48EB00074848EB03FE00079238FF07E0496DEB03C0000FEE8000A2001F82A8000F5EA2
000793C7FC6D5B00035D6C6C495A6C6D485A9138E03FF0D801DFB512C0D803C791C8FC90
38C07FF04848CAFCA37FA27FA213F890B612F06C15FF17E06C8217FC6C826D8148B81280
1207D80FF0C7001F13C0D81FC014014848EC007F007FEE3FE048C9FC171FA56C6CED3FC0
A26C6CED7F806C6CEDFF00D80FF8EC03FED803FEEC0FF82601FFE0EBFFF06C6CB612C001
0F4AC7FCD9007F13C034447DAE3A>I<EB7FC0B5FCA412037EB3A2ED07FE92383FFFC04B
13F09139C1F81FF89139C3C00FFC9139C70007FE14CE02DC8002F87F18805CA25CA35CB3
A9B60081B6FCA438487BC741>I<137C48B4FC4813804813C0A24813E0A56C13C0A26C13
806C1300EA007C90C7FCACEB7FC0B5FCA412037EB3B2B6FCA418497CC820>I<EB7FC0B5
FCA412037EB3B3B3A8B61280A419487CC720>108 D<9027FF8003FFEC03FFB5011F01E0
011F13E0037F01F8017F13F8913D81F80FFC01F80FFC913D83C007FE03C007FE0003903D
878003FF078003FF6CD98E00EC0E00029C039C8102B86D01B87F06F88102F05DA24A5DA3
4A5DB3A9B66CB66CB61280A4592E7BAD62>I<9039FF8007FEB590383FFFC04B13F09139
81F81FF8913983C00FFC00039039870007FE6C138E029C8002B87F188014F0A25CA35CB3
A9B60081B6FCA4382E7BAD41>I<EC0FFE49B512F0010714FC90391FF803FF90267FE000
13C0D9FF80EB3FE04890C76C7E48486E7E48486E7E000F82491403001F82003F17804980
A2007F17C0A300FF17E0AA007F17C0A46C6C4A1380A2001F17006D5C000F5E6C6C4A5A00
035E6C6C4A5A6C6D495AD97FE0EBFFC090261FFC0790C7FC0107B512FC010114F0D9001F
90C8FC332E7DAD3A>I<90397FC01FFCB590B57E02C314F09139CFE03FFC9139DF0007FE
000301FC6D7E6C496D13804A6D13C04AEC7FE04A15F0EF3FF8A2EF1FFCA218FEA2170FA2
18FFAA18FE171FA218FCA2173F18F818F0177F6EECFFE06E15C06E4913806E49130002DF
EB0FFE9139CFC03FF802C3B512E002C01480DB1FF8C7FC92C9FCB0B67EA438427CAD41>
I<DA1FF8EB078049B5130F0107EC801F90391FFC07E0903A7FF000F03FD9FFC0EB787F48
49133C4890C7EA1EFF484880120F4980121F003F815BA2127FA25B12FFAA127FA27FA212
3FA26C7E5E6C7E00075D6C6C5C6C6D5B6C6D137B90397FE001F390393FF80FE3010FB512
830103EBFE039038003FF091C7FCB04BB6FCA438427CAD3D>I<90397F803F80B5EBFFE0
028113F8913883C3FC91388707FE0003138E6C90389C0FFF14B8A214F0A2ED07FE9138E0
03FCED01F892C7FCA25CB3A8B612E0A4282E7DAD2F>I<90390FFE01C090B512C7000314
FF3807F801390FC0007F48C7121F48140F007E1407A2150312FEA27E7F01E090C7FC13F8
387FFFC014FF6C14E015F86C806C14FF6C1580000115C06C6C14E0131F010014F0140391
38007FF80070141F00F0140F15077E1503A26C15F0A27E6CEC07E07F6DEB0FC001F0EB1F
80D8FEFCEBFF0039F87FFFFCD8F01F13F0D8E0031380252E7CAD2E>I<EB01E0A61303A3
1307A3130FA2131F133FA2137FEA01FF5A000F90B512C0B7FCA3C601E0C7FCB3A616F0A9
017F14E0ECF001133FED03C0D91FF8138090390FFE0F00903807FFFE01015B9038001FF0
24427EC12D>I<D97FC0ECFF80B549B5FCA40003EC00076C81B3AA5EA36C5D5EA26D6C13
3B013F02F313C090271FF803E313FF6DB51283010314039038003FF8382E7BAD41>I<B6
49B5FCA4000101C09038001FC06EEC0F806C17006E5C017F151E6E143E013F153C80011F
5D8017F8010F5D6E13016D5DED80036D5DEDC0076D5D15E06D4AC7FC15F05E027F131EED
F83E023F133CEDFC7C021F1378EDFEF8020F5B15FF6E5BA36E5BA26E5BA26E90C8FCA215
7EA2153C382E7EAD3D>I<B500FE90381FFFFCA4C601E0903803FE006EEB01F86D6C5C6D
6C495A011F4A5A6D6C495A6E49C7FC6D6D5A6DEBC07E6D147C6D6D5AEDF1F091387FFBE0
6EB45A806E5B93C8FC6E7F6E7F6E7FA24A7F4A7F8291380F9FFEEC1F0F91383E07FF027C
804A6C7F01016D7F49487E4A6D7E49488049486D7E49C76C7E013E140F017E6E7E48B416
80B500E0017F13FFA4382E7EAD3D>120 D<001FB712E0A39026FE000313C001F0491380
01C05B4949130090C75B4B5A003E147F5E4B5A003C495B5C5E4A5B5CC74890C7FC5D4A5A
147F4A5A5D495B5B495B92388001E04913005B495A4A1303494814C013FF5C485B484913
075A4A130F4890C7FC48151F4848147F49ECFF804848130FB8FCA32B2E7DAD34>122
D E /FB 28 108 df<B612C0A21A027C8B23>0 D<127012F8A3127005057C8D0D>I<0040
130400C0130C006013186C13306C13606C13C03806018038030300EA0186EA00CC137813
30A2137813CCEA0186EA030338060180380C00C048136048133048131848130C00401304
16187A9623>I<EA0180A5EAE187EA718EEA399CEA0FF0EA03C0A2EA0FF0EA399CEA718E
EAE187EA0180A510147D9417>I<EB0FC0EB713838018106380201010004EB0080000814
4000101420A20020141000401408A300801404A3B612FC3980010004A400401408A30020
141000101420A200081440000414800002EB01003801810638007138EB0FC01E207E9A23
>8 D<EB0FC0EB7038380180063802000148EB0080481440481420A2481410481408A348
1404EB0780EB0FC0A4EB078090C7FC00401408A36C14106C1420A26C14406C14806CEB01
003801800638007038EB0FC01E207E9A23>12 D<14FF010713E090381F00F80178131E01
E01307D80180EB018048C812C000061560481530A248151848150CA2481506A4481503A9
00601506A46C150CA26C15186C1530A26C15606C15C06C6CEB0180D800E0EB0700017813
1E011F13F8903807FFE0010090C7FC282B7EA02D>I<EA03F0EA0FFCEA1C0EEA30033860
0180A238C000C0A638600180A238300300EA1C0EEA0FFCEA03F012127E9317>I<EA03F0
EA0FFC487E487E481380A2B512C0A66C1380A26C13006C5A6C5AEA03F012127E9317>I<
B612FC7EC9FCA7B612FCA2C9FCA7007FB512FCB6FC1E147E9423>17
D<15C01403EC0F00143C14F0EB03C049C7FC131C1378EA01E0EA0780001EC8FC127812E0
1278121EEA0780EA01E0EA0078131C1307EB03C0EB00F0143C140FEC03C014001500A700
7FB51280B612C01A247C9C23>20 D<12C012F0123C120FEA03C0EA00F01338130E6D7EEB
01E0EB0078141EEC0780EC01C0EC0780EC1E001478EB01E0EB0780010EC7FC133813F0EA
03C0000FC8FC123C127012C0C9FCA7007FB51280B612C01A247C9C23>I<13C0A3485AA2
120390C9FC12065A121C1230B712FEA20030C9FC121C120C7E7E7F1201A26C7EA327187D
962D>32 D<1506A381A216801501ED00C0166016701618B8FCA2C912181670166016C0ED
018015031600A21506A328187E962D>I<D803F0EB0FC0D80FFCEB3FF0D81C7FEB70183A
300F80C0043A6007C180063A4003E30002EB01F6268000FC1301147CA280A2143F004090
386F8002ECC7C03A600183E0063A200301F00C3A180E00FE38D80FFCEB3FF0D803F0EB0F
C028147E932D>49 D<EB3FF813FF3803C00048C7FC120C5A5AA25AA25AA3B512F8A200C0
C7FCA31260A27EA27E7E1207EA03C03800FFF8133F151C7C981E>I<140CA21418A21430
A21460A214C0A2EB0180A3EB0300A21306A25BA25BA25BA25BA25BA2485AA248C7FCA212
06A35AA25AA25AA25AA25A1240162C7AA000>54 D<B61280A2C71201AA190C7E8F1E>58
D<1308131CA21336A31363A2EBC180A2380180C0A238030060A300067FA2487FA2487FA2
487FA3487FA248EB01801400191C7E9A1E>94 D<00C0148014010060EB0300A26C1306A3
6C5BA26C5BA26C5BA26C5BA36C6C5AA23800C180A20163C7FCA21336A3131CA21308191C
7E9A1E>I<124012C0B3B3A7EAFFC0127F0A2E79A114>98 D<134013C0B3B3A712FFA20A
2E7EA114>I<EA7FC012FFEAC000B3B3A712400A2E79A114>I<EAFFC0A21200B3B3A71340
0A2E7EA114>I<130F1338136013E0EA01C0AFEA0380EA0700121E12F8121E1207EA0380
EA01C0AFEA00E013601338130F102D7DA117>I<12F8121E1207EA0380EA01C0AFEA00E0
13601338130F1338136013E0EA01C0AFEA0380EA0700121E12F8102D7DA117>I<12C0B3
B3A9022D7BA10D>106 D<EA4020EAC030B3B3A8EA40200C2E7BA117>I
E /FC 87 124 df<80497EA2497EA2EB05F01304497E1478EB107C143CEB203E141EEB40
1F8001807F1407D801007F14030002801401488014004880157848147C153C48143E151E
007FB6FCA2B7128021207E9F26>1 D<90381F83E09038F06E303901C07878380380F890
3800F03048EB7000A7B612803907007000B2383FE3FF1D20809F1B>11
D<133FEBE0C0EA01C0380381E0EA0701A290C7FCA6B512E0EA0700B2383FC3FC1620809F
19>I<EB3FE013E0EA01C1EA0381EA0700A8B5FCEA0700B2383FE7FC1620809F19>I<9038
1F81F89038F04F043901C07C06390380F80FEB00F05A0270C7FCA6B7FC3907007007B23A
3FE3FE3FE02320809F26>I<EA7038EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008
A2EA2010EA40200F0E7F9F17>34 D<137813841201EA03021207A45BA25BA2EA03909038
A00FFC9038C001E0EC00C000011480EC0100EA02E000041302EA08703818780438303808
EA703CEB1C10EAF00EEB0F20EB07C09038038004387001C0397802E0083938047018391C
183C303907E00FC01E227EA023>38 D<127012F812FCA212741204A31208A21210A21220
1240060E7C9F0D>I<13401380EA01005A12061204120C5AA212381230A212701260A412
E0AC1260A412701230A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12
407E12307E1208120C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A
120812185A12205A5A0A2E7EA112>I<EA0180A5EAE187EA718EEA399CEA0FF0EA03C0A2
EA0FF0EA399CEA718EEAE187EA0180A510147DA117>I<1303AFB612FCA2D80003C7FCAF
1E207E9A23>I<127012F012F8A212781208A31210A31220A21240050E7C840D>I<EAFFF0
A20C02808A0F>I<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300A31306A2
5BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D7EA117>
I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA7807003813
00EA1806EA1C0E6C5AEA03F0121F7E9D17>I<13801203120F12F31203B3A6EA07C0EAFF
FE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803A3EA2007
12001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5
FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12001400A213
1E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240EB0F00EA
200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202
A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803
EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012
F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA07
01380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB03
80A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240
387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B1201A412
03A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A3127038780300
123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300
A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E
13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB0700
1230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA
127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212781208A3
1210A31220A21240051D7C930D>I<007FB512F8B612FCC9FCA8B612FC6C14F81E0C7E90
23>61 D<EA0FE0EA103CEA601EEA400EEAE00F12F0A21260EA001E131C13381370136013
C01380A2EA0100A6C7FCA5EA0380EA07C0A3EA038010207E9F15>63
D<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801EA248B5FCEB000F
A20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22>65
D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F80EC07C0
140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE0109038381C30
9038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A91278
007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E9F21
>I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8153CA215
7C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B61280380F000F14
031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A31540A315
C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C01540A4EC20
00A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<90380FE01090
38381C309038E002703803C00139078000F048C71270121E15305A1510127C127800F814
00A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903C001703900E002309038380C
1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF8
1D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<3807FFC038003E00131EB3A3
122012F8A3EAF01CEA403CEA6038EA1070EA0FC012207F9E17>I<39FFF007FC390F0003
E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E01341EB80F0EB0078
A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>I<EAFFF8EA0F8090C7
FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<B46CEB07FE000715C0A2
D805C0130BA2D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3EB
0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F8003
E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F014
78A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB703838
01C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F814
7CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C06C1480390380070038
01E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A41580
A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E48
487E39070003804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F8147C
A900781478007C14F8A2003C14F0383E0781391E0841E0390F1023C00007148039039017
003801D01E3900783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E297E
9F23>I<B57E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070A2
80143CA3143EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>I<3803F040
380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4FC0007
1380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C60300EA
81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C0143000801410
A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3A46CEB
01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE391F8000
F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB7804A2
6D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF81FF03B
1F000FC007C06C903907800180170015C001805C00071502EC09E013C000035DEC19F014
10D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090383D00
0F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<397FF81FF839
0FE007C03907C0030000031302EBE0063801F00400005BEBF818EB78106D5AEB3E60EB1E
406D5AA213076D7E497E1305EB08F0EB18F8EB1078EB207CEB603EEB401EEB801F390100
0F801407000214C000061303001FEB07E039FFC01FFE1F1F7F9E22>I<39FFF001FF391F
800078000F146012076D1340000314807F3901F001001200EBF802EB7C06EB3C04EB3E08
131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>I<387FFFFE387E003C1278
00701378006013F814F0384001E0130314C0EB07801200EB0F00131EA25B137C13785B12
01EBE002EA03C0A2EA0780000F13061300001E1304003E130C123C48133C14FCB5FC171F
7E9E1C>I<12FFA212C0B3B3A512FFA2082D7CA10D>I<EA0804EA1008EA2010A2EA4020A2
EA8040A3EAB85CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA208
2D80A10D>I<120C121E1233EA6180EAC0C0EA80400A067A9E17>I<EA1FE0EA3030EA7818
131CEA300E1200A313FEEA078EEA1E0E1238127800F01310A3131E127838386720380F83
C014147E9317>97 D<121C12FC121CAA137CEA1D87381E0180EB00C0001C13E01470A214
78A6147014F014E0001E13C0381A018038198700EA107C15207E9F19>I<EA01FCEA0706
EA1C0F123813060078C7FC127012F0A61270127800381380A2381C0100EA0706EA01F811
147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112381278127012F0A612
70A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA0E1C487E487EA21270
EB038012F0A2B5FC00F0C7FCA31270A26C1380A2381C0100EA0706EA01F811147F9314>
I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE01020809F0E>I<14E0
3803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33E00020C7FCA21230
A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13C0381C03803803FC
00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A2121CAE38FF8FF01420
7E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F9E0C>I<13E0EA01F0
A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA6180EA3F000C28829E0E
>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0EA1DF0EA1E70EA1C38
133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC121CB3ABEAFF800920
7F9F0C>I<391C3E03E039FCC30C30391D039038391E01E01CA2001C13C0AE3AFF8FF8FF
8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF8FF014147E9319>I<EA
01F8EA070E381C0380383801C0A2387000E0A200F013F0A6007013E0A2383801C0A2381C
038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E018014C0381C00E014F01470
1478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FCA8B47E151D7E9319>I<
3801F04038070CC0EA0E02EA1C03EA38011278127012F0A6127012781238EA1C03EA0C05
EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18EA1E3CA21318EA1C00AE
EAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000127CEA3FE0EA1FF0EA07
F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F9312>I<1202A31206A2
120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F9B12>I<381C0380EAFC
1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8383E00E0001C13C06C
1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3132015147F9318>I<
39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D80704138014E0A2390388
61001471A23801D032143A143E3800E01CA2EB6018EB40081E147F9321>I<38FF87F838
1E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F01370137813F8139CEA010E12
02EA060738040380000C13C0003C13E038FE07FC16147F9318>I<38FF83F8383E00E000
1C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A31320A25BA3
EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260EA401C133813781370
EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006130EEAFFFE10147F93
14>I<B512FC1601808C17>I E /FD 134[27 2[22 26 24 26 23
1[26 27 24 33 9 22 1[15 25 26 25 23 29 26 28 28 11[25
35 28 34 2[29 2[27 2[9 1[31 3[30 9[24 1[28 4[25 10 2[10
25 12 44[{}37 50.000000 /whaeberli rf /FE 14 123 df<1207EA0F80A21300120E
C7FCAB127012F8A25A5A09157A940F>58 D<027F138090390380810090380E0063013813
2749131F49130E485A485A48C7FC481404120E121E5A5D4891C7FCA35AA55A1520A25DA2
6C5C12704AC7FC6C130200185B001C5B00061330380381C0D800FEC8FC212479A223>67
D<90B6128090380F00071501A2131EA21600A25BA2140192C7FCEB7802A21406140EEBFF
FCEBF00CA33801E008A21504EC0008485AA25DA248485B15605D1401380F0007B65A2122
7DA121>69 D<90B6FC90380F000F1503A2131EA21502A25BA214011500EB7802A2140614
0EEBFFFCEBF00CA33801E008A391C7FC485AA4485AA4120FEAFFF820227DA120>I<EBF8
C0EA0185EA0705380E0380A2121C123C383807001278A3EAF00EA31410EB1C201270133C
38305C40138C380F078014157B9419>97 D<143CEB03F8EB0038A31470A414E0A4EB01C0
13F9EA0185EA0705380E0380A2121C123C383807001278A3EAF00EA31410EB1C20127013
3C38305C40138C380F078016237BA219>100 D<13F8EA0384EA0E02121C123C1238EA78
04EAF018EAFFE0EAF000A25AA41302A2EA6004EA7018EA3060EA0F800F157A9416>I<13
F0EA0FE01200A3485AA4485AA448C7FC131FEB2180EBC0C0380F00E0A2120EA2381C01C0
A438380380A3EB070400701308130E1410130600E01320386003C016237DA219>104
D<13C0EA01E013C0A2C7FCA8121E12231243A25AA3120EA25AA35AA21340EA7080A3EA71
001232121C0B217BA00F>I<137EEA01C338038180380701C0120E001C13E0123C123812
78A338F003C0A21480130700701300130E130CEA3018EA1870EA07C013157B9419>111
D<EA1C1F38262080384741C0EA87831303EB018090C7FC120EA45AA45AA45A123012157B
9415>114 D<13FCEA018338020080EA0401EA0C03140090C7FC120F13F0EA07FC6C7EEA
003E130F7F1270EAF006A2EAE004EA4008EA2030EA1FC011157D9414>I<13C01201A4EA
0380A4EA0700EAFFF8EA0700A2120EA45AA45AA31310EA7020A213401380EA3100121E0D
1F7C9E10>I<3801E0203803F0603807F8C038041F80380801001302C65A5B5B5B5B5B48
C7FC120248138038080100485AEA3F06EA61FEEA40FCEA807013157D9414>122
D E /FF 56 123 df<90381FC1F090387037189038C03E3C3801807C0003137839070038
00A9B612C03907003800B2143C397FE1FFC01E2380A21C>11 D<132013401380EA01005A
12061204120CA25AA25AA312701260A312E0AE1260A312701230A37EA27EA2120412067E
7EEA0080134013200B327CA413>40 D<7E12407E7E12187E12041206A27EA2EA0180A313
C01200A313E0AE13C0A312011380A3EA0300A21206A21204120C5A12105A5A5A0B327DA4
13>I<EAFFF8A20D02808B10>45 D<127012F8A3127005057C840E>I<EA01F0EA071CEA0C
06487E00381380A2387001C0A400F013E0AE007013C0A3EA780300381380A2381C0700EA
0C06EA071CEA01F013227EA018>48 D<13801203120F12F31203B3A9EA07C0EAFFFE0F21
7CA018>I<EA03F0EA0C1CEA100700201380384003C0A2008013E012F0EAF801A3EA2003
120014C0A2EB07801400130E5B13185B5B5B485A90C7FC000213205A5A00181360481340
383FFFC05AB5FC13217EA018>I<EA03F8EA0C1EEA100F38200780004013C01278130313
07123800001380A214005B130C1338EA03F0EA001C130FEB0780A2EB03C0A214E0122012
7012F8A200F013C01240EB0780122038100F00EA0C1CEA03F013227EA018>I<1303A25B
A25B1317A21327136713471387120113071202120612041208A212101220A2124012C0B5
12F838000700A7EB0F80EB7FF015217FA018>I<00101380381E0700EA1FFF5B13F8EA17
E00010C7FCA6EA11F8EA120CEA1C07381803801210380001C0A214E0A4127012F0A200E0
13C01280EA4003148038200700EA1006EA0C1CEA03F013227EA018>I<137EEA01C13803
0080380601C0EA0C03121C381801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00
F81380EB01C012F014E0A51270A3003813C0A238180380001C1300EA0C06EA070CEA01F0
13227EA018>I<12401260387FFFE014C0A23840008038C0010012801302A2485A5BA25B
5BA21360134013C0A21201A25B1203A41207A76CC7FC13237DA118>I<EA01F8EA060EEA
0803381001801220386000C0A31270A238780180003E1300EA3F02EA1FC4EA0FF812036C
7EEA067EEA083F38100F80383007C0EA6003EB00E05A1460A40060134014C06C13803818
0300EA0E0EEA03F013227EA018>I<EA01F0EA060C487EEA1807383803801270A238F001
C0A314E0A5127013031238EA1805120CEA0619EA03E1380001C0A3EB0380A21230387807
001306EA700CEA20186C5AEA0FC013227EA018>I<497EA3497EA3EB05E0A2EB09F01308
A2EB1078A3497EA3497EA2EBC01F497EA248B51280EB0007A20002EB03C0A348EB01E0A3
48EB00F0121C003EEB01F839FF800FFF20237EA225>65 D<903807E0109038381830EBE0
063901C0017039038000F048C7FC000E1470121E001C1430123CA2007C14101278A200F8
1400A812781510127C123CA2001C1420121E000E14407E6C6C13803901C001003800E002
EB381CEB07E01C247DA223>67 D<B512F0380F801E00071307EC0380EC01C0EC00E015F0
1578A2157C153CA3153EA9153CA2157C1578A215F015E01401EC03C0EC0700000F131EB5
12F01F227EA125>I<B612C0380F80070007130114001540A215601520A314201500A314
6014E013FF138014601420A315081400A21510A31530A2157015E0000F1303B6FC1D227E
A121>I<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF
138014601420A491C7FCA9487EEAFFFE1B227EA120>I<903807F00890383C0C18EBE002
3901C001B839038000F848C71278481438121E15185AA2007C14081278A200F81400A7EC
1FFF0078EB00F81578127C123CA27EA27E7E6C6C13B86C7E3900E0031890383C0C089038
07F00020247DA226>I<39FFFC3FFF390FC003F039078001E0AE90B5FCEB8001AF390FC0
03F039FFFC3FFF20227EA125>I<EAFFFCEA0FC0EA0780B3ACEA0FC0EAFFFC0E227EA112>
I<D8FFFCEBFF80D80FC0EB7C006C48133015205D5D4AC7FC14025C5C5C5C5C5CEB81C0EB
83E01385EB88F01390EBA078EBC03C13808080A26E7E8114036E7EA26E7E81486C7F3AFF
FC07FF8021227EA126>75 D<EAFFFCEA1F806CC7FCB3A21401A41403A214021406A2141E
48137EB512FE18227DA11E>I<D8FFC0EB03FF000F15F0000715E0D805E01305A2D804F0
1309A301781311A36D1321A36D1341A26D1381A39038078101A3EB03C2A2EB01E4A3EB00
F8A31470120E001FEC03F03AFFE0203FFF28227EA12D>I<EB0FE0EB783CEBE00E3903C0
078039078003C0390F0001E0000E1300001E14F0481478A2007C147CA20078143CA200F8
143EA90078143C007C147CA2003C1478003E14F8001E14F06CEB01E0A239078003C03903
C007803900E00E00EB783CEB0FE01F247DA226>79 D<B512F0380F803C0007130FEC0780
15C0140315E0A615C014071580EC0F00143CEBFFF00180C7FCAE487EEAFFFC1B227EA121
>I<B512E0380F803C0007130E6E7E81140381A55D14075D020EC7FC143CEBFFE0EB8070
8080141E140E140FA481A3168015C014073A0FC003C10039FFFC01E2C8127C21237EA124
>82 D<3803F020380C0C60EA1802383001E0EA70000060136012E0A21420A36C1300A212
78127FEA3FF0EA1FFE6C7E0003138038003FC0EB07E01301EB00F0A214707EA46C1360A2
6C13C07E38C8018038C60700EA81FC14247DA21B>I<007FB512F8397807807800601418
00401408A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123>I<D8FFF0
EB7FC0D81F80EB1F006CC7120C7F00071408A26C6C5BA36C6C5BA26D136000001440A201
785BA2137CD93C01C7FCA2EB1E02A36D5AA2148CEB0788A2EB03D0A214F06D5AA26D5AA3
22237FA125>86 D<EA1FE0EA3038EA780C130EEA30071200A313FFEA07C7EA1E07123C12
78127000F01308A3130FEA7817383C2390380FC1E015157E9418>97
D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C141C141EA7141C14
3C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FEEA0703380C078012
1C383803000078C7FC127012F0A712700078134012386C1380380C0100EA0706EA01F812
157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA38001278127012F0
A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<EA01FCEA0707380C
0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078132012386C13406C
138038070300EA00FC13157F9416>I<133E13E33801C780EA0387130748C7FCA9EAFFF8
0007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E18EA1C0E38380700A20078
1380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3FFE381FFFC06C13E0
383000F0481330481318A400601330A2003813E0380E03803803FE0015217F9518>I<12
0E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7FF18237FA21B>I<
121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<13E0EA01F0A3EA
00E01300A81370EA07F012001370B3A51260EAF0E013C0EA6180EA3F000C2C83A10F>I<
120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B5B133813F8EA0F1CEA0E1E13
0E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA21A>I<120E12FE121E120EB3
ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A1E807201C03A0F003C00E0A200
0E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60C0381E80E0380F0070A2120E
AF38FFE7FF18157F941B>I<EA01FCEA0707380C0180381800C0003813E0481370A200F0
1378A700701370007813F0003813E0381C01C0380E038038070700EA01FC15157F9418>
I<EA0E1F38FE61C0380E8060380F0070000E1338143CA2141EA7143CA21438000F137038
0E80E0EB41C0EB3F0090C7FCA9EAFFE0171F7F941B>I<EA0E3CEAFE46EA1E8FEA0F0F13
061300120EAD120FEAFFF010157F9413>114 D<EA0F88EA3078EA601812C01308A212E0
EAF000127FEA3FE0EA0FF0EA01F8EA003CEA801C130CA212C01308EAE018EAD030EA8FC0
0E157E9413>I<1202A41206A3120E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01
F00E1F7F9E13>I<000E137038FE07F0EA1E00000E1370AD14F0A2380601703803827838
00FC7F18157F941B>I<38FF80FE381E00781430000E1320A26C1340A2EB80C000031380
A23801C100A2EA00E2A31374A21338A3131017157F941A>I<38FF83FE381F00F0000E13
C06C1380EB8100EA0383EA01C2EA00E41378A21338133C134E138FEA0187EB0380380201
C0000413E0EA0C00383E01F038FF03FE17157F941A>120 D<38FF80FE381E0078143000
0E1320A26C1340A2EB80C000031380A23801C100A2EA00E2A31374A21338A31310A25BA3
5B12F05B12F10043C7FC123C171F7F941A>I<383FFFC038380380EA300700201300EA60
0EEA401C133C1338C65A5B12015B38038040EA07005A000E13C04813805AEA7801EA7007
B5FC12157F9416>I E /FG 5 49 df<B512F0A214027D881B>0 D<1202A3EAC218EAF278
EA3AE0EA0F80A2EA3AE0EAF278EAC218EA0200A30D0E7E8E12>3
D<13FC38071380380810400010132000201310A200401308A200801304A3B512FC388010
04A400401308A200201310A20010132000081340380713803800FC0016187E931B>8
D<EB0FC0EB7FF83801F03E38038007390600018048EB00C0481460481430A2481418A248
140CA700601418A26C1430A26C14606C14C06CEB018039038007003801F03E38007FF8EB
0FC01E1D7E9623>13 D<1206120FA2120E121EA2121C123C1238A212301270A2126012E0
12C0124008117F910A>48 D E /FH 1 83 df<EAFFC0EAE0F01338A41370EAFFE0138012
E3EAE1C0A2EAE0E0A21370A213380D117E9011>82 D E /FI 26
122 df<EB01FE903807018090381C004001787F4913F0EBE0011201EA03C06E5A92C7FC
AAB612F0A23803C0011400B3A7486C487E3A7FFE1FFF80A221327FB124>12
D<13021304130813101330136013C0A2EA0180A2EA03005A1206120EA2120C121CA21218
1238A35AA612F0A25AAD7EA21270A67EA31218121CA2120C120EA2120612077EEA0180A2
EA00C0A21360133013101308130413020F497AB519>40 D<7E12407E7E12187E7EA27EA2
EA018013C0120013E0A213601370A213301338A3131CA6131EA2130EAD131EA2131CA613
38A313301370A2136013E0A213C012011380EA0300A21206A25A5A12105A5A5A0F497CB5
19>I<127812FCA4127806067A8512>46 D<130813381378EA01F8123FEAFE7812C01200
B3B313FC387FFFF8A2152F7AAE21>49 D<127812FCA412781200B3127812FCA41278061F
7A9E12>58 D<1403A34A7EA24A7EA3EC17E01413A2EC23F01421A2EC40F8A3EC807CA290
3801007E153EA20102133F81A2496D7EA3496D7EA2011880011FB5FCA29039200003F015
01A2496D7EA349147CA20001157E90C8123EA248153F825AD81F80EC3F80D8FFE0903801
FFFCA22E327EB132>65 D<DA1FE013809138FFFC01903807F00F90390F800183013EC712
C3017814274914174848140F485A48481407160348C8FC481501121E123E123C1600127C
A20078160012F8AA92380FFFFC1278007C9138001FC0EE0F80123CA2123E121E121F7E6C
7E7F12036C7E6C6C1417137C6D1463D90F8013C3903907F00781903900FFFE00DA1FF013
002E337CB134>71 D<B512C0A2D807F0C8FC6C5AB3AA1620A41640A416C0A21501A21503
ED0780151F0007147FB7FCA223317DB029>76 D<EC3FC0903801C038903807000E011CEB
0380496D7E01F0EB00F04848147848488049141C0007151E48C87EA2001EED0780A248ED
03C0A2007C16E0A200781501A200F816F0AB007CED03E0A4003C16C0003E1507001E1680
A26CED0F00A26C6C141E6C6C5CA26C6C5C6C6C5C0138EB01C06D495A0107010EC7FC9038
01E0789038003FC02C337CB134>79 D<90387F80203801FFE03907C07860380F001C001E
EB06E048130300381301007813001270156012F0A21520A37E1500127C127E7E13C0EA1F
F86CB47E6C13F06C13FCC613FF010F1380010013C0EC1FE01407EC03F01401140015F8A2
6C1478A57E15706C14F015E07E6CEB01C000ECEB038000C7EB070038C1F01E38807FFCEB
0FF01D337CB125>83 D<007FB712E0A23A7E000F80070078150100701500006016600040
1620A200C01630A2481610A6C71500B3AC4A7E010FB57EA22C317EB030>I<D8FFFEEC07
FFA2D807F0EC01F849EC00E0000316407F00011680A26D140100001600A2017C1402A213
7E013E5CA26D5CA280010F5CA26E133001071420A26D6C5BA28001015CA26D6C48C7FCA2
14FCEC7C02A2EC7E06EC3E04A26E5AA21588EC0F90A2EC07E0A36E5AA36E5AA230327FB0
32>86 D<13FE380303C0380C00E00010137080003C133C003E131C141EA21208C7FCA3EB
0FFEEBFC1EEA03E0EA0F80EA1F00123E123C127C481404A3143EA21278007C135E6CEB8F
08390F0307F03903FC03E01E1F7D9E21>97 D<EB1FC0EBF0303801C00C38078002EA0F00
000E130F001E5B5AA2007C1304007890C7FC12F8A91278127C123C15807E000EEB010012
0F380780023801C00C3800F030EB1FC0191F7E9E1D>99 D<EB3F80EBE0E0380380383807
003C000E7F121E001C7F123C127C00781480140712F8A2B6FC00F8C8FCA61278127C123C
15807E000EEB0100000F13027E3801C00C3800F030EB1FC0191F7E9E1D>101
D<EA078012FFA2120F1207AF14FE903883078090388C03C090389001E013A06E7E13C0A2
5BB3A2486C487E3AFFFC1FFF80A221327EB125>104 D<120FEA1F80A4EA0F00C7FCABEA
0780127FA2120F1207B3A6EA0FC0EAFFF8A20D307EAF12>I<260780FEEB1FC03BFF8307
8060F0903A8C03C180783B0F9001E2003CD807A013E4DA00F47F01C013F8A2495BB3A248
6C486C133F3CFFFC1FFF83FFF0A2341F7E9E38>109 D<380780FE39FF83078090388C03
C0390F9001E0EA07A06E7E13C0A25BB3A2486C487E3AFFFC1FFF80A2211F7E9E25>I<EB
1FC0EBF0783801C01C38070007481480001EEB03C0001C1301003C14E0A248EB00F0A300
F814F8A8007814F0007C1301003C14E0A26CEB03C0A26CEB07803907800F003801C01C38
00F078EB1FC01D1F7E9E21>I<380781FC39FF86078090388801C0390F9000E0D807A013
7001C01378497F153E151E151FA2811680A716005DA2151E153E153C6D5B01A013705D90
389803C0D9860FC7FCEB81F80180C8FCAB487EEAFFFCA2212D7E9E25>I<380783E038FF
8418EB887CEA0F90EA07A01438EBC000A35BB3487EEAFFFEA2161F7E9E19>114
D<3801FC10380E0330381800F048137048133012E01410A37E6C1300127EEA3FF06CB4FC
6C13C0000313E038003FF0EB01F813006C133CA2141C7EA27E14186C1338143000CC1360
38C301C03880FE00161F7E9E1A>I<1340A513C0A31201A212031207120F381FFFE0B5FC
3803C000B01410A80001132013E000001340EB78C0EB1F00142C7FAB19>I<D8FFF8EBFF
80A2D80FC0EB7C006C48133815306C6C1320A26C6C5BA27F00005CA2D97801C7FCA2137C
EB3C02A26D5AA2131F6D5AA2EB0790A214D0EB03E0A26D5AA36D5AA249C8FCA31302A25B
1270EAF80C13085BEA7020EA3040EA1F80212D7F9E23>121 D E
end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%EndSetup
%%Page: 0 1
0 0 bop 607 906 a FI(The)21 b(Op)r(enGL)1001 863 y FH(R)-26
b FG(\015)1048 906 y FI(Graphics)22 b(System:)863 997
y(A)f(Sp)r(eci\014cation)895 1069 y(\(V)-6 b(ersion)22
b(1.1\))959 1286 y FF(Mark)16 b(Segal)948 1344 y(Kurt)g(Ak)o(eley)853
1460 y FE(Editor:)21 b(Chris)c(F)l(r)n(azier)p eop
%%Page: 1 2
1 1 bop 375 449 a FD(Copyright)632 448 y FC(c)619 449
y FB(\015)20 b FD(1992-1997)g(Silicon)g(Graphics,)i(Inc.)277
605 y(This)e(document)i(contains)f(unpublished)h(information)e(of)636
662 y(Silicon)h(Graphics,)g(Inc.)120 768 y FC(This)d(do)q(cumen)o(t)e
(is)i(protected)e(b)o(y)h(cop)o(yrigh)o(t,)f(and)g(con)o(tains)h
(information)g(propri-)120 824 y(etary)12 b(to)g(Silicon)j(Graphics,)e
(Inc.)20 b(An)o(y)12 b(cop)o(ying,)i(adaptation,)e(distribution,)i
(public)120 881 y(p)q(erformance,)g(or)e(public)k(displa)o(y)e(of)f
(this)h(do)q(cumen)o(t)f(without)h(the)f(express)g(written)120
937 y(consen)o(t)k(of)f(Silicon)j(Graphics,)d(Inc.)25
b(is)17 b(strictly)g(prohibited.)25 b(The)17 b(receipt)g(or)f(p)q(os-)
120 994 y(session)h(of)f(this)h(do)q(cumen)o(t)g(do)q(es)f(not)g(con)o
(v)o(ey)g(an)o(y)g(righ)o(ts)g(to)g(repro)q(duce,)h(disclose,)120
1050 y(or)i(distribute)i(its)e(con)o(ten)o(ts,)g(or)g(to)f(man)o
(ufacture,)i(use,)g(or)f(sell)h(an)o(ything)g(that)e(it)120
1107 y(ma)o(y)d(describ)q(e,)h(in)g(whole)g(or)f(in)h(part.)390
1213 y FD(U.S.)21 b(Government)g(Restricted)h(Rights)e(Legend)120
1319 y FC(Use,)c(duplication,)i(or)e(disclosure)h(b)o(y)f(the)g(Go)o(v)
o(ernmen)o(t)e(is)j(sub)s(ject)f(to)f(restrictions)120
1376 y(set)21 b(forth)f(in)h(F)-5 b(AR)21 b(52.227.19\(c\)\()o(2\))c
(or)j(subparagraph)g(\(c\)\(1\)\(ii\))g(of)g(the)h(Righ)o(ts)120
1432 y(in)f(T)l(ec)o(hnical)g(Data)e(and)h(Computer)f(Soft)o(w)o(are)f
(clause)j(at)e(DF)-5 b(ARS)18 b(252.227-7013)120 1489
y(and/or)12 b(in)h(similar)h(or)e(successor)g(clauses)h(in)g(the)g(F)-5
b(AR)12 b(or)g(the)h(DOD)f(or)f(NASA)i(F)-5 b(AR)120
1545 y(Supplemen)o(t.)33 b(Unpublished)22 b(righ)o(ts)d(reserv)o(ed)g
(under)g(the)g(cop)o(yrigh)o(t)g(la)o(ws)g(of)f(the)120
1601 y(United)h(States.)26 b(Con)o(tractor/man)o(ufacturer)15
b(is)j(Silicon)h(Graphics,)f(Inc.,)g(2011)f(N.)120 1658
y(Shoreline)g(Blvd.,)f(Moun)o(tain)f(View,)h(CA)f(94039-7311.)328
1764 y FD(OpenGL)21 b(is)f(a)g(trademark)h(of)f(Silicon)h(Graphics,)g
(Inc.)p eop
%%Page: 1 3
1 2 bop 120 619 a FA(Con)m(ten)m(ts)120 889 y Fz(1)43
b(In)o(tro)q(duction)1113 b(1)189 947 y FC(1.1)45 b(What)15
b(is)g(the)h(Op)q(enGL)g(Graphics)g(System?)34 b Fy(:)22
b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)68 b FC(1)189
1004 y(1.2)45 b(Programmer's)13 b(View)j(of)f(Op)q(enGL)21
b Fy(:)h(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)
68 b FC(1)189 1062 y(1.3)45 b(Implemen)o(tor's)15 b(View)h(of)f(Op)q
(enGL)i Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)68 b FC(2)189 1119 y(1.4)45 b(Our)16 b(View)35
b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)68
b FC(2)120 1223 y Fz(2)43 b(Op)q(enGL)18 b(Op)q(eration)959
b(4)189 1280 y FC(2.1)45 b(Op)q(enGL)17 b(F)l(undamen)o(tals)46
b Fy(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)68 b FC(4)189 1338 y(2.2)45 b(GL)15
b(State)45 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)68
b FC(6)189 1395 y(2.3)45 b(GL)15 b(Command)g(Syn)o(tax)38
b Fy(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)68 b FC(7)189 1453 y(2.4)45 b(Basic)16
b(GL)f(Op)q(eration)40 b Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)68
b FC(9)189 1510 y(2.5)45 b(GL)15 b(Errors)23 b Fy(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(11)189 1568 y(2.6)g(Begin/End)16
b(P)o(aradigm)g Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(13)293
1625 y(2.6.1)51 b(Begin)16 b(and)f(End)h(Ob)s(jects)40
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)45 b FC(15)293 1683 y(2.6.2)51 b(P)o(olygon)14 b(Edges)38
b Fy(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)45 b FC(18)293 1740 y(2.6.3)51
b(GL)15 b(Commands)f(within)j Fz(Begin)p FC(/)p Fz(End)e
Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b
FC(19)189 1798 y(2.7)g(V)l(ertex)15 b(Sp)q(eci\014cation)46
b Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(19)189 1856 y(2.8)g(V)l(ertex)15
b(Arra)o(ys)k Fy(:)k(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(21)189 1913 y(2.9)g(Rectangles)16 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)h(:)f(:)h(:)45 b FC(27)189 1971 y(2.10)22 b(Co)q(ordinate)15
b(T)l(ransformations)20 b Fy(:)j(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(27)293 2028 y(2.10.1)28
b(Con)o(trolling)15 b(the)h(Viewp)q(ort)40 b Fy(:)23
b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(28)293 2086 y(2.10.2)28 b(Matrices)17 b Fy(:)22
b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(29)293 2143 y(2.10.3)28
b(Normal)15 b(T)l(ransformation)36 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(33)293
2201 y(2.10.4)28 b(Generating)15 b(texture)g(co)q(ordinates)28
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(34)189 2258 y(2.11)22 b(Clipping)j Fy(:)e(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)h(:)f(:)h(:)45 b FC(36)189 2316 y(2.12)22 b(Curren)o(t)15
b(Raster)g(P)o(osition)33 b Fy(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(38)189
2373 y(2.13)22 b(Colors)15 b(and)g(Coloring)41 b Fy(:)22
b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)45 b FC(39)293 2431 y(2.13.1)28 b(Ligh)o(ting)23
b Fy(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(40)293 2488
y(2.13.2)28 b(Ligh)o(ting)16 b(P)o(arameter)e(Sp)q(eci\014cation)31
b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(46)861 2613 y(i)p eop
%%Page: 2 4
2 3 bop 332 137 a FC(ii)1212 b Fx(CONTENTS)505 286 y
FC(2.13.3)27 b Fz(ColorMaterial)45 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(47)505 345 y(2.13.4)27 b(Ligh)o(ting)16 b(State)45
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)46 b FC(50)505 403 y(2.13.5)27
b(Color)15 b(Index)h(Ligh)o(ting)21 b Fy(:)h(:)h(:)f(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(50)505
461 y(2.13.6)27 b(Clamping)16 b(or)f(Masking)41 b Fy(:)23
b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(51)505 519 y(2.13.7)27 b(Flatshading)e Fy(:)d(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
46 b FC(51)505 578 y(2.13.8)27 b(Color)15 b(and)h(T)l(exture)f(Co)q
(ordinate)g(Clipping)40 b Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(52)505 636 y(2.13.9)27 b(Final)16 b(Color)f(Pro)q(cessing)20
b Fy(:)j(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)46 b FC(53)332 741 y Fz(3)c(Rasterization)1072 b(54)400
799 y FC(3.1)46 b(In)o(v)m(ariance)25 b Fy(:)e(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)46 b FC(55)400 857 y(3.2)g(An)o(tialiasing)27
b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(55)400
916 y(3.3)g(P)o(oin)o(ts)32 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)46 b FC(57)505 974 y(3.3.1)k(P)o(oin)o(t)15
b(Rasterization)h(State)37 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(60)400 1032 y(3.4)g(Line)16
b(Segmen)o(ts)46 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(60)505 1090 y(3.4.1)k(Basic)16 b(Line)h(Segmen)o(t)e
(Rasterization)f Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(60)505 1149 y(3.4.2)k(Other)16 b(Line)g(Segmen)o(t)f(F)l(eatures)
29 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(63)505 1207 y(3.4.3)k(Line)17 b(Rasterization)f(State)22
b Fy(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
46 b FC(66)400 1265 y(3.5)g(P)o(olygons)14 b Fy(:)22
b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(66)505
1323 y(3.5.1)k(Basic)16 b(P)o(olygon)f(Rasterization)j
Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(66)505 1381 y(3.5.2)k(Stippling)d Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)46 b FC(68)505 1440 y(3.5.3)k(An)o(tialiasing)23 b
Fy(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(69)505 1498 y(3.5.4)k(Options)16
b(Con)o(trolling)g(P)o(olygon)f(Rasterization)46 b Fy(:)23
b(:)f(:)h(:)f(:)g(:)46 b FC(69)505 1556 y(3.5.5)k(Depth)16
b(O\013set)37 b Fy(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(70)505
1614 y(3.5.6)k(P)o(olygon)15 b(Rasterization)h(State)j
Fy(:)k(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(71)400 1673 y(3.6)g(Pixel)16 b(Rectangles)42 b Fy(:)22
b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(71)505 1731 y(3.6.1)k(Pixel)17
b(Storage)d(Mo)q(des)27 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(72)505 1789
y(3.6.2)k(Pixel)17 b(T)l(ransfer)e(Mo)q(des)46 b Fy(:)23
b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(73)505 1847 y(3.6.3)k(Rasterization)16 b(of)f(Pixel)h(Rectangles)
25 b Fy(:)e(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(75)505 1906 y(3.6.4)k(Pixel)17 b(T)l(ransfer)e(Op)q(erations)28
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
46 b FC(81)400 1964 y(3.7)g(Bitmaps)26 b Fy(:)c(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)46 b FC(83)400 2022 y(3.8)g(T)l(exturing)33
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(85)505 2080 y(3.8.1)k(T)l(exture)16 b(Mini\014cation)29
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)46 b FC(94)505 2139 y(3.8.2)k(T)l(exture)16
b(Magni\014cation)30 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(98)505 2197 y(3.8.3)k(T)l(exture)16
b(State)e(and)i(Pro)o(xy)e(State)34 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)46 b FC(98)505 2255 y(3.8.4)k(T)l(exture)16
b(Ob)s(jects)42 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(99)505 2313
y(3.8.5)k(T)l(exture)16 b(En)o(vironmen)o(ts)f(and)g(T)l(exture)g(F)l
(unctions)22 b Fy(:)g(:)h(:)f(:)g(:)h FC(101)505 2372
y(3.8.6)50 b(T)l(exture)16 b(Application)37 b Fy(:)22
b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h FC(102)400 2430 y(3.9)46 b(F)l(og)14 b Fy(:)22 b(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h FC(105)400
2488 y(3.10)g(An)o(tialiasing)17 b(Application)28 b Fy(:)23
b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h FC(106)p eop
%%Page: 3 5
3 4 bop 120 137 a Fx(CONTENTS)1199 b FC(iii)120 286 y
Fz(4)43 b(F)l(ragmen)o(ts)16 b(and)i(the)f(F)l(ramebu\013er)622
b(108)189 347 y FC(4.1)45 b(P)o(er-F)l(ragmen)o(t)14
b(Op)q(erations)41 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(109)293 408 y(4.1.1)51
b(Pixel)16 b(Ownership)h(T)l(est)43 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(109)293
469 y(4.1.2)51 b(Scissor)15 b(test)35 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)
g FC(110)293 530 y(4.1.3)51 b(Alpha)16 b(test)e Fy(:)22
b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(110)293 591 y(4.1.4)51
b(Stencil)17 b(test)35 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(111)293 652 y(4.1.5)51 b(Depth)15 b(bu\013er)g(test)22
b Fy(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)h(:)f(:)h(:)g FC(112)293 712 y(4.1.6)51 b(Blending)14
b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(112)293 773
y(4.1.7)51 b(Dithering)35 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(114)293 834 y(4.1.8)51 b(Logical)16 b(Op)q(eration)43
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)g FC(115)189 895 y(4.2)45 b(Whole)16 b(F)l(ramebu\013er)
e(Op)q(erations)37 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)g FC(116)293 956 y(4.2.1)51 b(Selecting)16
b(a)f(Bu\013er)g(for)g(W)l(riting)25 b Fy(:)d(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(116)293 1017 y(4.2.2)51
b(Fine)15 b(Con)o(trol)g(of)g(Bu\013er)g(Up)q(dates)26
b Fy(:)d(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(118)293 1078 y(4.2.3)51 b(Clearing)16 b(the)f(Bu\013ers)35
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)g FC(119)293 1138 y(4.2.4)51 b(The)15 b(Accum)o(ulation)h
(Bu\013er)36 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
h(:)f(:)h(:)g FC(120)189 1199 y(4.3)45 b(Dra)o(wing,)14
b(Reading,)i(and)g(Cop)o(ying)f(Pixels)23 b Fy(:)g(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(121)293 1260 y(4.3.1)51
b(W)l(riting)15 b(to)g(the)g(Stencil)i(Bu\013er)41 b
Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(121)293 1321 y(4.3.2)51 b(Reading)16 b(Pixels)35 b
Fy(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)g FC(121)293 1382 y(4.3.3)51 b(Cop)o(ying)15
b(Pixels)33 b Fy(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(126)293 1443
y(4.3.4)51 b(Pixel)16 b(dra)o(w/read)e(state)38 b Fy(:)22
b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(127)120 1552 y Fz(5)43 b(Sp)q(ecial)19 b(F)l(unctions)949
b(128)189 1613 y FC(5.1)45 b(Ev)m(aluators)16 b Fy(:)22
b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(128)189
1674 y(5.2)45 b(Selection)17 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)g FC(134)189 1734 y(5.3)45 b(F)l(eedbac)o(k)h
Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(136)189 1795 y(5.4)45 b(Displa)o(y)16 b(Lists)40 b
Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(140)189
1856 y(5.5)45 b Fz(Flush)15 b FC(and)h Fz(Finish)34 b
Fy(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(143)189 1917 y(5.6)45
b(Hin)o(ts)16 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)h(:)g FC(143)120 2026 y Fz(6)43 b(State)18 b(and)g(State)g
(Requests)768 b(144)120 2136 y(A)29 b(In)o(v)m(ariance)1112
b(171)189 2196 y FC(A.1)34 b(Rep)q(eatabilit)o(y)f Fy(:)23
b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(171)189 2257
y(A.2)34 b(Multi-pass)16 b(Algorithms)30 b Fy(:)22 b(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(172)189 2318 y(A.3)34 b(In)o(v)m(ariance)17 b(Rules)42
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(172)189 2379
y(A.4)34 b(What)15 b(All)h(This)g(Means)41 b Fy(:)22
b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)g FC(174)120 2488 y Fz(B)32 b(Corollaries)1101
b(175)p eop
%%Page: 4 6
4 5 bop 332 137 a FC(iv)1200 b Fx(CONTENTS)332 286 y
Fz(C)30 b(V)l(ersion)17 b(1.1)1092 b(178)400 343 y FC(C.1)36
b(V)l(ertex)15 b(Arra)o(y)37 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h FC(178)400 399 y(C.2)36 b(P)o(olygon)15 b(O\013set)40
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h FC(179)400 456
y(C.3)36 b(Logical)16 b(Op)q(eration)47 b Fy(:)22 b(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h FC(179)400 512 y(C.4)36 b(T)l(exture)15 b(Image)g(F)l(ormats)42
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h FC(179)400 569 y(C.5)36 b(T)l(exture)15
b(Replace)i(En)o(vironmen)o(t)j Fy(:)j(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h FC(179)400 625 y(C.6)36
b(T)l(exture)15 b(Pro)o(xies)k Fy(:)k(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
FC(180)400 682 y(C.7)36 b(Cop)o(y)15 b(T)l(exture)g(and)g(Subtexture)22
b Fy(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h FC(180)400 738 y(C.8)36 b(T)l(exture)15 b(Ob)s(jects)47
b Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h FC(180)400 795 y(C.9)36
b(Other)15 b(Changes)35 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
FC(180)400 851 y(C.10)13 b(Ac)o(kno)o(wledgemen)o(ts)29
b Fy(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h FC(181)p eop
%%Page: 5 7
5 6 bop 120 619 a FA(List)39 b(of)g(Figures)189 841 y
FC(2.1)45 b(Blo)q(c)o(k)16 b(diagram)f(of)g(the)g(GL.)35
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)68 b FC(9)189 897 y(2.2)45 b(Creation)13
b(of)f(a)g(pro)q(cessed)h(v)o(ertex)g(from)e(a)i(transformed)e(v)o
(ertex)i(and)293 954 y(curren)o(t)i(v)m(alues.)44 b Fy(:)22
b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(13)189 1010 y(2.3)g(Primitiv)o
(e)16 b(assem)o(bly)g(and)f(pro)q(cessing.)26 b Fy(:)c(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(13)189
1067 y(2.4)g(T)l(riangle)16 b(strips,)f(fans,)g(and)g(indep)q(enden)o
(t)j(triangles.)h Fy(:)j(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(16)189 1123 y(2.5)g(Quadrilateral)17 b(strips)e(and)g(indep)q
(enden)o(t)j(quadrilaterals.)41 b Fy(:)22 b(:)h(:)f(:)h(:)45
b FC(17)189 1180 y(2.6)g(V)l(ertex)15 b(transformation)f(sequence.)47
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)
45 b FC(27)189 1236 y(2.7)g(Curren)o(t)15 b(raster)f(p)q(osition.)40
b Fy(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)45 b FC(39)189 1293 y(2.8)g(Pro)q(cessing)16
b(of)f(colors.)36 b Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(39)189
1349 y(2.9)g(ColorMaterial)15 b(op)q(eration.)i Fy(:)23
b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)45 b FC(47)189 1447 y(3.1)g(Rasterization.)22
b Fy(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(54)189
1504 y(3.2)g(Rasterization)16 b(of)f(non-an)o(tialiased)h(wide)g(p)q
(oin)o(ts.)e Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(57)189 1560 y(3.3)g(Rasterization)16 b(of)f(an)o(tialiased)h(wide)
g(p)q(oin)o(ts.)32 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)45 b FC(58)189 1616 y(3.4)g(Visualization)17 b(of)e(Bresenham's)g
(algorithm.)33 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(61)189 1673 y(3.5)g(Rasterization)16 b(of)f(non-an)o(tialiased)h
(wide)g(lines.)48 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(64)189 1729 y(3.6)g(The)16 b(region)f(used)h(in)g(rasterizing)g
(an)f(an)o(tialiased)h(line)h(segmen)o(t.)23 b Fy(:)g(:)45
b FC(65)189 1786 y(3.7)g(Op)q(eration)16 b(of)f Fz(Dra)o(wPixels)p
FC(.)39 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)45 b FC(75)189 1842 y(3.8)g(Selecting)17
b(a)e(subimage)h(from)e(an)h(image)42 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b FC(78)189 1899 y(3.9)g(A)15
b(bitmap)h(and)f(its)h(asso)q(ciated)f(parameters.)21
b Fy(:)h(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)45
b FC(84)189 1955 y(3.10)22 b(A)15 b(texture)g(image)h(and)f(the)g(co)q
(ordinates)h(used)g(to)e(access)i(it.)27 b Fy(:)c(:)f(:)h(:)45
b FC(89)189 2053 y(4.1)g(P)o(er-fragmen)o(t)14 b(op)q(erations.)i
Fy(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)g FC(109)189 2110 y(4.2)45 b(Op)q(eration)16
b(of)f Fz(ReadPixels)p FC(.)46 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(121)189
2166 y(4.3)45 b(Op)q(eration)16 b(of)f Fz(Cop)o(yPixels)p
FC(.)43 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)g FC(126)189 2264 y(5.1)45 b(Map)15
b(Ev)m(aluation.)38 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(130)189 2320 y(5.2)45 b(F)l(eedbac)o(k)16 b(syn)o(tax.)27
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(139)856 2613
y(v)p eop
%%Page: 6 8
6 7 bop 332 622 a FA(List)39 b(of)f(T)-10 b(ables)400
849 y FC(2.1)46 b(GL)15 b(command)g(su\016xes)46 b Fy(:)22
b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)69 b FC(8)400 910 y(2.2)46 b(GL)15 b(data)g(t)o(yp)q(es)
45 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(10)400
971 y(2.3)g(Summary)15 b(of)g(GL)g(errors)23 b Fy(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(12)400 1032 y(2.4)g(V)l(ertex)15 b(arra)o(y)f(sizes)i(\(v)m(alues)
g(p)q(er)g(v)o(ertex\))e(and)i(data)e(t)o(yp)q(es)23
b Fy(:)f(:)h(:)f(:)g(:)46 b FC(22)400 1093 y(2.5)g(V)l(ariables)20
b(that)f(direct)h(the)g(execution)g(of)f Fz(In)o(terlea)o(v)o(edArra)o
(ys)p FC(.)505 1149 y Fy(f)25 b FC(is)20 b Fw(sizeof\(FLOAT\))p
FC(.)e Fy(c)h FC(is)i(4)e(times)h Fw(sizeof\(UNSIGNED)p
1566 1149 15 2 v 16 w(BYTE\))p FC(,)505 1205 y(rounded)f(up)g(to)f(the)
h(nearest)f(m)o(ultiple)i(of)e Fy(f)5 b FC(.)30 b(All)20
b(p)q(oin)o(ter)f(arith-)505 1262 y(metic)d(is)f(p)q(erformed)h(in)g
(units)g(of)e Fw(sizeof\(UNSIGNED)p 1473 1262 V 16 w(BYTE\))p
FC(.)33 b Fy(:)22 b(:)g(:)46 b FC(25)400 1323 y(2.6)g(Comp)q(onen)o(t)
15 b(con)o(v)o(ersions)41 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(42)400
1384 y(2.7)g(Summary)15 b(of)g(ligh)o(ting)h(parameters.)30
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
46 b FC(44)400 1445 y(2.8)g(Corresp)q(ondence)16 b(of)f(ligh)o(ting)h
(parameter)e(sym)o(b)q(ols)i(to)f(names.)h Fy(:)22 b(:)g(:)46
b FC(48)400 1505 y(2.9)g(P)o(olygon)15 b(\015atshading)g(color)h
(selection.)22 b Fy(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)46 b FC(52)400 1608 y(3.1)g Fz(PixelStore)15 b
FC(parameters)g(p)q(ertaining)h(to)f Fz(Dra)o(wPixels)p
FC(.)40 b Fy(:)22 b(:)h(:)f(:)g(:)46 b FC(72)400 1669
y(3.2)g Fz(PixelT)l(ransfer)14 b FC(parameters.)26 b
Fy(:)c(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)46 b FC(73)400 1730 y(3.3)g Fz(PixelMap)15 b FC(parameters.)41
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)46 b FC(74)400 1790 y(3.4)g Fz(Dra)o(wPixels)14
b FC(and)i Fz(ReadPixels)f FC(t)o(yp)q(es)20 b Fy(:)i(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 b FC(77)400 1851
y(3.5)g Fz(Dra)o(wPixels)14 b FC(and)i Fz(ReadPixels)f
FC(formats.)30 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
b FC(77)400 1912 y(3.6)g(Sw)o(ap)15 b(Bytes)g(Bit)h(ordering.)44
b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)46 b FC(78)400 1973 y(3.7)g(Corresp)q(ondence)17
b(of)g(texture)f(comp)q(onen)o(ts)h(to)f(pixel)i(group)f(R,)f(G,)505
2029 y(B,)f(and)g(A)g(v)m(alues.)40 b Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
46 b FC(87)400 2090 y(3.8)g(Corresp)q(ondence)14 b(of)f(sized)h(in)o
(ternal)g(formats)e(to)h(base)g(in)o(ternal)h(for-)505
2147 y(mats.)d Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)46 b FC(88)400 2208 y(3.9)g(T)l(exture)15 b(parameters)f(and)i
(their)g(v)m(alues.)24 b Fy(:)e(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)46 b FC(94)400 2268 y(3.10)23 b(Replace)17
b(and)e(mo)q(dulate)h(texture)f(functions.)j Fy(:)23
b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h FC(103)400
2329 y(3.11)g(Decal)15 b(and)h(blend)h(texture)e(functions.)33
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
FC(104)400 2432 y(4.1)46 b(V)l(alues)12 b(con)o(trolling)f(the)g
(source)g(blending)i(function)f(and)f(the)f(source)505
2488 y(blending)17 b(v)m(alues)g(they)e(compute)25 b
Fy(:)e(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h FC(113)1061 2613 y(vi)p eop
%%Page: 7 9
7 8 bop 120 137 a Fx(LIST)16 b(OF)g(T)l(ABLES)1068 b
FC(vii)189 286 y(4.2)45 b(V)l(alues)17 b(con)o(trolling)h(the)e
(destination)h(blending)i(function)e(and)g(the)293 343
y(destination)f(blending)i(v)m(alues)e(they)f(compute)38
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(114)189
399 y(4.3)45 b(Argumen)o(ts)15 b(to)f Fz(LogicOp)j FC(and)f(their)f
(corresp)q(onding)i(op)q(erations.)f Fy(:)23 b FC(116)189
456 y(4.4)45 b(Argumen)o(ts)15 b(to)f Fz(Dra)o(wBu\013er)f
FC(and)i(the)g(bu\013ers)g(that)f(they)h(indicate.)r(117)189
512 y(4.5)45 b Fz(PixelStore)16 b FC(parameters)e(p)q(ertaining)i(to)f
Fz(ReadPixels)p FC(.)d Fy(:)22 b(:)g(:)h(:)f(:)h(:)g
FC(123)189 569 y(4.6)45 b Fz(ReadPixels)16 b FC(index)g(masks.)k
Fy(:)i(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)g FC(125)189 625 y(4.7)45 b Fz(ReadPixels)17
b FC(GL)g(Data)f(T)o(yp)q(es)h(and)g(Rev)o(ersed)h(comp)q(onen)o(t)f
(con-)293 682 y(v)o(ersion)f(form)o(ulas.)31 b Fy(:)22
b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(126)189 780 y(5.1)45
b(V)l(alues)16 b(sp)q(eci\014ed)i(b)o(y)d(the)g Fv(tar)n(get)g
FC(to)g Fz(Map1)p FC(.)34 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)g FC(129)189 836 y(5.2)45 b(Corresp)q(ondence)12
b(of)e(feedbac)o(k)h(t)o(yp)q(e)f(to)g(n)o(um)o(b)q(er)h(of)f(v)m
(alues)i(p)q(er)f(v)o(ertex.)r(138)189 934 y(6.1)45 b(T)l(exture)16
b(return)f(v)m(alues.)22 b Fy(R)791 941 y Fu(t)806 934
y FC(,)15 b Fy(G)870 941 y Fu(t)884 934 y FC(,)g Fy(B)946
941 y Fu(t)962 934 y FC(,)g Fy(A)1024 941 y Fu(t)1039
934 y FC(,)g Fy(L)1098 941 y Fu(t)1113 934 y FC(,)g(and)h
Fy(I)1250 941 y Fu(t)1280 934 y FC(are)f(texture)293
990 y(arra)o(y)f(v)m(alues)i(that)f(are)g(assigned)h(to)e(pixel)j(v)m
(alues)f(R,)g(G,)e(B,)h(and)g(A.)25 b(147)189 1047 y(6.2)45
b(A)o(ttribute)15 b(groups)35 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(150)189 1103 y(6.3)45 b(State)15 b(v)m(ariable)h(t)o(yp)q(es)46
b Fy(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(151)189 1160 y(6.4)45
b(GL)15 b(In)o(ternal)h(b)q(egin-end)i(state)c(v)m(ariables)i
(\(inaccessible\))21 b Fy(:)h(:)g(:)h(:)f(:)h(:)g FC(152)189
1216 y(6.5)45 b(Curren)o(t)15 b(V)l(alues)h(and)f(Asso)q(ciated)h(Data)
28 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(153)189 1273 y(6.6)45 b(V)l(ertex)15 b(Arra)o(y)g(Data)29
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(154)189 1329 y(6.7)45
b(T)l(ransformation)14 b(state)22 b Fy(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(155)189 1386 y(6.8)45 b(Coloring)23 b Fy(:)g(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)h(:)f(:)h(:)g FC(156)189 1442 y(6.9)45 b(Ligh)o(ting)16
b(\(see)f(also)h(T)l(able)g(2.5)e(for)g(defaults\))25
b Fy(:)d(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(157)189 1499 y(6.10)f(Rasterization)35 b Fy(:)23 b(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)h(:)f(:)h(:)g FC(158)189 1555 y(6.11)f(T)l(exture)15
b(Ob)s(jects)47 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(159)189 1611 y(6.12)f(T)l(exture)15 b(En)o(vironmen)o(t)h(and)f
(Generation)43 b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)g FC(160)189 1668 y(6.13)f(Pixel)17 b(Op)q(erations)35
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(161)189 1724
y(6.14)f(F)l(ramebu\013er)15 b(Con)o(trol)34 b Fy(:)22
b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)g FC(162)189 1781 y(6.15)f(Pixels)40
b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(163)189 1837 y(6.16)f(Pixels)17 b(\(con)o(t.\))30
b Fy(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(164)189
1894 y(6.17)f(Ev)m(aluators)15 b(\()p Fz(GetMap)g FC(tak)o(es)g(a)g
(map)g(name\))35 b Fy(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(165)189 1950 y(6.18)f(Hin)o(ts)16 b Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g FC(166)189 2007 y(6.19)f(Implemen)o
(tation)16 b(Dep)q(enden)o(t)h(V)l(alues)37 b Fy(:)22
b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(167)189 2063 y(6.20)f(More)15 b(Implemen)o(tation)h(Dep)q(enden)o(t)
g(V)l(alues)26 b Fy(:)c(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(168)189 2120 y(6.21)f(Implemen)o(tation)16 b(Dep)q(enden)o(t)h
(Pixel)f(Depths)f Fy(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)g
FC(169)189 2176 y(6.22)f(Miscellaneous)28 b Fy(:)23 b(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)h(:)f(:)h(:)g FC(170)p eop
%%Page: 1 10
1 9 bop 120 601 a Ft(Chapter)32 b(1)120 812 y FA(In)m(tro)s(duction)120
1038 y FC(This)19 b(do)q(cumen)o(t)f(describ)q(es)h(the)f(Op)q(enGL)h
(graphics)g(system:)24 b(what)18 b(it)g(is,)g(ho)o(w)f(it)120
1095 y(acts,)e(and)g(what)g(is)h(required)h(to)d(implemen)o(t)j(it.)k
(W)l(e)15 b(assume)g(that)g(the)h(reader)f(has)120 1151
y(at)20 b(least)h(a)f(rudimen)o(tary)g(understanding)i(of)e(computer)g
(graphics.)36 b(This)21 b(means)120 1208 y(familiarit)o(y)g(with)f(the)
g(essen)o(tials)g(of)g(computer)f(graphics)h(algorithms)g(as)f(w)o(ell)
i(as)120 1264 y(familiarit)o(y)16 b(with)g(basic)g(graphics)g(hardw)o
(are)e(and)h(asso)q(ciated)h(terms.)120 1427 y Fs(1.1)67
b(What)23 b(is)f(the)h(Op)r(enGL)f(Graphics)i(System?)120
1536 y FC(Op)q(enGL)18 b(\(for)e(\\Op)q(en)h(Graphics)g(Library"\))f
(is)h(a)f(soft)o(w)o(are)f(in)o(terface)h(to)g(graphics)120
1592 y(hardw)o(are.)j(The)c(in)o(terface)f(consists)h(of)f(a)g(set)g
(of)g(sev)o(eral)g(h)o(undred)h(pro)q(cedures)h(and)120
1649 y(functions)22 b(that)d(allo)o(w)i(a)f(programmer)f(to)h(sp)q
(ecify)i(the)e(ob)s(jects)g(and)h(op)q(erations)120 1705
y(in)o(v)o(olv)o(ed)12 b(in)f(pro)q(ducing)g(high-qualit)o(y)h
(graphical)f(images,)g(sp)q(eci\014cally)i(color)e(images)120
1761 y(of)k(three-dimensional)j(ob)s(jects.)191 1821
y(Most)e(of)h(Op)q(enGL)h(requires)g(that)e(the)h(graphics)h(hardw)o
(are)e(con)o(tain)h(a)g(frame-)120 1878 y(bu\013er.)j(Man)o(y)12
b(Op)q(enGL)j(calls)f(p)q(ertain)g(to)f(dra)o(wing)g(ob)s(jects)f(suc)o
(h)i(as)f(p)q(oin)o(ts,)h(lines,)120 1934 y(p)q(olygons,)h(and)g
(bitmaps,)f(but)h(the)f(w)o(a)o(y)g(that)g(some)g(of)g(this)h(dra)o
(wing)f(o)q(ccurs)h(\(suc)o(h)120 1991 y(as)21 b(when)g(an)o
(tialiasing)h(or)f(texturing)g(is)g(enabled\))h(relies)h(on)d(the)h
(existence)i(of)d(a)120 2047 y(framebu\013er.)f(F)l(urther,)13
b(some)g(of)g(Op)q(enGL)i(is)f(sp)q(eci\014cally)i(concerned)e(with)g
(frame-)120 2104 y(bu\013er)i(manipulation.)120 2267
y Fs(1.2)67 b(Programmer's)21 b(View)h(of)g(Op)r(enGL)120
2375 y FC(T)l(o)c(the)f(programmer,)g(Op)q(enGL)i(is)f(a)f(set)g(of)g
(commands)h(that)f(allo)o(w)g(the)h(sp)q(eci\014-)120
2432 y(cation)e(of)g(geometric)g(ob)s(jects)f(in)i(t)o(w)o(o)e(or)g
(three)h(dimensions,)h(together)f(with)g(com-)120 2488
y(mands)21 b(that)g(con)o(trol)g(ho)o(w)f(these)h(ob)s(jects)g(are)f
(rendered)i(in)o(to)f(the)h(framebu\013er.)856 2613 y(1)p
eop
%%Page: 2 11
2 10 bop 332 137 a FC(2)785 b Fx(CHAPTER)16 b(1.)34 b(INTR)o(ODUCTION)
332 286 y FC(F)l(or)17 b(the)g(most)f(part,)h(Op)q(enGL)i(pro)o(vides)f
(an)f(immediate-mo)q(de)i(in)o(terface,)e(mean-)332 343
y(ing)f(that)e(sp)q(ecifying)j(an)f(ob)s(ject)e(causes)i(it)f(to)g(b)q
(e)g(dra)o(wn.)403 400 y(A)d(t)o(ypical)h(program)e(that)g(uses)i(Op)q
(enGL)g(b)q(egins)g(with)g(calls)g(to)f(op)q(en)g(a)g(windo)o(w)332
457 y(in)o(to)g(the)h(framebu\013er)f(in)o(to)g(whic)o(h)h(the)g
(program)e(will)j(dra)o(w.)k(Then,)13 b(calls)g(are)f(made)332
513 y(to)i(allo)q(cate)g(a)g(GL)g(con)o(text)g(and)g(asso)q(ciate)g(it)
h(with)f(the)g(windo)o(w.)20 b(Once)15 b(a)f(GL)g(con-)332
570 y(text)f(is)g(allo)q(cated,)i(the)e(programmer)f(is)h(free)g(to)g
(issue)h(Op)q(enGL)g(commands.)19 b(Some)332 626 y(calls)f(are)e(used)h
(to)f(dra)o(w)g(simple)i(geometric)f(ob)s(jects)f(\(i.e.)24
b(p)q(oin)o(ts,)17 b(line)h(segmen)o(ts,)332 683 y(and)f(p)q
(olygons\),)f(while)h(others)f(a\013ect)g(the)g(rendering)h(of)f(these)
h(primitiv)o(es)g(includ-)332 739 y(ing)i(ho)o(w)f(they)g(are)g(lit)h
(or)f(colored)h(and)f(ho)o(w)g(they)h(are)f(mapp)q(ed)h(from)e(the)i
(user's)332 796 y(t)o(w)o(o-)11 b(or)h(three-dimensional)i(mo)q(del)f
(space)f(to)g(the)g(t)o(w)o(o-dimensional)h(screen.)19
b(There)332 852 y(are)14 b(also)h(calls)g(to)f(e\013ect)g(direct)h(con)
o(trol)f(of)g(the)h(framebu\013er,)e(suc)o(h)i(as)f(reading)h(and)332
909 y(writing)h(pixels.)332 1058 y Fs(1.3)66 b(Implemen)n(tor's)23
b(View)f(of)g(Op)r(enGL)332 1161 y FC(T)l(o)17 b(the)h(implemen)o(tor,)
h(Op)q(enGL)g(is)f(a)g(set)f(of)g(commands)h(that)f(a\013ect)g(the)g
(op)q(era-)332 1218 y(tion)g(of)g(graphics)g(hardw)o(are.)24
b(If)17 b(the)g(hardw)o(are)f(consists)h(only)g(of)g(an)g(addressable)
332 1274 y(framebu\013er,)12 b(then)g(Op)q(enGL)i(m)o(ust)d(b)q(e)i
(implemen)o(ted)h(almost)e(en)o(tirely)h(on)f(the)g(host)332
1331 y(CPU.)j(More)h(t)o(ypically)l(,)h(the)f(graphics)g(hardw)o(are)f
(ma)o(y)g(comprise)i(v)m(arying)f(degrees)332 1387 y(of)f(graphics)h
(acceleration,)g(from)f(a)g(raster)f(subsystem)i(capable)g(of)f
(rendering)i(t)o(w)o(o-)332 1444 y(dimensional)24 b(lines)g(and)e(p)q
(olygons)h(to)f(sophisticated)h(\015oating-p)q(oin)o(t)g(pro)q(cessors)
332 1500 y(capable)d(of)e(transforming)g(and)h(computing)h(on)e
(geometric)h(data.)30 b(The)19 b(Op)q(enGL)332 1557 y(implemen)o(tor's)
d(task)f(is)i(to)e(pro)o(vide)h(the)g(CPU)g(soft)o(w)o(are)e(in)o
(terface)i(while)h(dividing)332 1613 y(the)i(w)o(ork)f(for)g(eac)o(h)i
(Op)q(enGL)g(command)f(b)q(et)o(w)o(een)g(the)g(CPU)g(and)g(the)g
(graphics)332 1670 y(hardw)o(are.)g(This)13 b(division)j(m)o(ust)c(b)q
(e)i(tailored)g(to)e(the)i(a)o(v)m(ailable)g(graphics)g(hardw)o(are)332
1726 y(to)h(obtain)g(optim)o(um)g(p)q(erformance)h(in)g(carrying)f(out)
g(Op)q(enGL)h(calls.)403 1784 y(Op)q(enGL)21 b(main)o(tains)g(a)f
(considerable)i(amoun)o(t)e(of)g(state)f(information.)36
b(This)332 1840 y(state)20 b(con)o(trols)g(ho)o(w)g(ob)s(jects)g(are)h
(dra)o(wn)f(in)o(to)h(the)f(framebu\013er.)36 b(Some)21
b(of)f(this)332 1896 y(state)14 b(is)h(directly)h(a)o(v)m(ailable)h(to)
d(the)h(user:)20 b(he)15 b(or)f(she)h(can)g(mak)o(e)f(calls)i(to)e
(obtain)h(its)332 1953 y(v)m(alue.)32 b(Some)18 b(of)g(it,)i(ho)o(w)o
(ev)o(er,)e(is)h(visible)i(only)e(b)o(y)g(the)g(e\013ect)f(it)h(has)f
(on)h(what)f(is)332 2009 y(dra)o(wn.)h(One)c(of)e(the)h(main)g(goals)g
(of)f(this)h(sp)q(eci\014cation)i(is)f(to)e(mak)o(e)g(Op)q(enGL)i
(state)332 2066 y(information)j(explicit,)i(to)d(elucidate)j(ho)o(w)d
(it)h(c)o(hanges,)g(and)g(to)f(indicate)i(what)e(its)332
2122 y(e\013ects)e(are.)332 2272 y Fs(1.4)66 b(Our)23
b(View)332 2375 y FC(W)l(e)c(view)g(Op)q(enGL)g(as)f(a)g(state)g(mac)o
(hine)h(that)f(con)o(trols)g(a)g(set)g(of)g(sp)q(eci\014c)i(dra)o(w-)
332 2432 y(ing)h(op)q(erations.)36 b(This)20 b(mo)q(del)i(should)f
(engender)g(a)f(sp)q(eci\014cation)j(that)c(satis\014es)332
2488 y(the)h(needs)g(of)f(b)q(oth)g(programmers)g(and)g(implemen)o
(tors.)34 b(It)19 b(do)q(es)h(not,)g(ho)o(w)o(ev)o(er,)p
eop
%%Page: 3 12
3 11 bop 120 137 a Fx(1.4.)34 b(OUR)16 b(VIEW)1120 b
FC(3)120 286 y(necessarily)20 b(pro)o(vide)e(a)f(mo)q(del)i(for)e
(implemen)o(tation.)28 b(An)18 b(implemen)o(tation)h(m)o(ust)120
343 y(pro)q(duce)14 b(results)g(conforming)f(to)f(those)h(pro)q(duced)h
(b)o(y)f(the)g(sp)q(eci\014ed)i(metho)q(ds,)f(but)120
399 y(there)21 b(ma)o(y)f(b)q(e)i(w)o(a)o(ys)e(to)g(carry)g(out)h(a)f
(particular)i(computation)f(that)f(are)g(more)120 456
y(e\016cien)o(t)c(than)f(the)h(one)f(sp)q(eci\014ed.)p
eop
%%Page: 4 13
4 12 bop 332 603 a Ft(Chapter)31 b(2)332 816 y FA(Op)s(enGL)39
b(Op)s(eration)332 1062 y Fs(2.1)66 b(Op)r(enGL)23 b(F)-6
b(undamen)n(tals)332 1174 y FC(Op)q(enGL)22 b(\(henceforth,)g(the)e
(\\GL"\))g(is)h(concerned)h(only)f(with)g(rendering)g(in)o(to)g(a)332
1230 y(framebu\013er)f(\(and)f(reading)i(v)m(alues)g(stored)e(in)i
(that)f(framebu\013er\).)33 b(There)20 b(is)h(no)332
1287 y(supp)q(ort)14 b(for)f(other)g(p)q(eripherals)j(sometimes)d(asso)
q(ciated)h(with)g(graphics)h(hardw)o(are,)332 1343 y(suc)o(h)h(as)f
(mice)i(and)f(k)o(eyb)q(oards.)21 b(Programmers)14 b(m)o(ust)i(rely)g
(on)g(other)f(mec)o(hanisms)332 1400 y(to)g(obtain)g(user)g(input.)403
1461 y(The)e(GL)g(dra)o(ws)g Fv(primitives)g FC(sub)s(ject)g(to)f(a)h
(n)o(um)o(b)q(er)h(of)e(selectable)j(mo)q(des.)20 b(Eac)o(h)332
1518 y(primitiv)o(e)f(is)e(a)g(p)q(oin)o(t,)h(line)h(segmen)o(t,)e(p)q
(olygon,)h(or)f(pixel)i(rectangle.)26 b(Eac)o(h)17 b(mo)q(de)332
1574 y(ma)o(y)11 b(b)q(e)g(c)o(hanged)h(indep)q(enden)o(tly;)j(the)c
(setting)g(of)g(one)g(do)q(es)h(not)f(a\013ect)f(the)h(settings)332
1631 y(of)i(others)h(\(although)f(man)o(y)g(mo)q(des)h(ma)o(y)f(in)o
(teract)h(to)f(determine)h(what)f(ev)o(en)o(tually)332
1687 y(ends)k(up)f(in)h(the)f(framebu\013er\).)22 b(Mo)q(des)16
b(are)g(set,)f(primitiv)o(es)j(sp)q(eci\014ed,)g(and)e(other)332
1744 y(GL)i(op)q(erations)h(describ)q(ed)h(b)o(y)e(sending)i
Fv(c)n(ommands)e FC(in)h(the)f(form)g(of)g(function)h(or)332
1800 y(pro)q(cedure)d(calls.)403 1862 y(Primitiv)o(es)22
b(are)f(de\014ned)i(b)o(y)e(a)g(group)g(of)g(one)g(or)g(more)g
Fv(vertic)n(es)p FC(.)38 b(A)21 b(v)o(ertex)332 1918
y(de\014nes)h(a)f(p)q(oin)o(t,)h(an)f(endp)q(oin)o(t)h(of)e(an)h(edge,)
h(or)f(a)f(corner)h(of)f(a)h(p)q(olygon)g(where)332 1975
y(t)o(w)o(o)13 b(edges)h(meet.)20 b(Data)13 b(\(consisting)h(of)g(p)q
(ositional)i(co)q(ordinates,)e(colors,)g(normals,)332
2031 y(and)21 b(texture)f(co)q(ordinates\))h(are)f(asso)q(ciated)g
(with)h(a)g(v)o(ertex)f(and)g(eac)o(h)h(v)o(ertex)f(is)332
2088 y(pro)q(cessed)14 b(indep)q(enden)o(tly)l(,)j(in)d(order,)f(and)h
(in)g(the)f(same)g(w)o(a)o(y)l(.)19 b(The)13 b(only)h(exception)332
2144 y(to)h(this)i(rule)g(is)f(if)h(the)f(group)f(of)h(v)o(ertices)g(m)
o(ust)g(b)q(e)g Fv(clipp)n(e)n(d)g FC(so)f(that)h(the)g(indicated)332
2201 y(primitiv)o(e)24 b(\014ts)e(within)h(a)f(sp)q(eci\014ed)i
(region;)i(in)d(this)g(case)f(v)o(ertex)g(data)f(ma)o(y)h(b)q(e)332
2257 y(mo)q(di\014ed)c(and)e(new)g(v)o(ertices)h(created.)23
b(The)16 b(t)o(yp)q(e)g(of)g(clipping)j(dep)q(ends)e(on)g(whic)o(h)332
2313 y(primitiv)o(e)g(the)e(group)g(of)g(v)o(ertices)g(represen)o(ts.)
403 2375 y(Commands)d(are)h(alw)o(a)o(ys)g(pro)q(cessed)g(in)h(the)g
(order)f(in)h(whic)o(h)g(they)f(are)g(receiv)o(ed,)332
2432 y(although)k(there)g(ma)o(y)f(b)q(e)h(an)g(indeterminate)h(dela)o
(y)f(b)q(efore)g(the)g(e\013ects)f(of)g(a)h(com-)332
2488 y(mand)j(are)f(realized.)34 b(This)19 b(means,)h(for)f(example,)i
(that)e(one)g(primitiv)o(e)i(m)o(ust)e(b)q(e)1068 2613
y(4)p eop
%%Page: 5 14
5 13 bop 120 137 a Fx(2.1.)34 b(OPENGL)16 b(FUND)o(AMENT)l(ALS)766
b FC(5)120 286 y(dra)o(wn)16 b(completely)i(b)q(efore)e(an)o(y)g
(subsequen)o(t)g(one)h(can)f(a\013ect)f(the)i(framebu\013er.)22
b(It)120 343 y(also)e(means)g(that)f(queries)h(and)g(pixel)i(read)d(op)
q(erations)h(return)g(state)f(consisten)o(t)120 399 y(with)g(complete)g
(execution)g(of)f(all)h(previously)g(in)o(v)o(ok)o(ed)g(GL)f(commands.)
29 b(In)18 b(gen-)120 456 y(eral,)g(the)g(e\013ects)f(of)f(a)h(GL)h
(command)f(on)g(either)h(GL)g(mo)q(des)f(or)g(the)g(framebu\013er)120
512 y(m)o(ust)11 b(b)q(e)g(complete)h(b)q(efore)g(an)o(y)e(subsequen)o
(t)i(command)f(can)g(ha)o(v)o(e)f(an)o(y)h(suc)o(h)g(e\013ects.)191
569 y(In)19 b(the)g(GL,)g(data)f(binding)j(o)q(ccurs)e(on)f(call.)32
b(This)20 b(means)e(that)g(data)g(passed)120 625 y(to)d(a)g(command)h
(are)f(in)o(terpreted)h(when)g(that)e(command)i(is)g(receiv)o(ed.)21
b(Ev)o(en)16 b(if)g(the)120 682 y(command)j(requires)g(a)f(p)q(oin)o
(ter)h(to)f(data,)g(those)g(data)g(are)g(in)o(terpreted)h(when)g(the)
120 738 y(call)e(is)f(made,)f(and)h(an)o(y)f(subsequen)o(t)h(c)o
(hanges)g(to)f(the)g(data)g(ha)o(v)o(e)g(no)h(e\013ect)f(on)h(the)120
795 y(GL)g(\(unless)g(the)f(same)g(p)q(oin)o(ter)g(is)h(used)g(in)g(a)f
(subsequen)o(t)h(command\).)191 851 y(The)h(GL)h(pro)o(vides)g(direct)g
(con)o(trol)f(o)o(v)o(er)f(the)h(fundamen)o(tal)h(op)q(erations)f(of)g
(3D)120 907 y(and)i(2D)e(graphics.)30 b(This)19 b(includes)h(sp)q
(eci\014cation)h(of)c(suc)o(h)i(parameters)e(as)h(trans-)120
964 y(formation)13 b(matrices,)g(ligh)o(ting)h(equation)g(co)q
(e\016cien)o(ts,)g(an)o(tialiasing)g(metho)q(ds,)g(and)120
1020 y(pixel)j(up)q(date)f(op)q(erators.)j(It)c(do)q(es)g(not)g(pro)o
(vide)h(a)e(means)i(for)e(describing)j(or)e(mo)q(d-)120
1077 y(eling)j(complex)g(geometric)e(ob)s(jects.)24 b(Another)16
b(w)o(a)o(y)g(to)g(describ)q(e)i(this)f(situation)g(is)120
1133 y(to)c(sa)o(y)f(that)h(the)g(GL)g(pro)o(vides)g(mec)o(hanisms)h
(to)e(describ)q(e)j(ho)o(w)e(complex)h(geometric)120
1190 y(ob)s(jects)g(are)g(to)g(b)q(e)h(rendered)g(rather)f(than)h(mec)o
(hanisms)g(to)e(describ)q(e)j(the)f(complex)120 1246
y(ob)s(jects)g(themselv)o(es.)191 1303 y(The)d(mo)q(del)h(for)f(in)o
(terpretation)g(of)f(GL)h(commands)g(is)h(clien)o(t-serv)o(er.)20
b(That)11 b(is,)i(a)120 1359 y(program)g(\(the)h(clien)o(t\))g(issues)h
(commands,)e(and)h(these)g(commands)g(are)f(in)o(terpreted)120
1416 y(and)k(pro)q(cessed)f(b)o(y)g(the)g(GL)g(\(the)g(serv)o(er\).)22
b(The)16 b(serv)o(er)f(ma)o(y)h(or)f(ma)o(y)g(not)h(op)q(erate)120
1472 y(on)21 b(the)g(same)g(computer)g(as)g(the)g(clien)o(t.)39
b(In)21 b(this)h(sense,)g(the)f(GL)g(is)h(\\net)o(w)o(ork-)120
1528 y(transparen)o(t.")17 b(A)11 b(serv)o(er)g(ma)o(y)f(main)o(tain)h
(a)f(n)o(um)o(b)q(er)h(of)g(GL)f Fv(c)n(ontexts)p FC(,)h(eac)o(h)g(of)f
(whic)o(h)120 1585 y(is)17 b(an)e(encapsulation)j(of)d(curren)o(t)h(GL)
f(state.)21 b(A)16 b(clien)o(t)h(ma)o(y)e(c)o(ho)q(ose)h(to)f
Fv(c)n(onne)n(ct)f FC(to)120 1641 y(an)o(y)i(one)g(of)g(these)g(con)o
(texts.)22 b(Issuing)17 b(GL)f(commands)g(when)h(the)f(program)f(is)h
(not)120 1698 y Fv(c)n(onne)n(cte)n(d)e FC(to)g(a)h Fv(c)n(ontext)g
FC(results)h(in)g(unde\014ned)h(b)q(eha)o(vior.)191 1754
y(The)12 b(e\013ects)f(of)g(GL)g(commands)g(on)h(the)f(framebu\013er)g
(are)g(ultimately)i(con)o(trolled)120 1811 y(b)o(y)g(the)g(windo)o(w)f
(system)h(that)f(allo)q(cates)h(framebu\013er)f(resources.)19
b(It)13 b(is)g(the)g(windo)o(w)120 1867 y(system)e(that)g(determines)i
(whic)o(h)f(p)q(ortions)f(of)g(the)h(framebu\013er)f(the)g(GL)h(ma)o(y)
f(access)120 1924 y(at)20 b(an)o(y)g(giv)o(en)g(time)h(and)f(that)g
(comm)o(unicates)g(to)g(the)g(GL)g(ho)o(w)g(those)g(p)q(ortions)120
1980 y(are)j(structured.)41 b(Therefore,)24 b(there)f(are)f(no)g(GL)h
(commands)f(to)g(con\014gure)h(the)120 2037 y(framebu\013er)18
b(or)f(initialize)22 b(the)c(GL.)f(Similarly)l(,)k(displa)o(y)e(of)f
(framebu\013er)f(con)o(ten)o(ts)120 2093 y(on)g(a)g(CR)l(T)g(monitor)g
(\(including)i(the)e(transformation)f(of)g(individual)k(framebu\013er)
120 2149 y(v)m(alues)15 b(b)o(y)d(suc)o(h)i(tec)o(hniques)g(as)f(gamma)
f(correction\))g(is)i(not)f(addressed)g(b)o(y)g(the)g(GL.)120
2206 y(F)l(ramebu\013er)h(con\014guration)h(o)q(ccurs)g(outside)g(of)e
(the)i(GL)f(in)i(conjunction)f(with)g(the)120 2262 y(windo)o(w)h
(system;)f(the)h(initialization)i(of)d(a)g(GL)h(con)o(text)f(o)q(ccurs)
h(when)g(the)g(windo)o(w)120 2319 y(system)f(allo)q(cates)h(a)f(windo)o
(w)g(for)g(GL)g(rendering.)191 2375 y(The)d(GL)g(is)h(designed)g(to)f
(b)q(e)g(run)g(on)g(a)g(range)g(of)f(graphics)i(platforms)e(with)i(v)m
(ary-)120 2432 y(ing)h(graphics)f(capabilities)j(and)d(p)q(erformance.)
19 b(T)l(o)13 b(accommo)q(date)f(this)i(v)m(ariet)o(y)l(,)f(w)o(e)120
2488 y(sp)q(ecify)k(ideal)f(b)q(eha)o(vior)g(instead)g(of)f(actual)g(b)
q(eha)o(vior)h(for)e(certain)i(GL)f(op)q(erations.)p
eop
%%Page: 6 15
6 14 bop 332 137 a FC(6)666 b Fx(CHAPTER)16 b(2.)34 b(OPENGL)16
b(OPERA)l(TION)332 286 y FC(In)g(cases)f(where)g(deviation)h(from)f
(the)g(ideal)h(is)g(allo)o(w)o(ed,)f(w)o(e)g(also)g(sp)q(ecify)h(the)g
(rules)332 343 y(that)d(an)g(implemen)o(tation)i(m)o(ust)e(ob)q(ey)g
(if)h(it)g(is)g(to)f(appro)o(ximate)g(the)g(ideal)i(b)q(eha)o(vior)332
399 y(usefully)l(.)35 b(This)20 b(allo)o(w)o(ed)g(v)m(ariation)g(in)g
(GL)g(b)q(eha)o(vior)g(implies)h(that)e(t)o(w)o(o)f(distinct)332
456 y(GL)d(implemen)o(tations)h(ma)o(y)e(not)h(agree)f(pixel)j(for)d
(pixel)i(when)g(presen)o(ted)f(with)g(the)332 512 y(same)g(input)h(ev)o
(en)g(when)f(run)h(on)f(iden)o(tical)i(framebu\013er)e
(con\014gurations.)403 569 y(Finally)l(,)20 b(command)e(names,)h
(constan)o(ts,)f(and)h(t)o(yp)q(es)f(are)g(pre\014xed)i(in)f(the)f(GL)
332 625 y(\(b)o(y)h Fz(gl)p FC(,)i Fr(GL)p 538 625 14
2 v 15 w FC(,)f(and)g Fw(GL)p FC(,)e(resp)q(ectiv)o(ely)j(in)g
Fw(C)p FC(\))d(to)h(reduce)h(name)g(clashes)g(with)g(other)332
682 y(pac)o(k)m(ages.)g(The)15 b(pre\014xes)h(are)f(omitted)g(in)h
(this)g(do)q(cumen)o(t)f(for)g(clarit)o(y)l(.)332 802
y Fz(Floating-P)o(oin)o(t)20 b(Computation)332 888 y
FC(The)j(GL)f(m)o(ust)g(p)q(erform)g(a)g(n)o(um)o(b)q(er)g(of)g
(\015oating-p)q(oin)o(t)h(op)q(erations)f(during)h(the)332
944 y(course)17 b(of)g(its)g(op)q(eration.)26 b(W)l(e)17
b(do)g(not)g(sp)q(ecify)h(ho)o(w)f(\015oating-p)q(oin)o(t)g(n)o(um)o(b)
q(ers)h(are)332 1001 y(to)10 b(b)q(e)h(represen)o(ted)g(or)e(ho)o(w)h
(op)q(erations)h(on)f(them)g(are)g(to)g(b)q(e)h(p)q(erformed.)18
b(W)l(e)11 b(require)332 1057 y(simply)i(that)f(n)o(um)o(b)q(ers')g
(\015oating-p)q(oin)o(t)h(parts)e(con)o(tain)h(enough)h(bits)f(and)h
(that)e(their)332 1114 y(exp)q(onen)o(t)16 b(\014elds)i(are)d(large)h
(enough)g(so)g(that)f(individual)k(results)d(of)g(\015oating-p)q(oin)o
(t)332 1170 y(op)q(erations)d(are)f(accurate)h(to)f(ab)q(out)h(1)f
(part)g(in)i(10)1213 1154 y Fq(5)1232 1170 y FC(.)19
b(The)13 b(maxim)o(um)g(represen)o(table)332 1227 y(magnitude)g(of)f(a)
g(\015oating-p)q(oin)o(t)h(n)o(um)o(b)q(er)g(used)g(to)f(represen)o(t)h
(p)q(ositional)h(or)d(normal)332 1283 y(co)q(ordinates)j(m)o(ust)f(b)q
(e)h(at)e(least)i(2)924 1267 y Fq(32)961 1283 y FC(;)f(the)h(maxim)o
(um)f(represen)o(table)h(magnitude)g(for)332 1340 y(colors)20
b(or)f(texture)g(co)q(ordinates)i(m)o(ust)e(b)q(e)h(at)f(least)h(2)1312
1323 y Fq(10)1349 1340 y FC(.)33 b(The)20 b(maxim)o(um)g(repre-)332
1396 y(sen)o(table)d(magnitude)g(for)f(all)i(other)e(\015oating-p)q
(oin)o(t)h(v)m(alues)h(m)o(ust)e(b)q(e)h(at)f(least)h(2)1777
1380 y Fq(32)1814 1396 y FC(.)332 1453 y Fy(x)c FB(\001)f
FC(0)19 b(=)h(0)12 b FB(\001)h Fy(x)19 b FC(=)g(0)g(for)g(an)o(y)g
(non-in\014nite)i(and)e(non-NaN)h Fy(x)p FC(.)32 b(1)12
b FB(\001)g Fy(x)20 b FC(=)f Fy(x)13 b FB(\001)f FC(1)19
b(=)h Fy(x)p FC(.)332 1509 y Fy(x)7 b FC(+)g(0)14 b(=)e(0)7
b(+)g Fy(x)14 b FC(=)f Fy(x)p FC(.)19 b(0)732 1493 y
Fq(0)764 1509 y FC(=)13 b(1.)19 b(\(Occasionally)d(further)e
(requiremen)o(ts)g(will)h(b)q(e)g(sp)q(eci-)332 1565
y(\014ed.\))20 b(Most)14 b(single-precision)k(\015oating-p)q(oin)o(t)d
(formats)f(meet)g(these)h(requiremen)o(ts.)403 1622 y(An)o(y)c
(represen)o(table)h(\015oating-p)q(oin)o(t)g(v)m(alue)g(is)g(legal)g
(as)f(input)h(to)e(a)h(GL)h(command)332 1678 y(that)h(requires)h
(\015oating-p)q(oin)o(t)h(data.)j(The)c(result)g(of)f(pro)o(viding)i(a)
e(v)m(alue)i(that)e(is)h(not)332 1735 y(a)20 b(\015oating-p)q(oin)o(t)g
(n)o(um)o(b)q(er)g(to)f(suc)o(h)h(a)g(command)f(is)i(unsp)q(eci\014ed,)
i(but)d(m)o(ust)f(not)332 1791 y(lead)f(to)f(GL)h(in)o(terruption)h(or)
e(termination.)27 b(In)19 b(IEEE)e(arithmetic,)i(for)e(example,)332
1848 y(pro)o(viding)12 b(a)f(negativ)o(e)g(zero)g(or)f(a)h
(denormalized)i(n)o(um)o(b)q(er)e(to)f(a)h(GL)g(command)g(yields)332
1904 y(predictable)19 b(results,)e(while)h(pro)o(viding)g(a)e(NaN)h(or)
f(an)g(in\014nit)o(y)i(yields)h(unsp)q(eci\014ed)332
1961 y(results.)403 2017 y(Some)d(calculations)i(require)f(division.)26
b(In)17 b(suc)o(h)f(cases)h(\(including)i(implied)f(di-)332
2074 y(visions)h(required)g(b)o(y)f(v)o(ector)f(normalizations\),)i(a)e
(division)j(b)o(y)e(zero)g(pro)q(duces)h(an)332 2130
y(unsp)q(eci\014ed)f(result)e(but)f(m)o(ust)g(not)f(lead)i(to)f(GL)g
(in)o(terruption)h(or)f(termination.)332 2274 y Fs(2.2)66
b(GL)23 b(State)332 2375 y FC(The)13 b(GL)f(main)o(tains)g
(considerable)i(state.)k(This)13 b(do)q(cumen)o(t)g(en)o(umerates)f
(eac)o(h)g(state)332 2432 y(v)m(ariable)23 b(and)f(describ)q(es)i(ho)o
(w)d(eac)o(h)h(v)m(ariable)i(can)e(b)q(e)g(c)o(hanged.)41
b(F)l(or)21 b(purp)q(oses)332 2488 y(of)c(discussion,)h(state)e(v)m
(ariables)j(are)d(categorized)h(somewhat)g(arbitrarily)g(b)o(y)g(their)
p eop
%%Page: 7 16
7 15 bop 120 137 a Fx(2.3.)34 b(GL)16 b(COMMAND)e(SYNT)l(AX)827
b FC(7)120 286 y(function.)21 b(Although)14 b(w)o(e)f(describ)q(e)i
(the)f(op)q(erations)g(that)f(the)g(GL)h(p)q(erforms)f(on)h(the)120
343 y(framebu\013er,)h(the)g(framebu\013er)g(is)g(not)g(a)g(part)g(of)f
(GL)i(state.)191 399 y(W)l(e)k(distinguish)i(t)o(w)o(o)d(t)o(yp)q(es)h
(of)g(state.)34 b(The)20 b(\014rst)g(t)o(yp)q(e)g(of)g(state,)g(called)
i(GL)120 456 y Fv(server)d(state)p FC(,)e(resides)i(in)f(the)g(GL)g
(serv)o(er.)27 b(The)17 b(ma)s(jorit)o(y)g(of)g(GL)h(state)e(falls)j
(in)o(to)120 512 y(this)14 b(category)l(.)k(The)13 b(second)h(t)o(yp)q
(e)f(of)g(state,)f(called)j(GL)e Fv(client)g(state)p
FC(,)g(resides)h(in)g(the)120 569 y(GL)i(clien)o(t.)21
b(Unless)16 b(otherwise)f(sp)q(eci\014ed,)i(all)f(state)e(referred)h
(to)g(in)h(this)f(do)q(cumen)o(t)120 625 y(is)f(GL)g(serv)o(er)f
(state;)g(GL)h(clien)o(t)h(state)d(is)j(sp)q(eci\014cally)h(iden)o
(ti\014ed.)21 b(Eac)o(h)14 b(instance)g(of)120 682 y(a)i(GL)h(con)o
(text)e(implies)k(one)d(complete)h(set)f(of)g(GL)h(serv)o(er)f(state;)f
(eac)o(h)i(connection)120 738 y(from)d(a)f(clien)o(t)j(to)d(a)h(serv)o
(er)g(implies)i(a)d(set)h(of)g(b)q(oth)g(GL)g(clien)o(t)i(state)d(and)h
(GL)g(serv)o(er)120 795 y(state.)191 851 y(While)19 b(an)f(implemen)o
(tation)i(of)e(the)g(GL)g(ma)o(y)f(b)q(e)i(hardw)o(are)e(dep)q(enden)o
(t,)j(this)120 907 y(discussion)e(is)f(indep)q(enden)o(t)i(of)c(the)i
(sp)q(eci\014c)h(hardw)o(are)d(on)h(whic)o(h)h(a)f(GL)g(is)h(imple-)120
964 y(men)o(ted.)33 b(W)l(e)20 b(are)f(therefore)g(concerned)i(with)e
(the)h(state)e(of)i(graphics)f(hardw)o(are)120 1020 y(only)d(when)g(it)
f(corresp)q(onds)h(precisely)h(to)d(GL)i(state.)120 1161
y Fs(2.3)67 b(GL)22 b(Command)g(Syn)n(tax)120 1263 y
FC(GL)e(commands)e(are)h(functions)h(or)f(pro)q(cedures.)32
b(V)l(arious)20 b(groups)e(of)h(commands)120 1319 y(p)q(erform)i(the)g
(same)f(op)q(eration)h(but)g(di\013er)g(in)h(ho)o(w)e(argumen)o(ts)g
(are)g(supplied)j(to)120 1375 y(them.)d(T)l(o)13 b(con)o(v)o(enien)o
(tly)h(accommo)q(date)f(this)h(v)m(ariation,)g(w)o(e)f(adopt)g(a)g
(notation)g(for)120 1432 y(describing)k(commands)e(and)h(their)g
(argumen)o(ts.)191 1488 y(GL)f(commands)f(are)h(formed)f(from)g(a)g
Fv(name)h FC(follo)o(w)o(ed,)g(dep)q(ending)h(on)f(the)g(par-)120
1545 y(ticular)k(command,)f(b)o(y)g(up)g(to)g(4)f(c)o(haracters.)27
b(The)19 b(\014rst)e(c)o(haracter)g(indicates)j(the)120
1601 y(n)o(um)o(b)q(er)c(of)g(v)m(alues)g(of)g(the)f(indicated)j(t)o
(yp)q(e)e(that)f(m)o(ust)g(b)q(e)h(presen)o(ted)g(to)f(the)h(com-)120
1658 y(mand.)k(The)c(second)f(c)o(haracter)g(or)f(c)o(haracter)h(pair)g
(indicates)i(the)e(sp)q(eci\014c)i(t)o(yp)q(e)e(of)120
1714 y(the)i(argumen)o(ts:)23 b(8-bit)17 b(in)o(teger,)g(16-bit)g(in)o
(teger,)g(32-bit)g(in)o(teger,)g(single-precision)120
1771 y(\015oating-p)q(oin)o(t,)26 b(or)c(double-precision)k
(\015oating-p)q(oin)o(t.)44 b(The)24 b(\014nal)f(c)o(haracter,)h(if)120
1827 y(presen)o(t,)19 b(is)g Fw(v)p FC(,)f(indicating)i(that)e(the)g
(command)g(tak)o(es)g(a)g(p)q(oin)o(ter)h(to)e(an)h(arra)o(y)f(\(a)120
1884 y(v)o(ector\))e(of)g(v)m(alues)h(rather)f(than)g(a)g(series)h(of)f
(individual)j(argumen)o(ts.)h(Tw)o(o)c(sp)q(eci\014c)120
1940 y(examples)h(come)g(from)e(the)h Fz(V)l(ertex)f
FC(command:)234 2021 y Fw(void)30 b Fz(V)l(ertex3f)p
FC(\()e Fw(float)15 b Fv(x)p Fw(,)g(float)f Fv(y)p Fw(,)i(float)e
Fv(z)h FC(\))g Fw(;)120 2102 y FC(and)234 2182 y Fw(void)30
b Fz(V)l(ertex2sv)p FC(\()e Fw(short)14 b Fv(v[2])h FC(\))g
Fw(;)120 2263 y FC(These)23 b(examples)h(sho)o(w)e(the)g(ANSI)i
Fw(C)e FC(declarations)h(for)f(these)h(commands.)42 b(In)120
2320 y(general,)31 b(a)15 b(command)g(declaration)h(has)f(the)g(form)
1037 2303 y FG(\003)p 120 2354 598 2 v 172 2381 a Fp(\003)189
2397 y Fo(The)h(declarations)j(sho)o(wn)d(in)h(this)g(do)q(cumen)o(t)f
(apply)i(to)e(ANSI)f Fn(C)p Fo(.)g(Languages)i(suc)o(h)g(as)f
Fn(C++)120 2443 y Fo(and)d(Ada)f(that)h(allo)o(w)g(passing)h(of)e
(argumen)o(t)h(t)o(yp)q(e)f(information)i(admit)f(simpler)h
(declarations)h(and)120 2488 y(few)o(er)e(en)o(try)g(p)q(oin)o(ts.)p
eop
%%Page: 8 17
8 16 bop 332 137 a FC(8)666 b Fx(CHAPTER)16 b(2.)34 b(OPENGL)16
b(OPERA)l(TION)p 734 242 692 2 v 733 299 2 57 v 758 282
a FC(Letter)p 904 299 V 50 w(Corresp)q(onding)g Fw(GL)f
FC(T)o(yp)q(e)p 1424 299 V 734 301 692 2 v 734 309 V
733 365 2 57 v 805 348 a Fz(b)p 904 365 V 96 w Fw(byte)p
1424 365 V 734 367 692 2 v 733 423 2 57 v 809 406 a Fz(s)p
904 423 V 100 w Fw(short)p 1424 423 V 734 425 692 2 v
733 482 2 57 v 812 465 a Fz(i)p 904 482 V 104 w Fw(int)p
1424 482 V 734 483 692 2 v 733 540 2 57 v 811 523 a Fz(f)p
904 540 V 103 w Fw(float)p 1424 540 V 734 541 692 2 v
733 598 2 57 v 805 581 a Fz(d)p 904 598 V 96 w Fw(double)p
1424 598 V 734 599 692 2 v 733 656 2 57 v 790 639 a Fz(ub)p
904 656 V 82 w Fw(ubyte)p 1424 656 V 734 658 692 2 v
733 714 2 57 v 795 697 a Fz(us)p 904 714 V 85 w Fw(ushort)p
1424 714 V 734 716 692 2 v 733 772 2 57 v 798 755 a Fz(ui)p
904 772 V 89 w Fw(uint)p 1424 772 V 734 774 692 2 v 332
851 a FC(T)l(able)e(2.1:)18 b(Corresp)q(ondence)13 b(of)f(command)h
(su\016x)f(letters)h(to)f(GL)g(argumen)o(t)g(t)o(yp)q(es.)332
907 y(Refer)k(to)e(T)l(able)i(2.2)f(for)f(de\014nitions)j(of)e(the)g
(GL)g(t)o(yp)q(es.)446 1089 y Fv(rtyp)n(e)g Fz(Name)p
FB(f)p Fy(\017)p Fz(1234)p FB(gf)p Fy(\017)j Fz(b)f(s)g(i)h(f)g(d)f(ub)
h(us)f(ui)p FB(gf)p Fy(\017)p Fz(v)p FB(g)806 1146 y
Fw(\()e Fv([ar)n(gs)h(,])g(T)f(ar)n(g1)i(,)f Fy(:)8 b(:)g(:)14
b Fv(,)j(T)e(ar)n(g)p Fy(N)21 b Fv([,)16 b(ar)n(gs])31
b Fw(\);)332 1233 y Fv(rtyp)n(e)20 b FC(is)f(the)h(return)f(t)o(yp)q(e)
h(of)f(the)g(function.)33 b(The)20 b(braces)f(\()p FB(fg)p
FC(\))f(enclose)j(a)e(series)332 1289 y(of)g(c)o(haracters)f(\(or)h(c)o
(haracter)f(pairs\))h(of)g(whic)o(h)h(one)f(is)h(selected.)33
b Fy(\017)20 b FC(indicates)h(no)332 1346 y(c)o(haracter.)28
b(The)19 b(argumen)o(ts)e(enclosed)i(in)h(brac)o(k)o(ets)d(\()p
Fv([ar)n(gs)h(,])h FC(and)f Fv([,)i(ar)n(gs])p FC(\))d(ma)o(y)332
1402 y(or)e(ma)o(y)g(not)h(b)q(e)g(presen)o(t.)22 b(The)16
b Fy(N)k FC(argumen)o(ts)15 b Fv(ar)n(g1)h FC(through)g
Fv(ar)n(g)p Fy(N)k FC(ha)o(v)o(e)15 b(t)o(yp)q(e)h Fv(T)p
FC(,)332 1458 y(whic)o(h)i(corresp)q(onds)g(to)e(one)h(of)g(the)g(t)o
(yp)q(e)g(letters)h(or)e(letter)i(pairs)f(as)g(indicated)i(in)332
1515 y(T)l(able)e(2.1)f(\(if)h(there)f(are)g(no)h(letters,)f(then)h
(the)g(argumen)o(ts')e(t)o(yp)q(e)h(is)h(giv)o(en)g(explic-)332
1571 y(itly\).)j(If)c(the)f(\014nal)h(c)o(haracter)e(is)i(not)e
Fz(v)p FC(,)h(then)g Fy(N)k FC(is)d(giv)o(en)g(b)o(y)f(the)g(digit)h
Fz(1)p FC(,)e Fz(2)p FC(,)h Fz(3)p FC(,)g(or)332 1628
y Fz(4)i FC(\(if)g(there)g(is)g(no)g(digit,)h(then)f(the)g(n)o(um)o(b)q
(er)g(of)g(argumen)o(ts)f(is)h(\014xed\).)26 b(If)17
b(the)g(\014nal)332 1684 y(c)o(haracter)g(is)i Fz(v)p
FC(,)f(then)g(only)h Fv(ar)n(g1)f FC(is)h(presen)o(t)f(and)g(it)g(is)h
(an)f(arra)o(y)f(of)g Fy(N)23 b FC(v)m(alues)c(of)332
1741 y(the)14 b(indicated)h(t)o(yp)q(e.)20 b(Finally)l(,)15
b(w)o(e)e(indicate)i(an)f Fw(unsigned)f FC(t)o(yp)q(e)g(b)o(y)h(the)g
(shorthand)332 1797 y(of)h(prep)q(ending)j(a)d Fw(u)g
FC(to)g(the)h(b)q(eginning)i(of)d(the)g(t)o(yp)q(e)h(name)g(\(so)e
(that,)h(for)g(instance,)332 1854 y Fw(unsigned)23 b(char)14
b FC(is)i(abbreviated)g Fw(uchar)p FC(\).)403 1910 y(F)l(or)e(example,)
446 1997 y Fw(void)29 b Fz(Normal3)p FB(f)p Fz(fd)p FB(g)p
FC(\()h Fw(T)15 b Fv(ar)n(g)g FC(\))g Fw(;)332 2084 y
FC(indicates)i(the)e(t)o(w)o(o)f(declarations)446 2171
y Fw(void)29 b Fz(Normal3f)p FC(\()i Fw(float)14 b Fv(ar)n(g1)p
Fw(,)h(float)g Fv(ar)n(g2)p Fw(,)g(float)g Fv(ar)n(g3)g
FC(\))g Fw(;)446 2227 y(void)27 b Fz(Normal3d)p FC(\()h
Fw(double)14 b Fv(ar)n(g1)p Fw(,)g(double)f Fv(ar)n(g2)p
Fw(,)i(double)e Fv(ar)n(g3)h FC(\))g Fw(;)332 2314 y
FC(while)446 2401 y Fw(void)29 b Fz(Normal3)p FB(f)p
Fz(fd)p FB(g)p Fz(v)p FC(\()h Fw(T)15 b Fv(ar)n(g)g FC(\))g
Fw(;)332 2488 y FC(means)g(the)h(t)o(w)o(o)d(declarations)p
eop
%%Page: 9 18
9 17 bop 120 137 a Fx(2.4.)34 b(BASIC)16 b(GL)g(OPERA)l(TION)852
b FC(9)234 286 y Fw(void)30 b Fz(Normal3fv)p FC(\()g
Fw(float)14 b Fv(ar)n(g[3])h FC(\))g Fw(;)234 343 y(void)30
b Fz(Normal3dv)p FC(\()g Fw(double)14 b Fv(ar)n(g[3])h
FC(\))g Fw(;)191 468 y FC(Argumen)o(ts)20 b(whose)h(t)o(yp)q(e)g(is)g
(\014xed)g(\(i.e.)37 b(not)20 b(indicated)j(b)o(y)e(a)f(su\016x)h(on)g
(the)120 524 y(command\))15 b(are)g(of)g(one)g(of)g(14)f(t)o(yp)q(es)h
(\(or)f(p)q(oin)o(ters)i(to)f(one)g(of)f(these\).)20
b(These)c(t)o(yp)q(es)120 580 y(are)f(summarized)h(in)g(T)l(able)g
(2.2.)120 768 y Fs(2.4)67 b(Basic)22 b(GL)g(Op)r(eration)120
884 y FC(Figure)16 b(2.1)f(sho)o(ws)g(a)h(sc)o(hematic)g(diagram)f(of)h
(the)g(GL.)f(Commands)g(en)o(ter)h(the)g(GL)120 941 y(on)i(the)h(left.)
28 b(Some)19 b(commands)e(sp)q(ecify)j(geometric)e(ob)s(jects)f(to)h(b)
q(e)h(dra)o(wn)e(while)120 997 y(others)k(con)o(trol)g(ho)o(w)g(the)g
(ob)s(jects)g(are)g(handled)i(b)o(y)e(the)h(v)m(arious)f(stages.)38
b(Most)120 1054 y(commands)14 b(ma)o(y)e(b)q(e)j(accum)o(ulated)f(in)g
(a)f Fv(display)i(list)e FC(for)f(pro)q(cessing)j(b)o(y)e(the)h(GL)f
(at)120 1110 y(a)g(later)g(time.)20 b(Otherwise,)13 b(commands)g(are)g
(e\013ectiv)o(ely)h(sen)o(t)f(through)f(a)h(pro)q(cessing)120
1167 y(pip)q(eline)q(.)191 1231 y(The)j(\014rst)f(stage)g(pro)o(vides)g
(an)h(e\016cien)o(t)g(means)g(for)e(appro)o(ximating)i(curv)o(e)g(and)
120 1287 y(surface)i(geometry)f(b)o(y)g(ev)m(aluating)i(p)q(olynomial)g
(functions)g(of)e(input)h(v)m(alues.)28 b(The)120 1344
y(next)19 b(stage)e(op)q(erates)h(on)h(geometric)f(primitiv)o(es)i
(describ)q(ed)g(b)o(y)e(v)o(ertices:)27 b(p)q(oin)o(ts,)120
1400 y(line)18 b(segmen)o(ts,)d(and)g(p)q(olygons.)22
b(In)16 b(this)g(stage)f(v)o(ertices)h(are)g(transformed)e(and)i(lit,)
120 1457 y(and)h(primitiv)o(es)g(are)f(clipp)q(ed)j(to)c(a)h(viewing)h
(v)o(olume)g(in)g(preparation)f(for)f(the)i(next)120
1513 y(stage,)11 b(rasterization.)18 b(The)10 b(rasterizer)h(pro)q
(duces)g(a)f(series)h(of)f(framebu\013er)g(addresses)120
1569 y(and)17 b(v)m(alues)g(using)f(a)g(t)o(w)o(o-dimensional)h
(description)h(of)d(a)h(p)q(oin)o(t,)g(line)i(segmen)o(t,)d(or)120
1626 y(p)q(olygon.)21 b(Eac)o(h)16 b Fv(fr)n(agment)f
FC(so)g(pro)q(duced)h(is)g(fed)g(to)f(the)g(next)h(stage)e(that)h(p)q
(erforms)120 1682 y(op)q(erations)f(on)g(individual)i(fragmen)o(ts)d(b)
q(efore)h(they)f(\014nally)i(alter)f(the)g(framebu\013er.)120
1739 y(These)23 b(op)q(erations)f(include)i(conditional)g(up)q(dates)f
(in)o(to)f(the)g(framebu\013er)f(based)120 1795 y(on)16
b(incoming)g(and)g(previously)h(stored)e(depth)h(v)m(alues)g(\(to)f
(e\013ect)g(depth)h(bu\013ering\),)120 1852 y(blending)h(of)d(incoming)
i(fragmen)o(t)e(colors)g(with)h(stored)f(colors,)h(as)f(w)o(ell)h(as)g
(masking)120 1908 y(and)h(other)f(logical)h(op)q(erations)f(on)g
(fragmen)o(t)g(v)m(alues.)191 1972 y(Finally)l(,)22 b(there)e(is)g(a)g
(w)o(a)o(y)e(to)h(b)o(ypass)h(the)g(v)o(ertex)f(pro)q(cessing)h(p)q
(ortion)g(of)g(the)120 2029 y(pip)q(eline)k(to)19 b(send)i(a)f(blo)q(c)
o(k)h(of)f(fragmen)o(ts)f(directly)j(to)d(the)h(individual)k(fragmen)o
(t)120 2085 y(op)q(erations,)16 b(ev)o(en)o(tually)h(causing)f(a)f(blo)
q(c)o(k)i(of)e(pixels)i(to)e(b)q(e)i(written)e(to)g(the)h(frame-)120
2142 y(bu\013er;)k(v)m(alues)f(ma)o(y)f(also)g(b)q(e)i(read)e(bac)o(k)g
(from)g(the)g(framebu\013er)g(or)g(copied)h(from)120
2198 y(one)12 b(p)q(ortion)h(of)e(the)h(framebu\013er)g(to)f(another.)
18 b(These)12 b(transfers)g(ma)o(y)f(include)j(some)120
2255 y(t)o(yp)q(e)i(of)e(deco)q(ding)j(or)e(enco)q(ding.)191
2319 y(This)d(ordering)f(is)h(mean)o(t)e(only)i(as)f(a)f(to)q(ol)h(for)
g(describing)i(the)e(GL,)g(not)f(as)h(a)g(strict)120
2375 y(rule)19 b(of)e(ho)o(w)h(the)g(GL)g(is)g(implemen)o(ted,)i(and)e
(w)o(e)f(presen)o(t)h(it)g(only)h(as)e(a)h(means)f(to)120
2432 y(organize)e(the)g(v)m(arious)h(op)q(erations)f(of)f(the)h(GL.)g
(Ob)s(jects)f(suc)o(h)i(as)e(curv)o(ed)h(surfaces,)120
2488 y(for)g(instance,)h(ma)o(y)e(b)q(e)i(transformed)e(b)q(efore)i
(they)f(are)g(con)o(v)o(erted)g(to)f(p)q(olygons.)p eop
%%Page: 10 19
10 18 bop 332 137 a FC(10)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 332 582 1546 2 v 331 638
2 57 v 362 621 a FC(GL)f(T)o(yp)q(e)p 572 638 V 55 w(Minim)o(um)h(Num)o
(b)q(er)f(of)g(Bits)p 1137 638 V 50 w(Description)p 1877
638 V 332 640 1546 2 v 332 648 V 331 704 2 57 v 369 687
a Fw(boolean)p 572 704 V 307 w FC(1)p 1137 704 V 295
w(Bo)q(olean)p 1877 704 V 332 706 1546 2 v 331 819 2
113 v 405 746 a Fw(byte)p 572 819 V 343 w FC(8)p 1137
819 V 295 w(signed)50 b(2's)e(complemen)o(t)i(binary)1162
802 y(in)o(teger)p 1877 819 V 332 821 1546 2 v 331 877
2 57 v 393 860 a Fw(ubyte)p 572 877 V 331 w FC(8)p 1137
877 V 295 w(unsigned)17 b(binary)f(in)o(teger)p 1877
877 V 332 879 1546 2 v 331 992 2 113 v 393 918 a Fw(short)p
572 992 V 319 w FC(16)p 1137 992 V 284 w(signed)50 b(2's)e(complemen)o
(t)i(binary)1162 975 y(in)o(teger)p 1877 992 V 332 993
1546 2 v 331 1050 2 57 v 381 1033 a Fw(ushort)p 572 1050
V 307 w FC(16)p 1137 1050 V 284 w(unsigned)17 b(binary)f(in)o(teger)p
1877 1050 V 332 1051 1546 2 v 331 1164 2 113 v 417 1091
a Fw(int)p 572 1164 V 343 w FC(32)p 1137 1164 V 284 w(signed)50
b(2's)e(complemen)o(t)i(binary)1162 1147 y(in)o(teger)p
1877 1164 V 332 1166 1546 2 v 331 1222 2 57 v 405 1206
a Fw(uint)p 572 1222 V 331 w FC(32)p 1137 1222 V 284
w(unsigned)17 b(binary)f(in)o(teger)p 1877 1222 V 332
1224 1546 2 v 331 1281 2 57 v 393 1264 a Fw(sizei)p 572
1281 V 319 w FC(32)p 1137 1281 V 284 w(Non-negativ)o(e)g(binary)g(in)o
(teger)f(size)p 1877 1281 V 332 1282 1546 2 v 331 1339
2 57 v 405 1322 a Fw(enum)p 572 1339 V 331 w FC(32)p
1137 1339 V 284 w(En)o(umerated)g(binary)h(in)o(teger)g(v)m(alue)p
1877 1339 V 332 1340 1546 2 v 331 1397 2 57 v 357 1380
a Fw(bitfield)p 572 1397 V 283 w FC(32)p 1137 1397 V
284 w(Bit)g(\014eld)p 1877 1397 V 332 1398 1546 2 v 331
1455 2 57 v 393 1438 a Fw(float)p 572 1455 V 319 w FC(32)p
1137 1455 V 284 w(Floating-p)q(oin)o(t)g(v)m(alue)p 1877
1455 V 332 1457 1546 2 v 331 1570 2 113 v 381 1496 a
Fw(clampf)p 572 1570 V 307 w FC(32)p 1137 1570 V 284
w(Floating-p)q(oin)o(t)34 b(v)m(alue)f(clamp)q(ed)h(to)1162
1553 y([0)p Fy(;)8 b FC(1])p 1877 1570 V 332 1571 1546
2 v 331 1628 2 57 v 381 1611 a Fw(double)p 572 1628 V
307 w FC(64)p 1137 1628 V 284 w(Floating-p)q(oin)o(t)16
b(v)m(alue)p 1877 1628 V 332 1629 1546 2 v 331 1742 2
113 v 381 1669 a Fw(clampd)p 572 1742 V 307 w FC(64)p
1137 1742 V 284 w(Floating-p)q(oin)o(t)34 b(v)m(alue)f(clamp)q(ed)h(to)
1162 1725 y([0)p Fy(;)8 b FC(1])p 1877 1742 V 332 1744
1546 2 v 332 1821 a(T)l(able)18 b(2.2:)24 b(GL)18 b(data)f(t)o(yp)q
(es.)26 b(GL)18 b(t)o(yp)q(es)g(are)f(not)g(C)g(t)o(yp)q(es.)27
b(Th)o(us,)18 b(for)f(example,)332 1878 y(GL)23 b(t)o(yp)q(e)g
Fw(int)f FC(is)h(referred)g(to)f(as)g Fw(GLint)g FC(outside)h(this)g
(do)q(cumen)o(t,)i(and)e(is)g(not)332 1934 y(necessarily)16
b(equiv)m(alen)o(t)f(to)f(the)g(C)g(t)o(yp)q(e)g Fw(int)p
FC(.)19 b(An)c(implemen)o(tation)g(ma)o(y)e(use)i(more)332
1990 y(bits)f(than)f(the)g(n)o(um)o(b)q(er)h(indicated)h(in)f(the)f
(table)h(to)e(represen)o(t)i(a)f(GL)g(t)o(yp)q(e.)19
b(Correct)332 2047 y(in)o(terpretation)d(of)f(in)o(teger)h(v)m(alues)g
(outside)g(the)g(minim)o(um)g(range)g(is)g(not)f(required,)332
2103 y(ho)o(w)o(ev)o(er.)p eop
%%Page: 11 20
11 19 bop 120 137 a Fx(2.5.)34 b(GL)16 b(ERR)o(ORS)1074
b FC(11)p 139 242 1459 2 v 139 1045 2 803 v 193 317 a
21313290 9164712 1052508 13616824 56769658 37890293 startTexFig
193 317 a
%%BeginDocument: pics/block.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Courier-Bold-SHOWISO exch definefont pop
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
gsave
matrix currentmatrix
[1 0 0 1 127.5 545.5] concat
newpath
0 0 M 0 2 L 2 2 L 2 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
125.5 543.5 M 125.5 549.5 L 131.5 549.5 L 131.5 543.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 127.5 545.5] concat
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 119.5 500.5] concat
newpath
0 0 M 0 2 L 2 2 L 2 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
117.5 498.5 M 117.5 504.5 L 123.5 504.5 L 123.5 498.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 119.5 500.5] concat
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 82 519] concat
newpath
0 0 M 0 44 L 76.026 44 L 76.026 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
80 517 M 80 565 L 160.026 565 L 160.026 517 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 82 519] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
10 25.913 M (Display) 64.026 S
10 3.91304 M ( List) 47.016 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 162 412] concat
newpath
0 0 M 0 24 L 84.026 24 L 84.026 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
160 410 M 160 438 L 248.026 438 L 248.026 410 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 162 412] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Evaluator) 82.026 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 302 432] concat
newpath
0 0 M 0 48 L 97.022 48 L 97.022 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
300 430 M 300 482 L 401.022 482 L 401.022 430 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 302 432] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 27.913 M (Per-Vertex) 94.554 S
0 3.91304 M (Operations) 95.022 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 471 401] concat
newpath
0 0 M 0 48 L 82.532 48 L 82.532 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
469 399 M 469 451 L 555.532 451 L 555.532 399 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 471 401] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 27.913 M (Rasteriz-) 80.532 S
0 3.91304 M (ation) 43.002 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 599 387] concat
newpath
0 0 M 0 72 L 97.022 72 L 97.022 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
597 385 M 597 461 L 698.022 461 L 698.022 385 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 599 387] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 51.913 M (Per-) 39.528 S
0 27.913 M (Fragment) 82.008 S
0 3.91304 M (Operations) 95.022 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 739 411] concat
newpath
0 0 M 0 24 L 107.012 24 L 107.012 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
737 409 M 737 437 L 848.012 437 L 848.012 409 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 739 411] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Framebuffer) 105.012 S
setmatrix
grestore
gsave
matrix currentmatrix
[88 0 0 64 80 512] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[104 0 0 104 152 376] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[140 0 0 103 284 377] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[112 0 0 104 455 375] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[104 0 0 104 595 375] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[136 0 0 136 727 359] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 307 215] concat
newpath
0 0 M 0 48 L 97.022 48 L 97.022 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
305 213 M 305 265 L 406.022 265 L 406.022 213 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 307 215] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 27.913 M (Pixel) 42.03 S
0 3.91304 M (Operations) 95.022 S
setmatrix
grestore
gsave
matrix currentmatrix
[112 0 0 64 303 207] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
41 424 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
36 424 M
22 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
48 240 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
304 240 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
67 240 M
303 240 L
303 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
149 424 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
16 424 M
130 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
256 428 M
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
285 424 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
256 424 M
266 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
455 424 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
426 424 M
436 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
596 423 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
567 423 M
577 423 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
728 423 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
699 423 M
709 423 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
120 423 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
120 512 M
120 442 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
96 239 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
96 512 M
96 258 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
48 240 M
48 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
41 444 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
36 444 M
22 444 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
81 544 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
20 444 M
48 444 L
48 544 L
62 544 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 303 377] concat
newpath
0 0 M 0 48 L 87.032 48 L 87.032 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
301 375 M 301 427 L 392.032 427 L 392.032 375 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 303 377] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 27.913 M (Primitive) 76.032 S
0 3.91304 M (Assembly) 85.032 S
setmatrix
grestore
gsave
matrix currentmatrix
[96 0 0 56 463 279] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 475 281] concat
newpath
0 0 M 0 48 L 71.012 48 L 71.012 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
473 279 M 473 331 L 548.012 331 L 548.012 279 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 475 281] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 27.913 M (Texture) 65.016 S
0 3.91304 M (Memory) 69.012 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
512 377 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
512 336 M
512 358 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
512 281 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
416 248 M
512 248 L
512 262 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
415 232 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
800 361 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
434 232 M
800 232 L
800 342 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
457 400 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
432 248 M
432 400 L
438 400 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1016 a Fm(Figure)14 b(2.1.)j(Blo)q(c)o(k)c(diagram)f(of)h(the)i
(GL.)p 1595 1045 2 803 v 139 1047 1459 2 v 120 1227 a
Fs(2.5)67 b(GL)22 b(Errors)120 1331 y FC(The)17 b(GL)f(detects)h(only)g
(a)e(subset)i(of)f(those)g(conditions)h(that)f(could)h(b)q(e)g
(considered)120 1387 y(errors.)i(This)13 b(is)h(b)q(ecause)g(in)f(man)o
(y)g(cases)g(error)f(c)o(hec)o(king)i(w)o(ould)f(adv)o(ersely)g(impact)
120 1444 y(the)j(p)q(erformance)f(of)g(an)g(error-free)g(program.)191
1501 y(The)g(command)234 1599 y Fw(enum)30 b Fz(GetError)p
FC(\()f Fw(void)39 b FC(\))14 b Fw(;)120 1697 y FC(is)22
b(used)h(to)d(obtain)i(error)f(information.)39 b(Eac)o(h)21
b(detectable)i(error)e(is)h(assigned)g(a)120 1753 y(n)o(umeric)h(co)q
(de.)41 b(When)22 b(an)g(error)f(is)i(detected,)g(a)f(\015ag)g(is)g
(set)g(and)g(the)g(co)q(de)g(is)120 1810 y(recorded.)35
b(F)l(urther)20 b(errors,)g(if)g(they)g(o)q(ccur,)h(do)f(not)g
(a\013ect)f(this)h(recorded)h(co)q(de.)120 1866 y(When)i
Fz(GetError)f FC(is)g(called,)j(the)e(co)q(de)g(is)f(returned)h(and)f
(the)h(\015ag)e(is)i(cleared,)120 1923 y(so)d(that)f(a)g(further)h
(error)f(will)i(again)f(record)g(its)g(co)q(de.)34 b(If)20
b(a)f(call)i(to)e Fz(GetError)120 1979 y FC(returns)c
Fr(NO)p 324 1979 14 2 v 16 w(ERROR)p FC(,)e(then)i(there)g(has)g(b)q
(een)h(no)f(detectable)h(error)e(since)j(the)e(last)g(call)120
2036 y(to)g Fz(GetError)g FC(\(or)f(since)i(the)g(GL)f(w)o(as)f
(initialized)q(\).)191 2093 y(T)l(o)22 b(allo)o(w)h(for)g(distributed)h
(implemen)o(tations,)i(there)c(ma)o(y)g(b)q(e)i(sev)o(eral)f(\015ag-)
120 2149 y(co)q(de)e(pairs.)36 b(In)21 b(this)g(case,)h(after)e(a)g
(call)h(to)f Fz(GetError)g FC(returns)g(a)g(v)m(alue)i(other)120
2206 y(than)c Fr(NO)p 276 2206 V 15 w(ERROR)e FC(eac)o(h)h(subsequen)o
(t)h(call)h(returns)e(the)g(non-zero)h(co)q(de)g(of)f(a)g(distinct)120
2262 y(\015ag-co)q(de)e(pair)g(\(in)h(unsp)q(eci\014ed)h(order\),)d(un)
o(til)h(all)h(non-)p Fr(NO)p 1160 2262 V 16 w(ERROR)d
FC(co)q(des)i(ha)o(v)o(e)g(b)q(een)120 2319 y(returned.)31
b(When)19 b(there)f(are)g(no)h(more)f(non-)p Fr(NO)p
986 2319 V 16 w(ERROR)f FC(error)h(co)q(des,)h(all)h(\015ags)e(are)120
2375 y(reset.)j(This)c(sc)o(heme)f(requires)g(some)g(p)q(ositiv)o(e)g
(n)o(um)o(b)q(er)g(of)f(pairs)h(of)g(a)f(\015ag)g(bit)i(and)120
2432 y(an)e(in)o(teger.)20 b(The)15 b(initial)i(state)d(of)g(all)i
(\015ags)e(is)h(cleared)h(and)f(the)g(initial)i(v)m(alue)e(of)g(all)120
2488 y(co)q(des)h(is)g Fr(NO)p 336 2488 V 15 w(ERROR)p
FC(.)p eop
%%Page: 12 21
12 20 bop 332 137 a FC(12)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 368 242 1423 2 v 367 355
2 113 v 393 282 a FC(Error)p 782 355 V 791 355 V 315
w(Description)p 1440 355 V 423 w(O\013ending)c(com-)1465
338 y(mand)k(ignored?)p 1790 355 V 368 357 1423 2 v 368
365 V 367 422 2 57 v 393 405 a Fr(INVALID)p 550 405 14
2 v 14 w(ENUM)p 782 422 2 57 v 791 422 V 167 w Fw(enum)e
FC(argumen)o(t)h(out)f(of)h(range)p 1440 422 V 94 w(Y)l(es)p
1790 422 V 368 423 1423 2 v 367 536 2 113 v 393 463 a
Fr(INVALID)p 550 463 14 2 v 14 w(VALUE)p 782 536 2 113
v 791 536 V 145 w FC(Numeric)48 b(argumen)o(t)e(out)h(of)816
519 y(range)p 1440 536 V 1465 463 a(Y)l(es)p 1790 536
V 368 538 1423 2 v 367 651 2 113 v 393 578 a Fr(INVALID)p
550 578 14 2 v 14 w(OPERATION)p 782 651 2 113 v 791 651
V 57 w FC(Op)q(eration)35 b(illegal)h(in)f(curren)o(t)816
634 y(state)p 1440 651 V 1465 578 a(Y)l(es)p 1790 651
V 368 653 1423 2 v 367 765 2 113 v 393 692 a Fr(STACK)p
506 692 14 2 v 15 w(OVERFLOW)p 782 765 2 113 v 791 765
V 122 w FC(Command)11 b(w)o(ould)h(cause)h(a)e(stac)o(k)816
749 y(o)o(v)o(er\015o)o(w)p 1440 765 V 1465 692 a(Y)l(es)p
1790 765 V 368 767 1423 2 v 367 880 2 113 v 393 807 a
Fr(STACK)p 506 807 14 2 v 15 w(UNDERFLOW)p 782 880 2
113 v 791 880 V 100 w FC(Command)g(w)o(ould)h(cause)h(a)e(stac)o(k)816
863 y(under\015o)o(w)p 1440 880 V 1465 807 a(Y)l(es)p
1790 880 V 368 882 1423 2 v 367 995 2 113 v 393 921 a
Fr(OUT)p 462 921 14 2 v 15 w(OF)p 521 921 V 15 w(MEMORY)p
782 995 2 113 v 791 995 V 151 w FC(Not)g(enough)h(memory)g(left)g(to)f
(ex-)816 978 y(ecute)k(command)p 1440 995 V 1465 921
a(Unkno)o(wn)p 1790 995 V 368 996 1423 2 v 746 1123 a(T)l(able)h(2.3:)j
(Summary)c(of)f(GL)i(errors)403 1402 y(T)l(able)j(2.3)f(summarizes)g
(GL)h(errors.)29 b(Curren)o(tly)l(,)19 b(when)h(an)e(error)g(\015ag)g
(is)h(set,)332 1458 y(results)h(of)f(GL)g(op)q(eration)g(are)g
(unde\014ned)i(only)f(if)g Fr(OUT)p 1337 1458 14 2 v
15 w(OF)p 1396 1458 V 15 w(MEMORY)e FC(has)h(o)q(ccurred.)332
1515 y(In)f(other)e(cases,)h(the)g(command)f(generating)h(the)g(error)f
(is)i(ignored)f(so)f(that)h(it)g(has)332 1571 y(no)g(e\013ect)g(on)g
(GL)g(state)f(or)h(framebu\013er)f(con)o(ten)o(ts.)25
b(If)17 b(the)g(generating)h(command)332 1627 y(returns)d(a)g(v)m
(alue,)h(it)g(returns)f(zero.)20 b(If)c(the)f(generating)h(command)f
(mo)q(di\014es)h(v)m(alues)332 1684 y(through)d(a)g(p)q(oin)o(ter)h
(argumen)o(t,)e(no)i(c)o(hange)f(is)h(made)f(to)g(these)g(v)m(alues.)20
b(These)14 b(error)332 1740 y(seman)o(tics)20 b(apply)g(only)g(to)e(GL)
i(errors,)f(not)g(to)g(system)g(errors)f(suc)o(h)i(as)f(memory)332
1797 y(access)14 b(errors.)k(This)d(b)q(eha)o(vior)f(is)g(the)g(curren)
o(t)f(b)q(eha)o(vior;)i(the)e(action)h(of)f(the)h(GL)g(in)332
1853 y(the)h(presence)i(of)d(errors)h(is)g(sub)s(ject)h(to)e(c)o
(hange.)403 1980 y(Three)f(error)f(generation)h(conditions)i(are)d
(implicit)k(in)d(the)h(description)g(of)f(ev)o(ery)332
2037 y(GL)19 b(command.)32 b(First,)20 b(if)f(a)g(command)g(that)g
(requires)h(an)f(en)o(umerated)g(v)m(alue)i(is)332 2093
y(passed)13 b(a)g(sym)o(b)q(olic)h(constan)o(t)e(that)g(is)i(not)e(one)
h(of)g(those)g(sp)q(eci\014ed)i(as)d(allo)o(w)o(able)i(for)332
2149 y(that)i(command,)h(the)f(error)g Fr(INVALID)p 1003
2149 V 15 w(ENUM)f FC(results.)25 b(This)17 b(is)h(the)e(case)h(ev)o
(en)g(if)g(the)332 2206 y(argumen)o(t)f(is)h(a)g(p)q(oin)o(ter)g(to)f
(a)g(sym)o(b)q(olic)i(constan)o(t)e(if)h(that)f(v)m(alue)i(is)f(not)g
(allo)o(w)o(able)332 2262 y(for)e(the)g(giv)o(en)h(command.)j(Second,)d
(if)g(a)f(negativ)o(e)g(n)o(um)o(b)q(er)g(is)h(pro)o(vided)g(where)g
(an)332 2319 y(argumen)o(t)11 b(of)g(t)o(yp)q(e)h Fw(sizei)f
FC(is)h(sp)q(eci\014ed,)i(the)e(error)f Fr(INVALID)p
1385 2319 V 14 w(VALUE)g FC(results.)19 b(Finally)l(,)332
2375 y(if)d(memory)f(is)i(exhausted)f(as)f(a)g(side)i(e\013ect)f(of)f
(the)h(execution)g(of)g(a)f(command,)g(the)332 2432 y(error)f
Fr(OUT)p 512 2432 V 16 w(OF)p 572 2432 V 15 w(MEMORY)g
FC(ma)o(y)g(b)q(e)i(generated.)k(Otherwise)c(errors)e(are)h(generated)g
(only)332 2488 y(for)g(conditions)h(that)f(are)f(explicitly)k(describ)q
(ed)g(in)e(this)f(sp)q(eci\014cation.)p eop
%%Page: 13 22
13 21 bop 120 137 a Fx(2.6.)34 b(BEGIN/END)15 b(P)l(ARADIGM)799
b FC(13)120 286 y Fs(2.6)67 b(Begin/End)23 b(P)n(aradigm)120
391 y FC(In)14 b(the)f(GL,)g(most)f(geometric)h(ob)s(jects)g(are)g(dra)
o(wn)f(b)o(y)h(enclosing)i(a)e(series)g(of)g(co)q(ordi-)120
447 y(nate)j(sets)g(that)f(sp)q(ecify)j(v)o(ertices)e(and)g(optionally)
h(normals,)f(texture)g(co)q(ordinates,)120 504 y(and)e(colors)f(b)q(et)
o(w)o(een)g Fz(Begin)p FC(/)p Fz(End)h FC(pairs.)19 b(There)13
b(are)g(ten)g(geometric)g(ob)s(jects)f(that)120 560 y(are)20
b(dra)o(wn)g(this)h(w)o(a)o(y:)29 b(p)q(oin)o(ts,)21
b(line)h(segmen)o(ts,)f(line)h(segmen)o(t)d(lo)q(ops,)j(separated)120
617 y(line)f(segmen)o(ts,)e(p)q(olygons,)h(triangle)g(strips,)g
(triangle)f(fans,)h(separated)f(triangles,)120 673 y(quadrilateral)e
(strips,)e(and)g(separated)g(quadrilaterals.)191 731
y(Eac)o(h)d(v)o(ertex)g(is)g(sp)q(eci\014ed)j(with)d(t)o(w)o(o,)f
(three,)i(or)e(four)h(co)q(ordinates.)19 b(In)13 b(addition,)120
787 y(a)f Fv(curr)n(ent)h(normal)p FC(,)f Fv(curr)n(ent)h(textur)n(e)g
(c)n(o)n(or)n(dinates)p FC(,)e(and)h Fv(curr)n(ent)h(c)n(olor)f
FC(ma)o(y)f(b)q(e)h(used)120 844 y(in)20 b(pro)q(cessing)f(eac)o(h)g(v)
o(ertex.)30 b(Normals)18 b(are)h(used)g(b)o(y)g(the)g(GL)f(in)i(ligh)o
(ting)g(calcu-)120 900 y(lations;)h(the)e(curren)o(t)g(normal)g(is)h(a)
e(three-dimensional)k(v)o(ector)c(that)g(ma)o(y)g(b)q(e)i(set)120
957 y(b)o(y)14 b(sending)h(three)f(co)q(ordinates)g(that)g(sp)q(ecify)h
(it.)k(T)l(exture)14 b(co)q(ordinates)h(determine)120
1013 y(ho)o(w)g(a)g(texture)g(image)g(is)h(mapp)q(ed)g(on)o(to)e(a)h
(primitiv)o(e.)191 1071 y(A)h(color)g(is)g(asso)q(ciated)g(with)h(eac)o
(h)e(v)o(ertex)h(as)f(it)i(is)f(sp)q(eci\014ed.)24 b(This)16
b Fv(asso)n(ciate)n(d)120 1127 y FC(color)d(is)g(either)g(the)f(curren)
o(t)g(color)h(or)f(a)g(color)g(pro)q(duced)h(b)o(y)g(ligh)o(ting)g(dep)
q(ending)i(on)120 1184 y(whether)i(or)g(not)f(ligh)o(ting)i(is)f
(enabled.)26 b(T)l(exture)17 b(co)q(ordinates)g(are)g(similarly)h
(asso-)120 1240 y(ciated)e(with)g(eac)o(h)f(v)o(ertex.)20
b(Figure)c(2.2)e(summarizes)i(the)f(asso)q(ciation)h(of)e(auxiliary)120
1297 y(data)h(with)g(a)g(transformed)g(v)o(ertex)f(to)h(pro)q(duce)h(a)
f Fv(pr)n(o)n(c)n(esse)n(d)g(vertex)p FC(.)191 1355 y(The)e(curren)o(t)
g(v)m(alues)i(are)e(part)f(of)h(GL)g(state.)19 b(V)l(ertices)14
b(and)f(normals)g(are)g(trans-)120 1411 y(formed,)j(colors)g(ma)o(y)g
(b)q(e)h(a\013ected)e(or)h(replaced)h(b)o(y)g(ligh)o(ting,)g(and)f
(texture)g(co)q(ordi-)120 1468 y(nates)e(are)g(transformed)f(and)h(p)q
(ossibly)h(a\013ected)f(b)o(y)g(a)g(texture)f(co)q(ordinate)i(genera-)
120 1524 y(tion)g(function.)20 b(The)15 b(pro)q(cessing)g(indicated)g
(for)f(eac)o(h)g(curren)o(t)g(v)m(alue)i(is)e(applied)i(for)120
1581 y(eac)o(h)g(v)o(ertex)e(that)h(is)h(sen)o(t)f(to)f(the)h(GL.)191
1638 y(The)e(metho)q(ds)f(b)o(y)h(whic)o(h)g(v)o(ertices,)g(normals,)g
(texture)f(co)q(ordinates,)h(and)g(colors)120 1695 y(are)g(sen)o(t)f
(to)g(the)h(GL,)f(as)h(w)o(ell)g(as)g(ho)o(w)f(normals)g(are)h
(transformed)e(and)i(ho)o(w)f(v)o(ertices)120 1751 y(are)j(mapp)q(ed)h
(to)f(the)g(t)o(w)o(o-dimensional)h(screen,)g(are)e(discussed)j(later.)
191 1809 y(Before)c(a)g(color)h(has)f(b)q(een)i(assigned)f(to)f(a)g(v)o
(ertex,)g(the)g(state)g(required)h(b)o(y)g(a)f(v)o(er-)120
1866 y(tex)i(is)h(the)f(v)o(ertex's)g(co)q(ordinates,)g(the)g(curren)o
(t)g(normal,)g(and)h(the)f(curren)o(t)g(texture)120 1922
y(co)q(ordinates.)37 b(Once)22 b(color)f(has)g(b)q(een)h(assigned,)g
(ho)o(w)o(ev)o(er,)f(the)g(curren)o(t)g(normal)120 1979
y(is)e(no)f(longer)g(needed.)29 b(Because)18 b(color)g(assignmen)o(t)g
(is)g(done)g(v)o(ertex-b)o(y-v)o(ertex,)g(a)120 2035
y(pro)q(cessed)f(v)o(ertex)e(comprises)h(the)g(v)o(ertex's)e(co)q
(ordinates,)i(its)g(assigned)g(color,)g(and)120 2092
y(its)g(texture)f(co)q(ordinates.)191 2149 y(Figure)24
b(2.3)f(sho)o(ws)h(the)g(sequence)h(of)e(op)q(erations)i(that)e(builds)
j(a)d Fv(primitive)120 2206 y FC(\(p)q(oin)o(t,)14 b(line)h(segmen)o
(t,)e(or)g(p)q(olygon\))g(from)g(a)g(sequence)i(of)e(v)o(ertices.)19
b(After)13 b(a)g(primi-)120 2262 y(tiv)o(e)f(is)f(formed,)h(it)f(is)h
(clipp)q(ed)h(to)e(a)g(viewing)h(v)o(olume.)19 b(This)12
b(ma)o(y)e(alter)h(the)g(primitiv)o(e)120 2319 y(b)o(y)18
b(altering)g(v)o(ertex)f(co)q(ordinates,)g(texture)h(co)q(ordinates,)f
(and)h(color.)26 b(In)18 b(the)g(case)120 2375 y(of)e(a)g(p)q(olygon)g
(primitiv)o(e,)h(clipping)i(ma)o(y)c(insert)h(new)g(v)o(ertices)h(in)o
(to)f(the)g(primitiv)o(e.)120 2432 y(The)i(v)o(ertices)f(de\014ning)h
(a)f(primitiv)o(e)i(to)d(b)q(e)i(rasterized)f(ha)o(v)o(e)g(texture)f
(co)q(ordinates)120 2488 y(and)g(color)f(asso)q(ciated)g(with)h(them.)p
eop
%%Page: 14 23
14 22 bop 332 137 a FC(14)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 350 305 1459 2 v 350 1414
2 1109 v 404 379 a
21313290 13214238 2368143 8420065 50849300 38877020 startTexFig
404 379 a
%%BeginDocument: pics/assoc.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Courier-Bold-SHOWISO exch definefont pop
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
matrix currentmatrix
[0 0 0 0 36 408] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[0 0 0 0 36 408] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[112 0 0 80 36 264] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[112 0 0 80 36 392] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[112 0 0 80 36 136] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
229 432 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
148 432 M
210 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
341 304 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
148 304 M
322 304 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
228 408 M
228 504 L
484 504 L
484 456 L
277.091 456 L
277.091 408 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 56 340 292] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 348 296] concat
newpath
0 0 M 0 48 L 100 48 L 100 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
346 294 M 346 346 L 450 346 L 450 294 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 348 296] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
24.723 21.4706 M (lighting) 50.554 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 244 452] concat
newpath
0 0 M 0 48 L 224 48 L 224 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
242 450 M 242 502.471 L 470 502.471 L 470 450 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 244 452] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
62.202 36.4706 M (vertex / normal) 99.596 S
62.608 19.4706 M (transformation) 98.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 36 392] concat
newpath
0 0 M 0 80 L 112 80 L 112 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
34 390 M 34 474 L 150 474 L 150 390 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 36 392] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
23.501 50.913 M (Current) 64.998 S
24.995 28.913 M (Normal) 62.01 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 36 264] concat
newpath
0 0 M 0 80 L 112 80 L 112 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
34 262 M 34 346 L 150 346 L 150 262 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 36 264] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
23.501 50.913 M (Current) 64.998 S
32.501 28.913 M (Color) 46.998 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 36 128] concat
newpath
0 0 M 0 80 L 112 80 L 112 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
34 126 M 34 211.913 L 150 211.913 L 150 126 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 36 128] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
23.501 65.913 M (Current) 64.998 S
23.492 43.913 M (Texture) 65.016 S
24.5 21.913 M (Coords) 63 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
188 515 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
188 548 M
188 534 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
188 520 M
188 252 L
248 252 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
341 332 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
276 432 M
292 432 L
292 332 L
322 332 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
484 480 M
508 480 L
508 252 L
272 252 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
396 347 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
508 400 M
396 400 L
396 366 L
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 56 204 148] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 212 152] concat
newpath
0 0 M 0 48 L 100 48 L 100 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
210 150 M 210 202 L 314 202 L 314 150 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 212 152] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
27.439 21.4706 M (texgen) 45.122 S
setmatrix
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 252 252] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 268 252] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
260 203 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
260 222 M
260 232 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
260 232 M
264 252 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
308 304 M
308 272 L
472 272 L
472 304 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 472 308] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
452 324 M
468 324 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 472 324] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
472 320 M
492 316 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
557 316 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
492 316 M
538 316 L
stroke
grestore
gsave
matrix currentmatrix
[4 0 0 4 508 400] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 508 400] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
matrix currentmatrix
[4 0 0 4 308 304] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 308 304] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
172 176 M
172 132 L
336 132 L
336 164 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 336 168] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
316 184 M
332 184 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 336 184] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
336 180 M
356 176 L
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 56 372 148] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 380 144] concat
newpath
0 0 M 0 48 L 100 48 L 100 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
378 142 M 378 194.471 L 482 194.471 L 482 142 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 380 144] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
26.662 36.4706 M (texture) 46.676 S
28.993 19.4706 M (matrix) 42.014 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
356 176 M
372 176 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 571 269] concat
newpath
0 0 M 0 42 L 98.03 42 L 98.03 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
569 267 M 569 314.913 L 671.03 314.913 L 671.03 267 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 571 269] concat
1 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.913 M (Associated) 96.03 S
29.512 3.91304 M 29.512 3.91304 M (Data) 39.006 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 563 457] concat
newpath
0 0 M 0 42 L 112.016 42 L 112.016 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
561 455 M 561 502.913 L 677.016 502.913 L 677.016 455 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 563 457] concat
1 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.913 M (Transformed) 110.016 S
3.502 3.91304 M 3.502 3.91304 M (Coordinates) 105.012 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
557 276 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
484 176 M
524 176 L
524 276 L
538 276 L
stroke
grestore
gsave
matrix currentmatrix
[132 0 0 116 556 224] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
557 480 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
508 480 M
538 480 L
stroke
grestore
gsave
matrix currentmatrix
[4 0 0 4 508 480] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 508 480] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
matrix currentmatrix
[132 0 0 80 556 440] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 679 353] concat
newpath
0 0 M 0 66 L 93.044 66 L 93.044 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
677 351 M 677 422.913 L 774.044 422.913 L 774.044 351 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 679 353] concat
1 51.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 51.913 M (Processed) 91.044 S
19.009 27.913 M 19.009 27.913 M (Vertex) 55.026 S
31.024 3.91304 M 31.024 3.91304 M (Out) 30.996 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
677 400 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
620 440 M
620 400 L
658 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
677 380 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
620 340 M
620 380 L
658 380 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
229 480 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
188 480 M
210 480 L
stroke
grestore
gsave
matrix currentmatrix
[4 0 0 4 188 480] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 188 480] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 567 231] concat
newpath
0 0 M 0 33 L 111.676 33 L 111.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
565 229 M 565 266.471 L 680.676 266.471 L 680.676 229 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 567 231] concat
1 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 21.4706 M (\(Color & Texture) 109.676 S
12.669 2.47059 M 12.669 2.47059 M (Coordinates\)) 86.338 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 123 549] concat
newpath
0 0 M 0 42 L 128.018 42 L 128.018 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
121 547 M 121 594.913 L 253.018 594.913 L 253.018 547 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 123 549] concat
36.496 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
36.496 27.913 M (Vertex) 55.026 S
1 3.91304 M 1 3.91304 M (Coordinates In) 126.018 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
149 176 M
172 176 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1335 a Fm(Figure)j(2.2.)30 b(Asso)q(ciation)18 b(of)g(curren)o(t)i
(v)n(alues)e(with)g(a)g(v)o(ertex.)32 b(The)18 b(hea)o(vy)h(lined)389
1385 y(b)q(o)o(xes)c(represen)o(t)h(GL)d(state.)p 1807
1414 2 1109 v 350 1416 1459 2 v 350 1625 V 350 2374 2
749 v 404 1700 a
21313290 8312175 4473159 16840130 60453437 38942801 startTexFig
404 1700 a
%%BeginDocument: pics/prim.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
273 512 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
160 512 M
254 512 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 68 455] concat
newpath
0 0 M 0 42 L 93.044 42 L 93.044 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
66 453 M 66 500.913 L 163.044 500.913 L 163.044 453 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 68 455] concat
1 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.913 M (Processed) 91.044 S
11.503 3.91304 M 11.503 3.91304 M (Vertices) 70.038 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
273 448 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
160 448 M
254 448 L
stroke
grestore
gsave
matrix currentmatrix
[160 0 0 192 272 384] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 276 421] concat
newpath
0 0 M 0 114 L 148.034 114 L 148.034 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
274 419 M 274 538.913 L 426.034 538.913 L 426.034 419 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 276 421] concat
49.015 99.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
49.015 99.913 M (Point,) 50.004 S
1 75.913 M 1 75.913 M (Line Segment, or) 146.034 S
38.512 51.913 M 38.512 51.913 M (Polygon) 71.01 S
30.007 27.913 M 30.007 27.913 M (\(Primitive\)) 88.02 S
31.501 3.91304 M 31.501 3.91304 M (Assembly) 85.032 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
296 256 M
408 256 L
408 336 L
296 336 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
352 385 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
352 336 M
352 366 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 307 269] concat
newpath
0 0 M 0 42 L 91.01 42 L 91.01 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
305 267 M 305 314.913 L 400.01 314.913 L 400.01 267 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 307 269] concat
1 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.913 M (Begin/End) 89.01 S
23.5 3.91304 M 23.5 3.91304 M (State) 44.01 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
545 512 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
432 512 M
526 512 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
545 448 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
432 448 M
526 448 L
stroke
grestore
gsave
matrix currentmatrix
[160 0 0 100 544 372] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[160 0 0 104 544 488] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 559 490] concat
newpath
0 0 M 0 90 L 120.026 90 L 120.026 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
557 488 M 557 583.913 L 681.026 583.913 L 681.026 488 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 559 490] concat
3.007 75.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
3.007 75.913 M (Point culling;) 114.012 S
1 51.913 M 1 51.913 M (Line Segment) 118.026 S
10.504 27.913 M 10.504 27.913 M ( or Polygon) 99.018 S
24.013 3.91304 M 24.013 3.91304 M (Clipping) 72 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 573 400] concat
newpath
0 0 M 0 42 L 99.038 42 L 99.038 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
571 398 M 571 445.913 L 674.038 445.913 L 674.038 398 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 573 400] concat
26.02 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
26.02 27.913 M (Color) 46.998 S
1 3.91304 M 1 3.91304 M (Processing) 97.038 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
817 512 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
704 512 M
798 512 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
817 448 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
704 448 M
798 448 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 803 469] concat
newpath
0 0 M 0 24 L 115.022 24 L 115.022 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
801 467 M 801 495 L 920.022 495 L 920.022 467 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 803 469] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Rasterization) 113.022 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 165 513] concat
newpath
0 0 M 0 19 L 77.474 19 L 77.474 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
163 511 M 163 534 L 244.474 534 L 244.474 511 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 165 513] concat
/Helvetica-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Coordinates) 75.474 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 156 429] concat
newpath
0 0 M 0 33 L 80.474 33 L 80.474 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
154 427 M 154 464.471 L 238.474 464.471 L 238.474 427 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 156 429] concat
11 21.4706 M /Helvetica-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
11 21.4706 M (Associated) 68.474 S
30.453 2.47059 M 30.453 2.47059 M (Data) 29.568 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 2345 a Fm(Figure)h(2.3.)j(Primitiv)o(e)12 b(assem)o(bly)h(and)h
(pro)q(cessing.)p 1807 2374 2 749 v 350 2376 1459 2 v
eop
%%Page: 15 24
15 23 bop 120 137 a Fx(2.6.)34 b(BEGIN/END)15 b(P)l(ARADIGM)799
b FC(15)120 286 y Fl(2.6.1)56 b(Begin)17 b(and)j(End)e(Ob)s(jects)120
381 y Fz(Begin)d FC(and)f Fz(End)h FC(require)g(one)f(state)f(v)m
(ariable)i(with)f(elev)o(en)i(v)m(alues:)k(one)14 b(v)m(alue)h(for)120
437 y(eac)o(h)f(of)e(the)i(ten)f(p)q(ossible)i Fz(Begin)p
FC(/)p Fz(End)f FC(ob)s(jects,)f(and)g(one)h(other)e(v)m(alue)j
(indicating)120 494 y(that)e(no)g Fz(Begin)p FC(/)p Fz(End)i
FC(ob)s(ject)e(is)h(b)q(eing)g(pro)q(cessed.)20 b(The)14
b(t)o(w)o(o)e(relev)m(an)o(t)i(commands)120 550 y(are)234
661 y Fw(void)30 b Fz(Begin)p FC(\()h Fw(enum)14 b Fv(mo)n(de)i
FC(\))e Fw(;)234 718 y(void)30 b Fz(End)p FC(\()g Fw(void)39
b FC(\))14 b Fw(;)120 829 y FC(There)j(is)h(no)e(limit)i(on)f(the)g(n)o
(um)o(b)q(er)g(of)f(v)o(ertices)h(that)f(ma)o(y)g(b)q(e)i(sp)q
(eci\014ed)g(b)q(et)o(w)o(een)120 886 y(a)d Fz(Begin)h
FC(and)g(an)f Fz(End)p FC(.)191 946 y Fz(P)o(oin)o(ts.)k
FC(A)14 b(series)h(of)f(individual)k(p)q(oin)o(ts)c(ma)o(y)g(b)q(e)h
(sp)q(eci\014ed)i(b)o(y)d(calling)i Fz(Begin)120 1003
y FC(with)j(an)f(argumen)o(t)f(v)m(alue)j(of)e Fr(POINTS)p
FC(.)e(No)i(sp)q(ecial)i(state)d(need)j(b)q(e)e(k)o(ept)g(b)q(et)o(w)o
(een)120 1059 y Fz(Begin)i FC(and)g Fz(End)f FC(in)h(this)g(case,)g
(since)g(eac)o(h)f(p)q(oin)o(t)h(is)g(indep)q(enden)o(t)h(of)e
(previous)120 1116 y(and)d(follo)o(wing)g(p)q(oin)o(ts.)191
1177 y Fz(Line)e(Strips.)19 b FC(A)11 b(series)h(of)f(one)h(or)e(more)h
(connected)i(line)g(segmen)o(ts)e(is)h(sp)q(eci\014ed)120
1233 y(b)o(y)19 b(enclosing)h(a)f(series)g(of)g(t)o(w)o(o)e(or)i(more)f
(endp)q(oin)o(ts)i(within)g(a)f Fz(Begin)p FC(/)p Fz(End)g
FC(pair)120 1290 y(when)c Fz(Begin)g FC(is)f(called)i(with)f
Fr(LINE)p 749 1290 14 2 v 14 w(STRIP)p FC(.)e(In)i(this)f(case,)g(the)h
(\014rst)e(v)o(ertex)h(sp)q(eci\014es)120 1346 y(the)22
b(\014rst)g(segmen)o(t's)f(start)g(p)q(oin)o(t)h(while)h(the)f(second)h
(v)o(ertex)e(sp)q(eci\014es)j(the)e(\014rst)120 1402
y(segmen)o(t's)c(endp)q(oin)o(t)i(and)f(the)g(second)h(segmen)o(t's)e
(start)f(p)q(oin)o(t.)31 b(In)20 b(general,)g(the)120
1459 y Fy(i)p FC(th)14 b(v)o(ertex)f(\(for)g Fy(i)g(>)g
FC(1\))g(sp)q(eci\014es)j(the)e(b)q(eginning)i(of)e(the)g
Fy(i)p FC(th)f(segmen)o(t)h(and)g(the)g(end)120 1515
y(of)h(the)h Fy(i)10 b FB(\000)g FC(1st.)20 b(The)c(last)f(v)o(ertex)g
(sp)q(eci\014es)j(the)d(end)h(of)f(the)h(last)f(segmen)o(t.)20
b(If)c(only)120 1572 y(one)j(v)o(ertex)e(is)i(sp)q(eci\014ed)h(b)q(et)o
(w)o(een)e(the)g Fz(Begin)p FC(/)p Fz(End)h FC(pair,)g(then)f(no)g
(primitiv)o(e)h(is)120 1628 y(generated.)191 1689 y(The)g(required)g
(state)f(consists)h(of)f(the)g(pro)q(cessed)h(v)o(ertex)f(pro)q(duced)i
(from)e(the)120 1746 y(last)g(v)o(ertex)e(that)h(w)o(as)f(sen)o(t)h
(\(so)g(that)f(a)h(line)i(segmen)o(t)e(can)g(b)q(e)h(generated)f(from)f
(it)120 1802 y(to)f(the)f(curren)o(t)h(v)o(ertex\),)f(and)h(a)f(b)q(o)q
(olean)i(\015ag)e(indicating)j(if)e(the)g(curren)o(t)g(v)o(ertex)f(is)
120 1858 y(the)i(\014rst)e(v)o(ertex.)191 1919 y Fz(Line)h(Lo)q(ops.)20
b FC(Line)14 b(lo)q(ops,)f(sp)q(eci\014ed)h(with)f(the)g
Fr(LINE)p 1148 1919 V 14 w(LOOP)f FC(argumen)o(t)g(v)m(alue)h(to)120
1976 y Fz(Begin)p FC(,)h(are)f(the)h(same)f(as)g(line)i(strips)e
(except)h(that)f(a)g(\014nal)h(segmen)o(t)f(is)h(added)f(from)120
2032 y(the)i(\014nal)f(sp)q(eci\014ed)j(v)o(ertex)c(to)h(the)g(\014rst)
g(v)o(ertex.)19 b(The)14 b(additional)i(state)d(consists)h(of)120
2089 y(the)i(pro)q(cessed)g(\014rst)e(v)o(ertex.)191
2149 y Fz(Separate)21 b(Lines.)26 b FC(Individual)21
b(line)e(segmen)o(ts,)e(eac)o(h)g(sp)q(eci\014ed)j(b)o(y)d(a)g(pair)h
(of)120 2206 y(v)o(ertices,)i(are)f(generated)g(b)o(y)g(surrounding)g
(v)o(ertex)g(pairs)g(with)g Fz(Begin)h FC(and)f Fz(End)120
2262 y FC(when)h(the)f(v)m(alue)h(of)e(the)h(argumen)o(t)f(to)g
Fz(Begin)i FC(is)f Fr(LINES)p FC(.)e(In)j(this)f(case,)g(the)g(\014rst)
120 2319 y(t)o(w)o(o)c(v)o(ertices)i(b)q(et)o(w)o(een)g(a)f
Fz(Begin)h FC(and)g Fz(End)g FC(pair)f(de\014ne)i(the)e(\014rst)g
(segmen)o(t,)g(with)120 2375 y(subsequen)o(t)g(pairs)f(of)f(v)o
(ertices)h(eac)o(h)g(de\014ning)h(one)f(more)f(segmen)o(t.)20
b(If)15 b(the)f(n)o(um)o(b)q(er)120 2432 y(of)h(sp)q(eci\014ed)j(v)o
(ertices)d(is)h(o)q(dd,)g(then)g(the)f(last)g(one)h(is)g(ignored.)21
b(The)15 b(state)g(required)120 2488 y(is)i(the)g(same)f(as)g(for)g
(lines)i(but)f(it)g(is)g(used)g(di\013eren)o(tly:)23
b(a)16 b(v)o(ertex)h(holding)h(the)e(\014rst)p eop
%%Page: 16 25
16 24 bop 332 137 a FC(16)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)332 286 y FC(v)o(ertex)j(of)g(the)h(curren)o
(t)f(segmen)o(t,)h(and)g(a)f(b)q(o)q(olean)i(\015ag)e(indicating)j
(whether)d(the)332 343 y(curren)o(t)c(v)o(ertex)g(is)h(o)q(dd)f(or)g
(ev)o(en)g(\(a)g(segmen)o(t)g(start)f(or)g(end\).)403
399 y Fz(P)o(olygons.)k FC(A)13 b(p)q(olygon)g(is)g(describ)q(ed)i(b)o
(y)d(sp)q(ecifying)j(its)e(b)q(oundary)g(as)f(a)h(series)332
456 y(of)19 b(line)j(segmen)o(ts.)33 b(When)20 b Fz(Begin)g
FC(is)g(called)i(with)e Fr(POLYGON)p FC(,)e(the)i(b)q(ounding)h(line)
332 512 y(segmen)o(ts)f(are)g(sp)q(eci\014ed)j(in)e(the)f(same)g(w)o(a)
o(y)g(as)g(line)i(lo)q(ops.)36 b(Dep)q(ending)22 b(on)e(the)332
569 y(curren)o(t)c(state)f(of)h(the)g(GL,)g(a)g(p)q(olygon)h(ma)o(y)e
(b)q(e)i(rendered)g(in)g(one)f(of)g(sev)o(eral)h(w)o(a)o(ys)332
625 y(suc)o(h)f(as)f(outlining)i(its)e(b)q(order)h(or)e(\014lling)k
(its)d(in)o(terior.)21 b(A)15 b(p)q(olygon)h(describ)q(ed)h(with)332
682 y(few)o(er)e(than)g(three)g(v)o(ertices)h(do)q(es)f(not)g(generate)
g(a)g(primitiv)o(e.)403 738 y(Only)h(con)o(v)o(ex)f(p)q(olygons)h(are)f
(guaran)o(teed)g(to)g(b)q(e)h(dra)o(wn)f(correctly)g(b)o(y)g(the)h(GL.)
332 795 y(If)h(a)g(sp)q(eci\014ed)i(p)q(olygon)f(is)g(noncon)o(v)o(ex)f
(when)g(pro)s(jected)g(on)o(to)f(the)i(windo)o(w,)f(then)332
851 y(the)g(rendered)g(p)q(olygon)g(need)h(only)f(lie)h(within)g(the)e
(con)o(v)o(ex)h(h)o(ull)h(of)e(the)h(pro)s(jected)332
907 y(v)o(ertices)f(de\014ning)g(its)g(b)q(oundary)l(.)403
964 y(The)d(state)e(required)j(to)e(supp)q(ort)h(p)q(olygons)g
(consists)g(of)f(at)g(least)g(t)o(w)o(o)g(pro)q(cessed)332
1020 y(v)o(ertices)f(\(more)f(than)h(t)o(w)o(o)f(are)g(nev)o(er)h
(required,)i(although)e(an)g(implemen)o(tation)h(ma)o(y)332
1077 y(use)j(more\);)e(this)i(is)g(b)q(ecause)g(a)f(con)o(v)o(ex)g(p)q
(olygon)h(can)g(b)q(e)g(rasterized)g(as)f(its)g(v)o(ertices)332
1133 y(arriv)o(e,)e(b)q(efore)g(all)g(of)f(them)g(ha)o(v)o(e)g(b)q(een)
i(sp)q(eci\014ed.)21 b(The)12 b(order)f(of)g(the)g(v)o(ertices)h(is)g
(sig-)332 1190 y(ni\014can)o(t)j(in)f(ligh)o(ting)h(and)f(p)q(olygon)g
(rasterization)g(\(see)g(sections)g(2.13.1)e(and)i(3.5.1\).)403
1246 y Fz(T)l(riangle)h(strips.)k FC(A)13 b(triangle)g(strip)g(is)h(a)e
(series)i(of)e(triangles)i(connected)f(along)332 1303
y(shared)j(edges.)k(A)15 b(triangle)h(strip)g(is)g(sp)q(eci\014ed)h(b)o
(y)f(giving)g(a)f(series)h(of)f(de\014ning)i(v)o(er-)332
1359 y(tices)c(b)q(et)o(w)o(een)f(a)g Fz(Begin)p FC(/)p
Fz(End)h FC(pair)f(when)h Fz(Begin)f FC(is)h(called)h(with)e
Fr(TRIANGLE)p 1694 1359 14 2 v 14 w(STRIP)p FC(.)332
1416 y(In)g(this)h(case,)f(the)g(\014rst)f(three)h(v)o(ertices)g
(de\014ne)h(the)f(\014rst)f(triangle)h(\(and)g(their)g(order)g(is)332
1472 y(signi\014can)o(t,)k(just)e(as)h(for)f(p)q(olygons\).)20
b(Eac)o(h)15 b(subsequen)o(t)h(v)o(ertex)e(de\014nes)i(a)f(new)g(tri-)
332 1528 y(angle)f(using)g(that)f(p)q(oin)o(t)h(along)f(with)h(t)o(w)o
(o)e(v)o(ertices)h(from)g(the)g(previous)i(triangle.)k(A)332
1585 y Fz(Begin)p FC(/)p Fz(End)e FC(pair)g(enclosing)h(few)o(er)e
(than)g(three)g(v)o(ertices,)h(when)f Fr(TRIANGLE)p 1706
1585 V 15 w(STRIP)332 1641 y FC(has)f(b)q(een)h(supplied)i(to)d
Fz(Begin)p FC(,)g(pro)q(duces)h(no)f(primitiv)o(e.)22
b(See)15 b(Figure)h(2.4.)403 1698 y(The)e(state)f(required)i(to)e(supp)
q(ort)h(triangle)h(strips)f(consists)g(of)f(a)h(\015ag)g(indicating)332
1754 y(if)e(the)g(\014rst)f(triangle)h(has)f(b)q(een)i(completed,)g(t)o
(w)o(o)d(stored)h(pro)q(cessed)h(v)o(ertices,)g(\(called)332
1811 y(v)o(ertex)g(A)h(and)f(v)o(ertex)g(B\),)g(and)h(a)f(one)h(bit)g
(p)q(oin)o(ter)g(indicating)h(whic)o(h)g(stored)e(v)o(ertex)332
1867 y(will)24 b(b)q(e)g(replaced)f(with)g(the)g(next)f(v)o(ertex.)42
b(After)22 b(a)g Fz(Begin)p Fw(\()p Fr(TRIANGLE)p 1669
1867 V 15 w(STRIP)p Fw(\))p FC(,)332 1924 y(the)c(p)q(oin)o(ter)g(is)g
(initialized)j(to)c(p)q(oin)o(t)h(to)f(v)o(ertex)g(A.)g(Eac)o(h)g(v)o
(ertex)h(sen)o(t)f(b)q(et)o(w)o(een)h(a)332 1980 y Fz(Begin)p
FC(/)p Fz(End)d FC(pair)f(toggles)f(the)g(p)q(oin)o(ter.)20
b(Therefore,)14 b(the)f(\014rst)g(v)o(ertex)h(is)g(stored)f(as)332
2037 y(v)o(ertex)j(A,)h(the)g(second)g(stored)f(as)h(v)o(ertex)f(B,)h
(the)f(third)i(stored)e(as)g(v)o(ertex)h(A,)f(and)332
2093 y(so)e(on.)20 b(An)o(y)14 b(v)o(ertex)g(after)g(the)g(second)h
(one)g(sen)o(t)f(forms)g(a)g(triangle)h(from)f(v)o(ertex)g(A,)332
2149 y(v)o(ertex)h(B,)g(and)g(the)g(curren)o(t)h(v)o(ertex)e(\(in)i
(that)f(order\).)403 2206 y Fz(T)l(riangle)20 b(fans.)25
b FC(A)16 b(triangle)i(fan)e(is)i(the)e(same)h(as)f(a)h(triangle)g
(strip)g(with)g(one)332 2262 y(exception:)29 b(eac)o(h)19
b(v)o(ertex)g(after)f(the)h(\014rst)g(alw)o(a)o(ys)f(replaces)i(v)o
(ertex)f(B)g(of)g(the)g(t)o(w)o(o)332 2319 y(stored)e(v)o(ertices.)25
b(The)17 b(v)o(ertices)g(of)g(a)f(triangle)i(fan)f(are)f(enclosed)i(b)q
(et)o(w)o(een)g Fz(Begin)332 2375 y FC(and)d Fz(End)h
FC(when)g(the)f(v)m(alue)h(of)f(the)g(argumen)o(t)g(to)f
Fz(Begin)i FC(is)g Fr(TRIANGLE)p 1602 2375 V 14 w(FAN)p
FC(.)403 2432 y Fz(Separate)22 b(T)l(riangles.)32 b FC(Separate)19
b(triangles)g(are)g(sp)q(eci\014ed)i(b)o(y)e(placing)i(v)o(er-)332
2488 y(tices)e(b)q(et)o(w)o(een)g Fz(Begin)g FC(and)g
Fz(End)g FC(when)f(the)h(v)m(alue)h(of)e(the)g(argumen)o(t)g(to)g
Fz(Begin)p eop
%%Page: 17 26
17 25 bop 120 137 a Fx(2.6.)34 b(BEGIN/END)15 b(P)l(ARADIGM)799
b FC(17)p 139 242 1459 2 v 139 1109 2 867 v 193 317 a
21313290 7033383 4670504 26641612 38745456 38219202 startTexFig
193 317 a
%%BeginDocument: pics/triangles.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
80 561 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
80 464 M
80 550 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
144.555 463.168 translate
-56.3099 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
80 560 M
138.453 472.32 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
79 464 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
144 464 M
90 464 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
87.4453 560.832 translate
123.69 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
152 464 M
93.547 551.68 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
153 560 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
88 560 M
142 560 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
152 463 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
152 560 M
152 474 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
160 565 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
160 464 M
160 554 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
224.539 463.158 translate
-57.3808 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
160 564 M
218.609 472.423 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
159 464 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
224 464 M
170 464 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
288 561 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
288 464 M
288 550 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
336.949 543.684 translate
-18.4349 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
288 560 M
326.513 547.162 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
287.486 463.143 translate
-120.964 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
336 544 M
293.145 472.575 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
344.514 544.857 translate
59.0362 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
296 464 M
338.855 535.425 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
372.659 507.247 translate
-48.8141 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
344 540 M
365.415 515.526 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
295.135 463.499 translate
-149.931 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
372 508 M
304.654 469.01 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
380.862 504.507 translate
30.4655 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
312 464 M
371.381 498.93 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
307.021 463.794 translate
-168.111 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
384 480 M
317.785 466.06 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
384.316 479.051 translate
-71.565 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
376 504 M
380.838 489.487 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
448 561 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
448 464 M
448 550 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
512.555 463.168 translate
-56.3099 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
448 560 M
506.453 472.32 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
447 464 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
512 464 M
458 464 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
560.707 479.293 translate
-45 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
512 528 M
552.929 487.071 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
576.243 544.97 translate
75.9638 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
560 480 M
573.575 534.299 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
511.03 527.757 translate
-165.964 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
576 544 M
521.701 530.425 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 131 405] concat
newpath
0 0 M 0 24 L 23.996 24 L 23.996 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
129 403 M 129 431 L 156.996 431 L 156.996 403 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 131 405] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (\(a\)) 21.996 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 315 405] concat
newpath
0 0 M 0 24 L 24.986 24 L 24.986 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
313 403 M 313 431 L 341.986 431 L 341.986 403 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 315 405] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (\(b\)) 22.986 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 511 405] concat
newpath
0 0 M 0 24 L 23.996 24 L 23.996 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
509 403 M 509 431 L 536.996 431 L 536.996 403 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 511 405] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (\(c\)) 21.996 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 71 442] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
69 440 M 69 463 L 82.784 463 L 82.784 440 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 71 442] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (1) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 71 558] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
69 556 M 69 579 L 82.784 579 L 82.784 556 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 71 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (2) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 147 442] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
145 440 M 145 463 L 158.784 463 L 158.784 440 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 147 442] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (3) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 155 562] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
153 560 M 153 583 L 166.784 583 L 166.784 560 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 155 562] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (4) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 223 442] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
221 440 M 221 463 L 234.784 463 L 234.784 440 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 223 442] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (5) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 279 446] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
277 444 M 277 467 L 290.784 467 L 290.784 444 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 279 446] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (1) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 279 558] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
277 556 M 277 579 L 290.784 579 L 290.784 556 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 279 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (2) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 339 542] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
337 540 M 337 563 L 350.784 563 L 350.784 540 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 339 542] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (3) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 375 502] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
373 500 M 373 523 L 386.784 523 L 386.784 500 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 375 502] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (4) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 387 462] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
385 460 M 385 483 L 398.784 483 L 398.784 460 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 387 462] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (5) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 439 442] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
437 440 M 437 463 L 450.784 463 L 450.784 440 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 439 442] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (1) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 439 558] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
437 556 M 437 579 L 450.784 579 L 450.784 556 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 439 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (2) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 511 442] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
509 440 M 509 463 L 522.784 463 L 522.784 440 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 511 442] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (3) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 499 522] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
497 520 M 497 543 L 510.784 543 L 510.784 520 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 499 522] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (4) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 559 458] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
557 456 M 557 479 L 570.784 479 L 570.784 456 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 559 458] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (5) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 579 542] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
577 540 M 577 563 L 590.784 563 L 590.784 540 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 579 542] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (6) 7.784 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 881 a Fm(Figure)10 b(2.4.)16 b(\(a\))11 b(A)f(triangle)g(strip.)17
b(\(b\))11 b(A)g(triangle)e(fan.)17 b(\(c\))11 b(Indep)q(enden)o(t)h
(triangles.)178 931 y(The)k(n)o(um)o(b)q(ers)f(giv)o(e)h(the)g
(sequencing)h(of)f(the)g(v)o(ertices)h(b)q(et)o(w)o(een)h
Fk(Begin)c Fm(and)i Fk(End)p Fm(.)178 980 y(Note)i(that)g(in)g(\(a\))g
(and)g(\(b\))g(triangle)f(edge)i(ordering)f(is)g(determined)g(b)o(y)g
(the)h(\014rst)178 1030 y(triangle,)13 b(while)g(in)g(\(c\))i(the)g
(order)f(of)g(eac)o(h)g(triangle's)f(edges)i(is)f(indep)q(enden)o(t)i
(of)d(the)178 1080 y(other)h(triangles.)p 1595 1109 2
867 v 139 1111 1459 2 v 120 1294 a FC(is)j Fr(TRIANGLES)p
FC(.)d(In)j(this)g(case,)g(The)f(3)p Fy(i)10 b FC(+)i(1st,)j(3)p
Fy(i)c FC(+)g(2nd,)16 b(and)h(3)p Fy(i)10 b FC(+)h(3rd)17
b(v)o(ertices)f(\(in)120 1350 y(that)e(order\))f(determine)j(a)d
(triangle)i(for)f(eac)o(h)g Fy(i)e FC(=)h(0)p Fy(;)8
b FC(1)p Fy(;)g(:)g(:)g(:)t(;)g(n)f FB(\000)i FC(1,)k(where)i(there)f
(are)120 1407 y(3)p Fy(n)6 b FC(+)g Fy(k)14 b FC(v)o(ertices)f(b)q(et)o
(w)o(een)g(the)g Fz(Begin)h FC(and)f Fz(End)p FC(.)20
b Fy(k)14 b FC(is)f(either)h(0,)e(1,)h(or)f(2;)h(if)h
Fy(k)g FC(is)f(not)120 1463 y(zero,)k(the)g(\014nal)h
Fy(k)g FC(v)o(ertices)g(are)e(ignored.)26 b(F)l(or)16
b(eac)o(h)h(triangle,)h(v)o(ertex)f(A)g(is)g(v)o(ertex)120
1520 y(3)p Fy(i)d FC(and)h(v)o(ertex)f(B)h(is)g(v)o(ertex)f(3)p
Fy(i)8 b FC(+)h(1.)19 b(Otherwise,)c(separate)f(triangles)h(are)f(the)h
(same)120 1576 y(as)g(a)g(triangle)h(strip.)191 1635
y(The)g(rules)g(giv)o(en)g(for)f(p)q(olygons)h(also)f(apply)h(to)f(eac)
o(h)h(triangle)g(generated)f(from)120 1691 y(a)g(triangle)h(strip,)f
(triangle)h(fan)f(or)g(from)f(separate)h(triangles.)191
1750 y Fz(Quadrilateral)23 b(\(quad\))d(strips.)27 b
FC(Quad)18 b(strips)f(generate)h(a)f(series)h(of)f(edge-)120
1806 y(sharing)22 b(quadrilaterals)g(from)f(v)o(ertices)h(app)q(earing)
g(b)q(et)o(w)o(een)g Fz(Begin)g FC(and)g Fz(End)p FC(,)120
1863 y(when)15 b Fz(Begin)f FC(is)h(called)g(with)f Fr(QUAD)p
747 1863 14 2 v 15 w(STRIP)p FC(.)f(If)h(the)g Fy(m)g
FC(v)o(ertices)g(b)q(et)o(w)o(een)g(the)g Fz(Begin)120
1919 y FC(and)f Fz(End)f FC(are)g Fy(v)405 1926 y Fq(1)425
1919 y Fy(;)c(:)g(:)g(:)d(;)j(v)549 1926 y Fu(m)581 1919
y FC(,)13 b(where)f Fy(v)757 1926 y Fu(j)788 1919 y FC(is)h(the)f
Fy(j)s FC(th)g(sp)q(eci\014ed)i(v)o(ertex,)e(then)h(quad)f
Fy(i)g FC(has)120 1976 y(v)o(ertices)19 b(\(in)f(order\))g
Fy(v)523 1983 y Fq(2)p Fu(i)554 1976 y FC(,)h Fy(v)608
1983 y Fq(2)p Fu(i)p Fq(+1)684 1976 y FC(,)g Fy(v)738
1983 y Fq(2)p Fu(i)p Fq(+3)815 1976 y FC(,)f(and)g Fy(v)959
1983 y Fq(2)p Fu(i)p Fq(+2)1054 1976 y FC(with)g Fy(i)f
FC(=)h(0)p Fy(;)8 b(:)g(:)g(:)t(;)g FB(b)p Fy(m=)p FC(2)p
FB(c)p FC(.)27 b(The)120 2032 y(state)14 b(required)i(is)f(th)o(us)g
(three)g(pro)q(cessed)g(v)o(ertices,)g(to)f(store)g(the)h(last)g(t)o(w)
o(o)e(v)o(ertices)120 2089 y(of)18 b(the)h(previous)g(quad)f(along)h
(with)g(the)f(third)h(v)o(ertex)f(\(the)g(\014rst)g(new)h(v)o(ertex\))e
(of)120 2145 y(the)d(curren)o(t)f(quad,)g(a)g(\015ag)g(to)g(indicate)i
(when)f(the)f(\014rst)g(quad)h(has)f(b)q(een)h(completed,)120
2202 y(and)i(a)f(one-bit)h(coun)o(ter)f(to)f(coun)o(t)h(mem)o(b)q(ers)h
(of)e(a)h(v)o(ertex)g(pair.)20 b(See)c(Figure)f(2.5.)191
2260 y(A)20 b(quad)g(strip)g(with)h(few)o(er)e(than)h(four)g(v)o
(ertices)g(generates)g(no)g(primitiv)o(e.)35 b(If)120
2317 y(the)13 b(n)o(um)o(b)q(er)g(of)g(v)o(ertices)g(sp)q(eci\014ed)i
(for)d(a)g(quadrilateral)i(strip)f(b)q(et)o(w)o(een)g
Fz(Begin)h FC(and)120 2373 y Fz(End)i FC(is)g(o)q(dd,)f(the)g(\014nal)h
(v)o(ertex)f(is)h(ignored.)191 2432 y Fz(Separate)j(Quadrilaterals)e
FC(Separate)f(quads)g(are)f(just)h(lik)o(e)h(quad)f(strips)f(ex-)120
2488 y(cept)e(that)g(eac)o(h)f(group)h(of)f(four)h(v)o(ertices,)g(the)g
(4)p Fy(j)7 b FC(+)e(1st,)13 b(the)g(4)p Fy(j)7 b FC(+)e(2nd,)14
b(the)e(4)p Fy(j)c FC(+)d(3rd,)p eop
%%Page: 18 27
18 26 bop 332 137 a FC(18)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 350 242 1459 2 v 350 924
2 682 v 554 317 a
16577003 6465030 3617996 24799723 31641026 35851059 startTexFig
554 317 a
%%BeginDocument: pics/quads.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
64 529 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
64 448 M
64 518 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
129 528 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
64 528 M
118 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
128 447 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
128 528 M
128 458 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
63 448 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
128 448 M
74 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
136 529 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
136 448 M
136 518 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
201 528 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
136 528 M
190 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
200 447 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
200 528 M
200 458 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
135 448 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
200 448 M
146 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
304 529 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
304 448 M
304 518 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
369 528 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
304 528 M
358 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
368 447 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
368 528 M
368 458 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
303 448 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
368 448 M
314 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
404 529 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
404 448 M
404 518 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
469 528 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
404 528 M
458 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
468 447 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
468 528 M
468 458 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
403 448 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -12 -3 L -12 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
468 448 M
414 448 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 426] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 424 M 57 447 L 70.784 447 L 70.784 424 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 426] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (1) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 55 526] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
53 524 M 53 547 L 66.784 547 L 66.784 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 55 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (2) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 127 426] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
125 424 M 125 447 L 138.784 447 L 138.784 424 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 127 426] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (3) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 127 526] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
125 524 M 125 547 L 138.784 547 L 138.784 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 127 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (4) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 203 430] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
201 428 M 201 451 L 214.784 451 L 214.784 428 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 203 430] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (5) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 199 526] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
197 524 M 197 547 L 210.784 547 L 210.784 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 199 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (6) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 299 430] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
297 428 M 297 451 L 310.784 451 L 310.784 428 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 299 430] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (1) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 299 526] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
297 524 M 297 547 L 310.784 547 L 310.784 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 299 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (2) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 367 526] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
365 524 M 365 547 L 378.784 547 L 378.784 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 367 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (3) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 367 430] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
365 428 M 365 451 L 378.784 451 L 378.784 428 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 367 430] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (4) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 395 430] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
393 428 M 393 451 L 406.784 451 L 406.784 428 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 395 430] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (5) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 395 526] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
393 524 M 393 547 L 406.784 547 L 406.784 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 395 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (6) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 467 526] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
465 524 M 465 547 L 478.784 547 L 478.784 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 467 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (7) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 471 430] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
469 428 M 469 451 L 482.784 451 L 482.784 428 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 471 430] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (8) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 119 377] concat
newpath
0 0 M 0 24 L 23.996 24 L 23.996 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
117 375 M 117 403 L 144.996 403 L 144.996 375 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 119 377] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (\(a\)) 21.996 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 375 377] concat
newpath
0 0 M 0 24 L 24.986 24 L 24.986 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
373 375 M 373 403 L 401.986 403 L 401.986 375 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 375 377] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (\(b\)) 22.986 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 845 a Fm(Figure)e(2.5.)j(\(a\))d(A)g(quad)f(strip.)19
b(\(b\))14 b(Indep)q(enden)o(t)i(quads.)i(The)c(n)o(um)o(b)q(ers)f(giv)
o(e)h(the)389 895 y(sequencing)h(of)f(the)g(v)o(ertices)h(b)q(et)o(w)o
(een)h Fk(Begin)c Fm(and)i Fk(End)p Fm(.)p 1807 924 2
682 v 350 926 1459 2 v 332 1097 a FC(and)j(the)f(4)p
Fy(j)d FC(+)e(4th,)16 b(generate)g(a)g(single)h(quad,)g(for)e
Fy(j)i FC(=)e(0)p Fy(;)8 b FC(1)p Fy(;)g(:)g(:)f(:)t(;)h(n)j
FB(\000)g FC(1.)23 b(The)16 b(total)332 1153 y(n)o(um)o(b)q(er)g(of)g
(v)o(ertices)g(b)q(et)o(w)o(een)g Fz(Begin)h FC(and)f
Fz(End)g FC(is)h(4)p Fy(n)10 b FC(+)h Fy(k)q FC(,)16
b(where)g(0)d FB(\024)h Fy(k)h FB(\024)f FC(3;)i(if)332
1210 y Fy(k)g FC(is)f(not)f(zero,)h(the)g(\014nal)g Fy(k)h
FC(v)o(ertices)f(are)f(ignored.)21 b(Separate)14 b(quads)h(are)f
(generated)332 1266 y(b)o(y)h(calling)i Fz(Begin)f FC(with)g(the)f
(argumen)o(t)f(v)m(alue)j Fr(QUADS)p FC(.)403 1323 y(The)12
b(rules)h(giv)o(en)g(for)f(p)q(olygons)g(also)h(apply)g(to)e(eac)o(h)i
(quad)f(generated)g(in)h(a)f(quad)332 1379 y(strip)k(or)e(from)h
(separate)f(quads.)332 1499 y Fl(2.6.2)55 b(P)n(olygon)19
b(Edges)332 1585 y FC(Eac)o(h)c(edge)g(of)f(eac)o(h)h(primitiv)o(e)h
(generated)f(from)f(a)g(p)q(olygon,)h(triangle)h(strip,)e(trian-)332
1641 y(gle)k(fan,)h(separate)e(triangle)h(set,)g(quadrilateral)h
(strip,)g(or)e(separate)g(quadrilateral)332 1698 y(set,)23
b(is)f(\015agged)g(as)f(either)h Fv(b)n(oundary)g FC(or)g
Fv(non-b)n(oundary)p FC(.)39 b(These)22 b(classi\014cations)332
1754 y(are)f(used)h(during)g(p)q(olygon)g(rasterization;)h(some)e(mo)q
(des)h(a\013ect)e(the)h(in)o(terpreta-)332 1811 y(tion)14
b(of)f(p)q(olygon)h(b)q(oundary)g(edges)g(\(see)g(section)g(3.5.4\).)j
(By)d(default,)g(all)h(edges)f(are)332 1867 y(b)q(oundary)f(edges,)g
(but)f(the)h(\015agging)f(of)g(p)q(olygons,)h(separate)f(triangles,)h
(or)f(separate)332 1924 y(quadrilaterals)k(ma)o(y)f(b)q(e)h(altered)f
(b)o(y)g(calling)446 2008 y Fw(void)29 b Fz(EdgeFlag)p
FC(\()j Fw(boolean)14 b Fv(\015ag)h FC(\))g Fw(;)446
2065 y(void)29 b Fz(EdgeFlagv)p FC(\()i Fw(boolean)15
b Fv(*\015ag)g FC(\))g Fw(;)332 2149 y FC(to)i(c)o(hange)h(the)f(v)m
(alue)i(of)e(a)g(\015ag)h(bit.)27 b(If)18 b Fv(\015ag)f
FC(is)h(zero,)g(then)g(the)f(\015ag)h(bit)g(is)g(set)f(to)332
2206 y Fr(FALSE)p FC(;)d(if)h Fv(\015ag)h FC(is)f(non-zero,)g(then)h
(the)f(\015ag)g(bit)h(is)f(set)g(to)g Fr(TRUE)p FC(.)403
2262 y(When)25 b Fz(Begin)h FC(is)g(supplied)h(with)f(one)f(of)g(the)g
(argumen)o(t)f(v)m(alues)i Fr(POLYGON)p FC(,)332 2319
y Fr(TRIANGLES)p FC(,)18 b(or)i Fr(QUADS)p FC(,)e(eac)o(h)j(v)o(ertex)e
(sp)q(eci\014ed)k(within)e(a)f Fz(Begin)h FC(and)f Fz(End)h
FC(pair)332 2375 y(b)q(egins)14 b(an)g(edge.)19 b(If)14
b(the)f(edge)g(\015ag)g(bit)h(is)g Fr(TRUE)p FC(,)d(then)j(eac)o(h)f
(sp)q(eci\014ed)j(v)o(ertex)c(b)q(egins)332 2432 y(an)j(edge)h(that)e
(is)i(\015agged)f(as)f(b)q(oundary)l(.)21 b(If)15 b(the)h(bit)f(is)h
Fr(FALSE)p FC(,)e(then)h(induced)i(edges)332 2488 y(are)e(\015agged)g
(as)g(non-b)q(oundary)l(.)p eop
%%Page: 19 28
19 27 bop 120 137 a Fx(2.7.)34 b(VER)l(TEX)16 b(SPECIFICA)l(TION)772
b FC(19)191 286 y(The)15 b(state)f(required)h(for)g(edge)g(\015agging)f
(consists)h(of)f(one)h(curren)o(t)g(\015ag)f(bit.)20
b(Ini-)120 343 y(tially)l(,)i(the)d(bit)h(is)g Fr(TRUE)p
FC(.)e(In)i(addition,)h(eac)o(h)f(pro)q(cessed)g(v)o(ertex)f(of)g(an)g
(assem)o(bled)120 399 y(p)q(olygonal)i(primitiv)o(e)h(m)o(ust)d(b)q(e)i
(augmen)o(ted)f(with)g(a)g(bit)g(indicating)i(whether)e(or)120
456 y(not)15 b(the)g(edge)h(b)q(eginning)h(on)e(that)g(v)o(ertex)g(is)g
(b)q(oundary)h(or)f(non-b)q(oundary)l(.)120 586 y Fl(2.6.3)56
b(GL)18 b(Commands)f(within)i(Begin/End)120 675 y FC(The)d(only)g(GL)f
(commands)g(that)f(are)h(allo)o(w)o(ed)h(within)g(an)o(y)f
Fz(Begin)p FC(/)p Fz(End)i FC(pairs)e(are)120 732 y(the)h(commands)f
(for)g(sp)q(ecifying)j(v)o(ertex)d(co)q(ordinates,)g(v)o(ertex)g
(color,)g(normal)h(co)q(or-)120 788 y(dinates,)k(and)e(texture)g(co)q
(ordinates)g(\()p Fz(V)l(ertex)p FC(,)f Fz(Color)p FC(,)h
Fz(Index)p FC(,)g Fz(Normal)p FC(,)h Fz(T)l(ex-)120 845
y(Co)q(ord)p FC(\),)f(the)f Fz(Arra)o(yElemen)o(t)f FC(command)h(\(see)
g(section)h(2.8\),)e(the)i Fz(Ev)m(alCo)q(ord)120 901
y FC(and)c Fz(Ev)m(alP)o(oin)o(t)h FC(commands)e(\(see)h(section)g
(5.1\),)f(commands)g(for)g(sp)q(ecifying)j(ligh)o(t-)120
957 y(ing)i(material)e(parameters)g(\()p Fz(Material)i
FC(commands;)e(see)h(section)g(2.13.2\),)e(displa)o(y)120
1014 y(list)21 b(in)o(v)o(o)q(cation)f(commands)g(\()p
Fz(CallList)h FC(and)f Fz(CallLists)p FC(;)j(see)d(section)g(5.4\),)g
(and)120 1070 y(the)d Fz(EdgeFlag)i FC(command.)25 b(Executing)18
b(an)o(y)f(other)f(GL)h(command)g(b)q(et)o(w)o(een)h(the)120
1127 y(execution)g(of)d Fz(Begin)i FC(and)g(the)f(corresp)q(onding)h
(execution)h(of)d Fz(End)i FC(results)g(in)g(the)120
1183 y(error)j Fr(INVALID)p 394 1183 14 2 v 15 w(OPERATION)p
FC(.)e(Executing)j Fz(Begin)h FC(after)e Fz(Begin)h FC(has)g(already)g
(b)q(een)120 1240 y(executed)g(but)f(b)q(efore)f(an)h
Fz(End)g FC(is)g(executed)g(generates)g(the)f Fr(INVALID)p
1407 1240 V 15 w(OPERATION)120 1296 y FC(error,)14 b(as)h(do)q(es)h
(executing)g Fz(End)g FC(without)f(a)g(previous)h(corresp)q(onding)g
Fz(Begin)p FC(.)191 1354 y(Execution)209 b(of)g(the)f(commands)h
Fz(En-)120 1411 y(ableClien)o(tState)p FC(,)21 b Fz(DisableClien)o
(tState)p FC(,)h Fz(PushClien)o(tA)o(ttrib)p FC(,)c Fz(P)o(opClien-)120
1467 y(tA)o(ttrib)p FC(,)29 b Fz(EdgeFlagP)o(oin)o(ter)p
FC(,)g Fz(T)l(exCo)q(ordP)o(oin)o(ter)p FC(,)f Fz(ColorP)o(oin)o(ter)p
FC(,)f Fz(Ind-)120 1524 y(exP)o(oin)o(ter)p FC(,)19 b
Fz(NormalP)o(oin)o(ter)p FC(,)g Fz(V)l(ertexP)o(oin)o(ter)p
FC(,)e Fz(In)o(terlea)o(v)o(edArra)o(ys)p FC(,)g(and)120
1580 y Fz(PixelStore)p FC(,)f(is)g(not)f(allo)o(w)o(ed)i(within)f(an)o
(y)g Fz(Begin)p FC(/)p Fz(End)g FC(pair,)g(but)g(an)f(error)g(ma)o(y)
120 1636 y(or)h(ma)o(y)g(not)f(b)q(e)i(generated)g(if)f(suc)o(h)h
(execution)g(o)q(ccurs.)24 b(If)16 b(an)g(error)g(is)h(not)e(gener-)120
1693 y(ated,)d(GL)g(op)q(eration)g(is)g(unde\014ned.)21
b(\(These)12 b(commands)f(are)h(describ)q(ed)i(in)e(sections)120
1749 y(2.8,)i(3.6.1,)f(and)j(Chapter)f(6.\))120 1901
y Fs(2.7)67 b(V)-6 b(ertex)23 b(Sp)r(eci\014cation)120
2006 y FC(V)l(ertices)12 b(are)e(sp)q(eci\014ed)j(b)o(y)e(giving)g
(their)g(co)q(ordinates)g(in)h(t)o(w)o(o,)e(three,)h(or)f(four)g
(dimen-)120 2062 y(sions.)21 b(This)15 b(is)h(done)g(using)g(one)f(of)g
(sev)o(eral)g(v)o(ersions)h(of)e(the)i Fz(V)l(ertex)d
FC(command:)234 2162 y Fw(void)30 b Fz(V)l(ertex)p FB(f)p
Fz(234)p FB(gf)p Fz(sifd)p FB(g)p FC(\()e Fw(T)15 b Fv(c)n(o)n(or)n(ds)
f FC(\))h Fw(;)234 2219 y(void)30 b Fz(V)l(ertex)p FB(f)p
Fz(234)p FB(gf)p Fz(sifd)p FB(g)p Fz(v)p FC(\()d Fw(T)15
b Fv(c)n(o)n(or)n(ds)g FC(\))g Fw(;)120 2319 y FC(A)i(call)h(to)e(an)o
(y)h Fz(V)l(ertex)e FC(command)i(sp)q(eci\014es)i(four)d(co)q
(ordinates:)24 b Fy(x)p FC(,)17 b Fy(y)r FC(,)f Fy(z)r
FC(,)h(and)g Fy(w)q FC(.)120 2375 y(The)j Fy(x)f FC(co)q(ordinate)g(is)
g(the)h(\014rst)e(co)q(ordinate,)i Fy(y)h FC(is)f(second,)g
Fy(z)h FC(is)e(third,)h(and)g Fy(w)f FC(is)120 2432 y(fourth.)h(A)15
b(call)h(to)e Fz(V)l(ertex2)g FC(sets)g(the)h Fy(x)g
FC(and)g Fy(y)i FC(co)q(ordinates;)e(the)g Fy(z)i FC(co)q(ordinate)e
(is)120 2488 y(implicitl)q(y)j(set)e(to)f(zero)h(and)g(the)g
Fy(w)h FC(co)q(ordinate)f(to)f(one.)22 b Fz(V)l(ertex3)15
b FC(sets)g Fy(x)p FC(,)h Fy(y)r FC(,)g(and)p eop
%%Page: 20 29
20 28 bop 332 137 a FC(20)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)332 286 y Fy(z)j FC(to)d(the)h(pro)o(vided)h
(v)m(alues)g(and)g Fy(w)f FC(to)f(one.)26 b Fz(V)l(ertex4)15
b FC(sets)i(all)h(four)e(co)q(ordinates,)332 343 y(allo)o(wing)22
b(the)f(sp)q(eci\014cation)i(of)e(an)g(arbitrary)f(p)q(oin)o(t)i(in)f
(pro)s(jectiv)o(e)g(three-space.)332 399 y(In)o(v)o(oking)14
b(a)g Fz(V)l(ertex)f FC(command)g(outside)i(of)e(a)h
Fz(Begin)p FC(/)p Fz(End)h FC(pair)f(results)h(in)f(unde-)332
456 y(\014ned)i(b)q(eha)o(vior.)403 512 y(Curren)o(t)i(v)m(alues)i(are)
f(used)g(in)h(asso)q(ciating)f(auxiliary)h(data)f(with)g(a)f(v)o(ertex)
h(as)332 569 y(describ)q(ed)h(in)f(section)g(2.6.)28
b(A)18 b(curren)o(t)g(v)m(alue)h(ma)o(y)f(b)q(e)g(c)o(hanged)h(at)e(an)
o(y)h(time)h(b)o(y)332 625 y(issuing)e(an)e(appropriate)g(command.)20
b(The)15 b(commands)446 719 y Fw(void)29 b Fz(T)l(exCo)q(ord)p
FB(f)p Fz(1234)p FB(gf)p Fz(sifd)p FB(g)p FC(\()h Fw(T)15
b Fv(c)n(o)n(or)n(ds)f FC(\))h Fw(;)446 776 y(void)29
b Fz(T)l(exCo)q(ord)p FB(f)p Fz(1234)p FB(gf)p Fz(sifd)p
FB(g)p Fz(v)p FC(\()g Fw(T)15 b Fv(c)n(o)n(or)n(ds)g
FC(\))g Fw(;)332 870 y FC(sp)q(ecify)i(the)f(curren)o(t)f(homogeneous)h
(texture)f(co)q(ordinates,)h(named)g Fy(s)p FC(,)f Fy(t)p
FC(,)h Fy(r)q FC(,)f(and)h Fy(q)r FC(.)332 926 y(The)g
Fz(T)l(exCo)q(ord1)f FC(family)h(of)f(commands)h(set)f(the)g
Fy(s)h FC(co)q(ordinate)g(to)f(the)h(pro)o(vided)332
983 y(single)d(argumen)o(t)e(while)j(setting)d Fy(t)i
FC(and)f Fy(r)g FC(to)f(0)h(and)g Fy(q)i FC(to)d(1.)18
b(Similarly)l(,)d Fz(T)l(exCo)q(ord2)332 1039 y FC(sets)f
Fy(s)h FC(and)g Fy(t)g FC(to)f(the)g(sp)q(eci\014ed)j(v)m(alues,)e
Fy(r)g FC(to)f(0)g(and)h Fy(q)i FC(to)c(1;)i Fz(T)l(exCo)q(ord3)f
FC(sets)g Fy(s)p FC(,)g Fy(t)p FC(,)332 1096 y(and)h
Fy(r)q FC(,)g(with)h Fy(q)h FC(set)e(to)f(1,)h(and)g
Fz(T)l(exCo)q(ord4)g FC(sets)g(all)h(four)f(texture)g(co)q(ordinates.)
403 1152 y(The)g(curren)o(t)g(normal)g(is)h(set)f(using)446
1246 y Fw(void)29 b Fz(Normal3)p FB(f)p Fz(bsifd)p FB(g)p
FC(\()h Fw(T)15 b Fv(c)n(o)n(or)n(ds)g FC(\))g Fw(;)446
1303 y(void)29 b Fz(Normal3)p FB(f)p Fz(bsifd)p FB(g)p
Fz(v)p FC(\()h Fw(T)15 b Fv(c)n(o)n(or)n(ds)f FC(\))h
Fw(;)332 1397 y FC(The)k(curren)o(t)g(normal)f(is)h(set)g(to)f(the)h
(giv)o(en)g(co)q(ordinates)g(whenev)o(er)g(one)g(of)f(these)332
1453 y(commands)f(is)h(issued.)28 b(Byte,)18 b(short,)f(or)g(in)o
(teger)h(v)m(alues)h(passed)e(to)g Fz(Normal)h FC(are)332
1510 y(con)o(v)o(erted)11 b(to)f(\015oating-p)q(oin)o(t)i(v)m(alues)g
(as)f(indicated)i(for)d(the)h(corresp)q(onding)h(\(signed\))332
1566 y(t)o(yp)q(e)j(in)h(T)l(able)g(2.6.)403 1623 y(Finally)l(,)j
(there)e(are)g(sev)o(eral)h(w)o(a)o(ys)e(to)h(set)g(the)g(curren)o(t)g
(color.)26 b(The)18 b(GL)f(stores)332 1679 y(b)q(oth)h(a)e(curren)o(t)i
(single-v)m(alued)i Fv(c)n(olor)e(index)p FC(,)f(and)h(a)f(curren)o(t)g
(four-v)m(alued)h(R)o(GBA)332 1735 y(color.)h(One)13
b(or)f(the)h(other)f(of)g(these)g(is)h(signi\014can)o(t)h(dep)q(ending)
g(as)e(the)h(GL)f(is)h(in)h Fv(c)n(olor)332 1792 y(index)19
b(mo)n(de)f FC(or)f Fv(R)o(GBA)i(mo)n(de)p FC(.)29 b(The)18
b(mo)q(de)g(selection)i(is)e(made)g(when)h(the)f(GL)g(is)332
1848 y(initialized)q(.)403 1905 y(The)d(command)g(to)g(set)g(R)o(GBA)g
(colors)g(is)446 1999 y Fw(void)29 b Fz(Color)p FB(f)p
Fz(34)p FB(gf)p Fz(bsifd)18 b(ubusui)p FB(g)p FC(\()30
b Fw(T)15 b Fv(c)n(omp)n(onents)f FC(\))g Fw(;)446 2055
y(void)29 b Fz(Color)p FB(f)p Fz(34)p FB(gf)p Fz(bsifd)18
b(ubusui)p FB(g)p Fz(v)p FC(\()29 b Fw(T)15 b Fv(c)n(omp)n(onents)f
FC(\))h Fw(;)332 2149 y FC(The)k Fz(Color)g FC(command)f(has)g(t)o(w)o
(o)g(ma)s(jor)f(v)m(arian)o(ts:)26 b Fz(Color3)19 b FC(and)g
Fz(Color4)p FC(.)30 b(The)332 2206 y(four)18 b(v)m(alue)i(v)o(ersions)e
(set)g(all)i(four)e(v)m(alues.)30 b(The)19 b(three)f(v)m(alue)i(v)o
(ersions)f(set)f(R,)g(G,)332 2262 y(and)h(B)g(to)f(the)h(pro)o(vided)g
(v)m(alues;)i(A)e(is)g(set)g(to)f(1.0.)29 b(\(The)19
b(con)o(v)o(ersion)g(of)f(in)o(teger)332 2319 y(color)f(comp)q(onen)o
(ts)g(\(R,)g(G,)f(B,)g(and)h(A\))g(to)f(\015oating-p)q(oin)o(t)i(v)m
(alues)g(is)f(discussed)i(in)332 2375 y(section)d(2.13.\))403
2432 y(V)l(ersions)i(of)g(the)g Fz(Color)g FC(command)f(that)h(tak)o(e)
f(\015oating-p)q(oin)o(t)h(v)m(alues)h(accept)332 2488
y(v)m(alues)k(nominally)g(b)q(et)o(w)o(een)f(0.0)e(and)i(1.0.)38
b(0.0)20 b(corresp)q(onds)i(to)f(the)g(minim)o(um)p eop
%%Page: 21 30
21 29 bop 120 137 a Fx(2.8.)34 b(VER)l(TEX)16 b(ARRA)l(YS)946
b FC(21)120 286 y(while)21 b(1.0)c(corresp)q(onds)i(to)f(the)h(maxim)o
(um)g(\(mac)o(hine)g(dep)q(enden)o(t\))h(v)m(alue)g(that)e(a)120
343 y(comp)q(onen)o(t)g(ma)o(y)e(tak)o(e)h(on)g(in)h(the)f
(framebu\013er)g(\(see)g(section)g(2.13)f(on)h(colors)h(and)120
399 y(coloring\).)j(V)l(alues)16 b(outside)g([0)p Fy(;)8
b FC(1])13 b(are)i(not)f(clamp)q(ed.)191 457 y(The)h(command)234
556 y Fw(void)30 b Fz(Index)p FB(f)p Fz(sifd)17 b(ub)p
FB(g)p FC(\()29 b Fw(T)15 b Fv(index)g FC(\))g Fw(;)234
613 y(void)30 b Fz(Index)p FB(f)p Fz(sifd)17 b(ub)p FB(g)p
Fz(v)p FC(\()29 b Fw(T)15 b Fv(index)g FC(\))g Fw(;)120
712 y Fz(Index)22 b FC(up)q(dates)g(the)h(curren)o(t)e(\(single-v)m
(alued\))k(color)d(index.)42 b(It)22 b(tak)o(es)f(one)h(ar-)120
768 y(gumen)o(t,)d(the)f(v)m(alue)i(to)d(whic)o(h)i(the)g(curren)o(t)f
(color)g(index)i(should)f(b)q(e)g(set.)29 b(V)l(alues)120
825 y(outside)13 b(the)f(\(mac)o(hine-dep)q(enden)o(t\))i(represen)o
(table)f(range)f(of)f(color)h(indices)i(are)e(not)120
881 y(clamp)q(ed.)191 939 y(The)29 b(state)f(required)h(to)f(supp)q
(ort)h(v)o(ertex)f(sp)q(eci\014cation)j(consists)e(of)f(four)120
995 y(\015oating-p)q(oin)o(t)17 b(n)o(um)o(b)q(ers)f(to)g(store)f(the)h
(curren)o(t)g(texture)f(co)q(ordinates)i Fy(s)p FC(,)f
Fy(t)p FC(,)g Fy(r)q FC(,)g(and)120 1052 y Fy(q)r FC(,)e(three)g
(\015oating-p)q(oin)o(t)h(n)o(um)o(b)q(ers)f(to)f(store)g(the)h(three)g
(co)q(ordinates)g(of)g(the)g(curren)o(t)120 1108 y(normal,)g(four)f
(\015oating-p)q(oin)o(t)h(v)m(alues)h(to)d(store)h(the)h(curren)o(t)f
(R)o(GBA)g(color,)h(and)g(one)120 1165 y(\015oating-p)q(oin)o(t)k(v)m
(alue)g(to)e(store)g(the)g(curren)o(t)h(color)g(index.)25
b(There)17 b(is)h(no)e(notion)h(of)120 1221 y(a)h(curren)o(t)g(v)o
(ertex,)g(so)g(no)g(state)f(is)h(dev)o(oted)h(to)e(v)o(ertex)h(co)q
(ordinates.)28 b(The)19 b(initial)120 1278 y(v)m(alues)f(of)e
Fy(s)p FC(,)h Fy(t)p FC(,)g(and)g Fy(r)h FC(of)e(the)h(curren)o(t)f
(texture)h(co)q(ordinates)g(are)f(zero;)h(the)g(initial)120
1334 y(v)m(alue)h(of)f Fy(q)i FC(is)e(one.)25 b(The)17
b(initial)i(curren)o(t)e(normal)g(has)f(co)q(ordinates)i(\(0)p
Fy(;)8 b FC(0)p Fy(;)g FC(1\).)21 b(The)120 1390 y(initial)d(R)o(GBA)d
(color)g(is)h(\(R)p Fy(;)8 b FC(G)p Fy(;)g FC(B)p Fy(;)g
FC(A)n(\))k(=)h(\(1)p Fy(;)8 b FC(1)p Fy(;)g FC(1)p Fy(;)f
FC(1\).)17 b(The)e(initial)i(color)f(index)g(is)g(1.)120
1541 y Fs(2.8)67 b(V)-6 b(ertex)23 b(Arra)n(ys)120 1645
y FC(The)18 b(v)o(ertex)e(sp)q(eci\014cation)j(commands)e(describ)q(ed)
h(in)g(section)g(2.7)e(accept)h(data)f(in)120 1702 y(almost)11
b(an)o(y)f(format,)g(but)h(their)g(use)g(requires)h(man)o(y)e(command)h
(executions)h(to)e(sp)q(ec-)120 1758 y(ify)17 b(ev)o(en)g(simple)h
(geometry)l(.)23 b(V)l(ertex)16 b(data)g(ma)o(y)g(also)g(b)q(e)h
(placed)h(in)o(to)e(arra)o(ys)f(that)120 1815 y(are)h(stored)f(in)h
(the)g(clien)o(t's)g(address)g(space.)21 b(Blo)q(c)o(ks)c(of)e(data)g
(in)h(these)g(arra)o(ys)e(ma)o(y)120 1871 y(then)g(b)q(e)g(used)h(to)d
(sp)q(ecify)j(m)o(ultiple)h(geometric)d(primitiv)o(es)i(through)e(the)h
(execution)120 1928 y(of)h(a)f(single)i(GL)f(command.)k(The)c(clien)o
(t)h(ma)o(y)e(sp)q(ecify)i(up)f(to)f(six)i(arra)o(ys:)i(one)d(eac)o(h)
120 1984 y(to)i(store)f(edge)i(\015ags,)f(texture)g(co)q(ordinates,)g
(colors,)h(color)f(indices,)i(normals,)f(and)120 2040
y(v)o(ertices.)j(The)15 b(commands)234 2140 y Fw(void)30
b Fz(EdgeFlagP)o(oin)o(ter)p FC(\()h Fw(sizei)14 b Fv(stride)p
Fw(,)h(void)g Fv(*p)n(ointer)g FC(\))g Fw(;)234 2252
y(void)31 b Fz(T)l(exCo)q(ordP)o(oin)o(ter)p FC(\()e
Fw(int)15 b Fv(size)p Fw(,)g(enum)g Fv(typ)n(e)p Fw(,)g(sizei)g
Fv(stride)p Fw(,)302 2309 y(void)g Fv(*p)n(ointer)g FC(\))g
Fw(;)234 2420 y(void)52 b Fz(ColorP)o(oin)o(ter)p FC(\()f
Fw(int)25 b Fv(size)p Fw(,)j(enum)d Fv(typ)n(e)p Fw(,)k(sizei)c
Fv(stride)p Fw(,)302 2477 y(void)15 b Fv(*p)n(ointer)g
FC(\))g Fw(;)p eop
%%Page: 22 31
22 30 bop 332 137 a FC(22)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 398 242 1363 2 v 397 299
2 57 v 423 282 a FC(Command)p 841 299 V 255 w(Sizes)p
1020 299 V 67 w(T)o(yp)q(es)p 1760 299 V 398 301 1363
2 v 398 309 V 397 365 2 57 v 423 348 a Fz(V)l(ertexP)o(oin)o(ter)p
841 365 V 139 w FC(2,3,4)p 1020 365 V 65 w Fw(short)p
FC(,)f Fw(int)p FC(,)f Fw(float)p FC(,)g Fw(double)p
1760 365 V 398 367 1363 2 v 397 423 2 57 v 423 406 a
Fz(NormalP)o(oin)o(ter)p 841 423 V 156 w FC(3)p 1020
423 V 102 w Fw(byte)p FC(,)h Fw(short)p FC(,)f Fw(int)p
FC(,)g Fw(float)p FC(,)g Fw(double)p 1760 423 V 398 425
1363 2 v 397 538 2 113 v 423 465 a Fz(ColorP)o(oin)o(ter)p
841 538 V 184 w FC(3,4)p 1020 538 V 84 w Fw(byte)p FC(,)19
b Fw(ubyte)p FC(,)f Fw(short)p FC(,)h Fw(ushort)p FC(,)f
Fw(int)p FC(,)1045 521 y Fw(uint)p FC(,)d Fw(float)p
FC(,)f Fw(double)p 1760 538 V 398 540 1363 2 v 397 596
2 57 v 423 579 a Fz(IndexP)o(oin)o(ter)p 841 596 V 198
w FC(1)p 1020 596 V 102 w Fw(ubyte)p FC(,)h Fw(short)p
FC(,)f Fw(int)p FC(,)g Fw(float)p FC(,)g Fw(double)p
1760 596 V 398 598 1363 2 v 397 654 2 57 v 423 637 a
Fz(T)l(exCo)q(ordP)o(oin)o(ter)p 841 654 V 49 w FC(1,2,3,4)p
1020 654 V 47 w Fw(short)p FC(,)h Fw(int)p FC(,)f Fw(float)p
FC(,)g Fw(double)p 1760 654 V 398 656 1363 2 v 397 712
2 57 v 423 695 a Fz(EdgeFlagP)o(oin)o(ter)p 841 712 V
117 w FC(1)p 1020 712 V 102 w Fw(boolean)p 1760 712 V
398 714 1363 2 v 438 794 a FC(T)l(able)i(2.4:)j(V)l(ertex)d(arra)o(y)d
(sizes)k(\(v)m(alues)f(p)q(er)f(v)o(ertex\))g(and)g(data)g(t)o(yp)q
(es.)446 984 y Fw(void)112 b Fz(IndexP)o(oin)o(ter)p
FC(\()f Fw(enum)55 b Fv(typ)n(e)p Fw(,)67 b(sizei)55
b Fv(stride)p Fw(,)514 1040 y(void)15 b Fv(*p)n(ointer)g
FC(\))g Fw(;)446 1146 y(void)100 b Fz(NormalP)o(oin)o(ter)p
FC(\()g Fw(enum)49 b Fv(typ)n(e)p Fw(,)59 b(sizei)50
b Fv(stride)p Fw(,)514 1203 y(void)15 b Fv(*p)n(ointer)g
FC(\))g Fw(;)446 1309 y(void)46 b Fz(V)l(ertexP)o(oin)o(ter)p
FC(\()e Fw(int)23 b Fv(size)p Fw(,)h(enum)e Fv(typ)n(e)p
Fw(,)j(sizei)e Fv(stride)p Fw(,)514 1366 y(void)15 b
Fv(*p)n(ointer)g FC(\))g Fw(;)332 1472 y FC(describ)q(e)24
b(the)e(lo)q(cations)g(and)g(organizations)g(of)g(these)g(arra)o(ys.)38
b(F)l(or)22 b(eac)o(h)g(com-)332 1528 y(mand,)13 b Fv(typ)n(e)h
FC(sp)q(eci\014es)h(the)e(data)g(t)o(yp)q(e)g(of)g(the)g(v)m(alues)h
(stored)f(in)h(the)g(arra)o(y)l(.)k(Because)332 1585
y(edge)h(\015ags)e(are)h(alw)o(a)o(ys)g(t)o(yp)q(e)g
Fw(boolean)p FC(,)g Fz(EdgeFlagP)o(oin)o(ter)g FC(has)h(no)f
Fv(typ)n(e)g FC(argu-)332 1641 y(men)o(t.)31 b Fv(size)p
FC(,)19 b(when)g(presen)o(t,)h(indicates)g(the)f(n)o(um)o(b)q(er)g(of)g
(v)m(alues)h(p)q(er)g(v)o(ertex)e(that)332 1698 y(are)i(stored)f(in)i
(the)f(arra)o(y)l(.)33 b(Because)21 b(normals)f(are)g(alw)o(a)o(ys)f
(sp)q(eci\014ed)j(with)e(three)332 1754 y(v)m(alues,)d
Fz(NormalP)o(oin)o(ter)f FC(has)g(no)g Fv(size)f FC(argumen)o(t.)22
b(Lik)o(ewise,)17 b(b)q(ecause)g(color)f(in-)332 1811
y(dices)f(and)f(edge)h(\015ags)e(are)h(alw)o(a)o(ys)f(sp)q(eci\014ed)j
(with)f(a)e(single)j(v)m(alue,)f Fz(IndexP)o(oin)o(ter)332
1867 y FC(and)20 b Fz(EdgeFlagP)o(oin)o(ter)h FC(also)e(ha)o(v)o(e)h
(no)f Fv(size)g FC(argumen)o(t.)33 b(T)l(able)40 b(2.4)19
b(indicates)332 1924 y(the)f(allo)o(w)o(able)h(v)m(alues)g(for)f
Fv(size)f FC(and)h Fv(typ)n(e)g FC(\(when)g(presen)o(t\).)29
b(F)l(or)17 b Fv(typ)n(e)h FC(the)g(v)m(alues)332 1980
y Fr(BYTE)p FC(,)13 b Fr(SHORT)p FC(,)f Fr(INT)p FC(,)h
Fr(FLOAT)p FC(,)f(and)i Fr(DOUBLE)e FC(indicate)k(t)o(yp)q(es)d
Fw(byte)p FC(,)g Fw(short)p FC(,)g Fw(int)p FC(,)h Fw(float)p
FC(,)332 2037 y(and)d Fw(double)p FC(,)g(resp)q(ectiv)o(ely;)i(and)e
(the)g(v)m(alues)h Fr(UNSIGNED)p 1309 2037 14 2 v 14
w(BYTE)p FC(,)e Fr(UNSIGNED)p 1610 2037 V 14 w(SHORT)p
FC(,)f(and)332 2093 y Fr(UNSIGNED)p 511 2093 V 14 w(INT)14
b FC(indicate)i(t)o(yp)q(es)e Fw(ubyte)p FC(,)g Fw(ushort)p
FC(,)f(and)i Fw(uint)p FC(,)e(resp)q(ectiv)o(ely)l(.)22
b(The)14 b(er-)332 2149 y(ror)19 b Fr(INVALID)p 567 2149
V 14 w(VALUE)f FC(is)i(generated)f(if)h Fv(size)e FC(is)i(sp)q
(eci\014ed)i(with)d(a)g(v)m(alue)i(other)e(than)332 2206
y(that)c(indicated)i(in)f(the)f(table.)403 2262 y(The)c(one,)h(t)o(w)o
(o,)f(three,)h(or)f(four)g(v)m(alues)i(in)f(an)g(arra)o(y)e(that)h
(corresp)q(ond)h(to)f(a)g(single)332 2319 y(v)o(ertex)i(comprise)h(an)f
(arra)o(y)f Fv(element)p FC(.)18 b(The)c(v)m(alues)g(within)g(eac)o(h)g
(arra)o(y)e(elemen)o(t)i(are)332 2375 y(stored)22 b(sequen)o(tially)i
(in)f(memory)l(.)41 b(If)22 b Fv(stride)g FC(is)h(sp)q(eci\014ed)i(as)d
(zero,)h(then)g(arra)o(y)332 2432 y(elemen)o(ts)17 b(are)e(stored)h
(sequen)o(tially)i(as)e(w)o(ell.)23 b(Otherwise)17 b(p)q(oin)o(ters)f
(to)g(the)g Fy(i)p FC(th)f(and)332 2488 y(\()p Fy(i)9
b FC(+)g(1\)st)14 b(elemen)o(ts)i(of)e(an)h(arra)o(y)e(di\013er)i(b)o
(y)g Fv(stride)g FC(basic)g(mac)o(hine)h(units)f(\(t)o(ypically)p
eop
%%Page: 23 32
23 31 bop 120 137 a Fx(2.8.)34 b(VER)l(TEX)16 b(ARRA)l(YS)946
b FC(23)120 286 y(unsigned)15 b(b)o(ytes\),)e(the)h(p)q(oin)o(ter)g(to)
f(the)g(\()p Fy(i)7 b FC(+)g(1\)st)k(elemen)o(t)k(b)q(eing)f(greater.)
19 b(F)l(or)13 b(eac)o(h)120 343 y(command,)j Fv(p)n(ointer)g
FC(sp)q(eci\014es)h(the)f(lo)q(cation)h(in)g(memory)e(of)h(the)g
(\014rst)f(v)m(alue)i(of)f(the)120 399 y(\014rst)f(elemen)o(t)h(of)f
(the)g(arra)o(y)f(b)q(eing)j(sp)q(eci\014ed.)191 456
y(An)e(individual)k(arra)o(y)14 b(is)h(enabled)i(or)e(disabled)i(b)o(y)
e(calling)i(one)e(of)234 548 y Fw(void)30 b Fz(EnableClien)o(tState)p
FC(\()j Fw(enum)14 b Fv(arr)n(ay)i FC(\))f Fw(;)234 604
y(void)30 b Fz(DisableClien)o(tState)p FC(\()j Fw(enum)14
b Fv(arr)n(ay)i FC(\))f Fw(;)120 696 y FC(with)37 b Fv(arr)n(ay)g
FC(set)f(to)f Fr(EDGE)p 645 696 14 2 v 15 w(FLAG)p 748
696 V 15 w(ARRAY)p FC(,)g Fr(TEXTURE)p 1075 696 V 14
w(COORD)p 1199 696 V 15 w(ARRAY)p FC(,)g Fr(COLOR)p 1482
696 V 14 w(ARRAY)p FC(,)120 752 y Fr(INDEX)p 233 752
V 15 w(ARRAY)p FC(,)19 b Fr(NORMAL)p 522 752 V 14 w(ARRAY)p
FC(,)g(or)g Fr(VERTEX)p 870 752 V 15 w(ARRAY)p FC(,)f(for)i(the)g(edge)
g(\015ag,)h(texture)f(co-)120 809 y(ordinate,)15 b(color,)g(color)h
(index,)g(normal,)e(or)h(v)o(ertex)g(arra)o(y)l(,)f(resp)q(ectiv)o(ely)
l(.)191 865 y(The)d Fy(i)p FC(th)g(elemen)o(t)h(of)f(ev)o(ery)g
(enabled)i(arra)o(y)d(is)i(transferred)f(to)f(the)h(GL)h(b)o(y)f
(calling)234 957 y Fw(void)30 b Fz(Arra)o(yElemen)o(t)p
FC(\()e Fw(int)15 b Fv(i)g FC(\))g Fw(;)120 1049 y FC(F)l(or)c(eac)o(h)
h(enabled)h(arra)o(y)l(,)e(it)g(is)i(as)e(though)g(the)h(corresp)q
(onding)g(command)g(from)e(sec-)120 1105 y(tion)k(2.7)e(or)h(section)h
(2.6.2)d(w)o(ere)i(called)i(with)f(a)f(p)q(oin)o(ter)g(to)g(elemen)o(t)
h Fy(i)p FC(.)19 b(F)l(or)13 b(the)g(v)o(er-)120 1161
y(tex)f(arra)o(y)l(,)g(the)g(corresp)q(onding)i(command)e(is)h
Fz(V)l(ertex[)p Fj(size)p Fz(][)p Fj(ty)o(p)m(e)p Fz(]v)p
FC(,)c(where)k Fv(size)e FC(is)120 1218 y(one)i(of)g([2,3,4],)d(and)j
Fv(typ)n(e)g FC(is)g(one)g(of)g([s,i,f,d],)e(corresp)q(onding)j(to)e
(arra)o(y)g(t)o(yp)q(es)h Fw(short)p FC(,)120 1274 y
Fw(int)p FC(,)24 b Fw(float)p FC(,)f(and)f Fw(double)f
FC(resp)q(ectiv)o(ely)l(.)43 b(The)23 b(corresp)q(onding)g(commands)f
(for)120 1331 y(the)16 b(edge)h(\015ag,)e(texture)h(co)q(ordinate,)g
(color,)g(color)g(index,)h(and)f(normal)g(arra)o(ys)f(are)120
1387 y Fz(EdgeFlagv)p FC(,)j Fz(T)l(exCo)q(ord[)p Fj(size)p
Fz(][)p Fj(typ)m(e)p Fz(]v)p FC(,)c Fz(Color[)p Fj(size)p
Fz(][)p Fj(typ)m(e)p Fz(]v)p FC(,)h Fz(Index[)p Fj(typ)m(e)p
Fz(]v)p FC(,)120 1444 y(and)20 b Fz(Normal[)p Fj(typ)m(e)p
Fz(]v)p FC(,)f(resp)q(ectiv)o(ely)l(.)34 b(If)20 b(the)g(v)o(ertex)f
(arra)o(y)f(is)i(enabled,)i(it)e(is)g(as)120 1500 y(though)i
Fz(V)l(ertex[)p Fj(size)p Fz(][)p Fj(ty)o(p)m(e)p Fz(]v)c
FC(is)k(executed)g(last,)h(after)d(the)h(executions)i(of)e(the)120
1557 y(other)15 b(corresp)q(onding)h(commands.)191 1613
y(Changes)i(made)h(to)f(arra)o(y)f(data)h(b)q(et)o(w)o(een)g(the)h
(execution)h(of)e Fz(Begin)h FC(and)g(the)120 1670 y(corresp)q(onding)
13 b(execution)g(of)e Fz(End)h FC(ma)o(y)f(a\013ect)g(calls)i(to)e
Fz(Arra)o(yElemen)o(t)f FC(that)h(are)120 1726 y(made)k(within)i(the)e
(same)g Fz(Begin)p FC(/)p Fz(End)h FC(p)q(erio)q(d)g(in)g(non-sequen)o
(tial)g(w)o(a)o(ys.)j(That)c(is,)120 1782 y(a)i(call)g(to)f
Fz(Arra)o(yElemen)o(t)f FC(that)h(precedes)h(a)f(c)o(hange)h(to)f(arra)
o(y)f(data)h(ma)o(y)g(access)120 1839 y(the)e(c)o(hanged)h(data,)e(and)
h(a)g(call)h(that)e(follo)o(ws)h(a)g(c)o(hange)g(to)f(arra)o(y)g(data)g
(ma)o(y)h(access)120 1895 y(original)j(data.)191 1952
y(The)e(command)234 2044 y Fw(void)30 b Fz(Dra)o(wArra)o(ys)p
FC(\()d Fw(enum)14 b Fv(mo)n(de)p Fw(,)i(int)e Fv(\014rst)p
Fw(,)h(sizei)f Fv(c)n(ount)h FC(\))g Fw(;)120 2135 y
FC(constructs)g(a)g(sequence)h(of)f(geometric)g(primitiv)o(es)i(using)f
(elemen)o(ts)g Fy(f)5 b(ir)q(st)15 b FC(through)120 2192
y Fy(f)5 b(ir)q(st)r FC(+)q Fy(count)q FB(\000)q FC(1)10
b(of)h(eac)o(h)f(enabled)i(arra)o(y)l(.)18 b Fv(mo)n(de)10
b FC(sp)q(eci\014es)j(what)d(kind)h(of)f(primitiv)o(es)120
2248 y(are)15 b(constructed;)f(it)h(accepts)g(the)g(same)f(tok)o(en)h
(v)m(alues)h(as)e(the)h Fy(mode)f FC(parameter)g(of)120
2305 y(the)i Fz(Begin)g FC(command.)j(The)d(e\013ect)f(of)317
2396 y Fz(Dra)o(wArra)o(ys)e Fw(\()p Fy(mode;)8 b(f)d(ir)q(st;)j(count)
p Fw(\);)120 2488 y FC(is)16 b(the)f(same)g(as)g(the)g(e\013ect)g(of)g
(the)g(command)g(sequence)p eop
%%Page: 24 33
24 32 bop 332 137 a FC(24)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)529 286 y Fw(if)24 b(\()p
Fy(mode)14 b FC(or)h Fy(count)h FC(is)f(in)o(v)m(alid)j
Fw(\))590 343 y FC(generate)d(appropriate)g(error)529
399 y Fw(else)23 b FB(f)590 456 y Fw(int)g(i;)590 512
y Fz(Begin)p Fw(\()p Fy(mode)p Fw(\);)590 569 y(for)g(\(i=0;)g(i)h(<)39
b Fy(count)15 b Fw(;)24 b(i++\))650 625 y Fz(Arra)o(yElemen)o(t)p
Fw(\()p Fy(f)5 b(ir)q(st)p FC(+)14 b Fw(i\);)590 682
y Fz(End)p Fw(\(\);)529 738 y FB(g)332 827 y FC(with)j(one)g
(exception:)23 b(the)17 b(curren)o(t)g(edge)f(\015ag,)h(texture)f(co)q
(ordinates,)h(color,)f(color)332 883 y(index,)f(and)e(normal)g(co)q
(ordinates)h(are)f(eac)o(h)g(indeterminate)i(after)d(the)i(execution)g
(of)332 940 y Fz(Dra)o(wArra)o(ys)p FC(,)f(if)j(the)g(corresp)q(onding)
h(arra)o(y)d(is)j(enabled.)23 b(Curren)o(t)16 b(v)m(alues)h(corre-)332
996 y(sp)q(onding)f(to)d(disabled)k(arra)o(ys)c(are)h(not)g(mo)q
(di\014ed)i(b)o(y)e(the)g(execution)i(of)e Fz(Dra)o(wAr-)332
1053 y(ra)o(ys)p FC(.)403 1109 y(The)h(command)446 1198
y Fw(void)33 b Fz(Dra)o(wElemen)o(ts)p FC(\()f Fw(enum)16
b Fv(mo)n(de)p Fw(,)i(sizei)e Fv(c)n(ount)p Fw(,)h(enum)f
Fv(typ)n(e)p Fw(,)514 1254 y(void)f Fv(*indic)n(es)f
FC(\))g Fw(;)332 1343 y FC(constructs)25 b(a)g(sequence)h(of)e
(geometric)i(primitiv)o(es)g(using)g(the)f Fv(c)n(ount)g
FC(elemen)o(ts)332 1399 y(whose)d(indices)h(are)f(stored)f(in)h
Fv(indic)n(es)p FC(.)39 b Fv(typ)n(e)21 b FC(m)o(ust)g(b)q(e)i(one)e
(of)h Fr(UNSIGNED)p 1716 1399 14 2 v 14 w(BYTE)p FC(,)332
1456 y Fr(UNSIGNED)p 511 1456 V 14 w(SHORT)p FC(,)c(or)i
Fr(UNSIGNED)p 903 1456 V 14 w(INT)p FC(,)e(indicating)k(that)d(the)h(v)
m(alues)h(in)f Fv(indic)n(es)f FC(are)332 1512 y(indices)24
b(of)e(GL)g(t)o(yp)q(e)h Fw(ubyte)p FC(,)f Fw(ushort)p
FC(,)h(or)f Fw(uint)f FC(resp)q(ectiv)o(ely)l(.)43 b
Fv(mo)n(de)23 b FC(sp)q(eci\014es)332 1569 y(what)13
b(kind)i(of)f(primitiv)o(es)h(are)e(constructed;)h(it)g(accepts)g(the)g
(same)g(tok)o(en)f(v)m(alues)i(as)332 1625 y(the)g Fy(mode)g
FC(parameter)g(of)f(the)i Fz(Begin)g FC(command.)k(The)15
b(e\013ect)g(of)529 1714 y Fz(Dra)o(wElemen)o(ts)f Fw(\()p
Fy(mode;)8 b(count;)g(ty)r(pe;)g(indices)p Fw(\);)332
1803 y FC(is)16 b(the)f(same)g(as)g(the)g(e\013ect)g(of)g(the)g
(command)g(sequence)529 1891 y Fw(if)24 b(\()p Fy(mode;)14
b(count;)h FC(or)g Fy(ty)r(pe)g FC(is)h(in)o(v)m(alid)i
Fw(\))590 1948 y FC(generate)d(appropriate)g(error)529
2004 y Fw(else)23 b FB(f)590 2061 y Fw(int)g(i;)590 2117
y Fz(Begin)p Fw(\()p Fy(mode)p Fw(\);)590 2174 y(for)g(\(i=0;)g(i)h(<)
39 b Fy(count)15 b Fw(;)24 b(i++\))650 2230 y Fz(Arra)o(yElemen)o(t)p
Fw(\()p Fy(indices)p FC([)p Fw(i)p FC(])p Fw(\);)590
2287 y Fz(End)p Fw(\(\);)529 2343 y FB(g)332 2432 y FC(with)17
b(one)g(exception:)23 b(the)17 b(curren)o(t)g(edge)f(\015ag,)h(texture)
f(co)q(ordinates,)h(color,)f(color)332 2488 y(index,)21
b(and)e(normal)f(co)q(ordinates)h(are)g(eac)o(h)f(indeterminate)j
(after)d(the)g(execution)p eop
%%Page: 25 34
25 33 bop 120 137 a Fx(2.8.)34 b(VER)l(TEX)16 b(ARRA)l(YS)946
b FC(25)p 120 247 1952 2 v 119 303 2 57 v 145 286 a Fy(f)5
b(or)q(mat)p 478 303 V 240 w(e)557 293 y Fu(t)p 628 303
V 685 286 a Fy(e)706 293 y Fu(c)p 779 303 V 832 286 a
Fy(e)853 293 y Fu(n)p 929 303 V 955 286 a Fy(s)976 293
y Fu(t)p 1015 303 V 1041 286 a Fy(s)1062 293 y Fu(c)p
1103 303 V 1129 286 a Fy(s)1150 293 y Fu(v)p 1195 303
V 1342 286 a Fy(t)1358 293 y Fu(c)p 1522 303 V 1553 286
a Fy(p)1576 293 y Fu(c)p 1622 303 V 1649 286 a Fy(p)1672
293 y Fu(n)p 1721 303 V 1788 286 a Fy(p)1811 293 y Fu(v)p
1896 303 V 1974 286 a Fy(s)p 2071 303 V 120 305 1952
2 v 120 313 V 119 369 2 57 v 145 353 a Fr(V2F)p 478 369
V 293 w Fv(F)m(alse)p 628 369 V 48 w(F)m(alse)p 779 369
V 48 w(F)m(alse)p 929 369 V 1015 369 V 1103 369 V 233
w FC(2)p 1195 369 V 1522 369 V 1622 369 V 1721 369 V
636 w(0)p 1896 369 V 139 w(2)p Fy(f)p 2071 369 V 119
426 V 145 409 a Fr(V3F)p 478 426 V 293 w Fv(F)m(alse)p
628 426 V 48 w(F)m(alse)p 779 426 V 48 w(F)m(alse)p 929
426 V 1015 426 V 1103 426 V 233 w FC(3)p 1195 426 V 1522
426 V 1622 426 V 1721 426 V 636 w(0)p 1896 426 V 139
w(3)p Fy(f)p 2071 426 V 119 482 V 145 465 a Fr(C4UB)p
236 465 14 2 v 15 w(V2F)p 478 482 2 57 v 190 w Fv(F)m(alse)p
628 482 V 52 w(T)m(rue)p 779 482 V 52 w(F)m(alse)p 929
482 V 1015 482 V 143 w FC(4)p 1103 482 V 67 w(2)p 1195
482 V 59 w Fr(UNSIGNED)p 1400 465 14 2 v 14 w(BYTE)p
1522 482 2 57 v 62 w FC(0)p 1622 482 V 1721 482 V 216
w Fy(c)p 1896 482 V 102 w(c)10 b FC(+)g(2)p Fy(f)p 2071
482 V 119 539 V 145 522 a Fr(C4UB)p 236 522 14 2 v 15
w(V3F)p 478 539 2 57 v 190 w Fv(F)m(alse)p 628 539 V
52 w(T)m(rue)p 779 539 V 52 w(F)m(alse)p 929 539 V 1015
539 V 143 w FC(4)p 1103 539 V 67 w(3)p 1195 539 V 59
w Fr(UNSIGNED)p 1400 522 14 2 v 14 w(BYTE)p 1522 539
2 57 v 62 w FC(0)p 1622 539 V 1721 539 V 216 w Fy(c)p
1896 539 V 102 w(c)g FC(+)g(3)p Fy(f)p 2071 539 V 120
540 1952 2 v 119 597 2 57 v 145 580 a Fr(C3F)p 214 580
14 2 v 15 w(V3F)p 478 597 2 57 v 212 w Fv(F)m(alse)p
628 597 V 52 w(T)m(rue)p 779 597 V 52 w(F)m(alse)p 929
597 V 1015 597 V 143 w FC(3)p 1103 597 V 67 w(3)p 1195
597 V 143 w Fr(FLOAT)p 1522 597 V 146 w FC(0)p 1622 597
V 1721 597 V 201 w(3)p Fy(f)p 1896 597 V 130 w FC(6)p
Fy(f)p 2071 597 V 119 653 V 145 636 a Fr(N3F)p 214 636
14 2 v 15 w(V3F)p 478 653 2 57 v 212 w Fv(F)m(alse)p
628 653 V 48 w(F)m(alse)p 779 653 V 52 w(T)m(rue)p 929
653 V 1015 653 V 1103 653 V 237 w FC(3)p 1195 653 V 1522
653 V 1622 653 V 499 w(0)p 1721 653 V 101 w(3)p Fy(f)p
1896 653 V 130 w FC(6)p Fy(f)p 2071 653 V 119 710 V 145
693 a Fr(C4F)p 214 693 14 2 v 15 w(N3F)p 295 693 V 15
w(V3F)p 478 710 2 57 v 131 w Fv(F)m(alse)p 628 710 V
52 w(T)m(rue)p 779 710 V 56 w(T)m(rue)p 929 710 V 1015
710 V 147 w FC(4)p 1103 710 V 67 w(3)p 1195 710 V 143
w Fr(FLOAT)p 1522 710 V 146 w FC(0)p 1622 710 V 63 w(4)p
Fy(f)p 1721 710 V 93 w FC(7)p Fy(f)p 1896 710 V 118 w
FC(10)p Fy(f)p 2071 710 V 119 766 V 145 749 a Fr(T2F)p
214 749 14 2 v 15 w(V3F)p 478 766 2 57 v 215 w Fv(T)m(rue)p
628 766 V 53 w(F)m(alse)p 779 766 V 48 w(F)m(alse)p 929
766 V 55 w FC(2)p 1015 766 V 1103 766 V 155 w(3)p 1195
766 V 1522 766 V 1622 766 V 1721 766 V 623 w(2)p Fy(f)p
1896 766 V 130 w FC(5)p Fy(f)p 2071 766 V 120 768 1952
2 v 119 824 2 57 v 145 807 a Fr(T4F)p 214 807 14 2 v
15 w(V4F)p 478 824 2 57 v 215 w Fv(T)m(rue)p 628 824
V 53 w(F)m(alse)p 779 824 V 48 w(F)m(alse)p 929 824 V
55 w FC(4)p 1015 824 V 1103 824 V 155 w(4)p 1195 824
V 1522 824 V 1622 824 V 1721 824 V 623 w(4)p Fy(f)p 1896
824 V 130 w FC(8)p Fy(f)p 2071 824 V 119 881 V 145 864
a Fr(T2F)p 214 864 14 2 v 15 w(C4UB)p 317 864 V 15 w(V3F)p
478 881 2 57 v 112 w Fv(T)m(rue)p 628 881 V 57 w(T)m(rue)p
779 881 V 52 w(F)m(alse)p 929 881 V 55 w FC(2)p 1015
881 V 65 w(4)p 1103 881 V 67 w(3)p 1195 881 V 59 w Fr(UNSIGNED)p
1400 864 14 2 v 14 w(BYTE)p 1522 881 2 57 v 49 w FC(2)p
Fy(f)p 1622 881 V 1721 881 V 154 w(c)g FC(+)g(2)p Fy(f)p
1896 881 V 55 w(c)g FC(+)g(5)p Fy(f)p 2071 881 V 119
937 V 145 920 a Fr(T2F)p 214 920 14 2 v 15 w(C3F)p 295
920 V 15 w(V3F)p 478 937 2 57 v 134 w Fv(T)m(rue)p 628
937 V 57 w(T)m(rue)p 779 937 V 52 w(F)m(alse)p 929 937
V 55 w FC(2)p 1015 937 V 65 w(3)p 1103 937 V 67 w(3)p
1195 937 V 143 w Fr(FLOAT)p 1522 937 V 133 w FC(2)p Fy(f)p
1622 937 V 1721 937 V 192 w FC(5)p Fy(f)p 1896 937 V
130 w FC(8)p Fy(f)p 2071 937 V 119 994 V 145 977 a Fr(T2F)p
214 977 14 2 v 15 w(N3F)p 295 977 V 15 w(V3F)p 478 994
2 57 v 134 w Fv(T)m(rue)p 628 994 V 53 w(F)m(alse)p 779
994 V 52 w(T)m(rue)p 929 994 V 59 w FC(2)p 1015 994 V
1103 994 V 155 w(3)p 1195 994 V 1522 994 V 1622 994 V
485 w(2)p Fy(f)p 1721 994 V 93 w FC(5)p Fy(f)p 1896 994
V 130 w FC(8)p Fy(f)p 2071 994 V 120 995 1952 2 v 119
1052 2 57 v 145 1035 a Fr(T2F)p 214 1035 14 2 v 15 w(C4F)p
295 1035 V 15 w(N3F)p 376 1035 V 15 w(V3F)p 478 1052
2 57 v 53 w Fv(T)m(rue)p 628 1052 V 57 w(T)m(rue)p 779
1052 V 56 w(T)m(rue)p 929 1052 V 59 w FC(2)p 1015 1052
V 65 w(4)p 1103 1052 V 67 w(3)p 1195 1052 V 143 w Fr(FLOAT)p
1522 1052 V 133 w FC(2)p Fy(f)p 1622 1052 V 54 w FC(6)p
Fy(f)p 1721 1052 V 93 w FC(9)p Fy(f)p 1896 1052 V 118
w FC(12)p Fy(f)p 2071 1052 V 119 1108 V 145 1091 a Fr(T4F)p
214 1091 14 2 v 15 w(C4F)p 295 1091 V 15 w(N3F)p 376
1091 V 15 w(V4F)p 478 1108 2 57 v 53 w Fv(T)m(rue)p 628
1108 V 57 w(T)m(rue)p 779 1108 V 56 w(T)m(rue)p 929 1108
V 59 w FC(4)p 1015 1108 V 65 w(4)p 1103 1108 V 67 w(4)p
1195 1108 V 143 w Fr(FLOAT)p 1522 1108 V 133 w FC(4)p
Fy(f)p 1622 1108 V 54 w FC(8)p Fy(f)p 1721 1108 V 81
w FC(11)p Fy(f)p 1896 1108 V 107 w FC(15)p Fy(f)p 2071
1108 V 120 1110 1952 2 v 120 1187 a FC(T)l(able)21 b(2.5:)27
b(V)l(ariables)21 b(that)d(direct)i(the)g(execution)h(of)e
Fz(In)o(terlea)o(v)o(edArra)o(y)o(s)p FC(.)30 b Fy(f)120
1244 y FC(is)23 b Fw(sizeof\(FLOAT\))p FC(.)e Fy(c)h
FC(is)h(4)f(times)h Fw(sizeof\(UNSIGNED)p 1151 1244 15
2 v 15 w(BYTE\))p FC(,)e(rounded)i(up)g(to)120 1300 y(the)c(nearest)g
(m)o(ultiple)i(of)d Fy(f)5 b FC(.)31 b(All)20 b(p)q(oin)o(ter)g
(arithmetic)f(is)h(p)q(erformed)f(in)h(units)f(of)120
1357 y Fw(sizeof\(UNSIGNED)p 483 1357 V 16 w(BYTE\))p
FC(.)120 1540 y(of)j Fz(Dra)o(wElemen)o(ts)p FC(,)h(if)g(the)f(corresp)
q(onding)h(arra)o(y)e(is)i(enabled.)42 b(Curren)o(t)22
b(v)m(al-)120 1597 y(ues)d(corresp)q(onding)g(to)e(disabled)j(arra)o
(ys)c(are)i(not)g(mo)q(di\014ed)h(b)o(y)f(the)g(execution)h(of)120
1653 y Fz(Dra)o(wElemen)o(ts)p FC(.)191 1710 y(The)c(command)234
1806 y Fw(void)66 b Fz(In)o(terlea)o(v)o(edArra)o(ys)p
FC(\()e Fw(enum)33 b Fv(format)p Fw(,)39 b(sizei)32 b
Fv(stride)p Fw(,)302 1863 y(void)15 b Fv(*p)n(ointer)g
FC(\))g Fw(;)120 1959 y FC(e\016cien)o(tly)i(initializes)h(the)d(six)g
(arra)o(ys)f(and)h(their)h(enables)g(to)e(one)i(of)e(14)h(con\014gura-)
120 2015 y(tions.)36 b Fv(format)21 b FC(m)o(ust)f(b)q(e)h(one)g(of)f
(14)g(sym)o(b)q(olic)i(constan)o(ts:)29 b Fr(V2F)p FC(,)19
b Fr(V3F)p FC(,)h Fr(C4UB)p 1525 2015 14 2 v 15 w(V2F)p
FC(,)120 2072 y Fr(C4UB)p 211 2072 V 15 w(V3F)p FC(,)28
b Fr(C3F)p 399 2072 V 16 w(V3F)p FC(,)g Fr(N3F)p 588
2072 V 15 w(V3F)p FC(,)g Fr(C4F)p 776 2072 V 15 w(N3F)p
857 2072 V 15 w(V3F)p FC(,)g Fr(T2F)p 1045 2072 V 15
w(V3F)p FC(,)h Fr(T4F)p 1234 2072 V 15 w(V4F)p FC(,)f
Fr(T2F)p 1422 2072 V 15 w(C4UB)p 1525 2072 V 15 w(V3F)p
FC(,)120 2128 y Fr(T2F)p 189 2128 V 15 w(C3F)p 270 2128
V 16 w(V3F)p FC(,)14 b Fr(T2F)p 445 2128 V 15 w(N3F)p
526 2128 V 15 w(V3F)p FC(,)g Fr(T2F)p 700 2128 V 15 w(C4F)p
781 2128 V 15 w(N3F)p 862 2128 V 15 w(V3F)p FC(,)g(or)h
Fr(T4F)p 1092 2128 V 15 w(C4F)p 1173 2128 V 15 w(N3F)p
1254 2128 V 15 w(V4F)p FC(.)191 2185 y(The)g(e\013ect)g(of)317
2282 y Fz(In)o(terlea)o(v)o(edArra)o(ys)p Fw(\()p Fy(f)5
b(ormat;)j(str)q(ide;)f(pointer)q Fw(\);)191 2378 y FC(is)16
b(the)f(same)g(as)g(the)g(e\013ect)g(of)g(the)g(command)g(sequence)317
2488 y Fw(if)24 b(\()p Fy(f)5 b(or)q(mat)15 b FC(or)g
Fy(str)q(ide)g FC(is)h(in)o(v)m(alid)p Fw(\))p eop
%%Page: 26 35
26 34 bop 332 137 a FC(26)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)590 286 y FC(generate)f(appropriate)g(error)
529 343 y Fw(else)23 b FB(f)590 399 y Fw(int)g(str;)590
456 y FC(set)15 b Fy(e)682 463 y Fu(t)697 456 y Fy(;)8
b(e)739 463 y Fu(c)755 456 y Fy(;)g(e)797 463 y Fu(n)820
456 y Fy(;)g(s)862 463 y Fu(t)877 456 y Fy(;)g(s)919
463 y Fu(c)935 456 y Fy(;)g(s)977 463 y Fu(v)997 456
y Fy(;)g(t)1034 463 y Fu(c)1051 456 y Fy(;)g(p)1095 463
y Fu(c)1112 456 y Fy(;)g(p)1156 463 y Fu(n)1178 456 y
Fy(;)g(p)1222 463 y Fu(v)1242 456 y Fy(;)15 b FC(and)g
Fy(s)g FC(as)g(a)g(function)650 512 y(of)g(T)l(able)h(2.5)e(and)i(the)f
(v)m(alue)h(of)f Fy(f)5 b(or)q(mat)p FC(.)590 569 y Fw(str)14
b FC(=)i Fy(str)q(ide)p FC(;)590 625 y Fw(if)23 b(\(str)15
b FC(is)h(zero)p Fw(\))650 682 y(str)f FC(=)e Fy(s)p
FC(;)590 738 y Fz(DisableClien)o(tState)p Fw(\()p Fr(EDGE)p
1128 738 14 2 v 17 w(FLAG)p 1233 738 V 15 w(ARRAY)p Fw(\))p
FC(;)590 795 y Fz(DisableClien)o(tState)p Fw(\()p Fr(INDEX)p
1150 795 V 17 w(ARRAY)p Fw(\))p FC(;)590 851 y Fw(if)23
b(\()p Fy(e)706 858 y Fu(t)721 851 y Fw(\))h FB(f)650
907 y Fz(EnableClien)o(tState)p Fw(\()p Fr(TEXTURE)p
1242 907 V 17 w(COORD)p 1369 907 V 15 w(ARRAY)p Fw(\))p
FC(;)650 964 y Fz(T)l(exCo)q(ordP)o(oin)o(ter)p Fw(\()p
Fy(s)1090 971 y Fu(t)1104 964 y FC(,)15 b Fr(FLOAT)p
FC(,)f Fw(str)p FC(,)g Fy(pointer)q Fw(\))p FC(;)590
1020 y FB(g)23 b Fw(else)h FB(f)650 1077 y Fz(DisableClien)o(tState)p
Fw(\()p Fr(TEXTURE)p 1254 1077 V 17 w(COORD)p 1381 1077
V 15 w(ARRAY)p Fw(\))p FC(;)590 1133 y FB(g)590 1190
y Fw(if)f(\()p Fy(e)706 1197 y Fu(c)724 1190 y Fw(\))g
FB(f)650 1246 y Fz(EnableClien)o(tState)p Fw(\()p Fr(COLOR)p
1198 1246 V 18 w(ARRAY)p Fw(\))p FC(;)650 1303 y Fz(ColorP)o(oin)o(ter)
p Fw(\()p Fy(s)990 1310 y Fu(c)1007 1303 y FC(,)15 b
Fy(t)1051 1310 y Fu(c)1069 1303 y FC(,)g Fw(str)p FC(,)f
Fy(pointer)d FC(+)g Fy(p)1422 1310 y Fu(c)1439 1303 y
Fw(\))p FC(;)590 1359 y FB(g)23 b Fw(else)h FB(f)650
1416 y Fz(DisableClien)o(tState)p Fw(\()p Fr(COLOR)p
1210 1416 V 18 w(ARRAY)p Fw(\))p FC(;)590 1472 y FB(g)590
1528 y Fw(if)f(\()p Fy(e)706 1535 y Fu(n)730 1528 y Fw(\))g
FB(f)650 1585 y Fz(EnableClien)o(tState)p Fw(\()p Fr(NORMAL)p
1220 1585 V 18 w(ARRAY)p Fw(\))p FC(;)650 1641 y Fz(NormalP)o(oin)o
(ter)p Fw(\()p Fr(FLOAT)p FC(,)13 b Fw(str)p FC(,)i Fy(pointer)c
FC(+)f Fy(p)1476 1648 y Fu(n)1500 1641 y Fw(\))p FC(;)590
1698 y FB(g)23 b Fw(else)h FB(f)650 1754 y Fz(DisableClien)o(tState)p
Fw(\()p Fr(NORMAL)p 1232 1754 V 17 w(ARRAY)p Fw(\))p
FC(;)590 1811 y FB(g)590 1867 y Fz(EnableClien)o(tState)p
Fw(\()p Fr(VERTEX)p 1160 1867 V 17 w(ARRAY)p Fw(\))p
FC(;)590 1924 y Fz(V)l(ertexP)o(oin)o(ter)p Fw(\()p Fy(s)958
1931 y Fu(v)976 1924 y FC(,)15 b Fr(FLOAT)p FC(,)f Fw(str)p
FC(,)g Fy(pointer)d FC(+)g Fy(p)1466 1931 y Fu(v)1486
1924 y Fw(\))p FC(;)529 1980 y FB(g)403 2206 y FC(The)24
b(clien)o(t)i(state)d(required)j(to)d(implemen)o(t)j(v)o(ertex)e(arra)o
(ys)f(consists)h(of)g(six)332 2262 y(b)q(o)q(olean)16
b(v)m(alues,)f(six)g(memory)f(p)q(oin)o(ters,)h(six)g(in)o(teger)f
(stride)h(v)m(alues,)h(\014v)o(e)e(sym)o(b)q(olic)332
2319 y(constan)o(ts)19 b(represen)o(ting)h(arra)o(y)e(t)o(yp)q(es,)i
(and)f(three)h(in)o(tegers)f(represen)o(ting)h(v)m(alues)332
2375 y(p)q(er)e(elemen)o(t.)29 b(In)18 b(the)g(initial)i(state)d(the)h
(b)q(o)q(olean)h(v)m(alues)g(are)f(eac)o(h)f(disabled,)j(the)332
2432 y(memory)13 b(p)q(oin)o(ters)h(are)e(eac)o(h)i(n)o(ull,)h(the)e
(strides)h(are)f(eac)o(h)g(zero,)g(the)g(arra)o(y)f(t)o(yp)q(es)i(are)
332 2488 y(eac)o(h)h Fr(FLOAT)p FC(,)f(and)h(the)h(in)o(tegers)f
(represen)o(ting)h(v)m(alues)g(p)q(er)g(elemen)o(t)g(are)f(eac)o(h)g
(four.)p eop
%%Page: 27 36
27 35 bop 120 137 a Fx(2.9.)34 b(RECT)l(ANGLES)1029 b
FC(27)120 286 y Fs(2.9)67 b(Rectangles)120 388 y FC(There)12
b(is)g(a)f(set)g(of)f(GL)i(commands)f(to)f(supp)q(ort)i(e\016cien)o(t)g
(sp)q(eci\014cation)h(of)d(rectangles)120 444 y(as)15
b(t)o(w)o(o)f(corner)h(v)o(ertices.)234 528 y Fw(void)30
b Fz(Rect)p FB(f)p Fz(sifd)p FB(g)p FC(\()g Fw(T)15 b
Fv(x1)p Fw(,)g(T)g Fv(y1)p Fw(,)h(T)f Fv(x2)p Fw(,)g(T)g
Fv(y2)h FC(\))e Fw(;)234 585 y(void)30 b Fz(Rect)p FB(f)p
Fz(sifd)p FB(g)p Fz(v)p FC(\()g Fw(T)15 b Fv(v1[2])p
Fw(,)g(T)g Fv(v2[2])g FC(\))g Fw(;)120 668 y FC(Eac)o(h)20
b(command)g(tak)o(es)f(either)h(four)g(argumen)o(ts)f(organized)h(as)f
(t)o(w)o(o)g(consecutiv)o(e)120 725 y(pairs)d(of)f(\()p
Fy(x;)8 b(y)r FC(\))13 b(co)q(ordinates,)j(or)e(t)o(w)o(o)g(p)q(oin)o
(ters)i(to)f(arra)o(ys)e(eac)o(h)j(of)f(whic)o(h)h(con)o(tains)120
781 y(an)g Fy(x)f FC(v)m(alue)h(follo)o(w)o(ed)g(b)o(y)f(a)g
Fy(y)i FC(v)m(alue.)k(The)15 b(e\013ect)g(of)g(the)g
Fz(Rect)h FC(command)317 865 y Fz(Rect)g Fw(\()p Fy(x)489
872 y Fq(1)509 865 y Fy(;)8 b(y)552 872 y Fq(1)571 865
y Fy(;)g(x)618 872 y Fq(2)637 865 y Fy(;)g(y)680 872
y Fq(2)699 865 y Fw(\);)120 949 y FC(is)16 b(exactly)g(the)f(same)g(as)
g(the)g(follo)o(wing)h(sequence)g(of)f(commands:)317
1033 y Fz(Begin)p Fw(\(POLYGON\);)378 1089 y Fz(V)l(ertex2)p
Fw(\()p Fy(x)608 1096 y Fq(1)626 1089 y Fy(;)8 b(y)669
1096 y Fq(1)688 1089 y Fw(\);)378 1145 y Fz(V)l(ertex2)p
Fw(\()p Fy(x)608 1152 y Fq(2)626 1145 y Fy(;)g(y)669
1152 y Fq(1)688 1145 y Fw(\);)378 1202 y Fz(V)l(ertex2)p
Fw(\()p Fy(x)608 1209 y Fq(2)626 1202 y Fy(;)g(y)669
1209 y Fq(2)688 1202 y Fw(\);)378 1258 y Fz(V)l(ertex2)p
Fw(\()p Fy(x)608 1265 y Fq(1)626 1258 y Fy(;)g(y)669
1265 y Fq(2)688 1258 y Fw(\);)317 1315 y Fz(End)p Fw(\(\);)120
1399 y FC(The)16 b(appropriate)f Fz(V)l(ertex2)e FC(command)i(w)o(ould)
h(b)q(e)f(in)o(v)o(ok)o(ed)h(dep)q(ending)h(on)e(whic)o(h)120
1455 y(of)g(the)g Fz(Rect)h FC(commands)f(is)h(issued.)120
1596 y Fs(2.10)66 b(Co)r(ordinate)23 b(T)-6 b(ransformations)120
1698 y FC(V)l(ertices,)17 b(normals,)e(and)h(texture)f(co)q(ordinates)h
(are)f(transformed)g(b)q(efore)h(their)g(co-)120 1754
y(ordinates)h(are)f(used)g(to)g(pro)q(duce)h(an)f(image)g(in)h(the)f
(framebu\013er.)23 b(W)l(e)16 b(b)q(egin)h(with)120 1811
y(a)c(description)i(of)e(ho)o(w)g(v)o(ertex)g(co)q(ordinates)h(are)f
(transformed)f(and)i(ho)o(w)e(this)i(trans-)120 1867
y(formation)h(is)h(con)o(trolled.)191 1924 y(Figure)f(2.6)e(diagrams)h
(the)h(sequence)g(of)f(transformations)f(that)h(are)g(applied)i(to)120
1980 y(v)o(ertices.)28 b(The)18 b(v)o(ertex)g(co)q(ordinates)g(that)f
(are)g(presen)o(ted)i(to)e(the)h(GL)f(are)h(termed)120
2037 y Fv(obje)n(ct)c(c)n(o)n(or)n(dinates)p FC(.)19
b(The)13 b Fv(mo)n(del-view)g FC(matrix)g(is)h(applied)h(to)d(these)i
(co)q(ordinates)f(to)120 2093 y(yield)j Fv(eye)f FC(co)q(ordinates.)20
b(Then)14 b(another)g(matrix,)g(called)i(the)f Fv(pr)n(oje)n(ction)e
FC(matrix,)h(is)120 2149 y(applied)k(to)e(ey)o(e)g(co)q(ordinates)g(to)
g(yield)h Fv(clip)f FC(co)q(ordinates.)23 b(A)16 b(p)q(ersp)q(ectiv)o
(e)i(division)120 2206 y(is)e(carried)g(out)f(on)h(clip)h(co)q
(ordinates)e(to)g(yield)i Fv(normalize)n(d)f(devic)n(e)f
FC(co)q(ordinates.)21 b(A)120 2262 y(\014nal)h Fv(viewp)n(ort)f
FC(transformation)e(is)i(applied)h(to)e(con)o(v)o(ert)g(these)h(co)q
(ordinates)g(in)o(to)120 2319 y Fv(window)c(c)n(o)n(or)n(dinates)p
FC(.)191 2375 y(Ob)s(ject)27 b(co)q(ordinates,)j(ey)o(e)d(co)q
(ordinates,)j(and)d(clip)i(co)q(ordinates)e(are)g(four-)120
2432 y(dimensional,)20 b(consisting)e(of)f Fy(x)p FC(,)h
Fy(y)r FC(,)f Fy(z)r FC(,)h(and)f Fy(w)h FC(co)q(ordinates)g(\(in)g
(that)f(order\).)25 b(The)120 2488 y(mo)q(del-view)17
b(and)f(p)q(ersp)q(ectiv)o(e)g(matrices)g(are)e(th)o(us)h(4)10
b FB(\002)h FC(4.)p eop
%%Page: 28 37
28 36 bop 332 137 a FC(28)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 350 242 1459 2 v 350 1032
2 790 v 404 317 a
21313290 8951580 1973452 16971694 50783518 37495603 startTexFig
404 317 a
%%BeginDocument: pics/matrix.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
126 473 M
238 473 L
238 569 L
126 569 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 96 543 258] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
127 521 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
30 521 M
108 521 L
stroke
grestore
gsave
matrix currentmatrix
[0 0 0 0 126 473] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
335 521 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
238 521 M
316 521 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
752 306 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
655 306 M
733 306 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
554 481 M
548.75 481.75 L
545 484 L
542.75 487.75 L
542 493 L
542 493 L
542 493.783 L
542 495.652 L
542 498.454 L
542 502.031 L
542 506.23 L
542 510.895 L
542 515.87 L
542 521 L
542 526.13 L
542 531.105 L
542 535.77 L
542 539.969 L
542 543.546 L
542 546.348 L
542 548.217 L
542 549 L
542 549 L
542.75 554.25 L
545 558 L
548.75 560.25 L
554 561 L
554 561 L
555.164 561 L
558.109 561 L
562.578 561 L
568.312 561 L
575.055 561 L
582.547 561 L
590.531 561 L
598.75 561 L
606.945 561 L
614.859 561 L
622.234 561 L
628.812 561 L
634.336 561 L
638.547 561 L
641.188 561 L
642 561 L
642 561 L
647.25 560.25 L
651 558 L
653.25 554.25 L
654 549 L
654 549 L
654 548.217 L
654 546.348 L
654 543.546 L
654 539.969 L
654 535.77 L
654 531.105 L
654 526.13 L
654 521 L
654 515.87 L
654 510.895 L
654 506.23 L
654 502.031 L
654 498.454 L
654 495.652 L
654 493.783 L
654 493 L
654 493 L
653.25 487.75 L
651 484 L
647.25 481.75 L
642 481 L
642 481 L
640.858 481 L
637.973 481 L
633.593 481 L
627.969 481 L
621.348 481 L
613.98 481 L
606.115 481 L
598 481 L
589.885 481 L
582.02 481 L
574.652 481 L
568.031 481 L
562.407 481 L
558.027 481 L
555.142 481 L
554 481 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 46 526] concat
newpath
0 0 M 0 14 L 45.568 14 L 45.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
44 524 M 44 542.471 L 93.568 542.471 L 93.568 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 46 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Object) 43.568 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 30 498] concat
newpath
0 0 M 0 14 L 83.676 14 L 83.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
28 496 M 28 514.471 L 115.676 514.471 L 115.676 496 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 30 498] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Coordinates) 81.676 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 242 498] concat
newpath
0 0 M 0 14 L 83.676 14 L 83.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
240 496 M 240 514.471 L 327.676 514.471 L 327.676 496 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 242 498] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Coordinates) 81.676 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 270 526] concat
newpath
0 0 M 0 14 L 26.906 14 L 26.906 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
268 524 M 268 542.471 L 298.906 542.471 L 298.906 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 270 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Eye) 24.906 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 659 283] concat
newpath
0 0 M 0 14 L 83.676 14 L 83.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
657 281 M 657 299.471 L 744.676 299.471 L 744.676 281 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 659 283] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Coordinates) 81.676 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 673 311] concat
newpath
0 0 M 0 14 L 55.662 14 L 55.662 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
671 309 M 671 327.471 L 730.662 327.471 L 730.662 309 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 673 311] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Window) 53.662 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 658 498] concat
newpath
0 0 M 0 14 L 83.676 14 L 83.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
656 496 M 656 514.471 L 743.676 514.471 L 743.676 496 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 658 498] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Coordinates) 81.676 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 662 523] concat
newpath
0 0 M 0 33 L 77.46 33 L 77.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
660 521 M 660 558.471 L 741.46 558.471 L 741.46 521 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 662 523] concat
1 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 21.4706 M (Normalized) 75.46 S
16.162 2.47059 M 16.162 2.47059 M (Device) 45.136 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 142 530] concat
newpath
0 0 M 0 14 L 82.528 14 L 82.528 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
140 528 M 140 546.471 L 226.528 546.471 L 226.528 528 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 142 530] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Model-View) 80.528 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 158 494] concat
newpath
0 0 M 0 14 L 43.23 14 L 43.23 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
156 492 M 156 510.471 L 203.23 510.471 L 203.23 492 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 158 494] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Matrix) 41.23 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 558 503] concat
newpath
0 0 M 0 33 L 80.596 33 L 80.596 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
556 501 M 556 538.471 L 640.596 538.471 L 640.596 501 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 558 503] concat
1 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 21.4706 M (Perspective) 78.596 S
13.068 2.47059 M 13.068 2.47059 M (Division) 54.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 546 290] concat
newpath
0 0 M 0 33 L 104.676 33 L 104.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
544 288 M 544 325.471 L 652.676 325.471 L 652.676 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 546 290] concat
22.777 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
22.777 21.4706 M (Viewport) 59.122 S
0 2.47059 M (Transformation) 102.676 S
setmatrix
grestore
gsave
matrix currentmatrix
[112 0 0 96 334 473.1] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
543 521.1 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
446 521.1 M
524 521.1 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 450 498] concat
newpath
0 0 M 0 14 L 83.676 14 L 83.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
448 496 M 448 514.471 L 535.676 514.471 L 535.676 496 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 450 498] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Coordinates) 81.676 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 475 528] concat
newpath
0 0 M 0 14 L 28.446 14 L 28.446 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
473 526 M 473 544.471 L 505.446 544.471 L 505.446 526 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 475 528] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Clip) 26.446 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 350 493] concat
newpath
0 0 M 0 52 L 70.46 52 L 70.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
348 491 M 348 547.471 L 422.46 547.471 L 422.46 491 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 350 493] concat
1 40.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 40.4706 M (Projection) 68.46 S
35.23 21.4706 M 14.615 2.47059 M 14.615 2.47059 M (Matrix) 41.23 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
543 304.1 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
654 521.1 M
772 521.1 L
772 424.1 L
479 424.1 L
479 304.1 L
524 304.1 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1002 a Fm(Figure)e(2.6.)j(V)m(ertex)e(transformation)d(sequence.)p
1807 1032 2 790 v 350 1034 1459 2 v 403 1273 a FC(If)j(a)f(v)o(ertex)h
(in)h(ob)s(ject)e(co)q(ordinates)h(is)h(giv)o(en)f(b)o(y)1281
1164 y Fi(0)1281 1237 y(B)1281 1262 y(B)1281 1289 y(@)1328
1189 y Fy(x)1354 1196 y Fu(o)1330 1245 y Fy(y)1352 1252
y Fu(o)1331 1302 y Fy(z)1352 1309 y Fu(o)1325 1358 y
Fy(w)1358 1365 y Fu(o)1384 1164 y Fi(1)1384 1237 y(C)1384
1262 y(C)1384 1289 y(A)1436 1273 y FC(and)g(the)g(mo)q(del-view)332
1405 y(matrix)g(is)h Fy(M)5 b FC(,)14 b(then)i(the)f(v)o(ertex's)g(ey)o
(e)g(co)q(ordinates)g(are)g(found)h(as)871 1456 y Fi(0)871
1529 y(B)871 1554 y(B)871 1581 y(@)919 1481 y Fy(x)945
1488 y Fu(e)920 1537 y Fy(y)942 1544 y Fu(e)921 1594
y Fy(z)942 1601 y Fu(e)915 1650 y Fy(w)948 1657 y Fu(e)974
1456 y Fi(1)974 1529 y(C)974 1554 y(C)974 1581 y(A)1023
1565 y FC(=)d Fy(M)1127 1456 y Fi(0)1127 1529 y(B)1127
1554 y(B)1127 1581 y(@)1175 1481 y Fy(x)1201 1488 y Fu(o)1176
1537 y Fy(y)1198 1544 y Fu(o)1177 1594 y Fy(z)1198 1601
y Fu(o)1171 1650 y Fy(w)1204 1657 y Fu(o)1231 1456 y
Fi(1)1231 1529 y(C)1231 1554 y(C)1231 1581 y(A)1275 1565
y Fy(:)332 1726 y FC(Similarly)l(,)21 b(if)e Fy(P)25
b FC(is)19 b(the)f(pro)s(jection)h(matrix,)f(then)h(the)f(v)o(ertex's)g
(clip)i(co)q(ordinates)332 1782 y(are)879 1796 y Fi(0)879
1869 y(B)879 1894 y(B)879 1920 y(@)926 1820 y Fy(x)952
1827 y Fu(c)928 1877 y Fy(y)950 1884 y Fu(c)929 1933
y Fy(z)950 1940 y Fu(c)923 1990 y Fy(w)956 1997 y Fu(c)980
1796 y Fi(1)980 1869 y(C)980 1894 y(C)980 1920 y(A)1029
1905 y FC(=)13 b Fy(P)1120 1796 y Fi(0)1120 1869 y(B)1120
1894 y(B)1120 1920 y(@)1168 1820 y Fy(x)1194 1827 y Fu(e)1170
1877 y Fy(y)1192 1884 y Fu(e)1170 1933 y Fy(z)1191 1940
y Fu(e)1164 1990 y Fy(w)1197 1997 y Fu(e)1223 1796 y
Fi(1)1223 1869 y(C)1223 1894 y(C)1223 1920 y(A)1267 1905
y Fy(:)332 2055 y FC(The)j(v)o(ertex's)e(normalized)i(device)h(co)q
(ordinates)e(are)g(then)870 2094 y Fi(0)870 2169 y(@)914
2122 y Fy(x)940 2129 y Fu(d)916 2178 y Fy(y)938 2185
y Fu(d)916 2235 y Fy(z)937 2242 y Fu(d)968 2094 y Fi(1)968
2169 y(A)1017 2178 y FC(=)1065 2094 y Fi(0)1065 2169
y(@)1109 2122 y Fy(x)1135 2129 y Fu(c)1152 2122 y Fy(=w)1208
2129 y Fu(c)1110 2178 y Fy(y)1132 2185 y Fu(c)1150 2178
y Fy(=w)1206 2185 y Fu(c)1111 2235 y Fy(z)1132 2242 y
Fu(c)1149 2235 y Fy(=w)1205 2242 y Fu(c)1232 2094 y Fi(1)1232
2169 y(A)1276 2178 y Fy(:)332 2346 y Fl(2.10.1)55 b(Con)n(trolling)19
b(the)f(Viewp)r(ort)332 2432 y FC(The)k(viewp)q(ort)f(transformation)f
(is)i(determined)h(b)o(y)e(the)g(viewp)q(ort's)g(width)h(and)332
2488 y(heigh)o(t)h(in)h(pixels,)i Fy(p)711 2495 y Fu(x)755
2488 y FC(and)d Fy(p)874 2495 y Fu(y)895 2488 y FC(,)h(resp)q(ectiv)o
(ely)l(,)i(and)d(its)g(cen)o(ter)f(\()p Fy(o)1547 2495
y Fu(x)1569 2488 y Fy(;)8 b(o)1612 2495 y Fu(y)1632 2488
y FC(\))22 b(\(also)h(in)p eop
%%Page: 29 38
29 37 bop 120 137 a Fx(2.10.)34 b(COORDINA)l(TE)17 b(TRANSF)o(ORMA)l
(TIONS)517 b FC(29)120 331 y(pixels\).)22 b(The)15 b(v)o(ertex's)f
(windo)o(w)i(co)q(ordinates,)965 247 y Fi(0)965 322 y(@)1009
275 y Fy(x)1035 282 y Fu(w)1011 331 y Fy(y)1033 338 y
Fu(w)1011 388 y Fy(z)1032 395 y Fu(w)1071 247 y Fi(1)1071
322 y(A)1107 331 y FC(,)f(are)g(giv)o(en)g(b)o(y)460
458 y Fi(0)460 533 y(@)504 486 y Fy(x)530 493 y Fu(w)506
542 y Fy(y)528 549 y Fu(w)507 599 y Fy(z)528 606 y Fu(w)566
458 y Fi(1)566 533 y(A)615 542 y FC(=)663 458 y Fi(0)663
533 y(@)823 486 y FC(\()p Fy(p)864 493 y Fu(x)886 486
y Fy(=)p FC(2\))p Fy(x)976 493 y Fu(d)1005 486 y FC(+)c
Fy(o)1073 493 y Fu(x)826 542 y FC(\()p Fy(p)867 549 y
Fu(y)887 542 y Fy(=)p FC(2\))p Fy(y)973 549 y Fu(d)1003
542 y FC(+)g Fy(o)1071 549 y Fu(y)707 599 y FC([\()p
Fy(f)j FB(\000)d Fy(n)p FC(\))p Fy(=)p FC(2])p Fy(z)945
606 y Fu(d)974 599 y FC(+)g(\()p Fy(n)f FC(+)g Fy(f)5
b FC(\))p Fy(=)p FC(2)1218 458 y Fi(1)1218 533 y(A)1262
542 y Fy(:)120 694 y FC(The)16 b(factor)e(and)h(o\013set)g(applied)i
(to)d Fy(z)788 701 y Fu(d)824 694 y FC(enco)q(ded)i(b)o(y)f
Fy(n)h FC(and)f Fy(f)21 b FC(are)14 b(set)h(using)234
792 y Fw(void)30 b Fz(DepthRange)p FC(\()h Fw(clampd)14
b Fv(n)p Fw(,)h(clampd)f Fv(f)h FC(\))g Fw(;)120 890
y FC(Eac)o(h)f(of)g Fv(n)g FC(and)g Fv(f)g FC(are)g(clamp)q(ed)i(to)d
(lie)j(within)f([0)p Fy(;)8 b FC(1],)k(as)i(are)g(all)h(argumen)o(ts)e
(of)h(t)o(yp)q(e)120 946 y Fw(clampd)f FC(or)g Fw(clampf)p
FC(.)19 b Fy(z)528 953 y Fu(w)569 946 y FC(is)14 b(tak)o(en)g(to)e(b)q
(e)j(represen)o(ted)f(in)g(\014xed-p)q(oin)o(t)h(with)f(at)f(least)120
1003 y(as)g(man)o(y)h(bits)f(as)h(there)f(are)g(in)i(the)e(depth)h
(bu\013er)g(of)f(the)g(framebu\013er.)19 b(W)l(e)14 b(assume)120
1059 y(that)j(the)h(\014xed-p)q(oin)o(t)h(represen)o(tation)f(used)h
(represen)o(ts)e(eac)o(h)h(v)m(alue)h Fy(k)q(=)p FC(\(2)1470
1043 y Fu(m)1515 1059 y FB(\000)12 b FC(1\),)120 1115
y(where)20 b Fy(k)g FB(2)g(f)p FC(0)p Fy(;)8 b FC(1)p
Fy(;)g(:)f(:)h(:)t(;)g FC(2)563 1099 y Fu(m)608 1115
y FB(\000)13 b FC(1)p FB(g)p FC(,)19 b(as)g Fy(k)h FC(\(e.g.)31
b(1.0)18 b(is)i(represen)o(ted)g(in)g(binary)f(as)g(a)120
1172 y(string)d(of)e(all)i(ones\).)191 1229 y(Viewp)q(ort)g
(transformation)d(parameters)i(are)g(sp)q(eci\014ed)i(using)234
1327 y Fw(void)30 b Fz(Viewp)q(ort)p FC(\()g Fw(int)15
b Fv(x)p Fw(,)g(int)g Fv(y)p Fw(,)g(sizei)f Fv(w)p Fw(,)h(sizei)g
Fv(h)g FC(\))g Fw(;)120 1425 y FC(where)g Fv(x)f FC(and)g
Fv(y)g FC(giv)o(e)h(the)f Fy(x)g FC(and)g Fy(y)i FC(windo)o(w)f(co)q
(ordinates)f(of)g(the)g(viewp)q(ort's)g(lo)o(w)o(er-)120
1481 y(left)j(corner)f(and)h Fv(w)g FC(and)f Fv(h)h FC(giv)o(e)f(the)h
(viewp)q(ort's)f(width)h(and)g(heigh)o(t,)f(resp)q(ectiv)o(ely)l(.)120
1538 y(The)c(viewp)q(ort)h(parameters)d(sho)o(wn)i(in)h(the)e(ab)q(o)o
(v)o(e)h(equations)g(are)f(found)h(from)g(these)120 1594
y(v)m(alues)17 b(as)e Fy(o)334 1601 y Fu(x)368 1594 y
FC(=)e Fy(x)d FC(+)h Fy(w)q(=)p FC(2)j(and)h Fy(o)702
1601 y Fu(y)736 1594 y FC(=)e Fy(y)f FC(+)e Fy(h=)p FC(2;)15
b Fy(p)986 1601 y Fu(x)1020 1594 y FC(=)e Fy(w)q FC(,)i
Fy(p)1153 1601 y Fu(y)1186 1594 y FC(=)e Fy(h)p FC(.)191
1651 y(Viewp)q(ort)20 b(width)f(and)h(heigh)o(t)g(are)f(clamp)q(ed)h
(to)f(implemen)o(tation-dep)q(enden)o(t)120 1708 y(maxim)o(ums)d(when)h
(sp)q(eci\014ed.)25 b(The)16 b(maxim)o(um)g(width)h(and)g(heigh)o(t)f
(ma)o(y)g(b)q(e)g(found)120 1764 y(b)o(y)i(issuing)i(an)e(appropriate)g
Fz(Get)g FC(command)g(\(see)g(Chapter)g(6\).)28 b(The)18
b(maxim)o(um)120 1821 y(viewp)q(ort)13 b(dimensions)h(m)o(ust)e(b)q(e)h
(greater)f(than)g(or)g(equal)h(to)f(the)g(visible)j(dimensions)120
1877 y(of)f(the)g(displa)o(y)i(b)q(eing)f(rendered)g(to.)k
Fr(INVALID)p 939 1877 14 2 v 14 w(VALUE)13 b FC(is)i(generated)f(if)h
(either)g Fv(w)f FC(or)g Fv(h)120 1934 y FC(is)i(negativ)o(e.)191
1991 y(The)g(state)g(required)h(to)f(implemen)o(t)h(the)g(viewp)q(ort)f
(transformation)f(is)i(6)f(in)o(te-)120 2048 y(gers.)i(In)11
b(the)f(initial)j(state,)d Fv(w)g FC(and)h Fv(h)f FC(are)g(set)g(to)f
(the)i(width)g(and)f(heigh)o(t,)h(resp)q(ectiv)o(ely)l(,)120
2104 y(of)j(the)g(windo)o(w)g(in)o(to)g(whic)o(h)h(the)f(GL)f(is)i(to)e
(do)h(its)g(rendering.)21 b Fy(o)1251 2111 y Fu(x)1286
2104 y FC(and)15 b Fy(o)1396 2111 y Fu(y)1430 2104 y
FC(are)f(set)f(to)120 2160 y Fy(w)q(=)p FC(2)i(and)g
Fy(h=)p FC(2,)g(resp)q(ectiv)o(ely)l(.)21 b Fy(n)16 b
FC(and)f Fy(f)20 b FC(are)15 b(set)g(to)g(0)p Fy(:)p
FC(0)f(and)h(1)p Fy(:)p FC(0,)f(resp)q(ectiv)o(ely)l(.)120
2288 y Fl(2.10.2)56 b(Matrices)120 2375 y FC(The)21 b(pro)s(jection)f
(matrix)g(and)h(mo)q(del-view)h(matrix)e(are)g(set)g(and)h(mo)q
(di\014ed)g(with)120 2432 y(a)d(v)m(ariet)o(y)g(of)f(commands.)28
b(The)18 b(a\013ected)g(matrix)f(is)i(determined)g(b)o(y)f(the)g
(curren)o(t)120 2488 y(matrix)d(mo)q(de.)20 b(The)c(curren)o(t)f
(matrix)g(mo)q(de)g(is)h(set)f(with)p eop
%%Page: 30 39
30 38 bop 332 137 a FC(30)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)446 286 y Fw(void)29 b Fz(MatrixMo)q(de)p
FC(\()i Fw(enum)14 b Fv(mo)n(de)i FC(\))e Fw(;)332 373
y FC(whic)o(h)20 b(tak)o(es)e(one)h(of)g(the)g(three)g(pre-de\014ned)h
(constan)o(ts)e Fr(TEXTURE)p FC(,)f Fr(MODELVIEW)p FC(,)g(or)332
430 y Fr(PROJECTION)11 b FC(as)j(the)f(argumen)o(t)g(v)m(alue.)20
b Fr(TEXTURE)12 b FC(is)i(describ)q(ed)i(later.)j(If)14
b(the)g(curren)o(t)332 486 y(matrix)h(mo)q(de)g(is)h
Fr(MODELVIEW)p FC(,)c(then)k(matrix)e(op)q(erations)h(apply)h(to)f(the)
g(mo)q(del-view)332 542 y(matrix;)g(if)g Fr(PROJECTION)p
FC(,)e(then)i(they)h(apply)g(to)e(the)i(pro)s(jection)f(matrix.)403
599 y(The)g(t)o(w)o(o)f(basic)i(commands)f(for)f(a\013ecting)h(the)h
(curren)o(t)f(matrix)g(are)446 686 y Fw(void)29 b Fz(LoadMatrix)p
FB(f)p Fz(fd)p FB(g)p FC(\()i Fw(T)15 b Fv(m[16])h FC(\))e
Fw(;)446 742 y(void)29 b Fz(MultMatrix)p FB(f)p Fz(fd)p
FB(g)p FC(\()h Fw(T)15 b Fv(m[16])h FC(\))f Fw(;)332
829 y Fz(LoadMatrix)e FC(tak)o(es)f(a)f(p)q(oin)o(ter)i(to)f(a)f(4)t
FB(\002)t FC(4)h(matrix)g(stored)g(in)h(column-ma)s(jor)f(order)332
885 y(as)j(16)g(consecutiv)o(e)h(\015oating-p)q(oin)o(t)f(v)m(alues,)h
(i.e.)21 b(as)852 945 y Fi(0)852 1018 y(B)852 1043 y(B)852
1069 y(@)896 969 y Fy(a)920 976 y Fq(1)985 969 y Fy(a)1009
976 y Fq(5)1083 969 y Fy(a)1107 976 y Fq(9)1181 969 y
Fy(a)1205 976 y Fq(13)896 1026 y Fy(a)920 1033 y Fq(2)985
1026 y Fy(a)1009 1033 y Fq(6)1074 1026 y Fy(a)1098 1033
y Fq(10)1181 1026 y Fy(a)1205 1033 y Fq(14)896 1082 y
Fy(a)920 1089 y Fq(3)985 1082 y Fy(a)1009 1089 y Fq(7)1074
1082 y Fy(a)1098 1089 y Fq(11)1181 1082 y Fy(a)1205 1089
y Fq(15)896 1139 y Fy(a)920 1146 y Fq(4)985 1139 y Fy(a)1009
1146 y Fq(8)1074 1139 y Fy(a)1098 1146 y Fq(12)1181 1139
y Fy(a)1205 1146 y Fq(16)1250 945 y Fi(1)1250 1018 y(C)1250
1043 y(C)1250 1069 y(A)1294 1054 y Fy(:)332 1225 y FC(\(This)13
b(di\013ers)g(from)e(the)i(standard)f(ro)o(w-ma)s(jor)e
Fw(C)j FC(ordering)g(for)e(matrix)i(elemen)o(ts.)19 b(If)332
1282 y(the)11 b(standard)g(ordering)h(is)f(used,)h(all)h(of)d(the)h
(subsequen)o(t)h(transformation)e(equations)332 1338
y(are)15 b(transp)q(osed,)g(and)g(the)g(columns)h(represen)o(ting)g(v)o
(ectors)f(b)q(ecome)h(ro)o(ws.\))403 1395 y(The)c(sp)q(eci\014ed)h
(matrix)f(replaces)g(the)g(curren)o(t)f(matrix)g(with)h(the)g(one)g(p)q
(oin)o(ted)g(to.)332 1451 y Fz(MultMatrix)f FC(tak)o(es)f(the)h(same)g
(t)o(yp)q(e)f(argumen)o(t)g(as)h Fz(LoadMatrix)p FC(,)h(but)f(m)o
(ultiplies)332 1508 y(the)18 b(curren)o(t)g(matrix)g(b)o(y)g(the)h(one)
f(p)q(oin)o(ted)h(to)f(and)g(replaces)h(the)g(curren)o(t)f(matrix)332
1564 y(with)f(the)g(pro)q(duct.)25 b(If)17 b Fy(C)i FC(is)f(the)e
(curren)o(t)h(matrix)f(and)h Fy(M)22 b FC(is)17 b(the)g(matrix)f(p)q
(oin)o(ted)332 1621 y(to)f(b)o(y)g Fz(MultMatrix)p FC('s)g(argumen)o
(t,)f(then)i(the)f(resulting)h(curren)o(t)f(matrix,)g
Fy(C)1709 1604 y FG(0)1720 1621 y FC(,)g(is)961 1714
y Fy(C)997 1695 y FG(0)1021 1714 y FC(=)e Fy(C)g FB(\001)d
Fy(M)r(:)403 1808 y FC(The)15 b(command)446 1894 y Fw(void)29
b Fz(LoadIden)o(tit)o(y)p FC(\()i Fw(void)39 b FC(\))15
b Fw(;)332 1981 y FC(e\013ectiv)o(ely)h(calls)g Fz(LoadMatrix)h
FC(with)e(the)g(iden)o(tit)o(y)h(matrix:)912 2041 y Fi(0)912
2114 y(B)912 2139 y(B)912 2165 y(@)956 2065 y FC(1)45
b(0)g(0)g(0)956 2122 y(0)g(1)g(0)g(0)956 2178 y(0)g(0)g(1)g(0)956
2235 y(0)g(0)g(0)g(1)1190 2041 y Fi(1)1190 2114 y(C)1190
2139 y(C)1190 2165 y(A)1234 2150 y Fy(:)403 2319 y FC(There)16
b(are)g(a)g(v)m(ariet)o(y)h(of)f(other)g(commands)g(that)g(manipulate)h
(matrices.)24 b Fz(Ro-)332 2375 y(tate)p FC(,)14 b Fz(T)l(ranslate)p
FC(,)g Fz(Scale)p FC(,)g Fz(F)l(rustum)p FC(,)e(and)h
Fz(Ortho)g FC(manipulate)i(the)e(curren)o(t)g(ma-)332
2432 y(trix.)38 b(Eac)o(h)22 b(computes)f(a)g(matrix)g(and)h(then)f(in)
o(v)o(ok)o(es)h Fz(MultMatrix)f FC(with)h(this)332 2488
y(matrix.)e(In)15 b(the)h(case)f(of)p eop
%%Page: 31 40
31 39 bop 120 137 a Fx(2.10.)34 b(COORDINA)l(TE)17 b(TRANSF)o(ORMA)l
(TIONS)517 b FC(31)234 286 y Fw(void)30 b Fz(Rotate)p
FB(f)p Fz(fd)p FB(g)p FC(\()h Fw(T)15 b Fy(\022)q Fw(,)g(T)g
Fv(x)p Fw(,)g(T)g Fv(y)p Fw(,)g(T)g Fv(z)g FC(\))g Fw(;)120
377 y Fy(\022)e FC(giv)o(es)f(an)f(angle)h(of)f(rotation)f(in)i
(degrees;)h(the)e(co)q(ordinates)h(of)f(a)g(v)o(ector)g
Fz(v)g FC(are)g(giv)o(en)120 434 y(b)o(y)g Fz(v)i FC(=)g(\()p
Fy(x)e(y)i(z)r FC(\))399 417 y Fu(T)426 434 y FC(.)19
b(The)11 b(computed)h(matrix)f(is)g(a)g(coun)o(ter-clo)q(c)o(kwise)i
(rotation)d(ab)q(out)120 490 y(the)k(line)h(through)d(the)i(origin)g
(with)f(the)g(sp)q(eci\014ed)j(axis)d(when)h(that)e(axis)i(is)g(p)q
(oin)o(ting)120 547 y(up)g(\(i.e.)19 b(the)13 b(righ)o(t-hand)h(rule)g
(determines)g(the)f(sense)h(of)f(the)g(rotation)f(angle\).)19
b(The)120 603 y(matrix)c(is)h(th)o(us)694 617 y Fi(0)694
690 y(B)694 715 y(B)694 741 y(@)954 641 y FC(0)806 698
y Fy(R)113 b FC(0)954 754 y(0)738 811 y(0)51 b(0)g(0)45
b(1)985 617 y Fi(1)985 690 y(C)985 715 y(C)985 741 y(A)1029
726 y Fy(:)120 895 y FC(Let)16 b Fz(u)c FC(=)h Fz(v)q
Fy(=)p FB(jj)p Fz(v)q FB(jj)d FC(=)j(\()7 b Fy(x)533
878 y FG(0)590 895 y Fy(y)614 878 y FG(0)671 895 y Fy(z)694
878 y FG(0)714 895 y FC(\))731 874 y Fu(T)759 895 y FC(.)20
b(If)626 1043 y Fy(S)15 b FC(=)717 959 y Fi(0)717 1033
y(@)785 986 y FC(0)69 b FB(\000)p Fy(z)935 970 y FG(0)1011
986 y Fy(y)1035 970 y FG(0)779 1043 y Fy(z)802 1026 y
FG(0)901 1043 y FC(0)g FB(\000)p Fy(x)1054 1026 y FG(0)761
1099 y FB(\000)p Fy(y)820 1083 y FG(0)893 1099 y Fy(x)919
1083 y FG(0)1018 1099 y FC(0)1073 959 y Fi(1)1073 1033
y(A)120 1188 y FC(then)513 1245 y Fy(R)12 b FC(=)h Fz(uu)666
1226 y Fu(T)704 1245 y FC(+)d(cos)e Fy(\022)q FC(\()p
Fy(I)14 b FB(\000)c Fz(uu)995 1226 y Fu(T)1023 1245 y
FC(\))f(+)i(sin)d Fy(\022)q(S:)191 1326 y FC(The)15 b(argumen)o(ts)g
(to)234 1417 y Fw(void)30 b Fz(T)l(ranslate)p FB(f)p
Fz(fd)p FB(g)p FC(\()g Fw(T)15 b Fv(x)p Fw(,)g(T)g Fv(y)p
Fw(,)g(T)g Fv(z)g FC(\))g Fw(;)120 1508 y FC(giv)o(e)d(the)g(co)q
(ordinates)g(of)f(a)h(translation)f(v)o(ector)g(as)h(\()p
Fy(x)f(y)i(z)r FC(\))1149 1491 y Fu(T)1177 1508 y FC(.)18
b(The)12 b(resulting)h(matrix)120 1564 y(is)j(a)f(translation)g(b)o(y)g
(the)h(sp)q(eci\014ed)h(v)o(ector:)698 1629 y Fi(0)698
1702 y(B)698 1727 y(B)698 1753 y(@)742 1653 y FC(1)45
b(0)h(0)f Fy(x)742 1710 y FC(0)g(1)h(0)g Fy(y)742 1766
y FC(0)f(0)h(1)g Fy(z)742 1823 y FC(0)f(0)h(0)g(1)980
1629 y Fi(1)980 1702 y(C)980 1727 y(C)980 1753 y(A)1024
1738 y Fy(:)234 1914 y Fw(void)30 b Fz(Scale)p FB(f)p
Fz(fd)p FB(g)p FC(\()g Fw(T)15 b Fv(x)p Fw(,)g(T)h Fv(y)p
Fw(,)f(T)g Fv(z)f FC(\))h Fw(;)120 2005 y FC(pro)q(duces)h(a)e(general)
h(scaling)h(along)f(the)g Fy(x)p FC(-,)f Fy(y)r FC(-,)h(and)f
Fy(z)r FC(-)h(axes.)20 b(The)15 b(corresp)q(onding)120
2062 y(matrix)g(is)698 2075 y Fi(0)698 2148 y(B)698 2173
y(B)698 2200 y(@)741 2100 y Fy(x)46 b FC(0)g(0)g(0)743
2156 y(0)h Fy(y)g FC(0)f(0)743 2213 y(0)h(0)f Fy(z)i
FC(0)743 2269 y(0)f(0)f(0)g(1)981 2075 y Fi(1)981 2148
y(C)981 2173 y(C)981 2200 y(A)1025 2185 y Fy(:)191 2341
y FC(F)l(or)234 2432 y Fw(void)40 b Fz(F)l(rustum)p FC(\()f
Fw(double)19 b Fv(l)p Fw(,)i(double)f Fv(r)p Fw(,)h(double)e
Fv(b)p Fw(,)j(double)d Fv(t)p Fw(,)302 2488 y(double)c
Fv(n)p Fw(,)f(double)g Fv(f)i FC(\))e Fw(;)p eop
%%Page: 32 41
32 40 bop 332 137 a FC(32)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)332 286 y FC(the)i(co)q(ordinates)g(\()p
Fy(l)f(b)29 b FB(\000)12 b Fy(n)p FC(\))847 270 y Fu(T)892
286 y FC(and)18 b(\()p Fy(r)f(t)30 b FB(\000)12 b Fy(n)p
FC(\))1177 270 y Fu(T)1222 286 y FC(sp)q(ecify)19 b(the)e(p)q(oin)o(ts)
h(on)g(the)f(near)332 343 y(clipping)h(plane)e(that)e(are)h(mapp)q(ed)h
(to)f(the)g(lo)o(w)o(er-left)g(and)h(upp)q(er-righ)o(t)g(corners)f(of)
332 399 y(the)i(windo)o(w,)g(resp)q(ectiv)o(ely)h(\(assuming)f(that)e
(the)i(ey)o(e)g(is)g(lo)q(cated)g(at)f(\(0)g(0)h(0\))1718
383 y Fu(T)1745 399 y FC(\).)23 b Fy(f)332 456 y FC(giv)o(es)16
b(the)f(distance)h(from)f(the)h(ey)o(e)f(to)g(the)h(far)e(clipping)k
(plane.)k(If)16 b(either)g Fy(n)f FC(or)g Fy(f)21 b FC(is)332
512 y(less)16 b(than)f(or)g(equal)i(to)d(zero,)h Fy(l)h
FC(is)g(equal)g(to)f Fy(r)q FC(,)g Fy(b)g FC(is)h(equal)g(to)f
Fy(t)p FC(,)g(or)g Fy(n)h FC(is)g(equal)g(to)f Fy(f)5
b FC(,)332 569 y(the)15 b(error)g Fr(INVALID)p 679 569
14 2 v 14 w(VALUE)f FC(results.)20 b(The)c(corresp)q(onding)g(matrix)f
(is)777 629 y Fi(0)777 702 y(B)777 727 y(B)777 752 y(B)777
779 y(@)834 640 y Fq(2)p Fu(n)p 826 647 56 2 v 826 673
a(r)q FG(\000)p Fu(l)953 657 y FC(0)1072 640 y Fu(r)q
Fq(+)p Fu(l)p 1072 647 V 1072 673 a(r)q FG(\000)p Fu(l)1249
657 y FC(0)842 722 y(0)945 704 y Fq(2)p Fu(n)p 937 711
V 937 737 a(t)p FG(\000)p Fu(b)1072 704 y(t)p Fq(+)p
Fu(b)p 1072 711 V 1072 737 a(t)p FG(\000)p Fu(b)1249
722 y FC(0)842 788 y(0)88 b(0)66 b FB(\000)1082 768 y
Fu(f)t Fq(+)p Fu(n)p 1082 778 70 2 v 1082 804 a(f)t FG(\000)p
Fu(n)1203 788 y FB(\000)1248 768 y Fq(2)p Fu(f)t(n)p
1243 778 V 1243 804 a(f)t FG(\000)p Fu(n)842 845 y FC(0)88
b(0)95 b FB(\000)p FC(1)120 b(0)1325 629 y Fi(1)1325
702 y(C)1325 727 y(C)1325 752 y(C)1325 779 y(A)1369 751
y Fy(:)446 940 y Fw(void)49 b Fz(Ortho)p FC(\()h Fw(double)24
b Fv(l)p Fw(,)j(double)e Fv(r)p Fw(,)i(double)d Fv(b)p
Fw(,)k(double)c Fv(t)p Fw(,)514 997 y(double)14 b Fv(n)p
Fw(,)h(double)f Fv(f)h FC(\))g Fw(;)332 1099 y FC(describ)q(es)d(a)e
(matrix)g(that)g(pro)q(duces)h(parallel)h(pro)s(jection.)18
b(\()p Fy(l)11 b(b)f FB(\000)p Fy(n)p FC(\))1519 1082
y Fu(T)1558 1099 y FC(and)g(\()p Fy(r)h(t)g FB(\000)p
Fy(n)p FC(\))1798 1082 y Fu(T)332 1155 y FC(sp)q(ecify)16
b(the)f(p)q(oin)o(ts)g(on)g(the)f(near)h(clipping)i(plane)f(that)e(are)
g(mapp)q(ed)i(to)e(the)h(lo)o(w)o(er-)332 1212 y(left)f(and)f(upp)q
(er-righ)o(t)h(corners)f(of)g(the)g(windo)o(w,)g(resp)q(ectiv)o(ely)l
(.)21 b Fv(f)13 b FC(giv)o(es)g(the)h(distance)332 1268
y(from)g(the)h(ey)o(e)f(to)g(the)h(far)f(clipping)j(plane.)j(If)15
b Fy(l)g FC(is)g(equal)g(to)f Fy(r)q FC(,)g Fy(b)g FC(is)h(equal)h(to)e
Fy(t)p FC(,)g(or)g Fy(n)332 1325 y FC(is)i(equal)g(to)e
Fy(f)5 b FC(,)15 b(the)h(error)e Fr(INVALID)p 955 1325
14 2 v 14 w(VALUE)g FC(results.)21 b(The)15 b(corresp)q(onding)h
(matrix)f(is)777 1385 y Fi(0)777 1459 y(B)777 1483 y(B)777
1508 y(B)777 1535 y(@)845 1396 y Fq(2)p 826 1403 56 2
v 826 1429 a Fu(r)q FG(\000)p Fu(l)953 1414 y FC(0)112
b(0)99 b FB(\000)1250 1396 y Fu(r)q Fq(+)p Fu(l)p 1250
1403 V 1250 1429 a(r)q FG(\000)p Fu(l)842 1478 y FC(0)955
1460 y Fq(2)p 937 1467 V 937 1493 a Fu(t)p FG(\000)p
Fu(b)1088 1478 y FC(0)g FB(\000)1250 1460 y Fu(t)p Fq(+)p
Fu(b)p 1250 1467 V 1250 1493 a(t)p FG(\000)p Fu(b)842
1544 y FC(0)88 b(0)66 b FB(\000)1109 1527 y Fq(2)p 1082
1534 70 2 v 1082 1560 a Fu(f)t FG(\000)p Fu(n)1203 1544
y FB(\000)1243 1524 y Fu(f)t Fq(+)p Fu(n)p 1243 1534
V 1243 1560 a(f)t FG(\000)p Fu(n)842 1601 y FC(0)88 b(0)112
b(0)138 b(1)1325 1385 y Fi(1)1325 1459 y(C)1325 1483
y(C)1325 1508 y(C)1325 1535 y(A)1369 1507 y Fy(:)403
1690 y FC(There)12 b(is)g(another)f(4)s FB(\002)s FC(4)i(matrix)e(that)
g(is)h(applied)i(to)d(texture)h(co)q(ordinates.)19 b(This)332
1746 y(matrix)c(is)h(applied)h(as)762 1810 y Fi(0)762
1883 y(B)762 1908 y(B)762 1935 y(@)805 1835 y Fy(m)845
1842 y Fq(1)911 1835 y Fy(m)951 1842 y Fq(5)1024 1835
y Fy(m)1064 1842 y Fq(9)1138 1835 y Fy(m)1178 1842 y
Fq(13)805 1891 y Fy(m)845 1898 y Fq(2)911 1891 y Fy(m)951
1898 y Fq(6)1016 1891 y Fy(m)1056 1898 y Fq(10)1138 1891
y Fy(m)1178 1898 y Fq(14)805 1948 y Fy(m)845 1955 y Fq(3)911
1948 y Fy(m)951 1955 y Fq(7)1016 1948 y Fy(m)1056 1955
y Fq(11)1138 1948 y Fy(m)1178 1955 y Fq(15)805 2004 y
Fy(m)845 2011 y Fq(4)911 2004 y Fy(m)951 2011 y Fq(8)1016
2004 y Fy(m)1056 2011 y Fq(12)1138 2004 y Fy(m)1178 2011
y Fq(16)1223 1810 y Fi(1)1223 1883 y(C)1223 1908 y(C)1223
1935 y(A)1267 1810 y(0)1267 1883 y(B)1267 1908 y(B)1267
1935 y(@)1311 1835 y Fy(s)1314 1891 y(t)1311 1948 y(r)1311
2004 y(q)1340 1810 y Fi(1)1340 1883 y(C)1340 1908 y(C)1340
1935 y(A)1384 1920 y Fy(;)332 2093 y FC(where)g(the)g(left)g(matrix)f
(is)h(the)g(curren)o(t)g(texture)f(matrix.)24 b(The)17
b(matrix)f(is)i(applied)332 2149 y(to)13 b(the)i(co)q(ordinates)f
(resulting)h(from)e(texture)h(co)q(ordinate)g(generation)h(\(whic)o(h)f
(ma)o(y)332 2206 y(simply)e(b)q(e)f(the)g(curren)o(t)f(texture)h(co)q
(ordinates\),)g(and)f(the)h(resulting)h(transformed)d(co-)332
2262 y(ordinates)16 b(b)q(ecome)g(the)f(texture)g(co)q(ordinates)h
(asso)q(ciated)f(with)h(a)f(v)o(ertex.)20 b(Setting)332
2319 y(the)14 b(matrix)g(mo)q(de)g(to)g Fr(TEXTURE)f
FC(causes)h(the)g(already)g(describ)q(ed)j(matrix)c(op)q(erations)332
2375 y(to)i(apply)h(to)e(the)h(texture)g(matrix.)403
2432 y(There)e(is)g(a)g(stac)o(k)f(of)h(matrices)g(for)f(eac)o(h)h(of)g
(the)g(matrix)g(mo)q(des.)19 b(F)l(or)12 b Fr(MODELVIEW)332
2488 y FC(mo)q(de,)k(the)h(stac)o(k)e(depth)i(is)g(at)e(least)i(32)e
(\(that)g(is,)i(there)f(is)h(a)f(stac)o(k)f(of)h(at)g(least)g(32)p
eop
%%Page: 33 42
33 41 bop 120 137 a Fx(2.10.)34 b(COORDINA)l(TE)17 b(TRANSF)o(ORMA)l
(TIONS)517 b FC(33)120 286 y(mo)q(del-view)21 b(matrices\).)30
b(F)l(or)18 b(the)h(other)f(mo)q(des,)h(the)g(depth)g(is)h(at)e(least)g
(2.)30 b(The)120 343 y(curren)o(t)18 b(matrix)f(in)h(an)o(y)f(mo)q(de)h
(is)g(the)f(matrix)g(on)h(the)f(top)g(of)g(the)h(stac)o(k)f(for)f(that)
120 399 y(mo)q(de.)234 482 y Fw(void)30 b Fz(PushMatrix)p
FC(\()f Fw(void)39 b FC(\))14 b Fw(;)120 565 y FC(pushes)19
b(the)e(stac)o(k)g(do)o(wn)g(b)o(y)h(one,)g(duplicating)h(the)f(curren)
o(t)f(matrix)h(in)g(b)q(oth)g(the)120 621 y(top)d(of)g(the)g(stac)o(k)g
(and)g(the)g(en)o(try)g(b)q(elo)o(w)h(it.)234 704 y Fw(void)30
b Fz(P)o(opMatrix)p FC(\()f Fw(void)39 b FC(\))15 b Fw(;)120
787 y FC(p)q(ops)k(the)f(top)g(en)o(try)g(o\013)f(of)h(the)g(stac)o(k,)
g(replacing)i(the)e(curren)o(t)g(matrix)g(with)h(the)120
843 y(matrix)12 b(that)f(w)o(as)f(the)i(second)g(en)o(try)g(in)g(the)g
(stac)o(k.)18 b(The)12 b(pushing)g(or)g(p)q(opping)h(tak)o(es)120
900 y(place)20 b(on)f(the)g(stac)o(k)f(corresp)q(onding)i(to)e(the)h
(curren)o(t)f(matrix)h(mo)q(de.)31 b(P)o(opping)19 b(a)120
956 y(matrix)c(o\013)g(a)f(stac)o(k)h(with)g(only)h(one)f(en)o(try)g
(generates)g(the)g(error)f Fr(STACK)p 1394 956 14 2 v
15 w(UNDERFLOW)p FC(;)120 1013 y(pushing)j(a)e(matrix)g(on)o(to)f(a)h
(full)h(stac)o(k)f(generates)g Fr(STACK)p 1125 1013 V
14 w(OVERFLOW)p FC(.)191 1069 y(The)22 b(state)f(required)i(to)f
(implemen)o(t)h(transformations)d(consists)i(of)g(a)f(three-)120
1126 y(v)m(alued)f(in)o(teger)e(indicating)h(the)f(curren)o(t)g(matrix)
f(mo)q(de,)h(a)g(stac)o(k)f(of)g(at)g(least)h(t)o(w)o(o)120
1182 y(4)c FB(\002)g FC(4)20 b(matrices)h(for)f(eac)o(h)h(of)f
Fr(PROJECTION)f FC(and)h Fr(TEXTURE)g FC(with)h(asso)q(ciated)g(stac)o
(k)120 1239 y(p)q(oin)o(ters,)16 b(and)g(a)g(stac)o(k)e(of)i(at)f
(least)h(32)f(4)10 b FB(\002)h FC(4)k(matrices)h(with)g(an)g(asso)q
(ciated)g(stac)o(k)120 1295 y(p)q(oin)o(ter)g(for)f Fr(MODELVIEW)p
FC(.)e(Initially)l(,)18 b(there)e(is)g(only)g(one)f(matrix)g(on)h(eac)o
(h)f(stac)o(k,)g(and)120 1351 y(all)i(matrices)e(are)g(set)g(to)f(the)h
(iden)o(tit)o(y)l(.)21 b(The)16 b(initial)h(matrix)e(mo)q(de)g(is)h
Fr(MODELVIEW)p FC(.)120 1471 y Fl(2.10.3)56 b(Normal)17
b(T)-5 b(ransformation)120 1557 y FC(Finally)l(,)20 b(w)o(e)e(consider)
h(ho)o(w)e(the)h(mo)q(del-view)i(matrix)d(a\013ects)g(normals.)28
b(Normals)120 1613 y(are)14 b(of)g(in)o(terest)h(only)g(in)g(ey)o(e)f
(co)q(ordinates,)h(so)e(the)i(rules)g(go)o(v)o(erning)f(their)h
(transfor-)120 1670 y(mation)g(to)g(other)g(co)q(ordinate)g(systems)g
(are)g(not)g(examined.)191 1726 y(Normals)j(sen)o(t)g(to)f(the)i(GL)f
(ma)o(y)f(or)h(ma)o(y)f(not)h(ha)o(v)o(e)g(unit)h(length.)29
b(If)19 b(normal-)120 1783 y(ization)d(is)g(enabled,)g(then)f(normals)g
(sp)q(eci\014ed)i(with)f(the)f Fz(Normal3)g FC(command)g(are)120
1839 y(normalized)i(after)d(transformation.)19 b(Normalization)d(is)f
(con)o(trolled)h(with)234 1922 y Fw(void)30 b Fz(Enable)p
FC(\()h Fw(enum)15 b Fv(tar)n(get)g FC(\))g Fw(;)120
2005 y FC(and)234 2088 y Fw(void)30 b Fz(Disable)p FC(\()h
Fw(enum)15 b Fv(tar)n(get)g FC(\))g Fw(;)120 2170 y FC(with)k
Fv(tar)n(get)g FC(equal)g(to)f Fr(NORMALIZE)p FC(.)e(This)j(requires)g
(one)f(bit)h(of)f(state.)29 b(The)19 b(initial)120 2227
y(state)c(is)g(for)g(normals)g(not)g(to)f(b)q(e)i(normalized.)191
2283 y(A)22 b(normal)f(at)g(a)g(p)q(oin)o(t)h(de\014nes)h(a)e(plane)h
(at)f(that)g(p)q(oin)o(t.)39 b(If)22 b(the)g(normal)f(is)120
2415 y(\()8 b Fy(n)173 2422 y Fu(x)240 2415 y Fy(n)267
2422 y Fu(y)334 2415 y Fy(n)361 2422 y Fu(z)389 2415
y FC(\))21 b(and)h(the)g(p)q(oin)o(t)h(is)786 2306 y
Fi(0)786 2379 y(B)786 2404 y(B)786 2430 y(@)834 2330
y Fy(x)835 2387 y(y)835 2443 y(z)830 2500 y(w)871 2306
y Fi(1)871 2379 y(C)871 2404 y(C)871 2430 y(A)908 2415
y FC(,)g(then)f(for)f(the)h(p)q(oin)o(t)h(to)e(satisfy)h(the)p
eop
%%Page: 34 43
34 42 bop 332 137 a FC(34)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)332 286 y FC(plane)g(equation)g(w)o(e)f(m)o
(ust)f(ha)o(v)o(e)796 449 y(\()8 b Fy(n)849 456 y Fu(x)916
449 y Fy(n)943 456 y Fu(y)1010 449 y Fy(n)1037 456 y
Fu(z)1102 449 y Fy(q)i FC(\))1157 340 y Fi(0)1157 413
y(B)1157 438 y(B)1157 465 y(@)1205 365 y Fy(x)1206 421
y(y)1206 478 y(z)1201 534 y(w)1242 340 y Fi(1)1242 413
y(C)1242 438 y(C)1242 465 y(A)1291 449 y FC(=)j(0)332
612 y(whence)698 792 y Fy(q)h FC(=)785 707 y FB(\000)p
FC(\()8 b Fy(n)873 714 y Fu(x)940 707 y Fy(n)967 714
y Fu(y)1034 707 y Fy(n)1061 714 y Fu(z)1089 707 y FC(\))1114
623 y Fi(0)1114 697 y(@)1158 650 y Fy(x)1159 707 y(y)1159
763 y(z)1191 623 y Fi(1)1191 697 y(A)p 785 781 443 2
v 990 823 a Fy(w)1233 792 y(;)98 b(w)13 b FB(6)p FC(=)g(0)332
879 y(or)20 b Fy(q)j FC(=)f(0)e(if)h Fy(w)h FC(=)g(0.)35
b(Therefore,)22 b(if)e(the)h(mo)q(del-view)h(matrix)e(is)h
Fy(M)5 b FC(,)22 b(then)e(the)332 935 y(transformed)14
b(plane)j(equation)e(is)608 1023 y(\()7 b Fy(n)660 1030
y Fu(x)682 1006 y FG(0)740 1023 y Fy(n)767 1030 y Fu(y)788
1006 y FG(0)845 1023 y Fy(n)872 1030 y Fu(z)892 1006
y FG(0)949 1023 y Fy(q)971 1006 y FG(0)990 1023 y FC(\))12
b(=)h(\()8 b Fy(n)1121 1030 y Fu(x)1188 1023 y Fy(n)1215
1030 y Fu(y)1282 1023 y Fy(n)1309 1030 y Fu(z)1374 1023
y Fy(q)i FC(\))g FB(\001)f Fy(M)1503 1004 y FG(\000)p
Fq(1)332 1110 y FC(and)15 b(the)h(transformed)e(normal)h(is)980
1205 y(1)p 796 1226 392 2 v 796 1234 a Fi(q)p 837 1234
350 2 v 837 1285 a Fy(n)864 1292 y Fu(x)886 1272 y FG(0)898
1266 y Fq(2)928 1285 y FC(+)10 b Fy(n)1000 1292 y Fu(y)1021
1272 y FG(0)1033 1266 y Fq(2)1063 1285 y FC(+)g Fy(n)1135
1292 y Fu(z)1155 1272 y FG(0)1167 1266 y Fq(2)1199 1152
y Fi(0)1199 1226 y(@)1243 1180 y Fy(n)1270 1187 y Fu(x)1292
1163 y FG(0)1244 1236 y Fy(n)1271 1243 y Fu(y)1292 1220
y FG(0)1244 1293 y Fy(n)1271 1300 y Fu(z)1291 1276 y
FG(0)1312 1152 y Fi(1)1312 1226 y(A)1355 1236 y Fy(:)365
b FC(\(2.1\))332 1374 y(If)14 b(normalization)g(is)h(disabled,)g(then)f
(the)g(square)f(ro)q(ot)g(in)h(equation)g(2.1)f(is)h(replaced)332
1430 y(with)j(1.)23 b(Otherwise,)17 b(the)g(square)f(ro)q(ot)f(remains)
i(as)f(written.)24 b(If)16 b Fy(M)1546 1437 y Fu(u)1585
1430 y FC(is)h(the)f(upp)q(er)332 1487 y(leftmost)10
b(3x3)g(matrix)g(tak)o(en)g(from)f(M,)h(implemen)o(tations)h(ma)o(y)f
(c)o(ho)q(ose)g(to)g(transform)332 1543 y(\()d Fy(n)384
1550 y Fu(x)452 1543 y Fy(n)479 1550 y Fu(y)545 1543
y Fy(n)572 1550 y Fu(z)600 1543 y FC(\))15 b(to)g(ey)o(e)g(co)q
(ordinates)g(using)681 1631 y(\()7 b Fy(n)733 1638 y
Fu(x)756 1614 y FG(0)813 1631 y Fy(n)840 1638 y Fu(y)861
1614 y FG(0)918 1631 y Fy(n)945 1638 y Fu(z)965 1614
y FG(0)984 1631 y FC(\))13 b(=)g(\()7 b Fy(n)1115 1638
y Fu(x)1182 1631 y Fy(n)1209 1638 y Fu(y)1276 1631 y
Fy(n)1303 1638 y Fu(z)1331 1631 y FC(\))i FB(\001)h Fy(M)1430
1612 y FG(\000)p Fq(1)1425 1642 y Fu(u)332 1718 y FC(follo)o(w)o(ed)16
b(b)o(y)f(equation)30 b(2.1.)403 1775 y(Because)25 b(w)o(e)g(sp)q
(ecify)h(neither)f(the)g(\015oating-p)q(oin)o(t)h(format)d(nor)i(the)f
(means)332 1831 y(for)c(matrix)g(in)o(v)o(ersion,)h(w)o(e)f(cannot)g
(sp)q(ecify)i(b)q(eha)o(vior)f(in)g(the)f(case)g(of)g(a)g(p)q(o)q
(orly-)332 1888 y(conditioned)f(\(nearly)f(singular\))g(mo)q(del-view)h
(matrix)e Fy(M)5 b FC(.)26 b(In)18 b(case)f(of)g(an)g(exactly)332
1944 y(singular)11 b(matrix,)g(the)f(transformed)g(normal)g(is)h
(unde\014ned.)20 b(If)11 b(the)f(GL)g(implemen)o(ta-)332
2001 y(tion)k(determines)g(that)f(the)h(mo)q(del-view)h(matrix)f(is)g
(unin)o(v)o(ertible,)h(then)f(the)g(en)o(tries)332 2057
y(in)k(the)f(in)o(v)o(erted)h(matrix)f(are)f(arbitrary)l(.)26
b(In)17 b(an)o(y)g(case,)g(neither)h(normal)g(transfor-)332
2114 y(mation)f(nor)f(use)h(of)g(the)f(transformed)g(normal)h(ma)o(y)f
(lead)h(to)g(GL)f(in)o(terruption)i(or)332 2170 y(termination.)332
2289 y Fl(2.10.4)55 b(Generating)18 b(texture)f(co)r(ordinates)332
2375 y FC(T)l(exture)f(co)q(ordinates)g(asso)q(ciated)g(with)f(a)h(v)o
(ertex)f(ma)o(y)g(either)h(b)q(e)g(tak)o(en)g(from)e(the)332
2432 y(curren)o(t)g(texture)h(co)q(ordinates)f(or)g(generated)h
(according)g(to)f(a)g(function)h(dep)q(enden)o(t)332
2488 y(on)g(v)o(ertex)g(co)q(ordinates.)20 b(The)c(command)p
eop
%%Page: 35 44
35 43 bop 120 137 a Fx(2.10.)34 b(COORDINA)l(TE)17 b(TRANSF)o(ORMA)l
(TIONS)517 b FC(35)234 286 y Fw(void)30 b Fz(T)l(exGen)p
FB(f)p Fz(ifd)p FB(g)p FC(\()f Fw(enum)15 b Fv(c)n(o)n(or)n(d)p
Fw(,)g(enum)f Fv(pname)p Fw(,)i(T)f Fv(p)n(ar)n(am)g
FC(\))g Fw(;)234 343 y(void)30 b Fz(T)l(exGen)p FB(f)p
Fz(ifd)p FB(g)p Fz(v)p FC(\()f Fw(enum)15 b Fv(c)n(o)n(or)n(d)p
Fw(,)f(enum)h Fv(pname)p Fw(,)g(T)g Fv(p)n(ar)n(ams)g
FC(\))g Fw(;)120 433 y FC(con)o(trols)h(texture)g(co)q(ordinate)g
(generation.)23 b Fv(c)n(o)n(or)n(d)16 b FC(m)o(ust)f(b)q(e)i(one)f(of)
g(the)g(constan)o(ts)120 490 y Fr(S)p FC(,)k Fr(T)p FC(,)g
Fr(R)p FC(,)g(or)f Fr(Q)p FC(,)h(indicating)i(that)e(the)h(p)q(ertinen)
o(t)g(co)q(ordinate)g(is)f(the)h Fy(s)p FC(,)g Fy(t)p
FC(,)h Fy(r)q FC(,)f(or)f Fy(q)120 546 y FC(co)q(ordinate,)15
b(resp)q(ectiv)o(ely)l(.)22 b(In)15 b(the)g(\014rst)f(form)g(of)h(the)g
(command,)f Fv(p)n(ar)n(am)h FC(is)g(a)g(sym-)120 603
y(b)q(olic)d(constan)o(t)e(sp)q(ecifying)i(a)d(single-v)m(alued)14
b(texture)c(generation)g(parameter;)h(in)g(the)120 659
y(second)17 b(form,)f Fv(p)n(ar)n(ams)g FC(is)h(a)f(p)q(oin)o(ter)h(to)
f(an)g(arra)o(y)f(of)h(v)m(alues)i(that)d(sp)q(ecify)j(texture)120
716 y(generation)d(parameters.)k Fv(pname)c FC(m)o(ust)f(b)q(e)h(one)g
(of)f(the)h(three)g(sym)o(b)q(olic)h(constan)o(ts)120
772 y Fr(TEXTURE)p 277 772 14 2 v 15 w(GEN)p 358 772
V 15 w(MODE)p FC(,)c Fr(OBJECT)p 618 772 V 14 w(PLANE)p
FC(,)g(or)h Fr(EYE)p 887 772 V 15 w(PLANE)p FC(.)f(If)i
Fv(pname)g FC(is)g Fr(TEXTURE)p 1423 772 V 14 w(GEN)p
1503 772 V 15 w(MODE)p FC(,)120 829 y(then)d(either)h
Fv(p)n(ar)n(ams)e FC(p)q(oin)o(ts)i(to)e(or)g Fv(p)n(ar)n(am)h
FC(is)g(an)g(in)o(teger)g(that)e(is)j(one)f(of)f(the)h(sym)o(b)q(olic)
120 885 y(constan)o(ts)k Fr(OBJECT)p 457 885 V 14 w(LINEAR)p
FC(,)f Fr(EYE)p 696 885 V 15 w(LINEAR)p FC(,)f(or)i Fr(SPHERE)p
1057 885 V 14 w(MAP)p FC(.)191 941 y(If)10 b Fr(TEXTURE)p
388 941 V 15 w(GEN)p 469 941 V 15 w(MODE)f FC(indicates)j
Fr(OBJECT)p 898 941 V 14 w(LINEAR)p FC(,)d(then)h(the)h(generation)f
(function)120 998 y(for)15 b(the)g(co)q(ordinate)h(indicated)h(b)o(y)e
Fv(c)n(o)n(or)n(d)g FC(is)562 1096 y Fy(g)f FC(=)e Fy(p)668
1103 y Fq(1)688 1096 y Fy(x)714 1103 y Fu(o)743 1096
y FC(+)f Fy(p)812 1103 y Fq(2)831 1096 y Fy(y)853 1103
y Fu(o)883 1096 y FC(+)f Fy(p)951 1103 y Fq(3)971 1096
y Fy(z)992 1103 y Fu(o)1021 1096 y FC(+)h Fy(p)1090 1103
y Fq(4)1109 1096 y Fy(w)1142 1103 y Fu(o)1161 1096 y
Fy(:)120 1194 y(x)146 1201 y Fu(o)165 1194 y FC(,)19
b Fy(y)219 1201 y Fu(o)239 1194 y FC(,)f Fy(z)291 1201
y Fu(o)310 1194 y FC(,)h(and)f Fy(w)466 1201 y Fu(o)503
1194 y FC(are)g(the)h(ob)s(ject)e(co)q(ordinates)i(of)f(the)g(v)o
(ertex.)29 b Fy(p)1373 1201 y Fq(1)1392 1194 y Fy(;)8
b(:)g(:)g(:)d(;)j(p)1517 1201 y Fq(4)1554 1194 y FC(are)120
1251 y(sp)q(eci\014ed)18 b(b)o(y)d(calling)i Fz(T)l(exGen)e
FC(with)h Fv(pname)f FC(set)g(to)g Fr(OBJECT)p 1215 1251
V 14 w(PLANE)f FC(in)j(whic)o(h)f(case)120 1307 y Fv(p)n(ar)n(ams)e
FC(p)q(oin)o(ts)g(to)e(an)i(arra)o(y)e(con)o(taining)i
Fy(p)883 1314 y Fq(1)903 1307 y Fy(;)8 b(:)g(:)g(:)d(;)j(p)1028
1314 y Fq(4)1046 1307 y FC(.)20 b(There)13 b(is)h(a)f(distinct)i(group)
e(of)120 1364 y(plane)19 b(equation)f(co)q(e\016cien)o(ts)g(for)f(eac)o
(h)g(texture)g(co)q(ordinate;)i Fv(c)n(o)n(or)n(d)e FC(indicates)i(the)
120 1420 y(co)q(ordinate)d(to)f(whic)o(h)h(the)f(sp)q(eci\014ed)i(co)q
(e\016cien)o(ts)f(p)q(ertain.)191 1477 y(If)f Fr(TEXTURE)p
393 1477 V 15 w(GEN)p 474 1477 V 15 w(MODE)f FC(indicates)j
Fr(EYE)p 847 1477 V 15 w(LINEAR)p FC(,)c(then)j(the)f(function)h(is)569
1575 y Fy(g)e FC(=)f Fy(p)676 1556 y FG(0)676 1586 y
Fq(1)696 1575 y Fy(x)722 1582 y Fu(e)750 1575 y FC(+)e
Fy(p)819 1556 y FG(0)819 1586 y Fq(2)838 1575 y Fy(y)860
1582 y Fu(e)889 1575 y FC(+)g Fy(p)958 1556 y FG(0)958
1586 y Fq(3)977 1575 y Fy(z)998 1582 y Fu(e)1027 1575
y FC(+)f Fy(p)1095 1556 y FG(0)1095 1586 y Fq(4)1115
1575 y Fy(w)1148 1582 y Fu(e)120 1673 y FC(where)428
1729 y(\()d Fy(p)476 1713 y FG(0)476 1741 y Fq(1)541
1729 y Fy(p)564 1713 y FG(0)564 1741 y Fq(2)630 1729
y Fy(p)653 1713 y FG(0)653 1741 y Fq(3)718 1729 y Fy(p)741
1713 y FG(0)741 1741 y Fq(4)768 1729 y FC(\))12 b(=)h(\()7
b Fy(p)894 1736 y Fq(1)959 1729 y Fy(p)982 1736 y Fq(2)1047
1729 y Fy(p)1070 1736 y Fq(3)1135 1729 y Fy(p)1158 1736
y Fq(4)1186 1729 y FC(\))g Fy(M)1260 1710 y FG(\000)p
Fq(1)120 1811 y Fy(x)146 1818 y Fu(e)165 1811 y FC(,)23
b Fy(y)223 1818 y Fu(e)242 1811 y FC(,)h Fy(z)300 1818
y Fu(e)318 1811 y FC(,)g(and)e Fy(w)483 1818 y Fu(e)523
1811 y FC(are)g(the)g(ey)o(e)h(co)q(ordinates)f(of)g(the)g(v)o(ertex.)
41 b Fy(p)1369 1818 y Fq(1)1388 1811 y Fy(;)8 b(:)g(:)g(:)d(;)j(p)1513
1818 y Fq(4)1554 1811 y FC(are)120 1867 y(set)14 b(b)o(y)g(calling)h
Fz(T)l(exGen)e FC(with)i Fv(pname)e FC(set)h(to)f Fr(EYE)p
1024 1867 V 15 w(PLANE)g FC(in)h(corresp)q(ondence)h(with)120
1924 y(setting)d(the)f(co)q(e\016cien)o(ts)h(in)h(the)e
Fr(OBJECT)p 825 1924 V 14 w(PLANE)g FC(case.)18 b Fy(M)f
FC(is)12 b(the)f(mo)q(del-view)i(matrix)120 1980 y(in)18
b(e\013ect)f(when)g Fy(p)440 1987 y Fq(1)460 1980 y Fy(;)8
b(:)g(:)g(:)d(;)j(p)585 1987 y Fq(4)620 1980 y FC(are)17
b(sp)q(eci\014ed.)27 b(Computed)17 b(texture)g(co)q(ordinates)g(ma)o(y)
120 2037 y(b)q(e)f(inaccurate)g(or)f(unde\014ned)i(if)e
Fy(M)21 b FC(is)15 b(p)q(o)q(orly)h(conditioned)h(or)e(singular.)191
2093 y(When)h(used)g(with)g(a)f(suitably)i(constructed)f(texture)f
(image,)h(calling)h Fz(T)l(exGen)120 2149 y FC(with)g
Fr(TEXTURE)p 382 2149 V 14 w(GEN)p 462 2149 V 15 w(MODE)f
FC(indicating)i Fr(SPHERE)p 926 2149 V 15 w(MAP)e FC(can)g(sim)o(ulate)
h(the)g(re\015ected)g(im-)120 2206 y(age)12 b(of)g(a)f(spherical)j(en)o
(vironmen)o(t)f(on)f(a)f(p)q(olygon.)20 b Fr(SPHERE)p
1145 2206 V 14 w(MAP)12 b FC(texture)f(co)q(ordinates)120
2262 y(are)j(generated)g(as)g(follo)o(ws.)20 b(Denote)13
b(the)i(unit)f(v)o(ector)g(p)q(oin)o(ting)h(from)e(the)i(origin)f(to)
120 2319 y(the)e(v)o(ertex)g(\(in)g(ey)o(e)g(co)q(ordinates\))g(b)o(y)f
Fz(u)p FC(.)19 b(Denote)12 b(the)f(curren)o(t)h(normal,)g(after)f
(trans-)120 2375 y(formation)16 b(to)g(ey)o(e)g(co)q(ordinates,)h(b)o
(y)f Fz(n)815 2359 y FG(0)827 2375 y FC(.)23 b(Let)16
b Fz(r)e FC(=)h(\()7 b Fy(r)1077 2382 y Fu(x)1144 2375
y Fy(r)1165 2382 y Fu(y)1231 2375 y Fy(r)1252 2382 y
Fu(z)1279 2375 y FC(\))1297 2354 y Fu(T)1324 2375 y FC(,)16
b(the)h(re\015ection)120 2432 y(v)o(ector,)d(b)q(e)i(giv)o(en)g(b)o(y)
698 2488 y Fz(r)c FC(=)h Fz(u)d FB(\000)g FC(2)p Fz(n)916
2469 y FG(0)928 2488 y Fz(n)957 2469 y FG(0)q Fu(T)996
2488 y Fz(u)p Fy(;)p eop
%%Page: 36 45
36 44 bop 332 137 a FC(36)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)332 294 y FC(and)h(let)g Fy(m)f
FC(=)f(2)618 244 y Fi(q)p 659 244 369 2 v 659 294 a Fy(r)681
281 y Fq(2)680 305 y Fu(x)712 294 y FC(+)10 b Fy(r)779
281 y Fq(2)778 305 y Fu(y)809 294 y FC(+)h(\()p Fy(r)894
301 y Fu(z)923 294 y FC(+)f(1\))1009 273 y Fq(2)1028
294 y FC(.)25 b(Then)17 b(the)g(v)m(alue)h(assigned)g(to)e(an)h
Fy(s)g FC(co)q(or-)332 361 y(dinate)h(\(the)e(\014rst)h
Fz(T)l(exGen)f FC(argumen)o(t)g(v)m(alue)j(is)e Fr(S)p
FC(\))f(is)i Fy(s)e FC(=)f Fy(r)1444 368 y Fu(x)1466
361 y Fy(=m)c FC(+)1591 343 y Fq(1)p 1591 350 18 2 v
1591 376 a(2)1614 361 y FC(;)17 b(the)g(v)m(alue)332
417 y(assigned)j(to)f(a)g Fy(t)h FC(co)q(ordinate)g(is)g
Fy(t)g FC(=)g Fy(r)1044 424 y Fu(y)1064 417 y Fy(=m)12
b FC(+)1193 399 y Fq(1)p 1193 406 V 1193 433 a(2)1215
417 y FC(.)33 b(Calling)21 b Fz(T)l(exGen)e FC(with)g(a)g
Fv(c)n(o-)332 474 y(or)n(d)h FC(of)f(either)h Fr(R)f
FC(or)g Fr(Q)g FC(when)h Fv(pname)f FC(indicates)i Fr(SPHERE)p
1347 474 14 2 v 15 w(MAP)e FC(generates)g(the)g(error)332
530 y Fr(INVALID)p 489 530 V 14 w(ENUM)p FC(.)403 590
y(A)h(texture)g(co)q(ordinate)g(generation)g(function)h(is)g(enabled)g
(or)f(disabled)i(using)332 646 y Fz(Enable)g FC(and)g
Fz(Disable)g FC(with)f(an)g(argumen)o(t)f(of)h Fr(TEXTURE)p
1395 646 V 14 w(GEN)p 1475 646 V 15 w(S)p FC(,)g Fr(TEXTURE)p
1700 646 V 14 w(GEN)p 1780 646 V 15 w(T)p FC(,)332 703
y Fr(TEXTURE)p 489 703 V 14 w(GEN)p 569 703 V 15 w(R)p
FC(,)e(or)g Fr(TEXTURE)p 852 703 V 15 w(GEN)p 933 703
V 15 w(Q)g FC(\(eac)o(h)g(indicates)i(the)f(corresp)q(onding)h(texture)
332 759 y(co)q(ordinate\).)32 b(When)19 b(enabled,)j(the)d(sp)q
(eci\014ed)i(texture)e(co)q(ordinate)g(is)h(computed)332
816 y(according)c(to)f(the)g(curren)o(t)h Fr(EYE)p 899
816 V 15 w(LINEAR)p FC(,)e Fr(OBJECT)p 1205 816 V 14
w(LINEAR)g FC(or)h Fr(SPHERE)p 1553 816 V 15 w(MAP)g
FC(sp)q(eci\014ca-)332 872 y(tion,)i(dep)q(ending)h(on)f(the)f(curren)o
(t)g(setting)h(of)f Fr(TEXTURE)p 1323 872 V 14 w(GEN)p
1403 872 V 15 w(MODE)f FC(for)h(that)g(co)q(ordi-)332
928 y(nate.)34 b(When)20 b(disabled,)j(subsequen)o(t)e(v)o(ertices)f
(will)i(tak)o(e)d(the)h(indicated)i(texture)332 985 y(co)q(ordinate)16
b(from)e(the)h(curren)o(t)h(texture)e(co)q(ordinates.)403
1045 y(The)i(state)f(required)i(for)e(texture)g(co)q(ordinate)h
(generation)g(comprises)h(a)e(three-)332 1101 y(v)m(alued)20
b(in)o(teger)f(for)f(eac)o(h)h(co)q(ordinate)g(indicating)i(co)q
(ordinate)e(generation)g(mo)q(de,)332 1158 y(and)13 b(a)g(bit)g(for)f
(eac)o(h)h(co)q(ordinate)h(to)e(indicate)i(whether)f(texture)g(co)q
(ordinate)g(genera-)332 1214 y(tion)h(is)f(enabled)i(or)e(disabled.)21
b(In)13 b(addition,)i(four)e(co)q(e\016cien)o(ts)h(are)e(required)j
(for)d(the)332 1271 y(four)i(co)q(ordinates)h(for)f(eac)o(h)h(of)f
Fr(EYE)p 958 1271 V 15 w(LINEAR)f FC(and)i Fr(OBJECT)p
1338 1271 V 14 w(LINEAR)p FC(.)e(The)i(initial)h(state)332
1327 y(has)c(the)g(texture)g(generation)h(function)g(disabled)g(for)f
(all)h(texture)f(co)q(ordinates.)19 b(The)332 1383 y(initial)f(v)m
(alues)f(of)f Fy(p)676 1390 y Fu(i)705 1383 y FC(for)g
Fy(s)g FC(are)f(all)i(0)f(except)g Fy(p)1158 1390 y Fq(1)1194
1383 y FC(whic)o(h)g(is)h(one;)f(for)f Fy(t)h FC(all)h(the)f
Fy(p)1736 1390 y Fu(i)1766 1383 y FC(are)332 1440 y(zero)c(except)g
Fy(p)587 1447 y Fq(2)607 1440 y FC(,)g(whic)o(h)g(is)g(1.)19
b(The)12 b(v)m(alues)h(of)e Fy(p)1148 1447 y Fu(i)1174
1440 y FC(for)g Fy(r)h FC(and)g Fy(q)i FC(are)d(all)i(0.)18
b(These)12 b(v)m(alues)332 1496 y(of)i Fy(p)406 1503
y Fu(i)435 1496 y FC(apply)h(for)f(b)q(oth)g(the)h Fr(EYE)p
881 1496 V 15 w(LINEAR)e FC(and)i Fr(OBJECT)p 1261 1496
V 14 w(LINEAR)f FC(v)o(ersions.)19 b(Initially)f(all)332
1553 y(texture)d(generation)g(mo)q(des)h(are)f Fr(EYE)p
998 1553 V 15 w(LINEAR)p FC(.)332 1715 y Fs(2.11)66 b(Clipping)332
1823 y FC(Primitiv)o(es)23 b(are)f(clipp)q(ed)j(to)c(the)h
Fv(clip)g(volume)p FC(.)41 b(In)23 b(clip)h(co)q(ordinates,)f(the)g
Fv(view)332 1879 y(volume)15 b FC(is)h(de\014ned)h(b)o(y)923
1942 y FB(\000)p Fy(w)991 1949 y Fu(c)1021 1942 y FB(\024)c
Fy(x)1095 1949 y Fu(c)1125 1942 y FB(\024)g Fy(w)1206
1949 y Fu(c)925 1998 y FB(\000)p Fy(w)993 2005 y Fu(c)1023
1998 y FB(\024)g Fy(y)1093 2005 y Fu(c)1123 1998 y FB(\024)g
Fy(w)1204 2005 y Fu(c)926 2055 y FB(\000)p Fy(w)994 2062
y Fu(c)1023 2055 y FB(\024)g Fy(z)1092 2062 y Fu(c)1123
2055 y FB(\024)g Fy(w)1204 2062 y Fu(c)1244 1998 y Fy(:)332
2146 y FC(This)k(view)f(v)o(olume)g(ma)o(y)g(b)q(e)g(further)g
(restricted)g(b)o(y)g(as)f(man)o(y)h(as)f Fy(n)i FC(clien)o
(t-de\014ned)332 2203 y(clip)g(planes)e(to)f(generate)h(the)g(clip)h(v)
o(olume.)k(\()p Fy(n)15 b FC(is)g(an)g(implemen)o(tation)h(dep)q(enden)
o(t)332 2259 y(maxim)o(um)k(that)f(m)o(ust)h(b)q(e)g(at)g(least)g(6.\))
33 b(Eac)o(h)20 b(clien)o(t-de\014ned)j(plane)e(sp)q(eci\014es)h(a)332
2315 y(half-space.)27 b(The)18 b(clip)g(v)o(olume)g(is)g(the)f(in)o
(tersection)h(of)f(all)h(suc)o(h)g(half-spaces)g(with)332
2372 y(the)e(view)g(v)o(olume)h(\(if)f(there)g(no)f(clien)o
(t-de\014ned)k(clip)e(planes)g(are)f(enabled,)h(the)f(clip)332
2428 y(v)o(olume)g(is)f(the)h(view)f(v)o(olume\).)403
2488 y(A)g(clien)o(t-de\014ned)j(clip)f(plane)f(is)g(sp)q(eci\014ed)h
(with)p eop
%%Page: 37 46
37 45 bop 120 137 a Fx(2.11.)34 b(CLIPPING)1095 b FC(37)234
286 y Fw(void)30 b Fz(ClipPlane)p FC(\()h Fw(enum)15
b Fv(p)p Fw(,)g(double)f Fv(e)n(qn[4])h FC(\))g Fw(;)120
386 y FC(The)d(v)m(alue)g(of)f(the)g(\014rst)g(argumen)o(t,)g
Fv(p)p FC(,)g(is)h(a)f(sym)o(b)q(olic)h(constan)o(t,)f
Fr(CLIP)p 1339 386 14 2 v 15 w(PLANE)p Fh(i)p FC(,)f(where)120
443 y Fy(i)17 b FC(is)h(an)f(in)o(teger)h(b)q(et)o(w)o(een)f(0)g(and)h
Fy(n)11 b FB(\000)h FC(1,)17 b(indicating)i(one)f(of)f
Fy(n)g FC(clien)o(t-de\014ned)j(clip)120 499 y(planes.)h
Fv(e)n(qn)14 b FC(is)h(an)f(arra)o(y)f(of)i(four)f(double-precision)j
(\015oating-p)q(oin)o(t)f(v)m(alues.)k(These)120 556
y(are)14 b(the)f(co)q(e\016cien)o(ts)h(of)f(a)h(plane)g(equation)g(in)g
(ob)s(ject)f(co)q(ordinates:)20 b Fy(p)1358 563 y Fq(1)1377
556 y FC(,)14 b Fy(p)1427 563 y Fq(2)1446 556 y FC(,)g
Fy(p)1496 563 y Fq(3)1515 556 y FC(,)g(and)120 612 y
Fy(p)143 619 y Fq(4)178 612 y FC(\(in)i(that)f(order\).)20
b(The)c(in)o(v)o(erse)g(of)f(the)g(curren)o(t)h(mo)q(del-view)h(matrix)
e(is)h(applied)120 668 y(to)f(these)g(co)q(e\016cien)o(ts,)h(at)f(the)g
(time)g(they)h(are)f(sp)q(eci\014ed,)i(yielding)428 775
y(\()7 b Fy(p)476 759 y FG(0)476 787 y Fq(1)541 775 y
Fy(p)564 759 y FG(0)564 787 y Fq(2)630 775 y Fy(p)653
759 y FG(0)653 787 y Fq(3)718 775 y Fy(p)741 759 y FG(0)741
787 y Fq(4)768 775 y FC(\))12 b(=)h(\()7 b Fy(p)894 782
y Fq(1)959 775 y Fy(p)982 782 y Fq(2)1047 775 y Fy(p)1070
782 y Fq(3)1135 775 y Fy(p)1158 782 y Fq(4)1186 775 y
FC(\))g Fy(M)1260 756 y FG(\000)p Fq(1)120 882 y FC(\(where)15
b Fy(M)20 b FC(is)15 b(the)g(curren)o(t)g(mo)q(del-view)h(matrix;)e
(the)h(resulting)h(plane)g(equation)f(is)120 938 y(unde\014ned)f(if)d
Fy(M)17 b FC(is)11 b(singular)i(and)e(ma)o(y)g(b)q(e)h(inaccurate)g(if)
f Fy(M)17 b FC(is)11 b(p)q(o)q(orly-conditioned\))120
995 y(to)j(obtain)h(the)f(plane)i(equation)f(co)q(e\016cien)o(ts)g(in)g
(ey)o(e)g(co)q(ordinates.)20 b(All)c(p)q(oin)o(ts)e(with)120
1051 y(ey)o(e)i(co)q(ordinates)f(\()7 b Fy(x)491 1058
y Fu(e)555 1051 y Fy(y)577 1058 y Fu(e)642 1051 y Fy(z)663
1058 y Fu(e)727 1051 y Fy(w)760 1058 y Fu(e)785 1051
y FC(\))803 1030 y Fu(T)845 1051 y FC(that)15 b(satisfy)574
1235 y(\()7 b Fy(p)622 1219 y FG(0)622 1247 y Fq(1)687
1235 y Fy(p)710 1219 y FG(0)710 1247 y Fq(2)775 1235
y Fy(p)798 1219 y FG(0)798 1247 y Fq(3)864 1235 y Fy(p)887
1219 y FG(0)887 1247 y Fq(4)914 1235 y FC(\))939 1126
y Fi(0)939 1199 y(B)939 1224 y(B)939 1251 y(@)986 1151
y Fy(x)1012 1158 y Fu(e)988 1207 y Fy(y)1010 1214 y Fu(e)989
1264 y Fy(z)1010 1271 y Fu(e)983 1320 y Fy(w)1016 1327
y Fu(e)1041 1126 y Fi(1)1041 1199 y(C)1041 1224 y(C)1041
1251 y(A)1090 1235 y FB(\025)13 b FC(0)120 1417 y(lie)22
b(in)f(the)f(half-space)h(de\014ned)g(b)o(y)f(the)g(plane;)j(p)q(oin)o
(ts)e(that)e(do)h(not)g(satisfy)f(this)120 1474 y(condition)e(do)e(not)
g(lie)h(in)g(the)g(half-space.)191 1532 y(Clien)o(t-de\014ned)24
b(clip)g(planes)f(are)f(enabled)h(with)g(the)f(generic)h
Fz(Enable)g FC(com-)120 1588 y(mand)14 b(and)g(disabled)h(with)f(the)g
Fz(Disable)h FC(command.)k(The)14 b(v)m(alue)h(of)e(the)h(argumen)o(t)
120 1645 y(to)19 b(either)h(command)f(is)h Fr(CLIP)p
665 1645 V 15 w(PLANE)p Fh(i)e FC(where)i Fy(i)f FC(is)g(an)g(in)o
(teger)h(b)q(et)o(w)o(een)f(0)g(and)h Fy(n)p FC(;)120
1701 y(sp)q(ecifying)f(a)e(v)m(alue)h(of)e Fy(i)h FC(enables)h(or)e
(disables)i(the)f(plane)h(equation)f(with)g(index)h Fy(i)p
FC(.)120 1758 y(The)e(constan)o(ts)e(ob)q(ey)i Fr(CLIP)p
615 1758 V 15 w(PLANE)p Fh(i)11 b FC(=)i Fr(CLIP)p 901
1758 V 15 w(PLANE0)c FC(+)i Fy(i)p FC(.)191 1816 y(If)19
b(the)g(primitiv)o(e)h(under)g(consideration)f(is)h(a)e(p)q(oin)o(t,)i
(then)f(clipping)j(passes)c(it)120 1872 y(unc)o(hanged)e(if)f(it)g
(lies)h(within)g(the)e(clip)j(v)o(olume;)d(otherwise,)h(it)g(is)g
(discarded.)21 b(If)15 b(the)120 1928 y(primitiv)o(e)h(is)e(a)g(line)h
(segmen)o(t,)e(then)i(clipping)h(do)q(es)e(nothing)h(to)e(it)h(if)g(it)
g(lies)i(en)o(tirely)120 1985 y(within)h(the)f(clip)h(v)o(olume)f(and)g
(discards)g(it)g(if)g(it)f(lies)i(en)o(tirely)g(outside)f(the)g(v)o
(olume.)120 2041 y(If)f(part)f(of)g(the)h(line)h(segmen)o(t)e(lies)i
(in)g(the)e(v)o(olume)h(and)g(part)f(lies)i(outside,)f(then)g(the)120
2098 y(line)h(segmen)o(t)e(is)h(clipp)q(ed)i(and)d(new)h(v)o(ertex)f
(co)q(ordinates)g(are)g(computed)h(for)f(one)g(or)120
2154 y(b)q(oth)g(v)o(ertices.)20 b(A)14 b(clipp)q(ed)i(line)g(segmen)o
(t)d(endp)q(oin)o(t)i(lies)h(on)d(b)q(oth)h(the)g(original)h(line)120
2211 y(segmen)o(t)g(and)h(the)f(b)q(oundary)g(of)g(the)h(clip)g(v)o
(olume.)191 2269 y(This)e(clipping)i(pro)q(duces)f(a)e(v)m(alue,)i(0)d
FB(\024)h Fy(t)g FB(\024)g FC(1,)h(for)f(eac)o(h)h(clipp)q(ed)i(v)o
(ertex.)j(If)14 b(the)120 2325 y(co)q(ordinates)j(of)e(a)g(clipp)q(ed)k
(v)o(ertex)c(are)h Fz(P)f FC(and)h(the)g(original)h(v)o(ertices')e(co)q
(ordinates)120 2382 y(are)g Fz(P)232 2389 y Fq(1)267
2382 y FC(and)g Fz(P)391 2389 y Fq(2)411 2382 y FC(,)f(then)i
Fy(t)g FC(is)f(giv)o(en)h(b)o(y)657 2488 y Fz(P)c FC(=)h
Fy(t)p Fz(P)805 2495 y Fq(1)835 2488 y FC(+)d(\(1)g FB(\000)g
Fy(t)p FC(\))p Fz(P)1046 2495 y Fq(2)1066 2488 y Fy(:)p
eop
%%Page: 38 47
38 46 bop 332 137 a FC(38)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)332 286 y FC(The)28 b(v)m(alue)i(of)d
Fy(t)h FC(is)h(used)g(in)f(color)g(and)h(texture)e(co)q(ordinate)i
(clipping)h(\(sec-)332 343 y(tion)16 b(2.13.8\).)403
402 y(If)h(the)h(primitiv)o(e)g(is)g(a)f(p)q(olygon,)h(then)g(it)f(is)h
(passed)f(if)h(ev)o(ery)f(one)h(of)f(its)g(edges)332
459 y(lies)d(en)o(tirely)f(inside)h(the)f(clip)h(v)o(olume)f(and)f
(either)h(clipp)q(ed)i(or)d(discarded)i(otherwise.)332
515 y(P)o(olygon)g(clipping)k(ma)o(y)c(cause)h(p)q(olygon)g(edges)g(to)
f(b)q(e)h(clipp)q(ed,)i(but)e(b)q(ecause)g(p)q(oly-)332
572 y(gon)g(connectivit)o(y)h(m)o(ust)e(b)q(e)i(main)o(tained,)f(these)
g(clipp)q(ed)j(edges)d(are)g(connected)h(b)o(y)332 628
y(new)j(edges)g(that)f(lie)i(along)f(the)g(clip)h(v)o(olume's)f(b)q
(oundary)l(.)31 b(Th)o(us,)19 b(clipping)i(ma)o(y)332
685 y(require)15 b(the)e(in)o(tro)q(duction)i(of)e(new)h(v)o(ertices)h
(in)o(to)e(a)h(p)q(olygon.)20 b(Edge)13 b(\015ags)h(are)f(asso-)332
741 y(ciated)18 b(with)g(these)f(v)o(ertices)h(so)f(that)f(edges)i(in)o
(tro)q(duced)h(b)o(y)e(clipping)j(are)d(\015agged)332
797 y(as)c(b)q(oundary)i(\(edge)e(\015ag)h Fr(TRUE)p
FC(\),)e(and)i(so)f(that)g(original)i(edges)f(of)f(the)h(p)q(olygon)g
(that)332 854 y(b)q(ecome)i(cut)f(o\013)g(at)f(these)i(v)o(ertices)f
(retain)h(their)f(original)i(\015ags.)403 913 y(If)23
b(it)g(happ)q(ens)h(that)e(a)g(p)q(olygon)h(in)o(tersects)g(an)g(edge)g
(of)f(the)h(clip)i(v)o(olume's)332 970 y(b)q(oundary)l(,)16
b(then)g(the)f(clipp)q(ed)j(p)q(olygon)e(m)o(ust)f(include)j(a)d(p)q
(oin)o(t)h(on)f(this)h(b)q(oundary)332 1026 y(edge.)40
b(This)22 b(p)q(oin)o(t)g(m)o(ust)f(lie)i(in)g(the)f(in)o(tersection)g
(of)f(the)h(b)q(oundary)g(edge)g(and)332 1083 y(the)g(con)o(v)o(ex)g(h)
o(ull)h(of)f(the)g(v)o(ertices)g(of)g(the)g(original)h(p)q(olygon.)40
b(W)l(e)22 b(imp)q(ose)h(this)332 1139 y(requiremen)o(t)16
b(b)q(ecause)g(the)f(p)q(olygon)h(ma)o(y)f(not)f(b)q(e)i(exactly)g
(planar.)403 1199 y(A)11 b(line)i(segmen)o(t)e(or)g(p)q(olygon)h(whose)
g(v)o(ertices)f(ha)o(v)o(e)h Fy(w)1348 1206 y Fu(c)1376
1199 y FC(v)m(alues)h(of)e(di\013ering)h(signs)332 1255
y(ma)o(y)h(generate)h(m)o(ultiple)i(connected)e(comp)q(onen)o(ts)g
(after)g(clipping.)21 b(GL)14 b(implemen-)332 1312 y(tations)e(are)g
(not)f(required)i(to)f(handle)h(this)g(situation.)19
b(That)12 b(is,)h(only)f(the)g(p)q(ortion)h(of)332 1368
y(the)h(primitiv)o(e)h(that)d(lies)j(in)g(the)e(region)h(of)f
Fy(w)1121 1375 y Fu(c)1150 1368 y Fy(>)g FC(0)h(need)g(b)q(e)g(pro)q
(duced)h(b)o(y)e(clipping.)403 1427 y(Primitiv)o(es)h(rendered)h(with)e
(clip)i(planes)g(m)o(ust)e(satisfy)g(a)g(complemen)o(tarit)o(y)h(cri-)
332 1484 y(terion.)20 b(Supp)q(ose)c(a)e(single)i(clip)g(plane)f(with)g
(co)q(e\016cien)o(ts)g(\()8 b Fy(p)1408 1467 y FG(0)1408
1495 y Fq(1)1473 1484 y Fy(p)1496 1467 y FG(0)1496 1495
y Fq(2)1561 1484 y Fy(p)1584 1467 y FG(0)1584 1495 y
Fq(3)1649 1484 y Fy(p)1672 1467 y FG(0)1672 1495 y Fq(4)1699
1484 y FC(\))14 b(\(or)g(a)332 1540 y(n)o(um)o(b)q(er)e(of)f(similarly)
i(sp)q(eci\014ed)h(clip)f(planes\))f(is)g(enabled)h(and)f(a)f(series)h
(of)f(primitiv)o(es)332 1597 y(are)j(dra)o(wn.)19 b(Next,)c(supp)q(ose)
g(that)e(the)i(original)h(clip)g(plane)f(is)g(resp)q(eci\014ed)i(with)d
(co-)332 1653 y(e\016cien)o(ts)k(\()7 b FB(\000)p Fy(p)603
1637 y FG(0)603 1665 y Fq(1)669 1653 y FB(\000)p Fy(p)727
1637 y FG(0)727 1665 y Fq(2)792 1653 y FB(\000)p Fy(p)850
1637 y FG(0)850 1665 y Fq(3)916 1653 y FB(\000)p Fy(p)974
1637 y FG(0)974 1665 y Fq(4)1001 1653 y FC(\))17 b(\(and)g(corresp)q
(ondingly)i(for)e(an)o(y)g(other)g(clip)332 1710 y(planes\))f(and)f
(the)g(primitiv)o(es)h(are)e(dra)o(wn)h(again)g(\(and)f(the)h(GL)g(is)h
(otherwise)f(in)g(the)332 1766 y(same)k(state\).)31 b(In)19
b(this)h(case,)g(primitiv)o(es)g(m)o(ust)f(not)g(b)q(e)g(missing)i(an)o
(y)d(pixels,)k(nor)332 1823 y(ma)o(y)14 b(an)o(y)g(pixels)j(b)q(e)e
(dra)o(wn)f(t)o(wice)h(in)g(regions)g(where)g(those)g(primitiv)o(es)g
(are)g(cut)g(b)o(y)332 1879 y(the)g(clip)i(planes.)403
1938 y(Clipping)j(requires)g(at)e(least)g(6)g(sets)h(of)f(plane)h
(equations)g(\(eac)o(h)f(consisting)i(of)332 1995 y(four)11
b(double-precision)j(\015oating-p)q(oin)o(t)e(co)q(e\016cien)o(ts\))g
(and)f(at)f(least)i(6)e(corresp)q(onding)332 2051 y(bits)15
b(indicating)h(whic)o(h)f(of)e(these)i(clien)o(t-de\014ned)i(plane)e
(equations)f(are)g(enabled.)21 b(In)332 2108 y(the)e(initial)i(state,)d
(all)i(clien)o(t-de\014ned)i(plane)d(equation)h(co)q(e\016cien)o(ts)f
(are)g(zero)f(and)332 2164 y(all)e(planes)g(are)f(disabled.)332
2324 y Fs(2.12)66 b(Curren)n(t)23 b(Raster)g(P)n(osition)332
2432 y FC(The)11 b Fv(curr)n(ent)i(r)n(aster)f(p)n(osition)f
FC(is)h(used)f(b)o(y)g(commands)g(that)g(directly)h(a\013ect)f(pixels)i
(in)332 2488 y(the)h(framebu\013er.)19 b(These)14 b(commands,)f(whic)o
(h)h(b)o(ypass)g(v)o(ertex)f(transformation)f(and)p eop
%%Page: 39 48
39 47 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(39)120 286 y(primitiv)o(e)20 b(assem)o(bly)l(,)g(are)e(describ)q
(ed)j(in)e(the)g(next)f(c)o(hapter.)30 b(The)19 b(curren)o(t)g(raster)
120 343 y(p)q(osition,)d(ho)o(w)o(ev)o(er,)e(shares)h(some)g(of)g(the)g
(c)o(haracteristics)h(of)e(a)h(v)o(ertex.)191 417 y(The)f(curren)o(t)f
(raster)f(p)q(osition)j(consists)e(of)g(three)h(windo)o(w)f(co)q
(ordinates)h Fy(x)1497 424 y Fu(w)1525 417 y FC(,)g Fy(y)1574
424 y Fu(w)1602 417 y FC(,)120 473 y(and)j Fy(z)231 480
y Fu(w)259 473 y FC(,)g(a)f(clip)i(co)q(ordinate)e Fy(w)672
480 y Fu(c)706 473 y FC(v)m(alue,)h(an)f(ey)o(e)h(co)q(ordinate)f
(distance,)i(a)e(v)m(alid)i(bit,)120 530 y(and)f(asso)q(ciated)g(data)f
(consisting)h(of)f(a)h(color)f(and)h(texture)f(co)q(ordinates.)24
b(It)17 b(is)g(set)120 586 y(using)f(one)g(of)e(the)i
Fz(RasterP)o(os)e FC(commands:)234 749 y Fw(void)30 b
Fz(RasterP)o(os)p FB(f)p Fz(234)p FB(gf)p Fz(sifd)p FB(g)p
FC(\()e Fw(T)15 b Fv(c)n(o)n(or)n(ds)g FC(\))g Fw(;)234
805 y(void)30 b Fz(RasterP)o(os)p FB(f)p Fz(234)p FB(gf)p
Fz(sifd)p FB(g)p Fz(v)p FC(\()e Fw(T)15 b Fv(c)n(o)n(or)n(ds)f
FC(\))h Fw(;)120 968 y Fz(RasterP)o(os4)h FC(tak)o(es)g(four)g(v)m
(alues)i(indicating)h Fy(x)p FC(,)d Fy(y)r FC(,)g Fy(z)r
FC(,)h(and)g Fy(w)q FC(.)24 b Fz(RasterP)o(os3)16 b FC(\(or)120
1025 y Fz(RasterP)o(os2)p FC(\))g(is)h(analogous,)f(but)h(sets)f(only)h
Fy(x)p FC(,)g Fy(y)r FC(,)f(and)h Fy(z)i FC(with)e Fy(w)g
FC(implicitly)j(set)120 1081 y(to)15 b(1)g(\(or)f(only)i
Fy(x)f FC(and)g Fy(y)j FC(with)d Fy(z)i FC(implicitly)i(set)c(to)f(0)h
(and)g Fy(w)h FC(implicitly)j(set)c(to)f(1\).)191 1155
y(The)j(co)q(ordinates)f(are)g(treated)g(as)g(if)h(they)f(w)o(ere)g(sp)
q(eci\014ed)j(in)e(a)f Fz(V)l(ertex)f FC(com-)120 1212
y(mand.)42 b(The)23 b Fy(x)p FC(,)h Fy(y)r FC(,)f Fy(z)r
FC(,)h(and)f Fy(w)g FC(co)q(ordinates)g(are)f(transformed)g(b)o(y)g
(the)h(curren)o(t)120 1268 y(mo)q(del-view)e(and)e(p)q(ersp)q(ectiv)o
(e)i(matrices.)31 b(These)20 b(co)q(ordinates,)g(along)f(with)g(cur-)
120 1324 y(ren)o(t)e(v)m(alues,)h(are)e(used)i(to)e(generate)g(a)h
(color)g(and)g(texture)f(co)q(ordinates)h(just)g(as)f(is)120
1381 y(done)c(for)f(a)h(v)o(ertex.)18 b(The)12 b(color)f(and)h(texture)
f(co)q(ordinates)h(so)f(pro)q(duced)i(replace)g(the)120
1437 y(color)j(and)g(texture)g(co)q(ordinates)g(stored)f(in)i(the)e
(curren)o(t)h(raster)f(p)q(osition's)h(asso)q(ci-)120
1494 y(ated)e(data.)19 b(The)14 b(distance)h(from)e(the)i(origin)f(of)g
(the)g(ey)o(e)g(co)q(ordinate)h(system)e(to)h(the)120
1550 y(v)o(ertex)k(as)f(transformed)g(b)o(y)g(only)h(the)g(curren)o(t)g
(mo)q(del-view)h(matrix)e(replaces)i(the)120 1607 y(curren)o(t)12
b(raster)f(distance.)19 b(This)12 b(distance)h(can)f(b)q(e)g(appro)o
(ximated)g(\(see)f(section)h(3.9\).)191 1681 y(The)f(transformed)g(co)q
(ordinates)g(are)g(passed)h(to)f(clipping)i(as)e(if)h(they)f(represen)o
(ted)120 1737 y(a)18 b(p)q(oin)o(t.)29 b(If)18 b(the)g(\\p)q(oin)o(t")g
(is)h(not)e(culled,)k(then)d(the)g(pro)s(jection)g(to)g(windo)o(w)g(co)
q(or-)120 1793 y(dinates)e(is)f(computed)g(\(section)g(2.10\))f(and)h
(sa)o(v)o(ed)f(as)h(the)f(curren)o(t)h(raster)f(p)q(osition,)120
1850 y(and)i(the)g(v)m(alid)i(bit)e(is)h(set.)22 b(If)16
b(the)g(\\p)q(oin)o(t")g(is)g(culled,)i(the)e(curren)o(t)g(raster)f(p)q
(osition)120 1906 y(and)j(its)g(asso)q(ciated)f(data)g(b)q(ecome)h
(indeterminate)h(and)f(the)f(v)m(alid)i(bit)f(is)g(cleared.)120
1963 y(Figure)e(2.7)e(summarizes)i(the)f(b)q(eha)o(vior)h(of)e(the)i
(curren)o(t)f(raster)f(p)q(osition.)191 2037 y(The)20
b(curren)o(t)f(raster)g(p)q(osition)i(requires)f(\014v)o(e)g
(single-precision)j(\015oating-p)q(oin)o(t)120 2093 y(v)m(alues)e(for)e
(its)h Fy(x)428 2100 y Fu(w)457 2093 y FC(,)g Fy(y)512
2100 y Fu(w)541 2093 y FC(,)g(and)g Fy(z)688 2100 y Fu(w)736
2093 y FC(windo)o(w)g(co)q(ordinates,)h(its)f Fy(w)1267
2100 y Fu(c)1303 2093 y FC(clip)i(co)q(ordinate,)120
2149 y(and)15 b(its)g(ey)o(e)g(co)q(ordinate)g(distance,)g(a)f(single)i
(v)m(alid)h(bit,)d(a)h(color)f(\(R)o(GBA)h(and)g(color)120
2206 y(index\),)h(and)e(texture)h(co)q(ordinates)f(for)g(asso)q(ciated)
h(data.)k(In)c(the)g(initial)h(state,)e(the)120 2262
y(co)q(ordinates)i(and)g(texture)f(co)q(ordinates)h(are)f(b)q(oth)g
(\(0)p Fy(;)8 b FC(0)p Fy(;)g FC(0)p Fy(;)g FC(1\))o(,)k(the)k(ey)o(e)f
(co)q(ordinate)120 2319 y(distance)20 b(is)f(0,)g(the)f(v)m(alid)i(bit)
f(is)g(set,)g(the)g(asso)q(ciated)g(R)o(GBA)f(color)h(is)g(\(1)p
Fy(;)8 b FC(1)p Fy(;)g FC(1)p Fy(;)f FC(1\))120 2375
y(and)19 b(the)f(asso)q(ciated)h(color)f(index)i(color)e(is)h(1.)29
b(In)19 b(R)o(GBA)f(mo)q(de,)h(the)g(asso)q(ciated)120
2432 y(color)13 b(index)g(alw)o(a)o(ys)f(has)g(its)h(initial)h(v)m
(alue;)g(in)f(color)g(index)g(mo)q(de,)g(the)f(R)o(GBA)h(color)120
2488 y(alw)o(a)o(ys)i(main)o(tains)g(its)h(initial)h(v)m(alue.)p
eop
%%Page: 40 49
40 48 bop 332 137 a FC(40)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 350 242 1459 2 v 350 1234
2 992 v 404 317 a
21313290 12148569 657817 9406791 49665228 37627166 startTexFig
404 317 a
%%BeginDocument: pics/rasterpos.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
gsave
matrix currentmatrix
[1 0 0 1 411.024 223.937] concat
newpath
0 0 M 0 43.1496 L 89.3228 43.1496 L 89.3228 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
409.024 221.937 M 409.024 271 L 502.346 271 L 502.346 221.937 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 411.024 223.937] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
12.1534 29.0626 M (Texture) 65.016 S
18.1564 7.06261 M (Matrix) 53.01 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
144.567 204.094 M
368.504 204.094 L
368.504 229.606 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 10.6063 499.472] concat
newpath
0 0 M 0 23.4961 L 135.992 23.4961 L 135.992 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
8.60628 497.472 M 8.60628 526.882 L 148.598 526.882 L 148.598 497.472 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 10.6063 499.472] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
13.4831 9.40914 M (Rasterpos In) 109.026 S
setmatrix
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 367.504 260.795] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 15.3307 181.161] concat
newpath
0 0 M 0 63.496 L 128.669 63.496 L 128.669 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
13.3307 179.161 M 13.3307 248.571 L 146 248.571 L 146 179.161 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 15.3307 181.161] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
31.8356 49.4091 M (Current) 64.998 S
31.8266 27.4091 M (Texture) 65.016 S
11.8286 5.40908 M (Coordinates) 105.012 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
16.8307 165.654 M
144 165.654 L
144 258.661 L
16.8307 258.661 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
226.858 397.968 M
226.858 468.48 L
383.189 468.48 L
383.189 397.968 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
296.89 316.504 M
411.724 316.504 L
411.724 373.008 L
296.89 373.008 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
240.945 218.268 M
324.787 218.268 L
324.787 272.945 L
240.945 272.945 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[86.6772 0 0 54.6772 410.646 218.268] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 15.8661 402.819] concat
newpath
0 0 M 0 40.315 L 129.008 40.315 L 129.008 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
13.8661 400.819 M 13.8661 447.047 L 146.874 447.047 L 146.874 400.819 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 15.8661 402.819] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
32.0049 26.228 M (Current) 64.998 S
33.4989 4.22805 M (Normal) 62.01 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
17.0079 385.512 M
144.177 385.512 L
144.177 455.843 L
17.0079 455.843 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 16.7795 299.598] concat
newpath
0 0 M 0 43.1496 L 126.173 43.1496 L 126.173 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
14.7795 297.598 M 14.7795 346.661 L 144.953 346.661 L 144.953 297.598 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 16.7795 299.598] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
30.5876 29.0626 M (Current) 64.998 S
39.5876 7.06261 M (Color) 46.998 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
17.0079 286.299 M
144.177 286.299 L
144.177 356.63 L
17.0079 356.63 L
closepath
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 369.669 230.772] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
325.984 260.787 M
368.504 260.787 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
411.024 246.614 M
396.85 246.614 L
368.504 260.787 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
298.638 360 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
255.118 399.685 M
255.118 360 L
279.638 360 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
295.803 328.819 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
144.567 328.819 M
276.803 328.819 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 437.701 344.157] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 437.701 315.811] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
255.118 328.819 M
255.118 300.472 L
439.37 300.472 L
439.37 314.646 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
411.024 342.992 M
439.37 342.992 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 297.638 333.614] concat
newpath
0 0 M 0 20.4724 L 112 20.4724 L 112 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
295.638 331.614 M 295.638 358 L 411.638 358 L 411.638 331.614 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 297.638 333.614] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
20.504 6.38546 M (Lighting) 70.992 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 226.772 412.984] concat
newpath
0 0 M 0 43.1496 L 157.354 43.1496 L 157.354 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
224.772 410.984 M 224.772 460.047 L 386.126 460.047 L 386.126 410.984 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 226.772 412.984] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
17.6572 29.0626 M (Vertex/Normal) 122.04 S
12.6712 7.06261 M (Transformation) 132.012 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
396.85 376.008 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
382.677 422.362 M
396.85 422.362 L
396.85 395.008 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 196.756 230.772] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 196.756 261.953] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
240.945 243.78 M
226.772 243.78 L
198.425 260.787 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
198.425 226.772 M
170.079 226.772 L
170.079 515.906 L
141.732 515.906 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
227.772 433.701 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
170.079 433.701 M
208.772 433.701 L
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
168.409 429.449 M
164.659 431.699 L
164.409 433.449 L
164.409 433.449 L
164.409 435.37 L
164.409 435.37 L
166.659 439.12 L
168.409 439.37 L
168.409 439.37 L
170.331 439.37 L
170.331 439.37 L
174.081 437.12 L
174.331 435.37 L
174.331 435.37 L
174.331 433.449 L
174.331 433.449 L
172.081 429.699 L
170.331 429.449 L
170.331 429.449 L
168.409 429.449 L
closepath
eofill
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
newpath
256.283 325.984 M
252.533 328.234 L
252.283 329.984 L
252.283 329.984 L
252.283 331.906 L
252.283 331.906 L
254.533 335.656 L
256.283 335.906 L
256.283 335.906 L
258.205 335.906 L
258.205 335.906 L
261.955 333.656 L
262.205 331.906 L
262.205 331.906 L
262.205 329.984 L
262.205 329.984 L
259.955 326.234 L
258.205 325.984 L
258.205 325.984 L
256.283 325.984 L
closepath
eofill
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
195.591 257.953 M
195.591 286.299 L
496.063 286.299 L
496.063 422.362 L
396.85 422.362 L
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
398.016 419.528 M
394.266 421.778 L
394.016 423.528 L
394.016 423.528 L
394.016 425.449 L
394.016 425.449 L
396.266 429.199 L
398.016 429.449 L
398.016 429.449 L
399.937 429.449 L
399.937 429.449 L
403.687 427.199 L
403.937 425.449 L
403.937 425.449 L
403.937 423.528 L
403.937 423.528 L
401.687 419.778 L
399.937 419.528 L
399.937 419.528 L
398.016 419.528 L
closepath
eofill
0 0 0 setrgbcolor
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 240.945 232.441] concat
newpath
0 0 M 0 20.4724 L 83.6535 20.4724 L 83.6535 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
238.945 230.441 M 238.945 256.826 L 326.598 256.826 L 326.598 230.441 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 240.945 232.441] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
10.3177 6.38543 M (Texgen) 63.018 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
227.772 413.858 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
144.567 413.858 M
208.772 413.858 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 466.047 329.984] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
283.717 485.039 M
353.386 485.039 L
353.386 528.378 L
283.717 528.378 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 286.299 496.063] concat
newpath
0 0 M 0 20.4724 L 66.6457 20.4724 L 66.6457 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
284.299 494.063 M 284.299 520.448 L 354.945 520.448 L 354.945 494.063 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 286.299 496.063] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
16.3218 6.38546 M (Clip) 34.002 S
setmatrix
grestore
gsave
matrix currentmatrix
[86.6772 0 0 43.3386 382.551 485.039] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 385.512 493.228] concat
newpath
0 0 M 0 23.307 L 83.6536 23.307 L 83.6536 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
383.512 491.228 M 383.512 520.448 L 471.165 520.448 L 471.165 491.228 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 385.512 493.228] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
11.3168 9.22008 M (Project) 61.02 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
383.677 507.402 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
354.331 507.402 M
364.677 507.402 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 654.89 145.811] concat
newpath
0 0 M 0 68 L 98.9921 68 L 98.9921 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
652.89 143.811 M 652.89 217.724 L 755.882 217.724 L 755.882 143.811 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 654.89 145.811] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
16.9971 53.913 M (Current) 64.998 S
21.4881 31.913 M (Raster) 56.016 S
13.9911 9.91303 M (Position) 71.01 S
setmatrix
grestore
gsave
matrix currentmatrix
[72.504 0 0 -45.6693 555.213 556.724] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 569.047 524.559] concat
newpath
0 0 M 0 24 L 45.02 24 L 45.02 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
567.047 522.559 M 567.047 550.559 L 616.067 550.559 L 616.067 522.559 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 569.047 524.559] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Valid) 43.02 S
setmatrix
grestore
gsave
matrix currentmatrix
[213.984 0 0 427.528 539.906 143.811] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
[12 4] 0 setdash
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[126.766 0 0 74.3307 556.123 423.315] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 554.071 438.496] concat
newpath
0 0 M 0 43.1496 L 127.686 43.1496 L 127.686 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
552.071 436.496 M 552.071 485.559 L 683.757 485.559 L 683.757 436.496 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 554.071 438.496] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
35.8352 29.0626 M (Raster) 56.016 S
28.3382 7.06264 M (Position) 71.01 S
setmatrix
grestore
gsave
matrix currentmatrix
[126.43 0 0 74.3307 554.803 325.984] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 552.756 341.165] concat
newpath
0 0 M 0 43.1496 L 127.347 43.1496 L 127.347 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
550.756 339.165 M 550.756 388.228 L 682.103 388.228 L 682.103 339.165 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 552.756 341.165] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
35.6657 29.0626 M (Raster) 56.016 S
26.1617 7.06264 M (Distance) 75.024 S
setmatrix
grestore
gsave
matrix currentmatrix
[126.43 0 0 74.3307 557.98 226.772] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 555.933 241.953] concat
newpath
0 0 M 0 43.1496 L 127.347 43.1496 L 127.347 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
553.933 239.953 M 553.933 289.015 L 685.28 289.015 L 685.28 239.953 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 555.933 241.953] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
15.6587 29.0627 M (Associated) 96.03 S
44.1707 7.06269 M (Data) 39.006 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
556.591 541.417 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
240.945 467.717 M
240.945 541.417 L
537.591 541.417 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
556.591 462.047 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
467.717 507.402 M
510.236 507.402 L
510.236 462.047 L
537.591 462.047 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
556.591 362.835 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
382.677 442.205 M
524.409 442.205 L
524.409 362.835 L
537.591 362.835 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
556.591 280.63 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
467.717 331.654 M
521.575 331.654 L
521.575 280.63 L
537.591 280.63 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
559.425 243.78 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
496.063 243.78 M
540.425 243.78 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
287.299 507.402 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
240.945 507.402 M
268.299 507.402 L
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
242.11 501.732 M
238.36 503.982 L
238.11 505.732 L
238.11 505.732 L
238.11 507.654 L
238.11 507.654 L
240.36 511.404 L
242.11 511.654 L
242.11 511.654 L
244.031 511.654 L
244.031 511.654 L
247.781 509.404 L
248.031 507.654 L
248.031 507.654 L
248.031 505.732 L
248.031 505.732 L
245.781 501.982 L
244.031 501.732 L
244.031 501.732 L
242.11 501.732 L
closepath
eofill
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
755.016 535.748 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
629.291 535.748 M
736.016 535.748 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
755.016 462.047 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
683.15 462.047 M
736.016 462.047 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
755.016 360 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
683.15 360 M
736.016 360 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
755.016 263.622 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
685.984 263.622 M
736.016 263.622 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
436.535 345.827 M
464.882 331.654 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1205 a Fm(Figure)e(2.7.)j(The)e(curren)o(t)g(raster)g(p)q(osition)
e(and)h(ho)o(w)f(it)h(is)g(set.)p 1807 1234 2 992 v 350
1236 1459 2 v 332 1511 a Fs(2.13)66 b(Colors)22 b(and)h(Coloring)332
1706 y FC(Figure)16 b(2.8)f(diagrams)g(the)g(pro)q(cessing)i(of)e
(colors)h(b)q(efore)f(rasterization.)21 b(Incoming)332
1762 y(colors)12 b(arriv)o(e)g(in)h(one)g(of)e(sev)o(eral)i(formats.)k
(T)l(able)c(2.6)f(summarizes)g(the)g(con)o(v)o(ersions)332
1819 y(that)i(tak)o(e)g(place)i(on)f(R,)g(G,)f(B,)g(and)h(A)g(comp)q
(onen)o(ts)g(dep)q(ending)i(on)e(whic)o(h)g(v)o(ersion)332
1875 y(of)f(the)h Fz(Color)g FC(command)f(w)o(as)g(in)o(v)o(ok)o(ed)h
(to)f(sp)q(ecify)i(the)f(comp)q(onen)o(ts.)20 b(As)15
b(a)f(result)332 1932 y(of)i(limited)i(precision,)g(some)e(con)o(v)o
(erted)g(v)m(alues)h(will)h(not)e(b)q(e)h(represen)o(ted)f(exactly)l(.)
332 1988 y(In)g(color)f(index)i(mo)q(de,)e(a)g(single-v)m(alued)j
(color)d(index)i(is)e(not)g(mapp)q(ed.)403 2093 y(Next,)i(ligh)o(ting,)
i(if)g(enabled,)g(pro)q(duces)f(a)g(color.)27 b(If)18
b(ligh)o(ting)h(is)f(disabled,)h(the)332 2149 y(curren)o(t)i(color)g
(is)h(used)g(in)g(further)f(pro)q(cessing.)38 b(After)21
b(ligh)o(ting,)i(R)o(GBA)e(colors)332 2206 y(are)e(clamp)q(ed)h(to)e
(the)i(range)e([0)p Fy(;)8 b FC(1].)29 b(A)19 b(color)g(index)i(is)e
(con)o(v)o(erted)g(to)f(\014xed-p)q(oin)o(t)332 2262
y(and)e(then)h(its)f(in)o(teger)h(p)q(ortion)f(is)h(mask)o(ed)f(\(see)g
(section)h(2.13.6\).)j(After)c(clamping)332 2319 y(or)k(masking,)h(a)f
(primitiv)o(e)h(ma)o(y)f(b)q(e)h Fv(\015atshade)n(d)p
FC(,)g(indicating)h(that)d(all)i(v)o(ertices)g(of)332
2375 y(the)c(primitiv)o(e)h(are)f(to)f(ha)o(v)o(e)h(the)g(same)f
(color.)25 b(Finally)l(,)19 b(if)e(a)g(primitiv)o(e)h(is)f(clipp)q(ed,)
332 2432 y(then)23 b(colors)f(\(and)g(texture)g(co)q(ordinates\))h(m)o
(ust)e(b)q(e)i(computed)g(at)f(the)g(v)o(ertices)332
2488 y(in)o(tro)q(duced)16 b(or)f(mo)q(di\014ed)i(b)o(y)e(clipping.)p
eop
%%Page: 41 50
41 49 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(41)p 139 659 1459 2 v 139 2020 2 1362 v 193 733
a
21313290 16411227 460472 6841303 51638681 46376140 startTexFig
193 733 a
%%BeginDocument: pics/color.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
gsave
matrix currentmatrix
[1 0 0 1 19 649] concat
newpath
0 0 M 0 18 L 48.998 18 L 48.998 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
17 647 M 17 670.913 L 69.998 670.913 L 69.998 647 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 19 649] concat
1 3.91304 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 3.91304 M (Color) 46.998 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
321 624 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
120 624 M
302 624 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 47 548] concat
newpath
0 0 M 0 24 L 69.536 24 L 69.536 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
45 546 M 45 575.913 L 118.536 575.913 L 118.536 546 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 47 548] concat
1 3.91304 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 3.91304 M ([0,2) 31.014 S
32.014 9.91304 M (k) 10.008 S
42.022 3.91304 M (-1]) 26.514 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 51 421] concat
newpath
0 0 M 0 24 L 69.032 24 L 69.032 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
49 419 M 49 447 L 122.032 447 L 122.032 419 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 51 421] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M ([0.0,1.0]) 67.032 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 27 509] concat
newpath
0 0 M 0 24 L 54.992 24 L 54.992 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
25 507 M 25 535 L 83.992 535 L 83.992 507 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 27 509] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (RGBA) 52.992 S
setmatrix
grestore
gsave
matrix currentmatrix
[112 0 0 64 168 528] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
321 432 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
120 432 M
302 432 L
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 64 384 364] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 403 381] concat
newpath
0 0 M 0 24 L 72.992 24 L 72.992 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
401 379 M 401 407 L 477.992 407 L 477.992 379 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 403 381] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Lighting) 70.992 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
537 396 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
496 396 M
518 396 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[6 0 0 6 542 398] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
584 408 M
540 424 L
stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[6 0 0 6 542 430] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[6 0 0 6 590 410] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
657 420 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
588 416 M
588 420 L
638 420 L
stroke
grestore
gsave
matrix currentmatrix
[96 0 0 64 656 388] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 663 397] concat
newpath
0 0 M 0 46 L 79.004 46 L 79.004 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
661 395 M 661 445 L 744.004 445 L 744.004 395 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 663 397] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 25.913 M (Clamp to) 77.004 S
3.484 3.91304 M 3.484 3.91304 M ([0.0, 1.0]) 72.036 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
715 280 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
752 420 M
784 420 L
784 280 L
734 280 L
stroke
grestore
gsave
matrix currentmatrix
[104 0 0 64 640 152] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 643 169] concat
newpath
0 0 M 0 24 L 97.022 24 L 97.022 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
641 167 M 641 195 L 742.022 195 L 742.022 167 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 643 169] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Flatshade?) 95.022 S
setmatrix
grestore
gsave
matrix currentmatrix
[48 0 0 32 668 264] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
692 265 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
692 216 M
692 246 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
559 280 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
668 280 M
578 280 L
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 64 448 248] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[112 0 0 64 448 120] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 467 125] concat
newpath
0 0 M 0 42 L 70.994 42 L 70.994 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
465 123 M 465 170.273 L 539.994 170.273 L 539.994 123 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 467 125] concat
1 27.2727 M /Helvetica-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.2727 M (Primitive) 68.994 S
2.989 3.27273 M 2.989 3.27273 M (Clipping) 65.016 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 467 253] concat
newpath
0 0 M 0 42 L 74 42 L 74 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
465 251 M 465 298.913 L 543 298.913 L 543 251 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 467 253] concat
13.501 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
13.501 27.913 M (Color) 46.998 S
1 3.91304 M 1 3.91304 M (Clipping) 72 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
288 215 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
448 280 M
288 280 L
288 234 L
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 64 236 151] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 241 160] concat
newpath
0 0 M 0 42 L 98.516 42 L 98.516 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
239 158 M 239 205.913 L 341.516 205.913 L 341.516 158 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 241 160] concat
4.258 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
4.258 27.913 M (Convert to) 90 S
1 3.91304 M 1 3.91304 M (fixed-point) 96.516 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
292 152 M
292 136 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 607 394] concat
newpath
0 0 M 0 19 L 43.216 19 L 43.216 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
605 392 M 605 415 L 652.216 415 L 652.216 392 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 607 394] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (RGBA) 41.216 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
321 560 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
280 560 M
302 560 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 175 537] concat
newpath
0 0 M 0 42 L 92 42 L 92 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
173 535 M 173 582.913 L 269 582.913 L 269 535 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 175 537] concat
1 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.913 M (Convert to) 90 S
12.484 3.91304 M 12.484 3.91304 M ([0.0,1.0]) 67.032 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
169 560 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
120 560 M
150 560 L
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 64 168 640] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
321 672 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
280 672 M
302 672 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 175 649] concat
newpath
0 0 M 0 42 L 92 42 L 92 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
173 647 M 173 694.913 L 269 694.913 L 269 647 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 175 649] concat
1 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.913 M (Convert to) 90 S
27.001 3.91304 M 27.001 3.91304 M (float) 37.998 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
169 672 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
120 672 M
150 672 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 47 675] concat
newpath
0 0 M 0 30 L 70.526 30 L 70.526 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
45 673 M 45 707 L 119.526 707 L 119.526 673 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 47 675] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M ([0,2) 31.014 S
31.014 9.91304 M (n) 10.998 S
42.012 3.91304 M (-1]) 26.514 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 19 629] concat
newpath
0 0 M 0 18 L 49.016 18 L 49.016 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
17 627 M 17 650.913 L 70.016 650.913 L 70.016 627 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 19 629] concat
1 3.91304 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 3.91304 M (Index) 47.016 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 39 599] concat
newpath
0 0 M 0 30 L 85.538 30 L 85.538 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
37 597 M 37 631 L 126.538 631 L 126.538 597 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 39 599] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M ([0.0,2) 46.026 S
46.026 9.91304 M (n) 10.998 S
57.024 3.91304 M (-1]) 26.514 S
setmatrix
grestore
gsave
matrix currentmatrix
[96 0 0 64 656 472] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 663 475] concat
newpath
0 0 M 0 52 L 90.542 52 L 90.542 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
661 473 M 661 529 L 755.542 529 L 755.542 473 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 663 475] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 31.913 M (Mask to) 67.014 S
1 3.91304 M 1 3.91304 M ([0.0, 2) 51.03 S
52.03 9.91304 M (n) 10.998 S
63.028 3.91304 M (-1]) 26.514 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
657 504 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
588 420 M
588 504 L
638 504 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 603 506] concat
newpath
0 0 M 0 19 L 38.554 19 L 38.554 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
601 504 M 601 527 L 643.554 527 L 643.554 504 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 603 506] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Color) 36.554 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 607 482] concat
newpath
0 0 M 0 19 L 38.568 19 L 38.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
605 480 M 605 503 L 647.568 503 L 647.568 480 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 607 482] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Index) 36.568 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
752 504 M
784 504 L
784 420 L
stroke
grestore
gsave
matrix currentmatrix
[112 0 0 64 108 152] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 113 161] concat
newpath
0 0 M 0 42 L 98.516 42 L 98.516 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
111 159 M 111 206.913 L 213.516 206.913 L 213.516 159 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 113 161] concat
4.258 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
4.258 27.913 M (Convert to) 90 S
1 3.91304 M 1 3.91304 M (fixed-point) 96.516 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
164 215 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
288 280 M
164 280 L
164 234 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
164 152 M
164 136 L
292 136 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
228 103 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
228 136 M
228 122 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 303 226] concat
newpath
0 0 M 0 19 L 43.216 19 L 43.216 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
301 224 M 301 247 L 348.216 247 L 348.216 224 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 303 226] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (RGBA) 41.216 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 111 223] concat
newpath
0 0 M 0 38 L 38.568 38 L 38.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
109 221 M 109 263 L 151.568 263 L 151.568 221 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 111 223] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 21.4706 M (Color) 36.554 S
0 2.47059 M (Index) 36.568 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
508 249 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
[4] 0 setdash
newpath
508 184 M
508 230 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
320 432 M
320 560 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
320 624 M
320 672 L
stroke
grestore
gsave
matrix currentmatrix
[160 0 0 96 360 488] concat
B
setmatrix
0 0 0 setrgbcolor
4.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 363 501] concat
newpath
0 0 M 0 66 L 66.998 66 L 66.998 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
361 499 M 361 570.913 L 431.998 570.913 L 431.998 499 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 363 501] concat
1 51.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 51.913 M (Current) 64.998 S
7.003 27.913 M 7.003 27.913 M (RGBA) 52.992 S
10 3.91304 M 10 3.91304 M (Color) 46.998 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 447 501] concat
newpath
0 0 M 0 66 L 66.998 66 L 66.998 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
445 499 M 445 570.913 L 515.998 570.913 L 515.998 499 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 447 501] concat
1 51.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 51.913 M (Current) 64.998 S
10 27.913 M 10 27.913 M (Color) 46.998 S
9.991 3.91304 M 9.991 3.91304 M (Index) 47.016 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
440 488 M
440 584 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
361 536 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
320 536 M
342 536 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
480 583 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
320 648 M
480 648 L
480 602 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
400 488 M
400 464 L
480 464 L
480 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
440 427 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
440 464 M
440 446 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
544 435 translate
-90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
480 464 M
544 464 L
544 454 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 7 468] concat
newpath
0 0 M 0 24 L 110.576 24 L 110.576 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
5 466 M 5 495.913 L 119.576 495.913 L 119.576 466 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 7 468] concat
1 3.91304 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 3.91304 M ([-2) 26.514 S
27.514 9.91304 M (k) 10.008 S
37.522 3.91304 M (-1,2) 35.532 S
73.054 9.91304 M (k) 10.008 S
83.062 3.91304 M (-1]) 26.514 S
setmatrix
grestore
gsave
matrix currentmatrix
[112 0 0 64 168 448] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 175 457] concat
newpath
0 0 M 0 42 L 92 42 L 92 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
173 455 M 173 502.913 L 269 502.913 L 269 455 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 175 457] concat
1 27.913 M /Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
1 27.913 M (Convert to) 90 S
7.228 3.91304 M 7.228 3.91304 M ([-1.0,1.0]) 77.544 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
169 480 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
120 480 M
150 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
321 480 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
280 480 M
302 480 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1891 a Fm(Figure)17 b(2.8.)26 b(Pro)q(cessing)18
b(of)e(colors.)27 b Fh(n)17 b Fm(is)g(the)g(n)o(um)o(b)q(er)f(of)h
(bits)f(in)h(a)f(color)h(index;)178 1941 y Fh(m)d Fm(is)h(the)g(n)o(um)
o(b)q(er)f(of)f(bits)i(an)f(R,)g(G,)f(B,)h(or)h(A)f(comp)q(onen)o(t.)19
b(See)d(T)m(able)d(2.6)h(for)g(the)178 1991 y(in)o(terpretation)g(of)f
Fh(k)q Fm(.)p 1595 2020 2 1362 v 139 2022 1459 2 v eop
%%Page: 42 51
42 50 bop 332 137 a FC(42)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 762 242 634 2 v 761 299
2 57 v 787 282 a FC(GL)g(T)o(yp)q(e)p 993 299 V 117 w(Con)o(v)o(ersion)
p 1395 299 V 762 301 634 2 v 762 309 V 761 365 2 57 v
787 348 a(ub)o(yte)p 993 365 V 198 w Fy(c=)p FC(\(2)1180
332 y Fq(8)1208 348 y FB(\000)11 b FC(1\))p 1395 365
V 762 367 634 2 v 761 423 2 57 v 787 406 a(b)o(yte)p
993 423 V 155 w(\(2)p Fy(c)e FC(+)h(1\))p Fy(=)p FC(\(2)1248
390 y Fq(8)1277 406 y FB(\000)g FC(1\))p 1395 423 V 762
425 634 2 v 761 482 2 57 v 787 465 a(ushort)p 993 482
V 173 w Fy(c=)p FC(\(2)1171 448 y Fq(16)1217 465 y FB(\000)h
FC(1\))p 1395 482 V 762 483 634 2 v 761 540 2 57 v 787
523 a(short)p 993 540 V 130 w(\(2)p Fy(c)e FC(+)h(1\))p
Fy(=)p FC(\(2)1239 506 y Fq(16)1285 523 y FB(\000)h FC(1\))p
1395 540 V 762 541 634 2 v 761 598 2 57 v 787 581 a(uin)o(t)p
993 598 V 221 w Fy(c=)p FC(\(2)1171 564 y Fq(32)1217
581 y FB(\000)g FC(1\))p 1395 598 V 762 599 634 2 v 761
656 2 57 v 787 639 a(in)o(t)p 993 656 V 178 w(\(2)p Fy(c)e
FC(+)h(1\))p Fy(=)p FC(\(2)1239 622 y Fq(32)1285 639
y FB(\000)h FC(1\))p 1395 656 V 762 658 634 2 v 761 714
2 57 v 787 697 a(\015oat)p 993 714 V 309 w Fy(c)p 1395
714 V 762 716 634 2 v 761 772 2 57 v 787 755 a FC(double)p
993 772 V 268 w Fy(c)p 1395 772 V 762 774 634 2 v 762
782 V 332 859 a FC(T)l(able)17 b(2.6:)j(Comp)q(onen)o(t)c(con)o(v)o
(ersions.)22 b(Color,)15 b(normal,)h(and)g(depth)h(comp)q(onen)o(ts,)
332 916 y(\()p Fy(c)p FC(\),)12 b(are)h(con)o(v)o(erted)f(to)g(an)h(in)
o(ternal)h(\015oating-p)q(oin)o(t)f(represen)o(tation,)g(\()p
Fy(f)5 b FC(\),)13 b(using)g(the)332 972 y(equations)j(in)g(this)g
(table.)21 b(All)16 b(arithmetic)g(is)g(done)g(in)g(the)f(in)o(ternal)i
(\015oating)e(p)q(oin)o(t)332 1029 y(format.)22 b(These)17
b(con)o(v)o(ersions)f(apply)h(to)f(comp)q(onen)o(ts)g(sp)q(eci\014ed)j
(as)d(parameters)f(to)332 1085 y(GL)g(commands)g(and)h(to)e(comp)q
(onen)o(ts)i(in)g(pixel)g(data.)k(The)15 b(equations)h(remain)f(the)332
1142 y(same)f(ev)o(en)h(if)g(the)g(implemen)o(ted)h(ranges)f(of)f(the)g
(GL)h(data)f(t)o(yp)q(es)h(are)f(greater)g(than)332 1198
y(the)h(minim)o(um)i(required)f(ranges.)j(\(Refer)d(to)e(table)i(2.2\))
332 1408 y Fl(2.13.1)55 b(Ligh)n(ting)332 1513 y FC(GL)14
b(ligh)o(ting)h(computes)f(a)f(color)h(for)f(eac)o(h)h(v)o(ertex)f(sen)
o(t)h(to)f(the)h(GL.)f(This)h(is)h(accom-)332 1569 y(plished)i(b)o(y)d
(applying)i(an)f(equation)g(de\014ned)h(b)o(y)e(a)h(clien)o(t-sp)q
(eci\014ed)j(ligh)o(ting)e(mo)q(del)332 1626 y(to)i(a)h(collection)h
(of)f(parameters)e(that)i(can)f(include)k(the)c(v)o(ertex)h(co)q
(ordinates,)g(the)332 1682 y(co)q(ordinates)12 b(of)f(one)h(or)f(more)g
(ligh)o(t)h(sources,)g(the)g(curren)o(t)g(normal,)f(and)h(parameters)
332 1739 y(de\014ning)k(the)f(c)o(haracteristics)g(of)f(the)h(ligh)o(t)
h(sources)e(and)h(a)g(curren)o(t)f(material.)20 b(The)332
1795 y(follo)o(wing)e(discussion)g(assumes)f(that)f(the)h(GL)g(is)g(in)
h(R)o(GBA)f(mo)q(de.)25 b(\(Color)16 b(index)332 1852
y(ligh)o(ting)g(is)g(describ)q(ed)h(in)f(section)g(2.13.5.\))403
1918 y(Ligh)o(ting)g(ma)o(y)e(b)q(e)i(in)g(one)g(of)e(t)o(w)o(o)g
(states:)388 2052 y(1.)22 b(Ligh)o(ting)14 b(O\013.)20
b(In)14 b(this)g(state)f(the)g(color)h(assigned)g(to)f(a)h(v)o(ertex)f
(is)h(the)g(curren)o(t)446 2108 y(color.)388 2242 y(2.)22
b(Ligh)o(ting)c(On.)28 b(In)19 b(this)f(state,)f(a)g(v)o(ertex's)g
(color)h(is)g(found)g(b)o(y)g(computing)g(a)446 2298
y(v)m(alue)e(giv)o(en)g(the)f(curren)o(t)g(ligh)o(ting)i(parameters.)
332 2432 y(Ligh)o(ting)k(is)g(turned)g(either)g(on)f(or)g(o\013)g
(using)h(the)f(generic)i Fz(Enable)f FC(or)f Fz(Disable)332
2488 y FC(commands)15 b(with)h(the)f(sym)o(b)q(olic)h(v)m(alue)h
Fr(LIGHTING)p FC(.)p eop
%%Page: 43 52
43 51 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(43)120 286 y Fz(Ligh)o(ting)20 b(Op)q(eration)120
382 y FC(A)c(ligh)o(ting)i(parameter)d(is)h(of)g(one)g(of)f(\014v)o(e)i
(t)o(yp)q(es:)k(color,)16 b(p)q(osition,)h(direction,)g(real,)120
438 y(or)f(b)q(o)q(olean.)23 b(A)16 b(color)h(parameter)e(consists)h
(of)g(four)f(\015oating-p)q(oin)o(t)i(elemen)o(ts,)g(one)120
494 y(for)j(eac)o(h)h(of)g(R,)f(G,)g(B,)h(and)g(A,)f(in)i(that)e
(order.)36 b(There)21 b(are)f(no)h(restrictions)g(on)120
551 y(the)f(allo)o(w)o(able)h(v)m(alues)g(for)f(these)g(parameters.)33
b(A)20 b(p)q(osition)h(parameter)f(consists)120 607 y(of)f(four)g
(\015oating-p)q(oin)o(t)g(co)q(ordinates)h(\()p Fy(x)p
FC(,)f Fy(y)r FC(,)h Fy(z)r FC(,)f(and)h Fy(w)q FC(\))e(that)h(sp)q
(ecify)h(a)f(p)q(osition)120 664 y(in)e(ob)s(ject)f(co)q(ordinates)h
(\()p Fy(w)g FC(ma)o(y)l(,)e(in)i(some)f(cases,)g(b)q(e)h(zero,)f
(indicating)j(a)d(p)q(oin)o(t)g(at)120 720 y(in\014nit)o(y)e(in)e(the)g
(direction)h(giv)o(en)f(b)o(y)g Fy(x)p FC(,)g Fy(y)r
FC(,)g(and)g Fy(z)r FC(\).)19 b(A)11 b(direction)i(parameter)f
(consists)120 777 y(of)17 b(three)g(\015oating-p)q(oin)o(t)g(co)q
(ordinates)g(\()p Fy(x)p FC(,)g Fy(y)r FC(,)f(and)h Fy(z)r
FC(\))g(that)f(sp)q(ecify)i(a)f(direction)h(in)120 833
y(ob)s(ject)11 b(co)q(ordinates.)18 b(A)11 b(real)g(parameter)f(is)h
(one)g(\015oating-p)q(oin)o(t)h(v)m(alue.)19 b(The)11
b(v)m(arious)120 890 y(v)m(alues)k(and)g(their)f(t)o(yp)q(es)g(are)f
(summarized)i(in)g(T)l(able)g(2.7.)j(The)c(result)g(of)g(a)g(ligh)o
(ting)120 946 y(computation)d(is)g(unde\014ned)h(if)f(a)g(v)m(alue)g
(for)f(a)h(parameter)e(is)i(sp)q(eci\014ed)i(that)d(is)h(outside)120
1003 y(the)16 b(range)f(giv)o(en)g(for)g(that)f(parameter)h(in)h(the)f
(table.)191 1064 y(There)d(are)g Fy(n)g FC(ligh)o(t)g(sources,)h
(indexed)g(b)o(y)f Fy(i)h FC(=)g(0)p Fy(;)8 b(:)g(:)g(:)t(;)g(n)t
FB(\000)t FC(1.)18 b(\()p Fy(n)11 b FC(is)i(an)f(implemen-)120
1120 y(tation)j(dep)q(enden)o(t)h(maxim)o(um)f(that)f(m)o(ust)h(b)q(e)g
(at)f(least)h(8.\))k(Note)c(that)f(the)h(default)120
1177 y(v)m(alues)i(for)d Fz(d)354 1184 y Fu(cli)410 1177
y FC(and)h Fz(s)519 1184 y Fu(cli)574 1177 y FC(di\013er)h(for)e
Fy(i)f FC(=)g(0)i(and)g Fy(i)d(>)h FC(0.)191 1238 y(Before)19
b(sp)q(ecifying)i(the)f(w)o(a)o(y)e(that)h(ligh)o(ting)h(computes)g
(colors,)g(w)o(e)f(in)o(tro)q(duce)120 1294 y(op)q(erators)h(and)h
(notation)f(that)g(simplify)i(the)f(expressions)g(in)o(v)o(olv)o(ed.)37
b(If)21 b Fz(c)1501 1301 y Fq(1)1542 1294 y FC(and)120
1351 y Fz(c)143 1358 y Fq(2)185 1351 y FC(are)g(colors)g(without)g
(alpha)h(where)g Fz(c)868 1358 y Fq(1)911 1351 y FC(=)h(\()p
Fy(r)1008 1358 y Fq(1)1027 1351 y Fy(;)8 b(g)1070 1358
y Fq(1)1088 1351 y Fy(;)g(b)1129 1358 y Fq(1)1148 1351
y FC(\))21 b(and)g Fz(c)1304 1358 y Fq(2)1347 1351 y
FC(=)j(\()p Fy(r)1445 1358 y Fq(2)1463 1351 y Fy(;)8
b(g)1506 1358 y Fq(2)1525 1351 y Fy(;)g(b)1566 1358 y
Fq(2)1584 1351 y FC(\),)120 1407 y(then)19 b(de\014ne)g
Fz(c)384 1414 y Fq(1)416 1407 y FB(\003)12 b Fz(c)474
1414 y Fq(2)511 1407 y FC(=)18 b(\()p Fy(r)603 1414 y
Fq(1)622 1407 y Fy(r)643 1414 y Fq(2)662 1407 y Fy(;)8
b(g)705 1414 y Fq(1)724 1407 y Fy(g)746 1414 y Fq(2)765
1407 y Fy(;)g(b)806 1414 y Fq(1)825 1407 y Fy(b)845 1414
y Fq(2)864 1407 y FC(\).)28 b(Addition)20 b(of)d(colors)h(is)h
(accomplished)120 1464 y(b)o(y)e(addition)h(of)f(the)g(comp)q(onen)o
(ts.)25 b(Multiplication)19 b(of)e(colors)f(b)o(y)h(a)g(scalar)g(means)
120 1520 y(m)o(ultiplying)d(eac)o(h)e(comp)q(onen)o(t)g(b)o(y)g(that)f
(scalar.)19 b(If)12 b Fz(d)1059 1527 y Fq(1)1091 1520
y FC(and)g Fz(d)1205 1527 y Fq(2)1236 1520 y FC(are)g(directions,)h
(then)120 1577 y(de\014ne)603 1648 y Fz(d)632 1655 y
Fq(1)662 1648 y FB(\014)d Fz(d)736 1655 y Fq(2)768 1648
y FC(=)j(max)p FB(f)p Fz(d)953 1655 y Fq(1)983 1648 y
FB(\001)c Fz(d)1034 1655 y Fq(2)1054 1648 y Fy(;)f FC(0)p
FB(g)p Fy(:)120 1748 y FC(\(Directions)13 b(are)g(tak)o(en)f(to)g(ha)o
(v)o(e)g(three)h(co)q(ordinates.\))19 b(If)13 b Fz(P)1171
1755 y Fq(1)1203 1748 y FC(and)g Fz(P)1325 1755 y Fq(2)1357
1748 y FC(are)f(\(homoge-)120 1821 y(neous,)17 b(with)f(four)g(co)q
(ordinates\))g(p)q(oin)o(ts)g(then)g(let)1029 1790 y
FB(\000)-15 b(\000)-10 b(\000)-15 b(!)1029 1821 y Fz(P)1065
1828 y Fq(1)1084 1821 y Fz(P)1120 1828 y Fq(2)1156 1821
y FC(b)q(e)16 b(the)g(unit)h(v)o(ector)e(that)120 1877
y(p)q(oin)o(ts)h(from)f Fz(P)401 1884 y Fq(1)436 1877
y FC(to)f Fz(P)527 1884 y Fq(2)547 1877 y FC(.)20 b(Note)15
b(that)g(if)g Fz(P)866 1884 y Fq(2)901 1877 y FC(has)g(a)g(zero)h
Fy(w)g FC(co)q(ordinate)g(and)f Fz(P)1514 1884 y Fq(1)1549
1877 y FC(has)120 1948 y(non-zero)j Fy(w)h FC(co)q(ordinate,)f(then)704
1917 y FB(\000)-15 b(\000)-10 b(\000)c(!)704 1948 y Fz(P)740
1955 y Fq(1)760 1948 y Fz(P)796 1955 y Fq(2)833 1948
y FC(is)18 b(the)g(unit)g(v)o(ector)f(corresp)q(onding)i(to)e(the)120
2004 y(direction)h(sp)q(eci\014ed)f(b)o(y)f(the)g Fy(x)p
FC(,)g Fy(y)r FC(,)f(and)h Fy(z)i FC(co)q(ordinates)e(of)g
Fz(P)1203 2011 y Fq(2)1222 2004 y FC(;)g(if)g Fz(P)1329
2011 y Fq(1)1364 2004 y FC(has)g(a)f(zero)h Fy(w)120
2074 y FC(co)q(ordinate)d(and)g Fz(P)463 2081 y Fq(2)495
2074 y FC(has)f(a)g(non-zero)h Fy(w)g FC(co)q(ordinate)g(then)1158
2043 y FB(\000)-15 b(\000)-9 b(\000)-15 b(!)1158 2074
y Fz(P)1194 2081 y Fq(1)1214 2074 y Fz(P)1250 2081 y
Fq(2)1282 2074 y FC(is)13 b(the)f(unit)h(v)o(ector)120
2131 y(that)j(is)h(the)f(negativ)o(e)g(of)g(that)g(corresp)q(onding)h
(to)e(the)i(direction)g(sp)q(eci\014ed)i(b)o(y)d Fz(P)1583
2138 y Fq(1)1602 2131 y FC(.)120 2201 y(If)i(b)q(oth)g
Fz(P)314 2208 y Fq(1)352 2201 y FC(and)g Fz(P)479 2208
y Fq(2)516 2201 y FC(ha)o(v)o(e)f(zero)h Fy(w)g FC(co)q(ordinates,)h
(then)1137 2170 y FB(\000)-15 b(\000)-10 b(\000)-15 b(!)1137
2201 y Fz(P)1173 2208 y Fq(1)1192 2201 y Fz(P)1228 2208
y Fq(2)1266 2201 y FC(is)18 b(the)g(unit)g(v)o(ector)120
2258 y(obtained)e(b)o(y)f(normalizing)i(the)e(direction)i(corresp)q
(onding)f(to)f Fz(P)1270 2265 y Fq(2)1299 2258 y FB(\000)c
Fz(P)1381 2265 y Fq(1)1400 2258 y FC(.)191 2319 y(If)g
Fz(d)f FC(is)h(an)f(arbitrary)g(direction,)i(then)f(let)920
2307 y(^)917 2319 y Fz(d)f FC(b)q(e)h(the)g(unit)g(v)o(ector)f(in)h
Fz(d)p FC('s)f(direction.)120 2375 y(Let)k FB(k)p Fz(P)259
2382 y Fq(1)278 2375 y Fz(P)314 2382 y Fq(2)333 2375
y FB(k)f FC(b)q(e)h(the)f(distance)h(b)q(et)o(w)o(een)g
Fz(P)890 2382 y Fq(1)922 2375 y FC(and)g Fz(P)1045 2382
y Fq(2)1064 2375 y FC(.)19 b(Finally)l(,)c(let)f Fz(V)f
FC(b)q(e)h(the)f(p)q(oin)o(t)120 2432 y(corresp)q(onding)18
b(to)f(the)g(v)o(ertex)g(b)q(eing)h(lit,)g(and)f Fz(n)g
FC(b)q(e)h(the)f(corresp)q(onding)h(normal.)120 2488
y(Let)e Fz(P)238 2495 y Fu(e)271 2488 y FC(b)q(e)g(the)f(ey)o(ep)q(oin)
o(t)h(\(\(0)p Fy(;)8 b FC(0)p Fy(;)g FC(0)p Fy(;)f FC(1\))12
b(in)k(ey)o(e)f(co)q(ordinates\).)p eop
%%Page: 44 53
44 52 bop 332 137 a FC(44)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 332 242 1487 2 v 331 299
2 57 v 357 282 a FC(P)o(arameter)p 588 299 V 597 299
V 93 w(T)o(yp)q(e)p 820 299 V 113 w(Default)g(V)l(alue)p
1198 299 V 78 w(Description)p 1818 299 V 332 301 1487
2 v 357 340 a(Material)f(P)o(arameters)p 332 359 V 331
415 2 57 v 423 398 a Fz(a)448 405 y Fu(cm)p 588 415 V
596 415 V 661 398 a FC(color)p 820 415 V 89 w(\(0)p Fy(:)p
FC(2)p Fy(;)8 b FC(0)p Fy(:)p FC(2)p Fy(;)f FC(0)p Fy(:)p
FC(2)o Fy(;)h FC(1)o Fy(:)p FC(0\))p 1198 415 V 46 w(am)o(bien)o(t)15
b(color)h(of)e(material)p 1818 415 V 332 417 1487 2 v
331 473 2 57 v 422 456 a Fz(d)451 463 y Fu(cm)p 588 473
V 596 473 V 661 456 a FC(color)p 820 473 V 89 w(\(0)p
Fy(:)p FC(8)p Fy(;)8 b FC(0)p Fy(:)p FC(8)p Fy(;)f FC(0)p
Fy(:)p FC(8)o Fy(;)h FC(1)o Fy(:)p FC(0\))p 1198 473
V 46 w(di\013use)16 b(color)f(of)g(material)p 1818 473
V 332 475 1487 2 v 331 531 2 57 v 426 514 a Fz(s)447
521 y Fu(cm)p 588 531 V 596 531 V 661 514 a FC(color)p
820 531 V 89 w(\(0)p Fy(:)p FC(0)p Fy(;)8 b FC(0)p Fy(:)p
FC(0)p Fy(;)f FC(0)p Fy(:)p FC(0)o Fy(;)h FC(1)o Fy(:)p
FC(0\))p 1198 531 V 46 w(sp)q(ecular)16 b(color)g(of)e(material)p
1818 531 V 332 533 1487 2 v 331 589 2 57 v 424 573 a
Fz(e)448 580 y Fu(cm)p 588 589 V 596 589 V 661 573 a
FC(color)p 820 589 V 89 w(\(0)p Fy(:)p FC(0)p Fy(;)8
b FC(0)p Fy(:)p FC(0)p Fy(;)f FC(0)p Fy(:)p FC(0)o Fy(;)h
FC(1)o Fy(:)p FC(0\))p 1198 589 V 46 w(emissiv)o(e)16
b(color)g(of)e(material)p 1818 589 V 332 591 1487 2 v
331 704 2 113 v 425 631 a Fy(s)446 638 y Fu(r)q(m)p 588
704 V 596 704 V 672 631 a FC(real)p 820 704 V 236 w(0.0)p
1198 704 V 184 w(sp)q(ecular)45 b(exp)q(onen)o(t)f(\(range:)1224
687 y([0)p Fy(:)p FC(0)p Fy(;)8 b FC(128)p Fy(:)p FC(0])o(\))p
1818 704 V 332 706 1487 2 v 331 762 2 57 v 432 745 a
Fy(a)456 752 y Fu(m)p 588 762 V 596 762 V 672 745 a FC(real)p
820 762 V 236 w(0)p Fy(:)p FC(0)p 1198 762 V 184 w(am)o(bien)o(t)15
b(color)h(index)p 1818 762 V 332 764 1487 2 v 331 820
2 57 v 432 803 a Fy(d)456 810 y Fu(m)p 588 820 V 596
820 V 672 803 a FC(real)p 820 820 V 236 w(1)p Fy(:)p
FC(0)p 1198 820 V 184 w(di\013use)g(color)f(index)p 1818
820 V 332 822 1487 2 v 331 878 2 57 v 433 861 a Fy(s)454
868 y Fu(m)p 588 878 V 596 878 V 672 861 a FC(real)p
820 878 V 236 w(1)p Fy(:)p FC(0)p 1198 878 V 184 w(sp)q(ecular)h(color)
g(index)p 1818 878 V 332 880 1487 2 v 357 920 a(Ligh)o(t)g(Source)f(P)o
(arameters)p 332 938 V 331 995 2 57 v 427 978 a Fz(a)452
985 y Fu(cli)p 588 995 V 596 995 V 661 978 a FC(color)p
820 995 V 89 w(\(0)p Fy(:)p FC(0)p Fy(;)8 b FC(0)p Fy(:)p
FC(0)p Fy(;)f FC(0)p Fy(:)p FC(0)o Fy(;)h FC(1)o Fy(:)p
FC(0\))p 1198 995 V 46 w(am)o(bien)o(t)15 b(in)o(tensit)o(y)h(of)f
(ligh)o(t)h Fy(i)p 1818 995 V 332 996 1487 2 v 331 1053
2 57 v 358 1036 a Fz(d)387 1043 y Fu(cli)428 1036 y FC(\()p
Fy(i)c FC(=)h(0\))p 588 1053 V 597 1053 V 98 w(color)p
820 1053 V 89 w(\(1)p Fy(:)p FC(0)p Fy(;)8 b FC(1)p Fy(:)p
FC(0)p Fy(;)f FC(1)p Fy(:)p FC(0)o Fy(;)h FC(1)o Fy(:)p
FC(0\))p 1198 1053 V 46 w(di\013use)16 b(in)o(tensit)o(y)g(of)f(ligh)o
(t)g(0)p 1818 1053 V 331 1109 V 358 1092 a Fz(d)387 1099
y Fu(cli)428 1092 y FC(\()p Fy(i)d(>)h FC(0\))p 588 1109
V 597 1109 V 98 w(color)p 820 1109 V 89 w(\(0)p Fy(:)p
FC(0)p Fy(;)8 b FC(0)p Fy(:)p FC(0)p Fy(;)f FC(0)p Fy(:)p
FC(0)o Fy(;)h FC(1)o Fy(:)p FC(0\))p 1198 1109 V 46 w(di\013use)16
b(in)o(tensit)o(y)g(of)f(ligh)o(t)g Fy(i)p 1818 1109
V 332 1111 1487 2 v 331 1167 2 57 v 363 1150 a Fz(s)384
1157 y Fu(cli)424 1150 y FC(\()p Fy(i)d FC(=)h(0\))p
588 1167 V 597 1167 V 102 w(color)p 820 1167 V 89 w(\(1)p
Fy(:)p FC(0)p Fy(;)8 b FC(1)p Fy(:)p FC(0)p Fy(;)f FC(1)p
Fy(:)p FC(0)o Fy(;)h FC(1)o Fy(:)p FC(0\))p 1198 1167
V 46 w(sp)q(ecular)16 b(in)o(tensit)o(y)g(of)f(ligh)o(t)h(0)p
1818 1167 V 331 1224 V 363 1207 a Fz(s)384 1214 y Fu(cli)424
1207 y FC(\()p Fy(i)c(>)h FC(0\))p 588 1224 V 597 1224
V 102 w(color)p 820 1224 V 89 w(\(0)p Fy(:)p FC(0)p Fy(;)8
b FC(0)p Fy(:)p FC(0)p Fy(;)f FC(0)p Fy(:)p FC(0)o Fy(;)h
FC(1)o Fy(:)p FC(0\))p 1198 1224 V 46 w(sp)q(ecular)16
b(in)o(tensit)o(y)g(of)f(ligh)o(t)h Fy(i)p 1818 1224
V 332 1225 1487 2 v 331 1282 2 57 v 421 1265 a Fz(P)457
1272 y Fu(pli)p 588 1282 V 596 1282 V 630 1265 a FC(p)q(osition)p
820 1282 V 59 w(\(0)p Fy(:)p FC(0)p Fy(;)8 b FC(0)p Fy(:)p
FC(0)p Fy(;)f FC(1)p Fy(:)p FC(0)o Fy(;)h FC(0)o Fy(:)p
FC(0\))p 1198 1282 V 46 w(p)q(osition)16 b(of)f(ligh)o(t)h
Fy(i)p 1818 1282 V 332 1284 1487 2 v 331 1396 2 113 v
428 1323 a Fz(s)449 1330 y Fu(dli)p 588 1396 V 596 1396
V 622 1323 a FC(direction)p 820 1396 V 72 w(\(0)p Fy(:)p
FC(0)p Fy(;)8 b FC(0)p Fy(:)p FC(0)p Fy(;)g FB(\000)p
FC(1)p Fy(:)o FC(0\))p 1198 1396 V 68 w(direction)k(of)d(sp)q(otligh)o
(t)i(for)e(ligh)o(t)1224 1379 y Fy(i)p 1818 1396 V 332
1398 1487 2 v 331 1511 2 113 v 429 1438 a(s)450 1445
y Fu(r)q(li)p 588 1511 V 596 1511 V 672 1438 a FC(real)p
820 1511 V 236 w(0.0)p 1198 1511 V 184 w(sp)q(otligh)o(t)14
b(exp)q(onen)o(t)h(for)e(ligh)o(t)h Fy(i)1224 1494 y
FC(\(range:)19 b([0)p Fy(:)p FC(0)p Fy(;)8 b FC(128)p
Fy(:)p FC(0])o(\))p 1818 1511 V 332 1513 1487 2 v 331
1682 2 170 v 430 1552 a Fy(c)450 1559 y Fu(r)q(li)p 588
1682 V 596 1682 V 672 1552 a FC(real)p 820 1682 V 213
w(180.0)p 1198 1682 V 161 w(sp)q(otligh)o(t)42 b(cuto\013)f(angle)i
(for)1224 1609 y(ligh)o(t)35 b Fy(i)g FC(\(range:)58
b([0)p Fy(:)p FC(0)p Fy(;)8 b FC(90)p Fy(:)p FC(0])o(,)1224
1665 y(180)p Fy(:)p FC(0\))p 1818 1682 V 332 1684 1487
2 v 331 1797 2 113 v 433 1723 a Fy(k)457 1730 y Fq(0)p
Fu(i)p 588 1797 V 596 1797 V 672 1723 a FC(real)p 820
1797 V 236 w(1.0)p 1198 1797 V 184 w(constan)o(t)28 b(atten)o(uation)h
(factor)1224 1780 y(for)15 b(ligh)o(t)g(i)h(\(range:)j([0)p
Fy(:)p FC(0)p Fy(;)8 b FB(1)p FC(\)\))p 1818 1797 V 332
1798 1487 2 v 331 1911 2 113 v 433 1838 a Fy(k)457 1845
y Fq(1)p Fu(i)p 588 1911 V 596 1911 V 672 1838 a FC(real)p
820 1911 V 236 w(0.0)p 1198 1911 V 184 w(linear)22 b(atten)o(uation)d
(factor)h(for)1224 1894 y(ligh)o(t)c(i)g(\(range:)j([0)p
Fy(:)p FC(0)p Fy(;)8 b FB(1)p FC(\)\))p 1818 1911 V 332
1913 1487 2 v 331 2026 2 113 v 433 1952 a Fy(k)457 1959
y Fq(2)p Fu(i)p 588 2026 V 596 2026 V 672 1952 a FC(real)p
820 2026 V 236 w(0.0)p 1198 2026 V 184 w(quadratic)19
b(atten)o(uation)g(factor)1224 2009 y(for)c(ligh)o(t)g(i)h(\(range:)j
([0)p Fy(:)p FC(0)p Fy(;)8 b FB(1)p FC(\)\))p 1818 2026
V 332 2027 1487 2 v 357 2067 a(Ligh)o(ting)16 b(Mo)q(del)g(P)o
(arameters)p 332 2086 V 331 2142 2 57 v 431 2125 a Fz(a)456
2132 y Fu(cs)p 588 2142 V 596 2142 V 661 2125 a FC(color)p
820 2142 V 89 w(\(0)p Fy(:)p FC(2)p Fy(;)8 b FC(0)p Fy(:)p
FC(2)p Fy(;)f FC(0)p Fy(:)p FC(2)o Fy(;)h FC(1)o Fy(:)p
FC(0\))p 1198 2142 V 46 w(am)o(bien)o(t)15 b(color)h(of)e(scene)p
1818 2142 V 332 2144 1487 2 v 331 2313 2 170 v 433 2183
a Fy(v)455 2190 y Fu(bs)p 588 2313 V 596 2313 V 632 2183
a FC(b)q(o)q(olean)p 820 2313 V 171 w Fr(FALSE)p 1198
2313 V 158 w FC(view)o(er)38 b(assumed)f(to)g(b)q(e)h(at)1224
2240 y(\(0)p Fy(;)8 b FC(0)p Fy(;)g FC(0\))30 b(in)k(ey)o(e)f(co)q
(ordinates)1224 2296 y(\()p Fr(TRUE)p FC(\))14 b(or)g(\(0)p
Fy(;)8 b FC(0)p Fy(;)g FB(1)p FC(\))13 b(\()p Fr(FALSE)p
FC(\))p 1818 2313 V 332 2315 1487 2 v 331 2371 2 57 v
435 2354 a Fy(t)451 2361 y Fu(bs)p 588 2371 V 596 2371
V 632 2354 a FC(b)q(o)q(olean)p 820 2371 V 171 w Fr(FALSE)p
1198 2371 V 158 w FC(use)j(t)o(w)o(o-sided)f(ligh)o(ting)h(mo)q(de)p
1818 2371 V 332 2373 1487 2 v 332 2450 a(T)l(able)i(2.7:)k(Summary)17
b(of)g(ligh)o(ting)h(parameters.)25 b(The)17 b(range)g(of)f(individual)
k(color)332 2506 y(comp)q(onen)o(ts)15 b(is)h(\()p FB(\0001)p
Fy(;)8 b FC(+)p FB(1)p FC(\).)p eop
%%Page: 45 54
45 53 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(45)191 286 y(The)15 b(color)h Fz(c)f FC(pro)q(duced)h(b)o(y)f
(ligh)o(ting)i(a)e(v)o(ertex)g(is)g(giv)o(en)h(b)o(y)389
373 y Fz(c)42 b FC(=)g Fz(e)555 380 y Fu(cm)454 442 y
FC(+)g Fz(a)556 449 y Fu(cm)615 442 y FB(\003)9 b Fz(a)672
449 y Fu(cs)454 544 y FC(+)531 491 y Fu(n)p FG(\000)p
Fq(1)534 503 y Fi(X)535 594 y Fu(i)p Fq(=0)597 544 y
FC(\()p Fy(att)671 551 y Fu(i)686 544 y FC(\)\()p Fy(spot)804
551 y Fu(i)818 544 y FC(\))e([)p Fz(a)881 551 y Fu(cm)939
544 y FB(\003)j Fz(a)997 551 y Fu(cli)765 618 y FC(+)43
b(\()p Fz(n)9 b FB(\014)944 587 y(\000)-6 b(!)944 618
y Fz(VP)1012 625 y Fu(pli)1055 618 y FC(\))p Fz(d)1102
625 y Fu(cm)1160 618 y FB(\003)10 b Fz(d)1222 625 y Fu(cli)765
678 y FC(+)43 b(\()p Fy(f)883 685 y Fu(i)896 678 y FC(\)\()p
Fz(n)10 b FB(\014)1019 666 y FC(^)1016 678 y Fz(h)1045
685 y Fu(i)1059 678 y FC(\))1077 662 y Fu(s)1093 666
y Fg(r)q(m)1140 678 y Fz(s)1161 685 y Fu(cm)1219 678
y FB(\003)g Fz(s)1273 685 y Fu(cli)1313 678 y FC(])120
761 y(where)237 872 y Fy(f)259 879 y Fu(i)314 872 y FC(=)391
800 y Fi(\()445 853 y FC(1)p Fy(;)41 b Fz(n)10 b FB(\014)607
822 y(\000)-6 b(!)607 853 y Fz(VP)675 860 y Fu(pli)730
853 y FB(6)p FC(=)13 b(0)p Fy(;)445 909 y FC(0)p Fy(;)41
b FC(otherwise,)1521 872 y(\(2.2\))230 1165 y Fz(h)259
1172 y Fu(i)314 1165 y FC(=)391 1079 y Fi(8)391 1116
y(<)391 1191 y(:)449 1106 y FB(\000)-6 b(!)449 1137 y
Fz(VP)517 1144 y Fu(pli)569 1137 y FC(+)615 1106 y FB(\000)g(!)615
1137 y Fz(VP)683 1144 y Fu(e)701 1137 y Fy(;)200 b(v)936
1144 y Fu(bs)982 1137 y FC(=)13 b Fw(TRUE)o Fy(;)449
1180 y FB(\000)-6 b(!)449 1211 y Fz(VP)517 1218 y Fu(pli)569
1211 y FC(+)11 b(\()c(0)45 b(0)h(1)7 b(\))825 1190 y
Fu(T)860 1211 y Fy(;)41 b(v)936 1218 y Fu(bs)982 1211
y FC(=)13 b Fw(FALSE)o Fy(;)1521 1165 y FC(\(2.3\))202
1480 y Fy(att)258 1487 y Fu(i)314 1480 y FC(=)391 1382
y Fi(8)391 1419 y(>)391 1431 y(<)391 1506 y(>)391 1519
y(:)770 1411 y FC(1)p 454 1418 655 2 v 454 1460 a Fy(k)478
1467 y Fq(0)p Fu(i)527 1460 y FC(+)18 b Fy(k)604 1467
y Fq(1)p Fu(i)635 1460 y FB(k)p Fz(VP)734 1467 y Fu(pli)776
1460 y FB(k)g FC(+)g Fy(k)894 1467 y Fq(2)p Fu(i)925
1460 y FB(k)p Fz(VP)1024 1467 y Fu(pli)1066 1460 y FB(k)1089
1441 y Fq(2)1113 1428 y Fy(;)41 b FC(if)16 b Fz(P)1245
1435 y Fu(pli)1287 1428 y FC('s)f Fy(w)f FB(6)p FC(=)f(0,)752
1539 y(1)p Fy(:)p FC(0)p Fy(;)343 b FC(otherwise,)1521
1480 y(\(2.4\))176 1823 y Fy(spot)258 1830 y Fu(i)314
1823 y FC(=)391 1712 y Fi(8)391 1750 y(>)391 1762 y(>)391
1775 y(<)391 1849 y(>)391 1862 y(>)391 1874 y(:)449 1767
y FC(\()467 1736 y FB(\000)-15 b(\000)-10 b(\000)-15
b(!)467 1767 y Fz(P)495 1774 y Fu(pli)538 1767 y Fz(V)10
b FB(\014)632 1766 y FC(^)633 1767 y Fz(s)654 1774 y
Fu(dli)697 1767 y FC(\))715 1750 y Fu(s)731 1756 y Fg(r)q(li)772
1767 y Fy(;)41 b(c)846 1774 y Fu(r)q(li)900 1767 y FB(6)p
FC(=)13 b(180)p Fy(:)p FC(0)p Fy(;)1074 1736 y FB(\000)-15
b(\000)j(\000)d(!)1074 1767 y Fz(P)1100 1774 y Fu(pli)1143
1767 y Fz(V)10 b FB(\014)1237 1766 y FC(^)1238 1767 y
Fz(s)1259 1774 y Fu(dli)1315 1767 y FB(\025)j FC(cos\()p
Fy(c)1462 1774 y Fu(r)q(li)1503 1767 y FC(\))p Fy(;)581
1841 y FC(0)p Fy(:)p FC(0)p Fy(;)173 b(c)846 1848 y Fu(r)q(li)900
1841 y FB(6)p FC(=)13 b(180)p Fy(:)p FC(0)p Fy(;)1074
1810 y FB(\000)-15 b(\000)j(\000)d(!)1074 1841 y Fz(P)1100
1848 y Fu(pli)1143 1841 y Fz(V)10 b FB(\014)1237 1840
y FC(^)1238 1841 y Fz(s)1259 1848 y Fu(dli)1315 1841
y Fy(<)j FC(cos\()p Fy(c)1462 1848 y Fu(r)q(li)1503 1841
y FC(\))p Fy(;)581 1897 y FC(1)p Fy(:)p FC(0)p Fy(;)173
b(c)846 1904 y Fu(r)q(li)900 1897 y FC(=)13 b(180)p Fy(:)p
FC(0)p Fy(:)1521 1823 y FC(\(2.5\))120 1980 y(All)k(computations)e(are)
g(carried)h(out)e(in)i(ey)o(e)g(co)q(ordinates.)191 2037
y(The)h(v)m(alue)g(of)f(A)h(pro)q(duced)g(b)o(y)g(ligh)o(ting)h(is)e
(the)h(alpha)g(v)m(alue)h(asso)q(ciated)e(with)120 2093
y Fz(d)149 2100 y Fu(cm)198 2093 y FC(.)23 b(Results)17
b(of)f(ligh)o(ting)i(are)e(unde\014ned)i(if)f(the)f Fy(w)1055
2100 y Fu(e)1089 2093 y FC(co)q(ordinate)h(\()p Fy(w)f
FC(in)i(ey)o(e)e(co)q(or-)120 2149 y(dinates\))g(of)f
Fz(V)g FC(is)h(zero.)191 2206 y(Ligh)o(ting)i(ma)o(y)e(op)q(erate)h(in)
h Fv(two-side)n(d)f FC(mo)q(de)g(\()p Fy(t)1051 2213
y Fu(bs)1100 2206 y FC(=)f Fw(TRUE)o FC(\),)h(in)h(whic)o(h)g(a)e
Fv(fr)n(ont)120 2262 y FC(color)h(is)g(computed)g(with)g(one)f(set)h
(of)f(material)h(parameters)e(\(the)i Fv(fr)n(ont)g(material)p
FC(\))120 2319 y(and)e(a)g Fv(b)n(ack)g FC(color)g(is)g(computed)g
(with)h(a)e(second)i(set)e(of)h(material)g(parameters)f(\(the)120
2375 y Fv(b)n(ack)e(material)p FC(\).)18 b(This)11 b(second)g
(computation)g(replaces)g Fz(n)f FC(with)h FB(\000)p
Fz(n)p FC(.)19 b(If)10 b Fy(t)1388 2382 y Fu(bs)1435
2375 y FC(=)j Fw(FALSE)o FC(,)120 2432 y(then)19 b(the)f(bac)o(k)h
(color)f(and)g(fron)o(t)g(color)g(are)g(b)q(oth)h(assigned)g(the)f
(color)g(computed)120 2488 y(using)e(the)g(fron)o(t)e(material)h(with)h
Fz(n)p FC(.)p eop
%%Page: 46 55
46 54 bop 332 137 a FC(46)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)403 286 y FC(The)10 b(selection)i(b)q(et)o
(w)o(een)e(bac)o(k)g(color)h(and)f(fron)o(t)f(color)i(dep)q(ends)h(on)e
(the)g(primitiv)o(e)332 343 y(of)17 b(whic)o(h)g(the)g(v)o(ertex)g(b)q
(eing)h(lit)f(is)h(a)e(part.)24 b(If)18 b(the)e(primitiv)o(e)j(is)e(a)g
(p)q(oin)o(t)g(or)f(a)h(line)332 399 y(segmen)o(t,)23
b(the)e(fron)o(t)g(color)h(is)g(alw)o(a)o(ys)f(selected.)41
b(If)22 b(it)g(is)g(a)g(p)q(olygon,)h(then)f(the)332
456 y(selection)16 b(is)f(based)f(on)g(the)h(sign)f(of)g(the)h(\(clipp)
q(ed)h(or)e(unclipp)q(ed\))j(p)q(olygon's)d(signed)332
512 y(area)h(computed)g(in)h(windo)o(w)g(co)q(ordinates.)k(One)c(w)o(a)
o(y)e(to)h(compute)g(this)h(area)e(is)815 653 y Fy(a)f
FC(=)905 623 y(1)p 905 643 23 2 v 905 685 a(2)940 601
y Fu(n)p FG(\000)p Fq(1)944 613 y Fi(X)945 704 y Fu(i)p
Fq(=0)1014 653 y Fy(x)1040 635 y Fu(i)1040 665 y(w)1069
653 y Fy(y)1093 635 y Fu(i)p FG(\010)p Fq(1)1091 665
y Fu(w)1162 653 y FB(\000)d Fy(x)1233 635 y Fu(i)p FG(\010)p
Fq(1)1233 665 y Fu(w)1293 653 y Fy(y)1317 635 y Fu(i)1315
665 y(w)1733 653 y FC(\(2.6\))332 801 y(where)18 b Fy(x)492
784 y Fu(i)492 812 y(w)537 801 y FC(and)g Fy(y)652 784
y Fu(i)650 812 y(w)695 801 y FC(are)f(the)h Fy(x)f FC(and)h
Fy(y)h FC(windo)o(w)e(co)q(ordinates)h(of)f(the)g Fy(i)p
FC(th)g(v)o(ertex)g(of)332 857 y(the)c Fy(n)p FC(-v)o(ertex)h(p)q
(olygon)g(\(v)o(ertices)f(are)g(n)o(um)o(b)q(ered)h(starting)f(at)f
(zero)h(for)g(purp)q(oses)h(of)332 914 y(this)h(computation\))f(and)h
Fy(i)8 b FB(\010)h FC(1)14 b(is)h(\()p Fy(i)8 b FC(+)h(1\))j(mo)q(d)g
Fy(n)p FC(.)20 b(The)15 b(in)o(terpretation)f(of)g(the)h(sign)332
970 y(of)g(this)g(v)m(alue)i(is)f(con)o(trolled)g(with)446
1069 y Fw(void)29 b Fz(F)l(ron)o(tF)l(ace)p FC(\()h Fw(enum)14
b Fv(dir)i FC(\))f Fw(;)332 1168 y FC(Setting)22 b Fv(dir)g
FC(to)f Fr(CCW)g FC(\(corresp)q(onding)h(to)f(coun)o(ter-clo)q(c)o
(kwise)i(orien)o(tation)e(of)g(the)332 1225 y(pro)s(jected)16
b(p)q(olygon)h(in)f(windo)o(w)h(co)q(ordinates\))f(indicates)i(that)d
(if)i Fy(a)d FB(\024)g FC(0,)i(then)g(the)332 1281 y(color)j(of)g(eac)o
(h)h(v)o(ertex)f(of)f(the)i(p)q(olygon)g(b)q(ecomes)f(the)h(bac)o(k)f
(color)g(computed)h(for)332 1338 y(that)15 b(v)o(ertex)g(while)h(if)g
Fy(a)d(>)g FC(0,)i(then)h(the)f(fron)o(t)g(color)g(is)h(selected.)21
b(If)16 b Fv(dir)g FC(is)g Fr(CW)p FC(,)e(then)332 1394
y Fy(a)g FC(is)h(replaced)g(b)o(y)f FB(\000)p Fy(a)h
FC(in)g(the)f(ab)q(o)o(v)o(e)g(inequalities.)22 b(This)15
b(requires)g(one)f(bit)h(of)f(state;)332 1451 y(initially)l(,)k(it)d
(indicates)i Fr(CCW)p FC(.)332 1580 y Fl(2.13.2)55 b(Ligh)n(ting)18
b(P)n(arameter)g(Sp)r(eci\014cation)332 1669 y FC(Ligh)o(ting)d
(parameters)f(are)g(divided)i(in)o(to)f(three)f(categories:)19
b(material)c(parameters,)332 1725 y(ligh)o(t)e(source)f(parameters,)g
(and)g(ligh)o(ting)h(mo)q(del)g(parameters)f(\(see)g(T)l(able)h(2.7\).)
k(Sets)332 1782 y(of)e(ligh)o(ting)h(parameters)f(are)f(sp)q(eci\014ed)
k(with)446 1881 y Fw(void)29 b Fz(Material)p FB(f)p Fz(if)p
FB(g)p FC(\()j Fw(enum)14 b Fv(fac)n(e)p Fw(,)h(enum)g
Fv(pname)p Fw(,)g(T)g Fv(p)n(ar)n(am)g FC(\))g Fw(;)446
1937 y(void)29 b Fz(Material)p FB(f)p Fz(if)p FB(g)p
Fz(v)p FC(\()i Fw(enum)15 b Fv(fac)n(e)p Fw(,)g(enum)f
Fv(pname)p Fw(,)h(T)g Fv(p)n(ar)n(ams)g FC(\))g Fw(;)446
1994 y(void)29 b Fz(Ligh)o(t)p FB(f)p Fz(if)p FB(g)p
FC(\()i Fw(enum)15 b Fv(light)p Fw(,)g(enum)f Fv(pname)p
Fw(,)i(T)f Fv(p)n(ar)n(am)g FC(\))g Fw(;)446 2050 y(void)29
b Fz(Ligh)o(t)p FB(f)p Fz(if)p FB(g)p Fz(v)p FC(\()i
Fw(enum)15 b Fv(light)p Fw(,)f(enum)h Fv(pname)p Fw(,)g(T)g
Fv(p)n(ar)n(ams)g FC(\))g Fw(;)446 2107 y(void)29 b Fz(Ligh)o(tMo)q
(del)p FB(f)p Fz(if)p FB(g)p FC(\()j Fw(enum)15 b Fv(pname)p
Fw(,)g(T)g Fv(p)n(ar)n(am)g FC(\))g Fw(;)446 2163 y(void)29
b Fz(Ligh)o(tMo)q(del)p FB(f)p Fz(if)p FB(g)p Fz(v)p
FC(\()j Fw(enum)14 b Fv(pname)p Fw(,)h(T)g Fv(p)n(ar)n(ams)h
FC(\))e Fw(;)332 2262 y Fv(pname)j FC(is)h(a)f(sym)o(b)q(olic)h
(constan)o(t)f(indicating)i(whic)o(h)f(parameter)e(is)i(to)f(b)q(e)h
(set)e(\(see)332 2319 y(T)l(able)h(2.8\).)k(In)c(the)f(v)o(ector)f(v)o
(ersions)i(of)e(the)h(commands,)g Fv(p)n(ar)n(ams)g FC(is)h(a)f(p)q
(oin)o(ter)g(to)332 2375 y(a)g(group)h(of)f(v)m(alues)i(to)e(whic)o(h)i
(to)e(set)g(the)h(indicated)h(parameter.)24 b(The)17
b(n)o(um)o(b)q(er)g(of)332 2432 y(v)m(alues)j(p)q(oin)o(ted)g(to)e(dep)
q(ends)j(on)e(the)g(parameter)f(b)q(eing)i(set.)31 b(In)20
b(the)f(non-v)o(ector)332 2488 y(v)o(ersions,)i Fv(p)n(ar)n(am)g
FC(is)f(a)g(v)m(alue)h(to)f(whic)o(h)h(to)e(set)h(a)g(single-v)m(alued)
j(parameter.)34 b(\(If)p eop
%%Page: 47 56
47 55 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(47)120 286 y Fv(p)n(ar)n(am)17 b FC(corresp)q(onds)f(to)g(a)g(m)o
(ulti-v)m(alued)i(parameter,)d(the)i(error)e Fr(INVALID)p
1447 286 14 2 v 14 w(ENUM)h FC(re-)120 343 y(sults.\))35
b(F)l(or)19 b(the)h Fz(Material)i FC(command,)e Fv(fac)n(e)g
FC(m)o(ust)f(b)q(e)i(one)f(of)g Fr(FRONT)p FC(,)e Fr(BACK)p
FC(,)h(or)120 399 y Fr(FRONT)p 233 399 V 15 w(AND)p 314
399 V 15 w(BACK)p FC(,)14 b(indicating)j(that)d(the)h(prop)q(ert)o(y)g
Fv(name)g FC(of)f(the)i(fron)o(t)e(or)g(bac)o(k)h(ma-)120
456 y(terial,)k(or)d(b)q(oth,)i(resp)q(ectiv)o(ely)l(,)h(should)g(b)q
(e)f(set.)26 b(In)18 b(the)f(case)h(of)f Fz(Ligh)o(t)p
FC(,)h Fv(light)f FC(is)h(a)120 512 y(sym)o(b)q(olic)g(constan)o(t)e
(of)g(the)h(form)f Fr(LIGHT)p Fh(i)p FC(,)f(indicating)k(that)d(ligh)o
(t)h Fy(i)f FC(is)h(to)f(ha)o(v)o(e)h(the)120 569 y(sp)q(eci\014ed)h
(parameter)c(set.)20 b(The)15 b(constan)o(ts)f(ob)q(ey)i
Fr(LIGHT)p Fh(i)c FC(=)h Fr(LIGHT0)c FC(+)h Fy(i)p FC(.)191
626 y(T)l(able)18 b(2.8)e(giv)o(es,)h(for)g(eac)o(h)g(of)g(the)g(three)
g(parameter)f(groups,)h(the)g(corresp)q(on-)120 682 y(dence)e(b)q(et)o
(w)o(een)f(the)g(pre-de\014ned)i(constan)o(t)d(names)g(and)h(their)h
(names)e(in)i(the)f(ligh)o(t-)120 738 y(ing)i(equations,)g(along)f
(with)h(the)f(n)o(um)o(b)q(er)h(of)f(v)m(alues)h(that)f(m)o(ust)g(b)q
(e)h(sp)q(eci\014ed)h(with)120 795 y(eac)o(h.)28 b(Color)17
b(parameters)g(sp)q(eci\014ed)j(with)e Fz(Material)h
FC(and)f Fz(Ligh)o(t)h FC(are)e(con)o(v)o(erted)120 851
y(to)i(\015oating-p)q(oin)o(t)h(v)m(alues)h(\(if)f(sp)q(eci\014ed)h(as)
e(in)o(tegers\))h(as)f(indicated)i(in)f(T)l(able)h(2.6)120
908 y(for)e(signed)h(in)o(tegers.)32 b(The)20 b(error)e
Fr(INVALID)p 905 908 V 15 w(VALUE)g FC(o)q(ccurs)h(if)h(a)f(sp)q
(eci\014ed)j(ligh)o(ting)120 964 y(parameter)d(lies)h(outside)f(the)g
(allo)o(w)o(able)h(range)f(giv)o(en)g(in)h(T)l(able)g(2.7.)30
b(\(The)19 b(sym-)120 1021 y(b)q(ol)d(\\)p FB(1)p FC(")f(indicates)i
(the)e(maxim)o(um)g(represen)o(table)h(magnitude)g(for)f(the)g
(indicated)120 1077 y(t)o(yp)q(e.\))191 1134 y(The)d(curren)o(t)f(mo)q
(del-view)j(matrix)d(is)h(applied)i(to)d(the)g(p)q(osition)i(parameter)
e(indi-)120 1191 y(cated)h(with)g Fz(Ligh)o(t)g FC(for)f(a)g
(particular)i(ligh)o(t)f(source)f(when)h(that)f(p)q(osition)i(is)f(sp)q
(eci\014ed.)120 1247 y(These)k(transformed)e(v)m(alues)j(are)d(the)i(v)
m(alues)g(used)g(in)g(the)f(ligh)o(ting)i(equation.)191
1304 y(The)c(sp)q(otligh)o(t)h(direction)g(is)g(transformed)e(when)h
(it)h(is)f(sp)q(eci\014ed)i(using)f(only)g(the)120 1360
y(upp)q(er)i(leftmost)f(3x3)f(p)q(ortion)i(of)e(the)i(mo)q(del-view)g
(matrix.)k(That)14 b(is,)h(if)h Fz(M)1469 1367 y Fu(u)1506
1360 y FC(is)g(the)120 1417 y(upp)q(er)j(left)g(3x3)e(matrix)h(tak)o
(en)f(from)h(the)g(curren)o(t)g(mo)q(del-view)h(matrix)f
Fy(M)5 b FC(,)18 b(then)120 1473 y(the)e(sp)q(otligh)o(t)f(direction)
801 1494 y Fi(0)801 1568 y(@)845 1522 y Fy(d)869 1529
y Fu(x)845 1578 y Fy(d)869 1585 y Fu(y)846 1635 y Fy(d)870
1642 y Fu(z)898 1494 y Fi(1)898 1568 y(A)120 1710 y FC(is)h
(transformed)e(to)657 1722 y Fi(0)657 1796 y(@)701 1750
y Fy(d)725 1733 y FG(0)725 1761 y Fu(x)701 1806 y Fy(d)725
1790 y FG(0)725 1817 y Fu(y)702 1863 y Fy(d)726 1846
y FG(0)726 1874 y Fu(z)754 1722 y Fi(1)754 1796 y(A)803
1806 y FC(=)f Fy(M)895 1813 y Fu(u)925 1722 y Fi(0)925
1796 y(@)969 1750 y Fy(d)993 1757 y Fu(x)969 1806 y Fy(d)993
1813 y Fu(y)970 1863 y Fy(d)994 1870 y Fu(z)1022 1722
y Fi(1)1022 1796 y(A)1066 1806 y Fy(:)191 1939 y FC(An)h(individual)j
(ligh)o(t)d(is)g(enabled)i(or)d(disabled)i(b)o(y)f(calling)h
Fz(Enable)g FC(or)f Fz(Disable)120 1995 y FC(with)i(the)g(sym)o(b)q
(olic)h(v)m(alue)g Fr(LIGHT)p Fh(i)e FC(\()p Fy(i)g FC(is)h(in)h(the)f
(range)f(0)h(to)f Fy(n)10 b FB(\000)h FC(1,)k(where)h
Fy(n)g FC(is)h(the)120 2052 y(implemen)o(tation-dep)q(end)q(en)o(t)i(n)
o(um)o(b)q(er)f(of)e(ligh)o(ts\).)26 b(If)17 b(ligh)o(t)g
Fy(i)g FC(is)g(disabled,)i(the)e Fy(i)p FC(th)120 2108
y(term)e(in)h(the)f(ligh)o(ting)i(equation)e(is)h(e\013ectiv)o(ely)g
(remo)o(v)o(ed)f(from)f(the)i(summation.)120 2232 y Fl(2.13.3)56
b(ColorMaterial)120 2319 y FC(It)15 b(is)f(p)q(ossible)i(to)e(attac)o
(h)f(one)h(or)g(more)f(material)i(prop)q(erties)f(to)g(the)g(curren)o
(t)g(color,)120 2375 y(so)23 b(that)e(they)i(con)o(tin)o(uously)h(trac)
o(k)d(its)i(comp)q(onen)o(t)g(v)m(alues.)43 b(This)23
b(b)q(eha)o(vior)g(is)120 2432 y(enabled)15 b(and)d(disabled)j(b)o(y)e
(calling)h Fz(Enable)g FC(or)e Fz(Disable)i FC(with)f(the)g(sym)o(b)q
(olic)h(v)m(alue)120 2488 y Fr(COLOR)p 233 2488 V 15
w(MATERIAL)p FC(.)p eop
%%Page: 48 57
48 56 bop 332 137 a FC(48)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 470 573 1220 2 v 469 629
2 57 v 496 612 a FC(P)o(arameter)p 728 629 V 737 629
V 253 w(Name)p 1291 629 V 244 w(Num)o(b)q(er)g(of)f(v)m(alues)p
1688 629 V 470 631 1220 2 v 495 670 a(Material)g(P)o(arameters)f(\()p
Fz(Material)p FC(\))p 470 689 V 469 745 2 57 v 562 729
a Fz(a)587 736 y Fu(cm)p 728 745 V 736 745 V 938 729
a Fr(AMBIENT)p 1291 745 V 387 w FC(4)p 1688 745 V 470
747 1220 2 v 469 804 2 57 v 560 787 a Fz(d)589 794 y
Fu(cm)p 728 804 V 736 804 V 938 787 a Fr(DIFFUSE)p 1291
804 V 387 w FC(4)p 1688 804 V 470 805 1220 2 v 469 862
2 57 v 513 845 a Fz(a)538 852 y Fu(cm)587 845 y Fy(;)8
b Fz(d)637 852 y Fu(cm)p 728 862 V 736 862 V 813 845
a Fr(AMBIENT)p 970 845 14 2 v 15 w(AND)p 1051 845 V 15
w(DIFFUSE)p 1291 862 2 57 v 262 w FC(4)p 1688 862 V 470
863 1220 2 v 469 920 2 57 v 565 903 a Fz(s)586 910 y
Fu(cm)p 728 920 V 736 920 V 927 903 a Fr(SPECULAR)p 1291
920 V 376 w FC(4)p 1688 920 V 470 921 1220 2 v 469 978
2 57 v 563 961 a Fz(e)587 968 y Fu(cm)p 728 978 V 736
978 V 927 961 a Fr(EMISSION)p 1291 978 V 376 w FC(4)p
1688 978 V 470 980 1220 2 v 469 1036 2 57 v 563 1019
a Fy(s)584 1026 y Fu(r)q(m)p 728 1036 V 736 1036 V 916
1019 a Fr(SHININESS)p 1291 1036 V 365 w FC(1)p 1688 1036
V 470 1038 1220 2 v 469 1094 2 57 v 495 1077 a Fy(a)519
1084 y Fu(m)552 1077 y Fy(;)g(d)597 1084 y Fu(m)629 1077
y Fy(;)g(s)671 1084 y Fu(m)p 728 1094 V 736 1094 V 876
1077 a Fr(COLOR)p 989 1077 14 2 v 14 w(INDEXES)p 1291
1094 2 57 v 325 w FC(3)p 1688 1094 V 470 1096 1220 2
v 495 1135 a(Ligh)o(t)15 b(Source)h(P)o(arameters)d(\()p
Fz(Ligh)o(t)p FC(\))p 470 1154 V 469 1210 2 57 v 566
1193 a Fz(a)591 1200 y Fu(cli)p 728 1210 V 736 1210 V
938 1193 a Fr(AMBIENT)p 1291 1210 V 387 w FC(4)p 1688
1210 V 470 1212 1220 2 v 469 1268 2 57 v 564 1252 a Fz(d)593
1259 y Fu(cli)p 728 1268 V 736 1268 V 938 1252 a Fr(DIFFUSE)p
1291 1268 V 387 w FC(4)p 1688 1268 V 470 1270 1220 2
v 469 1327 2 57 v 569 1310 a Fz(s)590 1317 y Fu(cli)p
728 1327 V 736 1327 V 927 1310 a Fr(SPECULAR)p 1291 1327
V 376 w FC(4)p 1688 1327 V 470 1328 1220 2 v 469 1385
2 57 v 560 1368 a Fz(P)596 1375 y Fu(pli)p 728 1385 V
736 1385 V 927 1368 a Fr(POSITION)p 1291 1385 V 376 w
FC(4)p 1688 1385 V 470 1386 1220 2 v 469 1443 2 57 v
567 1426 a Fz(s)588 1433 y Fu(dli)p 728 1443 V 736 1443
V 865 1426 a Fr(SPOT)p 956 1426 14 2 v 15 w(DIRECTION)p
1291 1443 2 57 v 313 w FC(3)p 1688 1443 V 470 1444 1220
2 v 469 1501 2 57 v 568 1484 a Fy(s)589 1491 y Fu(r)q(li)p
728 1501 V 736 1501 V 876 1484 a Fr(SPOT)p 967 1484 14
2 v 15 w(EXPONENT)p 1291 1501 2 57 v 324 w FC(1)p 1688
1501 V 470 1503 1220 2 v 469 1559 2 57 v 568 1542 a Fy(c)588
1549 y Fu(r)q(li)p 728 1559 V 736 1559 V 897 1542 a Fr(SPOT)p
988 1542 14 2 v 15 w(CUTOFF)p 1291 1559 2 57 v 347 w
FC(1)p 1688 1559 V 470 1561 1220 2 v 469 1617 2 57 v
577 1600 a Fy(k)601 1607 y Fq(0)p 728 1617 V 736 1617
V 799 1600 a Fr(CONSTANT)p 978 1600 14 2 v 14 w(ATTENUATION)p
1291 1617 2 57 v 248 w FC(1)p 1688 1617 V 470 1619 1220
2 v 469 1675 2 57 v 577 1658 a Fy(k)601 1665 y Fq(1)p
728 1675 V 736 1675 V 821 1658 a Fr(LINEAR)p 956 1658
14 2 v 15 w(ATTENUATION)p 1291 1675 2 57 v 269 w FC(1)p
1688 1675 V 470 1677 1220 2 v 469 1733 2 57 v 577 1716
a Fy(k)601 1723 y Fq(2)p 728 1733 V 736 1733 V 788 1716
a Fr(QUADRATIC)p 989 1716 14 2 v 14 w(ATTENUATION)p 1291
1733 2 57 v 237 w FC(1)p 1688 1733 V 470 1735 1220 2
v 495 1775 a(Ligh)o(ting)j(Mo)q(del)g(P)o(arameters)d(\()p
Fz(Ligh)o(tMo)q(del)p FC(\))p 470 1793 V 469 1850 2 57
v 570 1833 a Fz(a)595 1840 y Fu(cs)p 728 1850 V 736 1850
V 813 1833 a Fr(LIGHT)p 926 1833 14 2 v 15 w(MODEL)p
1051 1833 V 15 w(AMBIENT)p 1291 1850 2 57 v 262 w FC(4)p
1688 1850 V 470 1851 1220 2 v 469 1908 2 57 v 571 1891
a Fy(v)593 1898 y Fu(bs)p 728 1908 V 736 1908 V 762 1891
a Fr(LIGHT)p 875 1891 14 2 v 15 w(MODEL)p 1000 1891 V
14 w(LOCAL)p 1124 1891 V 15 w(VIEWER)p 1291 1908 2 57
v 211 w FC(1)p 1688 1908 V 470 1909 1220 2 v 469 1966
2 57 v 574 1949 a Fy(t)590 1956 y Fu(bs)p 728 1966 V
736 1966 V 805 1949 a Fr(LIGHT)p 918 1949 14 2 v 15 w(MODEL)p
1043 1949 V 15 w(TWO)p 1124 1949 V 15 w(SIDE)p 1291 1966
2 57 v 255 w FC(1)p 1688 1966 V 470 1968 1220 2 v 332
2095 a(T)l(able)33 b(2.8:)51 b(Corresp)q(ondence)33 b(of)e(ligh)o(ting)
i(parameter)e(sym)o(b)q(ols)h(to)f(names.)332 2151 y
Fr(AMBIENT)p 489 2151 14 2 v 14 w(AND)p 569 2151 V 15
w(DIFFUSE)14 b FC(is)i(used)g(to)e(set)h Fz(a)1050 2158
y Fu(cm)1114 2151 y FC(and)h Fz(d)1232 2158 y Fu(cm)1295
2151 y FC(to)f(the)g(same)g(v)m(alue.)p eop
%%Page: 49 58
49 57 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(49)p 139 600 1459 2 v 139 2079 2 1479 v 193 675
a
21313290 17476896 2039234 1973452 59927183 49994137 startTexFig
193 675 a
%%BeginDocument: pics/colormaterial.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Helvetica-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-BoldOblique-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
matrix currentmatrix
[96 0 0 -48 192 760] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 207 715] concat
newpath
0 0 M 0 38 L 52.554 38 L 52.554 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
205 713 M 205 755 L 261.554 755 L 261.554 713 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 207 715] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 21.4706 M (Current) 50.554 S
0 2.47059 M (Color) 36.554 S
setmatrix
grestore
gsave
matrix currentmatrix
[120 0 0 -48 544 608] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 551 563] concat
newpath
0 0 M 0 38 L 97.662 38 L 97.662 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
549 561 M 549 603 L 650.662 603 L 650.662 561 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 551 563] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 21.4706 M (Front Ambient) 95.662 S
0 2.47059 M (Color) 36.554 S
setmatrix
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 600] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 568] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 456 584] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
452 584 M
420 596 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
545 584 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
460 584 M
536 584 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 600 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
352 736 M
352 600 L
412 600 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
753 584 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
664 584 M
744 584 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
193 736 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
[4] 0 setdash
newpath
96 736 M
184 736 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 568 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
[4] 0 setdash
newpath
232 568 M
412 568 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 463 616] concat
newpath
0 0 M 0 57 L 439.934 57 L 439.934 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
461 614 M 461 675 L 904.934 675 L 904.934 614 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 463 616] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 40.4706 M (Up while ColorMater) 135.352 S
135.352 40.4706 M (ial ) 19.46 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
154.812 40.4706 M (face ) 31.906 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
186.718 40.4706 M (is FRONT or FRONT_A) 151.676 S
338.394 40.4706 M (ND_BACK,) 72.324 S
0 21.4706 M (and ColorMaterial ) 122.136 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
122.136 21.4706 M (mode ) 41.23 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
163.366 21.4706 M (is AMBIENT or AMBIE) 146.23 S
309.596 21.4706 M (NT_AND_DIFFUSE,) 128.338 S
0 2.47059 M (and ColorMaterial i) 126.028 S
126.028 2.47059 M (s enabled. Down ot) 131.474 S
257.502 2.47059 M (herwise.) 56.028 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 31 558] concat
newpath
0 0 M 0 19 L 185.554 19 L 185.554 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
29 556 M 29 579 L 218.554 579 L 218.554 556 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 31 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Material*\(FRONT,AMB) 147 S
147 2.47059 M (IENT\)) 36.554 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
439.629 599.072 translate
-111.801 rotate
1.2 1.2 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
456 640 M
442.971 607.428 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 767 574] concat
newpath
0 0 M 0 19 L 143.568 19 L 143.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
765 572 M 765 595 L 912.568 595 L 912.568 572 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 767 574] concat
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (To lighting equatio) 125.23 S
125.23 2.47059 M (ns) 16.338 S
setmatrix
grestore
gsave
matrix currentmatrix
[120 0 0 -48 544 472] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 551 427] concat
newpath
0 0 M 0 38 L 89.108 38 L 89.108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
549 425 M 549 467 L 642.108 467 L 642.108 425 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 551 427] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 21.4706 M (Front Diffuse) 87.108 S
0 2.47059 M (Color) 36.554 S
setmatrix
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 464] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 432] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 456 448] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
452 448 M
420 460 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
545 448 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
460 448 M
536 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 464 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
352 600 M
352 464 L
412 464 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
753 448 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
664 448 M
744 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 432 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
[4] 0 setdash
newpath
232 432 M
412 432 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 463 480] concat
newpath
0 0 M 0 57 L 436.056 57 L 436.056 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
461 478 M 461 539 L 901.056 539 L 901.056 478 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 463 480] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 40.4706 M (Up while ColorMater) 135.352 S
135.352 40.4706 M (ial ) 19.46 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
154.812 40.4706 M (face ) 31.906 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
186.718 40.4706 M (is FRONT or FRONT_A) 151.676 S
338.394 40.4706 M (ND_BACK,) 72.324 S
0 21.4706 M (and ColorMaterial ) 122.136 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
122.136 21.4706 M (mode ) 41.23 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
163.366 21.4706 M (is DIFFUSE or AMBIE) 142.352 S
305.718 21.4706 M (NT_AND_DIFFUSE,) 128.338 S
0 2.47059 M (and ColorMaterial i) 126.028 S
126.028 2.47059 M (s enabled. Down ot) 131.474 S
257.502 2.47059 M (herwise.) 56.028 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 31 422] concat
newpath
0 0 M 0 19 L 181.676 19 L 181.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
29 420 M 29 443 L 214.676 443 L 214.676 420 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 31 422] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Material*\(FRONT,DIF) 137.676 S
137.676 2.47059 M (FUSE\)) 42 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
439.629 463.072 translate
-111.801 rotate
1.2 1.2 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
456 504 M
442.971 471.428 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 767 438] concat
newpath
0 0 M 0 19 L 143.568 19 L 143.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
765 436 M 765 459 L 912.568 459 L 912.568 436 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 767 438] concat
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (To lighting equatio) 125.23 S
125.23 2.47059 M (ns) 16.338 S
setmatrix
grestore
gsave
matrix currentmatrix
[120 0 0 -48 544 336] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 328] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 296] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 456 312] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
452 312 M
420 324 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
545 312 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
460 312 M
536 312 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 328 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
352 464 M
352 328 L
412 328 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
753 312 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
664 312 M
744 312 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 296 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
[4] 0 setdash
newpath
248 296 M
412 296 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 463 344] concat
newpath
0 0 M 0 57 L 412.718 57 L 412.718 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
461 342 M 461 403 L 877.718 403 L 877.718 342 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 463 344] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 40.4706 M (Up while ColorMater) 135.352 S
135.352 40.4706 M (ial ) 19.46 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
154.812 40.4706 M (face ) 31.906 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
186.718 40.4706 M (is FRONT or FRONT_A) 151.676 S
338.394 40.4706 M (ND_BACK,) 72.324 S
0 21.4706 M (and ColorMaterial ) 122.136 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
122.136 21.4706 M (mode ) 41.23 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
163.366 21.4706 M (is SPECULAR, and Co) 147.798 S
311.164 21.4706 M (lorMaterial is) 86.366 S
0 2.47059 M (enabled. Down othe) 136.136 S
136.136 2.47059 M (rwise.) 39.69 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 31 286] concat
newpath
0 0 M 0 19 L 198.784 19 L 198.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
29 284 M 29 307 L 231.784 307 L 231.784 284 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 31 286] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Material*\(FRONT,SPE) 143.136 S
143.136 2.47059 M (CULAR\)) 53.648 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
439.629 327.072 translate
-111.801 rotate
1.2 1.2 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
456 368 M
442.971 335.428 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 767 302] concat
newpath
0 0 M 0 19 L 143.568 19 L 143.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
765 300 M 765 323 L 912.568 323 L 912.568 300 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 767 302] concat
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (To lighting equatio) 125.23 S
125.23 2.47059 M (ns) 16.338 S
setmatrix
grestore
gsave
matrix currentmatrix
[120 0 0 -48 544 200] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 551 155] concat
newpath
0 0 M 0 38 L 103.906 38 L 103.906 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
549 153 M 549 195 L 656.906 195 L 656.906 153 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 551 155] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 21.4706 M (Front Emission) 101.906 S
0 2.47059 M (Color) 36.554 S
setmatrix
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 192] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 424 160] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
2.000000 setlinewidth
matrix currentmatrix
[4 0 0 4 456 176] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
452 176 M
420 188 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
545 176 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
460 176 M
536 176 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 192 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
352 328 M
352 192 L
412 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
753 176 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
664 176 M
744 176 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
421 160 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
[4] 0 setdash
newpath
240 160 M
412 160 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 463 208] concat
newpath
0 0 M 0 57 L 412.718 57 L 412.718 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
461 206 M 461 267 L 877.718 267 L 877.718 206 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 463 208] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 40.4706 M (Up while ColorMater) 135.352 S
135.352 40.4706 M (ial ) 19.46 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
154.812 40.4706 M (face ) 31.906 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
186.718 40.4706 M (is FRONT or FRONT_A) 151.676 S
338.394 40.4706 M (ND_BACK,) 72.324 S
0 21.4706 M (and ColorMaterial ) 122.136 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
122.136 21.4706 M (mode ) 41.23 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
163.366 21.4706 M (is EMISSION, and Co) 139.258 S
302.624 21.4706 M (lorMaterial is) 86.366 S
0 2.47059 M (enabled. Down othe) 136.136 S
136.136 2.47059 M (rwise.) 39.69 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 31 150] concat
newpath
0 0 M 0 19 L 190.244 19 L 190.244 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
29 148 M 29 171 L 223.244 171 L 223.244 148 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 31 150] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Material*\(FRONT,EMI) 140.014 S
140.014 2.47059 M (SSION\)) 48.23 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
439.629 191.072 translate
-111.801 rotate
1.2 1.2 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
2.000000 setlinewidth
newpath
456 232 M
442.971 199.428 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 767 166] concat
newpath
0 0 M 0 19 L 143.568 19 L 143.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
765 164 M 765 187 L 912.568 187 L 912.568 164 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 767 166] concat
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (To lighting equatio) 125.23 S
125.23 2.47059 M (ns) 16.338 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 551 291] concat
newpath
0 0 M 0 38 L 100.798 38 L 100.798 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
549 289 M 549 331 L 653.798 331 L 653.798 289 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 551 291] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 21.4706 M (Front Specular) 98.798 S
0 2.47059 M (Color) 36.554 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 31 726] concat
newpath
0 0 M 0 19 L 53.324 19 L 53.324 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
29 724 M 29 747 L 86.324 747 L 86.324 724 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 31 726] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Color*\(\)) 51.324 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
481 736 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
288 736 M
472 736 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 495 726] concat
newpath
0 0 M 0 19 L 226.056 19 L 226.056 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
493 724 M 493 747 L 723.056 747 L 723.056 724 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 495 726] concat
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (To subsequent vert) 133.028 S
133.028 2.47059 M (ex operations) 91.028 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
289 72 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
[4] 0 setdash
newpath
224 72 M
280 72 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
289 40 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -10 -3 L -10 3 L closepath fill
grestore
3.000000 setlinewidth
newpath
224 40 M
280 40 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 303 30] concat
newpath
0 0 M 0 19 L 310.07 19 L 310.07 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
301 28 M 301 51 L 615.07 51 L 615.07 28 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 303 30] concat
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (State values flow c) 125.272 S
125.272 2.47059 M (ontinuously along t) 129.122 S
254.394 2.47059 M (his path) 53.676 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 303 62] concat
newpath
0 0 M 0 19 L 436.91 19 L 436.91 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
301 60 M 301 83 L 741.91 83 L 741.91 60 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 303 62] concat
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (State values flow a) 125.272 S
125.272 2.47059 M (long this path only) 124.46 S
249.732 2.47059 M ( when a command is ) 140.826 S
390.558 2.47059 M (issued) 44.352 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1900 a Fm(Figure)13 b(2.9.)k Fk(ColorMaterial)11
b Fm(op)q(eration.)18 b(Material)12 b(prop)q(erties)j(are)f(con)o(tin)o
(uously)178 1950 y(up)q(dated)e(from)f(the)h(curren)o(t)i(color)e
(while)f Fk(ColorMaterial)f Fm(is)h(enabled)i(and)f(has)g(the)178
2000 y(appropriate)17 b(mo)q(de.)28 b(Only)17 b(the)h(fron)o(t)f
(material)e(prop)q(erties)k(are)f(included)g(in)e(this)178
2049 y(\014gure.)i(The)c(bac)o(k)g(material)e(prop)q(erties)k(are)e
(treated)h(iden)o(tically)m(.)p 1595 2079 2 1479 v 139
2081 1459 2 v eop
%%Page: 50 59
50 58 bop 332 137 a FC(50)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)403 286 y FC(The)f(command)g(that)g(con)o
(trols)f(whic)o(h)j(of)d(these)i(mo)q(des)f(is)h(selected)g(is)446
387 y Fw(void)29 b Fz(ColorMaterial)p FC(\()j Fw(enum)14
b Fv(fac)n(e)p Fw(,)h(enum)g Fv(mo)n(de)g FC(\))g Fw(;)332
488 y Fv(fac)n(e)j FC(is)h(one)f(of)g Fr(FRONT)p FC(,)e
Fr(BACK)p FC(,)h(or)h Fr(FRONT)p 1046 488 14 2 v 15 w(AND)p
1127 488 V 15 w(BACK)p FC(,)f(indicating)j(whether)e(the)g(fron)o(t)332
545 y(material,)j(bac)o(k)f(material,)i(or)d(b)q(oth)h(are)g
(a\013ected)g(b)o(y)g(the)g(curren)o(t)h(color.)34 b
Fv(mo)n(de)332 601 y FC(is)16 b(one)g(of)f Fr(EMISSION)p
FC(,)e Fr(AMBIENT)p FC(,)h Fr(DIFFUSE)p FC(,)g Fr(SPECULAR)p
FC(,)f(or)i Fr(AMBIENT)p 1493 601 V 14 w(AND)p 1573 601
V 15 w(DIFFUSE)f FC(and)332 658 y(sp)q(eci\014es)21 b(whic)o(h)e
(material)g(prop)q(ert)o(y)f(or)g(prop)q(erties)i(trac)o(k)e(the)g
(curren)o(t)h(color.)30 b(If)332 714 y Fv(mo)n(de)22
b FC(is)h Fr(EMISSION)p FC(,)d Fr(AMBIENT)p FC(,)g Fr(DIFFUSE)p
FC(,)g(or)h Fr(SPECULAR)p FC(,)f(then)j(the)f(v)m(alue)h(of)e
Fz(e)1765 721 y Fu(cm)1814 714 y FC(,)332 771 y Fz(a)357
778 y Fu(cm)406 771 y FC(,)26 b Fz(d)474 778 y Fu(cm)546
771 y FC(or)e Fz(s)632 778 y Fu(cm)680 771 y FC(,)i(resp)q(ectiv)o(ely)
l(,)i(will)d(trac)o(k)e(the)h(curren)o(t)g(color.)47
b(If)24 b Fv(mo)n(de)g FC(is)332 827 y Fr(AMBIENT)p 489
827 V 14 w(AND)p 569 827 V 15 w(DIFFUSE)p FC(,)19 b(b)q(oth)h
Fz(a)904 834 y Fu(cm)973 827 y FC(and)g Fz(d)1095 834
y Fu(cm)1164 827 y FC(trac)o(k)f(the)h(curren)o(t)g(color.)35
b(The)20 b(re-)332 884 y(placemen)o(ts)c(made)e(to)h(material)g(prop)q
(erties)g(are)g(p)q(ermanen)o(t;)f(the)h(replaced)h(v)m(alues)332
940 y(remain)f(un)o(til)g(c)o(hanged)g(b)o(y)f(either)h(sending)g(a)f
(new)g(color)g(or)g(b)o(y)g(setting)g(a)g(new)h(ma-)332
997 y(terial)h(v)m(alue)h(when)f Fz(ColorMaterial)h FC(is)f(not)f
(curren)o(tly)h(enabled)h(to)e(o)o(v)o(erride)g(that)332
1053 y(particular)h(v)m(alue.)21 b(When)16 b Fr(COLOR)p
923 1053 V 14 w(MATERIAL)e FC(is)i(enabled,)g(the)f(indicated)i
(parameter)332 1109 y(or)e(parameters)f(alw)o(a)o(ys)h(trac)o(k)f(the)h
(curren)o(t)g(color.)20 b(F)l(or)15 b(instance,)g(calling)446
1211 y Fz(ColorMaterial)p Fw(\()p Fr(FRONT)p FC(,)g Fr(AMBIENT)p
Fw(\))332 1312 y FC(while)j Fr(COLOR)p 565 1312 V 15
w(MATERIAL)c FC(is)j(enabled)h(sets)e(the)h(fron)o(t)e(material)i
Fz(a)1470 1319 y Fu(cm)1535 1312 y FC(to)f(the)g(v)m(alue)i(of)332
1368 y(the)d(curren)o(t)g(color.)332 1500 y Fl(2.13.4)55
b(Ligh)n(ting)18 b(State)332 1589 y FC(The)11 b(state)f(required)j(for)
d(ligh)o(ting)i(consists)f(of)g(all)h(of)e(the)h(ligh)o(ting)i
(parameters)d(\(fron)o(t)332 1646 y(and)i(bac)o(k)f(material)h
(parameters,)f(ligh)o(ting)i(mo)q(del)g(parameters,)e(and)h(at)f(least)
g(8)h(sets)332 1702 y(of)i(ligh)o(t)g(parameters\),)f(a)h(bit)h
(indicating)h(whether)e(a)g(bac)o(k)g(color)g(distinct)h(from)e(the)332
1759 y(fron)o(t)i(color)i(should)g(b)q(e)g(computed,)g(at)e(least)i(8)f
(bits)g(to)g(indicate)i(whic)o(h)f(ligh)o(ts)g(are)332
1815 y(enabled,)d(a)e(\014v)o(e-v)m(alued)i(v)m(ariable)f(indicating)h
(the)e(curren)o(t)g Fz(ColorMaterial)i FC(mo)q(de,)332
1872 y(a)i(bit)h(indicating)i(whether)d(or)g(not)g Fr(COLOR)p
1084 1872 V 15 w(MATERIAL)f FC(is)i(enabled,)g(and)g(a)f(single)i(bit)
332 1928 y(to)e(indicate)j(whether)e(ligh)o(ting)h(is)g(enabled)h(or)d
(disabled.)27 b(In)18 b(the)f(initial)i(state,)e(all)332
1985 y(ligh)o(ting)k(parameters)d(ha)o(v)o(e)h(their)g(default)h(v)m
(alues.)33 b(Bac)o(k)19 b(color)h(ev)m(aluation)g(do)q(es)332
2041 y(not)14 b(tak)o(e)f(place,)i Fz(ColorMaterial)h
FC(is)f Fr(FRONT)p 1131 2041 V 14 w(AND)p 1211 2041 V
15 w(BACK)f FC(and)g Fr(AMBIENT)p 1569 2041 V 14 w(AND)p
1649 2041 V 15 w(DIFFUSE)p FC(,)332 2097 y(and)h(b)q(oth)h(ligh)o(ting)
g(and)g Fr(COLOR)p 895 2097 V 14 w(MATERIAL)e FC(are)h(disabled.)332
2229 y Fl(2.13.5)55 b(Color)19 b(Index)f(Ligh)n(ting)332
2319 y FC(A)k(simpli\014ed)j(ligh)o(ting)e(computation)f(applies)i(in)f
(color)f(index)h(mo)q(de)g(that)e(uses)332 2375 y(man)o(y)14
b(of)h(the)g(parameters)f(con)o(trolling)h(R)o(GBA)g(ligh)o(ting,)h
(but)f(none)g(of)f(the)h(R)o(GBA)332 2432 y(material)20
b(parameters.)33 b(First,)20 b(the)f(R)o(GBA)h(di\013use)h(and)f(sp)q
(ecular)g(in)o(tensities)i(of)332 2488 y(ligh)o(t)13
b Fy(i)g FC(\()p Fz(d)510 2495 y Fu(cli)562 2488 y FC(and)g
Fz(s)669 2495 y Fu(cli)709 2488 y FC(,)g(resp)q(ectiv)o(ely\))h
(determine)g(color)f(index)h(di\013use)f(and)g(sp)q(ecular)p
eop
%%Page: 51 60
51 59 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(51)120 286 y(ligh)o(t)16 b(in)o(tensities,)h Fy(d)476
293 y Fu(li)516 286 y FC(and)e Fy(s)625 293 y Fu(li)665
286 y FC(from)407 388 y Fy(d)431 395 y Fu(li)468 388
y FC(=)e(\()p Fy(:)p FC(30\))p Fy(R)p FC(\()p Fz(d)693
395 y Fu(cli)731 388 y FC(\))d(+)g(\()p Fy(:)p FC(59\))p
Fy(G)p FC(\()p Fz(d)982 395 y Fu(cli)1021 388 y FC(\))f(+)i(\()p
Fy(:)p FC(11\))p Fy(B)r FC(\()p Fz(d)1272 395 y Fu(cli)1311
388 y FC(\))120 490 y(and)414 547 y Fy(s)435 554 y Fu(li)473
547 y FC(=)i(\()p Fy(:)p FC(30\))p Fy(R)p FC(\()p Fz(s)690
554 y Fu(cli)728 547 y FC(\))d(+)g(\()p Fy(:)p FC(59\))p
Fy(G)p FC(\()p Fz(s)971 554 y Fu(cli)1009 547 y FC(\))g(+)g(\()p
Fy(:)p FC(11\))p Fy(B)r FC(\()p Fz(s)1252 554 y Fu(cli)1291
547 y FC(\))p Fy(:)120 630 y(R)p FC(\()p Fz(x)p FC(\))16
b(indicates)i(the)e(R)h(comp)q(onen)o(t)g(of)f(the)h(color)f
Fz(x)g FC(and)h(similarly)h(for)e Fy(G)p FC(\()p Fz(x)p
FC(\))g(and)120 687 y Fy(B)r FC(\()p Fz(x)p FC(\).)191
743 y(Next,)f(let)488 827 y Fy(s)e FC(=)589 774 y Fu(n)570
787 y Fi(X)571 878 y Fu(i)p Fq(=0)630 827 y FC(\()p Fy(att)704
834 y Fu(i)718 827 y FC(\)\()p Fy(spot)836 834 y Fu(i)850
827 y FC(\)\()p Fy(s)907 834 y Fu(li)932 827 y FC(\)\()p
Fy(f)990 834 y Fu(i)1004 827 y FC(\)\()p Fz(n)c FB(\014)1127
815 y FC(^)1124 827 y Fz(h)1153 834 y Fu(i)1167 827 y
FC(\))1185 809 y Fu(s)1201 813 y Fg(r)q(m)120 945 y FC(where)15
b Fy(att)307 952 y Fu(i)336 945 y FC(and)f Fy(spot)505
952 y Fu(i)534 945 y FC(are)g(giv)o(en)g(b)o(y)g(equations)h(2.4)e(and)
h(2.5,)f(resp)q(ectiv)o(ely)l(,)j(and)e Fy(f)1600 952
y Fu(i)120 1001 y FC(and)212 989 y(^)209 1001 y Fz(h)238
1008 y Fu(i)268 1001 y FC(are)h(giv)o(en)h(b)o(y)f(equations)h(2.2)e
(and)i(2.3,)e(resp)q(ectiv)o(ely)l(.)23 b(Let)15 b Fy(s)1343
985 y FG(0)1368 1001 y FC(=)f(min)p FB(f)p Fy(s;)8 b
FC(1)p FB(g)p FC(.)120 1058 y(Finally)l(,)17 b(let)513
1142 y Fy(d)12 b FC(=)616 1089 y Fu(n)597 1102 y Fi(X)598
1193 y Fu(i)p Fq(=0)657 1142 y FC(\()p Fy(att)731 1149
y Fu(i)746 1142 y FC(\)\()p Fy(spot)864 1149 y Fu(i)878
1142 y FC(\)\()p Fy(d)938 1149 y Fu(li)962 1142 y FC(\)\()p
Fz(n)d FB(\014)1082 1111 y(\000)-6 b(!)1082 1142 y Fz(VP)1149
1149 y Fu(pli)1192 1142 y FC(\))p Fy(:)120 1260 y FC(Then)16
b(color)f(index)i(ligh)o(ting)f(pro)q(duces)g(a)f(v)m(alue)i
Fy(c)p FC(,)d(giv)o(en)i(b)o(y)431 1361 y Fy(c)d FC(=)g
Fy(a)536 1368 y Fu(m)579 1361 y FC(+)d Fy(d)p FC(\(1)g
FB(\000)g Fy(s)765 1343 y FG(0)777 1361 y FC(\)\()p Fy(d)837
1368 y Fu(m)879 1361 y FB(\000)h Fy(a)949 1368 y Fu(m)982
1361 y FC(\))f(+)g Fy(s)1076 1343 y FG(0)1088 1361 y
FC(\()p Fy(s)1127 1368 y Fu(m)1171 1361 y FB(\000)g Fy(a)1240
1368 y Fu(m)1274 1361 y FC(\))p Fy(:)120 1463 y FC(The)16
b(\014nal)g(color)f(index)i(is)707 1520 y Fy(c)727 1501
y FG(0)751 1520 y FC(=)c(min)q FB(f)p Fy(c;)8 b(s)960
1527 y Fu(m)992 1520 y FB(g)p Fy(:)120 1603 y FC(The)18
b(v)m(alues)g Fy(a)377 1610 y Fu(m)411 1603 y FC(,)f
Fy(d)465 1610 y Fu(m)515 1603 y FC(and)h Fy(s)627 1610
y Fu(m)678 1603 y FC(are)f(material)g(prop)q(erties)h(describ)q(ed)i
(in)e(T)l(ables)g(2.7)120 1660 y(and)h(2.8.)28 b(An)o(y)18
b(am)o(bien)o(t)g(ligh)o(t)h(in)o(tensities)h(are)d(incorp)q(orated)i
(in)o(to)f Fy(a)1381 1667 y Fu(m)1415 1660 y FC(.)28
b(As)18 b(with)120 1716 y(R)o(GBA)12 b(ligh)o(ting,)i(disabled)f(ligh)o
(ts)g(cause)f(the)g(corresp)q(onding)g(terms)g(from)f(the)h(sum-)120
1773 y(mations)h(to)f(b)q(e)i(omitted.)19 b(The)13 b(in)o(terpretation)
g(of)g Fy(t)1033 1780 y Fu(bs)1080 1773 y FC(and)g(the)g(calculation)h
(of)f(fron)o(t)120 1829 y(and)23 b(bac)o(k)f(colors)g(is)g(carried)h
(out)f(as)f(has)h(already)h(b)q(een)g(describ)q(ed)h(for)e(R)o(GBA)120
1885 y(ligh)o(ting.)191 1942 y(The)27 b(v)m(alues)i Fy(a)468
1949 y Fu(m)501 1942 y FC(,)h Fy(d)568 1949 y Fu(m)601
1942 y FC(,)f(and)f Fy(s)765 1949 y Fu(m)825 1942 y FC(are)f(set)g
(with)g Fz(Material)i FC(using)f Fv(pr)n(op)f FC(of)120
1998 y Fr(COLOR)p 233 1998 14 2 v 15 w(INDEXES)p FC(.)18
b(Their)j(initial)h(v)m(alues)f(are)e(0,)i(1,)f(and)g(1,)h(resp)q
(ectiv)o(ely)l(.)36 b(The)20 b(ad-)120 2055 y(ditional)f(state)e
(consists)g(of)g(three)g(\015oating-p)q(oin)o(t)h(v)m(alues.)28
b(These)17 b(v)m(alues)i(ha)o(v)o(e)e(no)120 2111 y(e\013ect)e(on)g(R)o
(GBA)h(ligh)o(ting.)120 2233 y Fl(2.13.6)56 b(Clamping)17
b(or)i(Masking)120 2319 y FC(After)f(ligh)o(ting)h(\(whether)f(enabled)
h(or)f(not\),)f(R)o(GBA)h(colors)g(are)g(clamp)q(ed)h(to)f(the)120
2375 y(range)12 b([0)p Fy(;)c FC(1].)17 b(F)l(or)11 b(a)h(color)g
(index,)i(the)e(index)h(is)g(\014rst)f(con)o(v)o(erted)g(to)f
(\014xed-p)q(oin)o(t)i(with)120 2432 y(an)k(unsp)q(eci\014ed)j(n)o(um)o
(b)q(er)d(of)g(bits)g(to)f(the)h(righ)o(t)g(of)f(the)i(binary)f(p)q
(oin)o(t;)h(the)f(nearest)120 2488 y(\014xed-p)q(oin)o(t)g(v)m(alue)f
(is)f(selected.)21 b(Then,)16 b(the)f(bits)g(to)f(the)h(righ)o(t)g(of)g
(the)g(binary)g(p)q(oin)o(t)p eop
%%Page: 52 61
52 60 bop 332 137 a FC(52)643 b Fx(CHAPTER)16 b(2.)34
b(OPENGL)16 b(OPERA)l(TION)p 664 242 830 2 v 663 299
2 57 v 689 282 a FC(Primitiv)o(e)h(t)o(yp)q(e)e(of)g(p)q(olygon)g
Fy(i)p 1313 299 V 108 w FC(V)l(ertex)p 1493 299 V 664
301 830 2 v 664 309 V 663 365 2 57 v 689 348 a(single)i(p)q(olygon)f
(\()p Fy(i)11 b FB(\021)i FC(1\))p 1313 365 V 271 w(1)p
1493 365 V 664 367 830 2 v 663 423 2 57 v 689 406 a(triangle)j(strip)p
1313 423 V 410 w Fy(i)10 b FC(+)g(2)p 1493 423 V 664
425 830 2 v 663 482 2 57 v 689 465 a(triangle)16 b(fan)p
1313 482 V 439 w Fy(i)10 b FC(+)g(2)p 1493 482 V 664
483 830 2 v 663 540 2 57 v 689 523 a(indep)q(enden)o(t)18
b(triangle)p 1313 540 V 287 w(3)p Fy(i)p 1493 540 V 664
541 830 2 v 663 598 2 57 v 689 581 a FC(quad)e(strip)p
1313 598 V 453 w(2)p Fy(i)9 b FC(+)i(2)p 1493 598 V 664
599 830 2 v 663 656 2 57 v 689 639 a(indep)q(enden)o(t)18
b(quad)p 1313 656 V 341 w(4)p Fy(i)p 1493 656 V 664 658
830 2 v 332 785 a FC(T)l(able)12 b(2.9:)17 b(P)o(olygon)10
b(\015atshading)h(color)g(selection.)20 b(The)11 b(color)g(used)h(for)e
(\015atshading)332 841 y(the)15 b Fy(i)p FC(th)f(p)q(olygon)h
(generated)g(b)o(y)g(the)g(indicated)h Fz(Begin)p FC(/)p
Fz(End)g FC(t)o(yp)q(e)f(is)g(the)g(curren)o(t)332 897
y(color)f(\(if)g(ligh)o(ting)i(is)e(disabled\))i(in)f(e\013ect)f(when)g
(the)h(indicated)g(v)o(ertex)f(is)h(sp)q(eci\014ed.)332
954 y(If)k(ligh)o(ting)h(is)g(enabled,)h(the)e(color)g(is)g(pro)q
(duced)h(b)o(y)f(ligh)o(ting)h(the)f(indicated)i(v)o(er-)332
1010 y(tex.)h(V)l(ertices)17 b(are)f(n)o(um)o(b)q(ered)g(1)g(through)f
Fy(n)p FC(,)h(where)h Fy(n)f FC(is)g(the)g(n)o(um)o(b)q(er)h(of)e(v)o
(ertices)332 1067 y(b)q(et)o(w)o(een)h(the)f Fz(Begin)p
FC(/)p Fz(End)h FC(pair.)332 1211 y(are)21 b(left)g(alone)h(while)g
(the)g(in)o(teger)f(p)q(ortion)g(is)h(mask)o(ed)e(\(bit)o(wise)i
(ANDed\))f(with)332 1268 y(2)355 1251 y Fu(n)391 1268
y FB(\000)12 b FC(1,)19 b(where)g Fy(n)g FC(is)g(the)g(n)o(um)o(b)q(er)
f(of)h(bits)g(in)g(a)f(color)h(in)g(the)g(color)g(index)g(bu\013er)332
1324 y(\(bu\013ers)c(are)g(discussed)h(in)h(c)o(hapter)e(4\).)332
1458 y Fl(2.13.7)55 b(Flatshading)332 1548 y FC(A)13
b(primitiv)o(e)h(ma)o(y)f(b)q(e)g Fv(\015atshade)n(d)p
FC(,)h(meaning)f(that)f(all)i(v)o(ertices)g(of)e(the)h(primitiv)o(e)i
(are)332 1605 y(assigned)h(the)g(same)g(color.)21 b(This)c(color)f(is)g
(the)g(color)g(of)f(the)h(v)o(ertex)f(that)g(spa)o(wned)332
1661 y(the)g(primitiv)o(e.)21 b(F)l(or)13 b(a)h(p)q(oin)o(t,)h(this)g
(is)g(the)f(color)h(asso)q(ciated)g(with)f(the)h(p)q(oin)o(t.)20
b(F)l(or)14 b(a)332 1718 y(line)j(segmen)o(t,)d(it)i(is)f(the)g(color)g
(of)g(the)g(second)h(\(\014nal\))f(v)o(ertex)g(of)f(the)i(segmen)o(t.)j
(F)l(or)332 1774 y(a)f(p)q(olygon,)i(the)e(selected)i(color)f(dep)q
(ends)h(on)e(ho)o(w)g(the)h(p)q(olygon)g(w)o(as)f(generated.)332
1831 y(T)l(able)e(2.9)e(summarizes)i(the)f(p)q(ossibilitie)q(s.)403
1889 y(Flatshading)g(is)h(con)o(trolled)g(b)o(y)446 1992
y Fw(void)29 b Fz(ShadeMo)q(del)p FC(\()j Fw(enum)14
b Fv(mo)n(de)i FC(\))e Fw(;)332 2095 y Fv(mo)n(de)f FC(v)m(alue)i(m)o
(ust)d(b)q(e)i(either)g(of)e(the)h(sym)o(b)q(olic)i(constan)o(ts)d
Fr(SMOOTH)g FC(or)g Fr(FLAT)p FC(.)g(If)h Fv(mo)n(de)332
2151 y FC(is)h Fr(SMOOTH)e FC(\(the)g(initial)k(state\),)c(v)o(ertex)g
(colors)i(are)e(treated)h(individuall)q(y)l(.)22 b(If)14
b Fv(mo)n(de)f FC(is)332 2207 y Fr(FLAT)p FC(,)g(\015atshading)i(is)g
(turned)g(on.)k Fz(ShadeMo)q(del)d FC(th)o(us)e(requires)h(one)g(bit)g
(of)f(state.)332 2342 y Fl(2.13.8)55 b(Color)19 b(and)g(T)-5
b(exture)18 b(Co)r(ordinate)g(Clipping)332 2432 y FC(After)23
b(ligh)o(ting,)j(clamping)e(or)e(masking)i(and)f(p)q(ossible)i
(\015atshading,)g(colors)e(are)332 2488 y(clipp)q(ed.)38
b(If)20 b(the)g(color)h(is)f(asso)q(ciated)h(with)f(a)g(v)o(ertex)g
(that)g(lies)h(within)g(the)g(clip)p eop
%%Page: 53 62
53 61 bop 120 137 a Fx(2.13.)34 b(COLORS)17 b(AND)e(COLORING)746
b FC(53)120 286 y(v)o(olume,)17 b(it)g(is)g(una\013ected)g(b)o(y)f
(clipping.)26 b(If)17 b(a)f(primitiv)o(e)i(is)f(clipp)q(ed,)i(ho)o(w)o
(ev)o(er,)d(the)120 343 y(colors)g(assigned)f(to)g(v)o(ertices)g(pro)q
(duced)i(b)o(y)e(clipping)j(are)d(clipp)q(ed)i(colors.)191
399 y(Let)i(the)h(color)f(assigned)g(to)g(the)g(t)o(w)o(o)f(v)o
(ertices)h Fz(P)1093 406 y Fq(1)1132 399 y FC(and)g Fz(P)1260
406 y Fq(2)1299 399 y FC(of)g(an)g(unclipp)q(ed)120 456
y(edge)g(b)q(e)h Fz(c)316 463 y Fq(1)355 456 y FC(and)f
Fz(c)470 463 y Fq(2)489 456 y FC(.)31 b(The)19 b(v)m(alue)h(of)e
Fy(t)h FC(\(section)g(2.11\))f(for)g(a)g(clipp)q(ed)k(p)q(oin)o(t)d
Fz(P)f FC(is)120 512 y(used)e(to)f(obtain)g(the)g(color)h(asso)q
(ciated)f(with)h Fz(P)e FC(as)675 603 y Fz(c)f FC(=)g
Fy(t)p Fz(c)798 610 y Fq(1)829 603 y FC(+)d(\(1)g FB(\000)g
Fy(t)p FC(\))p Fz(c)1027 610 y Fq(2)1047 603 y Fy(:)120
693 y FC(\(F)l(or)16 b(a)f(color)i(index)g(color,)f(m)o(ultiplying)i(a)
e(color)g(b)o(y)g(a)g(scalar)g(means)h(m)o(ultiplying)120
749 y(the)g(index)h(b)o(y)f(the)f(scalar.)24 b(F)l(or)16
b(an)h(R)o(GBA)g(color,)f(it)h(means)g(m)o(ultiplying)h(eac)o(h)f(of)
120 806 y(R,)c(G,)f(B,)h(and)g(A)g(b)o(y)g(the)g(scalar.\))18
b(P)o(olygon)13 b(clipping)i(ma)o(y)e(create)f(a)h(clipp)q(ed)i(v)o
(ertex)120 862 y(along)i(an)g(edge)h(of)e(the)i(clip)g(v)o(olume's)f(b)
q(oundary)l(.)26 b(This)18 b(situation)g(is)f(handled)i(b)o(y)120
919 y(noting)e(that)f(p)q(olygon)h(clipping)i(pro)q(ceeds)e(b)o(y)f
(clipping)j(against)e(one)f(plane)i(of)e(the)120 975
y(clip)j(v)o(olume's)d(b)q(oundary)h(at)f(a)h(time.)24
b(Color)16 b(clipping)j(is)e(done)g(in)h(the)f(same)f(w)o(a)o(y)l(,)120
1032 y(so)22 b(that)e(clipp)q(ed)25 b(p)q(oin)o(ts)d(alw)o(a)o(ys)e(o)q
(ccur)i(at)f(the)h(in)o(tersection)g(of)f(p)q(olygon)h(edges)120
1088 y(\(p)q(ossibly)17 b(already)e(clipp)q(ed\))j(with)d(the)h(clip)g
(v)o(olume's)g(b)q(oundary)l(.)191 1145 y(T)l(exture)j(co)q(ordinates)g
(m)o(ust)g(also)g(b)q(e)g(clipp)q(ed)j(when)d(a)g(primitiv)o(e)h(is)f
(clipp)q(ed.)120 1201 y(The)d(metho)q(d)f(is)h(exactly)f(analogous)g
(to)g(that)f(used)i(for)f(color)g(clipping.)120 1321
y Fl(2.13.9)56 b(Final)18 b(Color)h(Pro)r(cessing)120
1407 y FC(F)l(or)c(an)g(R)o(GBA)g(color,)g(eac)o(h)g(color)g(comp)q
(onen)o(t)g(\(whic)o(h)h(lies)g(in)g([0,1]\))d(is)j(con)o(v)o(erted)120
1463 y(\(b)o(y)k(rounding)h(to)e(nearest\))h(to)f(a)h(\014xed-p)q(oin)o
(t)h(v)m(alue)g(with)f Fy(m)g FC(bits.)35 b(W)l(e)20
b(assume)120 1520 y(that)d(the)h(\014xed-p)q(oin)o(t)h(represen)o
(tation)f(used)h(represen)o(ts)e(eac)o(h)h(v)m(alue)h
Fy(k)q(=)p FC(\(2)1470 1503 y Fu(m)1515 1520 y FB(\000)12
b FC(1\),)120 1576 y(where)20 b Fy(k)g FB(2)g(f)p FC(0)p
Fy(;)8 b FC(1)p Fy(;)g(:)f(:)h(:)t(;)g FC(2)563 1560
y Fu(m)608 1576 y FB(\000)13 b FC(1)p FB(g)p FC(,)19
b(as)g Fy(k)h FC(\(e.g.)31 b(1.0)18 b(is)i(represen)o(ted)g(in)g
(binary)f(as)g(a)120 1633 y(string)c(of)g(all)h(ones\).)k
Fy(m)15 b FC(m)o(ust)f(b)q(e)i(at)f(least)g(as)g(large)g(as)g(the)g(n)o
(um)o(b)q(er)g(of)g(bits)h(in)g(the)120 1689 y(corresp)q(onding)21
b(comp)q(onen)o(t)e(of)g(the)g(framebu\013er.)32 b(If)19
b(the)h(framebu\013er)f(do)q(es)g(not)120 1745 y(con)o(tain)g(an)f(A)g
(comp)q(onen)o(t,)g(then)h Fy(m)f FC(m)o(ust)g(b)q(e)g(at)g(least)g(2)g
(for)f(A.)h(A)g(color)g(index)120 1802 y(is)e(con)o(v)o(erted)e(\(b)o
(y)h(rounding)g(to)f(nearest\))g(to)h(a)f(\014xed-p)q(oin)o(t)i(v)m
(alue)g(with)f(at)f(least)h(as)120 1858 y(man)o(y)g(bits)h(as)f(there)g
(are)g(in)h(the)f(color)g(index)i(p)q(ortion)e(of)g(the)g
(framebu\013er.)191 1915 y(Because)e(a)e(n)o(um)o(b)q(er)i(of)e(the)h
(form)g Fy(k)q(=)p FC(\(2)876 1898 y Fu(m)912 1915 y
FB(\000)t FC(1\))f(ma)o(y)h(not)f(b)q(e)i(represen)o(ted)f(exactly)120
1971 y(as)g(a)g(limited-precision)j(\015oating-p)q(oin)o(t)e(quan)o
(tit)o(y)l(,)f(w)o(e)g(place)h(a)e(further)h(requiremen)o(t)120
2028 y(on)k(the)g(\014xed-p)q(oin)o(t)h(con)o(v)o(ersion)f(of)g(R)o
(GBA)g(comp)q(onen)o(ts.)21 b(Supp)q(ose)c(that)f(ligh)o(ting)120
2084 y(is)e(disabled,)i(the)d(color)h(asso)q(ciated)f(with)h(a)f(v)o
(ertex)g(has)g(not)g(b)q(een)i(clipp)q(ed,)h(and)e(one)120
2141 y(of)k Fz(Colorub)p FC(,)i Fz(Colorus)p FC(,)e(or)g
Fz(Colorui)h FC(w)o(as)f(used)h(to)f(sp)q(ecify)i(that)e(color.)29
b(When)120 2197 y(these)14 b(conditions)h(are)f(satis\014ed,)g(an)f(R)o
(GBA)h(comp)q(onen)o(t)g(m)o(ust)f(con)o(v)o(ert)g(to)g(a)h(v)m(alue)
120 2254 y(that)e(matc)o(hes)g(the)g(comp)q(onen)o(t)g(as)g(sp)q
(eci\014ed)i(in)f(the)f Fz(Color)h FC(command:)18 b(if)12
b Fy(m)g FC(is)h(less)120 2310 y(than)h(the)f(n)o(um)o(b)q(er)g(of)g
(bits)h Fy(b)f FC(with)g(whic)o(h)h(the)g(comp)q(onen)o(t)f(w)o(as)g
(sp)q(eci\014ed,)i(then)f(the)120 2366 y(con)o(v)o(erted)e(v)m(alue)h
(m)o(ust)f(equal)g(the)g(most)f(signi\014can)o(t)i Fy(m)f
FC(bits)g(of)g(the)g(sp)q(eci\014ed)i(v)m(alue;)120 2423
y(otherwise,)i(the)f(most)f(signi\014can)o(t)j Fy(b)d
FC(bits)i(of)f(the)g(con)o(v)o(erted)g(v)m(alue)i(m)o(ust)e(equal)h
(the)120 2479 y(sp)q(eci\014ed)i(v)m(alue.)p eop
%%Page: 54 63
54 62 bop 332 634 a Ft(Chapter)31 b(3)332 878 y FA(Rasterization)332
1137 y FC(Rasterization)22 b(is)g(the)g(pro)q(cess)g(b)o(y)f(whic)o(h)i
(a)e(primitiv)o(e)i(is)f(con)o(v)o(erted)f(to)g(a)h(t)o(w)o(o-)332
1193 y(dimensional)d(image.)26 b(Eac)o(h)17 b(p)q(oin)o(t)h(of)f(this)g
(image)h(con)o(tains)f(suc)o(h)g(information)h(as)332
1250 y(color)g(and)h(depth.)30 b(Th)o(us,)19 b(rasterizing)f(a)g
(primitiv)o(e)i(consists)f(of)f(t)o(w)o(o)f(parts.)28
b(The)332 1306 y(\014rst)14 b(is)h(to)f(determine)i(whic)o(h)f(squares)
g(of)f(an)g(in)o(teger)h(grid)g(in)g(windo)o(w)g(co)q(ordinates)332
1363 y(are)g(o)q(ccupied)j(b)o(y)e(the)f(primitiv)o(e.)23
b(The)16 b(second)g(is)g(assigning)h(a)e(color)h(and)g(a)f(depth)332
1419 y(v)m(alue)j(to)d(eac)o(h)i(suc)o(h)f(square.)23
b(The)16 b(results)h(of)f(this)h(pro)q(cess)f(are)g(passed)h(on)f(to)f
(the)332 1476 y(next)f(stage)g(of)f(the)i(GL)f(\(p)q(er-fragmen)o(t)f
(op)q(erations\),)h(whic)o(h)h(uses)f(the)g(information)332
1532 y(to)f(up)q(date)h(the)f(appropriate)h(lo)q(cations)g(in)g(the)g
(framebu\013er.)19 b(Figure)13 b(3.1)g(diagrams)332 1589
y(the)i(rasterization)h(pro)q(cess.)403 1681 y(A)k(grid)h(square)f
(along)h(with)g(its)f(parameters)g(of)g(assigned)h(color,)g
Fy(z)i FC(\(depth\),)332 1738 y(and)14 b(texture)f(co)q(ordinates)h(is)
g(called)i(a)d Fv(fr)n(agment)p FC(;)g(the)h(parameters)f(are)g
(collectiv)o(ely)332 1794 y(dubb)q(ed)18 b(the)e(fragmen)o(t's)e
Fv(asso)n(ciate)n(d)j(data)p FC(.)23 b(A)16 b(fragmen)o(t)e(is)j(lo)q
(cated)g(b)o(y)e(its)i(lo)o(w)o(er-)332 1851 y(left)f(corner,)f(whic)o
(h)h(lies)h(on)f(in)o(teger)f(grid)h(co)q(ordinates.)21
b(Rasterization)16 b(op)q(erations)332 1907 y(also)e(refer)f(to)g(a)g
(fragmen)o(t's)f Fv(c)n(enter)p FC(,)h(whic)o(h)h(is)g(o\013set)e(b)o
(y)i(\(1)p Fy(=)p FC(2)p Fy(;)8 b FC(1)p Fy(=)p FC(2\))i(from)j(its)h
(lo)o(w)o(er-)332 1964 y(left)i(corner)f(\(and)g(so)g(lies)h(on)f
(half-in)o(teger)h(co)q(ordinates\).)403 2057 y(Grid)f(squares)f(need)i
(not)e(actually)i(b)q(e)g(square)e(in)i(the)f(GL.)f(Rasterization)i
(rules)332 2113 y(are)i(not)f(a\013ected)h(b)o(y)g(the)g(actual)g(asp)q
(ect)g(ratio)f(of)h(the)f(grid)i(squares.)27 b(Displa)o(y)19
b(of)332 2170 y(non-square)c(grids,)f(ho)o(w)o(ev)o(er,)f(will)j(cause)
f(rasterized)g(p)q(oin)o(ts)g(and)f(line)i(segmen)o(ts)e(to)332
2226 y(app)q(ear)19 b(fatter)e(in)j(one)e(direction)i(than)f(the)f
(other.)30 b(W)l(e)18 b(assume)h(that)f(fragmen)o(ts)332
2282 y(are)d(square,)g(since)h(it)f(simpli\014es)j(an)o(tialiasing)e
(and)g(texturing.)403 2375 y(Sev)o(eral)e(factors)f(a\013ect)g
(rasterization.)19 b(Lines)c(and)f(p)q(olygons)g(ma)o(y)g(b)q(e)g
(stippled.)332 2432 y(P)o(oin)o(ts)h(ma)o(y)f(b)q(e)i(giv)o(en)g
(di\013ering)g(diameters)f(and)h(line)h(segmen)o(ts)d(di\013ering)i
(widths.)332 2488 y(A)f(p)q(oin)o(t,)h(line)h(segmen)o(t,)d(or)h(p)q
(olygon)g(ma)o(y)g(b)q(e)h(an)o(tialiased.)1057 2613
y(54)p eop
%%Page: 55 64
55 63 bop 120 137 a Fx(3.1.)34 b(INV)-5 b(ARIANCE)1049
b FC(55)p 139 242 1459 2 v 139 1195 2 953 v 238 317 a
19892389 11537574 1447198 6841303 48415375 34206515 startTexFig
238 317 a
%%BeginDocument: pics/raster.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
matrix currentmatrix
[104 0 0 72 536 364] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 574 390] concat
newpath
0 0 M 0 14 L 27.662 14 L 27.662 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
572 388 M 572 406.471 L 603.662 406.471 L 603.662 388 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 574 390] concat
1 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 2.47059 M (Fog) 25.662 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 384 364] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 402 390] concat
newpath
0 0 M 0 14 L 65.784 14 L 65.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
400 388 M 400 406.471 L 469.784 406.471 L 469.784 388 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 402 390] concat
0.999998 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0.999998 2.47059 M (Texturing) 63.784 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 168 448] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 174 467] concat
newpath
0 0 M 0 33 L 89.906 33 L 89.906 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
172 465 M 172 502.471 L 265.906 502.471 L 265.906 465 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 174 467] concat
27.453 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
27.453 21.4706 M (Point) 35 S
1 2.47059 M 1 2.47059 M (Rasterization) 87.906 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 168 364] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 174 383] concat
newpath
0 0 M 0 33 L 89.906 33 L 89.906 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
172 381 M 172 418.471 L 265.906 418.471 L 265.906 381 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 174 383] concat
30.561 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
30.561 21.4706 M (Line) 28.784 S
1 2.47059 M 1 2.47059 M (Rasterization) 87.906 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 168 280] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 174 299] concat
newpath
0 0 M 0 33 L 89.906 33 L 89.906 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
172 297 M 172 334.471 L 265.906 334.471 L 265.906 297 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 174 299] concat
17.338 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
17.338 21.4706 M (Polygon) 55.23 S
1 2.47059 M 1 2.47059 M (Rasterization) 87.906 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
272 488 M
332 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
272 400 M
336 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
272 312 M
332 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
385 400 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
336 400 M
366 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
537 400 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
488 400 M
518 400 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 22 372] concat
newpath
0 0 M 0 52 L 68.136 52 L 68.136 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
20 370 M 20 426.471 L 92.136 426.471 L 92.136 370 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 22 372] concat
16.568 40.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
16.568 40.4706 M (From) 35 S
4.5 21.4706 M 4.5 21.4706 M (Primitive) 59.136 S
1 2.47059 M 1 2.47059 M (Assembly) 66.136 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
169 400 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
96 400 M
150 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
168.633 488.774 translate
50.7106 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
96 400 M
156.602 474.069 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
168.633 311.226 translate
-50.7106 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
96 400 M
156.602 325.931 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
697 400 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
640 400 M
678 400 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 662 366] concat
newpath
0 0 M 0 14 L 73.568 14 L 73.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
660 364 M 660 382.471 L 737.568 382.471 L 737.568 364 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 662 366] concat
1 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 2.47059 M (Fragments) 71.568 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 168 192] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 174 200] concat
newpath
0 0 M 0 52 L 89.906 52 L 89.906 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
172 198 M 172 254.471 L 265.906 254.471 L 265.906 198 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 174 200] concat
28.608 40.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
28.608 40.4706 M (Pixel) 32.69 S
11.5 21.4706 M 11.5 21.4706 M (Rectangle) 66.906 S
1 2.47059 M 1 2.47059 M (Rasterization) 87.906 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
169 228 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
128 228 M
150 228 L
stroke
grestore
gsave
matrix currentmatrix
[104 0 0 72 168 104] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 174 123] concat
newpath
0 0 M 0 33 L 89.906 33 L 89.906 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
172 121 M 172 158.471 L 265.906 158.471 L 265.906 121 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 174 123] concat
21.23 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
21.23 21.4706 M (Bitmap) 47.446 S
1 2.47059 M 1 2.47059 M (Rasterization) 87.906 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
169 140 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
128 140 M
150 140 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
332 400 M
272 224 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
332 400 M
272 136 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 74 130] concat
newpath
0 0 M 0 14 L 49.446 14 L 49.446 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
72 128 M 72 146.471 L 125.446 146.471 L 125.446 128 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 74 130] concat
1 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 2.47059 M (Bitmap) 47.446 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 46 218] concat
newpath
0 0 M 0 14 L 76.704 14 L 76.704 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
44 216 M 44 234.471 L 124.704 234.471 L 124.704 216 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 46 218] concat
1 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 2.47059 M (DrawPixels) 74.704 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1166 a Fm(Figure)14 b(3.1.)j(Rasterization.)p 1595
1195 2 953 v 139 1197 1459 2 v 120 1380 a Fs(3.1)67 b(In)n(v)l(ariance)
120 1486 y FC(Consider)21 b(a)e(primitiv)o(e)j Fy(p)580
1470 y FG(0)611 1486 y FC(obtained)f(b)o(y)f(translating)g(a)f
(primitiv)o(e)i Fy(p)f FC(through)g(an)120 1543 y(o\013set)f(\()p
Fy(x;)8 b(y)r FC(\))19 b(in)i(windo)o(w)f(co)q(ordinates,)h(where)f
Fy(x)g FC(and)g Fy(y)i FC(are)e(in)o(tegers.)34 b(As)20
b(long)120 1599 y(as)g(neither)h Fy(p)363 1583 y FG(0)395
1599 y FC(nor)e Fy(p)h FC(is)h(clipp)q(ed,)i(it)d(m)o(ust)g(b)q(e)h
(the)f(case)g(that)f(eac)o(h)h(fragmen)o(t)f Fy(f)1603
1583 y FG(0)120 1656 y FC(pro)q(duced)f(from)e Fy(p)452
1639 y FG(0)480 1656 y FC(is)h(iden)o(tical)i(to)d(a)g(corresp)q
(onding)i(fragmen)o(t)d Fy(f)22 b FC(from)16 b Fy(p)g
FC(except)120 1712 y(that)f(the)g(cen)o(ter)g(of)g Fy(f)511
1696 y FG(0)538 1712 y FC(is)h(o\013set)e(b)o(y)h(\()p
Fy(x;)8 b(y)r FC(\))14 b(from)g(the)h(cen)o(ter)h(of)e
Fy(f)5 b FC(.)120 1869 y Fs(3.2)67 b(An)n(tialiasing)120
1975 y FC(An)o(tialiasing)20 b(of)d(a)h(p)q(oin)o(t,)h(line,)g(or)f(p)q
(olygon)g(is)h(e\013ected)f(in)g(one)g(of)g(t)o(w)o(o)e(w)o(a)o(ys)h
(de-)120 2032 y(p)q(ending)g(on)e(whether)h(the)f(GL)g(is)h(in)g(R)o
(GBA)f(or)g(color)g(index)i(mo)q(de.)191 2091 y(In)g(R)o(GBA)g(mo)q
(de,)g(the)f(R,)h(G,)f(and)g(B)h(v)m(alues)h(of)e(the)h(rasterized)g
(fragmen)o(t)e(are)120 2147 y(left)20 b(una\013ected,)h(but)f(the)g(A)f
(v)m(alue)i(is)f(m)o(ultiplied)j(b)o(y)c(a)h(\015oating-p)q(oin)o(t)g
(v)m(alue)h(in)120 2204 y(the)k(range)e([0)p Fy(;)8 b
FC(1])23 b(that)g(describ)q(es)j(a)e(fragmen)o(t's)e(screen)j(pixel)h
(co)o(v)o(erage.)45 b(The)120 2260 y(p)q(er-fragmen)o(t)20
b(stage)f(of)h(the)g(GL)g(can)g(b)q(e)h(set)e(up)i(to)e(use)h(the)h(A)f
(v)m(alue)h(to)e(blend)120 2316 y(the)e(incoming)g(fragmen)o(t)e(with)i
(the)f(corresp)q(onding)i(pixel)g(already)e(presen)o(t)h(in)g(the)120
2373 y(framebu\013er.)191 2432 y(In)e(color)f(index)h(mo)q(de,)g(the)f
(least)g(signi\014can)o(t)h Fy(b)f FC(bits)g(\(to)f(the)i(left)f(of)g
(the)g(binary)120 2488 y(p)q(oin)o(t\))20 b(of)f(the)h(color)g(index)h
(are)e(used)h(for)f(an)o(tialiasing;)k Fy(b)d FC(=)g(min)q
FB(f)p FC(4)p Fy(;)8 b(m)p FB(g)p FC(,)18 b(where)p eop
%%Page: 56 65
56 64 bop 332 137 a FC(56)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y Fy(m)16 b FC(is)h(the)f(n)o(um)o(b)q(er)g
(of)g(bits)h(in)g(the)f(color)g(index)i(p)q(ortion)e(of)g(the)g
(framebu\013er.)22 b(The)332 343 y(an)o(tialiasing)14
b(pro)q(cess)g(sets)f(these)g Fy(b)g FC(bits)g(based)h(on)f(the)g
(fragmen)o(t's)e(co)o(v)o(erage)i(v)m(alue:)332 399 y(the)g(bits)g(are)
f(set)h(to)f(zero)h(for)f(no)g(co)o(v)o(erage)g(and)h(to)f(all)i(ones)e
(for)g(complete)i(co)o(v)o(erage.)403 456 y(The)19 b(details)h(of)e(ho)
o(w)g(an)o(tialiased)i(fragmen)o(t)e(co)o(v)o(erage)g(v)m(alues)i(are)e
(computed)332 512 y(are)d(di\016cult)i(to)e(sp)q(ecify)i(in)f(general.)
22 b(The)16 b(reason)f(is)h(that)f(high-qualit)o(y)i(an)o(tialias-)332
569 y(ing)e(ma)o(y)f(tak)o(e)h(in)o(to)f(accoun)o(t)h(p)q(erceptual)h
(issues)f(as)g(w)o(ell)h(as)e(c)o(haracteristics)h(of)f(the)332
625 y(monitor)k(on)g(whic)o(h)g(the)h(con)o(ten)o(ts)e(of)g(the)i
(framebu\013er)e(are)h(displa)o(y)o(ed.)29 b(Suc)o(h)19
b(de-)332 682 y(tails)f(cannot)f(b)q(e)h(addressed)f(within)i(the)e
(scop)q(e)h(of)e(this)i(do)q(cumen)o(t.)26 b(F)l(urther,)17
b(the)332 738 y(co)o(v)o(erage)f(v)m(alue)i(computed)g(for)e(a)h
(fragmen)o(t)f(of)g(some)h(primitiv)o(e)i(ma)o(y)d(dep)q(end)j(on)332
795 y(the)14 b(primitiv)o(e's)h(relationship)g(to)e(a)g(n)o(um)o(b)q
(er)h(of)g(grid)g(squares)f(neigh)o(b)q(oring)i(the)f(one)332
851 y(corresp)q(onding)j(to)e(the)h(fragmen)o(t,)e(and)i(not)g(just)f
(on)h(the)g(fragmen)o(t's)e(grid)i(square.)332 907 y(Another)i
(consideration)i(is)f(that)e(accurate)h(calculation)i(of)e(co)o(v)o
(erage)g(v)m(alues)h(ma)o(y)332 964 y(b)q(e)14 b(computationally)g(exp)
q(ensiv)o(e;)h(consequen)o(tly)f(w)o(e)f(allo)o(w)g(a)g(giv)o(en)g(GL)g
(implemen-)332 1020 y(tation)j(to)f(appro)o(ximate)g(true)h(co)o(v)o
(erage)e(v)m(alues)j(b)o(y)f(using)h(a)e(fast)g(but)h(not)f(en)o
(tirely)332 1077 y(accurate)g(co)o(v)o(erage)f(computation.)403
1133 y(In)f(ligh)o(t)g(of)g(these)g(considerations,)h(w)o(e)e(c)o(hose)
h(to)f(sp)q(ecify)i(the)f(b)q(eha)o(vior)g(of)g(exact)332
1190 y(an)o(tialiasing)20 b(in)g(the)f(protot)o(ypical)g(case)g(that)f
(eac)o(h)h(displa)o(y)o(ed)h(pixel)h(is)e(a)g(p)q(erfect)332
1246 y(square)c(of)f(uniform)h(in)o(tensit)o(y)l(.)21
b(The)15 b(square)g(is)g(called)i(a)d Fv(fr)n(agment)i(squar)n(e)f
FC(and)g(has)332 1303 y(lo)o(w)o(er)h(left)g(corner)g(\()p
Fy(x;)8 b(y)r FC(\))15 b(and)h(upp)q(er)h(righ)o(t)f(corner)g(\()p
Fy(x)11 b FC(+)g(1)p Fy(;)d(y)j FC(+)g(1\).)22 b(W)l(e)17
b(recognize)332 1359 y(that)e(this)h(simple)i(b)q(o)o(x)e(\014lter)g
(ma)o(y)f(not)g(pro)q(duce)i(the)f(most)f(fa)o(v)o(orable)g(an)o
(tialiasing)332 1416 y(results,)g(but)h(it)f(pro)o(vides)h(a)f(simple,)
h(w)o(ell-de\014ned)i(mo)q(del.)403 1472 y(A)g(GL)g(implemen)o(tation)h
(ma)o(y)e(use)i(other)e(metho)q(ds)h(to)g(p)q(erform)g(an)o
(tialiasing,)332 1528 y(sub)s(ject)d(to)g(the)g(follo)o(wing)h
(conditions:)388 1605 y(1.)22 b(If)14 b Fy(f)512 1612
y Fq(1)546 1605 y FC(and)h Fy(f)656 1612 y Fq(2)690 1605
y FC(are)f(t)o(w)o(o)f(fragmen)o(ts,)g(and)h(the)h(p)q(ortion)f(of)g
Fy(f)1469 1612 y Fq(1)1503 1605 y FC(co)o(v)o(ered)h(b)o(y)f(some)446
1662 y(primitiv)o(e)22 b(is)f(a)f(subset)h(of)g(the)f(corresp)q(onding)
i(p)q(ortion)f(of)f Fy(f)1569 1669 y Fq(2)1610 1662 y
FC(co)o(v)o(ered)h(b)o(y)446 1718 y(the)14 b(primitiv)o(e,)i(then)e
(the)g(co)o(v)o(erage)g(computed)g(for)g Fy(f)1391 1725
y Fq(1)1425 1718 y FC(m)o(ust)g(b)q(e)h(less)g(than)f(or)446
1775 y(equal)i(to)e(that)h(computed)g(for)g Fy(f)1021
1782 y Fq(2)1041 1775 y FC(.)388 1862 y(2.)22 b(The)f(co)o(v)o(erage)f
(computation)h(for)f(a)h(fragmen)o(t)e Fy(f)26 b FC(m)o(ust)21
b(b)q(e)g(lo)q(cal:)33 b(it)21 b(ma)o(y)446 1918 y(dep)q(end)14
b(only)f(on)f Fy(f)5 b FC('s)12 b(relationship)i(to)e(the)g(b)q
(oundary)h(of)f(the)g(primitiv)o(e)i(b)q(eing)446 1975
y(rasterized.)20 b(It)15 b(ma)o(y)g(not)g(dep)q(end)h(on)f
Fy(f)5 b FC('s)15 b Fy(x)g FC(and)h Fy(y)h FC(co)q(ordinates.)332
2052 y(Another)e(prop)q(ert)o(y)g(that)g(is)g(desirable,)i(but)e(not)g
(required,)h(is:)388 2129 y(3.)22 b(The)13 b(sum)g(of)g(the)g(co)o(v)o
(erage)f(v)m(alues)i(for)e(all)i(fragmen)o(ts)e(pro)q(duced)i(b)o(y)f
(rasteriz-)446 2185 y(ing)j(a)g(particular)g(primitiv)o(e)h(m)o(ust)e
(b)q(e)i(constan)o(t,)d(indep)q(enden)o(t)19 b(of)c(an)o(y)g(rigid)446
2242 y(motions)d(in)i(windo)o(w)f(co)q(ordinates,)g(as)f(long)h(as)g
(none)g(of)f(those)h(fragmen)o(ts)e(lies)446 2298 y(along)k(windo)o(w)g
(edges.)332 2375 y(In)22 b(some)f(implemen)o(tations,)j(v)m(arying)d
(degrees)h(of)f(an)o(tialiasing)h(qualit)o(y)g(ma)o(y)f(b)q(e)332
2432 y(obtained)e(b)o(y)g(pro)o(viding)h(GL)e(hin)o(ts)i(\(section)f
(5.6\),)e(allo)o(wing)j(a)e(user)h(to)f(mak)o(e)h(an)332
2488 y(image)c(qualit)o(y)h(v)o(ersus)f(sp)q(eed)h(tradeo\013.)p
eop
%%Page: 57 66
57 65 bop 120 137 a Fx(3.3.)34 b(POINTS)1169 b FC(57)120
286 y Fs(3.3)67 b(P)n(oin)n(ts)120 388 y FC(The)16 b(rasterization)f
(of)g(p)q(oin)o(ts)g(is)h(con)o(trolled)g(with)234 479
y Fw(void)30 b Fz(P)o(oin)o(tSize)p FC(\()g Fw(float)15
b Fv(size)f FC(\))h Fw(;)120 570 y Fv(size)h FC(sp)q(eci\014es)i(the)e
(width)h(or)e(diameter)i(of)f(a)g(p)q(oin)o(t.)23 b(The)17
b(default)f(v)m(alue)i(is)f(1.0.)22 b(A)120 627 y(v)m(alue)17
b(less)f(than)f(or)f(equal)i(to)f(zero)g(results)h(in)g(the)f(error)f
Fr(INVALID)p 1299 627 14 2 v 15 w(VALUE)p FC(.)191 683
y(P)o(oin)o(t)i(an)o(tialiasing)i(is)f(enabled)h(or)e(disabled)i(b)o(y)
f(calling)h Fz(Enable)g FC(or)e Fz(Disable)120 740 y
FC(with)g(the)g(sym)o(b)q(olic)g(constan)o(t)f Fr(POINT)p
788 740 V 15 w(SMOOTH)p FC(.)e(The)j(default)g(state)f(is)h(for)f(p)q
(oin)o(t)h(an-)120 796 y(tialiasing)h(to)e(b)q(e)h(disabled.)191
853 y(In)j(the)g(default)g(state,)f(a)g(p)q(oin)o(t)i(is)f(rasterized)g
(b)o(y)f(truncating)h(its)g Fy(x)1426 860 y Fu(w)1472
853 y FC(and)g Fy(y)1586 860 y Fu(w)120 909 y FC(co)q(ordinates)11
b(\(recall)g(that)f(the)h(subscripts)g(indicate)h(that)e(these)g(are)g
Fy(x)h FC(and)f Fy(y)j FC(windo)o(w)120 966 y(co)q(ordinates\))k(to)f
(in)o(tegers.)23 b(This)17 b(\()p Fy(x;)8 b(y)r FC(\))15
b(address,)h(along)h(with)f(data)g(deriv)o(ed)h(from)120
1022 y(the)f(data)e(asso)q(ciated)i(with)f(the)g(v)o(ertex)g(corresp)q
(onding)h(to)f(the)g(p)q(oin)o(t,)h(is)f(sen)o(t)g(as)g(a)120
1078 y(single)i(fragmen)o(t)d(to)g(the)i(p)q(er-fragmen)o(t)e(stage)h
(of)g(the)g(GL.)191 1135 y(The)24 b(e\013ect)f(of)h(a)f(p)q(oin)o(t)h
(width)g(other)g(than)f(1)p Fy(:)p FC(0)g(dep)q(ends)i(on)f(the)f
(state)g(of)120 1191 y(p)q(oin)o(t)g(an)o(tialiasing.)43
b(If)23 b(an)o(tialiasing)h(is)f(disabled,)i(the)e(actual)f(width)i(is)
e(deter-)120 1248 y(mined)15 b(b)o(y)e(rounding)h(the)g(supplied)h
(width)f(to)f(the)g(nearest)g(in)o(teger,)h(then)f(clamping)120
1304 y(it)j(to)e(the)h(implemen)o(tation-dep)q(end)q(en)o(t)i(maxim)o
(um)e(non-an)o(tialiased)i(p)q(oin)o(t)f(width.)120 1361
y(Though)21 b(this)h(implemen)o(tation-dep)q(enden)o(t)i(v)m(alue)e
(cannot)f(b)q(e)h(queried,)h(it)e(m)o(ust)120 1417 y(b)q(e)d(no)f(less)
h(than)f(the)g(implemen)o(tation-dep)q(endent)i(maxim)o(um)e(an)o
(tialiased)h(p)q(oin)o(t)120 1474 y(width,)g(rounded)f(to)f(the)h
(nearest)f(in)o(teger)h(v)m(alue,)h(and)f(in)g(an)o(y)g(ev)o(en)o(t)f
(no)h(less)g(than)120 1530 y(1.)22 b(If)16 b(rounding)h(the)f(sp)q
(eci\014ed)i(width)e(results)g(in)h(the)f(v)m(alue)h(0,)e(then)h(it)h
(is)f(as)f(if)i(the)120 1587 y(v)m(alue)g(w)o(ere)e(1.)k(If)d(the)f
(resulting)h(width)g(is)g(o)q(dd,)f(then)h(the)f(p)q(oin)o(t)576
1702 y(\()p Fy(x;)8 b(y)r FC(\))j(=)i(\()p FB(b)p Fy(x)806
1709 y Fu(w)834 1702 y FB(c)d FC(+)915 1671 y(1)p 915
1692 23 2 v 915 1733 a(2)942 1702 y Fy(;)e FB(b)p Fy(y)1005
1709 y Fu(w)1033 1702 y FB(c)j FC(+)1114 1671 y(1)p 1114
1692 V 1114 1733 a(2)1142 1702 y(\))120 1812 y(is)i(computed)f(from)g
(the)g(v)o(ertex's)f Fy(x)740 1819 y Fu(w)780 1812 y
FC(and)h Fy(y)887 1819 y Fu(w)916 1812 y FC(,)g(and)g(a)g(square)g
(grid)g(of)g(the)g(o)q(dd)g(width)120 1868 y(cen)o(tered)j(at)e(\()p
Fy(x;)8 b(y)r FC(\))13 b(de\014nes)i(the)f(cen)o(ters)g(of)f(the)h
(rasterized)h(fragmen)o(ts)e(\(recall)h(that)120 1924
y(fragmen)o(t)g(cen)o(ters)h(lie)h(at)e(half-in)o(teger)i(windo)o(w)f
(co)q(ordinate)g(v)m(alues\).)20 b(If)15 b(the)g(width)120
1981 y(is)h(ev)o(en,)f(then)h(the)f(cen)o(ter)g(p)q(oin)o(t)h(is)569
2096 y(\()p Fy(x;)8 b(y)r FC(\))j(=)i(\()p FB(b)p Fy(x)799
2103 y Fu(w)838 2096 y FC(+)888 2066 y(1)p 888 2086 V
888 2128 a(2)916 2096 y FB(c)p Fy(;)8 b FB(b)p Fy(y)999
2103 y Fu(w)1037 2096 y FC(+)1088 2066 y(1)p 1088 2086
V 1088 2128 a(2)1115 2096 y FB(c)p FC(\);)120 2206 y(the)j(rasterized)g
(fragmen)o(t)f(cen)o(ters)h(are)f(the)h(half-in)o(teger)g(windo)o(w)g
(co)q(ordinate)h(v)m(alues)120 2262 y(within)17 b(the)e(square)g(of)g
(the)g(ev)o(en)h(width)g(cen)o(tered)f(on)g(\()p Fy(x;)8
b(y)r FC(\).)19 b(See)c(Figure)h(3.2.)191 2319 y(All)23
b(fragmen)o(ts)e(pro)q(duced)j(in)f(rasterizing)f(a)g(non-an)o
(tialiased)i(p)q(oin)o(t)e(are)g(as-)120 2375 y(signed)13
b(the)f(same)f(asso)q(ciated)h(data,)f(whic)o(h)h(are)g(those)f(of)g
(the)h(v)o(ertex)f(corresp)q(onding)120 2432 y(to)i(the)f(p)q(oin)o(t,)
i(with)f(texture)g(co)q(ordinates)g Fy(s)p FC(,)g Fy(t)p
FC(,)g(and)g Fy(r)h FC(replaced)g(with)f Fy(s=q)r FC(,)g
Fy(t=q)r FC(,)g(and)120 2488 y Fy(r)q(=q)r FC(,)g(resp)q(ectiv)o(ely)l
(.)22 b(If)13 b Fy(q)j FC(is)e(less)g(then)g(or)f(equal)i(to)e(zero,)g
(the)h(results)g(are)f(unde\014ned.)p eop
%%Page: 58 67
58 66 bop 332 137 a FC(58)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 350 242 1459 2 v 350 1245 2 1003
v 449 317 a
19892389 10741882 1973452 34272296 31575244 50520391 startTexFig
449 317 a
%%BeginDocument: pics/point.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/pmask16 {
<00006666666600000000999999990000
00006666666600000000999999990000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 48 /patchar16 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar16 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask16 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
48 576 M
48 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
80 576 M
80 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
112 576 M
112 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
144 576 M
144 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
176 576 M
176 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
207 576 M
207 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
31 592 M
223 592 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
31 624 M
223 624 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
30 657 M
222 657 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
31 688 M
223 688 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
31 720 M
223 720 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
32 752 M
224 752 L
stroke
grestore
gsave
matrix currentmatrix
[32 0 0 32 128 672] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
640 16.08 720 {
96 exch M
(00000)
show
} for
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
104 648 M
120 664 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
104 664 M
120 648 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
168 648 M
184 664 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
168 664 M
184 648 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
136 648 M
152 664 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
136 664 M
152 648 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
136 680 M
152 696 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
136 696 M
152 680 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
104 680 M
120 696 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
104 696 M
120 680 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
168 680 M
184 696 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
168 696 M
184 680 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
168 712 M
184 728 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
168 728 M
184 712 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
136 712 M
152 728 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
136 728 M
152 712 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
104 712 M
120 728 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
104 728 M
120 712 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
304 576 M
304 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
336 576 M
336 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
368 576 M
368 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
400 576 M
400 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
432 576 M
432 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
464 576 M
464 768 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
288 592 M
480 592 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
288 624 M
480 624 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
288 656 M
480 656 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
288 688 M
480 688 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
288 720 M
480 720 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[4] 0 setdash
newpath
288 752 M
480 752 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 648 M
376 664 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 664 M
376 648 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 648 M
440 664 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 664 M
440 648 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 648 M
408 664 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 664 M
408 648 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 680 M
408 696 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 696 M
408 680 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 680 M
376 696 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 696 M
376 680 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 680 M
440 696 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 696 M
440 680 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 712 M
440 728 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 728 M
440 712 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 712 M
408 728 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 728 M
408 712 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 712 M
376 728 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 728 M
376 712 L
stroke
grestore
gsave
matrix currentmatrix
[32 0 0 32 368 656] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
624 16.08 704 {
336 exch M
(00000)
show
} for
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 648 M
344 664 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 664 M
344 648 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 680 M
344 696 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 696 M
344 680 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 712 M
344 728 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 728 M
344 712 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 616 M
344 632 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
328 632 M
344 616 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 616 M
376 632 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 632 M
376 616 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 616 M
408 632 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
392 632 M
408 616 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 616 M
440 632 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
424 632 M
440 616 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 79 521] concat
newpath
0 0 M 0 24 L 92.99 24 L 92.99 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
77 519 M 77 547 L 173.99 547 L 173.99 519 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 79 521] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Odd Width) 90.99 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 335 521] concat
newpath
0 0 M 0 24 L 100.01 24 L 100.01 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
333 519 M 333 547 L 437.01 547 L 437.01 519 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 335 521] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (Even Width) 98.01 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 135 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
133 554 M 133 575 L 155.68 575 L 155.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 135 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (3.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 167 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
165 554 M 165 575 L 187.68 575 L 187.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 167 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (4.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 199 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
197 554 M 197 575 L 219.68 575 L 219.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 199 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (5.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 103 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
101 554 M 101 575 L 123.68 575 L 123.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 103 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (2.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 71 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
69 554 M 69 575 L 91.68 575 L 91.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 71 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (1.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 391 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
389 554 M 389 575 L 411.68 575 L 411.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 391 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (3.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 423 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
421 554 M 421 575 L 443.68 575 L 443.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 423 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (4.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 455 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
453 554 M 453 575 L 475.68 575 L 475.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 455 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (5.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 359 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
357 554 M 357 575 L 379.68 575 L 379.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 359 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (2.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 327 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
325 554 M 325 575 L 347.68 575 L 347.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 327 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (1.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 247 616] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
245 614 M 245 635 L 267.68 635 L 267.68 614 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 247 616] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (1.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 247 648] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
245 646 M 245 667 L 267.68 667 L 267.68 646 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 247 648] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (2.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 247 680] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
245 678 M 245 699 L 267.68 699 L 267.68 678 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 247 680] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (3.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 247 712] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
245 710 M 245 731 L 267.68 731 L 267.68 710 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 247 712] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (4.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 295 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
293 554 M 293 575 L 315.68 575 L 315.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 295 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (0.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 39 556] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
37 554 M 37 575 L 59.68 575 L 59.68 554 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 39 556] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (0.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 247 584] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
245 582 M 245 603 L 267.68 603 L 267.68 582 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 247 584] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (0.5) 16.68 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 247 744] concat
newpath
0 0 M 0 17 L 18.68 17 L 18.68 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
245 742 M 245 763 L 267.68 763 L 267.68 742 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 247 744] concat
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
0 2.4 M (5.5) 16.68 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
128 704 M
128 672 L
160 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
368 688 M
368 656 L
400 656 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1116 a Fm(Figure)16 b(3.2.)24 b(Rasterization)16
b(of)f(non-an)o(tialiased)f(wide)i(p)q(oin)o(ts.)25 b(The)16
b(crosses)i(sho)o(w)389 1165 y(fragmen)o(t)11 b(cen)o(ters)k(pro)q
(duced)f(b)o(y)f(rasterization)g(for)f(an)o(y)g(p)q(oin)o(t)g(that)h
(lies)g(within)f(the)389 1215 y(shaded)j(region.)j(The)c(dotted)g(grid)
g(lines)g(lie)f(on)h(half-in)o(teger)f(co)q(ordinates.)p
1807 1245 2 1003 v 350 1247 1459 2 v 403 1456 a FC(If)k(an)o
(tialiasing)i(is)f(enabled,)h(then)f(p)q(oin)o(t)g(rasterization)f(pro)
q(duces)h(a)g(fragmen)o(t)332 1513 y(for)j(eac)o(h)i(fragmen)o(t)d
(square)i(that)g(in)o(tersects)g(the)g(region)g(lying)h(within)h(the)e
(cir-)332 1569 y(cle)e(ha)o(ving)f(diameter)g(equal)h(to)e(the)h
(curren)o(t)f(p)q(oin)o(t)i(width)f(and)g(cen)o(tered)g(at)f(the)332
1626 y(p)q(oin)o(t's)g(\()p Fy(x)528 1633 y Fu(w)556
1626 y Fy(;)8 b(y)599 1633 y Fu(w)627 1626 y FC(\))17
b(\(Figure)h(3.3\).)26 b(The)18 b(co)o(v)o(erage)f(v)m(alue)i(for)e
(eac)o(h)h(fragmen)o(t)e(is)i(the)332 1682 y(windo)o(w)h(co)q(ordinate)
f(area)g(of)g(the)h(in)o(tersection)g(of)f(the)g(circular)i(region)f
(with)f(the)332 1739 y(corresp)q(onding)13 b(fragmen)o(t)e(square)h
(\(but)h(see)f(section)h(3.2\).)k(This)c(v)m(alue)h(is)e(sa)o(v)o(ed)g
(and)332 1795 y(used)20 b(in)f(the)g(\014nal)h(step)f(of)f
(rasterization)h(\(section)g(3.10\).)30 b(The)19 b(data)f(asso)q
(ciated)332 1851 y(with)f(eac)o(h)f(fragmen)o(t)f(are)h(otherwise)h
(the)f(data)g(asso)q(ciated)g(with)h(the)f(p)q(oin)o(t)h(b)q(eing)332
1908 y(rasterized,)g(with)f(texture)g(co)q(ordinates)h
Fy(s)p FC(,)f Fy(t)p FC(,)h(and)f Fy(r)h FC(replaced)g(with)g
Fy(s=q)r FC(,)f Fy(t=q)r FC(,)g(and)332 1964 y Fy(r)q(=q)r
FC(,)d(resp)q(ectiv)o(ely)l(.)21 b(If)14 b Fy(q)i FC(is)e(less)g(then)g
(or)f(equal)h(to)f(zero,)h(the)g(results)g(are)f(unde\014ned.)403
2093 y(Not)21 b(all)i(widths)f(need)h(b)q(e)f(supp)q(orted)g(when)h(p)q
(oin)o(t)f(an)o(tialiasing)h(is)f(on,)h(but)332 2149
y(the)16 b(width)g(1)p Fy(:)p FC(0)f(m)o(ust)g(b)q(e)i(pro)o(vided.)22
b(If)16 b(an)g(unsupp)q(orted)h(width)f(is)g(requested,)g(the)332
2206 y(nearest)c(supp)q(orted)h(width)f(is)h(used)g(instead.)19
b(The)12 b(range)g(of)g(supp)q(orted)h(widths)f(and)332
2262 y(the)h(width)g(of)f(ev)o(enly-spaced)j(gradations)d(within)i
(that)d(range)i(are)f(implemen)o(tation)332 2319 y(dep)q(enden)o(t.)40
b(The)21 b(range)g(and)h(gradations)e(ma)o(y)h(b)q(e)h(obtained)g
(using)g(the)f(query)332 2375 y(mec)o(hanism)15 b(describ)q(ed)h(in)f
(Chapter)e(6.)20 b(If,)14 b(for)f(instance,)i(the)f(width)h(range)f(is)
g(from)332 2432 y(0.1)d(to)g(2.0)g(and)g(the)h(gradation)f(width)i(is)f
(0.1,)f(then)h(the)g(widths)g(0)p Fy(:)p FC(1)p Fy(;)c
FC(0)p Fy(:)p FC(2)p Fy(;)f(:)h(:)f(:)t(;)h FC(1)p Fy(:)p
FC(9)p Fy(;)g FC(2)p Fy(:)p FC(0)332 2488 y(are)15 b(supp)q(orted.)p
eop
%%Page: 59 68
59 67 bop 120 137 a Fx(3.3.)34 b(POINTS)1169 b FC(59)p
139 784 1459 2 v 139 1895 2 1112 v 538 858 a
10419816 10107215 3881123 19076710 32430407 46902394 startTexFig
538 858
a
%%BeginDocument: pics/pointa.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/pmask16 {
<00006666666600000000999999990000
00006666666600000000999999990000>
} def
/pmask19 {
<11112222444488881111222244448888
11112222444488881111222244448888>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 48 /patchar16 put
Encoding 51 /patchar19 put
/CharProcs 3 dict def
CharProcs begin
/.notdef {} def
/patchar16 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask16 imagemask
} def
/patchar19 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask19 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
/PatternFont findfont 16.08 scalefont setfont
matrix currentmatrix
[113.701 0 0 113.701 268 496] concat
newpath
0 0 1 0 360 arc
closepath clip setmatrix
0 0 0 setrgbcolor
352 16.08 624 {
128 exch M
(33333333333333333)
show
} for
2.000000 setlinewidth
matrix currentmatrix
[113.701 0 0 113.701 268 496] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
128 320 M
128 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
192 320 M
192 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
256 320 M
256 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
320 320 M
320 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
384 320 M
384 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
448 320 M
448 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 352 M
480 352 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 416 M
480 416 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 480 M
480 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 544 M
480 544 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 608 M
480 608 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 672 M
480 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 320 M
480 320 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 384 M
480 384 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 448 M
480 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 512 M
480 512 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
97 576 M
481 576 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
97 640 M
481 640 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 704 M
480 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 320 M
96 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 320 M
160 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
224 320 M
224 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
288 320 M
288 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
352 320 M
352 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
416 320 M
416 704 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
480 320 M
480 704 L
stroke
grestore
gsave
matrix currentmatrix
[8 0 0 8 272 496] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
2.000000 setlinewidth
matrix currentmatrix
[8 0 0 8 272 496] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 600 M
328 616 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 616 M
328 600 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
376 536 M
392 552 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
376 552 M
392 536 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 536 M
328 552 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 552 M
328 536 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 600 M
264 616 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 616 M
264 600 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 536 M
264 552 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 552 M
264 536 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 536 M
200 552 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 552 M
200 536 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 472 M
200 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 488 M
200 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 472 M
264 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 488 M
264 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 472 M
328 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 488 M
328 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
376 472 M
392 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
376 488 M
392 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 408 M
328 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
312 424 M
328 408 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 408 M
264 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 424 M
264 408 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 408 M
200 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 424 M
200 408 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 600 M
200 616 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
184 616 M
200 600 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 344 M
264 360 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
248 360 M
264 344 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
120 472 M
136 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
120 488 M
136 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
120 536 M
136 552 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
120 552 M
136 536 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
376 408 M
392 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
376 424 M
392 408 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 151 290] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
149 288 M 149 311 L 174.46 311 L 174.46 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 151 290] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (1.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 87 290] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
85 288 M 85 311 L 110.46 311 L 110.46 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 87 290] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (0.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 275 290] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
273 288 M 273 311 L 298.46 311 L 298.46 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 275 290] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (3.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 215 290] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
213 288 M 213 311 L 238.46 311 L 238.46 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 215 290] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (2.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 403 290] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
401 288 M 401 311 L 426.46 311 L 426.46 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 403 290] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (5.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 343 290] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
341 288 M 341 311 L 366.46 311 L 366.46 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 343 290] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (4.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 471 290] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
469 288 M 469 311 L 494.46 311 L 494.46 288 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 471 290] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (6.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 310] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 308 M 57 331 L 82.46 331 L 82.46 308 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 310] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (0.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 374] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 372 M 57 395 L 82.46 395 L 82.46 372 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 374] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (1.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 438] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 436 M 57 459 L 82.46 459 L 82.46 436 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 438] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (2.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 502] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 500 M 57 523 L 82.46 523 L 82.46 500 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 502] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (3.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 566] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 564 M 57 587 L 82.46 587 L 82.46 564 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 566] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (4.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 630] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 628 M 57 651 L 82.46 651 L 82.46 628 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 630] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (5.0) 19.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 59 694] concat
newpath
0 0 M 0 19 L 21.46 19 L 21.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
57 692 M 57 715 L 82.46 715 L 82.46 692 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 59 694] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (6.0) 19.46 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1617 a Fm(Figure)19 b(3.3.)31 b(Rasterization)19
b(of)f(an)o(tialiased)g(wide)g(p)q(oin)o(ts.)33 b(The)19
b(blac)o(k)g(dot)g(indi-)178 1667 y(cates)c(the)g(p)q(oin)o(t)f(to)g(b)
q(e)h(rasterized.)21 b(The)15 b(shaded)g(region)f(has)g(the)h(sp)q
(eci\014ed)h(width.)178 1716 y(The)f(X)h(marks)e(indicate)i(those)g
(fragmen)o(t)e(cen)o(ters)j(pro)q(duced)g(b)o(y)e(rasterization.)23
b(A)178 1766 y(fragmen)o(t's)10 b(computed)h(co)o(v)o(erage)h(v)n(alue)
e(is)i(based)g(on)f(the)h(p)q(ortion)g(of)f(the)h(shaded)g(re-)178
1816 y(gion)f(that)h(co)o(v)o(ers)h(the)f(corresp)q(onding)h(fragmen)o
(t)e(square.)18 b(Solid)11 b(lines)h(lie)f(on)h(in)o(teger)178
1866 y(co)q(ordinates.)p 1595 1895 2 1112 v 139 1897
1459 2 v eop
%%Page: 60 69
60 68 bop 332 137 a FC(60)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y Fl(3.3.1)55 b(P)n(oin)n(t)20
b(Rasterization)d(State)332 374 y FC(The)11 b(state)f(required)i(to)e
(con)o(trol)h(p)q(oin)o(t)g(rasterization)g(consists)g(of)f(the)h
(\015oating-p)q(oin)o(t)332 430 y(p)q(oin)o(t)16 b(width)g(and)f(a)g
(bit)h(indicating)h(whether)e(or)g(not)g(an)o(tialiasing)h(is)g
(enabled.)332 579 y Fs(3.4)66 b(Line)24 b(Segmen)n(ts)332
682 y FC(A)16 b(line)i(segmen)o(t)e(results)g(from)g(a)g(line)i(strip)e
Fz(Begin)p FC(/)p Fz(End)h FC(ob)s(ject,)f(a)g(line)h(lo)q(op,)g(or)332
738 y(a)g(series)h(of)f(separate)f(line)j(segmen)o(ts.)25
b(Line)19 b(segmen)o(t)e(rasterization)g(is)h(con)o(trolled)332
795 y(b)o(y)d(sev)o(eral)h(v)m(ariables.)21 b(Line)16
b(width,)g(whic)o(h)g(ma)o(y)e(b)q(e)i(set)f(b)o(y)g(calling)446
892 y Fw(void)29 b Fz(LineWidth)p FC(\()j Fw(float)15
b Fv(width)h FC(\))f Fw(;)332 989 y FC(with)f(an)g(appropriate)g(p)q
(ositiv)o(e)h(\015oating-p)q(oin)o(t)f(width,)h(con)o(trols)e(the)h
(width)g(of)g(ras-)332 1046 y(terized)19 b(line)g(segmen)o(ts.)28
b(The)18 b(default)g(width)g(is)h(1)p Fy(:)p FC(0.)26
b(V)l(alues)19 b(less)g(than)e(or)h(equal)332 1102 y(to)c(0)p
Fy(:)p FC(0)g(generate)g(the)h(error)f Fr(INVALID)p 987
1102 14 2 v 14 w(VALUE)p FC(.)g(An)o(tialiasing)i(is)f(con)o(trolled)h
(with)f Fz(En-)332 1159 y(able)22 b FC(and)e Fz(Disable)i
FC(using)f(the)g(sym)o(b)q(olic)h(constan)o(t)e Fr(LINE)p
1410 1159 V 15 w(SMOOTH)p FC(.)f(Finally)l(,)k(line)332
1215 y(segmen)o(ts)17 b(ma)o(y)g(b)q(e)h(stippled.)28
b(Stippling)20 b(is)e(con)o(trolled)g(b)o(y)f(a)g(GL)h(command)f(that)
332 1272 y(sets)e(a)g Fv(stipple)h(p)n(attern)f FC(\(see)g(b)q(elo)o
(w\).)332 1398 y Fl(3.4.1)55 b(Basic)19 b(Line)e(Segmen)n(t)g
(Rasterization)332 1486 y FC(Line)k(segmen)o(t)d(rasterization)h(b)q
(egins)h(b)o(y)f(c)o(haracterizing)h(the)f(segmen)o(t)g(as)g(either)332
1542 y Fv(x-major)g FC(or)e Fv(y-major)p FC(.)30 b Fy(x)p
FC(-ma)s(jor)16 b(line)k(segmen)o(ts)d(ha)o(v)o(e)h(slop)q(e)g(in)h
(the)f(closed)h(in)o(ter-)332 1599 y(v)m(al)e([)p FB(\000)p
FC(1)p Fy(;)8 b FC(1];)15 b(all)j(other)e(line)i(segmen)o(ts)e(are)h
Fy(y)r FC(-ma)s(jor)e(\(slop)q(e)i(is)g(determined)h(b)o(y)e(the)332
1655 y(segmen)o(t's)h(endp)q(oin)o(ts\).)28 b(W)l(e)18
b(shall)h(sp)q(ecify)g(rasterization)f(only)g(for)f Fy(x)p
FC(-ma)s(jor)f(seg-)332 1712 y(men)o(ts)e(except)g(in)h(cases)f(where)g
(the)g(mo)q(di\014cations)h(for)e Fy(y)r FC(-ma)s(jor)g(segmen)o(ts)g
(are)h(not)332 1768 y(self-eviden)o(t.)403 1825 y(Ideally)l(,)h(the)e
(GL)g(uses)h(a)e(\\diamond-exit")i(rule)g(to)f(determine)h(those)f
(fragmen)o(ts)332 1882 y(that)i(are)h(pro)q(duced)h(b)o(y)f
(rasterizing)h(a)f(line)h(segmen)o(t.)22 b(F)l(or)16
b(eac)o(h)g(fragmen)o(t)f Fy(f)21 b FC(with)332 1938
y(cen)o(ter)e(at)g(windo)o(w)g(co)q(ordinates)h Fy(x)972
1945 y Fu(f)1014 1938 y FC(and)f Fy(y)1128 1945 y Fu(f)1151
1938 y FC(,)h(de\014ne)g(a)f(diamond-shap)q(ed)i(region)332
1995 y(that)15 b(is)g(the)h(in)o(tersection)g(of)e(four)h(half)h
(planes:)671 2099 y Fy(R)706 2106 y Fu(f)741 2099 y FC(=)d
FB(f)8 b FC(\()p Fy(x;)g(y)r FC(\))i FB(j)j(j)p Fy(x)c
FB(\000)i Fy(x)1083 2106 y Fu(f)1105 2099 y FB(j)f FC(+)h
FB(j)p Fy(y)g FB(\000)g Fy(y)1288 2106 y Fu(f)1311 2099
y FB(j)h Fy(<)h FC(1)p Fy(=)p FC(2)p Fy(:)p FB(g)403
2205 y FC(Essen)o(tially)l(,)g(a)d(line)j(segmen)o(t)d(starting)h(at)f
Fz(p)1169 2212 y Fu(a)1201 2205 y FC(and)h(ending)h(at)f
Fz(p)1508 2212 y Fu(b)1536 2205 y FC(pro)q(duces)h(those)332
2261 y(fragmen)o(ts)k Fy(f)22 b FC(for)16 b(whic)o(h)i(the)e(segmen)o
(t)h(in)o(tersects)g Fy(R)1286 2268 y Fu(f)1308 2261
y FC(,)g(except)g(if)g Fz(p)1554 2268 y Fu(b)1588 2261
y FC(is)h(con)o(tained)332 2318 y(in)e Fy(R)420 2325
y Fu(f)442 2318 y FC(.)k(See)c(Figure)f(3.4.)403 2375
y(T)l(o)h(a)o(v)o(oid)g(di\016culties)j(when)e(an)g(endp)q(oin)o(t)g
(lies)h(on)f(a)f(b)q(oundary)h(of)f Fy(R)1664 2382 y
Fu(f)1703 2375 y FC(w)o(e)g(\(in)332 2432 y(principle\))23
b(p)q(erturb)d(the)g(supplied)i(endp)q(oin)o(ts)f(b)o(y)f(a)g(tin)o(y)g
(amoun)o(t.)33 b(Let)20 b Fz(p)1712 2439 y Fu(a)1753
2432 y FC(and)332 2488 y Fz(p)361 2495 y Fu(b)396 2488
y FC(ha)o(v)o(e)d(windo)o(w)h(co)q(ordinates)g(\()p Fy(x)959
2495 y Fu(a)979 2488 y Fy(;)8 b(y)1022 2495 y Fu(a)1043
2488 y FC(\))17 b(and)h(\()p Fy(x)1213 2495 y Fu(b)1230
2488 y Fy(;)8 b(y)1273 2495 y Fu(b)1289 2488 y FC(\),)18
b(resp)q(ectiv)o(ely)l(.)29 b(Obtain)18 b(the)p eop
%%Page: 61 70
61 69 bop 120 137 a Fx(3.4.)34 b(LINE)16 b(SEGMENTS)961
b FC(61)p 139 242 1459 2 v 139 1214 2 972 v 568 317 a
9472573 9472573 4210032 25260195 25260195 46310359 startTexFig
568 317 a
%%BeginDocument: pics/bresen.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/pmask16 {
<00006666666600000000999999990000
00006666666600000000999999990000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 48 /patchar16 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar16 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask16 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
80 672 M
368 672 L
368 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
80 608 M
368 608 L
368 608 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
80 544 M
368 544 L
368 544 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
80 480 M
368 480 L
368 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
80 416 M
368 416 L
368 416 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 400 M
96 688 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
160 400 M
160 688 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 400 M
224 688 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
288 400 M
288 688 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
352 400 M
352 688 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 448 M
320 672 L
320 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 512 M
256 672 L
256 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
192 416 M
352 576 L
352 576 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
128 416 M
352 640 L
352 640 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 576 M
192 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
256 416 M
352 512 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
320 416 M
352 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 640 M
128 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 448 M
128 416 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
320 672 M
352 640 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
192 416 M
96 512 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
352 576 M
256 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
256 416 M
96 576 L
96 576 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
352 512 M
192 672 L
192 672 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
96 640 M
320 416 L
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
[4] 0 setdash
newpath
128 672 M
352 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
82 425 M
352 625 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
88 408 M
104 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
88 424 M
104 408 L
104 408 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
152 472 M
168 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
152 488 M
168 472 L
168 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
216 536 M
232 552 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
216 552 M
232 536 L
232 536 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
280 600 M
296 616 L
stroke
grestore
gsave
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
280 616 M
296 600 L
296 600 L
stroke
grestore
gsave
matrix currentmatrix
[0 0 0 0 128 480] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
448 16.08 496 {
96 exch M
(000)
show
} for
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[0 0 0 0 128 480] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
448 16.08 496 {
96 exch M
(000)
show
} for
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
128 480 M
160 512 L
192 480 L
160 448 L
closepath
eoclip
416 16.08 528 {
96 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
192 544 M
224 576 L
256 544 L
224 512 L
closepath
eoclip
480 16.08 592 {
160 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
192 480 M
224 512 L
256 480 L
224 448 L
closepath
eoclip
416 16.08 528 {
160 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
192 416 M
224 448 L
256 416 L
224 384 L
closepath
eoclip
352 16.08 464 {
160 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
128 416 M
160 448 L
192 416 L
160 384 L
closepath
eoclip
352 16.08 464 {
96 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
64 416 M
96 448 L
128 416 L
96 384 L
closepath
eoclip
352 16.08 464 {
32 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
64 480 M
96 512 L
128 480 L
96 448 L
closepath
eoclip
416 16.08 528 {
32 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
64 544 M
96 576 L
128 544 L
96 512 L
closepath
eoclip
480 16.08 592 {
32 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
64 608 M
96 640 L
128 608 L
96 576 L
closepath
eoclip
544 16.08 656 {
32 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
64 672 M
96 704 L
128 672 L
96 640 L
closepath
eoclip
608 16.08 720 {
32 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
128 544 M
160 576 L
192 544 L
160 512 L
closepath
eoclip
480 16.08 592 {
96 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
128 608 M
160 640 L
192 608 L
160 576 L
closepath
eoclip
544 16.08 656 {
96 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
128 672 M
160 704 L
192 672 L
160 640 L
closepath
eoclip
608 16.08 720 {
96 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
192 608 M
224 640 L
256 608 L
224 576 L
closepath
eoclip
544 16.08 656 {
160 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
192 672 M
224 704 L
256 672 L
224 640 L
closepath
eoclip
608 16.08 720 {
160 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
256 416 M
288 448 L
320 416 L
288 384 L
closepath
eoclip
352 16.08 464 {
224 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
256 480 M
288 512 L
320 480 L
288 448 L
closepath
eoclip
416 16.08 528 {
224 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
256 544 M
288 576 L
320 544 L
288 512 L
closepath
eoclip
480 16.08 592 {
224 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
256 608 M
288 640 L
320 608 L
288 576 L
closepath
eoclip
544 16.08 656 {
224 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
256 672 M
288 704 L
320 672 L
288 640 L
closepath
eoclip
608 16.08 720 {
224 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
320 416 M
352 448 L
384 416 L
352 384 L
closepath
eoclip
352 16.08 464 {
288 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
320 480 M
352 512 L
384 480 L
352 448 L
closepath
eoclip
416 16.08 528 {
288 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
320 544 M
352 576 L
384 544 L
352 512 L
closepath
eoclip
480 16.08 592 {
288 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
320 608 M
352 640 L
384 608 L
352 576 L
closepath
eoclip
544 16.08 656 {
288 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
320 672 M
352 704 L
384 672 L
352 640 L
closepath
eoclip
608 16.08 720 {
288 exch M
(0000000)
show
} for
0 0 0 setrgbcolor
grestore
gsave
matrix currentmatrix
[4.12311 0 0 4.12311 83 425] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
1.000000 setlinewidth
matrix currentmatrix
[4.12311 0 0 4.12311 83 425] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
matrix currentmatrix
[4.12311 0 0 4.12311 352.123 625.123] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
1.000000 setlinewidth
matrix currentmatrix
[4.12311 0 0 4.12311 352.123 625.123] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1035 a Fm(Figure)19 b(3.4.)35 b(Visualization)19
b(of)g(Bresenham's)h(algorithm.)33 b(A)20 b(p)q(ortion)f(of)h(a)f(line)
178 1085 y(segmen)o(t)10 b(is)g(sho)o(wn.)17 b(A)10 b(diamond)e(shap)q
(ed)k(region)e(of)g(heigh)o(t)g(1)g(is)g(placed)h(around)f(eac)o(h)178
1135 y(fragmen)o(t)g(cen)o(ter;)k(those)f(regions)g(that)f(the)h(line)e
(segmen)o(t)h(exits)h(cause)g(rasterization)178 1185
y(to)g(pro)q(duce)i(corresp)q(onding)g(fragmen)o(ts.)p
1595 1214 2 972 v 139 1216 1459 2 v 120 1395 a FC(p)q(erturb)q(ed)h
(endp)q(oin)o(ts)f Fz(p)567 1378 y FG(0)567 1406 y Fu(a)602
1395 y FC(giv)o(en)g(b)o(y)f(\()p Fy(x)826 1402 y Fu(a)846
1395 y Fy(;)8 b(y)889 1402 y Fu(a)910 1395 y FC(\))g
FB(\000)g FC(\()p Fy(\017;)g(\017)1054 1378 y Fq(2)1074
1395 y FC(\))13 b(and)i Fz(p)1222 1378 y FG(0)1222 1408
y Fu(b)1253 1395 y FC(giv)o(en)g(b)o(y)f(\()p Fy(x)1477
1402 y Fu(b)1494 1395 y Fy(;)8 b(y)1537 1402 y Fu(b)1554
1395 y FC(\))f FB(\000)120 1451 y FC(\()p Fy(\017;)h(\017)195
1435 y Fq(2)215 1451 y FC(\).)18 b(Rasterizing)12 b(the)f(line)i
(segmen)o(t)e(starting)f(at)h Fz(p)1072 1458 y Fu(a)1104
1451 y FC(and)g(ending)h(at)f Fz(p)1411 1458 y Fu(b)1439
1451 y FC(pro)q(duces)120 1508 y(those)18 b(fragmen)o(ts)f
Fy(f)23 b FC(for)17 b(whic)o(h)i(the)f(segmen)o(t)f(starting)g(at)h
Fz(p)1224 1491 y FG(0)1224 1519 y Fu(a)1262 1508 y FC(and)h(ending)g
(on)f Fz(p)1598 1491 y FG(0)1598 1521 y Fu(b)120 1564
y FC(in)o(tersects)i Fy(R)361 1571 y Fu(f)383 1564 y
FC(,)f(except)h(if)f Fz(p)636 1548 y FG(0)636 1577 y
Fu(b)673 1564 y FC(is)g(con)o(tained)h(in)g Fy(R)1024
1571 y Fu(f)1046 1564 y FC(.)31 b Fy(\017)19 b FC(is)h(c)o(hosen)f(to)g
(b)q(e)g(so)g(small)120 1621 y(that)h(rasterizing)g(the)h(line)g
(segmen)o(t)f(pro)q(duces)h(the)f(same)g(fragmen)o(ts)f(when)h
Fy(\016)i FC(is)120 1677 y(substituted)16 b(for)f Fy(\017)g
FC(for)g(an)o(y)g(0)d Fy(<)h(\016)i FB(\024)e Fy(\017)p
FC(.)191 1734 y(When)18 b Fz(p)355 1741 y Fu(a)394 1734
y FC(and)g Fz(p)514 1741 y Fu(b)549 1734 y FC(lie)h(on)f(fragmen)o(t)f
(cen)o(ters,)h(this)g(c)o(haracterization)g(of)f(frag-)120
1790 y(men)o(ts)g(reduces)h(to)f(Bresenham's)g(algorithm)h(with)f(one)h
(mo)q(di\014cation:)25 b(lines)19 b(pro-)120 1847 y(duced)g(in)e(this)h
(description)g(are)f(\\half-op)q(en,")h(meaning)g(that)e(the)h(\014nal)
h(fragmen)o(t)120 1903 y(\(corresp)q(onding)j(to)e Fz(p)524
1910 y Fu(b)542 1903 y FC(\))g(is)i(not)e(dra)o(wn.)34
b(This)21 b(means)f(that)f(when)i(rasterizing)f(a)120
1960 y(series)g(of)e(connected)h(line)h(segmen)o(ts,)f(shared)f(endp)q
(oin)o(ts)i(will)g(b)q(e)f(pro)q(duced)h(only)120 2016
y(once)c(rather)f(than)g(t)o(wice)g(\(as)g(w)o(ould)g(o)q(ccur)h(with)f
(Bresenham's)g(algorithm\).)191 2073 y(Because)21 b(the)g(initial)h
(and)f(\014nal)g(conditions)h(of)e(the)g(diamond-exit)i(rule)f(ma)o(y)
120 2129 y(b)q(e)g(di\016cult)h(to)d(implemen)o(t,)j(other)e(line)i
(segmen)o(t)d(rasterization)h(algorithms)g(are)120 2186
y(allo)o(w)o(ed,)c(sub)s(ject)f(to)f(the)i(follo)o(wing)f(rules:)176
2280 y(1.)22 b(The)f(co)q(ordinates)g(of)f(a)g(fragmen)o(t)f(pro)q
(duced)j(b)o(y)e(the)h(algorithm)f(ma)o(y)g(not)234 2337
y(deviate)g(b)o(y)f(more)h(than)f(one)g(unit)i(in)f(either)g
Fy(x)f FC(or)g Fy(y)j FC(windo)o(w)d(co)q(ordinates)234
2393 y(from)14 b(a)h(corresp)q(onding)i(fragmen)o(t)d(pro)q(duced)i(b)o
(y)f(the)g(diamond-exit)i(rule.)176 2488 y(2.)22 b(The)16
b(total)f(n)o(um)o(b)q(er)h(of)f(fragmen)o(ts)f(pro)q(duced)j(b)o(y)e
(the)h(algorithm)g(ma)o(y)e(di\013er)p eop
%%Page: 62 71
62 70 bop 332 137 a FC(62)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)446 286 y FC(from)14 b(that)h(pro)q(duced)h(b)o(y)f
(the)g(diamond-exit)i(rule)f(b)o(y)f(no)g(more)g(than)g(one.)388
376 y(3.)22 b(F)l(or)12 b(an)h Fy(x)p FC(-ma)s(jor)e(line,)k(no)e(t)o
(w)o(o)f(fragmen)o(ts)f(ma)o(y)h(b)q(e)i(pro)q(duced)g(that)e(lie)j(in)
e(the)446 433 y(same)f(windo)o(w-co)q(ordinate)i(column)g(\(for)e(a)g
Fy(y)r FC(-ma)s(jor)g(line,)i(no)f(t)o(w)o(o)f(fragmen)o(ts)446
489 y(ma)o(y)i(app)q(ear)i(in)g(the)f(same)g(ro)o(w\).)388
579 y(4.)22 b(If)f(t)o(w)o(o)e(line)j(segmen)o(ts)e(share)g(a)h(common)
f(endp)q(oin)o(t,)j(and)d(b)q(oth)h(segmen)o(ts)446 636
y(are)14 b(either)h Fy(x)p FC(-ma)s(jor)e(\(b)q(oth)i(left-to-righ)o(t)
f(or)g(b)q(oth)h(righ)o(t-to-left\))f(or)g Fy(y)r FC(-ma)s(jor)446
692 y(\(b)q(oth)22 b(b)q(ottom-to-top)e(or)i(b)q(oth)g(top-to-b)q
(ottom\),)g(then)h(rasterizing)f(b)q(oth)446 749 y(segmen)o(ts)f(ma)o
(y)f(not)h(pro)q(duce)i(duplicate)g(fragmen)o(ts,)e(nor)g(ma)o(y)g(an)o
(y)g(frag-)446 805 y(men)o(ts)c(b)q(e)h(omitted)f(so)g(as)g(to)g(in)o
(terrupt)g(con)o(tin)o(uit)o(y)h(of)f(the)g(connected)h(seg-)446
862 y(men)o(ts.)403 946 y(Next)13 b(w)o(e)h(m)o(ust)f(sp)q(ecify)i(ho)o
(w)e(the)h(data)f(asso)q(ciated)h(with)g(eac)o(h)g(rasterized)g(frag-)
332 1003 y(men)o(t)21 b(are)f(obtained.)38 b(Let)21 b(the)g(windo)o(w)g
(co)q(ordinates)g(of)f(a)h(pro)q(duced)h(fragmen)o(t)332
1059 y(cen)o(ter)15 b(b)q(e)g(giv)o(en)g(b)o(y)f Fz(p)737
1066 y Fu(r)769 1059 y FC(=)f(\()p Fy(x)861 1066 y Fu(d)881
1059 y Fy(;)8 b(y)924 1066 y Fu(d)943 1059 y FC(\))14
b(and)h(let)g Fz(p)1157 1066 y Fu(a)1190 1059 y FC(=)e(\()p
Fy(x)1282 1066 y Fu(a)1303 1059 y Fy(;)8 b(y)1346 1066
y Fu(a)1366 1059 y FC(\))14 b(and)h Fz(p)1515 1066 y
Fu(b)1545 1059 y FC(=)e(\()p Fy(x)1637 1066 y Fu(b)1653
1059 y Fy(;)8 b(y)1696 1066 y Fu(b)1713 1059 y FC(\).)19
b(Set)825 1174 y Fy(t)13 b FC(=)907 1143 y(\()p Fz(p)954
1150 y Fu(r)983 1143 y FB(\000)d Fz(p)1057 1150 y Fu(a)1078
1143 y FC(\))g FB(\001)g FC(\()p Fz(p)1176 1150 y Fu(b)1203
1143 y FB(\000)g Fz(p)1277 1150 y Fu(a)1298 1143 y FC(\))p
907 1163 409 2 v 1003 1205 a FB(k)p Fz(p)1055 1212 y
Fu(b)1082 1205 y FB(\000)h Fz(p)1157 1212 y Fu(a)1177
1205 y FB(k)1200 1192 y Fq(2)1321 1174 y Fy(:)399 b FC(\(3.1\))332
1289 y(\(Note)15 b(that)g Fy(t)e FC(=)h(0)h(at)g Fz(p)760
1296 y Fu(a)796 1289 y FC(and)h Fy(t)d FC(=)h(1)h(at)g
Fz(p)1086 1296 y Fu(b)1103 1289 y FC(.\))20 b(The)c(v)m(alue)h(of)e(an)
g(asso)q(ciated)h(datum)332 1345 y Fy(f)j FC(for)13 b(the)h(fragmen)o
(t,)f(whether)h(it)g(b)q(e)h(R,)f(G,)f(B,)h(or)f(A)h(\(in)h(R)o(GBA)f
(mo)q(de\))f(or)h(a)f(color)332 1402 y(index)k(\(in)f(color)f(index)i
(mo)q(de\),)e(or)g(the)h Fy(s)p FC(,)f Fy(t)p FC(,)g(or)g
Fy(r)i FC(texture)e(co)q(ordinate)h(\(the)f(depth)332
1458 y(v)m(alue,)h(windo)o(w)g Fy(z)r FC(,)e(m)o(ust)h(b)q(e)h(found)f
(using)h(equation)g(3.3,)e(b)q(elo)o(w\),)h(is)h(found)f(as)807
1573 y Fy(f)j FC(=)907 1542 y(\(1)9 b FB(\000)i Fy(t)p
FC(\))p Fy(f)1059 1549 y Fu(a)1080 1542 y Fy(=w)1136
1549 y Fu(a)1166 1542 y FC(+)f Fy(tf)1249 1549 y Fu(b)1267
1542 y Fy(=w)1323 1549 y Fu(b)p 900 1562 447 2 v 900
1604 a FC(\(1)f FB(\000)i Fy(t)p FC(\))p Fy(\013)1059
1611 y Fu(a)1080 1604 y Fy(=w)1136 1611 y Fu(a)1166 1604
y FC(+)f Fy(t\013)1256 1611 y Fu(b)1274 1604 y Fy(=w)1330
1611 y Fu(b)1733 1573 y FC(\(3.2\))332 1686 y(where)17
b Fy(f)487 1693 y Fu(a)524 1686 y FC(and)g Fy(f)636 1693
y Fu(b)669 1686 y FC(are)g(the)f(data)g(asso)q(ciated)g(with)h(the)g
(starting)e(and)i(ending)h(end-)332 1742 y(p)q(oin)o(ts)d(of)f(the)g
(segmen)o(t,)g(resp)q(ectiv)o(ely;)i Fy(w)1077 1749 y
Fu(a)1112 1742 y FC(and)e Fy(w)1232 1749 y Fu(b)1263
1742 y FC(are)g(the)h(clip)h Fy(w)f FC(co)q(ordinates)g(of)332
1798 y(the)c(starting)g(and)g(ending)h(endp)q(oin)o(ts)g(of)f(the)g
(segmen)o(ts,)g(resp)q(ectiv)o(ely)l(.)20 b Fy(\013)1615
1805 y Fu(a)1649 1798 y FC(=)13 b Fy(\013)1726 1805 y
Fu(b)1756 1798 y FC(=)g(1)332 1855 y(for)j(all)i(data)d(except)i
(texture)g(co)q(ordinates,)g(in)g(whic)o(h)h(case)e Fy(\013)1444
1862 y Fu(a)1480 1855 y FC(=)f Fy(q)1550 1862 y Fu(a)1588
1855 y FC(and)i Fy(\013)1707 1862 y Fu(b)1739 1855 y
FC(=)e Fy(q)1809 1862 y Fu(b)332 1911 y FC(\()p Fy(q)370
1918 y Fu(a)404 1911 y FC(and)d Fy(q)509 1918 y Fu(b)540
1911 y FC(are)g(the)h(homogeneous)f(texture)h(co)q(ordinates)g(at)f
(the)h(starting)f(and)h(end-)332 1968 y(ing)k(endp)q(oin)o(ts)g(of)f
(the)g(segmen)o(t;)g(results)g(are)g(unde\014ned)i(if)e(either)h(of)f
(these)g(is)h(less)332 2024 y(than)e(or)g(equal)h(to)e(0\).)20
b(Note)14 b(that)h(linear)h(in)o(terp)q(olation)h(w)o(ould)e(use)816
2115 y Fy(f)j FC(=)13 b(\(1)c FB(\000)i Fy(t)p FC(\))p
Fy(f)1056 2122 y Fu(a)1077 2115 y Fy(=\013)1129 2122
y Fu(a)1160 2115 y FC(+)f Fy(tf)1243 2122 y Fu(b)1261
2115 y Fy(=\013)1313 2122 y Fu(b)1330 2115 y Fy(:)390
b FC(\(3.3\))332 2206 y(The)21 b(reason)g(that)f(this)h(form)o(ula)f
(is)i(incorrect)f(\(except)g(for)f(the)h(depth)g(v)m(alue\))h(is)332
2262 y(that)c(it)g(in)o(terp)q(olates)h(a)f(datum)g(in)h(windo)o(w)g
(space,)g(whic)o(h)g(ma)o(y)e(b)q(e)i(distorted)g(b)o(y)332
2319 y(p)q(ersp)q(ectiv)o(e.)h(What)10 b(is)i(actually)f(desired)h(is)g
(to)e(\014nd)h(the)g(corresp)q(onding)h(v)m(alue)g(when)332
2375 y(in)o(terp)q(olated)18 b(in)h(ey)o(e)e(space,)h(whic)o(h)g
(equation)g(3.2)e(do)q(es.)27 b(A)18 b(GL)f(implemen)o(tation)332
2432 y(ma)o(y)11 b(c)o(ho)q(ose)g(to)g(appro)o(ximate)g(equation)h(3.2)
e(with)i(3.3,)f(but)h(this)g(will)h(normally)f(lead)332
2488 y(to)j(unacceptable)h(distortion)g(e\013ects)f(when)g(in)o(terp)q
(olating)i(texture)e(co)q(ordinates.)p eop
%%Page: 63 72
63 71 bop 120 137 a Fx(3.4.)34 b(LINE)16 b(SEGMENTS)961
b FC(63)120 286 y Fl(3.4.2)56 b(Other)18 b(Line)f(Segmen)n(t)g(F)-5
b(eatures)120 373 y FC(W)l(e)21 b(ha)o(v)o(e)f(just)g(describ)q(ed)j
(the)d(rasterization)h(of)f(non-an)o(tialiased)i(line)g(segmen)o(ts)120
430 y(of)d(width)h(one)f(using)h(the)g(default)f(line)i(stipple)g(of)e
Fy(F)6 b(F)g(F)g(F)1189 437 y Fq(16)1228 430 y FC(.)32
b(W)l(e)19 b(no)o(w)g(describ)q(e)120 486 y(the)k(rasterization)g(of)f
(line)j(segmen)o(ts)d(for)g(general)i(v)m(alues)f(of)g(the)g(line)h
(segmen)o(t)120 542 y(rasterization)16 b(parameters.)120
665 y Fz(Line)j(Stipple)120 751 y FC(The)d(command)234
847 y Fw(void)30 b Fz(LineStipple)p FC(\()i Fw(int)15
b Fv(factor)p Fw(,)g(ushort)g Fv(p)n(attern)g FC(\))g
Fw(;)120 942 y FC(de\014nes)f(a)e Fv(line)g(stipple)p
FC(.)19 b Fv(p)n(attern)12 b FC(is)h(an)f(unsigned)i(short)e(in)o
(teger.)19 b(The)13 b Fv(line)f(stipple)g FC(is)120 999
y(tak)o(en)g(from)f(the)h(lo)o(w)o(est)f(order)h(16)f(bits)h(of)g
Fv(p)n(attern)p FC(.)19 b(It)11 b(determines)i(those)f(fragmen)o(ts)120
1055 y(that)17 b(are)h(to)f(b)q(e)h(dra)o(wn)f(when)i(the)e(line)j(is)e
(rasterized.)28 b Fv(factor)18 b FC(is)g(a)g(coun)o(t)f(that)g(is)120
1112 y(used)d(to)f(mo)q(dify)h(the)f(e\013ectiv)o(e)h(line)h(stipple)g
(b)o(y)e(causing)h(eac)o(h)g(bit)g(in)g Fv(line)f(stipple)g
FC(to)120 1168 y(b)q(e)i(used)f Fv(factor)h FC(times.)20
b Fy(f)5 b(actor)14 b FC(is)h(clamp)q(ed)g(to)e(the)h(range)g([1)p
Fy(;)8 b FC(256].)16 b(Line)g(stippling)120 1225 y(ma)o(y)k(b)q(e)h
(enabled)g(or)f(disabled)i(using)f Fz(Enable)h FC(or)d
Fz(Disable)j FC(with)e(the)h(constan)o(t)120 1281 y Fr(LINE)p
211 1281 14 2 v 15 w(STIPPLE)p FC(.)12 b(When)i(disabled,)h(it)f(is)f
(as)h(if)f(the)h(line)h(stipple)g(has)e(its)h(default)g(v)m(alue.)191
1338 y(Line)k(stippling)i(masks)c(certain)i(fragmen)o(ts)d(that)i(are)g
(pro)q(duced)h(b)o(y)f(rasteriza-)120 1394 y(tion)k(so)f(that)f(they)i
(are)e(not)h(sen)o(t)g(to)g(the)g(p)q(er-fragmen)o(t)g(stage)f(of)h
(the)h(GL.)e(The)120 1451 y(masking)g(is)g(ac)o(hiev)o(ed)h(using)f
(three)g(parameters:)26 b(the)19 b(16-bit)g(line)h(stipple)h
Fy(p)p FC(,)e(the)120 1507 y(line)e(rep)q(eat)f(coun)o(t)f
Fy(r)q FC(,)f(and)h(an)h(in)o(teger)f(stipple)i(coun)o(ter)e
Fy(s)p FC(.)20 b(Let)689 1611 y Fy(b)12 b FC(=)h FB(b)p
Fy(s=r)q FB(c)g FC(mo)q(d)g(16)p Fy(;)120 1714 y FC(Then)22
b(a)f(fragmen)o(t)g(is)h(pro)q(duced)g(if)g(the)g Fy(b)p
FC(th)e(bit)i(of)f Fy(p)h FC(is)g(1,)g(and)g(not)f(pro)q(duced)120
1771 y(otherwise.)f(The)13 b(bits)h(of)f Fy(p)g FC(are)h(n)o(um)o(b)q
(ered)g(with)f(0)h(b)q(eing)g(the)g(least)f(signi\014can)o(t)i(and)120
1827 y(15)e(b)q(eing)i(the)f(most)f(signi\014can)o(t.)20
b(The)14 b(initial)i(v)m(alue)f(of)e Fy(s)h FC(is)g(zero;)f
Fy(s)h FC(is)g(incremen)o(ted)120 1884 y(after)e(pro)q(duction)i(of)e
(eac)o(h)h(fragmen)o(t)e(of)h(a)h(line)h(segmen)o(t)e(\(fragmen)o(ts)f
(are)i(pro)q(duced)120 1940 y(in)20 b(order,)f(b)q(eginning)i(at)d(the)
h(starting)f(p)q(oin)o(t)h(and)g(w)o(orking)g(to)o(w)o(ards)e(the)h
(ending)120 1996 y(p)q(oin)o(t\).)41 b Fy(s)22 b FC(is)h(reset)e(to)h
(0)f(whenev)o(er)i(a)e Fz(Begin)i FC(o)q(ccurs,)h(and)e(b)q(efore)g(ev)
o(ery)g(line)120 2053 y(segmen)o(t)d(in)h(a)f(group)g(of)g(indep)q
(enden)o(t)i(segmen)o(ts)e(\(as)f(sp)q(eci\014ed)k(when)d
Fz(Begin)h FC(is)120 2109 y(in)o(v)o(ok)o(ed)c(with)f
Fr(LINES)p FC(\).)191 2166 y(If)e(the)g(line)h(segmen)o(t)e(has)h(b)q
(een)h(clipp)q(ed,)h(then)e(the)g(v)m(alue)h(of)e Fy(s)h
FC(at)f(the)h(b)q(eginning)120 2223 y(of)i(the)g(line)i(segmen)o(t)e
(is)h(indeterminate.)120 2345 y Fz(Wide)i(Lines)120 2432
y FC(The)32 b(actual)f(width)g(of)g(non-an)o(tialiased)h(lines)h(is)f
(determined)g(b)o(y)f(rounding)120 2488 y(the)i(supplied)h(width)f(to)f
(the)g(nearest)g(in)o(teger,)k(then)d(clamping)h(it)e(to)g(the)p
eop
%%Page: 64 73
64 72 bop 332 137 a FC(64)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 350 242 1459 2 v 350 1244 2 1002
v 449 317 a
19892389 9946190 1052508 14011514 50520391 39008583 startTexFig
449 317 a
%%BeginDocument: pics/wideline.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/pmask16 {
<00006666666600000000999999990000
00006666666600000000999999990000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 48 /patchar16 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar16 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask16 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
16 576 M
384 576 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
32 592 M
32 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
80 592 M
80 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
128 592 M
128 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
176 592 M
176 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 592 M
224 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
272 592 M
272 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
320 592 M
320 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
368 592 M
368 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
16 528 M
384 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
16 480 M
384 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
16 432 M
384 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
16 384 M
384 384 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
16 336 M
384 336 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
16 288 M
384 288 L
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
32 384 M
368 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
32 360 M
368 456 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
72 392 M
88 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
72 376 M
88 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
120 392 M
136 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
120 376 M
136 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
24 392 M
40 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
24 376 M
40 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
72 440 M
88 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
72 424 M
88 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
120 440 M
136 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
120 424 M
136 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
168 392 M
184 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
168 376 M
184 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
168 440 M
184 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
168 424 M
184 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
216 440 M
232 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
216 424 M
232 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
216 488 M
232 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
216 472 M
232 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
264 440 M
280 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
264 424 M
280 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
264 488 M
280 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
264 472 M
280 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
312 440 M
328 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
312 424 M
328 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
312 488 M
328 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
312 472 M
328 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
360 440 M
376 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
360 424 M
376 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
360 488 M
376 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
360 472 M
376 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
24 440 M
40 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
24 424 M
40 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
400 576 M
768 576 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
416 592 M
416 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
464 592 M
464 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
512 592 M
512 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
560 592 M
560 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
608 592 M
608 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
656 592 M
656 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
704 592 M
704 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
752 592 M
752 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
400 528 M
768 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
400 480 M
768 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
400 432 M
768 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
400 384 M
768 384 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
400 336 M
768 336 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
400 288 M
768 288 L
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
416 384 M
752 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
416 336 M
752 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
456 392 M
472 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
456 376 M
472 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
504 392 M
520 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
504 376 M
520 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
408 392 M
424 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
408 376 M
424 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
456 440 M
472 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
456 424 M
472 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
504 440 M
520 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
504 424 M
520 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
552 392 M
568 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
552 376 M
568 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
552 440 M
568 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
552 424 M
568 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
600 440 M
616 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
600 424 M
616 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
600 488 M
616 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
600 472 M
616 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
648 440 M
664 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
648 424 M
664 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
648 488 M
664 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
648 472 M
664 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
696 440 M
712 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
696 424 M
712 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
696 488 M
712 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
696 472 M
712 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
744 440 M
760 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
744 424 M
760 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
744 488 M
760 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
744 472 M
760 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
408 440 M
424 424 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
408 424 M
424 440 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
408 344 M
424 328 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
408 328 M
424 344 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
456 344 M
472 328 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
456 328 M
472 344 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
552 487 M
568 471 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
552 471 M
568 487 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
600 392 M
616 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
600 376 M
616 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
648 392 M
664 376 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
648 376 M
664 392 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 159 213] concat
newpath
0 0 M 0 24 L 79.526 24 L 79.526 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
157 211 M 157 239 L 240.526 239 L 240.526 211 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 159 213] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (width = 2) 77.526 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 547 213] concat
newpath
0 0 M 0 24 L 79.526 24 L 79.526 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
545 211 M 545 239 L 628.526 239 L 628.526 211 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 547 213] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (width = 3) 77.526 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
744 535 M
760 519 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
744 519 M
760 535 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
696 535 M
712 519 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
696 519 M
712 535 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
504 488 M
520 472 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
504 472 M
520 488 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1065 a Fm(Figure)10 b(3.5.)16 b(Rasterization)10
b(of)f(non-an)o(tialiased)g(wide)h(lines.)17 b(x-ma)r(jor)8
b(line)h(segmen)o(ts)389 1115 y(are)15 b(sho)o(wn.)j(The)d(hea)o(vy)f
(line)f(segmen)o(t)h(is)g(the)h(one)f(sp)q(eci\014ed)i(to)e(b)q(e)g
(rasterized;)i(the)389 1165 y(ligh)o(t)f(segmen)o(t)g(is)h(the)g
(o\013set)g(segmen)o(t)g(used)g(for)g(rasterization.)23
b(x)16 b(marks)e(indicate)389 1215 y(the)h(fragmen)o(t)d(cen)o(ters)k
(pro)q(duced)f(b)o(y)f(rasterization.)p 1807 1244 2 1002
v 350 1246 1459 2 v 332 1456 a FC(implemen)o(tation-dep)q(endent)23
b(maxim)o(um)d(non-an)o(tialiased)i(line)g(width.)36
b(Though)332 1513 y(this)26 b(implemen)o(tation-dep)q(enden)o(t)i(v)m
(alue)e(cannot)f(b)q(e)h(queried,)j(it)c(m)o(ust)g(b)q(e)h(no)332
1569 y(less)20 b(than)g(the)g(implemen)o(tation-dep)q(enden)o(t)i
(maxim)o(um)e(an)o(tialiased)h(line)g(width,)332 1625
y(rounded)f(to)e(the)h(nearest)g(in)o(teger)g(v)m(alue,)h(and)f(in)h
(an)o(y)f(ev)o(en)o(t)f(no)h(less)h(than)f(1.)30 b(If)332
1682 y(rounding)16 b(the)f(sp)q(eci\014ed)i(width)e(results)h(in)f(the)
g(v)m(alue)h(0,)f(then)g(it)g(is)g(as)g(if)g(the)g(v)m(alue)332
1738 y(w)o(ere)g(1.)403 1811 y(Non-an)o(tialiased)23
b(line)h(segmen)o(ts)e(of)g(width)h(other)f(than)g(one)g(are)g
(rasterized)332 1867 y(b)o(y)d(o\013setting)f(them)h(in)h(the)f(minor)h
(direction)g(\(for)e(an)h Fy(x)p FC(-ma)s(jor)f(line,)j(the)e(minor)332
1924 y(direction)12 b(is)f Fy(y)r FC(,)h(and)e(for)h(a)f
Fy(y)r FC(-ma)s(jor)f(line,)k(the)e(minor)g(direction)h(is)f
Fy(x)p FC(\))g(and)g(replicating)332 1980 y(fragmen)o(ts)17
b(in)j(the)e(minor)h(direction)g(\(see)g(Figure)f(3.5\).)88
b(Let)19 b Fy(w)g FC(b)q(e)g(the)g(width)332 2037 y(rounded)e(to)e(the)
h(nearest)g(in)o(teger)g(\(if)g Fy(w)f FC(=)f(0,)h(then)i(it)f(is)g(as)
g(if)g Fy(w)f FC(=)f(1\).)22 b(If)16 b(the)g(line)332
2093 y(segmen)o(t)d(has)h(endp)q(oin)o(ts)h(giv)o(en)f(b)o(y)g(\()p
Fy(x)1015 2100 y Fq(0)1034 2093 y Fy(;)8 b(y)1077 2100
y Fq(0)1097 2093 y FC(\))13 b(and)h(\()p Fy(x)1259 2100
y Fq(1)1278 2093 y Fy(;)8 b(y)1321 2100 y Fq(1)1340 2093
y FC(\))14 b(in)g(windo)o(w)g(co)q(ordinates,)332 2149
y(the)h(segmen)o(t)g(with)g(endp)q(oin)o(ts)h(\()p Fy(x)940
2156 y Fq(0)960 2149 y Fy(;)8 b(y)1003 2156 y Fq(0)1032
2149 y FB(\000)i FC(\()p Fy(w)g FB(\000)h FC(1\))p Fy(=)p
FC(2\))i(and)i(\()p Fy(x)1434 2156 y Fq(1)1454 2149 y
Fy(;)8 b(y)1497 2156 y Fq(1)1526 2149 y FB(\000)i FC(\()p
Fy(w)g FB(\000)g FC(1\))p Fy(=)p FC(2\))k(is)332 2206
y(rasterized,)g(but)g(instead)g(of)f(a)g(single)i(fragmen)o(t,)d(a)h
(column)i(of)e(fragmen)o(ts)f(of)h(heigh)o(t)332 2262
y Fy(w)19 b FC(\(a)f(ro)o(w)f(of)h(fragmen)o(ts)f(of)h(length)h
Fy(w)g FC(for)f(a)g Fy(y)r FC(-ma)s(jor)f(segmen)o(t\))h(is)h(pro)q
(duced)g(at)332 2319 y(eac)o(h)d Fy(x)g FC(\()p Fy(y)i
FC(for)e Fy(y)r FC(-ma)s(jor\))e(lo)q(cation.)23 b(The)17
b(lo)o(w)o(est)e(fragmen)o(t)g(of)h(this)h(column)g(is)f(the)332
2375 y(fragmen)o(t)k(that)h(w)o(ould)h(b)q(e)g(pro)q(duced)g(b)o(y)g
(rasterizing)f(the)h(segmen)o(t)f(of)g(width)h(1)332
2432 y(with)e(the)g(mo)q(di\014ed)h(co)q(ordinates.)33
b(The)20 b(whole)g(column)g(is)g(not)g(pro)q(duced)g(if)g(the)332
2488 y(stipple)d(bit)f(for)f(the)h(column's)g Fy(x)f
FC(lo)q(cation)i(is)f(zero;)f(otherwise,)h(the)f(whole)i(column)p
eop
%%Page: 65 74
65 73 bop 120 137 a Fx(3.4.)34 b(LINE)16 b(SEGMENTS)961
b FC(65)p 139 242 1459 2 v 139 1066 2 824 v 568 317 a
9472573 8714763 6315048 16840130 29470228 38219202 startTexFig
568 317 a
%%BeginDocument: pics/aaline.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/pmask16 {
<00006666666600000000999999990000
00006666666600000000999999990000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 48 /patchar16 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar16 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask16 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 560 M
448 560 L
448 560 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
112 580.211 M
112 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
144 576 M
144 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
176 576 M
176 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
208 576 M
208 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
240 576 M
240 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
272 576 M
272 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
304 576 M
304 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
336 576 M
336 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
368 576 M
368 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
400 576 M
400 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
432 576 M
432 256 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 528 M
448 528 L
448 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 496 M
448 496 L
448 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 464 M
448 464 L
448 464 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 432 M
448 432 L
448 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 400 M
448 400 L
448 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 368 M
448 368 L
448 368 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 336 M
448 336 L
448 336 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 304 M
448 304 L
448 304 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
96 272 M
448 272 L
448 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
120 312 M
408 488 L
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
[4] 0 setdash
newpath
129 302 M
416 477 L
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
[4] 0 setdash
newpath
113 322 M
401 498 L
stroke
grestore
gsave
0 0 0 setrgbcolor
/PatternFont findfont 16.08 scalefont setfont
newpath
128 300 M
416 476 L
401 499 L
112 323 L
closepath
eoclip
272 16.08 512 {
80 exch M
(0000000000000000000000)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
128 300 M
416 476 L
401 499 L
112 323 L
closepath
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 987 a Fm(Figure)10 b(3.6.)16 b(The)11 b(region)g(used)g(in)g
(rasterizing)g(and)f(\014nding)g(corresp)q(onding)i(co)o(v)o(erage)178
1037 y(v)n(alues)h(for)h(an)f(an)o(tialiased)g(line)g(segmen)o(t)h
(\(an)g(x-ma)r(jor)e(line)h(segmen)o(t)h(is)f(sho)o(wn\).)p
1595 1066 2 824 v 139 1068 1459 2 v 120 1250 a FC(is)j(pro)q(duced.)120
1381 y Fz(An)o(tialiasing)120 1470 y FC(Rasterized)27
b(an)o(tialiased)f(line)h(segmen)o(ts)e(pro)q(duce)h(fragmen)o(ts)f
(whose)g(fragmen)o(t)120 1527 y(squares)13 b(in)o(tersect)h(a)f
(rectangle)g(cen)o(tered)h(on)f(the)g(line)i(segmen)o(t.)k(Tw)o(o)12
b(of)h(the)g(edges)120 1583 y(are)18 b(parallel)i(to)d(the)h(sp)q
(eci\014ed)i(line)g(segmen)o(t;)e(eac)o(h)g(is)h(at)e(a)h(distance)g
(of)g(one-half)120 1640 y(the)c(curren)o(t)f(width)h(from)e(that)h
(segmen)o(t:)19 b(one)13 b(ab)q(o)o(v)o(e)g(the)g(segmen)o(t)g(and)h
(one)f(b)q(elo)o(w)120 1696 y(it.)32 b(The)19 b(other)g(t)o(w)o(o)f
(edges)h(pass)g(through)f(the)h(line)i(endp)q(oin)o(ts)f(and)f(are)g(p)
q(erp)q(en-)120 1752 y(dicular)h(to)d(the)h(direction)h(of)f(the)f(sp)q
(eci\014ed)k(line)e(segmen)o(t.)28 b(Co)o(v)o(erage)16
b(v)m(alues)j(are)120 1809 y(computed)h(for)f(eac)o(h)g(fragmen)o(t)f
(b)o(y)i(computing)g(the)f(area)g(of)g(the)g(in)o(tersection)h(of)120
1865 y(the)14 b(rectangle)g(with)f(the)h(fragmen)o(t)e(square)i(\(see)f
(Figure)h(3.6;)e(see)i(also)f(section)h(3.2\).)161 1922
y(Equation)i(3.2)e(is)i(used)g(to)f(compute)g(asso)q(ciated)h(data)e(v)
m(alues)j(just)e(as)g(with)g(non-)120 1978 y(an)o(tialiased)f(lines;)h
(equation)f(3.1)e(is)h(used)h(to)e(\014nd)i(the)f(v)m(alue)h(of)e
Fy(t)i FC(for)e(eac)o(h)h(fragmen)o(t)120 2035 y(whose)j(square)g(is)h
(in)o(tersected)g(b)o(y)f(the)g(line)i(segmen)o(t's)d(rectangle.)24
b(Not)15 b(all)i(widths)120 2091 y(need)i(b)q(e)g(supp)q(orted)g(for)f
(line)i(segmen)o(t)d(an)o(tialiasing,)j(but)f(width)f(1)p
Fy(:)p FC(0)g(an)o(tialiased)120 2148 y(segmen)o(ts)h(m)o(ust)f(b)q(e)i
(pro)o(vided.)31 b(As)19 b(with)h(the)f(p)q(oin)o(t)g(width,)h(a)f(GL)g
(implemen)o(ta-)120 2204 y(tion)i(ma)o(y)e(b)q(e)h(queried)i(for)d(the)
h(range)f(and)i(n)o(um)o(b)q(er)f(of)f(gradations)h(of)f(a)o(v)m
(ailable)120 2261 y(an)o(tialiased)e(line)g(widths.)191
2319 y(F)l(or)11 b(purp)q(oses)h(of)f(an)o(tialiasing,)i(a)e(stippled)i
(line)g(is)f(considered)h(to)d(b)q(e)i(a)g(sequence)120
2375 y(of)18 b(con)o(tiguous)f(rectangles)h(cen)o(tered)g(on)g(the)g
(line)h(segmen)o(t.)26 b(Eac)o(h)18 b(rectangle)g(has)120
2432 y(width)c(equal)f(to)f(the)h(curren)o(t)g(line)h(width)f(and)g
(length)h(equal)f(to)f(1)g(pixel)j(\(except)e(the)120
2488 y(last,)19 b(whic)o(h)g(ma)o(y)f(b)q(e)h(shorter\).)28
b(These)18 b(rectangles)h(are)f(n)o(um)o(b)q(ered)h(from)e(0)h(to)g
Fy(n)p FC(,)p eop
%%Page: 66 75
66 74 bop 332 137 a FC(66)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y FC(starting)12 b(with)h(the)g(rectangle)g
(inciden)o(t)h(on)f(the)f(starting)g(endp)q(oin)o(t)i(of)f(the)f
(segmen)o(t.)332 343 y(Eac)o(h)17 b(of)h(these)f(rectangles)h(is)h
(either)f(eliminated)h(or)f(pro)q(duced)g(according)g(to)f(the)332
399 y(pro)q(cedure)g(giv)o(en)g(under)g Fz(Line)j(Stipple)p
FC(,)d(ab)q(o)o(v)o(e,)f(where)h(\\fragmen)o(t")d(is)j(replaced)332
456 y(with)g(\\rectangle.")25 b(Eac)o(h)16 b(rectangle)h(so)g(pro)q
(duced)h(is)f(rasterized)g(as)g(if)g(it)g(w)o(ere)g(an)332
512 y(an)o(tialiased)22 b(p)q(olygon,)h(describ)q(ed)f(b)q(elo)o(w)g
(\(but)f(culling,)j(non-default)e(settings)f(of)332 569
y Fz(P)o(olygonMo)q(de)p FC(,)15 b(and)g(p)q(olygon)h(stippling)h(are)e
(not)g(applied\).)332 688 y Fl(3.4.3)55 b(Line)18 b(Rasterization)f
(State)332 774 y FC(The)j(state)e(required)j(for)d(line)j
(rasterization)f(consists)f(of)g(the)h(\015oating-p)q(oin)o(t)g(line)
332 830 y(width,)g(a)e(16-bit)h(line)h(stipple,)h(the)e(line)h(stipple)
g(rep)q(eat)f(coun)o(t,)g(a)f(bit)i(indicating)332 887
y(whether)d(stippling)i(is)f(enabled)g(or)f(disabled,)i(and)e(a)g(bit)h
(indicating)h(whether)e(line)332 943 y(an)o(tialiasing)f(is)f(on)f(or)g
(o\013.)19 b(In)c(addition,)g(during)h(rasterization,)e(an)g(in)o
(teger)h(stipple)332 1000 y(coun)o(ter)i(m)o(ust)g(b)q(e)h(main)o
(tained)g(to)e(implemen)o(t)j(line)g(stippling.)27 b(The)18
b(initial)h(v)m(alue)332 1056 y(of)e(the)h(line)i(width)e(is)g(1)p
Fy(:)p FC(0.)27 b(The)18 b(initial)i(v)m(alue)f(of)e(the)h(line)i
(stipple)f(is)f Fv(0xFFFF)f FC(\(a)332 1113 y(stipple)g(of)e(all)h
(ones\).)j(The)d(initial)h(v)m(alue)f(of)f(the)g(line)i(stipple)g(rep)q
(eat)e(coun)o(t)g(is)h(one.)332 1169 y(The)c(initial)i(state)d(of)h
(line)h(stippling)h(is)e(disabled.)21 b(The)12 b(initial)i(state)d(of)g
(line)j(segmen)o(t)332 1226 y(an)o(tialiasing)j(is)e(disabled.)332
1366 y Fs(3.5)66 b(P)n(olygons)332 1468 y FC(A)18 b(p)q(olygon)g
(results)g(from)e(a)h(p)q(olygon)i Fz(Begin)p FC(/)p
Fz(End)f FC(ob)s(ject,)f(a)g(triangle)h(resulting)332
1524 y(from)12 b(a)g(triangle)h(strip,)f(triangle)h(fan,)f(or)g(series)
h(of)f(separate)g(triangles,)h(or)f(a)g(quadri-)332 1581
y(lateral)h(arising)h(from)e(a)h(quadrilateral)h(strip,)f(series)h(of)e
(separate)h(quadrilaterals,)h(or)332 1637 y(a)j Fz(Rect)h
FC(command.)27 b(Lik)o(e)19 b(p)q(oin)o(ts)e(and)h(line)h(segmen)o(ts,)
e(p)q(olygon)h(rasterization)g(is)332 1694 y(con)o(trolled)f(b)o(y)f
(sev)o(eral)g(v)m(ariables.)23 b(P)o(olygon)15 b(an)o(tialiasing)i(is)g
(con)o(trolled)f(with)h Fz(En-)332 1750 y(able)h FC(and)e
Fz(Disable)i FC(with)f(the)f(sym)o(b)q(olic)i(constan)o(t)e
Fr(POLYGON)p 1432 1750 14 2 v 14 w(SMOOTH)p FC(.)f(The)i(analog)332
1807 y(to)c(line)j(segmen)o(t)d(stippling)j(for)d(p)q(olygons)h(is)h(p)
q(olygon)f(stippling,)h(describ)q(ed)h(b)q(elo)o(w.)332
1926 y Fl(3.5.1)55 b(Basic)19 b(P)n(olygon)f(Rasterization)332
2012 y FC(The)23 b(\014rst)f(step)h(of)f(p)q(olygon)h(rasterization)f
(is)i(to)d(determine)j(if)f(the)g(p)q(olygon)g(is)332
2068 y Fv(b)n(ack)18 b(facing)g FC(or)f Fv(fr)n(ont)i(facing)p
FC(.)27 b(This)18 b(determination)h(is)g(made)e(b)o(y)h(examining)h
(the)332 2125 y(sign)f(of)f(the)h(area)f(computed)h(b)o(y)f(equation)h
(2.6)f(of)g(section)h(2.13.1)d(\(including)20 b(the)332
2181 y(p)q(ossible)d(rev)o(ersal)e(of)f(this)i(sign)f(as)g(indicated)h
(b)o(y)f(the)g(last)g(call)h(to)f Fz(F)l(ron)o(tF)l(ace)p
FC(\).)j(If)332 2238 y(this)e(sign)g(is)h(p)q(ositiv)o(e,)f(the)g(p)q
(olygon)g(is)g(fron)o(tfacing;)f(otherwise,)h(it)g(is)g(bac)o(k)f
(facing.)332 2294 y(This)e(determination)g(is)g(used)g(in)h
(conjunction)f(with)g(the)f Fz(CullF)l(ace)i FC(enable)f(bit)g(and)332
2350 y(mo)q(de)h(v)m(alue)h(to)d(decide)k(whether)d(or)g(not)g(a)g
(particular)i(p)q(olygon)f(is)g(rasterized.)19 b(The)332
2407 y Fz(CullF)l(ace)d FC(mo)q(de)g(is)f(set)g(b)o(y)g(calling)446
2488 y Fw(void)29 b Fz(CullF)l(ace)p FC(\()i Fw(enum)15
b Fv(mo)n(de)g FC(\))g Fw(;)p eop
%%Page: 67 76
67 75 bop 120 137 a Fx(3.5.)34 b(POL)l(YGONS)1089 b FC(67)120
286 y Fv(mo)n(de)17 b FC(is)f(a)g(sym)o(b)q(olic)h(constan)o(t:)k(one)
16 b(of)f Fr(FRONT)p FC(,)g Fr(BACK)g FC(or)g Fr(FRONT)p
1262 286 14 2 v 15 w(AND)p 1343 286 V 15 w(BACK)p FC(.)g(Culling)120
343 y(is)f(enabled)h(or)e(disabled)j(with)e Fz(Enable)g
FC(or)f Fz(Disable)i FC(using)f(the)g(sym)o(b)q(olic)h(constan)o(t)120
399 y Fr(CULL)p 211 399 V 15 w(FACE)p FC(.)c(F)l(ron)o(t)g(facing)i(p)q
(olygons)g(are)f(rasterized)g(if)h(either)g(culling)h(is)f(disabled)h
(or)120 456 y(the)g Fz(CullF)l(ace)g FC(mo)q(de)f(is)h
Fr(BACK)f FC(while)h(bac)o(k)g(facing)f(p)q(olygons)h(are)f(rasterized)
g(only)h(if)120 512 y(either)h(culling)i(is)d(disabled)i(or)e(the)g
Fz(CullF)l(ace)h FC(mo)q(de)f(is)h Fr(FRONT)p FC(.)d(The)j(initial)h
(setting)120 569 y(of)f(the)g Fz(CullF)l(ace)i FC(mo)q(de)e(is)h
Fr(BACK)p FC(.)e(Initially)l(,)j(culling)h(is)d(disabled.)191
625 y(The)g(rule)g(for)f(determining)i(whic)o(h)g(fragmen)o(ts)d(are)i
(pro)q(duced)g(b)o(y)g(p)q(olygon)g(ras-)120 682 y(terization)e(is)f
(called)i Fv(p)n(oint)f(sampling)p FC(.)k(The)c(t)o(w)o(o-dimensional)f
(pro)s(jection)g(obtained)120 738 y(b)o(y)f(taking)g(the)g
Fy(x)g FC(and)g Fy(y)i FC(windo)o(w)e(co)q(ordinates)g(of)g(the)g(p)q
(olygon's)g(v)o(ertices)g(is)g(formed.)120 795 y(F)l(ragmen)o(t)16
b(cen)o(ters)g(that)g(lie)i(inside)g(of)f(this)f(p)q(olygon)i(are)e
(pro)q(duced)h(b)o(y)g(rasteriza-)120 851 y(tion.)i(Sp)q(ecial)c
(treatmen)o(t)c(is)h(giv)o(en)h(to)e(a)h(fragmen)o(t)f(whose)h(cen)o
(ter)g(lies)h(on)f(a)g(p)q(olygon)120 907 y(b)q(oundary)k(edge.)21
b(In)16 b(suc)o(h)f(a)g(case)h(w)o(e)f(require)h(that)e(if)i(t)o(w)o(o)
e(p)q(olygons)i(lie)h(on)e(either)120 964 y(side)h(of)e(a)h(common)f
(edge)h(\(with)g(iden)o(tical)i(endp)q(oin)o(ts\))f(on)e(whic)o(h)i(a)e
(fragmen)o(t)g(cen-)120 1020 y(ter)19 b(lies,)h(then)g(exactly)f(one)g
(of)f(the)h(p)q(olygons)g(results)g(in)h(the)f(pro)q(duction)g(of)g
(the)120 1077 y(fragmen)o(t)14 b(during)i(rasterization.)191
1133 y(As)e(for)f(the)h(data)f(asso)q(ciated)h(with)g(eac)o(h)g
(fragmen)o(t)e(pro)q(duced)j(b)o(y)f(rasterizing)g(a)120
1190 y(p)q(olygon,)f(w)o(e)e(b)q(egin)i(b)o(y)f(sp)q(ecifying)h(ho)o(w)
e(these)h(v)m(alues)h(are)e(pro)q(duced)i(for)e(fragmen)o(ts)120
1246 y(in)23 b(a)f(triangle.)41 b(De\014ne)22 b Fv(b)n(aryc)n(entric)g
(c)n(o)n(or)n(dinates)f FC(for)h(a)f(triangle.)41 b(Barycen)o(tric)120
1303 y(co)q(ordinates)16 b(are)g(a)f(set)h(of)f(three)h(n)o(um)o(b)q
(ers,)f Fy(a)p FC(,)h Fy(b)p FC(,)f(and)h Fy(c)p FC(,)f(eac)o(h)h(in)g
(the)g(range)f([0)p Fy(;)8 b FC(1],)120 1359 y(with)17
b Fy(a)11 b FC(+)h Fy(b)e FC(+)i Fy(c)i FC(=)i(1.)23
b(These)17 b(co)q(ordinates)g(uniquely)i(sp)q(ecify)f(an)o(y)e(p)q(oin)
o(t)h Fy(p)g FC(within)120 1416 y(the)f(triangle)f(or)g(on)g(the)h
(triangle's)f(b)q(oundary)h(as)670 1518 y Fy(p)d FC(=)g
Fy(ap)801 1525 y Fu(a)832 1518 y FC(+)d Fy(bp)920 1525
y Fu(b)947 1518 y FC(+)g Fy(cp)1035 1525 y Fu(c)1052
1518 y Fy(;)120 1620 y FC(where)k Fy(p)273 1627 y Fu(a)293
1620 y FC(,)f Fy(p)342 1627 y Fu(b)359 1620 y FC(,)h(and)f
Fy(p)495 1627 y Fu(c)525 1620 y FC(are)g(the)g(v)o(ertices)g(of)g(the)g
(triangle.)20 b Fy(a)p FC(,)13 b Fy(b)p FC(,)g(and)g
Fy(c)f FC(can)i(b)q(e)f(found)120 1676 y(as)368 1745
y Fy(a)g FC(=)468 1715 y(A\()p Fy(pp)566 1722 y Fu(b)583
1715 y Fy(p)606 1722 y Fu(c)623 1715 y FC(\))p 458 1735
194 2 v 458 1777 a(A\()p Fy(p)533 1784 y Fu(a)553 1777
y Fy(p)576 1784 y Fu(b)593 1777 y Fy(p)616 1784 y Fu(c)633
1777 y FC(\))656 1745 y Fy(;)53 b(b)12 b FC(=)815 1715
y(A\()p Fy(pp)913 1722 y Fu(a)934 1715 y Fy(p)957 1722
y Fu(c)974 1715 y FC(\))p 807 1735 V 807 1777 a(A\()p
Fy(p)882 1784 y Fu(a)902 1777 y Fy(p)925 1784 y Fu(b)942
1777 y Fy(p)965 1784 y Fu(c)983 1777 y FC(\))1005 1745
y Fy(;)53 b(c)12 b FC(=)1165 1715 y(A\()p Fy(pp)1263
1722 y Fu(a)1283 1715 y Fy(p)1306 1722 y Fu(b)1323 1715
y FC(\))p 1156 1735 V 1156 1777 a(A\()p Fy(p)1231 1784
y Fu(a)1252 1777 y Fy(p)1275 1784 y Fu(b)1292 1777 y
Fy(p)1315 1784 y Fu(c)1332 1777 y FC(\))1354 1745 y Fy(;)120
1853 y FC(where)17 b(A\()p Fy(l)q(mn)p FC(\))e(denotes)h(the)g(area)g
(in)h(windo)o(w)f(co)q(ordinates)h(of)e(the)i(triangle)f(with)120
1910 y(v)o(ertices)g Fy(l)q FC(,)e Fy(m)p FC(,)h(and)g
Fy(n)p FC(.)191 1966 y(Denote)h(a)g(datum)g(at)g Fy(p)612
1973 y Fu(a)632 1966 y FC(,)g Fy(p)684 1973 y Fu(b)701
1966 y FC(,)h(or)e Fy(p)810 1973 y Fu(c)844 1966 y FC(as)h
Fy(f)923 1973 y Fu(a)944 1966 y FC(,)g Fy(f)995 1973
y Fu(b)1012 1966 y FC(,)g(or)g Fy(f)1120 1973 y Fu(c)1138
1966 y FC(,)g(resp)q(ectiv)o(ely)l(.)25 b(Then)17 b(the)120
2023 y(v)m(alue)e Fy(f)k FC(of)13 b(a)g(datum)h(at)f(a)g(fragmen)o(t)f
(pro)q(duced)j(b)o(y)f(rasterizing)g(a)f(triangle)h(is)g(giv)o(en)120
2079 y(b)o(y)550 2157 y Fy(f)j FC(=)653 2126 y Fy(af)699
2133 y Fu(a)720 2126 y Fy(=w)776 2133 y Fu(a)806 2126
y FC(+)10 b Fy(bf)893 2133 y Fu(b)910 2126 y Fy(=w)966
2133 y Fu(b)993 2126 y FC(+)g Fy(cf)1080 2133 y Fu(c)1098
2126 y Fy(=w)1154 2133 y Fu(c)p 642 2146 539 2 v 642
2188 a Fy(a\013)695 2195 y Fu(a)716 2188 y Fy(=w)772
2195 y Fu(a)803 2188 y FC(+)g Fy(b\013)897 2195 y Fu(b)914
2188 y Fy(=w)970 2195 y Fu(b)996 2188 y FC(+)h Fy(c\013)1091
2195 y Fu(c)1108 2188 y Fy(=w)1164 2195 y Fu(c)1521 2157
y FC(\(3.4\))120 2262 y(where)h Fy(w)281 2269 y Fu(a)301
2262 y FC(,)g Fy(w)359 2269 y Fu(b)387 2262 y FC(and)f
Fy(w)504 2269 y Fu(c)532 2262 y FC(are)g(the)h(clip)h
Fy(w)f FC(co)q(ordinates)f(of)g Fy(p)1114 2269 y Fu(a)1135
2262 y FC(,)g Fy(p)1182 2269 y Fu(b)1199 2262 y FC(,)h(and)f
Fy(p)1331 2269 y Fu(c)1349 2262 y FC(,)g(resp)q(ectiv)o(ely)l(.)120
2319 y Fy(a)p FC(,)h Fy(b)p FC(,)g(and)f Fy(c)h FC(are)f(the)g(barycen)
o(tric)h(co)q(ordinates)g(of)f(the)h(fragmen)o(t)e(for)h(whic)o(h)i
(the)e(data)120 2375 y(are)16 b(pro)q(duced.)23 b Fy(\013)444
2382 y Fu(a)478 2375 y FC(=)14 b Fy(\013)556 2382 y Fu(b)587
2375 y FC(=)g Fy(\013)665 2382 y Fu(c)696 2375 y FC(=)f(1)j(except)g
(for)f(texture)h Fy(s)p FC(,)f Fy(t)p FC(,)h(and)g Fy(r)h
FC(co)q(ordinates,)120 2432 y(for)i(whic)o(h)i Fy(\013)358
2439 y Fu(a)399 2432 y FC(=)f Fy(q)474 2439 y Fu(a)495
2432 y FC(,)h Fy(\013)558 2439 y Fu(b)595 2432 y FC(=)f
Fy(q)670 2439 y Fu(b)688 2432 y FC(,)g(and)g Fy(\013)843
2439 y Fu(c)880 2432 y FC(=)h Fy(q)956 2439 y Fu(c)993
2432 y FC(\(if)f(an)o(y)f(of)g Fy(q)1223 2439 y Fu(a)1244
2432 y FC(,)i Fy(q)1298 2439 y Fu(b)1315 2432 y FC(,)f(or)g
Fy(q)1429 2439 y Fu(c)1466 2432 y FC(are)f(less)120 2488
y(than)f(or)e(equal)j(to)d(zero,)i(results)f(are)h(unde\014ned\).)27
b Fy(a)p FC(,)18 b Fy(b)p FC(,)f(and)h Fy(c)f FC(m)o(ust)f(corresp)q
(ond)p eop
%%Page: 68 77
68 76 bop 332 137 a FC(68)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y FC(precisely)13 b(to)d(the)h(exact)g(co)q
(ordinates)h(of)e(the)h(cen)o(ter)g(of)g(the)g(fragmen)o(t.)17
b(Another)11 b(w)o(a)o(y)332 343 y(of)k(sa)o(ying)g(this)h(is)g(that)f
(the)g(data)g(asso)q(ciated)h(with)f(a)g(fragmen)o(t)g(m)o(ust)g(b)q(e)
h(sampled)332 399 y(at)f(the)g(fragmen)o(t's)f(cen)o(ter.)403
456 y(Just)19 b(as)g(with)h(line)i(segmen)o(t)d(rasterization,)h
(equation)g(3.4)e(ma)o(y)h(b)q(e)h(appro)o(xi-)332 512
y(mated)15 b(b)o(y)776 569 y Fy(f)i FC(=)c Fy(af)909
576 y Fu(a)930 569 y Fy(=\013)982 576 y Fu(a)1013 569
y FC(+)e Fy(bf)1101 576 y Fu(b)1117 569 y Fy(=\013)1169
576 y Fu(b)1197 569 y FC(+)f Fy(cf)1284 576 y Fu(c)1301
569 y Fy(=\013)1353 576 y Fu(c)1370 569 y FC(;)332 651
y(this)15 b(ma)o(y)f(yield)i(acceptable)g(results)f(for)f(color)g(v)m
(alues)i(\(it)f Fv(must)f FC(b)q(e)i(used)f(for)f(depth)332
707 y(v)m(alues\),)i(but)f(will)i(normally)e(lead)h(to)f(unacceptable)i
(distortion)e(e\013ects)g(if)g(used)h(for)332 764 y(texture)f(co)q
(ordinates.)403 820 y(F)l(or)d(a)g(p)q(olygon)i(with)f(more)f(than)h
(three)g(edges,)g(w)o(e)f(require)i(only)f(that)f(a)h(con)o(v)o(ex)332
877 y(com)o(bination)g(of)f(the)g(v)m(alues)i(of)d(the)i(datum)f(at)f
(the)i(p)q(olygon's)f(v)o(ertices)h(can)f(b)q(e)h(used)332
933 y(to)g(obtain)h(the)g(v)m(alue)h(assigned)f(to)g(eac)o(h)f(fragmen)
o(t)g(pro)q(duced)i(b)o(y)f(the)g(rasterization)332 990
y(algorithm.)20 b(That)15 b(is,)g(it)g(m)o(ust)g(b)q(e)h(the)f(case)g
(that)g(at)f(ev)o(ery)h(fragmen)o(t)964 1117 y Fy(f)j
FC(=)1071 1064 y Fu(n)1052 1077 y Fi(X)1054 1168 y Fu(i)p
Fq(=1)1120 1117 y Fy(a)1144 1124 y Fu(i)1158 1117 y Fy(f)1180
1124 y Fu(i)332 1251 y FC(where)d Fy(n)g FC(is)g(the)g(n)o(um)o(b)q(er)
h(of)e(v)o(ertices)h(in)h(the)f(p)q(olygon,)g Fy(f)1346
1258 y Fu(i)1375 1251 y FC(is)g(the)g(v)m(alue)h(of)e(the)h
Fy(f)20 b FC(at)332 1307 y(v)o(ertex)c Fy(i)p FC(;)h(for)g(eac)o(h)g
Fy(i)f FC(0)f FB(\024)h Fy(a)838 1314 y Fu(i)867 1307
y FB(\024)g FC(1)h(and)1048 1275 y Fi(P)1091 1288 y Fu(n)1091
1319 y(i)p Fq(=1)1158 1307 y Fy(a)1182 1314 y Fu(i)1212
1307 y FC(=)e(1.)25 b(The)17 b(v)m(alues)h(of)e(the)h
Fy(a)1712 1314 y Fu(i)1743 1307 y FC(ma)o(y)332 1364
y(di\013er)f(from)e(fragmen)o(t)g(to)h(fragmen)o(t,)e(but)j(at)e(v)o
(ertex)h Fy(i)p FC(,)f Fy(a)1353 1371 y Fu(j)1384 1364
y FC(=)f(0)p Fy(;)8 b(j)14 b FB(6)p FC(=)f Fy(i)i FC(and)g
Fy(a)1700 1371 y Fu(i)1727 1364 y FC(=)e(1.)403 1420
y(One)20 b(algorithm)g(that)g(ac)o(hiev)o(es)g(the)g(required)h(b)q
(eha)o(vior)g(is)f(to)g(triangulate)g(a)332 1477 y(p)q(olygon)15
b(\(without)f(adding)i(an)o(y)e(v)o(ertices\))h(and)f(then)h(treat)f
(eac)o(h)h(triangle)g(individ-)332 1533 y(ually)j(as)f(already)g
(discussed.)27 b(A)17 b(scan-line)i(rasterizer)e(that)f(linearly)j(in)o
(terp)q(olates)332 1590 y(data)f(along)h(eac)o(h)g(edge)g(and)g(then)g
(linearly)i(in)o(terp)q(olates)e(data)g(across)f(eac)o(h)h(hor-)332
1646 y(izon)o(tal)h(span)f(from)f(edge)h(to)f(edge)i(also)e
(satis\014es)i(the)f(restrictions)g(\(in)g(this)h(case,)332
1702 y(the)14 b(n)o(umerator)f(and)g(denominator)h(of)f(equation)h(3.4)
f(should)i(b)q(e)f(iterated)g(indep)q(en-)332 1759 y(den)o(tly)i(and)f
(a)g(division)i(p)q(erformed)f(for)e(eac)o(h)i(fragmen)o(t\).)332
1880 y Fl(3.5.2)55 b(Stippling)332 1966 y FC(P)o(olygon)16
b(stippling)i(w)o(orks)e(m)o(uc)o(h)g(the)g(same)g(w)o(a)o(y)f(as)h
(line)i(stippling,)g(masking)f(out)332 2022 y(certain)d(fragmen)o(ts)f
(pro)q(duced)h(b)o(y)g(rasterization)g(so)f(that)g(they)g(are)h(not)f
(sen)o(t)g(to)g(the)332 2079 y(next)20 b(stage)g(of)f(the)i(GL.)f(This)
g(is)h(the)f(case)g(regardless)h(of)f(the)g(state)f(of)h(p)q(olygon)332
2135 y(an)o(tialiasing.)h(Stippling)d(is)d(con)o(trolled)h(with)446
2227 y Fw(void)29 b Fz(P)o(olygonStipple)p FC(\()j Fw(ubyte)14
b Fv(*p)n(attern)i FC(\))e Fw(;)332 2319 y Fv(p)n(attern)22
b FC(is)h(a)e(p)q(oin)o(ter)i(to)e(memory)h(in)o(to)g(whic)o(h)g(a)g
(32)14 b FB(\002)h FC(32)22 b(pattern)f(is)i(pac)o(k)o(ed.)332
2375 y(The)e(pattern)g(is)g(unpac)o(k)o(ed)g(from)f(memory)h(according)
g(to)f(the)h(pro)q(cedure)h(giv)o(en)332 2432 y(in)c(section)g(3.6.3)e
(for)g Fz(Dra)o(wPixels)p FC(;)h(it)h(is)g(as)f(if)g(the)h
Fv(height)f FC(and)h Fv(width)g FC(passed)f(to)332 2488
y(that)d(command)h(w)o(ere)f(b)q(oth)h(equal)g(to)f(32,)g(the)h
Fv(typ)n(e)g FC(w)o(ere)f Fr(BITMAP)p FC(,)f(and)i(the)g
Fv(format)p eop
%%Page: 69 78
69 77 bop 120 137 a Fx(3.5.)34 b(POL)l(YGONS)1089 b FC(69)120
286 y(w)o(ere)13 b Fr(COLOR)p 336 286 14 2 v 14 w(INDEX)p
FC(.)f(The)g(unpac)o(k)o(ed)i(v)m(alues)f(\(b)q(efore)g(an)o(y)f(con)o
(v)o(ersion)h(or)f(arithmetic)120 343 y(w)o(ould)17 b(ha)o(v)o(e)f(b)q
(een)i(p)q(erformed\))e(are)g(bit)o(wise)h(ANDed)g(with)g(1)f(to)g
(obtain)g(a)g(stipple)120 399 y(pattern)f(of)g(zeros)g(and)g(ones.)191
456 y(If)j Fy(x)265 463 y Fu(w)311 456 y FC(and)g Fy(y)424
463 y Fu(w)471 456 y FC(are)f(the)h(windo)o(w)g(co)q(ordinates)h(of)e
(a)h(rasterized)g(p)q(olygon)g(frag-)120 513 y(men)o(t,)e(then)g(that)g
(fragmen)o(t)f(is)h(sen)o(t)g(to)f(the)i(next)f(stage)f(of)h(the)g(GL)g
(if)g(and)h(only)f(if)120 569 y(the)g(bit)f(of)g(the)g(pattern)g(\()p
Fy(x)605 576 y Fu(w)646 569 y FC(mo)q(d)d(32)p Fy(;)c(y)834
576 y Fu(w)874 569 y FC(mo)q(d)13 b(32\))h(is)i(1.)191
627 y(P)o(olygon)f(stippling)j(ma)o(y)c(b)q(e)j(enabled)g(or)e
(disabled)i(with)f Fz(Enable)h FC(or)e Fz(Disable)120
683 y FC(using)20 b(the)g(constan)o(t)e Fr(POLYGON)p
670 683 V 14 w(STIPPLE)p FC(.)f(When)j(disabled,)h(it)f(is)g(as)e(if)i
(the)f(stipple)120 739 y(pattern)c(w)o(ere)g(all)h(ones.)120
865 y Fl(3.5.3)56 b(An)n(tialiasing)120 952 y FC(P)o(olygon)14
b(an)o(tialiasing)g(rasterizes)g(a)f(p)q(olygon)h(b)o(y)f(pro)q(ducing)
i(a)e(fragmen)o(t)g(wherev)o(er)120 1009 y(the)20 b(in)o(terior)g(of)f
(the)h(p)q(olygon)g(in)o(tersects)g(that)f(fragmen)o(t's)f(square.)33
b(A)20 b(co)o(v)o(erage)120 1065 y(v)m(alue)12 b(is)f(computed)f(at)g
(eac)o(h)g(suc)o(h)h(fragmen)o(t,)f(and)g(this)h(v)m(alue)h(is)e(sa)o
(v)o(ed)g(to)g(b)q(e)h(applied)120 1122 y(as)j(describ)q(ed)i(in)f
(section)g(3.10.)j(An)d(asso)q(ciated)f(datum)g(is)h(assigned)g(to)e(a)
h(fragmen)o(t)120 1178 y(b)o(y)k(in)o(tegrating)f(the)h(datum's)f(v)m
(alue)i(o)o(v)o(er)e(the)g(region)h(of)f(the)h(in)o(tersection)g(of)g
(the)120 1235 y(fragmen)o(t)j(square)h(with)g(the)g(p)q(olygon's)h(in)o
(terior)f(and)g(dividing)i(this)f(in)o(tegrated)120 1291
y(v)m(alue)c(b)o(y)e(the)g(area)g(of)g(the)g(in)o(tersection.)27
b(F)l(or)17 b(a)g(fragmen)o(t)f(square)h(lying)i(en)o(tirely)120
1348 y(within)g(the)e(p)q(olygon,)g(the)g(v)m(alue)i(of)d(a)h(datum)g
(at)f(the)h(fragmen)o(t's)f(cen)o(ter)h(ma)o(y)f(b)q(e)120
1404 y(used)g(instead)g(of)f(in)o(tegrating)g(the)g(v)m(alue)i(across)d
(the)h(fragmen)o(t.)191 1461 y(P)o(olygon)d(stippling)i(op)q(erates)d
(in)i(the)f(same)g(w)o(a)o(y)f(whether)h(p)q(olygon)h(an)o(tialiasing)
120 1518 y(is)j(enabled)g(or)e(not.)19 b(The)c(p)q(olygon)g(p)q(oin)o
(t)g(sampling)h(rule)f(de\014ned)h(in)g(section)f(3.5.1,)120
1574 y(ho)o(w)o(ev)o(er,)f(is)i(not)f(enforced)h(for)e(an)o(tialiased)i
(p)q(olygons.)120 1700 y Fl(3.5.4)56 b(Options)18 b(Con)n(trolling)g(P)
n(olygon)h(Rasterization)120 1787 y FC(The)d(in)o(terpretation)f(of)g
(p)q(olygons)h(for)e(rasterization)h(is)h(con)o(trolled)g(using)234
1883 y Fw(void)30 b Fz(P)o(olygonMo)q(de)p FC(\()g Fw(enum)14
b Fv(fac)n(e)p Fw(,)h(enum)g Fv(mo)n(de)g FC(\))g Fw(;)120
1980 y Fv(fac)n(e)g FC(is)g(one)g(of)g Fr(FRONT)p FC(,)f
Fr(BACK)p FC(,)f(or)i Fr(FRONT)p 812 1980 V 14 w(AND)p
892 1980 V 15 w(BACK)p FC(,)f(indicating)j(that)d(the)h(rasterizing)120
2037 y(metho)q(d)i(describ)q(ed)h(b)o(y)e Fv(mo)n(de)h
FC(replaces)g(the)f(rasterizing)h(metho)q(d)f(for)g(fron)o(t)f(facing)
120 2093 y(p)q(olygons,)23 b(bac)o(k)e(facing)h(p)q(olygons,)g(or)f(b)q
(oth)g(fron)o(t)g(and)g(bac)o(k)g(facing)h(p)q(olygons,)120
2149 y(resp)q(ectiv)o(ely)l(.)36 b Fv(mo)n(de)20 b FC(is)g(one)g(of)f
(the)h(sym)o(b)q(olic)h(constan)o(ts)e Fr(POINT)p FC(,)f
Fr(LINE)p FC(,)h(or)g Fr(FILL)p FC(.)120 2206 y(Calling)g
Fz(P)o(olygonMo)q(de)f FC(with)g Fr(POINT)e FC(causes)i(certain)g(v)o
(ertices)g(of)f(a)g(p)q(olygon)h(to)120 2262 y(b)q(e)h(treated,)e(for)g
(rasterization)h(purp)q(oses,)g(just)g(as)f(if)h(they)g(w)o(ere)f
(enclosed)j(within)120 2319 y(a)15 b Fz(Begin)p FC(\()p
Fr(POINT)p FC(\))g(and)g Fz(End)h FC(pair.)21 b(The)15
b(v)o(ertices)h(selected)g(for)f(this)h(treatmen)o(t)e(are)120
2375 y(those)i(that)f(ha)o(v)o(e)g(b)q(een)i(tagged)e(as)g(ha)o(ving)h
(a)f(p)q(olygon)h(b)q(oundary)h(edge)f(b)q(eginning)120
2432 y(on)f(them)g(\(see)h(section)f(2.6.2\).)j Fr(LINE)c
FC(causes)i(edges)f(that)f(are)h(tagged)g(as)f(b)q(oundary)120
2488 y(to)j(b)q(e)i(rasterized)f(as)f(line)i(segmen)o(ts.)27
b(\(The)17 b(line)j(stipple)f(coun)o(ter)e(is)h(reset)g(at)f(the)p
eop
%%Page: 70 79
70 78 bop 332 137 a FC(70)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y FC(b)q(eginning)16 b(of)e(the)g(\014rst)f
(rasterized)i(edge)f(of)f(the)h(p)q(olygon,)h(but)f(not)f(for)h
(subsequen)o(t)332 343 y(edges.\))21 b Fr(FILL)15 b FC(is)h(the)f
(default)h(mo)q(de)g(of)f(p)q(olygon)h(rasterization,)g(corresp)q
(onding)g(to)332 399 y(the)j(description)i(in)f(sections)g(3.5.1,)e
(3.5.2,)g(and)h(3.5.3.)31 b(Note)18 b(that)h(these)g(mo)q(des)332
456 y(a\013ect)i(only)h(the)f(\014nal)i(rasterization)e(of)g(p)q
(olygons:)33 b(in)22 b(particular,)h(a)e(p)q(olygon's)332
512 y(v)o(ertices)16 b(are)g(lit,)h(and)f(the)g(p)q(olygon)g(is)h
(clipp)q(ed)h(and)e(p)q(ossibly)i(culled)g(b)q(efore)e(these)332
569 y(mo)q(des)f(are)g(applied.)403 627 y(P)o(olygon)j(an)o(tialiasing)
i(applies)g(only)f(to)f(the)g Fr(FILL)g FC(state)g(of)g
Fz(P)o(olygonMo)q(de)p FC(.)332 683 y(F)l(or)h Fr(POINT)g
FC(or)h Fr(LINE)p FC(,)e(p)q(oin)o(t)j(an)o(tialiasing)g(or)e(line)j
(segmen)o(t)e(an)o(tialiasing,)h(resp)q(ec-)332 740 y(tiv)o(ely)l(,)16
b(apply)l(.)332 871 y Fl(3.5.5)55 b(Depth)19 b(O\013set)332
960 y FC(The)12 b(depth)g(v)m(alues)g(of)f(all)h(fragmen)o(ts)f
(generated)g(b)o(y)g(the)h(rasterization)f(of)g(a)g(p)q(olygon)332
1016 y(ma)o(y)20 b(b)q(e)h(o\013set)f(b)o(y)g(a)g(single)i(v)m(alue)g
(that)d(is)i(computed)g(for)f(that)g(p)q(olygon.)36 b(The)332
1073 y(function)16 b(that)f(determines)h(this)f(v)m(alue)i(is)f(sp)q
(eci\014ed)h(b)o(y)e(calling)446 1173 y Fw(void)29 b
Fz(P)o(olygonO\013set)p FC(\()h Fw(float)14 b Fv(factor)p
Fw(,)i(float)e Fv(units)h FC(\))g Fw(;)332 1274 y Fv(factor)i
FC(scales)g(the)f(maxim)o(um)g(depth)h(slop)q(e)g(of)f(the)g(p)q
(olygon,)h(and)f Fv(units)g FC(scales)h(an)332 1330 y(implemen)o
(tation)g(dep)q(enden)o(t)g(constan)o(t)e(that)g(relates)h(to)f(the)h
(usable)g(resolution)h(of)332 1387 y(the)f(depth)g(bu\013er.)21
b(The)16 b(resulting)g(v)m(alues)h(are)e(summed)h(to)f(pro)q(duce)h
(the)g(p)q(olygon)332 1443 y(o\013set)e(v)m(alue.)21
b(Both)15 b Fv(factor)h FC(and)g Fv(units)e FC(ma)o(y)h(b)q(e)h(either)
g(p)q(ositiv)o(e)g(or)e(negativ)o(e.)403 1501 y(The)h(maxim)o(um)g
(depth)h(slop)q(e)g Fy(m)f FC(of)g(a)g(triangle)h(is)811
1648 y Fy(m)c FC(=)911 1568 y Fi(s)p 953 1568 396 2 v
21 x(\022)991 1617 y Fy(@)s(z)1039 1624 y Fu(w)p 988
1638 81 2 v 988 1679 a Fy(@)s(x)1041 1686 y Fu(w)1074
1589 y Fi(\023)1105 1599 y Fq(2)1134 1648 y FC(+)1180
1589 y Fi(\022)1216 1617 y Fy(@)s(z)1264 1624 y Fu(w)p
1215 1638 78 2 v 1215 1679 a Fy(@)s(y)1264 1686 y Fu(w)1298
1589 y Fi(\023)1328 1599 y Fq(2)1733 1648 y FC(\(3.5\))332
1780 y(where)k(\()p Fy(x)508 1787 y Fu(w)535 1780 y Fy(;)8
b(y)578 1787 y Fu(w)606 1780 y Fy(;)g(z)648 1787 y Fu(w)676
1780 y FC(\))15 b(is)g(a)g(p)q(oin)o(t)h(on)f(the)g(triangle.)21
b Fy(m)15 b FC(ma)o(y)f(b)q(e)i(appro)o(ximated)f(as)811
1908 y Fy(m)e FC(=)g(max)1004 1849 y Fi(\032)1035 1847
y(\014)1035 1872 y(\014)1035 1897 y(\014)1035 1922 y(\014)1056
1878 y Fy(@)s(z)1104 1885 y Fu(w)p 1054 1898 81 2 v 1054
1940 a Fy(@)s(x)1107 1947 y Fu(w)1140 1847 y Fi(\014)1140
1872 y(\014)1140 1897 y(\014)1140 1922 y(\014)1161 1908
y Fy(;)1182 1847 y Fi(\014)1181 1872 y(\014)1181 1897
y(\014)1181 1922 y(\014)1201 1878 y Fy(@)s(z)1249 1885
y Fu(w)p 1200 1898 78 2 v 1200 1940 a Fy(@)s(y)1249 1947
y Fu(w)1282 1847 y Fi(\014)1282 1872 y(\014)1282 1897
y(\014)1282 1922 y(\014)1296 1849 y(\033)1335 1908 y
Fy(:)385 b FC(\(3.6\))332 2035 y(If)13 b(the)g(p)q(olygon)g(has)g(more)
f(than)h(three)g(v)o(ertices,)g(one)g(or)f(more)h(v)m(alues)h(of)e
Fy(m)h FC(ma)o(y)f(b)q(e)332 2091 y(used)h(during)h(rasterization.)19
b(Eac)o(h)12 b(ma)o(y)g(tak)o(e)g(an)o(y)h(v)m(alue)h(in)f(the)g(range)
f([)p Fy(min)p FC(,)p Fy(max)p FC(],)332 2148 y(where)h
Fy(min)f FC(and)g Fy(max)g FC(are)g(the)g(smallest)h(and)f(largest)g(v)
m(alues)i(obtained)f(b)o(y)f(ev)m(aluat-)332 2204 y(ing)i(Equation)f
(3.5)f(or)g(Equation)h(3.6)f(for)h(the)g(triangles)g(formed)g(b)o(y)g
(all)h(three-v)o(ertex)332 2261 y(com)o(binations.)403
2319 y(The)i(minim)o(um)h(resolv)m(able)h(di\013erence)f
Fy(r)g FC(is)f(an)g(implemen)o(tation)i(constan)o(t.)j(It)332
2375 y(is)c(the)g(smallest)g(di\013erence)g(in)h(windo)o(w)e(co)q
(ordinate)h Fy(z)i FC(v)m(alues)e(that)f(is)h(guaran)o(teed)332
2432 y(to)12 b(remain)h(distinct)h(throughout)e(p)q(olygon)h
(rasterization)g(and)f(in)i(the)f(depth)g(bu\013er.)332
2488 y(All)18 b(pairs)g(of)e(fragmen)o(ts)g(generated)h(b)o(y)g(the)g
(rasterization)g(of)f(t)o(w)o(o)g(p)q(olygons)h(with)p
eop
%%Page: 71 80
71 79 bop 120 137 a Fx(3.6.)34 b(PIXEL)16 b(RECT)l(ANGLES)873
b FC(71)120 286 y(otherwise)14 b(iden)o(tical)h(v)o(ertices,)f(but)g
Fy(z)781 293 y Fu(w)823 286 y FC(v)m(alues)g(that)f(di\013er)h(b)o(y)f
Fy(r)q FC(,)g(will)i(ha)o(v)o(e)f(distinct)120 343 y(depth)i(v)m
(alues.)191 400 y(The)f(o\013set)g(v)m(alue)h Fy(o)f
FC(for)g(a)g(p)q(olygon)g(is)600 505 y Fy(o)d FC(=)h
Fy(m)d FB(\003)g Fy(f)5 b(actor)11 b FC(+)g Fy(r)f FB(\003)g
Fy(units)q(:)385 b FC(\(3.7\))120 610 y Fy(m)12 b FC(is)h(computed)g
(as)e(describ)q(ed)j(ab)q(o)o(v)o(e,)e(as)g(a)g(function)h(of)f(depth)h
(v)m(alues)g(in)g(the)f(range)120 666 y([0,1],)h(and)j
Fy(o)f FC(is)h(applied)h(to)d(depth)i(v)m(alues)h(in)f(the)f(same)g
(range.)191 723 y(Bo)q(olean)25 b(state)f(v)m(alues)i
Fr(POLYGON)p 798 723 14 2 v 15 w(OFFSET)p 945 723 V 14
w(POINT)p FC(,)d Fr(POLYGON)p 1259 723 V 15 w(OFFSET)p
1406 723 V 14 w(LINE)p FC(,)h(and)120 780 y Fr(POLYGON)p
277 780 V 15 w(OFFSET)p 424 780 V 14 w(FILL)c FC(determine)h(whether)g
Fy(o)f FC(is)h(applied)h(during)f(the)g(rasteriza-)120
836 y(tion)c(of)g(p)q(olygons)g(in)h Fr(POINT)p FC(,)d
Fr(LINE)p FC(,)g(and)i Fr(FILL)f FC(mo)q(des.)25 b(These)17
b(b)q(o)q(olean)h(state)e(v)m(al-)120 893 y(ues)g(are)e(enabled)j(and)e
(disabled)i(as)e(argumen)o(t)f(v)m(alues)i(to)f(the)g(commands)f
Fz(Enable)120 949 y FC(and)k Fz(Disable)p FC(.)28 b(If)18
b Fr(POLYGON)p 624 949 V 14 w(OFFSET)p 770 949 V 15 w(POINT)e
FC(is)i(enabled,)i Fy(o)d FC(is)h(added)h(to)d(the)i(depth)120
1006 y(v)m(alue)f(of)e(eac)o(h)h(fragmen)o(t)e(pro)q(duced)j(b)o(y)f
(the)f(rasterization)h(of)f(a)g(p)q(olygon)h(in)h Fr(POINT)120
1062 y FC(mo)q(de.)j(Lik)o(ewise,)14 b(if)f Fr(POLYGON)p
649 1062 V 14 w(OFFSET)p 795 1062 V 14 w(LINE)f FC(or)g
Fr(POLYGON)p 1116 1062 V 14 w(OFFSET)p 1262 1062 V 14
w(FILL)g FC(is)h(enabled,)h Fy(o)120 1119 y FC(is)i(added)g(to)f(the)g
(depth)h(v)m(alue)g(of)f(eac)o(h)h(fragmen)o(t)e(pro)q(duced)i(b)o(y)f
(the)h(rasterization)120 1175 y(of)f(a)g(p)q(olygon)h(in)g
Fr(LINE)e FC(or)h Fr(FILL)f FC(mo)q(des,)h(resp)q(ectiv)o(ely)l(.)191
1232 y(F)l(ragmen)o(t)i(depth)i(v)m(alues)g(are)f(alw)o(a)o(ys)g
(limited)i(to)e(the)g(range)g([0,1],)f(either)i(b)o(y)120
1289 y(clamping)f(after)e(o\013set)f(addition)i(is)g(p)q(erformed)g
(\(preferred\),)f(or)g(b)o(y)g(clamping)i(the)120 1345
y(v)o(ertex)d(v)m(alues)h(used)g(in)g(the)g(rasterization)f(of)f(the)i
(p)q(olygon.)120 1472 y Fl(3.5.6)56 b(P)n(olygon)18 b(Rasterization)g
(State)120 1559 y FC(The)11 b(state)f(required)i(for)e(p)q(olygon)h
(rasterization)g(consists)g(of)f(a)h(p)q(olygon)g(stipple)h(pat-)120
1616 y(tern,)k(whether)h(stippling)h(is)e(enabled)i(or)d(disabled,)j
(the)e(curren)o(t)g(state)g(of)f(p)q(olygon)120 1672
y(an)o(tialiasing)h(\(enabled)f(or)e(disabled\),)j(the)e(curren)o(t)g
(v)m(alues)h(of)f(the)g Fz(P)o(olygonMo)q(de)120 1729
y FC(setting)i(for)f(eac)o(h)g(of)g(fron)o(t)g(and)h(bac)o(k)f(facing)h
(p)q(olygons,)f(whether)h(p)q(oin)o(t,)g(line,)h(and)120
1785 y(\014ll)k(mo)q(de)e(p)q(olygon)g(o\013sets)f(are)h(enabled)h(or)e
(disabled,)j(and)e(the)g(factor)f(and)h(bias)120 1842
y(v)m(alues)d(of)e(the)h(p)q(olygon)g(o\013set)f(equation.)20
b(The)15 b(initial)h(stipple)g(pattern)e(is)i(all)f(ones;)120
1898 y(initially)21 b(stippling)e(is)g(disabled.)29 b(The)17
b(initial)j(setting)e(of)f(p)q(olygon)h(an)o(tialiasing)h(is)120
1955 y(disabled.)35 b(The)20 b(initial)h(state)e(for)g
Fz(P)o(olygonMo)q(de)g FC(is)h Fr(FILL)f FC(for)f(b)q(oth)i(fron)o(t)f
(and)120 2011 y(bac)o(k)e(facing)h(p)q(olygons.)25 b(The)18
b(initial)h(p)q(olygon)e(o\013set)f(factor)g(and)h(bias)h(v)m(alues)g
(are)120 2068 y(b)q(oth)e(0;)e(initially)k(p)q(olygon)e(o\013set)e(is)i
(disabled)h(for)d(all)i(mo)q(des.)120 2216 y Fs(3.6)67
b(Pixel)23 b(Rectangles)120 2319 y FC(Rectangles)e(of)e(color,)h
(depth,)g(and)g(certain)g(other)f(v)m(alues)h(ma)o(y)f(b)q(e)h(con)o(v)
o(erted)f(to)120 2375 y(fragmen)o(ts)e(using)h(the)g
Fz(Dra)o(wPixels)f FC(command.)27 b(Some)18 b(of)f(the)h(parameters)f
(and)120 2432 y(op)q(erations)j(go)o(v)o(erning)g(the)f(op)q(eration)h
(of)f Fz(Dra)o(wPixels)g FC(are)g(shared)h(b)o(y)g Fz(Read-)120
2488 y(Pixels)14 b FC(\(used)h(to)e(obtain)h(pixel)i(v)m(alues)f(from)e
(the)h(framebu\013er\))g(and)g Fz(Cop)o(yPixels)p eop
%%Page: 72 81
72 80 bop 332 137 a FC(72)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 468 242 1223 2 v 467 299 2 57 v
515 282 a FC(P)o(arameter)13 b(Name)p 897 299 V 98 w(T)o(yp)q(e)p
1101 299 V 76 w(Initial)k(V)l(alue)p 1397 299 V 51 w(V)l(alid)f(Range)p
1690 299 V 468 301 1223 2 v 468 309 V 467 365 2 57 v
504 348 a Fr(UNPACK)p 639 348 14 2 v 14 w(SWAP)p 741
348 V 15 w(BYTES)p 897 365 2 57 v 60 w FC(b)q(o)q(olean)p
1101 365 V 119 w Fr(FALSE)p 1397 365 V 130 w(TRUE)p FC(/)p
Fr(FALSE)p 1690 365 V 468 367 1223 2 v 467 423 2 57 v
515 406 a(UNPACK)p 650 406 14 2 v 14 w(LSB)p 730 406
V 15 w(FIRST)p 897 423 2 57 v 71 w FC(b)q(o)q(olean)p
1101 423 V 119 w Fr(FALSE)p 1397 423 V 130 w(TRUE)p FC(/)p
Fr(FALSE)p 1690 423 V 468 425 1223 2 v 467 482 2 57 v
504 465 a(UNPACK)p 639 465 14 2 v 14 w(ROW)p 719 465
V 15 w(LENGTH)p 897 482 2 57 v 69 w FC(in)o(teger)p 1101
482 V 171 w(0)p 1397 482 V 224 w([0)p Fy(;)8 b FB(1)p
FC(\))p 1690 482 V 468 483 1223 2 v 467 540 2 57 v 515
523 a Fr(UNPACK)p 650 523 14 2 v 14 w(SKIP)p 752 523
V 15 w(ROWS)p 897 540 2 57 v 80 w FC(in)o(teger)p 1101
540 V 171 w(0)p 1397 540 V 224 w([0)p Fy(;)g FB(1)p FC(\))p
1690 540 V 468 541 1223 2 v 467 598 2 57 v 493 581 a
Fr(UNPACK)p 628 581 14 2 v 14 w(SKIP)p 730 581 V 15 w(PIXELS)p
897 598 2 57 v 58 w FC(in)o(teger)p 1101 598 V 171 w(0)p
1397 598 V 224 w([0)p Fy(;)g FB(1)p FC(\))p 1690 598
V 468 599 1223 2 v 467 656 2 57 v 512 639 a Fr(UNPACK)p
647 639 14 2 v 14 w(ALIGNMENT)p 897 656 2 57 v 76 w FC(in)o(teger)p
1101 656 V 171 w(4)p 1397 656 V 219 w(1,2,4,8)p 1690
656 V 468 658 1223 2 v 454 735 a(T)l(able)16 b(3.1:)j
Fz(PixelStore)c FC(parameters)g(p)q(ertaining)h(to)f
Fz(Dra)o(wPixels)p FC(.)332 918 y(\(used)i(to)e(cop)o(y)h(pixels)i
(from)e(one)g(framebu\013er)g(lo)q(cation)h(to)e(another\);)h(the)g
(discus-)332 975 y(sion)f(of)f Fz(ReadPixels)h FC(and)f
Fz(Cop)o(yPixels)p FC(,)f(ho)o(w)o(ev)o(er,)h(is)g(deferred)h(un)o(til)
h(Chapter)e(4)332 1031 y(after)19 b(the)h(framebu\013er)f(has)h(b)q
(een)h(discussed)g(in)f(detail.)35 b(Nev)o(ertheless,)21
b(w)o(e)f(note)332 1088 y(in)e(this)g(section)g(when)g(parameters)e
(and)i(state)e(p)q(ertaining)j(to)e Fz(Dra)o(wPixels)f
FC(also)332 1144 y(p)q(ertain)g(to)f Fz(ReadPixels)g
FC(or)g Fz(Cop)o(yPixels)p FC(.)403 1200 y(A)j(n)o(um)o(b)q(er)h(of)e
(parameters)h(con)o(trol)g(the)g(enco)q(ding)i(of)e(pixels)i(in)f
(clien)o(t)g(mem-)332 1257 y(ory)i(\(for)f(reading)i(and)g(writing\))g
(and)f(ho)o(w)g(pixels)i(are)e(pro)q(cessed)h(b)q(efore)g(b)q(eing)332
1313 y(placed)15 b(in)f(or)f(after)g(b)q(eing)i(read)e(from)g(the)h
(framebu\013er)f(\(for)f(reading,)i(writing,)g(and)332
1370 y(cop)o(ying\).)38 b(These)22 b(parameters)e(are)h(set)g(with)h
(three)f(commands:)32 b Fz(PixelStore)p FC(,)332 1426
y Fz(PixelT)l(ransfer)p FC(,)14 b(and)i Fz(PixelMap)p
FC(.)332 1547 y Fl(3.6.1)55 b(Pixel)18 b(Storage)g(Mo)r(des)332
1633 y FC(Pixel)f(storage)e(mo)q(des)h(a\013ect)g(the)g(op)q(eration)g
(of)g Fz(Dra)o(wPixels)f FC(and)h Fz(ReadPixels)332 1689
y FC(\(as)i(w)o(ell)i(as)e(other)g(commands;)i(see)f(sections)g(3.5.2,)
f(3.7,)g(and)h(3.8\))e(when)i(one)g(of)332 1746 y(these)14
b(commands)f(is)g(issued.)21 b(This)13 b(ma)o(y)g(di\013er)g(from)g
(the)g(time)h(that)e(the)i(command)332 1802 y(is)g(executed)g(if)g(the)
f(command)g(is)h(placed)g(in)g(a)f(displa)o(y)h(list)g(\(see)f(section)
h(5.4\).)k(Pixel)332 1859 y(storage)c(mo)q(des)h(are)g(set)g(with)446
1948 y Fw(void)29 b Fz(PixelStore)p FB(f)p Fz(if)p FB(g)p
FC(\()i Fw(enum)14 b Fv(pname)p Fw(,)h(T)g Fv(p)n(ar)n(am)h
FC(\))f Fw(;)332 2037 y Fv(pname)i FC(is)g(a)f(sym)o(b)q(olic)h
(constan)o(t)f(indicating)i(a)f(parameter)e(to)h(b)q(e)h(set,)f(and)h
Fv(p)n(ar)n(am)332 2093 y FC(is)e(the)f(v)m(alue)h(to)f(set)f(it)i(to.)
k(T)l(able)14 b(3.1)g(summarizes)g(the)g(pixel)i(storage)d(parameters,)
332 2149 y(their)g(t)o(yp)q(es,)g(their)g(initial)i(v)m(alues,)f(and)f
(their)g(allo)o(w)o(able)h(ranges.)k(Setting)c(a)e(param-)332
2206 y(eter)18 b(to)g(a)g(v)m(alue)i(outside)e(the)h(giv)o(en)g(range)f
(results)g(in)i(the)e(error)g Fr(INVALID)p 1694 2206
14 2 v 14 w(VALUE)p FC(.)403 2319 y(The)k(v)o(ersion)h(of)f
Fz(PixelStore)h FC(that)f(tak)o(es)g(a)g(\015oating-p)q(oin)o(t)h(v)m
(alue)h(ma)o(y)e(b)q(e)332 2375 y(used)h(to)e(set)h(an)o(y)g(t)o(yp)q
(e)g(of)g(parameter;)i(if)f(the)f(parameter)g(is)g(b)q(o)q(olean,)j
(then)d(it)332 2432 y(is)e(set)g(to)f Fr(FALSE)f FC(if)i(the)g(passed)g
(v)m(alue)h(is)f(0)p Fy(:)p FC(0)f(and)h Fr(TRUE)e FC(otherwise,)j
(while)g(if)f(the)332 2488 y(parameter)g(is)h(an)f(in)o(teger,)h(then)g
(the)f(passed)h(v)m(alue)h(is)e(rounded)i(to)d(the)i(nearest)p
eop
%%Page: 73 82
73 81 bop 120 137 a Fx(3.6.)34 b(PIXEL)16 b(RECT)l(ANGLES)873
b FC(73)p 278 242 1180 2 v 277 299 2 57 v 303 282 a(P)o(arameter)14
b(Name)p 664 299 V 75 w(T)o(yp)q(e)p 868 299 V 76 w(Initial)j(V)l(alue)
p 1164 299 V 51 w(V)l(alid)g(Range)p 1456 299 V 278 301
1180 2 v 278 309 V 277 365 2 57 v 376 348 a Fr(MAP)p
445 348 14 2 v 15 w(COLOR)p 664 365 2 57 v 122 w FC(b)q(o)q(olean)p
868 365 V 120 w Fr(FALSE)p 1164 365 V 129 w(TRUE)p FC(/)p
Fr(FALSE)p 1456 365 V 278 367 1180 2 v 277 423 2 57 v
354 406 a(MAP)p 423 406 14 2 v 15 w(STENCIL)p 664 423
2 57 v 100 w FC(b)q(o)q(olean)p 868 423 V 120 w Fr(FALSE)p
1164 423 V 129 w(TRUE)p FC(/)p Fr(FALSE)p 1456 423 V
278 425 1180 2 v 277 482 2 57 v 354 465 a(INDEX)p 467
465 14 2 v 15 w(SHIFT)p 664 482 2 57 v 110 w FC(in)o(teger)p
868 482 V 171 w(0)p 1164 482 V 192 w(\()p FB(\0001)p
Fy(;)8 b FB(1)p FC(\))p 1456 482 V 278 483 1180 2 v 277
540 2 57 v 343 523 a Fr(INDEX)p 456 523 14 2 v 15 w(OFFSET)p
664 540 2 57 v 99 w FC(in)o(teger)p 868 540 V 171 w(0)p
1164 540 V 192 w(\()p FB(\0001)p Fy(;)g FB(1)p FC(\))p
1456 540 V 278 541 1180 2 v 277 598 2 57 v 376 581 a
Fr(RED)p 445 581 14 2 v 15 w(SCALE)p 664 598 2 57 v 155
w FC(\015oat)p 868 598 V 176 w(1.0)p 1164 598 V 174 w(\()p
FB(\0001)p Fy(;)g FB(1)p FC(\))p 1456 598 V 278 599 1180
2 v 277 656 2 57 v 354 639 a Fr(GREEN)p 467 639 14 2
v 15 w(SCALE)p 664 656 2 57 v 133 w FC(\015oat)p 868
656 V 176 w(1.0)p 1164 656 V 174 w(\()p FB(\0001)p Fy(;)g
FB(1)p FC(\))p 1456 656 V 278 658 1180 2 v 277 714 2
57 v 365 697 a Fr(BLUE)p 456 697 14 2 v 15 w(SCALE)p
664 714 2 57 v 144 w FC(\015oat)p 868 714 V 176 w(1.0)p
1164 714 V 174 w(\()p FB(\0001)p Fy(;)g FB(1)p FC(\))p
1456 714 V 278 716 1180 2 v 277 772 2 57 v 354 755 a
Fr(ALPHA)p 467 755 14 2 v 15 w(SCALE)p 664 772 2 57 v
133 w FC(\015oat)p 868 772 V 176 w(1.0)p 1164 772 V 174
w(\()p FB(\0001)p Fy(;)g FB(1)p FC(\))p 1456 772 V 278
774 1180 2 v 277 830 2 57 v 354 813 a Fr(DEPTH)p 467
813 14 2 v 15 w(SCALE)p 664 830 2 57 v 133 w FC(\015oat)p
868 830 V 176 w(1.0)p 1164 830 V 174 w(\()p FB(\0001)p
Fy(;)g FB(1)p FC(\))p 1456 830 V 278 832 1180 2 v 277
888 2 57 v 387 871 a Fr(RED)p 456 871 14 2 v 15 w(BIAS)p
664 888 2 57 v 166 w FC(\015oat)p 868 888 V 176 w(0.0)p
1164 888 V 174 w(\()p FB(\0001)p Fy(;)g FB(1)p FC(\))p
1456 888 V 278 890 1180 2 v 277 946 2 57 v 365 930 a
Fr(GREEN)p 478 930 14 2 v 15 w(BIAS)p 664 946 2 57 v
144 w FC(\015oat)p 868 946 V 176 w(0.0)p 1164 946 V 174
w(\()p FB(\0001)p Fy(;)g FB(1)p FC(\))p 1456 946 V 278
948 1180 2 v 277 1005 2 57 v 376 988 a Fr(BLUE)p 467
988 14 2 v 15 w(BIAS)p 664 1005 2 57 v 155 w FC(\015oat)p
868 1005 V 176 w(0.0)p 1164 1005 V 174 w(\()p FB(\0001)p
Fy(;)g FB(1)p FC(\))p 1456 1005 V 278 1006 1180 2 v 277
1063 2 57 v 365 1046 a Fr(ALPHA)p 478 1046 14 2 v 15
w(BIAS)p 664 1063 2 57 v 144 w FC(\015oat)p 868 1063
V 176 w(0.0)p 1164 1063 V 174 w(\()p FB(\0001)p Fy(;)g
FB(1)p FC(\))p 1456 1063 V 278 1064 1180 2 v 277 1121
2 57 v 365 1104 a Fr(DEPTH)p 478 1104 14 2 v 15 w(BIAS)p
664 1121 2 57 v 144 w FC(\015oat)p 868 1121 V 176 w(0.0)p
1164 1121 V 174 w(\()p FB(\0001)p Fy(;)g FB(1)p FC(\))p
1456 1121 V 278 1122 1180 2 v 482 1200 a(T)l(able)16
b(3.2:)j Fz(PixelT)l(ransfer)c FC(parameters.)120 1390
y(in)o(teger.)28 b(The)18 b(in)o(teger)g(v)o(ersion)g(of)f(the)h
(command)g(ma)o(y)f(also)h(b)q(e)g(used)g(to)g(set)f(an)o(y)120
1447 y(t)o(yp)q(e)e(of)g(parameter;)f(if)h(the)g(parameter)f(is)h(b)q
(o)q(olean,)h(then)f(it)g(is)h(set)e(to)h Fr(FALSE)e
FC(if)j(the)120 1503 y(passed)j(v)m(alue)g(is)g(0)f(and)g
Fr(TRUE)f FC(otherwise,)i(while)h(if)e(the)h(parameter)e(is)i(a)f
(\015oating-)120 1560 y(p)q(oin)o(t)e(v)m(alue,)g(then)g(the)f(passed)g
(v)m(alue)i(is)f(con)o(v)o(erted)e(to)h(\015oating-p)q(oin)o(t.)120
1691 y Fl(3.6.2)56 b(Pixel)17 b(T)-5 b(ransfer)19 b(Mo)r(des)120
1780 y FC(Pixel)13 b(transfer)e(mo)q(des)h(a\013ect)g(the)f(op)q
(eration)h(of)g Fz(Dra)o(wPixels)p FC(,)f Fz(ReadPixels)p
FC(,)i(and)120 1836 y Fz(Cop)o(yPixels)k FC(at)g(the)g(time)h(when)g
(one)f(of)g(these)h(commands)f(is)h(executed)g(\(whic)o(h)120
1892 y(ma)o(y)12 b(di\013er)g(from)f(the)h(time)h(the)f(command)g(is)g
(issued\).)20 b(Some)12 b(pixel)h(transfer)f(mo)q(des)120
1949 y(are)j(set)g(with)234 2049 y Fw(void)30 b Fz(PixelT)l(ransfer)p
FB(f)p Fz(if)p FB(g)p FC(\()f Fw(enum)15 b Fv(p)n(ar)n(am)p
Fw(,)g(T)g Fv(value)g FC(\))g Fw(;)120 2149 y Fv(p)n(ar)n(am)h
FC(is)f(a)g(sym)o(b)q(olic)i(constan)o(t)d(indicating)j(a)e(parameter)f
(to)g(b)q(e)i(set,)f(and)g Fv(value)g FC(is)120 2206
y(the)j(v)m(alue)h(to)e(set)g(it)h(to.)26 b(T)l(able)18
b(3.2)f(summarizes)h(the)g(pixel)h(transfer)e(parameters)120
2262 y(that)e(are)g(set)g(with)g Fz(PixelT)l(ransfer)p
FC(,)f(their)i(t)o(yp)q(es,)f(their)h(initial)h(v)m(alues,)f(and)f
(their)120 2319 y(allo)o(w)o(able)20 b(ranges.)32 b(Setting)20
b(a)f(parameter)f(to)h(a)g(v)m(alue)h(outside)g(the)f(giv)o(en)h(range)
120 2375 y(results)15 b(in)h(the)e(error)g Fr(INVALID)p
662 2375 14 2 v 14 w(VALUE)p FC(.)f(The)i(same)f(v)o(ersions)h(of)f
(the)h(command)f(exist)120 2432 y(as)19 b(for)e Fz(PixelStore)p
FC(,)j(and)e(the)h(same)f(rules)i(apply)f(to)f(accepting)h(and)g(con)o
(v)o(erting)120 2488 y(passed)d(v)m(alues)g(to)f(set)g(parameters.)p
eop
%%Page: 74 83
74 82 bop 332 137 a FC(74)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 385 242 1388 2 v 384 299 2 57 v
463 282 a FC(Map)14 b(Name)p 759 299 V 768 299 V 133
w(Address)p 1020 299 V 119 w(V)l(alue)p 1274 299 V 97
w(Init.)21 b(Size)p 1507 299 V 51 w(Init.)g(V)l(alue)p
1772 299 V 385 301 1388 2 v 385 309 V 384 365 2 57 v
410 348 a Fr(PIXEL)p 523 348 14 2 v 15 w(MAP)p 604 348
V 15 w(I)p 641 348 V 16 w(TO)p 701 348 V 15 w(I)p 759
365 2 57 v 768 365 V 73 w FC(color)15 b(idx)p 1020 365
V 81 w(color)h(idx)p 1274 365 V 146 w(1)p 1507 365 V
226 w(0)p 1772 365 V 385 367 1388 2 v 384 423 2 57 v
410 406 a Fr(PIXEL)p 523 406 14 2 v 15 w(MAP)p 604 406
V 15 w(S)p 641 406 V 16 w(TO)p 701 406 V 15 w(S)p 759
423 2 57 v 768 423 V 58 w FC(stencil)g(idx)p 1020 423
V 51 w(stencil)h(idx)p 1274 423 V 131 w(1)p 1507 423
V 226 w(0)p 1772 423 V 385 425 1388 2 v 384 482 2 57
v 410 465 a Fr(PIXEL)p 523 465 14 2 v 15 w(MAP)p 604
465 V 15 w(I)p 641 465 V 16 w(TO)p 701 465 V 15 w(R)p
759 482 2 57 v 768 482 V 73 w FC(color)e(idx)p 1020 482
V 151 w(R)p 1274 482 V 216 w(1)p 1507 482 V 208 w(0.0)p
1772 482 V 385 483 1388 2 v 384 540 2 57 v 410 523 a
Fr(PIXEL)p 523 523 14 2 v 15 w(MAP)p 604 523 V 15 w(I)p
641 523 V 16 w(TO)p 701 523 V 15 w(G)p 759 540 2 57 v
768 540 V 73 w FC(color)g(idx)p 1020 540 V 150 w(G)p
1274 540 V 214 w(1)p 1507 540 V 208 w(0.0)p 1772 540
V 385 541 1388 2 v 384 598 2 57 v 410 581 a Fr(PIXEL)p
523 581 14 2 v 15 w(MAP)p 604 581 V 15 w(I)p 641 581
V 16 w(TO)p 701 581 V 15 w(B)p 759 598 2 57 v 768 598
V 73 w FC(color)g(idx)p 1020 598 V 152 w(B)p 1274 598
V 216 w(1)p 1507 598 V 208 w(0.0)p 1772 598 V 385 599
1388 2 v 384 656 2 57 v 410 639 a Fr(PIXEL)p 523 639
14 2 v 15 w(MAP)p 604 639 V 15 w(I)p 641 639 V 16 w(TO)p
701 639 V 15 w(A)p 759 656 2 57 v 768 656 V 73 w FC(color)g(idx)p
1020 656 V 151 w(A)p 1274 656 V 215 w(1)p 1507 656 V
208 w(0.0)p 1772 656 V 385 658 1388 2 v 384 714 2 57
v 410 697 a Fr(PIXEL)p 523 697 14 2 v 15 w(MAP)p 604
697 V 15 w(R)p 641 697 V 16 w(TO)p 701 697 V 15 w(R)p
759 714 2 57 v 768 714 V 143 w FC(R)p 1020 714 V 220
w(R)p 1274 714 V 216 w(1)p 1507 714 V 208 w(0.0)p 1772
714 V 385 716 1388 2 v 384 772 2 57 v 410 755 a Fr(PIXEL)p
523 755 14 2 v 15 w(MAP)p 604 755 V 15 w(G)p 641 755
V 16 w(TO)p 701 755 V 15 w(G)p 759 772 2 57 v 768 772
V 142 w FC(G)p 1020 772 V 217 w(G)p 1274 772 V 214 w(1)p
1507 772 V 208 w(0.0)p 1772 772 V 385 774 1388 2 v 384
830 2 57 v 410 813 a Fr(PIXEL)p 523 813 14 2 v 15 w(MAP)p
604 813 V 15 w(B)p 641 813 V 16 w(TO)p 701 813 V 15 w(B)p
759 830 2 57 v 768 830 V 143 w FC(B)p 1020 830 V 222
w(B)p 1274 830 V 216 w(1)p 1507 830 V 208 w(0.0)p 1772
830 V 385 832 1388 2 v 384 888 2 57 v 410 871 a Fr(PIXEL)p
523 871 14 2 v 15 w(MAP)p 604 871 V 15 w(A)p 641 871
V 16 w(TO)p 701 871 V 15 w(A)p 759 888 2 57 v 768 888
V 142 w FC(A)p 1020 888 V 220 w(A)p 1274 888 V 215 w(1)p
1507 888 V 208 w(0.0)p 1772 888 V 385 890 1388 2 v 737
967 a(T)l(able)h(3.3:)j Fz(PixelMap)d FC(parameters.)403
1188 y(The)k(other)f(pixel)j(transfer)d(mo)q(des)h(are)f(the)h(v)m
(arious)g(lo)q(okup)h(tables)f(used)h(b)o(y)332 1245
y Fz(Dra)o(wPixels)p FC(,)14 b Fz(ReadPixels)p FC(,)h(and)h
Fz(Cop)o(yPixels)p FC(.)j(These)c(are)g(set)g(with)446
1406 y Fw(void)37 b Fz(PixelMap)p FB(f)p Fz(ui)22 b(us)f(f)p
FB(g)p Fz(v)p FC(\()37 b Fw(enum)18 b Fv(map)p Fw(,)i(sizei)e
Fv(size)p Fw(,)h(T)g Fv(*val-)514 1463 y(ues)c FC(\))g
Fw(;)332 1624 y Fv(map)i FC(is)g(a)g(sym)o(b)q(olic)g(map)g(name,)f
(indicating)j(the)d(map)h(to)f(set,)g Fv(size)f FC(indicates)j(the)332
1681 y(size)e(of)f(the)g(map,)g(and)g Fv(values)g FC(is)h(a)f(p)q(oin)o
(ter)g(to)g(an)g(arra)o(y)f(of)h Fv(size)f FC(map)h(v)m(alues.)403
1754 y(The)g(en)o(tries)h(of)f(a)g(table)h(ma)o(y)f(b)q(e)h(sp)q
(eci\014ed)h(using)g(one)e(of)g(three)h(t)o(yp)q(es:)k(single-)332
1811 y(precision)13 b(\015oating-p)q(oin)o(t,)g(unsigned)g(short)e(in)o
(teger,)h(or)f(unsigned)i(in)o(teger,)g(dep)q(end-)332
1867 y(ing)k(on)f(whic)o(h)h(of)f(the)g(three)g(v)o(ersions)g(of)g
Fz(PixelMap)g FC(is)h(called.)24 b(A)17 b(table)f(en)o(try)g(is)332
1924 y(con)o(v)o(erted)i(to)g(the)h(appropriate)f(t)o(yp)q(e)g(when)h
(it)g(is)g(sp)q(eci\014ed.)32 b(An)18 b(en)o(try)g(giving)i(a)332
1980 y(color)15 b(comp)q(onen)o(t)f(v)m(alue)i(is)f(con)o(v)o(erted)f
(according)h(to)f(T)l(able)h(2.6.)k(An)14 b(en)o(try)h(giving)332
2037 y(a)g(color)g(index)h(v)m(alue)g(is)f(con)o(v)o(erted)g(from)f(an)
h(unsigned)h(short)f(in)o(teger)g(or)f(unsigned)332 2093
y(in)o(teger)j(to)e(\015oating-p)q(oin)o(t.)24 b(An)16
b(en)o(try)g(giving)h(a)f(stencil)i(index)f(is)g(con)o(v)o(erted)f
(from)332 2149 y(single-precision)f(\015oating-p)q(oin)o(t)e(to)e(an)h
(in)o(teger)g(b)o(y)g(rounding)h(to)f(nearest.)18 b(The)12
b(v)m(ar-)332 2206 y(ious)18 b(tables)g(and)f(their)h(initial)h(sizes)f
(and)g(en)o(tries)g(are)f(summarized)h(in)g(T)l(able)g(3.3.)332
2262 y(A)d(table)h(that)e(tak)o(es)h(an)g(index)h(as)f(an)g(address)g
(m)o(ust)f(ha)o(v)o(e)h Fy(siz)r(e)e FC(=)g(2)1558 2246
y Fu(n)1596 2262 y FC(or)i(the)g(error)332 2319 y Fr(INVALID)p
489 2319 14 2 v 14 w(VALUE)h FC(results.)23 b(The)17
b(maxim)o(um)f(allo)o(w)o(able)h Fv(size)e FC(of)h(eac)o(h)g(table)h
(is)g(imple-)332 2375 y(men)o(tation)h(dep)q(enden)o(t,)i(but)f(m)o
(ust)f(b)q(e)h(at)e(least)i(32)e(\(a)h(single)i(maxim)o(um)e(applies)
332 2432 y(to)c(all)i(tables\).)j(The)c(error)f Fr(INVALID)p
977 2432 V 15 w(VALUE)f FC(is)i(generated)g(if)g(a)g
Fv(size)e FC(larger)i(than)f(the)332 2488 y(implemen)o(ted)j(maxim)o
(um,)e(or)f(less)i(than)f(one,)g(is)h(giv)o(en)g(to)e
Fz(PixelMap)p FC(.)p eop
%%Page: 75 84
75 83 bop 120 137 a Fx(3.6.)34 b(PIXEL)16 b(RECT)l(ANGLES)873
b FC(75)120 286 y Fl(3.6.3)56 b(Rasterization)17 b(of)i(Pixel)e
(Rectangles)120 375 y FC(The)j(pro)q(cess)f(of)g(dra)o(wing)g(pixels)i
(enco)q(ded)f(in)g(host)f(memory)f(is)i(diagrammed)f(in)120
431 y(Figure)14 b(3.7.)k(W)l(e)13 b(describ)q(e)i(the)f(stages)e(of)h
(this)h(pro)q(cess)f(in)h(the)f(order)g(in)i(whic)o(h)f(they)120
488 y(o)q(ccur.)191 546 y(Pixels)i(are)f(dra)o(wn)g(using)234
645 y Fw(void)29 b Fz(Dra)o(wPixels)p FC(\()g Fw(sizei)14
b Fv(width)p Fw(,)h(sizei)f Fv(height)p Fw(,)h(enum)f
Fv(format)p Fw(,)302 702 y(enum)h Fv(typ)n(e)p Fw(,)g(void)f
Fv(*data)j FC(\))d Fw(;)120 801 y Fv(format)j FC(is)f(a)g(sym)o(b)q
(olic)h(constan)o(t)e(indicating)j(what)d(the)h(v)m(alues)h(in)g
(memory)e(repre-)120 857 y(sen)o(t.)28 b Fv(width)18
b FC(and)g Fv(height)g FC(are)f(the)h(width)h(and)f(heigh)o(t,)g(resp)q
(ectiv)o(ely)l(,)i(of)d(the)h(pixel)120 914 y(rectangle)h(to)f(b)q(e)h
(dra)o(wn.)30 b Fv(data)19 b FC(is)g(a)f(p)q(oin)o(ter)h(to)f(the)h
(data)f(to)g(b)q(e)h(dra)o(wn.)29 b(These)120 970 y(data)20
b(are)g(represen)o(ted)g(with)g(one)h(of)e(sev)o(en)i(GL)f(data)f(t)o
(yp)q(es,)i(sp)q(eci\014ed)h(b)o(y)e Fv(typ)n(e)p FC(.)120
1027 y(The)f(corresp)q(ondence)g(b)q(et)o(w)o(een)f(the)g(eigh)o(t)g
Fv(typ)n(e)g FC(tok)o(en)f(v)m(alues)i(and)f(the)g(GL)g(data)120
1083 y(t)o(yp)q(es)f(they)g(indicate)h(is)f(giv)o(en)g(in)h(T)l(able)f
(3.4.)23 b(If)17 b(the)g(GL)f(is)h(in)h(color)f(index)g(mo)q(de)120
1140 y(and)j Fv(format)h FC(is)f(not)g(one)g(of)f Fr(COLOR)p
758 1140 14 2 v 15 w(INDEX)p FC(,)f Fr(STENCIL)p 1068
1140 V 15 w(INDEX)p FC(,)g(or)h Fr(DEPTH)p 1394 1140
V 15 w(COMPONENT)p FC(,)120 1196 y(then)c(the)f(error)f
Fr(INVALID)p 567 1196 V 14 w(OPERATION)f FC(o)q(ccurs.)20
b(If)14 b Fv(typ)n(e)g FC(is)g Fr(BITMAP)f FC(and)h Fv(format)h
FC(is)f(not)120 1253 y Fr(COLOR)p 233 1253 V 15 w(INDEX)g
FC(or)h Fr(STENCIL)p 582 1253 V 14 w(INDEX)f FC(then)i(the)f(error)g
Fr(INVALID)p 1168 1253 V 14 w(ENUM)f FC(o)q(ccurs.)120
1381 y Fz(Unpac)o(king)120 1469 y FC(Data)f(are)g(tak)o(en)g(from)g
(host)g(memory)g(as)g(a)g(sequence)i(of)e(signed)h(or)f(unsigned)i(b)o
(ytes)120 1526 y(\(GL)d(data)e(t)o(yp)q(es)i Fw(byte)f
FC(and)g Fw(ubyte)p FC(\),)g(signed)h(or)f(unsigned)i(short)e(in)o
(tegers)g(\(GL)g(data)120 1582 y(t)o(yp)q(es)17 b Fw(short)f
FC(and)h Fw(ushort)p FC(\),)f(signed)h(or)g(unsigned)h(in)o(tegers)f
(\(GL)f(data)g(t)o(yp)q(es)h Fw(int)120 1639 y FC(and)g
Fw(uint)p FC(\),)e(or)h(\015oating)h(p)q(oin)o(t)g(v)m(alues)g(\(GL)f
(data)g(t)o(yp)q(e)h Fw(float)p FC(\).)22 b(These)17
b(elemen)o(ts)120 1695 y(are)h(group)q(ed)h(in)o(to)f(sets)g(of)g(one,)
h(t)o(w)o(o,)e(three,)i(or)f(four)g(v)m(alues,)i(dep)q(ending)g(on)f
(the)120 1751 y Fv(format)p FC(,)13 b(to)f(form)f(groups.)18
b(T)l(able)13 b(3.5)e(summarizes)h(the)g(format)f(of)g(groups)h
(obtained)120 1808 y(from)18 b(memory;)h(it)g(also)g(indicates)h(those)
e(formats)f(that)h(yield)i(indices)g(and)f(those)120
1864 y(that)c(yield)i(comp)q(onen)o(ts.)191 1922 y(By)12
b(default)h(the)g(v)m(alues)g(of)f(eac)o(h)g(GL)g(data)g(t)o(yp)q(e)g
(are)g(in)o(terpreted)h(as)f(they)g(w)o(ould)120 1979
y(b)q(e)i(sp)q(eci\014ed)i(in)e(the)f(language)h(of)f(the)g(clien)o
(t's)h(GL)g(binding.)21 b(If)13 b Fr(UNPACK)p 1391 1979
V 15 w(SWAP)p 1494 1979 V 15 w(BYTES)120 2035 y FC(is)18
b(enabled,)g(ho)o(w)o(ev)o(er,)f(then)g(the)g(v)m(alues)h(are)f(in)o
(terpreted)h(with)f(the)g(bit)g(orderings)120 2092 y(mo)q(di\014ed)e
(as)d(p)q(er)i(T)l(able)g(3.6.)k(The)13 b(mo)q(di\014ed)i(bit)e
(orderings)g(are)g(de\014ned)i(only)e(if)h(the)120 2148
y(GL)h(data)e(t)o(yp)q(e)i Fw(ubyte)f FC(has)g(eigh)o(t)g(bits,)h(and)f
(then)h(for)f(eac)o(h)g(sp)q(eci\014c)j(GL)d(data)g(t)o(yp)q(e)120
2204 y(only)i(if)g(that)e(t)o(yp)q(e)i(is)f(represen)o(ted)h(with)f(8,)
g(16,)f(or)h(32)f(bits.)191 2262 y(The)e(groups)g(in)g(memory)g(are)f
(treated)h(as)f(b)q(eing)i(arranged)f(in)g(a)g(rectangle.)19
b(This)120 2319 y(rectangle)14 b(consists)f(of)g(a)g(series)g(of)g
Fv(r)n(ows)p FC(,)g(with)h(the)f(\014rst)g(elemen)o(t)g(of)g(the)g
(\014rst)g(group)120 2375 y(of)19 b(the)h(\014rst)f(ro)o(w)g(p)q(oin)o
(ted)h(to)f(b)o(y)g(the)h(p)q(oin)o(ter)g(passed)f(to)g
Fz(Dra)o(wPixels)p FC(.)32 b(If)20 b(the)120 2432 y(v)m(alue)i(of)e
Fr(UNPACK)p 435 2432 V 15 w(ROW)p 516 2432 V 15 w(LENGTH)f
FC(is)i(not)f(p)q(ositiv)o(e,)j(then)e(the)g(n)o(um)o(b)q(er)g(of)f
(groups)g(in)120 2488 y(a)f(ro)o(w)f(is)h Fv(width)p
FC(;)i(otherwise)e(the)g(n)o(um)o(b)q(er)g(of)f(groups)h(is)g
Fr(UNPACK)p 1288 2488 V 15 w(ROW)p 1369 2488 V 15 w(LENGTH)p
FC(.)e(If)i Fy(p)p eop
%%Page: 76 85
76 84 bop 332 137 a FC(76)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 350 533 1459 2 v 350 2146 2 1614
v 404 607 a
21313290 19608225 4144250 855162 46507704 39995310 startTexFig
404 607 a
%%BeginDocument: pics/pixwrite.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/pmask34 {
<aaaa0000aaaa0000aaaa0000aaaa0000
aaaa0000aaaa0000aaaa0000aaaa0000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 66 /patchar34 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar34 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask34 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
matrix currentmatrix
[486 0 0 -207 117 324] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
96 16.08 336 {
96 exch M
(BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)
show
} for
grestore
gsave
matrix currentmatrix
[486 0 0 -207 117 567] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
336 16.08 576 {
96 exch M
(BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)
show
} for
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
522 513 M
522 112.5 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
198 513 M
198 108 L
stroke
grestore
gsave
matrix currentmatrix
[432 0 0 -45 144 558] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 513] concat
newpath
0 0 M 0 31.5 L 432 31.5 L 432 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 510 M 141 547.5 L 579 547.5 L 579 510 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 513] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
191.493 19.9706 M (unpack) 49.014 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 486] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 432] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 429 M 141 480 L 255 480 L 255 429 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 432] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
28.716 33.4706 M (convert) 50.568 S
31.054 19.4706 M (to [0,1]) 45.892 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 414] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 360] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 357 M 141 408 L 255 408 L 255 357 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 360] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
28.716 33.4706 M (convert) 50.568 S
23.669 19.4706 M (L to RGB) 60.662 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 288] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 234] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 231 M 141 282 L 255 282 L 255 231 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 234] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
36.486 33.4706 M (scale) 35.028 S
25.601 19.4706 M (and bias) 56.798 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 198] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 135 144] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
132 141 M 132 192 L 264 192 L 264 141 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 135 144] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
11.284 33.4706 M (RGBA to RGBA ) 107.324 S
40.054 19.4706 M (lookup) 45.892 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 108] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 135 54] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
132 51 M 132 102 L 264 102 L 264 51 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 135 54] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
42.77 33.4706 M (clamp) 40.46 S
40.054 19.4706 M (to [0,1]) 45.892 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 504 M
198 486 L
202.5 504 L
198 501 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 504 M
198 486 L
202.5 504 L
198 501 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 432 M
198 414 L
202.5 432 L
198 429 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 432 M
198 414 L
202.5 432 L
198 429 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 306 M
198 288 L
202.5 306 L
198 303 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 306 M
198 288 L
202.5 306 L
198 303 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 216 M
198 198 L
202.5 216 L
198 213 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 216 M
198 198 L
202.5 216 L
198 213 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 126 M
198 108 L
202.5 126 L
198 123 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 126 M
198 108 L
202.5 126 L
198 123 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
355.5 576 M
360 558 L
364.5 576 L
360 573 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
355.5 576 M
360 558 L
364.5 576 L
360 573 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 215 492.531] concat
newpath
0 0 M 0 14 L 59.554 14 L 59.554 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
212.5 490.031 M 212.5 509.031 L 277.054 509.031 L 277.054 490.031 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 215 492.531] concat
1 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 2.47059 M (RGBA, L) 57.554 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 288] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 468 234] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
465 231 M 465 282 L 579 282 L 579 231 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 468 234] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
39.223 33.4706 M (shift) 29.554 S
20.554 19.4706 M (and offset) 66.892 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 306 M
522 288 L
526.5 306 L
522 303 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 306 M
522 288 L
526.5 306 L
522 303 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 198] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 459 144] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
456 141 M 456 192 L 588 192 L 588 141 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 459 144] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
15.932 33.4706 M (index to index ) 98.028 S
40.054 19.4706 M (look) 28.784 S
68.838 19.4706 M (up) 17.108 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 216 M
522 198 L
526.5 216 L
522 213 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 216 M
522 198 L
526.5 216 L
522 213 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 306 198] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 297 144] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
294 141 M 294 192 L 426 192 L 426 141 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 297 144] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
13.608 33.4706 M (index to RGBA ) 102.676 S
40.054 19.4706 M (looku) 37.338 S
77.392 19.4706 M (p) 8.554 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
355.5 216 M
360 198 L
364.5 216 L
360 213 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
355.5 216 M
360 198 L
364.5 216 L
360 213 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 108] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 459 58.5] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
456 55.5 M 456 106.5 L 588 106.5 L 588 55.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 459 58.5] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
36.547 33.4706 M (mask to) 52.906 S
38.297 13.8706 M (\(2) 12.446 S
50.743 19.4706 M (n) 8.554 S
59.297 13.8706 M ( - 1\)) 28.406 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 153 M
360 135 L
198 135 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
522 225 M
360 225 L
360 198 L
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 126 M
522 108 L
526.5 126 L
522 123 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 126 M
522 108 L
526.5 126 L
522 123 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
306 594 M
360 594 L
360 558 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
522 63 M
522 36 L
576 36 L
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
558 31.5 M
576 36 L
558 40.5 L
561 36 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
558 31.5 M
576 36 L
558 40.5 L
561 36 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
198 63 M
198 36 L
252 36 L
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
234 31.5 M
252 36 L
234 40.5 L
237 36 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
234 31.5 M
252 36 L
234 40.5 L
237 36 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 261 414] concat
newpath
0 0 M 0 54 L 198 54 L 198 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
258.5 411.5 M 258.5 471.913 L 461.5 471.913 L 461.5 411.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 261 414] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
41.976 39.913 M (Pixel Storage) 114.048 S
51.489 21.913 M (Operations) 95.022 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 288 256.5] concat
newpath
0 0 M 0 49.5 L 144 49.5 L 144 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
285.5 254 M 285.5 309.913 L 434.5 309.913 L 434.5 254 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 288 256.5] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
12.474 35.413 M (Pixel Transfer) 119.052 S
24.489 17.413 M (Operations) 95.022 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 63 576] concat
newpath
0 0 M 0 31.5 L 234 31.5 L 234 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
60.5 573.5 M 60.5 610 L 299.5 610 L 299.5 573.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 63 576] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
23.256 19.9706 M (byte, short, int, o) 112.798 S
136.054 19.9706 M (r float pixel) 74.69 S
4.202 5.97059 M (data stream \(index ) 127.596 S
131.798 5.97059 M (or component\)) 98 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 261 13.5] concat
newpath
0 0 M 0 36 L 126 36 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
258.5 11 M 258.5 52 L 389.5 52 L 389.5 11 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 261 13.5] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
24.493 24.4706 M (RGBA pixel) 77.014 S
35.777 10.4706 M (data out) 54.446 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 580.5 13.5] concat
newpath
0 0 M 0 36 L 126 36 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
578 11 M 578 52 L 709 52 L 709 11 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 580.5 13.5] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
7.756 24.4706 M (color index pixel) 110.488 S
35.777 10.4706 M (data out) 54.446 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 531 477.531] concat
newpath
0 0 M 0 28 L 38.568 28 L 38.568 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
529 475.531 M 529 508.002 L 571.568 508.002 L 571.568 475.531 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 531 477.531] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 16.4706 M (color) 34.23 S
0 2.47059 M (index) 36.568 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1968 a Fm(Figure)17 b(3.7.)26 b(Op)q(eration)17
b(of)f Fk(Dra)o(wPixels)p Fm(.)25 b(Output)17 b(is)g(R)o(GBA)f(pixels)g
(if)g(the)i(GL)389 2017 y(is)h(in)f(R)o(GBA)f(mo)q(de,)h(color)h(index)
f(pixels)g(otherwise.)33 b(\(Depth)19 b(and)f(stencil)h(pixel)389
2067 y(paths)e(are)f(not)g(illustrated.\))25 b(R)o(GBA-to-R)o(GBA)15
b(and)h(index-to-index)g(lo)q(okup)f(are)389 2117 y(optional.)p
1807 2146 2 1614 v 350 2148 1459 2 v eop
%%Page: 77 86
77 85 bop 120 137 a Fx(3.6.)34 b(PIXEL)16 b(RECT)l(ANGLES)873
b FC(77)p 235 376 1265 2 v 234 432 2 57 v 260 415 a Fv(typ)n(e)15
b FC(P)o(arameter)f(T)l(ok)o(en)h(Name)p 850 432 V 50
w(Corresp)q(onding)h(GL)f(Data)f(T)o(yp)q(e)p 1499 432
V 235 434 1265 2 v 235 442 V 234 498 2 57 v 404 482 a
Fr(UNSIGNED)p 583 482 14 2 v 14 w(BYTE)p 850 498 2 57
v 438 w FC(ub)o(yte)p 1499 498 V 235 500 1265 2 v 234
557 2 57 v 478 540 a Fr(BITMAP)p 850 557 V 510 w FC(ub)o(yte)p
1499 557 V 235 558 1265 2 v 234 615 2 57 v 499 598 a
Fr(BYTE)p 850 615 V 546 w FC(b)o(yte)p 1499 615 V 235
616 1265 2 v 234 673 2 57 v 394 656 a Fr(UNSIGNED)p 573
656 14 2 v 14 w(SHORT)p 850 673 2 57 v 418 w FC(ushort)p
1499 673 V 235 674 1265 2 v 234 731 2 57 v 489 714 a
Fr(SHORT)p 850 731 V 526 w FC(short)p 1499 731 V 235
733 1265 2 v 234 789 2 57 v 415 772 a Fr(UNSIGNED)p 594
772 14 2 v 14 w(INT)p 850 789 2 57 v 465 w FC(uin)o(t)p
1499 789 V 235 791 1265 2 v 234 847 2 57 v 510 830 a
Fr(INT)p 850 847 V 466 w FC(32-bit)i(in)o(teger)p 1499
847 V 235 849 1265 2 v 234 905 2 57 v 489 888 a Fr(FLOAT)p
850 905 V 532 w FC(\015oat)p 1499 905 V 235 907 1265
2 v 120 984 a(T)l(able)21 b(3.4:)28 b Fz(Dra)o(wPixels)19
b FC(and)h Fz(ReadPixels)h Fv(typ)n(e)f FC(parameter)f(v)m(alues)i(and)
f(the)120 1041 y(corresp)q(onding)d(GL)f(data)f(t)o(yp)q(es.)22
b(Refer)17 b(to)e(table)h(2.2)f(for)g(de\014nitions)j(of)d(GL)h(data)
120 1097 y(t)o(yp)q(es.)p 210 1457 1315 2 v 209 1513
2 57 v 258 1496 a(F)l(ormat)e(Name)p 580 1513 V 589 1513
V 81 w(Elemen)o(t)i(Meaning)f(and)h(Order)p 1207 1513
V 50 w(T)l(arget)e(Bu\013er)p 1524 1513 V 210 1515 1315
2 v 210 1523 V 209 1580 2 57 v 279 1563 a Fr(COLOR)p
392 1563 14 2 v 14 w(INDEX)p 580 1580 2 57 v 589 1580
V 268 w FC(Color)h(Index)p 1207 1580 V 297 w(Color)p
1524 1580 V 210 1582 1315 2 v 209 1638 2 57 v 257 1621
a Fr(STENCIL)p 414 1621 14 2 v 14 w(INDEX)p 580 1638
2 57 v 589 1638 V 233 w FC(Stencil)i(Index)p 1207 1638
V 273 w(Stencil)p 1524 1638 V 210 1640 1315 2 v 209 1696
2 57 v 235 1679 a Fr(DEPTH)p 348 1679 14 2 v 15 w(COMPONENT)p
580 1696 2 57 v 589 1696 V 156 w FC(Depth)f(Comp)q(onen)o(t)p
1207 1696 V 222 w(Depth)p 1524 1696 V 210 1698 1315 2
v 209 1754 2 57 v 363 1737 a Fr(RED)p 580 1754 V 589
1754 V 330 w FC(R)g(Comp)q(onen)o(t)p 1207 1754 V 274
w(Color)p 1524 1754 V 210 1756 1315 2 v 209 1812 2 57
v 341 1795 a Fr(GREEN)p 580 1812 V 589 1812 V 307 w FC(G)f(Comp)q(onen)
o(t)p 1207 1812 V 273 w(Color)p 1524 1812 V 210 1814
1315 2 v 209 1870 2 57 v 352 1853 a Fr(BLUE)p 580 1870
V 589 1870 V 320 w FC(B)g(Comp)q(onen)o(t)p 1207 1870
V 275 w(Color)p 1524 1870 V 210 1872 1315 2 v 209 1929
2 57 v 341 1912 a Fr(ALPHA)p 580 1929 V 589 1929 V 308
w FC(A)g(Comp)q(onen)o(t)p 1207 1929 V 274 w(Color)p
1524 1929 V 210 1930 1315 2 v 209 1987 2 57 v 363 1970
a Fr(RGB)p 580 1987 V 589 1987 V 260 w FC(R,)g(G,)f(B)i(Comp)q(onen)o
(ts)p 1207 1987 V 203 w(Color)p 1524 1987 V 210 1988
1315 2 v 209 2045 2 57 v 352 2028 a Fr(RGBA)p 580 2045
V 589 2045 V 218 w FC(R,)f(G,)f(B,)h(A)h(Comp)q(onen)o(ts)p
1207 2045 V 172 w(Color)p 1524 2045 V 210 2046 1315 2
v 209 2103 2 57 v 297 2086 a Fr(LUMINANCE)p 580 2103
V 589 2103 V 172 w FC(Luminance)h(Comp)q(onen)o(t)p 1207
2103 V 182 w(Color)p 1524 2103 V 210 2105 1315 2 v 209
2161 2 57 v 235 2144 a Fr(LUMINANCE)p 436 2144 14 2 v
14 w(ALPHA)p 580 2161 2 57 v 589 2161 V 77 w FC(Luminance,)f(A)f(comp)q
(onen)o(ts)p 1207 2161 V 149 w(Color)p 1524 2161 V 210
2163 1315 2 v 120 2240 a(T)l(able)d(3.5:)17 b Fz(Dra)o(wPixels)10
b FC(and)h Fz(ReadPixels)g FC(formats.)17 b(The)11 b(second)h(column)g
(giv)o(es)120 2296 y(a)j(description)i(of)e(and)g(the)g(n)o(um)o(b)q
(er)h(and)f(order)g(of)g(elemen)o(ts)h(in)g(a)f(group.)p
eop
%%Page: 78 87
78 86 bop 332 137 a FC(78)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 419 242 1321 2 v 418 299 2 57 v
444 282 a FC(Elemen)o(t)15 b(Size)p 725 299 V 52 w(Default)g(Bit)g
(Ordering)p 1192 299 V 51 w(Mo)q(di\014ed)i(Bit)e(Ordering)p
1739 299 V 419 301 1321 2 v 418 357 2 57 v 526 340 a(8)f(bit)p
725 357 V 133 w([7)p Fy(::)p FC(0])p 1192 357 V 368 w([7)p
Fy(::)p FC(0])p 1739 357 V 419 359 1321 2 v 418 415 2
57 v 514 398 a(16)h(bit)p 725 415 V 121 w([15)p Fy(::)p
FC(0])p 1192 415 V 345 w([7)p Fy(::)p FC(0][15)p Fy(::)p
FC(8)o(])p 1739 415 V 419 417 1321 2 v 418 473 2 57 v
514 456 a(32)g(bit)p 725 473 V 121 w([31)p Fy(::)p FC(0])p
1192 473 V 345 w([7)p Fy(::)p FC(0][15)p Fy(::)p FC(8)o(][2)o(3)p
Fy(::)o FC(16])o([31)o Fy(::)p FC(2)o(4])p 1739 473 V
419 475 1321 2 v 332 552 a(T)l(able)h(3.6:)j(Bit)d(ordering)f(mo)q
(di\014cation)h(of)f(elemen)o(ts)h(when)g Fr(UNPACK)p
1558 552 14 2 v 14 w(SWAP)p 1660 552 V 15 w(BYTES)e FC(is)332
609 y(enabled.)23 b(These)16 b(reorderings)g(are)f(de\014ned)j(only)e
(when)g(GL)g(data)f(t)o(yp)q(e)h Fw(ubyte)f FC(has)332
665 y(8)h(bits,)g(and)g(then)h(only)f(for)g(GL)g(data)f(t)o(yp)q(es)h
(with)g(8,)g(16,)f(or)h(32)f(bits.)23 b(Bit)16 b(0)g(is)g(the)332
721 y(least)f(signi\014can)o(t.)332 906 y(indicates)j(the)f(lo)q
(cation)h(in)f(memory)g(of)f(the)h(\014rst)f(elemen)o(t)i(of)e(the)h
(\014rst)f(ro)o(w,)g(then)332 962 y(the)f(\014rst)g(elemen)o(t)h(of)f
(the)g Fy(N)5 b FC(th)15 b(ro)o(w)f(is)i(indicated)h(b)o(y)1007
1060 y Fy(p)10 b FC(+)g Fy(N)5 b(k)582 b FC(\(3.8\))332
1157 y(where)16 b Fy(N)j FC(is)d(the)f(ro)o(w)f(n)o(um)o(b)q(er)i
(\(coun)o(ting)f(from)g(zero\))f(and)i(k)f(is)h(de\014ned)g(as)804
1288 y Fy(k)d FC(=)889 1216 y Fi(\()943 1259 y Fy(nl)227
b(s)13 b FB(\025)g Fy(a;)943 1316 y(a=s)8 b FB(d)p Fy(snl)q(=a)p
FB(e)42 b Fy(s)13 b(<)g(a)1733 1288 y FC(\(3.9\))332
1416 y(where)j Fy(n)g FC(is)g(the)f(n)o(um)o(b)q(er)h(of)f(elemen)o(ts)
h(in)h(a)e(group,)g Fy(l)h FC(is)g(the)f(n)o(um)o(b)q(er)h(of)f(groups)
h(in)332 1472 y(the)e(ro)o(w,)f Fy(a)h FC(is)h(the)f(v)m(alue)i(of)d
Fr(UNPACK)p 970 1472 V 15 w(ALIGNMENT)p FC(,)f(and)i
Fy(s)g FC(is)h(the)f(size,)h(in)g(units)g(of)e(GL)332
1528 y Fw(ubyte)p FC(s,)h(of)g(an)h(elemen)o(t.)21 b(If)15
b(the)g(n)o(um)o(b)q(er)g(of)f(bits)i(p)q(er)f(elemen)o(t)h(is)f(not)g
(1,)f(2,)g(4,)g(or)h(8)332 1585 y(times)h(the)f(n)o(um)o(b)q(er)g(of)g
(bits)h(in)g(a)f(GL)g Fw(ubyte)p FC(,)f(then)i Fy(k)d
FC(=)g Fy(nl)j FC(for)f(all)h(v)m(alues)g(of)f Fy(a)p
FC(.)403 1641 y(There)22 b(is)h(a)e(mec)o(hanism)i(for)f(selecting)h(a)
f(sub-rectangle)h(of)f(groups)f(from)h(a)332 1698 y(larger)16
b(con)o(taining)g(rectangle.)22 b(This)17 b(mec)o(hanism)f(relies)h(on)
f(three)g(in)o(teger)g(param-)332 1754 y(eters:)j Fr(UNPACK)p
593 1754 V 15 w(ROW)p 674 1754 V 15 w(LENGTH)p FC(,)12
b Fr(UNPACK)p 978 1754 V 14 w(SKIP)p 1080 1754 V 15 w(ROWS)p
FC(,)h(and)h Fr(UNPACK)p 1428 1754 V 14 w(SKIP)p 1530
1754 V 15 w(PIXELS)p FC(.)e(Before)332 1811 y(obtaining)h(the)f
(\014rst)g(group)g(from)f(memory)l(,)h(the)g(p)q(oin)o(ter)g(supplied)j
(to)c Fz(Dra)o(wPixels)332 1867 y FC(is)k(e\013ectiv)o(ely)h(adv)m
(anced)g(b)o(y)f(\()p Fr(UNPACK)p 1003 1867 V 14 w(SKIP)p
1105 1867 V 15 w(PIXELS)o FC(\))p Fy(n)9 b FC(+)h(\()p
Fr(UNPACK)p 1500 1867 V 14 w(SKIP)p 1602 1867 V 15 w(ROWS)o
FC(\))p Fy(k)15 b FC(ele-)332 1924 y(men)o(ts.)j(Then)12
b Fv(width)g FC(groups)e(are)h(obtained)h(from)e(con)o(tiguous)h
(elemen)o(ts)h(in)g(memory)332 1980 y(\(without)17 b(adv)m(ancing)i
(the)e(p)q(oin)o(ter\),)h(after)e(whic)o(h)j(the)e(p)q(oin)o(ter)h(is)g
(adv)m(anced)g(b)o(y)f Fy(k)332 2037 y FC(elemen)o(ts.)28
b Fv(height)18 b FC(sets)f(of)h Fv(width)g FC(groups)f(of)h(v)m(alues)g
(are)g(obtained)g(this)g(w)o(a)o(y)l(.)27 b(See)332 2093
y(Figure)16 b(3.8.)403 2149 y(Calling)f Fz(Dra)o(wPixels)e
FC(with)i(a)e Fv(typ)n(e)h FC(of)g Fr(BITMAP)f FC(is)h(a)g(sp)q(ecial)i
(case)e(in)g(whic)o(h)h(the)332 2206 y(data)e(are)h(a)f(series)i(of)e
(GL)h Fw(ubyte)f FC(v)m(alues.)20 b(Eac)o(h)14 b Fw(ubyte)f
FC(v)m(alue)i(sp)q(eci\014es)h(8)d(1-bit)h(ele-)332 2262
y(men)o(ts)g(with)g(its)g(8)g(least-signi\014can)o(t)i(bits.)k(The)14
b(8)g(single-bit)i(elemen)o(ts)e(are)g(ordered)332 2319
y(from)h(most)h(signi\014can)o(t)h(to)e(least)i(signi\014can)o(t)g(if)f
(the)g(v)m(alue)i(of)d Fr(UNPACK)p 1578 2319 V 15 w(LSB)p
1659 2319 V 15 w(FIRST)g FC(is)332 2375 y Fr(FALSE)p
FC(;)i(otherwise,)h(the)g(ordering)h(is)f(from)f(least)h(signi\014can)o
(t)h(to)f(most)f(signi\014can)o(t.)332 2432 y(The)h(v)m(alues)g(of)f
(bits)h(other)f(than)g(the)h(8)f(least)g(signi\014can)o(t)h(in)h(eac)o
(h)e Fw(ubyte)g FC(are)g(not)332 2488 y(signi\014can)o(t.)p
eop
%%Page: 79 88
79 87 bop 120 137 a Fx(3.6.)34 b(PIXEL)16 b(RECT)l(ANGLES)873
b FC(79)p 139 242 1459 2 v 139 1104 2 862 v 418 317 a
14208860 8525316 6315048 27365212 35785277 45257850 startTexFig
418 317 a
%%BeginDocument: pics/subimage.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Courier-Bold-SHOWISO exch definefont pop
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-SHOWISO exch definefont pop
/pmask34 {
<aaaa0000aaaa0000aaaa0000aaaa0000
aaaa0000aaaa0000aaaa0000aaaa0000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 66 /patchar34 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar34 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask34 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
matrix currentmatrix
[448 0 0 -272 96 688] concat
B
setmatrix
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[160 0 0 -112 224 624] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 640 {
192 exch M
(BBBBBBBBBBBBB)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
224 415 translate
-90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
224 513 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
newpath
224 434 M
224 494 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 231 451] concat
newpath
0 0 M 0 21 L 99.2 21 L 99.2 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
229 449 M 229 474 L 332.2 474 L 332.2 449 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 231 451] concat
/Courier-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 4.5 M (SKIP_ROWS) 97.2 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 99 515] concat
newpath
0 0 M 0 21 L 120.8 21 L 120.8 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
97 513 M 97 538 L 221.8 538 L 221.8 513 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 99 515] concat
/Courier-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 4.5 M (SKIP_PIXELS) 118.8 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
95 512 translate
180 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
225 512 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
newpath
114 512 M
206 512 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
95 668 translate
180 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
545 668 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
newpath
114 668 M
526 668 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 275 639] concat
newpath
0 0 M 0 21 L 110 21 L 110 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
273 637 M 273 662 L 387 662 L 387 637 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 275 639] concat
/Courier-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 4.5 M (ROW_LENGTH) 108 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 267 557] concat
newpath
0 0 M 0 24 L 80.03 24 L 80.03 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
265 555 M 265 583 L 349.03 583 L 349.03 555 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 267 557] concat
/Helvetica-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.27273 M (subimage) 78.03 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 975 a Fm(Figure)20 b(3.8.)36 b(Selecting)20 b(a)g(subimage)f(from)
f(an)i(image.)35 b(The)20 b(indicated)g(param-)178 1025
y(eter)k(names)f(are)h(pre\014xed)g(b)o(y)f Fr(UNPACK)p
855 1025 14 2 v 38 w Fm(for)g Fk(Dra)o(wPixels)e Fm(and)j(b)o(y)f
Fr(PACK)p 1473 1025 V 38 w Fm(for)178 1075 y Fk(ReadPixels)p
Fm(.)p 1595 1104 2 862 v 139 1106 1459 2 v 191 1301 a
FC(The)14 b(\014rst)f(elemen)o(t)i(of)e(the)h(\014rst)f(ro)o(w)g(is)h
(the)g(\014rst)f(bit)h(\(as)f(de\014ned)i(ab)q(o)o(v)o(e\))e(of)h(the)
120 1357 y Fw(ubyte)i FC(p)q(oin)o(ted)g(to)g(b)o(y)f(the)h(p)q(oin)o
(ter)h(passed)f(to)f Fz(Dra)o(wPixels)p FC(.)21 b(The)16
b(\014rst)g(elemen)o(t)120 1414 y(of)i(the)g(second)g(ro)o(w)f(is)h
(the)g(\014rst)g(bit)g(\(again)f(as)h(de\014ned)h(ab)q(o)o(v)o(e\))e
(of)g(the)h Fw(ubyte)f FC(at)120 1470 y(lo)q(cation)f
Fy(p)10 b FC(+)h Fy(k)q FC(,)k(where)g Fy(k)h FC(is)g(computed)g(as)756
1616 y Fy(k)e FC(=)f Fy(a)874 1556 y Fi(\030)905 1585
y Fy(nl)p 903 1605 47 2 v 903 1647 a FC(8)p Fy(a)955
1556 y Fi(\031)1499 1616 y FC(\(3.10\))191 1768 y(There)23
b(is)g(a)f(mec)o(hanism)i(for)e(selecting)i(a)e(sub-rectangle)i(of)e
(elemen)o(ts)h(from)120 1825 y(a)h Fr(BITMAP)e FC(image)i(as)f(w)o
(ell.)47 b(Before)24 b(obtaining)g(the)g(\014rst)f(elemen)o(t)i(from)e
(mem-)120 1881 y(ory)l(,)36 b(the)c(p)q(oin)o(ter)h(supplied)h(to)e
Fz(Dra)o(wPixels)f FC(is)i(e\013ectiv)o(ely)g(adv)m(anced)g(b)o(y)120
1937 y(\()p Fr(UNPACK)p 273 1937 14 2 v 15 w(SKIP)p 376
1937 V 14 w(ROWS)p FC(\))p Fy(k)21 b Fw(ubyte)p FC(s.)35
b(Then)21 b Fr(UNPACK)p 983 1937 V 15 w(SKIP)p 1086 1937
V 15 w(PIXELS)e FC(1-bit)i(elemen)o(ts)g(are)120 1994
y(ignored,)16 b(and)f(the)g(subsequen)o(t)g Fv(width)h
FC(1-bit)f(elemen)o(ts)h(are)e(obtained,)i(without)f(ad-)120
2050 y(v)m(ancing)g(the)e Fw(ubyte)g FC(p)q(oin)o(ter,)h(after)e(whic)o
(h)i(the)g(p)q(oin)o(ter)f(is)h(adv)m(anced)g(b)o(y)g
Fy(k)g Fw(ubyte)p FC(s.)120 2107 y Fv(height)i FC(sets)f(of)g
Fv(width)g FC(elemen)o(ts)h(are)f(obtained)h(this)g(w)o(a)o(y)l(.)120
2274 y Fz(Con)o(v)o(ersion)g(to)i(\015oating-p)q(oin)o(t)120
2375 y FC(This)k(step)f(applies)h(only)g(to)e(groups)g(of)h(comp)q
(onen)o(ts.)37 b(It)21 b(is)g(not)g(p)q(erformed)g(on)120
2432 y(indices.)45 b(Eac)o(h)22 b(elemen)o(t)h(in)h(a)e(group)g(is)i
(con)o(v)o(erted)e(to)g(a)g(\015oating-p)q(oin)o(t)i(v)m(alue)120
2488 y(according)16 b(to)f(the)g(appropriate)g(form)o(ula)g(in)h(T)l
(able)g(2.6)e(\(section)i(2.13\).)p eop
%%Page: 80 89
80 88 bop 332 137 a FC(80)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y Fz(Con)o(v)o(ersion)16 b(to)i(R)o(GB)332
383 y FC(This)g(step)g(is)h(applied)g(only)g(if)f(the)g
Fv(format)g FC(is)h Fr(LUMINANCE)d FC(or)h Fr(LUMINANCE)p
1646 383 14 2 v 14 w(ALPHA)p FC(.)f(If)332 439 y(the)i
Fv(format)g FC(is)g Fr(LUMINANCE)p FC(,)e(then)i(eac)o(h)f(group)h(of)f
(one)h(elemen)o(t)g(is)g(con)o(v)o(erted)g(to)f(a)332
495 y(group)12 b(of)g(R,)h(G,)e(and)i(B)g(\(three\))f(elemen)o(ts)h(b)o
(y)f(cop)o(ying)h(the)f(original)i(single)g(elemen)o(t)332
552 y(in)o(to)h(eac)o(h)h(of)f(the)h(three)f(new)h(elemen)o(ts.)21
b(If)16 b(the)f Fv(format)h FC(is)g Fr(LUMINANCE)p 1590
552 V 14 w(ALPHA)p FC(,)e(then)332 608 y(eac)o(h)g(group)f(of)h(t)o(w)o
(o)e(elemen)o(ts)i(is)h(con)o(v)o(erted)e(to)g(a)h(group)f(of)g(R,)h
(G,)f(B,)h(and)g(A)f(\(four\))332 665 y(elemen)o(ts)21
b(b)o(y)e(cop)o(ying)h(the)g(\014rst)g(original)h(elemen)o(t)f(in)o(to)
g(eac)o(h)g(of)f(the)h(\014rst)f(three)332 721 y(new)i(elemen)o(ts)h
(and)f(cop)o(ying)g(the)g(second)g(original)h(elemen)o(t)g(to)e(the)h
(A)g(\(fourth\))332 778 y(new)16 b(elemen)o(t.)332 928
y Fz(Final)j(Expansion)f(to)g(R)o(GBA)332 1024 y FC(This)g(step)f(is)g
(p)q(erformed)g(only)h(for)e(non-depth)i(comp)q(onen)o(t)f(groups.)25
b(Eac)o(h)17 b(group)332 1081 y(is)e(con)o(v)o(erted)f(to)f(a)h(group)g
(of)g(4)g(elemen)o(ts)g(as)g(follo)o(ws:)20 b(if)14 b(a)g(group)g(do)q
(es)g(not)g(con)o(tain)332 1137 y(an)f(A)g(elemen)o(t,)h(then)f(A)g(is)
h(added)f(and)g(set)g(to)g(1.0.)18 b(If)13 b(an)o(y)g(of)f(R,)h(G,)f
(or)h(B)g(is)h(missing)332 1194 y(from)h(the)g(group,)f(eac)o(h)i
(missing)g(elemen)o(t)g(is)f(added)h(and)g(assigned)f(a)g(v)m(alue)i
(of)d(0.0.)332 1344 y Fz(Pixel)k(T)l(ransfer)e(Op)q(erations)332
1440 y FC(This)h(step)f(is)g(actually)h(a)e(sequence)i(of)f(steps.)22
b(Because)17 b(the)f(pixel)h(transfer)e(op)q(era-)332
1497 y(tions)d(are)f(p)q(erformed)g(equiv)m(alen)o(tly)j(during)e(the)g
(dra)o(wing,)f(cop)o(ying,)h(and)g(reading)g(of)332 1553
y(pixels,)h(and)e(during)h(the)f(sp)q(eci\014cation)i(of)e(texture)g
(images)g(\(either)g(from)f(memory)h(or)332 1610 y(from)k(the)h
(framebu\013er\),)e(they)i(are)f(describ)q(ed)j(separately)e(in)g
(section)g(3.6.4.)k(After)332 1666 y(the)c(pro)q(cessing)h(describ)q
(ed)g(in)g(that)e(section)h(is)g(completed,)h(groups)e(are)h(pro)q
(cessed)332 1723 y(as)f(describ)q(ed)i(in)f(the)f(follo)o(wing)h
(sections.)332 1873 y Fz(Final)j(Con)o(v)o(ersion)332
1969 y FC(F)l(or)c(a)g(color)h(index,)g(\014nal)h(con)o(v)o(ersion)e
(consists)h(of)f(masking)h(the)f(bits)h(of)g(the)f(index)332
2026 y(to)e(the)h(left)g(of)f(the)h(binary)g(p)q(oin)o(t)h(b)o(y)e(2)
1011 2009 y Fu(n)1042 2026 y FB(\000)7 b FC(1,)13 b(where)h
Fy(n)g FC(is)h(the)e(n)o(um)o(b)q(er)i(of)e(bits)h(in)h(an)332
2082 y(index)f(bu\013er.)19 b(F)l(or)12 b(R)o(GBA)h(comp)q(onen)o(ts,)g
(eac)o(h)g(elemen)o(t)g(is)g(clamp)q(ed)h(to)e([0)p Fy(;)c
FC(1].)17 b(The)332 2139 y(resulting)g(v)m(alues)f(are)f(con)o(v)o
(erted)g(to)g(\014xed-p)q(oin)o(t)i(according)e(to)g(the)h(rules)g(giv)
o(en)g(in)332 2195 y(section)g(2.13.9)d(\(Final)j(Color)f(Pro)q
(cessing\).)403 2257 y(F)l(or)j(a)g(depth)h(comp)q(onen)o(t,)g(an)g
(elemen)o(t)g(is)g(\014rst)f(clamp)q(ed)i(to)e([0)p Fy(;)8
b FC(1])16 b(and)j(then)332 2313 y(con)o(v)o(erted)e(to)g(\014xed-p)q
(oin)o(t)h(as)f(if)h(it)f(w)o(ere)g(a)g(windo)o(w)g Fy(z)i
FC(v)m(alue)g(\(see)e(section)h(2.10.1,)332 2370 y(Con)o(trolling)e
(the)f(Viewp)q(ort\).)403 2432 y(Stencil)k(indices)g(are)e(mask)o(ed)g
(b)o(y)g(2)1035 2415 y Fu(n)1070 2432 y FB(\000)12 b
FC(1,)17 b(where)h Fy(n)f FC(is)h(the)f(n)o(um)o(b)q(er)h(of)f(bits)h
(in)332 2488 y(the)d(stencil)i(bu\013er.)p eop
%%Page: 81 90
81 89 bop 120 137 a Fx(3.6.)34 b(PIXEL)16 b(RECT)l(ANGLES)873
b FC(81)120 286 y Fz(Con)o(v)o(ersion)16 b(to)i(F)l(ragmen)o(ts)120
372 y FC(The)e(con)o(v)o(ersion)f(of)g(a)g(group)g(to)f(fragmen)o(ts)g
(is)i(con)o(trolled)g(with)234 463 y Fw(void)30 b Fz(PixelZo)q(om)p
FC(\()g Fw(float)15 b Fy(z)809 470 y Fu(x)831 463 y Fw(,)g(float)f
Fy(z)1025 470 y Fu(y)1061 463 y FC(\))h Fw(;)120 553
y FC(Let)j(\()p Fy(x)248 560 y Fu(r)q(p)285 553 y Fy(;)8
b(y)328 560 y Fu(r)q(p)364 553 y FC(\))18 b(b)q(e)g(the)g(curren)o(t)g
(raster)f(p)q(osition)i(\(section)f(2.12\).)26 b(\(If)18
b(the)g(curren)o(t)120 610 y(raster)k(p)q(osition)h(is)g(in)o(v)m
(alid,)j(then)d Fz(Dra)o(wPixels)e FC(is)i(ignored.\))41
b(If)23 b(a)f(particular)120 666 y(group)d(\(index)g(or)f(comp)q(onen)o
(ts\))g(is)h(the)g Fy(n)p FC(th)f(in)i(a)e(ro)o(w)f(and)i(b)q(elongs)h
(to)d(the)i Fy(m)p FC(th)120 723 y(ro)o(w,)g(consider)g(the)g(region)g
(in)h(windo)o(w)f(co)q(ordinates)g(b)q(ounded)h(b)o(y)f(the)f
(rectangle)120 779 y(with)e(corners)186 877 y(\()p Fy(x)230
884 y Fu(r)q(p)276 877 y FC(+)11 b Fy(z)343 884 y Fu(x)365
877 y Fy(n;)d(y)435 884 y Fu(r)q(p)482 877 y FC(+)i Fy(z)548
884 y Fu(y)569 877 y Fy(m)p FC(\))90 b(and)h(\()p Fy(x)925
884 y Fu(r)q(p)972 877 y FC(+)10 b Fy(z)1038 884 y Fu(x)1060
877 y FC(\()p Fy(n)h FC(+)f(1\))p Fy(;)e(y)1245 884 y
Fu(r)q(p)1291 877 y FC(+)i Fy(z)1357 884 y Fu(y)1378
877 y FC(\()p Fy(m)g FC(+)g(1\)\))120 976 y(\(either)18
b Fy(z)290 983 y Fu(x)330 976 y FC(or)f Fy(z)409 983
y Fu(y)447 976 y FC(ma)o(y)g(b)q(e)h(negativ)o(e\).)27
b(An)o(y)18 b(fragmen)o(ts)e(whose)h(cen)o(ters)h(lie)h(inside)120
1032 y(of)d(this)h(rectangle)f(\(or)f(on)h(its)h(b)q(ottom)e(or)g(left)
i(b)q(oundaries\))g(are)f(pro)q(duced)h(in)g(cor-)120
1089 y(resp)q(ondence)g(with)f(this)f(particular)h(group)f(of)g(elemen)
o(ts.)191 1145 y(A)k(fragmen)o(t)e(arising)j(from)e(a)g(group)g
(consisting)i(of)e(color)h(data)f(tak)o(es)g(on)h(the)120
1202 y(color)14 b(index)h(or)e(color)g(comp)q(onen)o(ts)h(of)f(the)h
(group;)f(the)h(depth)g(and)g(texture)f(co)q(ordi-)120
1258 y(nates)k(are)f(tak)o(en)h(from)e(the)i(curren)o(t)g(raster)f(p)q
(osition's)h(asso)q(ciated)g(data.)24 b(A)16 b(frag-)120
1314 y(men)o(t)i(arising)g(from)f(a)g(depth)i(comp)q(onen)o(t)f(tak)o
(es)e(the)i(comp)q(onen)o(t's)g(depth)g(v)m(alue;)120
1371 y(the)j(color)f(and)h(texture)f(co)q(ordinates)h(are)f(giv)o(en)h
(b)o(y)f(those)g(asso)q(ciated)h(with)g(the)120 1427
y(curren)o(t)15 b(raster)e(p)q(osition.)21 b(In)15 b(b)q(oth)f(cases)h
(texture)f(co)q(ordinates)h Fy(s)p FC(,)f Fy(t)p FC(,)h(and)f
Fy(r)i FC(are)e(re-)120 1484 y(placed)h(with)g Fy(s=q)r
FC(,)e Fy(t=q)r FC(,)h(and)g Fy(r)q(=q)r FC(,)f(resp)q(ectiv)o(ely)l(.)
22 b(If)14 b Fy(q)i FC(is)e(less)h(then)f(or)f(equal)i(to)e(zero,)120
1540 y(the)j(results)h(are)e(unde\014ned.)24 b(Groups)15
b(arising)i(from)e Fz(Dra)o(wPixels)g FC(with)h(a)g Fv(format)120
1597 y FC(of)f Fr(STENCIL)p 329 1597 14 2 v 14 w(INDEX)g
FC(are)f(treated)h(sp)q(ecially)j(and)d(are)g(describ)q(ed)i(in)f
(section)g(4.3.1.)120 1718 y Fl(3.6.4)56 b(Pixel)17 b(T)-5
b(ransfer)19 b(Op)r(erations)120 1804 y FC(The)d(GL)f(de\014nes)h(four)
f(kinds)h(of)f(pixel)i(groups:)176 1894 y(1.)22 b Fv(R)o(GBA)15
b(c)n(omp)n(onent:)j FC(Eac)o(h)13 b(group)g(comprises)h(four)f(color)h
(comp)q(onen)o(ts:)19 b(red,)234 1951 y(green,)c(blue,)h(and)f(alpha.)
176 2043 y(2.)22 b Fv(Depth)17 b(c)n(omp)n(onent:)i FC(Eac)o(h)c(group)
g(comprises)h(a)f(single)h(depth)g(comp)q(onen)o(t.)176
2136 y(3.)22 b Fv(Color)16 b(index:)k FC(Eac)o(h)15 b(group)g
(comprises)h(a)e(single)j(color)e(index.)176 2228 y(4.)22
b Fv(Stencil)15 b(index:)20 b FC(Eac)o(h)15 b(group)g(comprises)g(a)g
(single)i(stencil)f(index.)120 2319 y(Eac)o(h)d(op)q(eration)h(describ)
q(ed)h(in)f(this)f(section)h(is)f(applied)j(sequen)o(tially)e(to)f(eac)
o(h)g(pixel)120 2375 y(group)20 b(in)h(an)f(image.)35
b(Man)o(y)19 b(op)q(erations)h(are)g(applied)i(only)e(to)g(pixel)h
(groups)f(of)120 2432 y(certain)12 b(kinds;)i(if)e(an)f(op)q(eration)h
(is)g(not)f(applicable)k(to)10 b(a)i(giv)o(en)g(group,)f(it)h(is)g
(skipp)q(ed.)120 2488 y(F)l(uture)k(v)o(ersions)f(of)g(GL)g(ma)o(y)f
(de\014ne)j(additional)f(pixel)h(transfer)e(op)q(erations.)p
eop
%%Page: 82 91
82 90 bop 332 137 a FC(82)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y Fz(Arithmetic)18 b(on)g(Comp)q(onen)o(ts)
332 376 y FC(This)f(step)f(applies)i(only)f(to)f(R)o(GBA)h(comp)q(onen)
o(t)f(and)h(depth)g(comp)q(onen)o(t)f(groups.)332 433
y(Eac)o(h)31 b(comp)q(onen)o(t)g(is)g(m)o(ultiplied)i(b)o(y)e(an)g
(appropriate)g(signed)g(scale)h(factor:)332 489 y Fr(RED)p
401 489 14 2 v 15 w(SCALE)14 b FC(for)h(an)g(R)g(comp)q(onen)o(t,)g
Fr(GREEN)p 1076 489 V 15 w(SCALE)f FC(for)g(a)h(G)g(comp)q(onen)o(t,)g
Fr(BLUE)p 1706 489 V 15 w(SCALE)332 546 y FC(for)d(a)h(B)g(comp)q(onen)
o(t,)g(and)g Fr(ALPHA)p 922 546 V 14 w(SCALE)f FC(for)g(an)h(A)f(comp)q
(onen)o(t,)h(or)g Fr(DEPTH)p 1639 546 V 14 w(SCALE)f
FC(for)332 602 y(a)i(depth)i(comp)q(onen)o(t.)j(Then)c(the)g(result)g
(is)g(added)h(to)e(the)g(the)h(appropriate)f(signed)332
658 y(bias:)20 b Fr(RED)p 512 658 V 16 w(BIAS)p FC(,)13
b Fr(GREEN)p 752 658 V 15 w(BIAS)p FC(,)h Fr(BLUE)p 970
658 V 15 w(BIAS)p FC(,)g Fr(ALPHA)p 1210 658 V 15 w(BIAS)p
FC(,)f(or)i Fr(DEPTH)p 1505 658 V 15 w(BIAS)p FC(.)332
790 y Fz(Arithmetic)j(on)g(Indices)332 880 y FC(This)e(step)g(applies)h
(only)f(to)f(color)h(index)g(and)g(stencil)h(index)g(groups.)k(If)16
b(the)f(index)332 936 y(is)i(a)g(\015oating-p)q(oin)o(t)g(v)m(alue,)h
(it)g(is)f(con)o(v)o(erted)f(to)h(\014xed-p)q(oin)o(t,)h(with)f(an)g
(unsp)q(eci\014ed)332 993 y(n)o(um)o(b)q(er)j(of)f(bits)h(to)e(the)i
(righ)o(t)f(of)g(the)g(binary)h(p)q(oin)o(t.)33 b(Indices)21
b(that)e(are)g(already)332 1049 y(in)o(tegers)g(remain)g(so;)g(an)o(y)f
(fraction)h(bits)g(in)g(the)g(resulting)g(\014xed-p)q(oin)o(t)h(v)m
(alue)g(are)332 1106 y(zero.)403 1164 y(The)29 b(\014xed-p)q(oin)o(t)g
(index)h(is)g(then)f(shifted)g(b)o(y)f FB(j)p Fr(INDEX)p
1427 1164 V 15 w(SHIFT)o FB(j)g FC(bits,)k(left)d(if)332
1221 y Fr(INDEX)p 445 1221 V 15 w(SHIFT)15 b Fy(>)h FC(0)h(and)g(righ)o
(t)g(otherwise.)26 b(In)18 b(either)g(case)f(the)h(shift)f(is)h
(zero-\014lled.)332 1277 y(Then,)d(the)h(signed)g(in)o(teger)f
(o\013set)f Fr(INDEX)p 1064 1277 V 15 w(OFFSET)g FC(is)i(added)g(to)e
(the)h(index.)332 1409 y Fz(R)o(GBA)i(to)h(R)o(GBA)f(Lo)q(okup)332
1498 y FC(This)26 b(step)g(applies)i(only)e(to)f(R)o(GBA)h(comp)q(onen)
o(t)g(groups,)h(and)f(is)g(skipp)q(ed)i(if)332 1555 y
Fr(MAP)p 401 1555 V 15 w(COLOR)20 b FC(is)h Fr(FALSE)p
FC(.)e(First,)i(eac)o(h)g(comp)q(onen)o(t)g(is)g(clamp)q(ed)h(to)e(the)
h(range)f([0)p Fy(;)8 b FC(1].)332 1611 y(There)21 b(is)g(a)f(table)h
(asso)q(ciated)g(with)f(eac)o(h)h(of)f(the)h(R,)f(G,)g(B,)g(and)h(A)f
(comp)q(onen)o(t)332 1668 y(elemen)o(ts:)27 b Fr(PIXEL)p
655 1668 V 14 w(MAP)p 735 1668 V 15 w(R)p 772 1668 V
16 w(TO)p 832 1668 V 15 w(R)18 b FC(for)g(R,)g Fr(PIXEL)p
1134 1668 V 14 w(MAP)p 1214 1668 V 16 w(G)p 1252 1668
V 15 w(TO)p 1311 1668 V 15 w(G)g FC(for)g(G,)f Fr(PIXEL)p
1615 1668 V 15 w(MAP)p 1696 1668 V 15 w(B)p 1733 1668
V 15 w(TO)p 1792 1668 V 16 w(B)332 1724 y FC(for)e(B,)g(and)g
Fr(PIXEL)p 663 1724 V 15 w(MAP)p 744 1724 V 15 w(A)p
781 1724 V 16 w(TO)p 841 1724 V 15 w(A)g FC(for)g(A.)g(Eac)o(h)g
(elemen)o(t)h(is)g(m)o(ultiplied)i(b)o(y)d(an)g(in)o(teger)332
1781 y(one)h(less)g(than)g(the)g(size)g(of)f(the)h(corresp)q(onding)h
(table,)f(and,)f(for)h(eac)o(h)f(elemen)o(t,)i(an)332
1837 y(address)d(is)h(found)f(b)o(y)g(rounding)h(this)g(v)m(alue)g(to)f
(the)g(nearest)g(in)o(teger.)20 b(F)l(or)13 b(eac)o(h)h(ele-)332
1894 y(men)o(t,)h(the)g(addressed)h(v)m(alue)g(in)g(the)f(corresp)q
(onding)i(table)e(replaces)h(the)g(elemen)o(t.)332 2025
y Fz(Color)i(Index)e(Lo)q(okup)332 2115 y FC(This)23
b(step)f(applies)h(only)g(to)e(color)h(index)i(groups.)40
b(If)22 b(the)g(GL)g(command)g(that)332 2171 y(in)o(v)o(ok)o(es)d(the)f
(pixel)i(transfer)e(op)q(eration)h(requires)g(that)f(R)o(GBA)h(comp)q
(onen)o(t)g(pixel)332 2228 y(groups)g(b)q(e)g(generated,)g(then)g(a)g
(con)o(v)o(ersion)g(is)g(p)q(erformed)g(at)f(this)i(step.)30
b(R)o(GBA)332 2284 y(comp)q(onen)o(t)15 b(pixel)i(groups)e(are)g
(required)h(if)388 2386 y(1.)22 b(The)15 b(groups)g(will)i(b)q(e)f
(rasterized,)f(and)g(the)h(GL)f(is)h(in)g(R)o(GBA)f(mo)q(de,)g(or)388
2488 y(2.)22 b(The)15 b(groups)g(will)i(b)q(e)f(loaded)g(as)e(an)i
(image)f(in)o(to)g(texture)g(memory)l(,)g(or)p eop
%%Page: 83 92
83 91 bop 120 137 a Fx(3.7.)34 b(BITMAPS)1130 b FC(83)176
286 y(3.)22 b(The)12 b(groups)f(will)i(b)q(e)f(returned)g(to)f(clien)o
(t)i(memory)e(with)g(a)h(format)e(other)h(than)234 343
y Fr(COLOR)p 347 343 14 2 v 15 w(INDEX)p FC(.)120 452
y(If)19 b(R)o(GBA)g(comp)q(onen)o(t)f(groups)g(are)g(required,)i(then)f
(the)g(in)o(teger)f(part)g(of)g(the)h(in-)120 508 y(dex)k(is)g(used)f
(to)g(reference)h(4)f(tables)g(of)g(color)g(comp)q(onen)o(ts:)34
b Fr(PIXEL)p 1391 508 V 15 w(MAP)p 1472 508 V 15 w(I)p
1509 508 V 15 w(TO)p 1568 508 V 15 w(R)p FC(,)120 565
y Fr(PIXEL)p 233 565 V 15 w(MAP)p 314 565 V 15 w(I)p
351 565 V 16 w(TO)p 411 565 V 15 w(G)p FC(,)16 b Fr(PIXEL)p
587 565 V 15 w(MAP)p 668 565 V 15 w(I)p 705 565 V 16
w(TO)p 765 565 V 15 w(B)p FC(,)g(and)h Fr(PIXEL)p 1031
565 V 15 w(MAP)p 1112 565 V 15 w(I)p 1149 565 V 16 w(TO)p
1209 565 V 15 w(A)p FC(.)f(Eac)o(h)h(of)g(these)g(ta-)120
621 y(bles)j(m)o(ust)e(ha)o(v)o(e)g(2)462 605 y Fu(n)504
621 y FC(en)o(tries)h(for)f(some)h(in)o(teger)g(v)m(alue)g(of)g
Fy(n)g FC(\()p Fy(n)f FC(ma)o(y)g(b)q(e)i(di\013eren)o(t)120
678 y(for)g(eac)o(h)f(table\).)34 b(F)l(or)20 b(eac)o(h)f(table,)j(the)
d(index)j(is)e(\014rst)f(rounded)i(to)e(the)h(nearest)120
734 y(in)o(teger;)15 b(the)f(result)g(is)h(ANDed)g(with)f(2)818
718 y Fu(n)849 734 y FB(\000)9 b FC(1,)k(and)i(the)f(resulting)h(v)m
(alue)g(used)g(as)f(an)120 791 y(address)i(in)o(to)f(the)h(table.)21
b(The)15 b(indexed)i(v)m(alue)g(b)q(ecomes)f(an)f(R,)h(G,)e(B,)i(or)e
(A)i(v)m(alue,)120 847 y(as)g(appropriate.)22 b(The)16
b(group)f(of)g(four)h(elemen)o(ts)g(so)g(obtained)g(replaces)h(the)f
(index,)120 903 y(c)o(hanging)g(the)f(group's)g(t)o(yp)q(e)g(to)g(R)o
(GBA)g(comp)q(onen)o(t.)191 964 y(If)c(R)o(GBA)h(comp)q(onen)o(t)f
(groups)g(are)g(not)g(required,)i(and)e(if)h Fr(MAP)p
1277 964 V 15 w(COLOR)e FC(is)i(enabled,)120 1020 y(then)21
b(the)f(index)i(is)e(lo)q(ok)o(ed)h(up)g(in)f(the)h Fr(PIXEL)p
963 1020 V 14 w(MAP)p 1043 1020 V 15 w(I)p 1080 1020
V 16 w(TO)p 1140 1020 V 15 w(I)f FC(table)h(\(otherwise,)g(the)120
1077 y(index)h(is)e(not)g(lo)q(ok)o(ed)g(up\).)34 b(Again,)21
b(the)f(table)h(m)o(ust)e(ha)o(v)o(e)g(2)1248 1060 y
Fu(n)1291 1077 y FC(en)o(tries)i(for)e(some)120 1133
y(in)o(teger)13 b Fy(n)p FC(,)g(and)g(the)g(in)o(teger)g(part)f(of)g
(the)h(index)g(is)h(ANDed)e(with)h(2)1299 1117 y Fu(n)1328
1133 y FB(\000)5 b FC(1,)12 b(pro)q(ducing)120 1190 y(a)k(v)m(alue.)23
b(This)16 b(v)m(alue)h(addresses)f(the)g(table,)g(and)g(the)g(v)m(alue)
h(in)g(the)f(table)g(replaces)120 1246 y(the)j(index.)32
b(The)19 b(\015oating-p)q(oin)o(t)g(table)g(v)m(alue)h(is)f(\014rst)g
(rounded)g(to)f(a)g(\014xed-p)q(oin)o(t)120 1302 y(v)m(alue)f(with)e
(unsp)q(eci\014ed)j(precision.)k(The)15 b(group's)g(t)o(yp)q(e)g
(remains)g(color)h(index.)120 1444 y Fz(Stencil)j(Index)e(Lo)q(okup)120
1537 y FC(This)j(step)g(applies)h(only)f(to)e(stencil)j(index)g
(groups.)32 b(If)20 b Fr(MAP)p 1217 1537 V 15 w(STENCIL)e
FC(is)i(enabled,)120 1594 y(then)h(the)f(index)i(is)e(lo)q(ok)o(ed)h
(up)g(in)f(the)h Fr(PIXEL)p 963 1594 V 14 w(MAP)p 1043
1594 V 15 w(S)p 1080 1594 V 16 w(TO)p 1140 1594 V 15
w(S)f FC(table)h(\(otherwise,)g(the)120 1650 y(index)c(is)e(not)g(lo)q
(ok)o(ed)g(up\).)20 b(The)15 b(table)g(m)o(ust)g(ha)o(v)o(e)f(2)1058
1634 y Fu(n)1096 1650 y FC(en)o(tries)i(for)e(some)h(in)o(teger)g
Fy(n)p FC(,)120 1707 y(and)g(the)g(in)o(teger)h(part)e(of)g(the)h
(index)h(is)g(ANDed)f(with)g(2)1121 1690 y Fu(n)1154
1707 y FB(\000)10 b FC(1,)k(pro)q(ducing)i(a)f(v)m(alue.)120
1763 y(This)f(v)m(alue)g(addresses)f(the)g(table,)g(and)g(the)g(v)m
(alue)h(in)f(the)g(table)g(replaces)h(the)f(index.)120
1820 y(The)20 b(\015oating-p)q(oin)o(t)f(table)h(v)m(alue)g(is)g
(\014rst)f(rounded)g(to)g(a)g(\014xed-p)q(oin)o(t)h(v)m(alue)g(with)120
1876 y(unsp)q(eci\014ed)e(precision.)120 2041 y Fs(3.7)67
b(Bitmaps)120 2150 y FC(Bitmaps)17 b(are)f(rectangles)g(of)g(zeros)g
(and)h(ones)f(sp)q(ecifying)i(a)e(particular)h(pattern)f(of)120
2206 y(fragmen)o(ts)d(to)g(b)q(e)i(pro)q(duced.)20 b(Eac)o(h)14
b(of)f(these)h(fragmen)o(ts)f(has)g(the)h(same)g(asso)q(ciated)120
2263 y(data.)20 b(These)15 b(data)g(are)g(those)g(asso)q(ciated)g(with)
g(the)h Fv(curr)n(ent)g(r)n(aster)g(p)n(osition)p FC(.)191
2323 y(Bitmaps)f(are)g(sen)o(t)g(using)234 2432 y Fw(void)41
b Fz(Bitmap)p FC(\()i Fw(sizei)20 b Fy(w)q Fw(,)i(sizei)e
Fy(h)p Fw(,)j(float)d Fy(x)1200 2439 y Fu(bo)1234 2432
y Fw(,)j(float)d Fy(y)1443 2439 y Fu(bo)1477 2432 y Fw(,)302
2488 y(float)15 b Fy(x)463 2495 y Fu(bi)492 2488 y Fw(,)g(float)f
Fy(y)687 2495 y Fu(bi)717 2488 y Fw(,)h(ubyte)f Fv(*data)i
FC(\))f Fw(;)p eop
%%Page: 84 93
84 92 bop 332 137 a FC(84)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 350 242 1459 2 v 350 1277 2 1035
v 764 317 a
9946231 12034939 1512980 6643957 27365212 37956075 startTexFig
764 317 a
%%BeginDocument: pics/bitmap.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-BoldOblique-SHOWISO exch definefont pop
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/pmask16 {
<00006666666600000000999999990000
00006666666600000000999999990000>
} def
/pmask19 {
<11112222444488881111222244448888
11112222444488881111222244448888>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 48 /patchar16 put
Encoding 51 /patchar19 put
/CharProcs 3 dict def
CharProcs begin
/.notdef {} def
/patchar16 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask16 imagemask
} def
/patchar19 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask19 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 560 M
416 560 L
416 560 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
176 576 M
176 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
208 576 M
208 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
240 576 M
240 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
272 576 M
272 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
304 576 M
304 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
336 576 M
336 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
368 576 M
368 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
400 576 M
400 192 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 528 M
416 528 L
416 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 496 M
416 496 L
416 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 464 M
416 464 L
416 464 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 432 M
416 432 L
416 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 400 M
416 400 L
416 400 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 368 M
416 368 L
416 368 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 336 M
416 336 L
416 336 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 304 M
416 304 L
416 304 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 272 M
416 272 L
416 272 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 240 M
416 240 L
416 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
160 208 M
416 208 L
416 208 L
stroke
grestore
gsave
matrix currentmatrix
[32 0 0 32 224 192] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
160 16.08 240 {
192 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 192] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
160 16.08 240 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 224 224] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
192 16.08 272 {
192 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 224] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
192 16.08 272 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 224 288] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
256 16.08 336 {
192 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 288] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
256 16.08 336 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 224 320] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
288 16.08 368 {
192 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 320] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
288 16.08 368 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 224 352] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
320 16.08 400 {
192 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 352] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
320 16.08 400 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 288 352] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
320 16.08 400 {
256 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 320 352] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
320 16.08 400 {
288 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 384] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
352 16.08 432 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 288 384] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
352 16.08 432 {
256 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 320 384] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
352 16.08 432 {
288 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 352 384] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
352 16.08 432 {
320 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 384 416] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
384 16.08 464 {
352 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 352 416] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
384 16.08 464 {
320 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 320 416] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
384 16.08 464 {
288 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 352 448] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
416 16.08 496 {
320 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 384 448] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
416 16.08 496 {
352 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 352 480] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
448 16.08 528 {
320 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 384 480] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
448 16.08 528 {
352 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 384 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
352 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 352 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
320 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 320 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
288 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 288 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
256 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 224 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
192 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 320 544] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
512 16.08 592 {
288 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 288 544] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
512 16.08 592 {
256 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 256 544] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
512 16.08 592 {
224 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 192 544] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
512 16.08 592 {
160 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 224 544] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
512 16.08 592 {
192 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 160 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
128 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 192 512] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
480 16.08 560 {
160 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 160 480] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
448 16.08 528 {
128 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 192 480] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
448 16.08 528 {
160 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 160 448] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
416 16.08 496 {
128 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[32 0 0 32 192 448] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
416 16.08 496 {
160 exch M
(33333)
show
} for
0 0 0 setrgbcolor
1.000000 setlinewidth
gsave stroke grestore
grestore
gsave
matrix currentmatrix
[8.94427 0 0 8.94427 240 224] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
1.000000 setlinewidth
matrix currentmatrix
[8.94427 0 0 8.94427 240 224] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
159 128 translate
180 rotate
1.3 1.3 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
417 128 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
3.000000 setlinewidth
newpath
178 128 M
398 128 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
80 191 translate
-90 rotate
1.3 1.3 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
80 577 translate
90 rotate
1.3 1.3 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
3.000000 setlinewidth
newpath
80 210 M
80 558 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 23 377] concat
newpath
0 0 M 0 24 L 53.534 24 L 53.534 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
21 375 M 21 403 L 78.534 403 L 78.534 375 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 23 377] concat
/Helvetica-BoldOblique-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (h) 10.998 S
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
10.998 3.91304 M ( = 12) 40.536 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 275 101] concat
newpath
0 0 M 0 24 L 46.532 24 L 46.532 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
273 99 M 273 127 L 323.532 127 L 323.532 99 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 275 101] concat
/Helvetica-BoldOblique-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.91304 M (w) 14.004 S
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
14.004 3.91304 M ( = 8) 30.528 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
120 225 translate
90 rotate
1.3 1.3 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
3.000000 setlinewidth
newpath
120 192 M
120 206 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
241 176 translate
0 rotate
1.3 1.3 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
3.000000 setlinewidth
newpath
160 176 M
222 176 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 87 221] concat
newpath
0 0 M 0 33 L 74.656 33 L 74.656 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
85 218.913 M 85 256 L 163.656 256 L 163.656 218.913 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 87 221] concat
/Helvetica-BoldOblique-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 6.91304 M (y) 10.008 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
10.008 0.913044 M (bo) 17.108 S
/Helvetica-BoldOblique-SHOWISO findfont 18 scalefont setfont
27.116 3.91304 M ( ) 5.004 S
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
32.12 3.91304 M (= 1.0) 40.536 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 159 145] concat
newpath
0 0 M 0 33 L 79.66 33 L 79.66 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
157 142.913 M 157 180 L 240.66 180 L 240.66 142.913 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 159 145] concat
/Helvetica-BoldOblique-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 6.91304 M (x) 10.008 S
/Helvetica-BoldOblique-SHOWISO findfont 14 scalefont setfont
10.008 0.913044 M (bo) 17.108 S
/Helvetica-BoldOblique-SHOWISO findfont 18 scalefont setfont
27.116 3.91304 M ( ) 5.004 S
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
32.12 3.91304 M ( = 2.5) 45.54 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1198 a Fm(Figure)19 b(3.9.)30 b(A)19 b(bitmap)d(and)j(its)f(asso)q
(ciated)h(parameters.)32 b Fh(x)1437 1204 y Ff(bi)1483
1198 y Fm(and)18 b Fh(y)1588 1204 y Ff(bi)1636 1198 y
Fm(are)g(not)389 1247 y(sho)o(wn.)p 1807 1277 2 1035
v 350 1279 1459 2 v 332 1450 a Fy(w)g FC(and)e Fy(h)h
FC(comprise)h(the)e(in)o(teger)h(width)h(and)f(heigh)o(t)g(of)f(the)h
(rectangular)f(bitmap,)332 1507 y(resp)q(ectiv)o(ely)l(.)21
b(\()p Fy(x)637 1514 y Fu(bo)671 1507 y Fy(;)8 b(y)714
1514 y Fu(bo)747 1507 y FC(\))k(giv)o(es)g(the)g(\015oating-p)q(oin)o
(t)h Fy(x)f FC(and)g Fy(y)i FC(v)m(alues)f(of)e(the)i(bitmap's)332
1563 y(origin.)22 b(\()p Fy(x)524 1570 y Fu(bi)553 1563
y Fy(;)8 b(y)596 1570 y Fu(bi)625 1563 y FC(\))15 b(giv)o(es)h(the)g
(\015oating-p)q(oin)o(t)g Fy(x)g FC(and)g Fy(y)i FC(incremen)o(ts)e
(that)f(are)h(added)332 1619 y(to)g(the)h(raster)f(p)q(osition)i(after)
e(the)h(bitmap)g(is)h(rasterized.)25 b Fv(data)17 b FC(is)h(a)e(p)q
(oin)o(ter)i(to)e(a)332 1676 y(bitmap.)403 1732 y(Lik)o(e)d(a)f(p)q
(olygon)i(pattern,)e(a)g(bitmap)h(is)g(unpac)o(k)o(ed)g(from)f(memory)g
(according)h(to)332 1789 y(the)f(pro)q(cedure)h(giv)o(en)f(in)h
(section)f(3.6.3)e(for)i Fz(Dra)o(wPixels)p FC(;)g(it)g(is)g(as)f(if)i
(the)f Fv(width)g FC(and)332 1845 y Fv(height)h FC(passed)g(to)g(that)f
(command)g(w)o(ere)h(equal)h(to)e Fy(w)i FC(and)f Fy(h)p
FC(,)g(resp)q(ectiv)o(ely)l(,)i(the)d Fv(typ)n(e)332
1902 y FC(w)o(ere)h Fr(BITMAP)p FC(,)f(and)i(the)f Fv(format)h
FC(w)o(ere)g Fr(COLOR)p 1117 1902 14 2 v 14 w(INDEX)p
FC(.)e(The)i(unpac)o(k)o(ed)g(v)m(alues)g(\(b)q(efore)332
1958 y(an)o(y)c(con)o(v)o(ersion)h(or)f(arithmetic)i(w)o(ould)f(ha)o(v)
o(e)f(b)q(een)i(p)q(erformed\))e(are)h(bit)o(wise)g(ANDed)332
2015 y(with)16 b(1)f(to)f(obtain)h(a)g(stipple)i(pattern)e(of)g(zeros)g
(and)g(ones.)20 b(See)c(Figure)f(3.9.)403 2071 y(A)h(bitmap)h(sen)o(t)g
(using)g Fz(Bitmap)h FC(is)f(rasterized)g(as)f(follo)o(ws.)25
b(First,)16 b(if)h(the)g(cur-)332 2128 y(ren)o(t)e(raster)g(p)q
(osition)h(is)g(in)o(v)m(alid)i(\(the)d(v)m(alid)i(bit)f(is)g(reset\),)
f(the)g(bitmap)h(is)g(ignored.)332 2184 y(Otherwise,)i(a)e(rectangular)
h(arra)o(y)f(of)g(fragmen)o(ts)g(is)h(constructed,)g(with)h(lo)o(w)o
(er)e(left)332 2240 y(corner)f(at)730 2297 y(\()p Fy(x)774
2304 y Fu(ll)798 2297 y Fy(;)8 b(y)841 2304 y Fu(ll)864
2297 y FC(\))k(=)h(\()p FB(b)p Fy(x)1006 2304 y Fu(r)q(p)1053
2297 y FB(\000)e Fy(x)1125 2304 y Fu(bo)1159 2297 y FB(c)p
Fy(;)d FB(b)p Fy(y)1242 2304 y Fu(r)q(p)1289 2297 y FB(\000)i
Fy(y)1356 2304 y Fu(bo)1391 2297 y FB(c)p FC(\))332 2375
y(and)k(upp)q(er)h(righ)o(t)e(corner)g(at)g(\()p Fy(x)891
2382 y Fu(ll)922 2375 y FC(+)7 b Fy(w)q(;)h(y)1041 2382
y Fu(ll)1071 2375 y FC(+)f Fy(h)p FC(\))14 b(where)g
Fy(w)g FC(and)g Fy(h)g FC(are)f(the)h(width)g(and)332
2432 y(heigh)o(t)j(of)g(the)g(bitmap,)g(resp)q(ectiv)o(ely)l(.)27
b(F)l(ragmen)o(ts)16 b(in)i(the)f(arra)o(y)e(are)i(pro)q(duced)h(if)332
2488 y(the)f(corresp)q(onding)g(bit)g(in)g(the)f(bitmap)h(is)g(1)f(and)
g(not)g(pro)q(duced)i(otherwise.)23 b(The)p eop
%%Page: 85 94
85 93 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(85)120
286 y(asso)q(ciated)11 b(data)e(for)h(eac)o(h)g(fragmen)o(t)f(are)h
(those)g(asso)q(ciated)h(with)f(the)h(curren)o(t)f(raster)120
343 y(p)q(osition,)j(with)f(texture)f(co)q(ordinates)h
Fy(s)p FC(,)g Fy(t)p FC(,)g(and)f Fy(r)h FC(replaced)h(with)f
Fy(s=q)r FC(,)f Fy(t=q)r FC(,)h(and)g Fy(r)q(=q)r FC(,)120
399 y(resp)q(ectiv)o(ely)l(.)21 b(If)12 b Fy(q)h FC(is)f(less)g(then)f
(or)g(equal)i(to)d(zero,)i(the)f(results)h(are)f(unde\014ned.)21
b(Once)120 456 y(the)16 b(fragmen)o(ts)e(ha)o(v)o(e)g(b)q(een)j(pro)q
(duced,)f(the)f(curren)o(t)g(raster)f(p)q(osition)j(is)e(up)q(dated:)
540 558 y(\()p Fy(x)584 565 y Fu(r)q(p)620 558 y Fy(;)8
b(y)663 565 y Fu(r)q(p)699 558 y FC(\))13 b FB( )g FC(\()p
Fy(x)832 565 y Fu(r)q(p)878 558 y FC(+)e Fy(x)950 565
y Fu(bi)979 558 y Fy(;)d(y)1022 565 y Fu(r)q(p)1068 558
y FC(+)j Fy(y)1136 565 y Fu(bi)1165 558 y FC(\))p Fy(:)120
661 y FC(The)16 b Fy(z)h FC(and)e Fy(w)h FC(v)m(alues)h(of)e(the)g
(curren)o(t)g(raster)f(p)q(osition)i(remain)g(unc)o(hanged.)120
805 y Fs(3.8)67 b(T)-6 b(exturing)120 907 y FC(T)l(exturing)14
b(maps)g(a)f(p)q(ortion)h(of)f(a)g(sp)q(eci\014ed)i(image)f(on)o(to)f
(eac)o(h)g(primitiv)o(e)i(for)e(whic)o(h)120 963 y(texturing)19
b(is)g(enabled.)31 b(This)20 b(mapping)f(is)g(accomplished)h(b)o(y)f
(using)g(the)g(color)f(of)120 1020 y(an)h(image)g(at)f(the)h(lo)q
(cation)h(indicated)h(b)o(y)d(a)h(fragmen)o(t's)e(\()p
Fy(s;)8 b(t;)g(r)q FC(\))17 b(co)q(ordinates)i(to)120
1076 y(mo)q(dify)h(the)f(fragmen)o(t's)f(R)o(GBA)h(color)h(\()p
Fy(r)f FC(is)h(curren)o(tly)f(ignored\).)33 b(T)l(exturing)19
b(is)120 1133 y(sp)q(eci\014ed)f(only)d(for)g(R)o(GBA)g(mo)q(de;)g(its)
h(use)f(in)h(color)g(index)g(mo)q(de)g(is)f(unde\014ned.)191
1189 y(The)k(GL)g(pro)o(vides)g(a)g(means)f(to)g(sp)q(ecify)i(the)f
(details)h(of)e(ho)o(w)h(texturing)g(of)f(a)120 1246
y(primitiv)o(e)g(is)f(e\013ected.)24 b(These)17 b(details)g(include)i
(sp)q(eci\014cation)f(of)e(the)h(image)f(to)g(b)q(e)120
1302 y(texture)21 b(mapp)q(ed,)j(the)d(means)g(b)o(y)g(whic)o(h)h(the)g
(image)f(is)h(\014ltered)g(when)g(applied)120 1358 y(to)f(the)h
(primitiv)o(e,)h(and)f(the)f(function)h(that)f(determines)h(what)f(R)o
(GBA)h(v)m(alue)g(is)120 1415 y(pro)q(duced)17 b(giv)o(en)e(a)g
(fragmen)o(t)f(color)i(and)f(an)g(image)g(v)m(alue.)120
1536 y Fz(T)l(exture)i(Image)h(Sp)q(eci\014cation)120
1622 y FC(The)e(command)234 1716 y Fw(void)33 b Fz(T)l(exImage2D)p
FC(\()h Fw(enum)16 b Fv(tar)n(get)p Fw(,)h(int)g Fv(level)p
Fw(,)f(int)g Fv(internalfor-)302 1773 y(mat)p Fw(,)g(sizei)e
Fv(width)p Fw(,)i(sizei)f Fv(height)p Fw(,)g(int)g Fv(b)n(or)n(der)p
Fw(,)g(enum)f Fv(format)p Fw(,)302 1829 y(enum)h Fv(typ)n(e)p
Fw(,)g(void)f Fv(*data)j FC(\))d Fw(;)120 1924 y FC(is)19
b(used)g(to)f(sp)q(ecify)i(a)e(t)o(w)o(o-dimensional)h(texture)g
(image.)29 b Fv(tar)n(get)19 b FC(m)o(ust)f(b)q(e)h(either)120
1980 y Fr(TEXTURE)p 277 1980 14 2 v 15 w(2D)p FC(,)10
b(or)h Fr(PROXY)p 521 1980 V 15 w(TEXTURE)p 690 1980
V 14 w(2D)g FC(in)i(the)e(sp)q(ecial)j(case)d(discussed)i(in)g(section)
f(3.8.3.)120 2037 y Fv(width)p FC(,)i Fv(height)p FC(,)f
Fv(format)p FC(,)h Fv(typ)n(e)p FC(,)f(and)g Fv(data)g
FC(corresp)q(ond)h(precisely)g(to)e(the)h(corresp)q(ond-)120
2093 y(ing)j(argumen)o(ts)f(to)f Fz(Dra)o(wPixels)h FC(\(refer)f(to)h
(section)h(3.6.3\);)d(they)i(sp)q(ecify)i(the)e(im-)120
2149 y(age's)10 b Fv(width)h FC(and)g Fv(height)p FC(,)h(a)e
Fv(format)h FC(of)f(the)h(image)g(data,)f(the)h Fv(typ)n(e)g
FC(of)f(those)g(data,)h(and)120 2206 y(a)17 b(p)q(oin)o(ter)g(to)g(the)
g(image)g(data)f(in)i(memory)l(.)25 b(The)17 b(image)g(is)h(tak)o(en)e
(from)g(memory)120 2262 y(exactly)g(as)g(if)g(these)g(argumen)o(ts)e(w)
o(ere)i(passed)f(to)g Fz(Dra)o(wPixels)p FC(,)g(but)h(the)f(pro)q(cess)
120 2319 y(stops)h(just)f(b)q(efore)i(\014nal)f(con)o(v)o(ersion.)22
b(Eac)o(h)16 b(R,)g(G,)f(B,)h(and)g(A)g(v)m(alue)h(so)f(generated)120
2375 y(is)j(clamp)q(ed)h(to)e([0)p Fy(;)8 b FC(1].)27
b(\(The)19 b Fv(format)p FC(s)g Fr(STENCIL)p 985 2375
V 14 w(INDEX)e FC(and)i Fr(DEPTH)p 1328 2375 V 15 w(COMPONENT)d
FC(are)120 2432 y(not)d(allo)o(w)o(ed.\))19 b(Comp)q(onen)o(ts)13
b(are)f(then)i(selected)g(from)e(the)h(resulting)h(R,)f(G,)f(B,)h(and)
120 2488 y(A)k(v)m(alues)g(to)f(obtain)g(a)h(texture)f(with)g(the)h
Fv(b)n(ase)f(internal)h(format)g FC(sp)q(eci\014ed)h(b)o(y)f(\(or)p
eop
%%Page: 86 95
86 94 bop 332 137 a FC(86)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y FC(deriv)o(ed)18 b(from\))e
Fv(internalformat)p FC(.)25 b(T)l(able)17 b(3.7)f(summarizes)h(the)g
(mapping)h(of)e(R,)h(G,)332 343 y(B,)g(and)h(A)f(v)m(alues)i(to)e
(texture)g(comp)q(onen)o(ts,)g(as)g(a)g(function)i(of)e(the)g(base)h
(in)o(ternal)332 399 y(format)d(of)g(the)h(texture)g(image.)22
b Fv(internalformat)16 b FC(ma)o(y)f(b)q(e)h(sp)q(eci\014ed)i(as)e(one)
g(of)f(the)332 456 y(six)g(base)f(in)o(ternal)h(format)e(sym)o(b)q
(olic)i(constan)o(ts)e(listed)j(in)e(T)l(able)h(3.7,)e(or)h(it)g(ma)o
(y)g(b)q(e)332 512 y(sp)q(eci\014ed)20 b(as)e(an)o(y)g(one)g(of)g(the)g
Fv(size)n(d)g(internal)h(format)g FC(sym)o(b)q(olic)g(constan)o(ts)e
(listed)332 569 y(in)i(T)l(able)h(3.8.)28 b(\(F)l(or)18
b(compatibilit)o(y)i(with)f(the)f(1.0)g(v)o(ersion)g(of)g(the)h(GL,)f
Fv(internal-)332 625 y(format)d FC(v)m(alues)h Fr(1)p
FC(,)e Fr(2)p FC(,)g Fr(3)p FC(,)g(and)h Fr(4)f FC(are)g(equiv)m(alen)o
(t)j(to)c(sym)o(b)q(olic)j(constan)o(ts)e Fr(LUMINANCE)p
FC(,)332 682 y Fr(LUMINANCE)p 533 682 14 2 v 14 w(ALPHA)p
FC(,)i Fr(RGB)p FC(,)h(and)h Fr(RGBA)f FC(resp)q(ectiv)o(ely)l(.\))29
b(Sp)q(ecifying)20 b(a)d(v)m(alue)i(for)f Fv(inter-)332
738 y(nalformat)g FC(that)f(is)h(not)f(a)g(base)h(in)o(ternal)g
(format,)f(a)g(sized)i(in)o(ternal)f(format,)f Fr(1)p
FC(,)g Fr(2)p FC(,)332 795 y Fr(3)p FC(,)i(or)f Fr(4)h
FC(generates)g(the)f(error)h Fr(INVALID)p 1044 795 V
14 w(VALUE)p FC(.)e(\(F)l(or)h(compatibilit)o(y)i(with)g(the)e(1.0)332
851 y(v)o(ersion)e(of)e(the)i(GL,)e(parameter)h Fv(internalformat)g
FC(is)h(t)o(yp)q(e)f Fw(int)p FC(,)f(not)h(t)o(yp)q(e)g
Fw(enum)p FC(.\))403 907 y(The)21 b Fv(internal)g(c)n(omp)n(onent)g(r)n
(esolution)g FC(is)h(the)f(n)o(um)o(b)q(er)h(of)f(bits)h(allo)q(cated)g
(to)332 964 y(eac)o(h)d(v)m(alue)h(in)f(a)g(texture)f(image.)31
b(If)18 b Fv(internalformat)h FC(is)g(sp)q(eci\014ed)i(as)d(a)h(base)f
(in-)332 1020 y(ternal)e(format,)e(the)h(GL)h(stores)f(the)g(resulting)
i(texture)e(with)h(in)o(ternal)g(comp)q(onen)o(t)332
1077 y(resolutions)j(of)e(its)h(o)o(wn)g(c)o(ho)q(osing.)28
b(If)18 b(a)g(sized)h(in)o(ternal)g(format)e(is)h(sp)q(eci\014ed,)i
(the)332 1133 y(mapping)d(of)e(the)h(R,)g(G,)f(B,)h(and)g(A)g(v)m
(alues)h(to)f(texture)f(comp)q(onen)o(ts)h(is)h(equiv)m(alen)o(t)332
1190 y(to)e(the)g(mapping)h(of)f(the)g(corresp)q(onding)h(base)f(in)o
(ternal)h(format's)e(comp)q(onen)o(ts,)h(as)332 1246
y(sp)q(eci\014ed)i(in)f(T)l(able)f(3.7,)f(and)h(the)g(memory)f(allo)q
(cation)i(p)q(er)f(texture)g(comp)q(onen)o(t)g(is)332
1303 y(assigned)g(b)o(y)e(the)h(GL)g(to)g(matc)o(h)f(the)h(allo)q
(cations)h(listed)g(in)g(T)l(able)f(3.8)f(as)h(closely)h(as)332
1359 y(p)q(ossible.)22 b(\(The)15 b(de\014nition)i(of)e(closely)i(is)e
(left)h(up)g(to)e(the)i(implemen)o(tation.)21 b(Imple-)332
1416 y(men)o(tations)d(are)g(not)f(required)i(to)f(supp)q(ort)g(more)g
(than)g(one)g(resolution)h(for)e(eac)o(h)332 1472 y(base)e(in)o(ternal)
h(format.\))403 1528 y(A)d(GL)f(implemen)o(tation)j(ma)o(y)d(v)m(ary)g
(its)h(allo)q(cation)h(of)f(in)o(ternal)g(comp)q(onen)o(t)g(res-)332
1585 y(olution)f(based)f(on)g(an)o(y)g Fz(T)l(exImage1D)f
FC(\(see)h(b)q(elo)o(w\))g(or)g Fz(T)l(exImage2D)f FC(parameter)332
1641 y(\(except)j Fv(tar)n(get)p FC(\),)g(but)g(the)g(allo)q(cation)h
(m)o(ust)e(not)g(b)q(e)i(a)f(function)g(of)g(an)o(y)f(other)h(state,)
332 1698 y(and)g(cannot)f(b)q(e)i(c)o(hanged)f(once)g(it)g(is)g
(established.)21 b(Allo)q(cations)14 b(m)o(ust)e(b)q(e)h(in)o(v)m
(arian)o(t;)332 1754 y(the)20 b(same)f(allo)q(cation)h(m)o(ust)f(b)q(e)
h(made)g(eac)o(h)g(time)f(a)g(texture)h(image)f(is)h(sp)q(eci\014ed)332
1811 y(with)15 b(the)g(same)f(parameter)g(v)m(alues.)21
b(These)15 b(allo)q(cation)h(rules)g(also)e(apply)i(to)e(pro)o(xy)332
1867 y(textures,)h(whic)o(h)h(are)f(describ)q(ed)i(in)f(section)f
(3.8.3.)403 1924 y(The)h(image)h(itself)g(\(p)q(oin)o(ted)g(to)f(b)o(y)
g Fv(data)p FC(\))h(is)g(a)f(sequence)i(of)e(groups)g(of)g(v)m(alues.)
332 1980 y(The)j(\014rst)g(group)g(is)h(the)f(lo)o(w)o(er)g(left)g
(corner)g(of)g(the)g(texture)g(image.)31 b(Subsequen)o(t)332
2037 y(groups)13 b(\014ll)h(out)f(ro)o(ws)f(of)g(width)i
Fv(width)g FC(from)e(left)h(to)g(righ)o(t;)g Fv(height)g
FC(ro)o(ws)f(are)h(stac)o(k)o(ed)332 2093 y(from)18 b(b)q(ottom)h(to)f
(top.)32 b(Eac)o(h)18 b(color)i(comp)q(onen)o(t)f(is)h(con)o(v)o(erted)
e(\(b)o(y)h(rounding)h(to)332 2149 y(nearest\))e(to)g(a)g(\014xed-p)q
(oin)o(t)h(v)m(alue)h(with)e Fy(n)h FC(bits,)g(where)g
Fy(n)f FC(is)h(the)f(n)o(um)o(b)q(er)h(of)f(bits)332
2206 y(of)c(storage)f(allo)q(cated)j(to)e(that)f(comp)q(onen)o(t)i(in)g
(the)g(image)g(arra)o(y)l(.)j(W)l(e)d(assume)f(that)332
2262 y(the)h(\014xed-p)q(oin)o(t)i(represen)o(tation)e(used)h(represen)
o(ts)g(eac)o(h)f(v)m(alue)h Fy(k)q(=)p FC(\(2)1563 2246
y Fu(n)1596 2262 y FB(\000)11 b FC(1\),)j(where)332 2319
y Fy(k)j FB(2)e(f)p FC(0)p Fy(;)8 b FC(1)p Fy(;)g(:)g(:)f(:)t(;)h
FC(2)631 2302 y Fu(n)665 2319 y FB(\000)k FC(1)p FB(g)p
FC(,)k(as)g Fy(k)i FC(\(e.g.)24 b(1.0)16 b(is)i(represen)o(ted)f(in)h
(binary)f(as)g(a)f(string)h(of)332 2375 y(all)f(ones\).)403
2432 y(The)11 b Fv(level)g FC(argumen)o(t)f(to)h Fz(T)l(exImage2D)g
FC(is)h(an)f(in)o(teger)g Fv(level-of-detail)g FC(n)o(um)o(b)q(er.)332
2488 y(Lev)o(els)h(of)f(detail)h(are)f(discussed)h(b)q(elo)o(w,)h
(under)e Fz(Mipmapping)p FC(.)20 b(The)11 b(main)h(texture)p
eop
%%Page: 87 96
87 95 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(87)p
233 242 1270 2 v 232 299 2 57 v 258 282 a(Base)15 b(In)o(ternal)h(F)l
(ormat)p 707 299 V 48 w(R)o(GBA)g(V)l(alues)p 1035 299
V 50 w(T)l(exture)g(Comp)q(onen)o(ts)p 1502 299 V 233
301 1270 2 v 233 309 V 232 365 2 57 v 258 348 a Fr(ALPHA)p
707 365 V 364 w FC(A)p 1035 365 V 294 w Fy(A)p 1502 365
V 233 367 1270 2 v 232 423 2 57 v 258 406 a Fr(LUMINANCE)p
707 423 V 276 w FC(R)p 1035 423 V 295 w Fy(L)p 1502 423
V 233 425 1270 2 v 232 482 2 57 v 258 465 a Fr(LUMINANCE)p
459 465 14 2 v 14 w(ALPHA)p 707 482 2 57 v 152 w FC(R,A)p
1035 482 V 248 w Fy(L)p FC(,)p Fy(A)p 1502 482 V 233
483 1270 2 v 232 540 2 57 v 258 523 a Fr(INTENSITY)p
707 540 V 276 w FC(R)p 1035 540 V 295 w Fy(I)p 1502 540
V 233 541 1270 2 v 232 598 2 57 v 258 581 a Fr(RGB)p
707 598 V 408 w FC(R,G,B)p 1035 598 V 201 w Fy(R)p FC(,)p
Fy(G)p FC(,)p Fy(B)p 1502 598 V 233 599 1270 2 v 232
656 2 57 v 258 639 a Fr(RGBA)p 707 656 V 386 w FC(R,G,B,A)p
1035 656 V 154 w Fy(R)p FC(,)p Fy(G)p FC(,)p Fy(B)r FC(,)p
Fy(A)p 1502 656 V 233 658 1270 2 v 120 735 a FC(T)l(able)i(3.7:)23
b(Corresp)q(ondence)c(of)d(texture)h(comp)q(onen)o(ts)h(to)e(pixel)j
(group)e(R,)g(G,)g(B,)120 791 y(and)f(A)f(v)m(alues.)21
b(See)16 b(section)f(3.8.5)f(for)g(a)h(description)i(of)e(the)g
(texture)g(comp)q(onen)o(ts)120 848 y Fy(R)p FC(,)g Fy(G)p
FC(,)g Fy(B)r FC(,)g Fy(A)p FC(,)g Fy(L)p FC(,)g(and)g
Fy(I)t FC(.)120 1052 y(image)h(has)g(a)f(lev)o(el)i(of)e(detail)i(n)o
(um)o(b)q(er)f(of)f(0.)21 b(If)16 b(a)g(lev)o(el-of-detail)i(less)e
(than)g(zero)f(is)120 1108 y(sp)q(eci\014ed,)i(the)f(error)e
Fr(INVALID)p 663 1108 14 2 v 14 w(VALUE)g FC(is)i(generated.)191
1173 y(The)i Fv(b)n(or)n(der)g FC(argumen)o(t)e(to)h
Fz(T)l(exImage2D)h FC(is)g(a)f(b)q(order)h(width.)28
b(The)18 b(signi\014-)120 1229 y(cance)f(of)f(b)q(orders)g(is)h
(describ)q(ed)h(b)q(elo)o(w.)23 b(The)17 b(b)q(order)f(width)h
(a\013ects)e(the)i(required)120 1286 y(dimensions)k(of)d(the)h(texture)
f(image:)27 b(it)19 b(m)o(ust)f(b)q(e)h(the)g(case)g(that)f
Fy(w)1358 1293 y Fu(s)1394 1286 y FC(=)h(2)1471 1269
y Fu(n)1506 1286 y FC(+)13 b(2)p Fy(b)1597 1293 y Fu(s)120
1342 y FC(and)18 b Fy(h)237 1349 y Fu(s)273 1342 y FC(=)f(2)348
1326 y Fu(m)392 1342 y FC(+)12 b(2)p Fy(b)482 1349 y
Fu(s)500 1342 y FC(,)18 b(where)g Fy(b)685 1349 y Fu(s)720
1342 y FC(is)h(the)e(sp)q(eci\014ed)j(\(non-negativ)o(e\))e(b)q(order)g
(width,)120 1399 y(and)c Fy(w)240 1406 y Fu(s)272 1399
y FC(and)f Fy(h)384 1406 y Fu(s)417 1399 y FC(are)g(the)g(sp)q
(eci\014ed)j(image)e(width)g(and)g(heigh)o(t.)20 b(If)13
b Fv(width)i FC(and)e Fv(height)120 1455 y FC(do)g(not)g(satisfy)f
(these)i(relationships,)g(then)f(the)g(error)g Fr(INVALID)p
1234 1455 V 14 w(VALUE)f FC(is)h(generated.)120 1512
y(Curren)o(tly)21 b(the)g(maxim)o(um)f(b)q(order)h(width)h
Fy(b)940 1519 y Fu(t)974 1512 y FC(is)g(1.)35 b(If)21
b Fy(b)1168 1519 y Fu(s)1207 1512 y FC(is)g(less)g(than)g(zero,)g(or)
120 1568 y(greater)15 b(than)g Fy(b)401 1575 y Fu(t)415
1568 y FC(,)g(then)g(the)h(error)e Fr(INVALID)p 893 1568
V 14 w(VALUE)h FC(is)g(generated.)191 1633 y(The)k(maxim)o(um)f(allo)o
(w)o(able)i(width)f(or)f(heigh)o(t)h(of)f(an)g(image)h(is)g(an)g
(implemen-)120 1689 y(tation)f(dep)q(enden)o(t)i(function)g(of)e(the)g
(lev)o(el-of-detail)j(and)d(in)o(ternal)i(format)d(of)h(the)120
1746 y(resulting)h(image)f(arra)o(y)l(.)26 b(It)18 b(m)o(ust)f(b)q(e)h
(at)f(least)h(2)1005 1729 y Fu(k)q FG(\000)p Fu(lod)1111
1746 y FC(+)12 b(2)p Fy(b)1201 1753 y Fu(t)1233 1746
y FC(for)17 b(image)h(arra)o(ys)e(of)120 1802 y(lev)o(el-of-detail)21
b(0)e(through)f Fy(k)q FC(,)h(where)g Fy(k)g FC(is)g(the)g(log)g(base)f
(2)h(of)f Fr(MAX)p 1335 1802 V 15 w(TEXTURE)p 1504 1802
V 14 w(SIZE)p FC(,)120 1859 y Fy(l)q(od)e FC(is)h(the)g(lev)o
(el-of-detail)i(of)e(the)f(image)h(arra)o(y)l(,)f(and)h
Fy(b)1113 1866 y Fu(t)1144 1859 y FC(is)g(the)g(maxim)o(um)f(b)q(order)
120 1915 y(width.)21 b(It)14 b(ma)o(y)f(b)q(e)i(zero)f(for)g(image)g
(arra)o(ys)f(of)g(an)o(y)h(lev)o(el-of-detail)j(greater)c(than)h
Fy(k)q FC(.)120 1972 y(The)19 b(error)e Fr(INVALID)p
488 1972 V 14 w(VALUE)g FC(is)h(generated)g(if)h(the)f(sp)q(eci\014ed)i
(image)e(is)g(to)q(o)f(large)h(to)120 2028 y(b)q(e)e(stored)f(under)h
(an)o(y)f(conditions.)22 b(Section)16 b(3.8.3)e(describ)q(es)j(a)e
(query)g(mec)o(hanism)120 2085 y(to)g(determine)h(the)g(maxim)o(um)f
(dimensions)i(of)e(a)f(texture)h(arra)o(y)f(of)h(a)g(sp)q(eci\014c)i
(lev)o(el)120 2141 y(of)h(detail)g(and)g(in)o(ternal)h(format.)26
b(In)18 b(order)f(to)g(allo)o(w)h(the)g(clien)o(t)h(to)e(meaningfully)
120 2198 y(query)g(the)g(maxim)o(um)f(image)h(arra)o(y)e(sizes)i(that)f
(are)g(supp)q(orted,)h(an)g(implemen)o(ta-)120 2254 y(tion)e(m)o(ust)f
(not)g(allo)o(w)g(an)h(image)f(arra)o(y)f(of)h(lev)o(el)i(one)f(or)e
(greater)h(to)g(b)q(e)h(created)f(if)h(a)120 2310 y Fv(c)n(omplete)i
FC(set)f(of)g(image)h(arra)o(ys)e(consisten)o(t)i(with)g(the)f
(requested)h(arra)o(y)f(could)h(not)120 2367 y(b)q(e)g(supp)q(orted.)24
b(The)17 b(de\014nition)h(of)e(a)g(complete)h(set)f(of)g(image)g(arra)o
(ys)f(is)i(pro)o(vided)120 2423 y(b)q(elo)o(w,)f(under)g
Fz(Mipmapping)p FC(.)191 2488 y(Another)f(command,)p
eop
%%Page: 88 97
88 96 bop 332 137 a FC(88)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 332 280 1569 2 v 331 336 2 57 v
357 319 a FC(Sized)p 789 336 V 356 w(Base)p 1160 336
V 297 w Fy(R)p 1283 336 V 88 w(G)p 1406 336 V 86 w(B)p
1530 336 V 91 w(A)p 1653 336 V 91 w(L)p 1776 336 V 96
w(I)p 1899 336 V 331 393 V 357 376 a FC(In)o(ternal)16
b(F)l(ormat)p 789 393 V 140 w(In)o(ternal)g(F)l(ormat)p
1160 393 V 52 w(bits)p 1283 393 V 51 w(bits)p 1406 393
V 50 w(bits)p 1530 393 V 50 w(bits)p 1653 393 V 51 w(bits)p
1776 393 V 50 w(bits)p 1899 393 V 332 394 1569 2 v 332
403 V 331 459 2 57 v 357 442 a Fr(ALPHA4)p 789 459 V
326 w(ALPHA)p 1160 459 V 1283 459 V 1406 459 V 1530 459
V 656 w FC(4)p 1653 459 V 1776 459 V 1899 459 V 332 461
1569 2 v 331 517 2 57 v 357 500 a Fr(ALPHA8)p 789 517
V 326 w(ALPHA)p 1160 517 V 1283 517 V 1406 517 V 1530
517 V 656 w FC(8)p 1653 517 V 1776 517 V 1899 517 V 332
519 1569 2 v 331 575 2 57 v 357 559 a Fr(ALPHA12)p 789
575 V 304 w(ALPHA)p 1160 575 V 1283 575 V 1406 575 V
1530 575 V 644 w FC(12)p 1653 575 V 1776 575 V 1899 575
V 332 577 1569 2 v 331 634 2 57 v 357 617 a Fr(ALPHA16)p
789 634 V 304 w(ALPHA)p 1160 634 V 1283 634 V 1406 634
V 1530 634 V 644 w FC(16)p 1653 634 V 1776 634 V 1899
634 V 332 635 1569 2 v 331 692 2 57 v 357 675 a Fr(LUMINANCE4)p
789 692 V 238 w(LUMINANCE)p 1160 692 V 1283 692 V 1406
692 V 1530 692 V 1653 692 V 691 w FC(4)p 1776 692 V 1899
692 V 332 693 1569 2 v 331 750 2 57 v 357 733 a Fr(LUMINANCE8)p
789 750 V 238 w(LUMINANCE)p 1160 750 V 1283 750 V 1406
750 V 1530 750 V 1653 750 V 691 w FC(8)p 1776 750 V 1899
750 V 332 751 1569 2 v 331 808 2 57 v 357 791 a Fr(LUMINANCE12)p
789 808 V 216 w(LUMINANCE)p 1160 808 V 1283 808 V 1406
808 V 1530 808 V 1653 808 V 680 w FC(12)p 1776 808 V
1899 808 V 332 810 1569 2 v 331 866 2 57 v 357 849 a
Fr(LUMINANCE16)p 789 866 V 216 w(LUMINANCE)p 1160 866
V 1283 866 V 1406 866 V 1530 866 V 1653 866 V 680 w FC(16)p
1776 866 V 1899 866 V 332 868 1569 2 v 331 924 2 57 v
357 907 a Fr(LUMINANCE4)p 580 907 14 2 v 14 w(ALPHA4)p
789 924 2 57 v 92 w(LUMINANCE)p 1016 907 14 2 v 14 w(ALPHA)p
1160 924 2 57 v 1283 924 V 1406 924 V 1530 924 V 444
w FC(4)p 1653 924 V 100 w(4)p 1776 924 V 1899 924 V 332
926 1569 2 v 331 982 2 57 v 357 965 a Fr(LUMINANCE6)p
580 965 14 2 v 14 w(ALPHA2)p 789 982 2 57 v 92 w(LUMINANCE)p
1016 965 14 2 v 14 w(ALPHA)p 1160 982 2 57 v 1283 982
V 1406 982 V 1530 982 V 444 w FC(2)p 1653 982 V 100 w(6)p
1776 982 V 1899 982 V 332 984 1569 2 v 331 1040 2 57
v 357 1023 a Fr(LUMINANCE8)p 580 1023 14 2 v 14 w(ALPHA8)p
789 1040 2 57 v 92 w(LUMINANCE)p 1016 1023 14 2 v 14
w(ALPHA)p 1160 1040 2 57 v 1283 1040 V 1406 1040 V 1530
1040 V 444 w FC(8)p 1653 1040 V 100 w(8)p 1776 1040 V
1899 1040 V 332 1042 1569 2 v 331 1099 2 57 v 357 1082
a Fr(LUMINANCE12)p 602 1082 14 2 v 13 w(ALPHA4)p 789
1099 2 57 v 71 w(LUMINANCE)p 1016 1082 14 2 v 14 w(ALPHA)p
1160 1099 2 57 v 1283 1099 V 1406 1099 V 1530 1099 V
444 w FC(4)p 1653 1099 V 89 w(12)p 1776 1099 V 1899 1099
V 332 1100 1569 2 v 331 1157 2 57 v 357 1140 a Fr(LUMINANCE12)p
602 1140 14 2 v 13 w(ALPHA12)p 789 1157 2 57 v 49 w(LUMINANCE)p
1016 1140 14 2 v 14 w(ALPHA)p 1160 1157 2 57 v 1283 1157
V 1406 1157 V 1530 1157 V 432 w FC(12)p 1653 1157 V 78
w(12)p 1776 1157 V 1899 1157 V 332 1158 1569 2 v 331
1215 2 57 v 357 1198 a Fr(LUMINANCE16)p 602 1198 14 2
v 13 w(ALPHA16)p 789 1215 2 57 v 49 w(LUMINANCE)p 1016
1198 14 2 v 14 w(ALPHA)p 1160 1215 2 57 v 1283 1215 V
1406 1215 V 1530 1215 V 432 w FC(16)p 1653 1215 V 78
w(16)p 1776 1215 V 1899 1215 V 332 1216 1569 2 v 331
1273 2 57 v 357 1256 a Fr(INTENSITY4)p 789 1273 V 238
w(INTENSITY)p 1160 1273 V 1283 1273 V 1406 1273 V 1530
1273 V 1653 1273 V 1776 1273 V 814 w FC(4)p 1899 1273
V 332 1275 1569 2 v 331 1331 2 57 v 357 1314 a Fr(INTENSITY8)p
789 1331 V 238 w(INTENSITY)p 1160 1331 V 1283 1331 V
1406 1331 V 1530 1331 V 1653 1331 V 1776 1331 V 814 w
FC(8)p 1899 1331 V 332 1333 1569 2 v 331 1389 2 57 v
357 1372 a Fr(INTENSITY12)p 789 1389 V 216 w(INTENSITY)p
1160 1389 V 1283 1389 V 1406 1389 V 1530 1389 V 1653
1389 V 1776 1389 V 803 w FC(12)p 1899 1389 V 332 1391
1569 2 v 331 1447 2 57 v 357 1430 a Fr(INTENSITY16)p
789 1447 V 216 w(INTENSITY)p 1160 1447 V 1283 1447 V
1406 1447 V 1530 1447 V 1653 1447 V 1776 1447 V 803 w
FC(16)p 1899 1447 V 332 1449 1569 2 v 331 1505 2 57 v
357 1488 a Fr(R3)p 404 1488 14 2 v 15 w(G3)p 463 1488
V 16 w(B2)p 789 1505 2 57 v 295 w(RGB)p 1160 1505 V 330
w FC(3)p 1283 1505 V 100 w(3)p 1406 1505 V 100 w(2)p
1530 1505 V 1653 1505 V 1776 1505 V 1899 1505 V 332 1507
1569 2 v 331 1563 2 57 v 357 1547 a Fr(RGB4)p 789 1563
V 370 w(RGB)p 1160 1563 V 330 w FC(4)p 1283 1563 V 100
w(4)p 1406 1563 V 100 w(4)p 1530 1563 V 1653 1563 V 1776
1563 V 1899 1563 V 332 1565 1569 2 v 331 1622 2 57 v
357 1605 a Fr(RGB5)p 789 1622 V 370 w(RGB)p 1160 1622
V 330 w FC(5)p 1283 1622 V 100 w(5)p 1406 1622 V 100
w(5)p 1530 1622 V 1653 1622 V 1776 1622 V 1899 1622 V
332 1623 1569 2 v 331 1680 2 57 v 357 1663 a Fr(RGB8)p
789 1680 V 370 w(RGB)p 1160 1680 V 330 w FC(8)p 1283
1680 V 100 w(8)p 1406 1680 V 100 w(8)p 1530 1680 V 1653
1680 V 1776 1680 V 1899 1680 V 332 1681 1569 2 v 331
1738 2 57 v 357 1721 a Fr(RGB10)p 789 1738 V 348 w(RGB)p
1160 1738 V 318 w FC(10)p 1283 1738 V 78 w(10)p 1406
1738 V 77 w(10)p 1530 1738 V 1653 1738 V 1776 1738 V
1899 1738 V 332 1739 1569 2 v 331 1796 2 57 v 357 1779
a Fr(RGB12)p 789 1796 V 348 w(RGB)p 1160 1796 V 318 w
FC(12)p 1283 1796 V 78 w(12)p 1406 1796 V 77 w(12)p 1530
1796 V 1653 1796 V 1776 1796 V 1899 1796 V 332 1798 1569
2 v 331 1854 2 57 v 357 1837 a Fr(RGB16)p 789 1854 V
348 w(RGB)p 1160 1854 V 318 w FC(16)p 1283 1854 V 78
w(16)p 1406 1854 V 77 w(16)p 1530 1854 V 1653 1854 V
1776 1854 V 1899 1854 V 332 1856 1569 2 v 331 1912 2
57 v 357 1895 a Fr(RGBA2)p 789 1912 V 348 w(RGBA)p 1160
1912 V 308 w FC(2)p 1283 1912 V 100 w(2)p 1406 1912 V
100 w(2)p 1530 1912 V 101 w(2)p 1653 1912 V 1776 1912
V 1899 1912 V 332 1914 1569 2 v 331 1970 2 57 v 357 1953
a Fr(RGBA4)p 789 1970 V 348 w(RGBA)p 1160 1970 V 308
w FC(4)p 1283 1970 V 100 w(4)p 1406 1970 V 100 w(4)p
1530 1970 V 101 w(4)p 1653 1970 V 1776 1970 V 1899 1970
V 332 1972 1569 2 v 331 2028 2 57 v 357 2011 a Fr(RGB5)p
448 2011 14 2 v 15 w(A1)p 789 2028 2 57 v 311 w(RGBA)p
1160 2028 V 308 w FC(5)p 1283 2028 V 100 w(5)p 1406 2028
V 100 w(5)p 1530 2028 V 101 w(1)p 1653 2028 V 1776 2028
V 1899 2028 V 332 2030 1569 2 v 331 2086 2 57 v 357 2070
a Fr(RGBA8)p 789 2086 V 348 w(RGBA)p 1160 2086 V 308
w FC(8)p 1283 2086 V 100 w(8)p 1406 2086 V 100 w(8)p
1530 2086 V 101 w(8)p 1653 2086 V 1776 2086 V 1899 2086
V 332 2088 1569 2 v 331 2145 2 57 v 357 2128 a Fr(RGB10)p
470 2128 14 2 v 15 w(A2)p 789 2145 2 57 v 289 w(RGBA)p
1160 2145 V 296 w FC(10)p 1283 2145 V 78 w(10)p 1406
2145 V 77 w(10)p 1530 2145 V 89 w(2)p 1653 2145 V 1776
2145 V 1899 2145 V 332 2146 1569 2 v 331 2203 2 57 v
357 2186 a Fr(RGBA12)p 789 2203 V 326 w(RGBA)p 1160 2203
V 296 w FC(12)p 1283 2203 V 78 w(12)p 1406 2203 V 77
w(12)p 1530 2203 V 77 w(12)p 1653 2203 V 1776 2203 V
1899 2203 V 332 2204 1569 2 v 331 2261 2 57 v 357 2244
a Fr(RGBA16)p 789 2261 V 326 w(RGBA)p 1160 2261 V 296
w FC(16)p 1283 2261 V 78 w(16)p 1406 2261 V 77 w(16)p
1530 2261 V 77 w(16)p 1653 2261 V 1776 2261 V 1899 2261
V 332 2262 1569 2 v 332 2340 a(T)l(able)c(3.8:)17 b(Corresp)q(ondence)
12 b(of)f(sized)i(in)o(ternal)f(formats)e(to)h(base)g(in)o(ternal)h
(formats,)332 2396 y(and)j Fv(desir)n(e)n(d)g FC(comp)q(onen)o(t)g
(resolutions)h(for)f(eac)o(h)g(sized)h(in)o(ternal)g(format.)p
eop
%%Page: 89 98
89 97 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(89)234
286 y Fw(void)33 b Fz(T)l(exImage1D)p FC(\()h Fw(enum)16
b Fv(tar)n(get)p Fw(,)h(int)g Fv(level)p Fw(,)f(int)g
Fv(internalfor-)302 343 y(mat)p Fw(,)24 b(sizei)e Fv(width)p
Fw(,)i(int)e Fv(b)n(or)n(der)p Fw(,)i(enum)d Fv(format)p
Fw(,)k(enum)c Fv(typ)n(e)p Fw(,)302 399 y(void)15 b Fv(*data)h
FC(\))f Fw(;)120 527 y FC(is)21 b(used)h(to)e(sp)q(ecify)i
(one-dimensional)h(texture)d(images.)36 b Fv(tar)n(get)21
b FC(m)o(ust)f(b)q(e)h(either)120 583 y Fr(TEXTURE)p
277 583 14 2 v 15 w(1D)15 b FC(or)g Fr(PROXY)p 517 583
V 15 w(TEXTURE)p 686 583 V 14 w(1D)p FC(.)g(\(It)g(is)h
Fr(TEXTURE)p 1039 583 V 15 w(1D)f FC(except)h(in)g(the)g(sp)q(ecial)i
(case)120 640 y(discussed)e(in)g(section)f(3.8.3.\))i(F)l(or)d(the)g
(purp)q(oses)h(of)f(deco)q(ding)i(the)f(texture)f(image,)120
696 y Fz(T)l(exImage1D)22 b FC(is)g(equiv)m(alen)o(t)h(to)e(calling)j
Fz(T)l(exImage2D)d FC(with)h(corresp)q(onding)120 753
y(argumen)o(ts)15 b(and)i Fv(height)f FC(of)f(1,)h(except)g(that)f(the)
h Fv(height)g FC(of)g(the)g(image)g(is)g(alw)o(a)o(ys)f(1,)120
809 y(regardless)g(of)f(the)h(v)m(alue)h(of)e Fv(b)n(or)n(der)p
FC(.)19 b(It)c(m)o(ust)f(b)q(e)h(the)g(case)g(that)e
Fy(w)1307 816 y Fu(s)1338 809 y FC(=)g(2)1409 793 y Fu(n)1441
809 y FC(+)c(2)p Fy(b)1528 816 y Fu(s)1560 809 y FC(for)120
865 y(some)16 b(in)o(teger)g Fy(n)f FC(where)h Fy(b)580
872 y Fu(s)614 865 y FC(is)g(the)g(v)m(alue)g(of)g Fv(b)n(or)n(der)f
FC(and)h Fy(w)1168 872 y Fu(s)1202 865 y FC(is)g(the)f(v)m(alue)i(of)e
Fv(width)p FC(,)120 922 y(or)g(the)g(error)g Fr(INVALID)p
523 922 V 14 w(VALUE)f FC(is)i(generated.)191 987 y(An)g(image)g(with)h
(zero)f(heigh)o(t)g(or)g(width)g(\(or)g(zero)g(width,)g(for)f
Fz(T)l(exImage1D)p FC(\))120 1043 y(indicates)k(the)e(n)o(ull)i
(texture.)25 b(If)17 b(the)h(n)o(ull)g(texture)f(is)h(sp)q(eci\014ed)h
(for)d(lev)o(el-of-detail)120 1100 y(zero,)f(it)h(is)f(as)g(if)h
(texturing)f(w)o(ere)g(disabled.)191 1165 y(The)21 b(image)g(indicated)
h(to)e(the)h(GL)f(b)o(y)h(the)g(image)f(p)q(oin)o(ter)h(is)h(deco)q
(ded)g(and)120 1221 y(copied)e(in)o(to)e(the)g(GL's)g(in)o(ternal)h
(memory)l(.)28 b(This)19 b(cop)o(ying)g(e\013ectiv)o(ely)g(places)g
(the)120 1277 y(deco)q(ded)f(image)e(inside)i(a)e(b)q(order)h(of)e(the)
i(maxim)o(um)f(allo)o(w)o(able)h(width)g(\(curren)o(tly)120
1334 y(1\))23 b(whether)f(or)h(not)f(a)h(b)q(order)g(has)f(b)q(een)i
(sp)q(eci\014ed)h(\(see)e(Figure)g(3.10\).)41 b(If)23
b(no)120 1390 y(b)q(order)e(or)f(a)g(b)q(order)h(smaller)g(than)f(the)h
(maxim)o(um)f(allo)o(w)o(able)h(width)g(has)g(b)q(een)120
1447 y(sp)q(eci\014ed,)c(then)f(the)f(image)g(is)g(still)i(stored)d(as)
h(if)g(it)g(w)o(ere)g(surrounded)h(b)o(y)f(a)f(b)q(order)120
1503 y(of)k(the)g(maxim)o(um)g(p)q(ossible)i(width.)30
b(An)o(y)18 b(excess)g(b)q(order)h(\(whic)o(h)f(surrounds)h(the)120
1560 y(sp)q(eci\014ed)24 b(image,)g(including)g(an)o(y)e(b)q(order\))f
(is)i(assigned)f(unsp)q(eci\014ed)j(v)m(alues.)41 b(A)120
1616 y(one-dimensional)18 b(texture)d(has)g(a)g(b)q(order)g(only)h(at)f
(its)g(left)h(and)f(righ)o(t)g(ends.)191 1681 y(W)l(e)f(shall)h(refer)f
(to)g(the)g(\(p)q(ossibly)h(b)q(order)g(augmen)o(ted\))e(deco)q(ded)j
(image)e(as)g(the)120 1737 y Fv(textur)n(e)h(arr)n(ay)p
FC(.)20 b(A)14 b(t)o(w)o(o-dimensional)g(texture)f(arra)o(y)g(has)g
(width)h Fy(w)1301 1744 y Fu(t)1328 1737 y FC(=)f(2)1399
1721 y Fu(n)1429 1737 y FC(+)7 b(2)p Fy(b)1514 1744 y
Fu(t)1542 1737 y FC(and)120 1794 y(heigh)o(t)18 b Fy(h)286
1801 y Fu(t)318 1794 y FC(=)f(2)393 1777 y Fu(m)437 1794
y FC(+)12 b(2)p Fy(b)527 1801 y Fu(t)541 1794 y FC(,)18
b(where)g Fy(b)726 1801 y Fu(t)757 1794 y FC(is)g(the)g(maxim)o(um)f
(allo)o(w)o(able)h(b)q(order)g(width;)h(a)120 1850 y(one-dimensional)f
(texture)d(arra)o(y)f(has)h(width)h Fy(w)974 1857 y Fu(t)1001
1850 y FC(=)d(2)1072 1834 y Fu(n)1105 1850 y FC(+)d(2)p
Fy(b)1193 1857 y Fu(t)1223 1850 y FC(and)15 b(heigh)o(t)h
Fy(h)1475 1857 y Fu(t)1502 1850 y FC(=)d(1.)191 1915
y(An)f(elemen)o(t)g(\()p Fy(i;)c(j)s FC(\))h(of)i(the)g(texture)h(arra)
o(y)e(is)i(called)h(a)e Fv(texel)g FC(\(for)g(a)g(1-dimensional)120
1972 y(texture,)17 b Fy(j)j FC(is)e(irrelev)m(an)o(t\).)26
b(The)18 b Fv(textur)n(e)g(value)f FC(used)h(in)g(texturing)f(a)g
(fragmen)o(t)f(is)120 2028 y(determined)22 b(b)o(y)e(that)f(fragmen)o
(t's)g(asso)q(ciated)h(\()p Fy(s;)8 b(t)p FC(\))20 b(co)q(ordinates,)h
(but)g(ma)o(y)e(not)120 2085 y(corresp)q(ond)d(to)f(an)o(y)f(actual)i
(texel.)k(See)c(Figure)f(3.10.)191 2149 y(If)d(the)h
Fv(data)g FC(argumen)o(t)e(of)h Fz(T)l(exImage1D)g FC(or)f
Fz(T)l(exImage2D)h FC(is)h(a)f(n)o(ull)h(p)q(oin)o(ter)120
2206 y(\(a)i(zero-v)m(alued)h(p)q(oin)o(ter)f(in)h(the)f(C)f(implemen)o
(tation\),)i(a)e(one-dimensional)k(or)c(t)o(w)o(o-)120
2262 y(dimensional)21 b(texture)d(arra)o(y)f(is)i(created)f(with)h(the)
f(sp)q(eci\014ed)i Fv(tar)n(get)p FC(,)f Fv(level)p FC(,)f
Fv(inter-)120 2319 y(nalformat)p FC(,)g Fv(width)p FC(,)g(and)g
Fv(height)p FC(,)g(but)f(with)h(unsp)q(eci\014ed)i(image)e(con)o(ten)o
(ts.)25 b(In)18 b(this)120 2375 y(case)e(no)g(pixel)i(v)m(alues)f(are)e
(accessed)i(in)g(clien)o(t)g(memory)l(,)e(and)h(no)g(pixel)i(pro)q
(cessing)120 2432 y(is)j(p)q(erformed.)35 b(Errors)19
b(are)h(generated,)h(ho)o(w)o(ev)o(er,)f(exactly)g(as)g(though)g(the)g
Fv(data)120 2488 y FC(p)q(oin)o(ter)c(w)o(ere)f(v)m(alid.)p
eop
%%Page: 90 99
90 98 bop 332 137 a FC(90)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 350 738 1459 2 v 350 1941 2 1204
v 449 812 a
19892389 13128966 986726 2236579 54664642 37956075 startTexFig
449 812 a
%%BeginDocument: pics/teximage.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-BoldOblique-SHOWISO exch definefont pop
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Symbol findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
currentdict
end
/Symbol-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
224 240 M
288 240 L
288 304 L
224 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
288 240 M
352 240 L
352 304 L
288 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
352 240 M
416 240 L
416 304 L
352 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
416 240 M
480 240 L
480 304 L
416 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
480 240 M
544 240 L
544 304 L
480 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
544 240 M
608 240 L
608 304 L
544 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
608 240 M
672 240 L
672 304 L
608 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
672 240 M
736 240 L
736 304 L
672 304 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
224 304 M
288 304 L
288 368 L
224 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
288 304 M
352 304 L
352 368 L
288 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
352 304 M
416 304 L
416 368 L
352 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
416 304 M
480 304 L
480 368 L
416 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
480 304 M
544 304 L
544 368 L
480 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
544 304 M
608 304 L
608 368 L
544 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
608 304 M
672 304 L
672 368 L
608 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
672 304 M
736 304 L
736 368 L
672 368 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
224 368 M
288 368 L
288 432 L
224 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
288 368 M
352 368 L
352 432 L
288 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
352 368 M
416 368 L
416 432 L
352 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
416 368 M
480 368 L
480 432 L
416 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
480 368 M
544 368 L
544 432 L
480 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
544 368 M
608 368 L
608 432 L
544 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
608 368 M
672 368 L
672 432 L
608 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
672 368 M
736 368 L
736 432 L
672 432 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
224 432 M
288 432 L
288 496 L
224 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
288 432 M
352 432 L
352 496 L
288 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
352 432 M
416 432 L
416 496 L
352 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
416 432 M
480 432 L
480 496 L
416 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
480 432 M
544 432 L
544 496 L
480 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
544 432 M
608 432 L
608 496 L
544 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
608 432 M
672 432 L
672 496 L
608 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
4.000000 setlinewidth
newpath
672 432 M
736 432 L
736 496 L
672 496 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
736 240 M
800 240 L
800 304 L
736 304 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
736 304 M
800 304 L
800 368 L
736 368 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
736 368 M
800 368 L
800 432 L
736 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
736 432 M
800 432 L
800 496 L
736 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 240 M
160 240 L
160 304 L
220 304 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 304 M
160 304 L
160 368 L
220 368 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 368 M
160 368 L
160 432 L
220 432 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 432 M
160 432 L
160 496 L
220 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
160 240 M
160 176 L
224 176 L
224 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 240 M
224 176 L
288 176 L
288 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
288 240 M
288 176 L
352 176 L
352 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
352 240 M
352 176 L
416 176 L
416 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
416 240 M
416 176 L
480 176 L
480 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
480 240 M
480 176 L
544 176 L
544 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
544 240 M
544 176 L
608 176 L
608 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
608 240 M
608 176 L
672 176 L
672 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
672 240 M
672 176 L
736 176 L
736 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
736 240 M
736 176 L
800 176 L
800 240 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
160 496 M
160 560 L
224 560 L
224 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
224 496 M
224 560 L
288 560 L
288 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
288 496 M
288 560 L
352 560 L
352 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
352 496 M
352 560 L
416 560 L
416 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
416 496 M
416 560 L
480 560 L
480 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
480 496 M
480 560 L
544 560 L
544 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
544 496 M
544 560 L
608 560 L
608 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
608 496 M
608 560 L
672 560 L
672 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
672 496 M
672 560 L
736 560 L
736 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[4] 0 setdash
newpath
736 496 M
736 560 L
800 560 L
800 496 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 479 126] concat
newpath
0 0 M 0 31 L 8.672 31 L 8.672 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
477 124 M 477 159 L 489.672 159 L 489.672 124 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 479 126] concat
/Helvetica-BoldOblique-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (i) 6.672 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 179 138] concat
newpath
0 0 M 0 31 L 29.36 31 L 29.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
177 136 M 177 171 L 210.36 171 L 210.36 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 179 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (-1) 27.36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 251 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
249 136 M 249 171 L 268.344 171 L 268.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 251 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (0) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 315 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
313 136 M 313 171 L 332.344 171 L 332.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 315 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (1) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 379 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
377 136 M 377 171 L 396.344 171 L 396.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 379 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (2) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 443 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
441 136 M 441 171 L 460.344 171 L 460.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 443 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (3) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 507 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
505 136 M 505 171 L 524.344 171 L 524.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 507 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (4) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 571 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
569 136 M 569 171 L 588.344 171 L 588.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 571 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (5) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 635 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
633 136 M 633 171 L 652.344 171 L 652.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 635 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (6) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 699 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
697 136 M 697 171 L 716.344 171 L 716.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 699 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (7) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 763 138] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
761 136 M 761 171 L 780.344 171 L 780.344 136 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 763 138] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (8) 13.344 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
179 96 translate
180 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
468 96 M
193 96 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
777 96 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
496 96 M
763 96 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 475 82] concat
newpath
0 0 M 0 31 L 16.664 31 L 16.664 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
473 80 M 473 115 L 493.664 115 L 493.664 80 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 475 82] concat
/Helvetica-BoldOblique-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (u) 14.664 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 127 82] concat
newpath
0 0 M 0 31 L 49.376 31 L 49.376 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
125 80 M 125 115 L 178.376 115 L 178.376 80 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 127 82] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (-1.0) 47.376 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 795 82] concat
newpath
0 0 M 0 31 L 35.36 31 L 35.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
793 80 M 793 115 L 832.36 115 L 832.36 80 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 795 82] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (9.0) 33.36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 207 34] concat
newpath
0 0 M 0 31 L 35.36 31 L 35.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
205 32 M 205 67 L 244.36 67 L 244.36 32 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 207 34] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (0.0) 33.36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 731 34] concat
newpath
0 0 M 0 31 L 35.36 31 L 35.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
729 32 M 729 67 L 768.36 67 L 768.36 32 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 731 34] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (1.0) 33.36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 475 34] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
473 32 M 473 67 L 492.344 67 L 492.344 32 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 475 34] concat
/Helvetica-BoldOblique-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (s) 13.344 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
243 48 translate
180 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
468 48 M
257 48 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
729 48 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
492 48 M
715 48 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 127 190] concat
newpath
0 0 M 0 31 L 29.36 31 L 29.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
125 188 M 125 223 L 158.36 223 L 158.36 188 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 127 190] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (-1) 27.36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 143 254] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 252 M 141 287 L 160.344 287 L 160.344 252 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 143 254] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (0) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 143 386] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 384 M 141 419 L 160.344 419 L 160.344 384 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 143 386] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (2) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 143 322] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 320 M 141 355 L 160.344 355 L 160.344 320 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 143 322] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (1) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 143 450] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 448 M 141 483 L 160.344 483 L 160.344 448 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 143 450] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (3) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 143 514] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 512 M 141 547 L 160.344 547 L 160.344 512 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 143 514] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (4) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 127 350] concat
newpath
0 0 M 0 31 L 8.672 31 L 8.672 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
125 348 M 125 383 L 137.672 383 L 137.672 348 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 127 350] concat
/Helvetica-BoldOblique-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (j) 6.672 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 51 162] concat
newpath
0 0 M 0 31 L 49.376 31 L 49.376 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
49 160 M 49 195 L 102.376 195 L 102.376 160 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 51 162] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (-1.0) 47.376 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 67 546] concat
newpath
0 0 M 0 31 L 35.36 31 L 35.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
65 544 M 65 579 L 104.36 579 L 104.36 544 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 67 546] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (5.0) 33.36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 75 350] concat
newpath
0 0 M 0 31 L 15.344 31 L 15.344 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
73 348 M 73 383 L 92.344 383 L 92.344 348 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 75 350] concat
/Helvetica-BoldOblique-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (v) 13.344 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 27 350] concat
newpath
0 0 M 0 31 L 9.992 31 L 9.992 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
25 348 M 25 383 L 38.992 383 L 38.992 348 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 27 350] concat
/Helvetica-BoldOblique-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (t) 7.992 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
84 195 translate
-90 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
84 352 M
84 209 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
84 545 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
84 376 M
84 531 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 15 226] concat
newpath
0 0 M 0 31 L 35.36 31 L 35.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
13 224 M 13 259 L 52.36 259 L 52.36 224 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 15 226] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (0.0) 33.36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 15 482] concat
newpath
0 0 M 0 31 L 35.36 31 L 35.36 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
13 480 M 13 515 L 52.36 515 L 52.36 480 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 15 482] concat
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 4.13793 M (1.0) 33.36 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
32 259 translate
-90 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
32 348 M
32 273 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
32 481 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
newpath
32 380 M
32 467 L
stroke
grestore
gsave
matrix currentmatrix
[5.65685 0 0 5.65685 436 392] concat
newpath
0 0 1 0 360 arc
setmatrix
0 0 0 setrgbcolor
closepath fill
1.000000 setlinewidth
matrix currentmatrix
[5.65685 0 0 5.65685 436 392] concat
newpath
0 0 1 0 360 arc
0 0 0 setrgbcolor
closepath setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
437 392 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
gsave
0 setlinejoin
383 392 translate
180 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
[2] 0 setdash
newpath
423 392 M
397 392 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
436 393 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
gsave
0 setlinejoin
436 335 translate
-90 rotate
1.1 1.1 scale
newpath 0 0 M -15 -3 L -15 3 L closepath fill
grestore
1.000000 setlinewidth
[2] 0 setdash
newpath
436 379 M
436 349 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 398 389] concat
newpath
0 0 M 0 27 L 17.144 27 L 17.144 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
396 387 M 396 419 L 417.144 419 L 417.144 387 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 398 389] concat
/Symbol findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 6 M (a) 15.144 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 443 339] concat
newpath
0 0 M 0 27 L 15.176 27 L 15.176 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
441 337 M 441 369 L 460.176 369 L 460.176 337 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 443 339] concat
/Symbol findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 6 M (b) 13.176 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
[12 4] 0 setdash
newpath
384 392 M
384 336 L
436 336 L
stroke
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1762 a Fm(Figure)13 b(3.10.)j(A)c(texture)i(image)c(and)j(the)f
(co)q(ordinates)h(used)h(to)e(access)i(it.)j(This)12
b(is)h(a)389 1812 y(t)o(w)o(o-dimensional)f(texture)k(with)f
Fh(n)e Fm(=)g(3)i(and)g Fh(m)e Fm(=)h(2.)20 b(A)15 b(one-dimensional)e
(texture)389 1862 y(w)o(ould)i(consist)h(of)f(a)g(single)g(horizon)o
(tal)f(strip.)23 b Fh(\013)15 b Fm(and)g Fh(\014)r Fm(,)h(v)n(alues)g
(used)g(in)f(blending)389 1912 y(adjacen)o(t)f(texels)h(to)f(obtain)f
(a)g(texture)j(v)n(alue,)d(are)h(also)f(sho)o(wn.)p 1807
1941 2 1204 v 350 1943 1459 2 v eop
%%Page: 91 100
91 99 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(91)120
286 y Fz(Alternate)18 b(T)l(exture)f(Image)h(Sp)q(eci\014cation)i
(Commands)120 372 y FC(T)l(exture)c(images)g(ma)o(y)f(also)h(b)q(e)g
(sp)q(eci\014ed)i(using)e(image)g(data)f(tak)o(en)g(directly)i(from)120
429 y(the)f(framebu\013er,)e(and)h(rectangular)g(subregions)h(of)e
(existing)i(texture)f(images)g(ma)o(y)120 485 y(b)q(e)h(resp)q
(eci\014ed.)191 542 y(The)f(command)234 619 y Fw(void)39
b Fz(Cop)o(yT)l(exImage2D)p FC(\()g Fw(enum)19 b Fv(tar)n(get)p
Fw(,)i(int)f Fv(level)p Fw(,)g(enum)f Fv(in-)302 675
y(ternalformat)p Fw(,)24 b(int)e Fv(x)p Fw(,)i(int)e
Fv(y)p Fw(,)i(sizei)d Fv(width)p Fw(,)j(sizei)e Fv(height)p
Fw(,)302 732 y(int)15 b Fv(b)n(or)n(der)g FC(\))g Fw(;)120
809 y FC(de\014nes)k(a)f(t)o(w)o(o-dimensional)g(texture)g(arra)o(y)f
(in)h(exactly)g(the)g(manner)g(of)f Fz(T)l(exIm-)120
866 y(age2D)p FC(,)h(except)f(that)g(the)g(image)g(data)g(are)f(tak)o
(en)h(from)g(the)g(framebu\013er)f(rather)120 922 y(than)f(from)f
(clien)o(t)i(memory)l(.)j(Curren)o(tly)l(,)c Fv(tar)n(get)f
FC(m)o(ust)g(b)q(e)i Fr(TEXTURE)p 1317 922 14 2 v 14
w(2D)p FC(.)e Fv(x)p FC(,)g Fv(y)p FC(,)g Fv(width)p
FC(,)120 979 y(and)k Fv(height)f FC(corresp)q(ond)g(precisely)i(to)e
(the)g(corresp)q(onding)h(argumen)o(ts)e(to)g Fz(Cop)o(y-)120
1035 y(Pixels)j FC(\(refer)f(to)h(section)g(4.3.3\);)f(they)h(sp)q
(ecify)h(the)f(image's)f Fv(width)i FC(and)f Fv(height)p
FC(,)120 1091 y(and)d(the)f(lo)o(w)o(er)g(left)h(\()p
Fy(x;)8 b(y)r FC(\))14 b(co)q(ordinates)h(of)g(the)h(framebu\013er)f
(region)g(to)g(b)q(e)h(copied.)120 1148 y(The)f(image)g(is)f(tak)o(en)g
(from)g(the)g(framebu\013er)g(exactly)h(as)f(if)h(these)f(argumen)o(ts)
g(w)o(ere)120 1204 y(passed)e(to)f Fz(Cop)o(yPixels)p
FC(,)g(with)g(argumen)o(t)g Fv(typ)n(e)h FC(set)f(to)g
Fr(COLOR)p FC(,)f(stopping)h(after)g(pixel)120 1261 y(transfer)17
b(pro)q(cessing)h(is)g(complete.)28 b(Subsequen)o(t)18
b(pro)q(cessing)g(is)g(iden)o(tical)i(to)c(that)120 1317
y(describ)q(ed)j(for)c Fz(T)l(exImage2D)p FC(,)h(b)q(eginning)j(with)d
(clamping)i(of)e(the)g(R,)h(G,)e(B,)i(and)120 1374 y(A)f(v)m(alues)i
(from)d(the)h(resulting)h(pixel)h(groups.)k(P)o(arameters)14
b Fv(level)p FC(,)h Fv(internalformat)p FC(,)120 1430
y(and)h Fv(b)n(or)n(der)f FC(are)g(sp)q(eci\014ed)j(using)e(the)f(same)
g(v)m(alues,)h(with)g(the)g(same)f(meanings,)g(as)120
1487 y(the)f(equiv)m(alen)o(t)h(argumen)o(ts)d(of)h Fz(T)l(exImage2D)p
FC(,)f(except)i(that)e Fv(internalformat)h FC(ma)o(y)120
1543 y(not)k(b)q(e)h(sp)q(eci\014ed)i(as)c Fr(1)p FC(,)i
Fr(2)p FC(,)f Fr(3)p FC(,)g(or)g Fr(4)p FC(.)25 b(An)18
b(in)o(v)m(alid)i(v)m(alue)e(sp)q(eci\014ed)h(for)e Fv(internalfor-)120
1600 y(mat)e FC(generates)f(the)g(error)g Fr(INVALID)p
754 1600 V 14 w(ENUM)p FC(.)f(The)i(constrain)o(ts)e(on)h
Fv(width)p FC(,)h Fv(height)p FC(,)g(and)120 1656 y Fv(b)n(or)n(der)h
FC(are)e(exactly)i(those)f(for)f(the)i(equiv)m(alen)o(t)h(argumen)o(ts)
d(of)h Fz(T)l(exImage2D)p FC(.)191 1712 y(The)g(command)234
1790 y Fw(void)28 b Fz(Cop)o(yT)l(exImage1D)p FC(\()e
Fw(enum)14 b Fv(tar)n(get)p Fw(,)g(int)g Fv(level)p Fw(,)f(enum)g
Fv(inter-)302 1846 y(nalformat)p Fw(,)i(int)g Fv(x)p
Fw(,)g(int)g Fv(y)p Fw(,)g(sizei)g Fv(width)p Fw(,)g(int)g
Fv(b)n(or)n(der)g FC(\))g Fw(;)120 1924 y FC(de\014nes)k(a)f
(one-dimensional)j(texture)c(arra)o(y)g(in)i(exactly)g(the)f(manner)g
(of)f Fz(T)l(exIm-)120 1980 y(age1D)p FC(,)g(except)f(that)f(the)h
(image)g(data)g(are)f(tak)o(en)h(from)f(the)h(framebu\013er,)f(rather)
120 2037 y(than)21 b(from)f(clien)o(t)i(memory)l(.)36
b(Curren)o(tly)l(,)22 b Fv(tar)n(get)e FC(m)o(ust)g(b)q(e)i
Fr(TEXTURE)p 1377 2037 V 14 w(1D)p FC(.)e(F)l(or)g(the)120
2093 y(purp)q(oses)e(of)e(deco)q(ding)j(the)d(texture)h(image,)g
Fz(Cop)o(yT)l(exImage1D)f FC(is)h(equiv)m(alen)o(t)120
2149 y(to)e(calling)h Fz(Cop)o(yT)l(exImage2D)e FC(with)h(corresp)q
(onding)h(argumen)o(ts)e(and)h Fv(height)g FC(of)120
2206 y(1,)k(except)g(that)e(the)i Fv(height)g FC(of)f(the)g(image)g(is)
h(alw)o(a)o(ys)f(1,)h(regardless)f(of)g(the)h(v)m(alue)120
2262 y(of)14 b Fv(b)n(or)n(der)p FC(.)20 b Fv(level)p
FC(,)13 b Fv(internalformat)p FC(,)h(and)g Fv(b)n(or)n(der)h
FC(are)f(sp)q(eci\014ed)i(using)f(the)g(same)f(v)m(al-)120
2319 y(ues,)f(with)g(the)f(same)g(meanings,)h(as)e(the)i(equiv)m(alen)o
(t)g(argumen)o(ts)f(of)f Fz(T)l(exImage1D)p FC(,)120
2375 y(except)18 b(that)f Fv(internalformat)g FC(ma)o(y)f(not)h(b)q(e)h
(sp)q(eci\014ed)i(as)d Fr(1)p FC(,)g Fr(2)p FC(,)g Fr(3)p
FC(,)g(or)g Fr(4)p FC(.)26 b(The)17 b(con-)120 2432 y(strain)o(ts)g(on)
f Fv(width)i FC(and)f Fv(b)n(or)n(der)g FC(are)f(exactly)h(those)g(of)f
(the)h(equiv)m(alen)o(t)i(argumen)o(ts)120 2488 y(of)c
Fz(T)l(exImage1D)p FC(.)p eop
%%Page: 92 101
92 100 bop 332 137 a FC(92)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)403 286 y FC(F)l(our)14 b(additional)j(commands,)446
378 y Fw(void)31 b Fz(T)l(exSubImage1D)p FC(\()g Fw(enum)15
b Fv(tar)n(get)p Fw(,)h(int)g Fv(level)p Fw(,)f(int)g
Fv(xo\013set)p Fw(,)514 435 y(sizei)f Fv(width)p Fw(,)i(enum)f
Fv(format)p Fw(,)h(enum)e Fv(typ)n(e)p Fw(,)h(void)g
Fv(*data)h FC(\))f Fw(;)446 539 y(void)44 b Fz(T)l(exSubImage2D)p
FC(\()g Fw(enum)22 b Fv(tar)n(get)p Fw(,)i(int)e Fv(level)p
Fw(,)h(int)f Fv(xo\013-)514 595 y(set)p Fw(,)17 b(int)f
Fv(yo\013set)p Fw(,)h(sizei)f Fv(width)p Fw(,)i(sizei)e
Fv(height)p Fw(,)i(enum)e Fv(format)p Fw(,)514 652 y(enum)f
Fv(typ)n(e)p Fw(,)g(void)f Fv(*data)i FC(\))f Fw(;)446
756 y(void)68 b Fz(Cop)o(yT)l(exSubImage1D)p FC(\()g
Fw(enum)34 b Fv(tar)n(get)p Fw(,)39 b(int)34 b Fv(level)p
Fw(,)514 812 y(int)15 b Fv(xo\013set)p Fw(,)f(int)h Fv(x)p
Fw(,)g(int)g Fv(y)p Fw(,)g(sizei)g Fv(width)g FC(\))g
Fw(;)446 916 y(void)68 b Fz(Cop)o(yT)l(exSubImage2D)p
FC(\()g Fw(enum)34 b Fv(tar)n(get)p Fw(,)39 b(int)34
b Fv(level)p Fw(,)514 973 y(int)28 b Fv(xo\013set)p Fw(,)k(int)c
Fv(yo\013set)p Fw(,)j(int)e Fv(x)p Fw(,)i(int)e Fv(y)p
Fw(,)i(sizei)d Fv(width)p Fw(,)514 1029 y(sizei)14 b
Fv(height)i FC(\))f Fw(;)332 1133 y FC(resp)q(ecify)24
b(only)g(a)e(rectangular)h(subregion)h(of)e(an)h(existing)h(texture)f
(arra)o(y)l(.)42 b(No)332 1190 y(c)o(hange)24 b(is)h(made)f(to)f(the)i
Fv(internalformat)p FC(,)g Fv(width)p FC(,)i Fv(height)p
FC(,)f(or)e Fv(b)n(or)n(der)g FC(parame-)332 1246 y(ters)18
b(of)f(the)h(sp)q(eci\014ed)i(texture)e(arra)o(y)l(,)f(nor)h(is)h(an)o
(y)e(c)o(hange)h(made)g(to)g(texel)g(v)m(alues)332 1303
y(outside)k(the)f(sp)q(eci\014ed)j(subregion.)38 b(Curren)o(tly)22
b(the)f Fv(tar)n(get)g FC(argumen)o(ts)g(of)g Fz(T)l(ex-)332
1359 y(SubImage1D)e FC(and)f Fz(Cop)o(yT)l(exSubImage1D)g
FC(m)o(ust)g(b)q(e)h Fr(TEXTURE)p 1586 1359 14 2 v 14
w(1D)p FC(,)f(and)g(the)332 1416 y Fv(tar)n(get)f FC(argumen)o(ts)e(of)
h Fz(T)l(exSubImage2D)g FC(and)h Fz(Cop)o(yT)l(exSubImage2D)e
FC(m)o(ust)332 1472 y(b)q(e)j Fr(TEXTURE)p 553 1472 V
15 w(2D)p FC(.)e(The)i Fv(level)e FC(parameter)h(of)g(eac)o(h)h
(command)f(sp)q(eci\014es)i(the)f(lev)o(el)h(of)332 1528
y(the)d(texture)g(arra)o(y)f(that)g(is)h(mo)q(di\014ed.)24
b(If)16 b Fv(level)f FC(is)i(less)f(than)g(zero)g(or)f(greater)h(than)
332 1585 y(the)k(base)g(2)g(logarithm)g(of)g(the)g(maxim)o(um)g
(texture)g(width)h(or)f(heigh)o(t,)h(the)f(error)332
1641 y Fr(INVALID)p 489 1641 V 14 w(VALUE)14 b FC(is)i(generated.)403
1698 y Fz(T)l(exSubImage2D)26 b FC(argumen)o(ts)g Fv(width)p
FC(,)k Fv(height)p FC(,)g Fv(format)p FC(,)g Fv(typ)n(e)p
FC(,)g(and)d Fv(data)332 1754 y(match)19 b FC(the)g(corresp)q(onding)h
(argumen)o(ts)e(to)g Fz(T)l(exImage2D)p FC(,)g(meaning)h(that)f(they)
332 1811 y(are)c(sp)q(eci\014ed)j(using)e(the)g(same)f(v)m(alues,)h
(and)g(ha)o(v)o(e)f(the)h(same)f(meanings.)20 b(Lik)o(ewise,)332
1867 y Fz(T)l(exSubImage1D)11 b FC(argumen)o(ts)f Fv(width)p
FC(,)i Fv(format)p FC(,)g Fv(typ)n(e)p FC(,)f(and)h Fv(data)f
FC(matc)o(h)g(the)g(corre-)332 1924 y(sp)q(onding)k(argumen)o(ts)d(to)h
Fz(T)l(exImage1D)p FC(.)g Fz(Cop)o(yT)l(exSubImage2D)f
FC(argumen)o(ts)332 1980 y Fv(x)p FC(,)19 b Fv(y)p FC(,)g
Fv(width)p FC(,)h(and)f Fv(height)g FC(matc)o(h)f(the)g(corresp)q
(onding)i(argumen)o(ts)e(to)f Fz(Cop)o(yT)l(ex-)332 2037
y(Image2D)p FC(.)e(And)h Fz(Cop)o(yT)l(exSubImage1D)e
FC(argumen)o(ts)g Fv(x)p FC(,)h Fv(y)p FC(,)g(and)g Fv(width)h
FC(matc)o(h)332 2093 y(the)c(corresp)q(onding)h(argumen)o(ts)f(to)f
Fz(Cop)o(yT)l(exImage1D)p FC(.)g(Eac)o(h)h(of)f(the)i(four)f
Fz(T)l(ex-)332 2149 y(SubImage)k FC(commands)g(in)o(terprets)g(and)g
(pro)q(cesses)h(pixel)g(groups)f(in)h(exactly)f(the)332
2206 y(manner)g(of)f(its)g Fz(T)l(exImage)g FC(coun)o(terpart,)g
(except)h(that)f(the)g(assignmen)o(t)h(of)f(R,)g(G,)332
2262 y(B,)g(and)g(A)g(pixel)i(group)e(v)m(alues)h(to)e(the)h(texture)g
(comp)q(onen)o(ts)g(is)h(con)o(trolled)f(b)o(y)g(the)332
2319 y Fv(internalformat)g FC(of)g(the)g(texture)g(arra)o(y)l(,)f(not)h
(b)o(y)g(an)g(argumen)o(t)f(to)h(the)g(command.)403 2375
y(Argumen)o(ts)24 b Fv(xo\013set)g FC(and)h Fv(yo\013set)g
FC(of)f Fz(T)l(exSubImage2D)h FC(and)f Fz(Cop)o(yT)l(ex-)332
2432 y(SubImage2D)c FC(sp)q(ecify)h(the)e(lo)o(w)o(er)h(left)g(texel)g
(co)q(ordinates)g(of)f(a)g Fv(width)p FC(-wide)j(b)o(y)332
2488 y Fv(height)p FC(-high)e(rectangular)e(subregion)h(of)f(the)h
(texture)f(arra)o(y)l(.)28 b(Negativ)o(e)18 b(v)m(alues)i(of)p
eop
%%Page: 93 102
93 101 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(93)120
286 y Fv(xo\013set)14 b FC(and)f Fv(yo\013set)h FC(corresp)q(ond)g(to)f
(the)g(co)q(ordinates)h(of)f(b)q(order)h(texels,)g(addressed)120
343 y(as)j(in)h(Figure)f(3.10.)24 b(T)l(aking)17 b Fy(w)683
350 y Fu(s)701 343 y FC(,)g Fy(h)757 350 y Fu(s)775 343
y FC(,)g(and)g Fy(b)915 350 y Fu(s)950 343 y FC(to)f(b)q(e)i(the)f(sp)q
(eci\014ed)i(width,)f(heigh)o(t,)120 399 y(and)d(b)q(order)g(width)g
(of)f(the)g(texture)g(arra)o(y)l(,)g(\(not)f(the)i(actual)g(arra)o(y)e
(dimensions)j Fy(w)1588 406 y Fu(t)1602 399 y FC(,)120
456 y Fy(h)146 463 y Fu(t)161 456 y FC(,)h(and)f Fy(b)300
463 y Fu(t)314 456 y FC(\),)g(and)h(taking)f Fy(x)p FC(,)g
Fy(y)r FC(,)g Fy(w)q FC(,)g(and)g Fy(h)h FC(to)f(b)q(e)g(the)h
Fv(xo\013set)p FC(,)f Fv(yo\013set)p FC(,)g Fv(width)p
FC(,)h(and)120 512 y Fv(height)12 b FC(argumen)o(t)f(v)m(alues,)i(an)o
(y)e(of)f(the)i(follo)o(wing)g(relationships)h(generates)e(the)g(error)
120 569 y Fr(INVALID)p 277 569 14 2 v 15 w(VALUE)p FC(:)788
627 y Fy(x)h(<)h FB(\000)p Fy(b)929 634 y Fu(s)707 716
y Fy(x)e FC(+)f Fy(w)j(>)g(w)916 723 y Fu(s)944 716 y
FB(\000)e Fy(b)1010 723 y Fu(s)789 804 y Fy(y)j(<)f FB(\000)p
Fy(b)928 811 y Fu(s)715 893 y Fy(y)f FC(+)f Fy(h)i(>)g(h)908
900 y Fu(s)936 893 y FB(\000)e Fy(b)1002 900 y Fu(s)120
979 y FC(\(Recall)h(that)e Fy(w)397 986 y Fu(s)425 979
y FC(and)h Fy(h)535 986 y Fu(s)564 979 y FC(include)i(t)o(wice)d(the)h
(sp)q(eci\014ed)h(b)q(order)f(width)g Fy(b)1365 986 y
Fu(s)1383 979 y FC(.\))18 b(Coun)o(ting)120 1035 y(from)11
b(zero,)h(the)g Fy(n)p FC(th)g(pixel)i(group)d(is)h(assigned)h(to)e
(the)h(texel)g(with)g(\()p Fy(u;)c(v)r FC(\))i(co)q(ordinates)120
1092 y(\()p Fy(i;)e(j)s FC(\),)13 b(where)684 1151 y
Fy(i)g FC(=)g Fy(x)d FC(+)g(\()p Fy(n)j FC(mo)q(d)f Fy(w)q
FC(\))638 1239 y Fy(j)j FC(=)e Fy(y)f FC(+)e(\()p FB(b)p
Fy(n=w)q FB(c)j FC(mo)q(d)f Fy(h)p FC(\))191 1326 y(The)29
b Fv(xo\013set)g FC(argumen)o(t)f(of)h Fz(T)l(exSubImage1D)g
FC(and)g Fz(Cop)o(yT)l(exSubIm-)120 1383 y(age1D)19 b
FC(sp)q(eci\014es)h(the)f(left)f(texel)h(co)q(ordinate)g(of)f(a)g
Fv(width)p FC(-wide)i(subregion)f(of)f(the)120 1439 y(texture)h(arra)o
(y)l(.)29 b(Negativ)o(e)19 b(v)m(alues)h(of)e Fv(xo\013set)h
FC(corresp)q(ond)g(to)f(the)h(co)q(ordinates)g(of)120
1495 y(b)q(order)c(texels.)20 b(T)l(aking)15 b Fy(w)594
1502 y Fu(s)626 1495 y FC(and)f Fy(b)733 1502 y Fu(s)766
1495 y FC(to)f(b)q(e)i(the)g(sp)q(eci\014ed)h(width)f(and)g(b)q(order)f
(width)120 1552 y(of)g(the)h(texture)f(arra)o(y)l(,)f(and)i
Fy(x)g FC(and)f Fy(w)h FC(to)f(b)q(e)h(the)g Fv(xo\013set)f
FC(and)h Fv(width)g FC(argumen)o(t)f(v)m(al-)120 1608
y(ues,)i(either)f(of)g(the)h(follo)o(wing)f(relationships)i(generates)e
(the)g(error)g Fr(INVALID)p 1475 1608 V 14 w(VALUE)p
FC(:)788 1713 y Fy(x)d(<)h FB(\000)p Fy(b)929 1720 y
Fu(s)707 1820 y Fy(x)e FC(+)f Fy(w)j(>)g(w)916 1827 y
Fu(s)944 1820 y FB(\000)e Fy(b)1010 1827 y Fu(s)120 1906
y FC(Coun)o(ting)h(from)f(zero,)g(the)h Fy(n)p FC(th)f(pixel)j(group)d
(is)h(assigned)g(to)e(the)i(texel)g(with)g(in)o(ternal)120
1962 y(in)o(teger)k(co)q(ordinates)f([)p Fy(i)p FC(],)f(where)684
2067 y Fy(i)f FC(=)g Fy(x)d FC(+)g(\()p Fy(n)j FC(mo)q(d)f
Fy(w)q FC(\))120 2191 y Fz(T)l(exture)17 b(P)o(arameters)120
2278 y FC(V)l(arious)i(parameters)e(con)o(trol)g(ho)o(w)h(the)f
(texture)h(arra)o(y)f(is)h(treated)f(when)i(applied)120
2335 y(to)c(a)g(fragmen)o(t.)k(Eac)o(h)c(parameter)f(is)i(set)f(b)o(y)g
(calling)234 2432 y Fw(void)76 b Fz(T)l(exP)o(arameter)p
FB(f)p Fz(if)p FB(g)p FC(\()f Fw(enum)37 b Fv(tar)n(get)p
Fw(,)44 b(enum)38 b Fv(pname)p Fw(,)302 2488 y(T)15 b
Fv(p)n(ar)n(am)h FC(\))f Fw(;)p eop
%%Page: 94 103
94 102 bop 332 137 a FC(94)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 406 242 1348 2 v 405 299 2 57 v
585 282 a FC(Name)p 878 299 V 225 w(T)o(yp)q(e)p 1072
299 V 71 w(Legal)16 b(V)l(alues)p 1752 299 V 406 301
1348 2 v 406 309 V 405 365 2 57 v 496 348 a Fr(TEXTURE)p
653 348 14 2 v 14 w(WRAP)p 755 348 V 15 w(S)p 878 365
2 57 v 120 w FC(in)o(teger)p 1072 365 V 54 w Fr(CLAMP)p
FC(,)e Fr(REPEAT)p 1752 365 V 406 367 1348 2 v 405 423
2 57 v 496 406 a(TEXTURE)p 653 406 14 2 v 14 w(WRAP)p
755 406 V 15 w(T)p 878 423 2 57 v 120 w FC(in)o(teger)p
1072 423 V 54 w Fr(CLAMP)p FC(,)g Fr(REPEAT)p 1752 423
V 406 425 1348 2 v 405 707 2 283 v 452 465 a(TEXTURE)p
609 465 14 2 v 15 w(MIN)p 690 465 V 15 w(FILTER)p 878
707 2 283 v 75 w FC(in)o(teger)p 1072 707 V 54 w Fr(NEAREST)p
FC(,)320 b Fr(LINEAR)p FC(,)1098 521 y Fr(NEAREST)p 1255
521 14 2 v 14 w(MIPMAP)p 1401 521 V 15 w(NEAREST)p FC(,)1098
578 y Fr(NEAREST)p 1255 578 V 14 w(MIPMAP)p 1401 578
V 15 w(LINEAR)p FC(,)1098 634 y Fr(LINEAR)p 1233 634
V 14 w(MIPMAP)p 1379 634 V 15 w(NEAREST)p FC(,)1098 690
y Fr(LINEAR)p 1233 690 V 14 w(MIPMAP)p 1379 690 V 15
w(LINEAR)p 1752 707 2 283 v 406 709 1348 2 v 405 765
2 57 v 452 749 a(TEXTURE)p 609 749 14 2 v 15 w(MAG)p
690 749 V 15 w(FILTER)p 878 765 2 57 v 75 w FC(in)o(teger)p
1072 765 V 54 w Fr(NEAREST)p FC(,)13 b Fr(LINEAR)p 1752
765 V 406 767 1348 2 v 405 824 2 57 v 431 807 a(TEXTURE)p
588 807 14 2 v 14 w(BORDER)p 734 807 V 14 w(COLOR)p 878
824 2 57 v 49 w FC(4)i(\015oats)p 1072 824 V 49 w(an)o(y)g(4)g(v)m
(alues)h(in)g([0)p Fy(;)8 b FC(1])p 1752 824 V 406 825
1348 2 v 405 882 2 57 v 471 865 a Fr(TEXTURE)p 628 865
14 2 v 14 w(PRIORITY)p 878 882 2 57 v 117 w FC(\015oat)p
1072 882 V 77 w(an)o(y)15 b(v)m(alue)h(in)g([0)p Fy(;)8
b FC(1])p 1752 882 V 406 883 1348 2 v 604 961 a(T)l(able)16
b(3.9:)j(T)l(exture)c(parameters)g(and)g(their)h(v)m(alues.)446
1143 y Fw(void)68 b Fz(T)l(exP)o(arameter)p FB(f)p Fz(if)p
FB(g)p Fz(v)p FC(\()f Fw(enum)34 b Fv(tar)n(get)p Fw(,)39
b(enum)34 b Fv(pname)p Fw(,)514 1199 y(T)15 b Fv(p)n(ar)n(ams)g
FC(\))g Fw(;)332 1287 y Fv(tar)n(get)k FC(is)h(the)f(target,)f(either)i
Fr(TEXTURE)p 1036 1287 14 2 v 14 w(1D)f FC(or)f Fr(TEXTURE)p
1326 1287 V 15 w(2D)p FC(,)g Fv(pname)h FC(is)h(a)e(sym)o(b)q(olic)332
1343 y(constan)o(t)13 b(indicating)j(the)e(parameter)g(to)f(b)q(e)i
(set;)e(the)i(p)q(ossible)g(constan)o(ts)e(and)i(cor-)332
1400 y(resp)q(onding)g(parameters)d(are)h(summarized)h(in)g(T)l(able)g
(3.9.)19 b(In)14 b(the)f(\014rst)g(form)f(of)h(the)332
1456 y(command,)g Fv(p)n(ar)n(am)g FC(is)h(a)e(v)m(alue)i(to)f(whic)o
(h)h(to)e(set)h(a)f(single-v)m(alued)k(parameter;)d(in)g(the)332
1513 y(second)j(form)e(of)h(the)g(command,)g Fv(p)n(ar)n(ams)g
FC(is)g(an)g(arra)o(y)f(of)h(parameters)f(whose)h(t)o(yp)q(e)332
1569 y(dep)q(ends)h(on)f(the)g(parameter)f(b)q(eing)i(set.)k(If)15
b(the)g(v)m(alues)h(for)e Fr(TEXTURE)p 1560 1569 V 14
w(BORDER)p 1706 1569 V 15 w(COLOR)332 1626 y FC(are)g(sp)q(eci\014ed)i
(as)d(in)o(tegers,)h(the)g(con)o(v)o(ersion)h(for)e(signed)i(in)o
(tegers)f(from)f(T)l(able)i(2.6)e(is)332 1682 y(applied)19
b(to)d(con)o(v)o(ert)g(the)g(v)m(alues)i(to)e(\015oating-p)q(oin)o(t.)
25 b(Eac)o(h)17 b(of)f(the)h(four)f(v)m(alues)i(set)332
1738 y(b)o(y)d Fr(TEXTURE)p 552 1738 V 14 w(BORDER)p
698 1738 V 15 w(COLOR)f FC(is)i(clamp)q(ed)g(to)f(lie)h(in)g([0)p
Fy(;)8 b FC(1].)332 1857 y Fz(T)l(exture)17 b(W)l(rap)g(Mo)q(des)332
1943 y FC(If)j Fr(TEXTURE)p 539 1943 V 14 w(WRAP)p 641
1943 V 15 w(S)f FC(or)g Fr(TEXTURE)p 911 1943 V 14 w(WRAP)p
1013 1943 V 15 w(T)g FC(is)h(set)f(to)g Fr(REPEAT)p FC(,)f(then)h(the)h
(GL)f(ignores)332 2000 y(the)c(in)o(teger)g(part)f(of)h
Fy(s)g FC(or)f Fy(t)h FC(co)q(ordinates,)g(resp)q(ectiv)o(ely)l(,)h
(using)g(only)f(the)g(fractional)332 2056 y(part.)22
b(\(F)l(or)15 b(a)h(n)o(um)o(b)q(er)g Fy(r)q FC(,)f(the)i(fractional)f
(part)f(is)i Fy(r)11 b FB(\000)g(b)p Fy(r)q FB(c)p FC(,)16
b(regardless)g(of)g(the)g(sign)332 2112 y(of)h Fy(r)q
FC(;)g(recall)h(that)e(the)h Fv(\015o)n(or)g FC(function)h(truncates)f
(to)o(w)o(ards)e FB(\0001)p FC(.\))26 b Fr(CLAMP)16 b
FC(causes)h Fy(s)332 2169 y FC(or)h Fy(t)h FC(co)q(ordinates)f(to)g(b)q
(e)h(clamp)q(ed)h(to)d(the)i(range)f([0)p Fy(;)8 b FC(1].)27
b(The)18 b(initial)j(state)c(is)i(for)332 2225 y(b)q(oth)c
Fy(s)h FC(and)f Fy(t)h FC(b)q(eha)o(vior)g(to)e(b)q(e)i(that)e(giv)o
(en)i(b)o(y)f Fr(REPEAT)p FC(.)332 2346 y Fl(3.8.1)55
b(T)-5 b(exture)18 b(Mini\014cation)332 2432 y FC(Applying)k(a)e
(texture)f(to)h(a)f(primitiv)o(e)j(implies)g(a)e(mapping)g(from)g
(texture)f(image)332 2488 y(space)13 b(to)f(framebu\013er)g(image)g
(space.)20 b(In)13 b(general,)g(this)g(mapping)g(in)o(v)o(olv)o(es)g(a)
f(recon-)p eop
%%Page: 95 104
95 103 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(95)120
286 y(struction)14 b(of)e(the)i(sampled)g(texture)f(image,)g(follo)o(w)
o(ed)h(b)o(y)f(a)g(homogeneous)g(w)o(arping)120 343 y(implied)21
b(b)o(y)d(the)g(mapping)h(to)e(framebu\013er)h(space,)g(then)h(a)e
(\014ltering,)j(follo)o(w)o(ed)e(\014-)120 399 y(nally)j(b)o(y)f(a)f
(resampling)i(of)e(the)g(\014ltered,)j(w)o(arp)q(ed,)e(reconstructed)g
(image)f(b)q(efore)120 456 y(applying)e(it)f(to)f(a)g(fragmen)o(t.)20
b(In)c(the)g(GL)f(this)h(mapping)h(is)f(appro)o(ximated)f(b)o(y)h(one)
120 512 y(of)h(t)o(w)o(o)f(simple)j(\014ltering)f(sc)o(hemes.)26
b(One)18 b(of)e(these)i(sc)o(hemes)f(is)h(selected)g(based)g(on)120
569 y(whether)e(the)f(mapping)g(from)g(texture)f(space)i(to)e
(framebu\013er)h(space)g(is)g(deemed)h(to)120 625 y Fv(magnify)f
FC(or)f Fv(minify)g FC(the)h(texture)f(image.)20 b(The)15
b(c)o(hoice)g(is)g(go)o(v)o(erned)g(b)o(y)f(a)h(scale)g(fac-)120
682 y(tor)e Fy(\032)p FC(\()p Fy(x;)8 b(y)r FC(\))k(and)h
Fy(\025)p FC(\()p Fy(x;)8 b(y)r FC(\))j FB(\021)i FC(log)673
693 y Fq(2)692 682 y FC([)p Fy(\032)p FC(\()p Fy(x;)8
b(y)r FC(\)];)j(if)j Fy(\025)p FC(\()p Fy(x;)8 b(y)r
FC(\))k(is)i(less)g(than)g(or)f(equal)h(to)f(some)120
738 y(constan)o(t)k(\(the)g(selection)i(of)e(the)h(constan)o(t)f(is)h
(describ)q(ed)h(b)q(elo)o(w)f(in)h(section)f(3.8.2\))120
795 y(the)c(texture)g(is)g(said)h(to)e(b)q(e)h(magni\014ed;)h(if)g(it)f
(is)g(greater,)f(the)h(texture)f(is)i(mini\014ed.)21
b Fy(\025)120 851 y FC(is)16 b(called)h(the)e Fv(level)g(of)i(detail)p
FC(.)191 907 y(Let)f Fy(s)p FC(\()p Fy(x;)8 b(y)r FC(\))14
b(b)q(e)j(the)e(function)i(that)e(asso)q(ciates)g(an)h
Fy(s)g FC(texture)f(co)q(ordinate)h(with)120 964 y(eac)o(h)23
b(set)f(of)f(windo)o(w)i(co)q(ordinates)f(\()p Fy(x;)8
b(y)r FC(\))21 b(that)g(lie)j(within)f(a)f(primitiv)o(e;)27
b(de\014ne)120 1020 y Fy(t)p FC(\()p Fy(x;)8 b(y)r FC(\))18
b(analogously)l(.)31 b(Let)19 b Fy(u)p FC(\()p Fy(x;)8
b(y)r FC(\))16 b(=)j(2)843 1004 y Fu(n)866 1020 y Fy(s)p
FC(\()p Fy(x;)8 b(y)r FC(\))18 b(and)h Fy(v)r FC(\()p
Fy(x;)8 b(y)r FC(\))16 b(=)j(2)1328 1004 y Fu(m)1361
1020 y Fy(t)p FC(\()p Fy(x;)8 b(y)r FC(\))17 b(\(for)h(a)120
1077 y(one-dimensional)h(texture,)c(de\014ne)i Fy(v)r
FC(\()p Fy(x;)8 b(y)r FC(\))k FB(\021)i FC(0\).)21 b(F)l(or)15
b(a)h(p)q(olygon,)g Fy(\032)f FC(is)i(giv)o(en)f(at)f(a)120
1133 y(fragmen)o(t)f(with)i(windo)o(w)f(co)q(ordinates)h(\()p
Fy(x;)8 b(y)r FC(\))14 b(b)o(y)291 1269 y Fy(\032)f FC(=)g(max)468
1183 y Fi(8)468 1220 y(<)468 1295 y(:)505 1188 y(s)p
546 1188 343 2 v 546 1209 a(\022)582 1238 y Fy(@)s(u)p
582 1258 53 2 v 582 1300 a(@)s(x)639 1209 y Fi(\023)670
1220 y Fq(2)700 1269 y FC(+)745 1209 y Fi(\022)782 1238
y Fy(@)s(v)p 781 1258 V 781 1300 a(@)s(x)838 1209 y Fi(\023)869
1220 y Fq(2)889 1269 y Fy(;)910 1189 y Fi(s)p 950 1189
341 2 v 950 1209 a(\022)986 1238 y Fy(@)s(u)p 986 1258
53 2 v 987 1300 a(@)s(y)1043 1209 y Fi(\023)1074 1220
y Fq(2)1104 1269 y FC(+)1149 1209 y Fi(\022)1185 1238
y Fy(@)s(v)p 1185 1258 51 2 v 1185 1300 a(@)s(y)1240
1209 y Fi(\023)1271 1220 y Fq(2)1291 1183 y Fi(9)1291
1220 y(=)1291 1295 y(;)1499 1269 y FC(\(3.11\))120 1404
y(where)19 b Fy(@)s(u=@)s(x)f FC(indicates)i(the)f(deriv)m(ativ)o(e)h
(of)e Fy(u)h FC(with)g(resp)q(ect)g(to)f(windo)o(w)h
Fy(x)p FC(,)h(and)120 1461 y(similarly)d(for)e(the)g(other)g(deriv)m
(ativ)o(es.)21 b(F)l(or)15 b(a)g(line,)h(the)f(form)o(ula)g(is)356
1591 y Fy(\032)d FC(=)440 1511 y Fi(s)p 481 1511 829
2 v 481 1532 a(\022)517 1560 y Fy(@)s(u)p 517 1581 53
2 v 517 1622 a(@)s(x)574 1591 y FC(\001)p Fy(x)e FC(+)699
1560 y Fy(@)s(u)p 699 1581 V 700 1622 a(@)s(y)756 1591
y FC(\001)p Fy(y)818 1532 y Fi(\023)849 1542 y Fq(2)879
1591 y FC(+)924 1532 y Fi(\022)961 1560 y Fy(@)s(v)p
960 1581 V 960 1622 a(@)s(x)1017 1591 y FC(\001)p Fy(x)g
FC(+)1142 1560 y Fy(@)s(v)p 1142 1581 51 2 v 1142 1622
a(@)s(y)1197 1591 y FC(\001)p Fy(y)1259 1532 y Fi(\023)1289
1542 y Fq(2)1309 1532 y Fi(\036)1353 1591 y Fy(l)q(;)118
b FC(\(3.12\))120 1706 y(where)17 b(\001)p Fy(x)d FC(=)g
Fy(x)406 1713 y Fq(2)437 1706 y FB(\000)d Fy(x)509 1713
y Fq(1)544 1706 y FC(and)17 b(\001)p Fy(y)f FC(=)e Fy(y)781
1713 y Fq(2)812 1706 y FB(\000)d Fy(y)880 1713 y Fq(1)916
1706 y FC(with)16 b(\()p Fy(x)1064 1713 y Fq(1)1084 1706
y Fy(;)8 b(y)1127 1713 y Fq(1)1146 1706 y FC(\))16 b(and)g(\()p
Fy(x)1313 1713 y Fq(2)1332 1706 y Fy(;)8 b(y)1375 1713
y Fq(2)1395 1706 y FC(\))15 b(b)q(eing)j(the)120 1763
y(segmen)o(t's)c(windo)o(w)h(co)q(ordinate)h(endp)q(oin)o(ts)g(and)f
Fy(l)e FC(=)1085 1725 y Fi(p)p 1126 1725 221 2 v 1126
1763 a FC(\001)p Fy(x)1190 1750 y Fq(2)1220 1763 y FC(+)e(\001)p
Fy(y)1328 1750 y Fq(2)1347 1763 y FC(.)20 b(F)l(or)14
b(a)h(p)q(oin)o(t,)120 1819 y(pixel)i(rectangle,)e(or)g(bitmap,)g
Fy(\032)d FB(\021)h FC(1.)191 1876 y(While)19 b(it)e(is)h(generally)h
(agreed)e(that)g(equations)g(3.11)g(and)g(3.12)f(giv)o(e)i(the)f(b)q
(est)120 1932 y(results)e(when)f(texturing,)g(they)g(are)f(often)h
(impractical)h(to)f(implemen)o(t.)20 b(Therefore,)120
1989 y(an)i(implemen)o(tation)i(ma)o(y)d(appro)o(ximate)g(the)i(ideal)g
Fy(\032)e FC(with)i(a)e(function)i Fy(f)5 b FC(\()p Fy(x;)j(y)r
FC(\))120 2045 y(sub)s(ject)15 b(to)g(these)g(conditions:)176
2129 y(1.)22 b Fy(f)5 b FC(\()p Fy(x;)j(y)r FC(\))13
b(is)i(con)o(tin)o(uous)f(and)h(monotonically)g(increasing)h(in)f(eac)o
(h)f(of)g FB(j)p Fy(@)s(u=@)s(x)p FB(j)p FC(,)234 2186
y FB(j)p Fy(@)s(u=@)s(y)r FB(j)p FC(,)f FB(j)p Fy(@)s(v)r(=@)s(x)p
FB(j)p FC(,)g(and)i FB(j)p Fy(@)s(v)r(=@)s(y)r FB(j)p
FC(,)176 2275 y(2.)22 b(Let)345 2376 y Fy(m)385 2383
y Fu(u)420 2376 y FC(=)13 b(max)560 2316 y Fi(\032)591
2315 y(\014)591 2340 y(\014)591 2365 y(\014)591 2389
y(\014)610 2345 y Fy(@)s(u)p 610 2365 53 2 v 610 2407
a(@)s(x)667 2315 y Fi(\014)667 2340 y(\014)667 2365 y(\014)667
2389 y(\014)689 2376 y Fy(;)710 2315 y Fi(\014)709 2340
y(\014)709 2365 y(\014)709 2389 y(\014)728 2345 y Fy(@)s(u)p
728 2365 V 729 2407 a(@)s(y)786 2315 y Fi(\014)786 2340
y(\014)786 2365 y(\014)786 2389 y(\014)799 2316 y(\033)884
2376 y FC(and)45 b Fy(m)1042 2383 y Fu(v)1075 2376 y
FC(=)13 b(max)1215 2316 y Fi(\032)1247 2315 y(\014)1247
2340 y(\014)1247 2365 y(\014)1247 2389 y(\014)1267 2345
y Fy(@)s(v)p 1265 2365 V 1265 2407 a(@)s(x)1323 2315
y Fi(\014)1323 2340 y(\014)1323 2365 y(\014)1323 2389
y(\014)1344 2376 y Fy(;)1365 2315 y Fi(\014)1365 2340
y(\014)1365 2365 y(\014)1365 2389 y(\014)1384 2345 y
Fy(@)s(v)p 1383 2365 51 2 v 1383 2407 a(@)s(y)1439 2315
y Fi(\014)1439 2340 y(\014)1439 2365 y(\014)1439 2389
y(\014)1453 2316 y(\033)1491 2376 y Fy(:)234 2488 y FC(Then)j(max)o
FB(f)p Fy(m)500 2495 y Fu(u)522 2488 y Fy(;)8 b(m)583
2495 y Fu(v)603 2488 y FB(g)k(\024)h Fy(f)5 b FC(\()p
Fy(x;)j(y)r FC(\))k FB(\024)h Fy(m)920 2495 y Fu(u)952
2488 y FC(+)e Fy(m)1038 2495 y Fu(v)1058 2488 y FC(.)p
eop
%%Page: 96 105
96 104 bop 332 137 a FC(96)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)403 286 y FC(When)13 b Fy(\025)g FC(indicates)i
(mini\014cation,)g(the)f(v)m(alue)h(assigned)f(to)e Fr(TEXTURE)p
1603 286 14 2 v 15 w(MIN)p 1684 286 V 15 w(FILTER)332
343 y FC(is)i(used)g(to)f(determine)i(ho)o(w)e(the)g(texture)g(v)m
(alue)i(for)e(a)g(fragmen)o(t)g(is)h(selected.)20 b(When)332
399 y Fr(TEXTURE)p 489 399 V 14 w(MIN)p 569 399 V 15
w(FILTER)13 b FC(is)h Fr(NEAREST)p FC(,)e(the)h(texel)i(nearest)e(\(in)
h(Manhattan)f(distance\))h(to)332 456 y(that)j(sp)q(eci\014ed)j(b)o(y)e
(\()p Fy(s;)8 b(t)p FC(\))18 b(is)g(obtained.)29 b(This)18
b(means)g(the)g(texel)h(at)e(lo)q(cation)i(\()p Fy(i;)8
b(j)s FC(\))332 512 y(b)q(ecomes)16 b(the)f(texture)g(v)m(alue,)h(with)
g Fy(i)f FC(giv)o(en)g(b)o(y)853 639 y Fy(i)e FC(=)930
567 y Fi(\()984 611 y FB(b)p Fy(u)p FB(c)p Fy(;)99 b(s)13
b(<)g FC(1)p Fy(;)984 667 y FC(2)1007 651 y Fu(n)1040
667 y FB(\000)d FC(1)p Fy(;)41 b(s)13 b FC(=)g(1)p Fy(:)1710
639 y FC(\(3.13\))332 769 y(\(Recall)21 b(that)d(if)i
Fr(TEXTURE)p 796 769 V 14 w(WRAP)p 898 769 V 15 w(S)f
FC(is)h Fr(REPEAT)p FC(,)d(then)j(0)f FB(\024)h Fy(s)f(<)h
FC(1.\))31 b(Similarly)l(,)22 b Fy(j)g FC(is)332 825
y(found)16 b(as)848 903 y Fy(j)f FC(=)930 831 y Fi(\()984
875 y FB(b)p Fy(v)r FB(c)p Fy(;)112 b(t)13 b(<)g FC(1)p
Fy(;)984 931 y FC(2)1007 915 y Fu(m)1050 931 y FB(\000)e
FC(1)p Fy(;)41 b(t)13 b FC(=)g(1)p Fy(:)1710 903 y FC(\(3.14\))332
1014 y(F)l(or)e(a)h(one-dimensional)i(texture,)e Fy(j)i
FC(is)e(irrelev)m(an)o(t;)i(the)d(texel)i(at)e(lo)q(cation)h
Fy(i)g FC(b)q(ecomes)332 1071 y(the)j(texture)g(v)m(alue.)403
1127 y(When)g Fr(TEXTURE)p 692 1127 V 15 w(MIN)p 773
1127 V 15 w(FILTER)f FC(is)i Fr(LINEAR)p FC(,)e(a)h(2)10
b FB(\002)g FC(2)15 b(square)h(of)f(texels)h(is)g(selected.)332
1184 y(This)g(square)f(is)h(obtained)g(b)o(y)f(\014rst)f(computing)541
1311 y Fy(i)557 1318 y Fq(0)589 1311 y FC(=)637 1239
y Fi(\()691 1282 y FB(b)p Fy(u)d FB(\000)f FC(1)p Fy(=)p
FC(2)p FB(c)i FC(mo)q(d)h(2)1017 1266 y Fu(n)1040 1282
y Fy(;)41 b Fr(TEXTURE)p 1251 1282 V 15 w(WRAP)p 1354
1282 V 14 w(S)15 b FC(is)h Fr(REPEAT)o Fy(;)691 1339
y FB(b)p Fy(u)11 b FB(\000)f FC(1)p Fy(=)p FC(2)p FB(c)p
Fy(;)199 b Fr(TEXTURE)p 1251 1339 V 15 w(WRAP)p 1354
1339 V 14 w(S)15 b FC(is)h Fr(CLAMP)332 1438 y FC(and)542
1516 y Fy(j)561 1523 y Fq(0)593 1516 y FC(=)641 1444
y Fi(\()696 1487 y FB(b)p Fy(v)c FB(\000)e FC(1)p Fy(=)p
FC(2)p FB(c)i FC(mo)q(d)h(2)1019 1471 y Fu(m)1052 1487
y Fy(;)41 b Fr(TEXTURE)p 1263 1487 V 14 w(WRAP)p 1365
1487 V 15 w(T)15 b FC(is)h Fr(REPEAT)696 1544 y FB(b)p
Fy(v)c FB(\000)e FC(1)p Fy(=)p FC(2)p FB(c)p Fy(;)209
b Fr(TEXTURE)p 1263 1544 V 14 w(WRAP)p 1365 1544 V 15
w(T)15 b FC(is)h Fr(CLAMP)o Fy(:)332 1627 y FC(Then)562
1704 y Fy(i)578 1711 y Fq(1)610 1704 y FC(=)658 1632
y Fi(\()712 1676 y FC(\()p Fy(i)746 1683 y Fq(0)775 1676
y FC(+)11 b(1\))h(mo)q(d)g(2)996 1660 y Fu(n)1020 1676
y Fy(;)41 b Fr(TEXTURE)p 1231 1676 V 14 w(WRAP)p 1333
1676 V 15 w(S)15 b FC(is)h Fr(REPEAT)n Fy(;)712 1732
y(i)728 1739 y Fq(0)758 1732 y FC(+)10 b(1)p Fy(;)235
b Fr(TEXTURE)p 1231 1732 V 14 w(WRAP)p 1333 1732 V 15
w(S)15 b FC(is)h Fr(CLAMP)332 1815 y FC(and)554 1893
y Fy(j)573 1900 y Fq(1)605 1893 y FC(=)653 1821 y Fi(\()707
1865 y FC(\()p Fy(j)744 1872 y Fq(0)773 1865 y FC(+)11
b(1\))h(mo)q(d)h(2)995 1848 y Fu(m)1028 1865 y Fy(;)41
b Fr(TEXTURE)p 1239 1865 V 14 w(WRAP)p 1341 1865 V 15
w(T)15 b FC(is)h Fr(REPEAT)n Fy(;)707 1921 y(j)726 1928
y Fq(0)756 1921 y FC(+)10 b(1)p Fy(;)245 b Fr(TEXTURE)p
1239 1921 V 14 w(WRAP)p 1341 1921 V 15 w(T)15 b FC(is)h
Fr(CLAMP)n Fy(:)332 2004 y FC(Let)649 2060 y Fy(\013)d
FC(=)g(frac\()p Fy(u)d FB(\000)g FC(1)p Fy(=)p FC(2\))44
b(and)i Fy(\014)15 b FC(=)e(frac)o(\()p Fy(v)f FB(\000)e
FC(1)p Fy(=)p FC(2\))332 2141 y(where)i(frac)o(\()p Fy(x)p
FC(\))f(denotes)g(the)g(fractional)h(part)e(of)h Fy(x)p
FC(.)18 b(Let)12 b Fy(\034)1338 2148 y Fu(ij)1379 2141
y FC(b)q(e)g(the)f(texel)h(at)f(lo)q(cation)332 2197
y(\()p Fy(i;)d(j)s FC(\))13 b(in)j(the)f(texture)g(image.)20
b(Then)c(the)f(texture)g(v)m(alue,)h Fy(\034)k FC(is)c(found)f(as)387
2294 y Fy(\034)j FC(=)13 b(\(1)d FB(\000)g Fy(\013)p
FC(\)\(1)f FB(\000)i Fy(\014)r FC(\))p Fy(\034)778 2301
y Fu(i)790 2306 y Fe(0)807 2301 y Fu(j)821 2306 y Fe(0)851
2294 y FC(+)f Fy(\013)p FC(\(1)g FB(\000)g Fy(\014)r
FC(\))p Fy(\034)1087 2301 y Fu(i)1099 2306 y Fe(1)1116
2301 y Fu(j)1130 2306 y Fe(0)1160 2294 y FC(+)g(\(1)g
FB(\000)g Fy(\013)p FC(\))p Fy(\014)r(\034)1396 2301
y Fu(i)1408 2306 y Fe(0)1426 2301 y Fu(j)1440 2306 y
Fe(1)1469 2294 y FC(+)h Fy(\013\014)r(\034)1592 2301
y Fu(i)1604 2306 y Fe(1)1621 2301 y Fu(j)1635 2306 y
Fe(1)1710 2294 y FC(\(3.15\))332 2391 y(for)k(a)g(t)o(w)o
(o-dimensional)h(texture.)j(F)l(or)c(a)g(one-dimensional)i(texture,)871
2488 y Fy(\034)h FC(=)13 b(\(1)d FB(\000)g Fy(\013)p
FC(\))p Fy(\034)1120 2495 y Fu(i)1132 2500 y Fe(0)1161
2488 y FC(+)h Fy(\013\034)1256 2495 y Fu(i)1268 2500
y Fe(1)p eop
%%Page: 97 106
97 105 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(97)120
286 y(where)16 b Fy(\034)272 293 y Fu(i)302 286 y FC(indicates)h(the)f
(texel)g(at)f(lo)q(cation)h Fy(i)f FC(in)i(the)f(one-dimensional)i
(texture.)i(If)120 343 y(an)o(y)15 b(of)g(the)h(selected)g
Fy(\034)526 350 y Fu(ij)571 343 y FC(\(or)f Fy(\034)665
350 y Fu(i)679 343 y FC(\))g(in)h(the)f(ab)q(o)o(v)o(e)g(equations)h
(refer)f(to)g(a)g(b)q(order)g(texel)120 399 y(with)j
Fy(i)e(<)g FB(\000)p Fy(b)364 406 y Fu(s)383 399 y FC(,)h
Fy(j)i(<)d FB(\000)p Fy(b)557 406 y Fu(s)575 399 y FC(,)i
Fy(i)e FB(\025)g Fy(w)722 406 y Fu(s)752 399 y FB(\000)c
Fy(b)819 406 y Fu(s)836 399 y FC(,)18 b(or)f Fy(j)h FB(\025)f
Fy(h)1040 406 y Fu(s)1070 399 y FB(\000)12 b Fy(b)1137
406 y Fu(s)1155 399 y FC(,)17 b(then)h(the)f(b)q(order)h(color)120
456 y(giv)o(en)f(b)o(y)g(the)g(curren)o(t)f(setting)h(of)f
Fr(TEXTURE)p 905 456 14 2 v 14 w(BORDER)p 1051 456 V
15 w(COLOR)f FC(is)i(used)g(instead)g(of)g(the)120 512
y(unsp)q(eci\014ed)h(v)m(alue)f(or)e(v)m(alues.)22 b(The)15
b(R)o(GBA)h(v)m(alues)h(of)e(the)g Fr(TEXTURE)p 1348
512 V 14 w(BORDER)p 1494 512 V 15 w(COLOR)120 569 y FC(are)c(in)o
(terpreted)h(to)f(matc)o(h)g(the)g(texture's)g(in)o(ternal)h(format)e
(in)i(a)f(manner)h(consisten)o(t)120 625 y(with)k(T)l(able)g(3.7.)120
757 y Fz(Mipmapping)120 847 y Fr(TEXTURE)p 277 847 V
15 w(MIN)p 358 847 V 15 w(FILTER)h FC(v)m(alues)j Fr(NEAREST)p
815 847 V 14 w(MIPMAP)p 961 847 V 15 w(NEAREST)p FC(,)d
Fr(NEAREST)p 1314 847 V 14 w(MIPMAP)p 1460 847 V 14 w(LINEAR)p
FC(,)120 903 y Fr(LINEAR)p 255 903 V 15 w(MIPMAP)p 402
903 V 14 w(NEAREST)p FC(,)e(and)h Fr(LINEAR)p 819 903
V 14 w(MIPMAP)p 965 903 V 15 w(LINEAR)f FC(eac)o(h)h(require)h(the)f
(use)g(of)g(a)120 960 y Fv(mipmap)p FC(.)k(A)13 b(mipmap)f(is)h(an)f
(ordered)h(set)f(of)g(arra)o(ys)f(represen)o(ting)i(the)f(same)g
(image;)120 1016 y(eac)o(h)k(arra)o(y)f(has)h(a)g(resolution)g(lo)o(w)o
(er)g(than)g(the)g(previous)h(one.)22 b(If)16 b(the)g(texture)g(has)120
1073 y(dimensions)22 b(2)381 1056 y Fu(n)417 1073 y FB(\002)14
b FC(2)489 1056 y Fu(m)522 1073 y FC(,)20 b(then)h(there)e(are)h(max)p
FB(f)p Fy(n;)8 b(m)p FB(g)k FC(+)h(1)20 b(mipmap)g(arra)o(ys.)32
b(The)120 1129 y(\014rst)14 b(arra)o(y)e(is)i(the)f(original)i(texture)
e(with)h(dimensions)h(2)1125 1113 y Fu(n)1155 1129 y
FB(\002)7 b FC(2)1220 1113 y Fu(m)1253 1129 y FC(.)20
b(Eac)o(h)13 b(subsequen)o(t)120 1186 y(arra)o(y)g(has)h(dimensions)i
(2)573 1169 y Fq(\()p Fu(k)q FG(\000)p Fq(1\))675 1186
y FB(\002)8 b FC(2)741 1169 y Fq(\()p Fu(l)p FG(\000)p
Fq(1\))841 1186 y FC(where)14 b(2)994 1169 y Fu(k)1023
1186 y FB(\002)9 b FC(2)1090 1169 y Fu(l)1117 1186 y
FC(are)14 b(the)g(dimensions)i(of)e(the)120 1242 y(previous)g(arra)o(y)
l(.)k(This)13 b(is)g(the)g(case)f(as)g(long)h(as)f(b)q(oth)h
Fy(k)h(>)f FC(0)f(and)h Fy(l)g(>)g FC(0.)18 b(Once)c(either)120
1298 y Fy(k)g FC(=)f(0)h(or)f Fy(l)g FC(=)g(0,)g(eac)o(h)h(subsequen)o
(t)g(arra)o(y)f(has)h(dimension)h(1)7 b FB(\002)g FC(2)1259
1282 y Fq(\()p Fu(l)p FG(\000)p Fq(1\))1359 1298 y FC(or)13
b(2)1436 1282 y Fq(\()p Fu(k)q FG(\000)p Fq(1\))1537
1298 y FB(\002)7 b FC(1,)120 1355 y(resp)q(ectiv)o(ely)l(,)17
b(un)o(til)f(the)g(last)f(arra)o(y)f(is)h(reac)o(hed)h(with)g
(dimension)g(1)10 b FB(\002)h FC(1.)191 1413 y(Eac)o(h)16
b(arra)o(y)f(in)i(a)e(mipmap)i(is)g(transmitted)e(to)h(the)g(GL)g
(using)h Fz(T)l(exImage2D)120 1470 y FC(or)i Fz(T)l(exImage1D)p
FC(;)g(the)h(arra)o(y)e(b)q(eing)j(set)e(is)h(indicated)i(with)d(the)h
Fv(level-of-detail)120 1526 y FC(argumen)o(t.)26 b(Lev)o(el-of-detail)
20 b(n)o(um)o(b)q(ers)d(pro)q(ceed)i(from)d(0)h(for)g(the)h(original)g
(texture)120 1583 y(arra)o(y)13 b(through)g Fy(p)f FC(=)h(max)p
FB(f)p Fy(n;)8 b(m)p FB(g)k FC(with)i(eac)o(h)f(unit)i(increase)f
(indicating)i(an)d(arra)o(y)f(of)120 1639 y(half)j(the)g(dimensions)g
(of)f(the)h(previous)g(one)f(as)g(already)h(describ)q(ed.)21
b(If)15 b(texturing)f(is)120 1696 y(enabled)h(\(and)d
Fr(TEXTURE)p 545 1696 V 15 w(MIN)p 626 1696 V 15 w(FILTER)f
FC(is)i(one)g(that)f(requires)i(a)e(mipmap\))h(at)g(the)f(time)120
1752 y(a)17 b(primitiv)o(e)h(is)f(rasterized)g(and)g(if)g(the)f(set)h
(of)f(arra)o(ys)f(0)i(through)f Fy(p)g FC(is)i(incomplete,)120
1809 y(based)h(on)f(the)h(dimensions)h(of)e(arra)o(y)f(0,)i(then)f(it)h
(is)g(as)f(if)h(texture)f(mapping)h(w)o(ere)120 1865
y(disabled.)h(The)11 b(set)f(of)f(arra)o(ys)g(0)h(through)g
Fy(p)g FC(is)h(incomplete)g(if)g(the)f(in)o(ternal)h(formats)e(of)120
1922 y(all)17 b(the)f(mipmap)g(arra)o(ys)e(w)o(ere)i(not)f(sp)q
(eci\014ed)j(with)e(the)g(same)f(sym)o(b)q(olic)i(constan)o(t,)120
1978 y(or)i(if)h(the)f(b)q(order)g(widths)h(of)f(the)g(mipmap)h(arra)o
(ys)e(are)h(not)g(the)g(same,)g(or)g(if)h(the)120 2034
y(dimensions)13 b(of)d(the)g(mipmap)h(arra)o(ys)f(do)g(not)g(follo)o(w)
h(the)f(sequence)i(describ)q(ed)h(ab)q(o)o(v)o(e.)120
2091 y(Arra)o(ys)i(indexed)i(greater)d(than)h Fy(p)g
FC(are)g(insigni\014can)o(t.)191 2149 y(The)j(mipmap)h(is)f(used)h(in)g
(conjunction)g(with)f(the)h(lev)o(el)g(of)f(detail)h(to)e(appro)o(x-)
120 2206 y(imate)22 b(the)g(application)h(of)e(an)g(appropriately)h
(\014ltered)h(texture)e(to)g(a)g(fragmen)o(t.)120 2262
y(Let)h Fy(p)h FC(=)g(max)p FB(f)p Fy(n;)8 b(m)p FB(g)20
b FC(and)h(let)h Fy(c)f FC(b)q(e)h(the)g(v)m(alue)g(of)f
Fy(\025)g FC(at)g(whic)o(h)h(the)f(transition)120 2319
y(from)16 b(mini\014cation)i(to)e(magni\014cation)h(o)q(ccurs)g
(\(since)g(this)g(discussion)h(p)q(ertains)f(to)120 2375
y(mini\014cation,)24 b(w)o(e)c(are)g(concerned)i(only)f(with)g(v)m
(alues)h(of)e Fy(\025)g FC(where)h Fy(\025)g(>)h(c)p
FC(\).)35 b(F)l(or)120 2432 y Fr(NEAREST)p 277 2432 V
15 w(MIPMAP)p 424 2432 V 14 w(NEAREST)p FC(,)16 b(if)h
Fy(c)f(<)h(\025)f FB(\024)h FC(0)p Fy(:)p FC(5)f(then)i(the)f(mipmap)h
(arra)o(y)e(with)i(lev)o(el-)120 2488 y(of-detail)e(of)e(0)g(is)h
(selected.)21 b(Otherwise,)15 b(the)f Fy(d)p FC(th)g(mipmap)h(arra)o(y)
f(is)h(selected)g(when)p eop
%%Page: 98 107
98 106 bop 332 137 a FC(98)750 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y Fy(d)9 b FB(\000)415 269
y Fq(1)p 415 276 18 2 v 415 302 a(2)450 286 y Fy(<)k(\025)f
FB(\024)h Fy(d)d FC(+)668 269 y Fq(1)p 668 276 V 668
302 a(2)706 286 y FC(as)k(long)i(as)e(1)e FB(\024)h Fy(d)g
FB(\024)g Fy(p)p FC(.)19 b(If)c Fy(\025)e(>)g(p)c FC(+)1353
269 y Fq(1)p 1353 276 V 1353 302 a(2)1375 286 y FC(,)15
b(then)g(the)g Fy(p)p FC(th)g(mipmap)332 343 y(arra)o(y)k(is)j
(selected.)37 b(The)21 b(rules)g(for)f Fr(NEAREST)g FC(are)g(then)h
(applied)h(to)e(the)h(selected)332 399 y(arra)o(y)l(.)403
456 y(The)13 b(same)h(mipmap)g(arra)o(y)e(selection)j(rules)g(apply)f
(for)f Fr(LINEAR)p 1516 456 14 2 v 14 w(MIPMAP)p 1662
456 V 15 w(NEAREST)332 512 y FC(as)18 b(for)g Fr(NEAREST)p
621 512 V 14 w(MIPMAP)p 767 512 V 14 w(NEAREST)p FC(,)f(but)h(the)h
(rules)g(for)e Fr(LINEAR)g FC(are)h(applied)j(to)c(the)332
569 y(selected)g(arra)o(y)l(.)403 625 y(F)l(or)12 b Fr(NEAREST)p
639 625 V 14 w(MIPMAP)p 785 625 V 14 w(LINEAR)p FC(,)f(the)i(lev)o(el)h
Fy(d)5 b FB(\000)g FC(1)11 b(and)i(the)g(lev)o(el)h Fy(d)e
FC(mipmap)h(arra)o(ys)332 682 y(are)d(selected,)i(where)f
Fy(d)q FB(\000)q FC(1)h FB(\024)h Fy(\025)f(<)h(d)p FC(,)e(unless)g
Fy(\025)h FB(\025)h Fy(p)p FC(,)e(in)g(whic)o(h)h(case)e(the)h
Fy(p)p FC(th)f(mipmap)332 738 y(arra)o(y)i(is)i(used)g(for)e(b)q(oth)i
(arra)o(ys.)j(The)d(rules)g(for)e Fr(NEAREST)g FC(are)h(then)h(applied)
h(to)d(eac)o(h)332 795 y(of)i(these)h(arra)o(ys,)e(yielding)k(t)o(w)o
(o)d(corresp)q(onding)h(texture)g(v)m(alues)h Fy(\034)1508
802 y Fu(d)p FG(\000)p Fq(1)1588 795 y FC(and)e Fy(\034)1695
802 y Fu(d)1716 795 y FC(.)19 b(The)332 851 y(\014nal)d(texture)f(v)m
(alue)h(is)g(then)g(found)f(as)751 953 y Fy(\034)j FC(=)13
b([1)d FB(\000)g FC(frac\()p Fy(\025)p FC(\)])p Fy(\034)1099
960 y Fu(d)p FG(\000)p Fq(1)1172 953 y FC(+)h(frac)o(\()p
Fy(\025)p FC(\))p Fy(\034)1375 960 y Fu(d)1394 953 y
Fy(:)332 1056 y Fr(LINEAR)p 467 1056 V 15 w(MIPMAP)p
614 1056 V 14 w(LINEAR)17 b FC(has)g(the)h(same)g(e\013ect)f(as)h
Fr(NEAREST)p 1393 1056 V 14 w(MIPMAP)p 1539 1056 V 14
w(LINEAR)f FC(except)332 1112 y(that)f(the)g(rules)h(for)f
Fr(LINEAR)f FC(are)h(applied)i(for)e(eac)o(h)h(of)f(the)g(t)o(w)o(o)f
(mipmap)i(arra)o(ys)e(to)332 1169 y(generate)g Fy(\034)534
1176 y Fu(d)p FG(\000)p Fq(1)614 1169 y FC(and)h Fy(\034)723
1176 y Fu(d)743 1169 y FC(.)332 1291 y Fl(3.8.2)55 b(T)-5
b(exture)18 b(Magni\014cation)332 1377 y FC(When)h Fy(\025)e
FC(indicates)j(magni\014cation,)f(the)f(v)m(alue)h(assigned)g(to)e
Fr(TEXTURE)p 1603 1377 V 15 w(MAG)p 1684 1377 V 15 w(FILTER)332
1433 y FC(determines)i(ho)o(w)d(the)i(texture)f(v)m(alue)i(is)f
(obtained.)27 b(There)18 b(are)f(t)o(w)o(o)f(p)q(ossible)k(v)m(al-)332
1490 y(ues)14 b(for)g Fr(TEXTURE)p 635 1490 V 14 w(MAG)p
715 1490 V 15 w(FILTER)p FC(:)f Fr(NEAREST)f FC(and)i
Fr(LINEAR)p FC(.)f Fr(NEAREST)f FC(b)q(eha)o(v)o(es)i(exactly)h(as)332
1546 y Fr(NEAREST)j FC(for)g Fr(TEXTURE)p 734 1546 V
15 w(MIN)p 815 1546 V 15 w(FILTER)f FC(\(equation)j(3.13)e(and)h(3.14)f
(are)h(used\);)i Fr(LINEAR)332 1603 y FC(b)q(eha)o(v)o(es)f(exactly)g
(as)f Fr(LINEAR)f FC(for)g Fr(TEXTURE)p 1107 1603 V 15
w(MIN)p 1188 1603 V 15 w(FILTER)g FC(\(equation)h(3.15)g(is)h(used\).)
332 1659 y(The)c(lev)o(el-of-detail)h(0)e(texture)g(arra)o(y)f(is)i
(alw)o(a)o(ys)e(used)i(for)e(magni\014cation.)403 1716
y(Finally)l(,)f(there)e(is)h(the)f(c)o(hoice)h(of)f Fy(c)p
FC(,)g(the)g(mini\014cation)i(vs.)18 b(magni\014cation)12
b(switc)o(h-)332 1772 y(o)o(v)o(er)g(p)q(oin)o(t.)19
b(If)13 b(the)g(magni\014cation)g(\014lter)g(is)g(giv)o(en)g(b)o(y)g
Fr(LINEAR)e FC(and)i(the)g(mini\014cation)332 1828 y(\014lter)g(is)f
(giv)o(en)h(b)o(y)f Fr(NEAREST)p 813 1828 V 14 w(MIPMAP)p
959 1828 V 15 w(NEAREST)f FC(or)g Fr(NEAREST)p 1345 1828
V 14 w(MIPMAP)p 1491 1828 V 15 w(LINEAR)p FC(,)f(then)j
Fy(c)f FC(=)332 1885 y(0)p Fy(:)p FC(5.)18 b(This)12
b(is)f(done)h(to)f(ensure)h(that)e(a)h(mini\014ed)j(texture)d(do)q(es)g
(not)g(app)q(ear)h(\\sharp)q(er")332 1941 y(than)j(a)g(magni\014ed)h
(texture.)k(Otherwise)c Fy(c)c FC(=)h(0.)332 2063 y Fl(3.8.3)55
b(T)-5 b(exture)18 b(State)g(and)h(Pro)n(xy)g(State)332
2149 y FC(The)g(state)e(necessary)i(for)e(texture)i(can)f(b)q(e)h
(divided)i(in)o(to)d(t)o(w)o(o)f(categories.)29 b(First,)332
2206 y(there)i(are)g(the)g(t)o(w)o(o)f(sets)g(of)h(mipmap)h(arra)o(ys)d
(\(one-dimensional)k(and)f(t)o(w)o(o-)332 2262 y(dimensional\))18
b(and)f(their)g(n)o(um)o(b)q(er.)24 b(Eac)o(h)16 b(arra)o(y)f(has)i
(asso)q(ciated)f(with)h(it)g(a)f(width)332 2319 y(and)g(heigh)o(t)h
(\(t)o(w)o(o-dimensional)f(only\),)g(a)g(b)q(order)g(width,)g(a)g(42-v)
m(alued)h(in)o(teger)f(de-)332 2375 y(scribing)i(the)e(in)o(ternal)h
(format)e(of)h(the)h(image,)f(and)h(six)g(in)o(teger)f(v)m(alues)i
(describing)332 2432 y(the)d(resolutions)h(of)f(eac)o(h)g(of)f(the)i
(red,)f(green,)f(blue,)i(alpha,)g(luminance,)g(and)g(in)o(ten-)332
2488 y(sit)o(y)f(comp)q(onen)o(ts)g(of)f(the)h(image.)20
b(Eac)o(h)14 b(initial)j(texture)e(arra)o(y)e(is)i(n)o(ull)i(\(zero)d
(width)p eop
%%Page: 99 108
99 107 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1059 b FC(99)120
286 y(and)21 b(heigh)o(t,)g(zero)f(b)q(order)g(width,)h(in)o(ternal)g
(format)e Fr(1)p FC(,)h(with)g(zero-sized)i(comp)q(o-)120
343 y(nen)o(ts\).)k(Next,)17 b(there)g(are)f(the)i(t)o(w)o(o)d(sets)i
(of)g(texture)f(prop)q(erties;)j(eac)o(h)e(consists)g(of)120
399 y(the)c(selected)h(mini\014cation)h(and)e(magni\014cation)h
(\014lters,)f(the)g(wrap)f(mo)q(des)h(for)f Fy(s)i FC(and)120
456 y Fy(t)g FC(\(t)o(w)o(o-dimensional)h(only\),)e(the)h
Fr(TEXTURE)p 865 456 14 2 v 14 w(BORDER)p 1011 456 V
15 w(COLOR)p FC(,)e(and)i(the)f(priorit)o(y)h(asso)q(ci-)120
512 y(ated)h(with)g(eac)o(h)g(set)f(of)h(prop)q(erties.)20
b(\(See)15 b(subsection)h(3.8.4.\))i(In)d(the)g(initial)i(state,)120
569 y(the)e(v)m(alue)i(assigned)e(to)f Fr(TEXTURE)p 707
569 V 15 w(MIN)p 788 569 V 15 w(FILTER)f FC(is)j Fr(NEAREST)p
1148 569 V 14 w(MIPMAP)p 1294 569 V 14 w(LINEAR)p FC(,)e(and)h(the)120
625 y(v)m(alue)i(for)d Fr(TEXTURE)p 464 625 V 14 w(MAG)p
544 625 V 15 w(FILTER)g FC(is)h Fr(LINEAR)p FC(.)f(Both)h
Fy(s)g FC(and)g Fy(t)g FC(wrap)g(mo)q(des)g(are)g(set)f(to)120
682 y Fr(REPEAT)p FC(.)g(The)h(priorit)o(y)h(is)f(set)g(to)g(1.)20
b Fr(TEXTURE)p 922 682 V 14 w(BORDER)p 1068 682 V 14
w(COLOR)14 b FC(is)i(\(0,0,0,0\).)191 738 y(In)k(addition)h(to)e(the)g
(one-dimensional)j(and)e(t)o(w)o(o-dimensional)g(sets)g(of)f(image)120
795 y(arra)o(ys,)i(partially)h(instan)o(tiated)f(one-)h(and)f(t)o(w)o
(o-dimensional)h(sets)e(of)h(pro)o(xy)f(im-)120 851 y(age)g(arra)o(ys)f
(are)g(main)o(tained.)36 b(Eac)o(h)19 b(pro)o(xy)h(arra)o(y)f(includes)
j(width,)f(heigh)o(t)g(\(2D)120 907 y(arra)o(ys)h(only\),)i(b)q(order)f
(width,)i(and)e(in)o(ternal)g(format)f(state)g(v)m(alues,)j(as)d(w)o
(ell)i(as)120 964 y(state)18 b(for)h(the)g(red,)g(green,)h(blue,)h
(alpha,)f(luminance,)h(and)e(in)o(tensit)o(y)h(comp)q(onen)o(t)120
1020 y(resolutions.)31 b(Pro)o(xy)17 b(arra)o(ys)g(do)i(not)f(include)j
(image)d(data,)g(nor)g(do)h(they)f(include)120 1077 y(texture)h(prop)q
(erties.)31 b(When)19 b Fz(T)l(exImage2D)g FC(is)g(executed)h(with)f
Fv(tar)n(get)g FC(sp)q(eci\014ed)120 1133 y(as)h Fr(PROXY)p
294 1133 V 15 w(TEXTURE)p 463 1133 V 14 w(2D)p FC(,)f(the)h(t)o(w)o
(o-dimensional)h(pro)o(xy)e(state)g(v)m(alues)j(of)d(the)h(sp)q(eci-)
120 1190 y(\014ed)d(lev)o(el-of-detail)h(are)e(recomputed)g(and)g(up)q
(dated.)23 b(If)16 b(the)g(texture)f(arra)o(y)g(is)h(to)q(o)120
1246 y(large,)e(no)h(error)e(is)i(generated,)f(but)g(the)h(pro)o(xy)e
(width,)i(heigh)o(t,)f(b)q(order)h(width,)g(and)120 1303
y(comp)q(onen)o(t)f(resolutions)h(are)e(set)h(to)f(zero.)19
b(If)14 b(the)g(texture)g(arra)o(y)e(w)o(ould)i(b)q(e)h(accom-)120
1359 y(mo)q(dated)j(b)o(y)f Fz(T)l(exImage2D)g FC(called)i(with)f
Fv(tar)n(get)g FC(set)f(to)g Fr(TEXTURE)p 1337 1359 V
14 w(2D)p FC(,)g(the)g(pro)o(xy)120 1416 y(state)j(v)m(alues)h(are)e
(set)h(exactly)g(as)g(though)g(the)g(actual)g(image)g(arra)o(y)f(w)o
(ere)g(b)q(eing)120 1472 y(sp)q(eci\014ed.)j(No)15 b(pixel)i(data)e
(are)g(transferred)f(or)h(pro)q(cessed)h(in)g(either)g(case.)191
1528 y(One-dimensional)23 b(pro)o(xy)c(arra)o(ys)f(are)i(op)q(erated)f
(on)h(in)g(the)g(same)g(w)o(a)o(y)e(when)120 1585 y Fz(T)l(exImage1D)d
FC(is)h(executed)g(with)g Fv(tar)n(get)f FC(sp)q(eci\014ed)i(as)e
Fr(PROXY)p 1241 1585 V 15 w(TEXTURE)p 1410 1585 V 14
w(1D)p FC(.)120 1707 y Fl(3.8.4)56 b(T)-5 b(exture)17
b(Ob)s(jects)120 1792 y FC(In)g(addition)h(to)d(the)i(default)g
(textures)f Fr(TEXTURE)p 983 1792 V 14 w(1D)g FC(and)g
Fr(TEXTURE)p 1300 1792 V 14 w(2D)p FC(,)g(named)g(one-)120
1849 y(and)c(t)o(w)o(o-dimensional)g(texture)f(ob)s(jects)g(can)h(b)q
(e)g(created)f(and)h(op)q(erated)f(up)q(on.)19 b(The)120
1905 y(name)e(space)f(for)g(texture)g(ob)s(jects)g(is)g(the)h(unsigned)
h(in)o(tegers,)e(with)g(zero)h(reserv)o(ed)120 1962 y(b)o(y)f(the)f
(GL.)191 2018 y(A)f(texture)h(ob)s(ject)f(is)h(created)f(b)o(y)g
Fv(binding)g FC(an)g(un)o(used)i(name)e(to)g Fr(TEXTURE)p
1505 2018 V 14 w(1D)g FC(or)120 2075 y Fr(TEXTURE)p 277
2075 V 15 w(2D)p FC(.)g(The)h(binding)j(is)d(e\013ected)h(b)o(y)f
(calling)234 2169 y Fw(void)30 b Fz(BindT)l(exture)p
FC(\()g Fw(enum)15 b Fv(tar)n(get)p Fw(,)g(uint)f Fv(textur)n(e)i
FC(\))f Fw(;)120 2262 y FC(with)d Fv(tar)n(get)f FC(set)g(to)f(the)h
(desired)h(texture)f(target)f(\(either)h Fr(TEXTURE)p
1268 2262 V 14 w(1D)g FC(or)f Fr(TEXTURE)p 1542 2262
V 15 w(2D)p FC(\))120 2319 y(and)17 b Fv(textur)n(e)g
FC(set)g(to)f(the)g(un)o(used)i(name.)24 b(The)17 b(resulting)h
(texture)e(ob)s(ject)g(is)h(a)f(new)120 2375 y(state)e(v)o(ector,)f
(comprising)i(all)g(the)g(state)e(v)m(alues)i(listed)h(in)f(subsection)
g(3.8.3,)d(set)i(to)120 2432 y(the)k(same)g(initial)i(v)m(alues.)30
b(If)18 b(the)g(new)g(texture)g(ob)s(ject)f(is)i(b)q(ound)g(to)e
Fr(TEXTURE)p 1547 2432 V 15 w(1D)p FC(,)120 2488 y(it)k(is)f(and)g
(remains)h(a)f(one-dimensional)i(texture)e(un)o(til)h(it)f(is)h
(deleted.)36 b(Lik)o(ewise,)p eop
%%Page: 100 109
100 108 bop 332 137 a FC(100)727 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y FC(if)18 b(the)g(new)f(texture)g(ob)s
(ject)g(is)h(b)q(ound)h(to)d Fr(TEXTURE)p 1257 286 14
2 v 15 w(2D)p FC(,)g(it)i(is)g(and)g(remains)f(a)h(t)o(w)o(o-)332
343 y(dimensional)f(texture)e(un)o(til)i(it)e(is)h(deleted.)403
399 y Fz(BindT)l(exture)j FC(ma)o(y)f(also)g(b)q(e)i(used)f(to)f(bind)i
(an)f(existing)g(texture)g(ob)s(ject)f(to)332 456 y(either)c
Fr(TEXTURE)p 616 456 V 14 w(1D)e FC(or)h Fr(TEXTURE)p
894 456 V 14 w(2D)p FC(.)f(The)h(error)f Fr(INVALID)p
1331 456 V 15 w(OPERATION)f FC(is)i(generated)g(if)332
512 y(an)h(attempt)f(is)h(made)g(to)f(bind)i(a)e(one-dimensional)j
(texture)e(ob)s(ject)f(to)g Fr(TEXTURE)p 1759 512 V 14
w(2D)p FC(,)332 569 y(or)20 b(to)f(bind)i(a)f(t)o(w)o(o-dimensional)h
(texture)e(ob)s(ject)h(to)f Fr(TEXTURE)p 1467 569 V 14
w(1D)p FC(.)g(If)i(the)f(bind)h(is)332 625 y(successful)c(no)f(c)o
(hange)g(is)h(made)f(to)f(the)h(state)g(of)f(the)h(b)q(ound)h(texture)f
(ob)s(ject,)f(and)332 682 y(an)o(y)g(previous)h(binding)h(to)e
Fv(tar)n(get)g FC(is)h(brok)o(en.)403 738 y(While)h(a)f(texture)g(ob)s
(ject)g(is)h(b)q(ound,)g(GL)f(op)q(erations)g(on)h(the)f(target)f(to)h
(whic)o(h)332 795 y(it)j(is)g(b)q(ound)h(a\013ect)e(the)h(b)q(ound)h
(ob)s(ject,)e(and)h(queries)h(of)e(the)h(target)e(to)i(whic)o(h)g(it)
332 851 y(is)i(b)q(ound)g(return)f(state)g(from)f(the)i(b)q(ound)g(ob)s
(ject.)35 b(If)20 b(texture)g(mapping)h(of)f(the)332
907 y(dimensionalit)o(y)e(of)e(the)h(target)d(to)i(whic)o(h)h(a)f
(texture)g(ob)s(ject)g(is)g(b)q(ound)i(is)e(enabled,)332
964 y(the)f(state)g(of)g(the)g(b)q(ound)h(texture)f(ob)s(ject)g
(directs)g(the)h(texturing)f(op)q(eration.)403 1020 y(In)g(the)f
(initial)i(state)e Fr(TEXTURE)p 934 1020 V 14 w(1D)g
FC(and)h Fr(TEXTURE)p 1248 1020 V 14 w(2D)f FC(ha)o(v)o(e)g
(one-dimensional)i(and)332 1077 y(t)o(w)o(o-dimensional)i(texture)f
(state)f(v)o(ectors)h(asso)q(ciated)g(with)h(them.)25
b(In)18 b(order)f(that)332 1133 y(access)h(to)e(these)i(initial)h
(textures)e(not)g(b)q(e)h(lost,)f(they)h(are)f(treated)f(as)h(texture)g
(ob-)332 1190 y(jects)e(whose)g(names)g(are)g(b)q(oth)g(0.)20
b(The)15 b(initial)i(one-dimensional)h(texture)d(is)g(there-)332
1246 y(fore)20 b(op)q(erated)g(up)q(on,)i(queried,)h(and)d(applied)i
(as)e Fr(TEXTURE)p 1409 1246 V 14 w(1D)g FC(while)i(0)e(is)g(b)q(ound)
332 1303 y(to)k Fr(TEXTURE)p 554 1303 V 14 w(1D)p FC(.)g(Lik)o(ewise,)
29 b(the)24 b(initial)j(t)o(w)o(o-dimensional)f(texture)e(is)i
(therefore)332 1359 y(op)q(erated)d(up)q(on,)j(queried,)g(and)e
(applied)h(as)d Fr(TEXTURE)p 1333 1359 V 15 w(2D)h FC(while)h(0)f(is)h
(b)q(ound)g(to)332 1416 y Fr(TEXTURE)p 489 1416 V 14
w(2D)p FC(.)403 1472 y(T)l(exture)15 b(ob)s(jects)g(are)f(deleted)j(b)o
(y)e(calling)446 1557 y Fw(void)29 b Fz(DeleteT)l(extures)p
FC(\()h Fw(sizei)15 b Fv(n)p Fw(,)f(uint)h Fv(*textur)n(es)g
FC(\))g Fw(;)332 1641 y Fv(textur)n(es)h FC(con)o(tains)g
Fv(n)g FC(names)g(of)f(texture)h(ob)s(jects)f(to)h(b)q(e)h(deleted.)23
b(After)16 b(a)g(texture)332 1698 y(ob)s(ject)d(is)h(deleted,)h(it)f
(has)g(no)f(con)o(ten)o(ts)g(or)g(dimensionalit)o(y)l(,)j(and)e(its)g
(name)f(is)h(again)332 1754 y(un)o(used.)20 b(If)14 b(a)f(texture)g
(that)f(is)i(curren)o(tly)f(b)q(ound)i(to)d Fr(TEXTURE)p
1419 1754 V 14 w(1D)h FC(is)h(deleted,)h(it)e(is)h(as)332
1811 y(though)h Fz(BindT)l(exture)g FC(had)g(b)q(een)i(executed)f(with)
f(argumen)o(t)f(v)m(alues)j Fr(TEXTURE)p 1772 1811 V
14 w(1D)332 1867 y FC(and)22 b(zero,)g(resp)q(ectiv)o(ely)l(.)40
b(Lik)o(ewise,)24 b(if)e(a)f(texture)g(that)g(is)h(curren)o(tly)g(b)q
(ound)g(to)332 1924 y Fr(TEXTURE)p 489 1924 V 14 w(2D)13
b FC(is)g(deleted,)i(it)e(is)g(as)g(though)g Fz(BindT)l(exture)g
FC(had)g(b)q(een)h(executed)g(with)332 1980 y(argumen)o(t)f(v)m(alues)i
Fr(TEXTURE)p 825 1980 V 14 w(2D)f FC(and)g(zero.)19 b(Un)o(used)14
b(names)g(in)h Fv(textur)n(es)e FC(are)h(silen)o(tly)332
2037 y(ignored,)h(as)g(is)h(the)f(v)m(alue)i(zero.)403
2093 y(The)e(command)446 2178 y Fw(void)29 b Fz(GenT)l(extures)p
FC(\()h Fw(sizei)14 b Fv(n)p Fw(,)h(uint)f Fv(*textur)n(es)i
FC(\))e Fw(;)332 2262 y FC(returns)h Fv(n)f FC(previously)i(un)o(used)g
(texture)f(ob)s(ject)f(names)h(in)h Fv(textur)n(es)p
FC(.)j(These)c(names)332 2319 y(are)20 b(mark)o(ed)g(as)g(used,)i(but)e
(they)g(acquire)h(texture)f(state)g(and)g(a)g(dimensionalit)o(y)332
2375 y(only)c(when)g(they)f(are)g(\014rst)f(b)q(ound,)i(just)f(as)g(if)
h(they)f(w)o(ere)g(un)o(used.)403 2432 y(An)22 b(implemen)o(tation)g
(ma)o(y)f(c)o(ho)q(ose)h(to)f(establish)i(a)e(w)o(orking)g(set)h(of)f
(texture)332 2488 y(ob)s(jects)11 b(on)g(whic)o(h)i(binding)g(op)q
(erations)f(are)f(p)q(erformed)h(with)f(higher)i(p)q(erformance.)p
eop
%%Page: 101 110
101 109 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1037 b FC(101)120
286 y(A)23 b(texture)f(ob)s(ject)f(that)h(is)g(curren)o(tly)h(part)e
(of)h(the)g(w)o(orking)g(set)g(is)h(said)g(to)e(b)q(e)120
343 y Fv(r)n(esident)p FC(.)e(The)d(command)234 443 y
Fw(boolean)37 b Fz(AreT)l(exturesResiden)o(t)p FC(\()g
Fw(sizei)18 b Fv(n)p Fw(,)i(uint)e Fv(*textur)n(es)p
Fw(,)302 499 y(boolean)c Fv(*r)n(esidenc)n(es)g FC(\))h
Fw(;)120 599 y FC(returns)f Fr(TRUE)f FC(if)h(all)g(of)g(the)f
Fv(n)g FC(texture)h(ob)s(jects)f(named)h(in)g Fv(textur)n(es)g
FC(are)f(residen)o(t,)h(or)120 656 y(if)j(the)f(implemen)o(tation)h(do)
q(es)f(not)g(distinguish)i(a)d(w)o(orking)h(set.)22 b(If)16
b(at)f(least)h(one)g(of)120 712 y(the)d(texture)f(ob)s(jects)g(named)h
(in)h Fv(textur)n(es)e FC(is)h(not)g(residen)o(t,)g(then)g
Fr(FALSE)f FC(is)h(returned,)120 769 y(and)g(the)f(residence)i(of)e
(eac)o(h)g(texture)g(ob)s(ject)g(is)g(returned)h(in)g
Fv(r)n(esidenc)n(es)p FC(.)k(Otherwise)120 825 y(the)c(con)o(ten)o(ts)g
(of)f Fv(r)n(esidenc)n(es)f FC(are)i(not)f(c)o(hanged.)20
b(If)13 b(an)o(y)f(of)h(the)g(names)g(in)g Fv(textur)n(es)g
FC(is)120 882 y(not)h(the)f(name)h(of)f(a)h(texture)f(ob)s(ject,)g
Fr(FALSE)g FC(is)h(returned,)g(the)g(error)f Fr(INVALID)p
1495 882 14 2 v 14 w(VALUE)120 938 y FC(is)f(generated,)f(and)g(the)g
(con)o(ten)o(ts)f(of)h Fv(r)n(esidenc)n(es)e FC(are)h(indeterminate.)20
b(The)11 b(residence)120 995 y(status)k(of)g(a)g(single)h(b)q(ound)h
(texture)e(ob)s(ject)f(can)i(also)f(b)q(e)h(queried)h(b)o(y)e(calling)i
Fz(Get-)120 1051 y(T)l(exP)o(arameteriv)g FC(or)h Fz(GetT)l(exP)o
(arameterfv)f FC(with)h Fy(tar)q(g)r(et)h FC(set)f(to)g(the)g(target)
120 1107 y(to)d(whic)o(h)h(the)f(texture)g(ob)s(ject)g(is)h(b)q(ound,)f
(and)h Fy(pname)f FC(set)g(to)g Fr(TEXTURE)p 1401 1107
V 14 w(RESIDENT)p FC(.)191 1165 y Fz(AreT)l(exturesResiden)o(t)f
FC(indicates)j(only)f(whether)g(a)g(texture)f(ob)s(ject)g(is)h(cur-)120
1222 y(ren)o(tly)i(residen)o(t,)f(not)g(whether)g(it)g(could)h(not)f(b)
q(e)h(made)f(residen)o(t.)25 b(An)18 b(implemen-)120
1278 y(tation)g(ma)o(y)f(c)o(ho)q(ose)h(to)g(mak)o(e)f(a)h(texture)g
(ob)s(ject)f(residen)o(t)i(only)f(on)g(\014rst)g(use,)g(for)120
1335 y(example.)i(The)11 b(clien)o(t)h(ma)o(y)e(guide)i(the)f(GL)g
(implemen)o(tation)i(in)e(determining)i(whic)o(h)120
1391 y(texture)k(ob)s(jects)e(should)j(b)q(e)f(residen)o(t)g(b)o(y)f
(sp)q(ecifying)i(a)e(priorit)o(y)h(for)f(eac)o(h)g(texture)120
1448 y(ob)s(ject.)k(The)15 b(command)234 1548 y Fw(void)76
b Fz(PrioritizeT)l(extures)p FC(\()h Fw(sizei)38 b Fv(n)p
Fw(,)43 b(uint)38 b Fv(*textur)n(es)p Fw(,)302 1604 y(clampf)15
b Fv(*priorities)g FC(\))g Fw(;)120 1704 y FC(sets)i(the)h(priorities)h
(of)e(the)g Fv(n)g FC(texture)g(ob)s(jects)g(named)h(in)g
Fv(textur)n(es)f FC(to)g(the)h(v)m(alues)120 1761 y(in)h
Fv(priorities)p FC(.)27 b(Eac)o(h)18 b(priorit)o(y)g(v)m(alue)h(is)f
(clamp)q(ed)h(to)e(the)h(range)f([0,1])f(b)q(efore)i(it)g(is)120
1817 y(assigned.)i(Zero)10 b(indicates)j(the)f(lo)o(w)o(est)e(priorit)o
(y)l(,)j(with)e(the)h(least)f(lik)o(eliho)q(o)q(d)k(of)10
b(b)q(eing)120 1874 y(residen)o(t.)24 b(One)18 b(indicates)f(the)g
(highest)g(priorit)o(y)l(,)f(with)h(the)g(greatest)e(lik)o(eliho)q(o)q
(d)k(of)120 1930 y(b)q(eing)h(residen)o(t.)28 b(The)18
b(priorit)o(y)g(of)g(a)f(single)i(b)q(ound)g(texture)f(ob)s(ject)f(ma)o
(y)g(also)h(b)q(e)120 1986 y(c)o(hanged)e(b)o(y)f(calling)i
Fz(T)l(exP)o(arameteri)p FC(,)d Fz(T)l(exP)o(arameterf)p
FC(,)g Fz(T)l(exP)o(arameteriv)p FC(,)120 2043 y(or)21
b Fz(T)l(exP)o(arameterfv)f FC(with)i Fy(tar)q(g)r(et)f
FC(set)h(to)e(the)i(target)e(to)h(whic)o(h)h(the)g(texture)120
2099 y(ob)s(ject)f(is)h(b)q(ound,)i Fy(pname)e FC(set)f(to)g
Fr(TEXTURE)p 930 2099 V 14 w(PRIORITY)p FC(,)f(and)i
Fy(par)q(am)f FC(or)g Fy(par)q(ams)120 2156 y FC(sp)q(ecifying)16
b(the)d(new)h(priorit)o(y)f(v)m(alue)i(\(whic)o(h)f(is)g(clamp)q(ed)h
(to)d(the)i(range)f([0,1])e(b)q(efore)120 2212 y(b)q(eing)k
(assigned\).)k Fz(PrioritizeT)l(extures)14 b FC(silen)o(tly)h(ignores)e
(attempts)g(to)f(prioritize)120 2269 y(un)o(used)k(texture)f(ob)s(ject)
g(names)g(or)g(default)h(textures.)120 2399 y Fl(3.8.5)56
b(T)-5 b(exture)17 b(En)n(vironmen)n(ts)g(and)i(T)-5
b(exture)18 b(F)-5 b(unctions)120 2488 y FC(The)16 b(command)p
eop
%%Page: 102 111
102 110 bop 332 137 a FC(102)727 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)446 286 y Fw(void)29 b Fz(T)l(exEn)o(v)p
FB(f)p Fz(if)p FB(g)p FC(\()g Fw(enum)15 b Fv(tar)n(get)p
Fw(,)g(enum)g Fv(pname)p Fw(,)g(T)g Fv(p)n(ar)n(am)g
FC(\))g Fw(;)446 343 y(void)29 b Fz(T)l(exEn)o(v)p FB(f)p
Fz(if)p FB(g)p Fz(v)p FC(\()g Fw(enum)15 b Fv(tar)n(get)p
Fw(,)g(enum)f Fv(pname)p Fw(,)i(T)f Fv(p)n(ar)n(ams)g
FC(\))f Fw(;)332 448 y FC(sets)f(parameters)g(of)f(the)i
Fv(textur)n(e)h(envir)n(onment)d FC(that)g(sp)q(eci\014es)j(ho)o(w)e
(texture)g(v)m(alues)332 504 y(are)20 b(in)o(terpreted)h(when)g
(texturing)f(a)g(fragmen)o(t.)34 b Fv(tar)n(get)20 b
FC(m)o(ust)g(curren)o(tly)g(b)q(e)h(the)332 561 y(sym)o(b)q(olic)15
b(constan)o(t)e Fr(TEXTURE)p 858 561 14 2 v 14 w(ENV)p
FC(.)f Fv(pname)i FC(is)g(a)f(sym)o(b)q(olic)i(constan)o(t)e
(indicating)i(the)332 617 y(parameter)j(to)h(b)q(e)g(set.)32
b(In)19 b(the)g(\014rst)g(form)f(of)h(the)g(command,)h
Fv(p)n(ar)n(am)f FC(is)g(a)g(v)m(alue)332 673 y(to)d(whic)o(h)i(to)e
(set)h(a)g(single-v)m(alued)j(parameter;)c(in)i(the)f(second)g(form,)g
Fv(p)n(ar)n(ams)f FC(is)i(a)332 730 y(p)q(oin)o(ter)i(to)e(an)h(arra)o
(y)f(of)h(parameters:)27 b(either)20 b(a)f(single)h(sym)o(b)q(olic)h
(constan)o(t)d(or)h(a)332 786 y(v)m(alue)h(or)e(group)h(of)f(v)m(alues)
i(to)e(whic)o(h)i(the)f(parameter)f(should)h(b)q(e)h(set.)30
b(The)19 b(p)q(os-)332 843 y(sible)f(en)o(vironmen)o(t)f(parameters)e
(are)h Fr(TEXTURE)p 1170 843 V 14 w(ENV)p 1250 843 V
16 w(MODE)f FC(and)i Fr(TEXTURE)p 1613 843 V 14 w(ENV)p
1693 843 V 15 w(COLOR)p FC(.)332 899 y Fr(TEXTURE)p 489
899 V 14 w(ENV)p 569 899 V 15 w(MODE)g FC(ma)o(y)g(b)q(e)h(set)f(to)g
(one)g(of)g Fr(REPLACE)p FC(,)f Fr(MODULATE)p FC(,)f
Fr(DECAL)p FC(,)h(or)h Fr(BLEND)p FC(;)332 956 y Fr(TEXTURE)p
489 956 V 14 w(ENV)p 569 956 V 15 w(COLOR)11 b FC(is)h(set)f(to)g(an)h
(R)o(GBA)f(color)h(b)o(y)g(pro)o(viding)g(four)f(single-precisi)q(on)
332 1012 y(\015oating-p)q(oin)o(t)g(v)m(alues)h(in)g(the)f(range)f([0)p
Fy(;)e FC(1])h(\(v)m(alues)j(outside)f(this)g(range)g(are)f(clamp)q(ed)
332 1069 y(to)g(it\).)18 b(If)11 b(in)o(tegers)g(are)g(pro)o(vided)g
(for)f Fr(TEXTURE)p 1143 1069 V 14 w(ENV)p 1223 1069
V 15 w(COLOR)p FC(,)g(then)h(they)f(are)h(con)o(v)o(erted)332
1125 y(to)k(\015oating-p)q(oin)o(t)g(as)g(sp)q(eci\014ed)j(in)e(T)l
(able)g(2.6)e(for)g(signed)j(in)o(tegers.)403 1184 y(The)i(v)m(alue)i
(of)e Fr(TEXTURE)p 835 1184 V 14 w(ENV)p 915 1184 V 15
w(MODE)f FC(sp)q(eci\014es)j(a)e Fv(textur)n(e)i(function)p
FC(.)31 b(The)20 b(result)332 1241 y(of)c(this)g(function)h(dep)q(ends)
g(on)f(the)g(fragmen)o(t)f(and)h(the)g(texture)f(arra)o(y)g(v)m(alue.)
23 b(The)332 1297 y(precise)f(form)d(of)h(the)h(function)g(dep)q(ends)h
(on)e(the)h(base)f(in)o(ternal)h(formats)e(of)h(the)332
1354 y(texture)15 b(arra)o(ys)e(that)h(w)o(ere)h(last)g(sp)q
(eci\014ed.)21 b(In)16 b(the)f(follo)o(wing)g(t)o(w)o(o)f(tables,)h
Fy(R)1706 1361 y Fu(f)1728 1354 y FC(,)f Fy(G)1791 1361
y Fu(f)1814 1354 y FC(,)332 1410 y Fy(B)366 1417 y Fu(f)389
1410 y FC(,)21 b(and)f Fy(A)550 1417 y Fu(f)593 1410
y FC(are)g(the)g(color)h(comp)q(onen)o(ts)f(of)f(the)i(incoming)g
(fragmen)o(t;)g Fy(R)1715 1417 y Fu(t)1729 1410 y FC(,)g
Fy(G)1799 1417 y Fu(t)1814 1410 y FC(,)332 1467 y Fy(B)366
1474 y Fu(t)381 1467 y FC(,)e Fy(A)447 1474 y Fu(t)462
1467 y FC(,)g Fy(L)525 1474 y Fu(t)540 1467 y FC(,)g(and)g
Fy(I)684 1474 y Fu(t)718 1467 y FC(are)f(the)h(\014ltered)g(texture)g
(v)m(alues;)i Fy(R)1386 1474 y Fu(c)1403 1467 y FC(,)e
Fy(G)1471 1474 y Fu(c)1488 1467 y FC(,)g Fy(B)1554 1474
y Fu(c)1572 1467 y FC(,)g(and)g Fy(A)1730 1474 y Fu(c)1766
1467 y FC(are)332 1523 y(the)c(texture)f(en)o(vironmen)o(t)h(color)f(v)
m(alues;)i(and)e Fy(R)1208 1530 y Fu(v)1228 1523 y FC(,)h
Fy(G)1292 1530 y Fu(v)1312 1523 y FC(,)f Fy(B)1373 1530
y Fu(v)1394 1523 y FC(,)g(and)h Fy(A)1543 1530 y Fu(v)1578
1523 y FC(are)f(the)g(color)332 1579 y(comp)q(onen)o(ts)g(computed)h(b)
o(y)f(the)g(texture)g(function.)21 b(All)15 b(of)f(these)g(color)g(v)m
(alues)i(are)332 1636 y(in)e(the)f(range)g([0)p Fy(;)8
b FC(1].)17 b(The)c Fr(REPLACE)f FC(and)h Fr(MODULATE)f
FC(texture)h(functions)h(are)e(sp)q(eci\014ed)332 1692
y(in)20 b(T)l(able)h(3.10,)e(and)h(the)f Fr(DECAL)g FC(and)h
Fr(BLEND)e FC(texture)h(functions)i(are)e(sp)q(eci\014ed)j(in)332
1749 y(T)l(able)16 b(3.11.)403 1808 y(The)i(state)g(required)i(for)e
(the)g(curren)o(t)g(texture)h(en)o(vironmen)o(t)g(consists)f(of)g(the)
332 1864 y(four-v)m(alued)i(in)o(teger)f(indicating)i(the)e(texture)g
(function)g(and)g(four)g(\015oating-p)q(oin)o(t)332 1921
y Fr(TEXTURE)p 489 1921 V 14 w(ENV)p 569 1921 V 15 w(COLOR)d
FC(v)m(alues.)24 b(In)17 b(the)g(initial)h(state,)d(the)i(texture)f
(function)h(is)g(giv)o(en)332 1977 y(b)o(y)e Fr(MODULATE)f
FC(and)h Fr(TEXTURE)p 830 1977 V 14 w(ENV)p 910 1977
V 15 w(COLOR)g FC(is)g(\(0)p Fy(;)8 b FC(0)p Fy(;)g FC(0)p
Fy(;)g FC(0)o(\).)332 2115 y Fl(3.8.6)55 b(T)-5 b(exture)18
b(Application)332 2206 y FC(T)l(exturing)11 b(is)g(enabled)h(or)e
(disabled)j(using)e(the)g(generic)g Fz(Enable)h FC(and)f
Fz(Disable)h FC(com-)332 2262 y(mands,)h(resp)q(ectiv)o(ely)l(,)h(with)
f(the)g(sym)o(b)q(olic)h(constan)o(t)d Fr(TEXTURE)p 1441
2262 V 15 w(1D)h FC(or)g Fr(TEXTURE)p 1719 2262 V 14
w(2D)g FC(to)332 2319 y(enable)i(the)e(one-dimensional)j(or)c(t)o(w)o
(o-dimensional)j(texture,)e(resp)q(ectiv)o(ely)l(.)21
b(If)12 b(b)q(oth)332 2375 y(one-)h(and)h(t)o(w)o(o-dimensional)g
(textures)e(are)h(enabled,)i(the)e(t)o(w)o(o-dimensional)h(texture)332
2432 y(is)h(used.)21 b(If)14 b(all)i(texturing)f(is)g(disabled,)h(a)e
(rasterized)h(fragmen)o(t)f(is)h(passed)g(on)f(unal-)332
2488 y(tered)h(to)g(the)g(next)h(stage)e(of)h(the)h(GL)f(\(although)g
(its)h(texture)f(co)q(ordinates)g(ma)o(y)g(b)q(e)p eop
%%Page: 103 112
103 111 bop 120 137 a Fx(3.8.)34 b(TEXTURING)1037 b FC(103)p
288 553 1159 2 v 287 610 2 57 v 427 593 a(Base)p 658
610 V 260 w Fr(REPLACE)p 1052 610 V 229 w(MODULATE)p
1446 610 V 287 666 V 315 649 a FC(In)o(ternal)16 b(F)l(ormat)p
658 666 V 51 w(T)l(exture)f(F)l(unction)p 1052 666 V
51 w(T)l(exture)g(F)l(unction)p 1446 666 V 288 668 1159
2 v 288 676 V 287 733 2 57 v 419 716 a Fr(ALPHA)p 658
733 V 240 w Fy(R)804 723 y Fu(v)837 716 y FC(=)e Fy(R)920
723 y Fu(f)p 1052 733 V 1164 716 a Fy(R)1199 723 y Fu(v)1231
716 y FC(=)g Fy(R)1314 723 y Fu(f)p 1446 733 V 287 789
V 658 789 V 768 772 a Fy(G)804 779 y Fu(v)837 772 y FC(=)g
Fy(G)921 779 y Fu(f)p 1052 789 V 1162 772 a Fy(G)1198
779 y Fu(v)1231 772 y FC(=)g Fy(G)1315 779 y Fu(f)p 1446
789 V 287 846 V 658 846 V 770 829 a Fy(B)804 836 y Fu(v)837
829 y FC(=)g Fy(B)919 836 y Fu(f)p 1052 846 V 1164 829
a Fy(B)1198 836 y Fu(v)1231 829 y FC(=)g Fy(B)1313 836
y Fu(f)p 1446 846 V 287 902 V 658 902 V 774 885 a Fy(A)808
892 y Fu(v)841 885 y FC(=)g Fy(A)923 892 y Fu(t)p 1052
902 V 1139 885 a Fy(A)1173 892 y Fu(v)1207 885 y FC(=)g
Fy(A)1289 892 y Fu(f)1311 885 y Fy(A)1345 892 y Fu(t)p
1446 902 V 288 904 1159 2 v 287 960 2 57 v 376 943 a
Fr(LUMINANCE)p 658 960 V 201 w Fy(R)810 950 y Fu(v)843
943 y FC(=)g Fy(L)922 950 y Fu(t)p 1052 960 V 1141 943
a Fy(R)1176 950 y Fu(v)1208 943 y FC(=)g Fy(R)1291 950
y Fu(f)1313 943 y Fy(L)1344 950 y Fu(t)p 1446 960 V 287
1017 V 417 1000 a FC(\(or)i Fr(1)p FC(\))p 658 1017 V
244 w Fy(G)811 1007 y Fu(v)843 1000 y FC(=)e Fy(L)922
1007 y Fu(t)p 1052 1017 V 1139 1000 a Fy(G)1175 1007
y Fu(v)1208 1000 y FC(=)g Fy(G)1292 1007 y Fu(f)1315
1000 y Fy(L)1346 1007 y Fu(t)p 1446 1017 V 287 1073 V
658 1073 V 775 1056 a Fy(B)809 1063 y Fu(v)843 1056 y
FC(=)g Fy(L)922 1063 y Fu(t)p 1052 1073 V 1141 1056 a
Fy(B)1175 1063 y Fu(v)1208 1056 y FC(=)g Fy(B)1290 1063
y Fu(f)1313 1056 y Fy(L)1344 1063 y Fu(t)p 1446 1073
V 287 1130 V 658 1130 V 770 1113 a Fy(A)804 1120 y Fu(v)837
1113 y FC(=)g Fy(A)919 1120 y Fu(f)p 1052 1130 V 1164
1113 a Fy(A)1198 1120 y Fu(v)1231 1113 y FC(=)g Fy(A)1313
1120 y Fu(f)p 1446 1130 V 288 1131 1159 2 v 287 1188
2 57 v 313 1171 a Fr(LUMINANCE)p 514 1171 14 2 v 14 w(ALPHA)p
658 1188 2 57 v 140 w Fy(R)810 1178 y Fu(v)843 1171 y
FC(=)g Fy(L)922 1178 y Fu(t)p 1052 1188 V 1141 1171 a
Fy(R)1176 1178 y Fu(v)1208 1171 y FC(=)g Fy(R)1291 1178
y Fu(f)1313 1171 y Fy(L)1344 1178 y Fu(t)p 1446 1188
V 287 1244 V 417 1227 a FC(\(or)i Fr(2)p FC(\))p 658
1244 V 244 w Fy(G)811 1234 y Fu(v)843 1227 y FC(=)e Fy(L)922
1234 y Fu(t)p 1052 1244 V 1139 1227 a Fy(G)1175 1234
y Fu(v)1208 1227 y FC(=)g Fy(G)1292 1234 y Fu(f)1315
1227 y Fy(L)1346 1234 y Fu(t)p 1446 1244 V 287 1301 V
658 1301 V 775 1284 a Fy(B)809 1291 y Fu(v)843 1284 y
FC(=)g Fy(L)922 1291 y Fu(t)p 1052 1301 V 1141 1284 a
Fy(B)1175 1291 y Fu(v)1208 1284 y FC(=)g Fy(B)1290 1291
y Fu(f)1313 1284 y Fy(L)1344 1291 y Fu(t)p 1446 1301
V 287 1357 V 658 1357 V 774 1340 a Fy(A)808 1347 y Fu(v)841
1340 y FC(=)g Fy(A)923 1347 y Fu(t)p 1052 1357 V 1139
1340 a Fy(A)1173 1347 y Fu(v)1207 1340 y FC(=)g Fy(A)1289
1347 y Fu(f)1311 1340 y Fy(A)1345 1347 y Fu(t)p 1446
1357 V 288 1359 1159 2 v 287 1415 2 57 v 376 1398 a Fr(INTENSITY)p
658 1415 V 207 w Fy(R)816 1405 y Fu(v)848 1398 y FC(=)g
Fy(I)916 1405 y Fu(t)p 1052 1415 V 1146 1398 a Fy(R)1181
1405 y Fu(v)1214 1398 y FC(=)g Fy(R)1297 1405 y Fu(f)1319
1398 y Fy(I)1339 1405 y Fu(t)p 1446 1415 V 287 1472 V
658 1472 V 780 1455 a Fy(G)816 1462 y Fu(v)849 1455 y
FC(=)g Fy(I)917 1462 y Fu(t)p 1052 1472 V 1145 1455 a
Fy(G)1181 1462 y Fu(v)1214 1455 y FC(=)g Fy(G)1298 1462
y Fu(f)1320 1455 y Fy(I)1340 1462 y Fu(t)p 1446 1472
V 287 1528 V 658 1528 V 781 1511 a Fy(B)815 1518 y Fu(v)848
1511 y FC(=)g Fy(I)916 1518 y Fu(t)p 1052 1528 V 1146
1511 a Fy(B)1180 1518 y Fu(v)1214 1511 y FC(=)g Fy(B)1296
1518 y Fu(f)1319 1511 y Fy(I)1339 1518 y Fu(t)p 1446
1528 V 287 1585 V 658 1585 V 781 1568 a Fy(A)815 1575
y Fu(v)848 1568 y FC(=)g Fy(I)916 1575 y Fu(t)p 1052
1585 V 1147 1568 a Fy(A)1181 1575 y Fu(v)1214 1568 y
FC(=)g Fy(A)1296 1575 y Fu(f)1318 1568 y Fy(I)1338 1575
y Fu(t)p 1446 1585 V 288 1586 1159 2 v 287 1643 2 57
v 441 1626 a Fr(RGB)p 658 1643 V 266 w Fy(R)808 1633
y Fu(v)841 1626 y FC(=)g Fy(R)924 1633 y Fu(t)p 1052
1643 V 1139 1626 a Fy(R)1174 1633 y Fu(v)1206 1626 y
FC(=)g Fy(R)1289 1633 y Fu(f)1312 1626 y Fy(R)1347 1633
y Fu(t)p 1446 1643 V 287 1699 V 417 1682 a FC(\(or)i
Fr(3)p FC(\))p 658 1699 V 241 w Fy(G)808 1689 y Fu(v)841
1682 y FC(=)e Fy(G)925 1689 y Fu(t)p 1052 1699 V 1137
1682 a Fy(G)1173 1689 y Fu(v)1206 1682 y FC(=)g Fy(G)1290
1689 y Fu(f)1312 1682 y Fy(G)1348 1689 y Fu(t)p 1446
1699 V 287 1756 V 658 1756 V 773 1739 a Fy(B)807 1746
y Fu(v)841 1739 y FC(=)g Fy(B)923 1746 y Fu(t)p 1052
1756 V 1139 1739 a Fy(B)1173 1746 y Fu(v)1206 1739 y
FC(=)g Fy(B)1288 1746 y Fu(f)1312 1739 y Fy(B)1346 1746
y Fu(t)p 1446 1756 V 287 1812 V 658 1812 V 770 1795 a
Fy(A)804 1802 y Fu(v)837 1795 y FC(=)g Fy(A)919 1802
y Fu(f)p 1052 1812 V 1164 1795 a Fy(A)1198 1802 y Fu(v)1231
1795 y FC(=)g Fy(A)1313 1802 y Fu(f)p 1446 1812 V 288
1814 1159 2 v 287 1870 2 57 v 430 1853 a Fr(RGBA)p 658
1870 V 255 w Fy(R)808 1860 y Fu(v)841 1853 y FC(=)g Fy(R)924
1860 y Fu(t)p 1052 1870 V 1139 1853 a Fy(R)1174 1860
y Fu(v)1206 1853 y FC(=)g Fy(R)1289 1860 y Fu(f)1312
1853 y Fy(R)1347 1860 y Fu(t)p 1446 1870 V 287 1927 V
417 1910 a FC(\(or)i Fr(4)p FC(\))p 658 1927 V 241 w
Fy(G)808 1917 y Fu(v)841 1910 y FC(=)e Fy(G)925 1917
y Fu(t)p 1052 1927 V 1137 1910 a Fy(G)1173 1917 y Fu(v)1206
1910 y FC(=)g Fy(G)1290 1917 y Fu(f)1312 1910 y Fy(G)1348
1917 y Fu(t)p 1446 1927 V 287 1983 V 658 1983 V 773 1966
a Fy(B)807 1973 y Fu(v)841 1966 y FC(=)g Fy(B)923 1973
y Fu(t)p 1052 1983 V 1139 1966 a Fy(B)1173 1973 y Fu(v)1206
1966 y FC(=)g Fy(B)1288 1973 y Fu(f)1312 1966 y Fy(B)1346
1973 y Fu(t)p 1446 1983 V 287 2040 V 658 2040 V 774 2023
a Fy(A)808 2030 y Fu(v)841 2023 y FC(=)g Fy(A)923 2030
y Fu(t)p 1052 2040 V 1139 2023 a Fy(A)1173 2030 y Fu(v)1207
2023 y FC(=)g Fy(A)1289 2030 y Fu(f)1311 2023 y Fy(A)1345
2030 y Fu(t)p 1446 2040 V 288 2041 1159 2 v 343 2118
a FC(T)l(able)j(3.10:)j(Replace)e(and)e(mo)q(dulate)h(texture)f
(functions.)p eop
%%Page: 104 113
104 112 bop 332 137 a FC(104)727 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)p 348 558 1462 2 v 347 614 2 57 v
487 597 a FC(Base)p 718 614 V 356 w Fr(DECAL)p 1261 614
V 435 w(BLEND)p 1809 614 V 347 671 V 376 654 a FC(In)o(ternal)15
b(F)l(ormat)p 718 671 V 125 w(T)l(exture)h(F)l(unction)p
1261 671 V 202 w(T)l(exture)f(F)l(unction)p 1809 671
V 348 672 1462 2 v 348 681 V 347 737 2 57 v 479 720 a
Fr(ALPHA)p 718 737 V 305 w FC(unde\014ned)p 1261 737
V 366 w Fy(R)1485 727 y Fu(v)1517 720 y FC(=)e Fy(R)1600
727 y Fu(f)p 1809 737 V 347 794 V 718 794 V 1261 794
V 1448 777 a Fy(G)1484 784 y Fu(v)1517 777 y FC(=)g Fy(G)1601
784 y Fu(f)p 1809 794 V 347 850 V 718 850 V 1261 850
V 1450 833 a Fy(B)1484 840 y Fu(v)1517 833 y FC(=)g Fy(B)1599
840 y Fu(f)p 1809 850 V 347 907 V 718 907 V 1261 907
V 1425 890 a Fy(A)1459 897 y Fu(v)1493 890 y FC(=)g Fy(A)1575
897 y Fu(f)1597 890 y Fy(A)1631 897 y Fu(t)p 1809 907
V 348 908 1462 2 v 347 965 2 57 v 436 948 a Fr(LUMINANCE)p
718 965 V 260 w FC(unde\014ned)p 1261 965 V 209 w Fy(R)1328
955 y Fu(v)1361 948 y FC(=)g Fy(R)1444 955 y Fu(f)1466
948 y FC(\(1)c FB(\000)i Fy(L)1593 955 y Fu(t)1608 948
y FC(\))e(+)i Fy(R)1716 955 y Fu(c)1733 948 y Fy(L)1764
955 y Fu(t)p 1809 965 V 347 1021 V 477 1004 a FC(\(or)k
Fr(1)p FC(\))p 718 1021 V 1261 1021 V 700 w Fy(G)1327
1011 y Fu(v)1360 1004 y FC(=)e Fy(G)1444 1011 y Fu(f)1467
1004 y FC(\(1)c FB(\000)i Fy(L)1594 1011 y Fu(t)1608
1004 y FC(\))f(+)h Fy(G)1718 1011 y Fu(c)1735 1004 y
Fy(L)1766 1011 y Fu(t)p 1809 1021 V 347 1078 V 718 1078
V 1261 1078 V 1293 1061 a Fy(B)1327 1068 y Fu(v)1361
1061 y FC(=)i Fy(B)1443 1068 y Fu(f)1466 1061 y FC(\(1)c
FB(\000)i Fy(L)1593 1068 y Fu(t)1608 1061 y FC(\))e(+)i
Fy(B)1715 1068 y Fu(c)1733 1061 y Fy(L)1764 1068 y Fu(t)p
1809 1078 V 347 1134 V 718 1134 V 1261 1134 V 1450 1117
a Fy(A)1484 1124 y Fu(v)1517 1117 y FC(=)i Fy(A)1599
1124 y Fu(f)p 1809 1134 V 348 1136 1462 2 v 347 1192
2 57 v 373 1175 a Fr(LUMINANCE)p 574 1175 14 2 v 14 w(ALPHA)p
718 1192 2 57 v 199 w FC(unde\014ned)p 1261 1192 V 209
w Fy(R)1328 1182 y Fu(v)1361 1175 y FC(=)g Fy(R)1444
1182 y Fu(f)1466 1175 y FC(\(1)c FB(\000)i Fy(L)1593
1182 y Fu(t)1608 1175 y FC(\))e(+)i Fy(R)1716 1182 y
Fu(c)1733 1175 y Fy(L)1764 1182 y Fu(t)p 1809 1192 V
347 1249 V 477 1232 a FC(\(or)k Fr(2)p FC(\))p 718 1249
V 1261 1249 V 700 w Fy(G)1327 1239 y Fu(v)1360 1232 y
FC(=)e Fy(G)1444 1239 y Fu(f)1467 1232 y FC(\(1)c FB(\000)i
Fy(L)1594 1239 y Fu(t)1608 1232 y FC(\))f(+)h Fy(G)1718
1239 y Fu(c)1735 1232 y Fy(L)1766 1239 y Fu(t)p 1809
1249 V 347 1305 V 718 1305 V 1261 1305 V 1293 1288 a
Fy(B)1327 1295 y Fu(v)1361 1288 y FC(=)i Fy(B)1443 1295
y Fu(f)1466 1288 y FC(\(1)c FB(\000)i Fy(L)1593 1295
y Fu(t)1608 1288 y FC(\))e(+)i Fy(B)1715 1295 y Fu(c)1733
1288 y Fy(L)1764 1295 y Fu(t)p 1809 1305 V 347 1362 V
718 1362 V 1261 1362 V 1425 1345 a Fy(A)1459 1352 y Fu(v)1493
1345 y FC(=)i Fy(A)1575 1352 y Fu(f)1597 1345 y Fy(A)1631
1352 y Fu(t)p 1809 1362 V 348 1363 1462 2 v 347 1420
2 57 v 436 1403 a Fr(INTENSITY)p 718 1420 V 260 w FC(unde\014ned)p
1261 1420 V 220 w Fy(R)1339 1410 y Fu(v)1372 1403 y FC(=)g
Fy(R)1455 1410 y Fu(f)1477 1403 y FC(\(1)c FB(\000)i
Fy(I)1593 1410 y Fu(t)1608 1403 y FC(\))e(+)i Fy(R)1716
1410 y Fu(c)1733 1403 y Fy(I)1753 1410 y Fu(t)p 1809
1420 V 347 1476 V 718 1476 V 1261 1476 V 1302 1459 a
Fy(G)1338 1466 y Fu(v)1371 1459 y FC(=)i Fy(G)1455 1466
y Fu(f)1478 1459 y FC(\(1)c FB(\000)i Fy(I)1594 1466
y Fu(t)1608 1459 y FC(\))f(+)h Fy(G)1718 1466 y Fu(c)1735
1459 y Fy(I)1755 1466 y Fu(t)p 1809 1476 V 347 1533 V
718 1533 V 1261 1533 V 1304 1516 a Fy(B)1338 1523 y Fu(v)1372
1516 y FC(=)i Fy(B)1454 1523 y Fu(f)1477 1516 y FC(\(1)c
FB(\000)i Fy(I)1593 1523 y Fu(t)1608 1516 y FC(\))e(+)i
Fy(B)1715 1523 y Fu(c)1733 1516 y Fy(I)1753 1523 y Fu(t)p
1809 1533 V 347 1589 V 718 1589 V 1261 1589 V 1305 1572
a Fy(A)1339 1579 y Fu(v)1372 1572 y FC(=)i Fy(A)1454
1579 y Fu(f)1477 1572 y FC(\(1)c FB(\000)i Fy(I)1593
1579 y Fu(t)1607 1572 y FC(\))f(+)h Fy(A)1715 1579 y
Fu(c)1732 1572 y Fy(I)1752 1579 y Fu(t)p 1809 1589 V
348 1591 1462 2 v 347 1647 2 57 v 501 1630 a Fr(RGB)p
718 1647 V 341 w Fy(R)943 1637 y Fu(v)976 1630 y FC(=)h
Fy(R)1058 1637 y Fu(t)p 1261 1647 V 1290 1630 a Fy(R)1325
1637 y Fu(v)1357 1630 y FC(=)h Fy(R)1440 1637 y Fu(f)1462
1630 y FC(\(1)d FB(\000)g Fy(R)1593 1637 y Fu(t)1608
1630 y FC(\))f(+)i Fy(R)1716 1637 y Fu(c)1733 1630 y
Fy(R)1768 1637 y Fu(t)p 1809 1647 V 347 1704 V 477 1687
a FC(\(or)k Fr(3)p FC(\))p 718 1704 V 316 w Fy(G)943
1694 y Fu(v)976 1687 y FC(=)d Fy(G)1059 1694 y Fu(t)p
1261 1704 V 1287 1687 a Fy(G)1323 1694 y Fu(v)1355 1687
y FC(=)h Fy(G)1439 1694 y Fu(f)1462 1687 y FC(\(1)c FB(\000)i
Fy(G)1594 1694 y Fu(t)1608 1687 y FC(\))f(+)h Fy(G)1718
1694 y Fu(c)1735 1687 y Fy(G)1771 1694 y Fu(t)p 1809
1704 V 347 1760 V 718 1760 V 908 1743 a Fy(B)942 1750
y Fu(v)976 1743 y FC(=)h Fy(B)1057 1750 y Fu(t)p 1261
1760 V 1290 1743 a Fy(B)1324 1750 y Fu(v)1357 1743 y
FC(=)h Fy(B)1439 1750 y Fu(f)1462 1743 y FC(\(1)d FB(\000)g
Fy(B)1592 1750 y Fu(t)1608 1743 y FC(\))f(+)i Fy(B)1715
1750 y Fu(c)1733 1743 y Fy(B)1767 1750 y Fu(t)p 1809
1760 V 347 1817 V 718 1817 V 904 1800 a Fy(A)938 1807
y Fu(v)972 1800 y FC(=)i Fy(A)1054 1807 y Fu(f)p 1261
1817 V 1450 1800 a Fy(A)1484 1807 y Fu(v)1517 1800 y
FC(=)g Fy(A)1599 1807 y Fu(f)p 1809 1817 V 348 1818 1462
2 v 347 1875 2 57 v 490 1858 a Fr(RGBA)p 718 1875 V 168
w Fy(R)781 1865 y Fu(v)813 1858 y FC(=)g Fy(R)896 1865
y Fu(f)919 1858 y FC(\(1)c FB(\000)i Fy(A)1049 1865 y
Fu(t)1063 1858 y FC(\))f(+)h Fy(R)1172 1865 y Fu(t)1186
1858 y Fy(A)1220 1865 y Fu(t)p 1261 1875 V 1290 1858
a Fy(R)1325 1865 y Fu(v)1357 1858 y FC(=)i Fy(R)1440
1865 y Fu(f)1462 1858 y FC(\(1)d FB(\000)g Fy(R)1593
1865 y Fu(t)1608 1858 y FC(\))f(+)i Fy(R)1716 1865 y
Fu(c)1733 1858 y Fy(R)1768 1865 y Fu(t)p 1809 1875 V
347 1931 V 477 1914 a FC(\(or)k Fr(4)p FC(\))p 718 1931
V 153 w Fy(G)780 1921 y Fu(v)813 1914 y FC(=)e Fy(G)897
1921 y Fu(f)919 1914 y FC(\(1)d FB(\000)g Fy(A)1049 1921
y Fu(t)1064 1914 y FC(\))g(+)g Fy(G)1173 1921 y Fu(t)1188
1914 y Fy(A)1222 1921 y Fu(t)p 1261 1931 V 1287 1914
a Fy(G)1323 1921 y Fu(v)1355 1914 y FC(=)j Fy(G)1439
1921 y Fu(f)1462 1914 y FC(\(1)c FB(\000)i Fy(G)1594
1921 y Fu(t)1608 1914 y FC(\))f(+)h Fy(G)1718 1921 y
Fu(c)1735 1914 y Fy(G)1771 1921 y Fu(t)p 1809 1931 V
347 1988 V 718 1988 V 746 1971 a Fy(B)780 1978 y Fu(v)813
1971 y FC(=)i Fy(B)895 1978 y Fu(f)919 1971 y FC(\(1)c
FB(\000)i Fy(A)1049 1978 y Fu(t)1063 1971 y FC(\))f(+)h
Fy(B)1171 1978 y Fu(t)1186 1971 y Fy(A)1220 1978 y Fu(t)p
1261 1988 V 1290 1971 a Fy(B)1324 1978 y Fu(v)1357 1971
y FC(=)i Fy(B)1439 1978 y Fu(f)1462 1971 y FC(\(1)d FB(\000)g
Fy(B)1592 1978 y Fu(t)1608 1971 y FC(\))f(+)i Fy(B)1715
1978 y Fu(c)1733 1971 y Fy(B)1767 1978 y Fu(t)p 1809
1988 V 347 2044 V 718 2044 V 904 2027 a Fy(A)938 2034
y Fu(v)972 2027 y FC(=)i Fy(A)1054 2034 y Fu(f)p 1261
2044 V 1425 2027 a Fy(A)1459 2034 y Fu(v)1493 2027 y
FC(=)g Fy(A)1575 2034 y Fu(f)1597 2027 y Fy(A)1631 2034
y Fu(t)p 1809 2044 V 348 2046 1462 2 v 615 2123 a FC(T)l(able)j(3.11:)j
(Decal)d(and)f(blend)i(texture)e(functions.)p eop
%%Page: 105 114
105 113 bop 120 137 a Fx(3.9.)34 b(F)o(OG)1221 b FC(105)120
286 y(discarded\).)22 b(Otherwise,)15 b(a)g(texture)g(v)m(alue)i(is)f
(found)g(according)f(to)g(the)h(parameter)120 343 y(v)m(alues)i(of)e
(the)h(curren)o(tly)g(b)q(ound)h(texture)e(image)h(of)f(the)h
(appropriate)g(dimension-)120 399 y(alit)o(y)g(using)f(the)g(rules)h
(giv)o(en)f(in)h(sections)f(3.8.1)f(and)h(3.8.2.)k(This)c(texture)g(v)m
(alue)h(is)120 456 y(used)i(along)e(with)h(the)g(incoming)h(fragmen)o
(t)d(in)j(computing)f(the)g(texture)f(function)120 512
y(indicated)k(b)o(y)d(the)g(curren)o(tly)h(b)q(ound)h(texture)e(en)o
(vironmen)o(t.)30 b(The)18 b(result)h(of)f(this)120 569
y(function)j(replaces)f(the)g(incoming)h(fragmen)o(t's)d(R,)h(G,)g(B,)h
(and)f(A)h(v)m(alues.)34 b(These)120 625 y(are)14 b(the)f(color)h(v)m
(alues)h(passed)f(to)f(subsequen)o(t)h(op)q(erations.)20
b(Other)14 b(data)f(asso)q(ciated)120 682 y(with)j(the)f(incoming)i
(fragmen)o(t)d(remain)h(unc)o(hanged,)h(except)g(that)e(the)i(texture)f
(co-)120 738 y(ordinates)h(ma)o(y)e(b)q(e)i(discarded.)191
795 y(The)j(required)g(state)f(is)h(t)o(w)o(o)e(bits)i(indicating)i
(whether)d(eac)o(h)h(of)f(one-)h(or)f(t)o(w)o(o-)120
851 y(dimensional)f(texturing)d(is)h(enabled)h(or)e(disabled.)21
b(In)15 b(the)g(initial)h(state,)e(all)h(textur-)120
907 y(ing)h(is)g(disabled.)120 1049 y Fs(3.9)67 b(F)-6
b(og)120 1151 y FC(If)14 b(enabled,)g(fog)e(blends)j(a)d(fog)g(color)h
(with)g(a)g(rasterized)g(fragmen)o(t's)f(p)q(ost-texturing)120
1207 y(color)g(using)f(a)g(blending)i(factor)d Fy(f)5
b FC(.)19 b(F)l(og)10 b(is)i(enabled)h(and)e(disabled)i(with)e(the)g
Fz(Enable)120 1264 y FC(and)16 b Fz(Disable)g FC(commands)f(using)h
(the)f(sym)o(b)q(olic)i(constan)o(t)d Fr(FOG)p FC(.)191
1320 y(This)i(factor)e Fy(f)20 b FC(is)c(computed)g(according)f(to)g
(one)g(of)g(three)g(equations:)708 1413 y Fy(f)i FC(=)c(exp)q(\()p
FB(\000)p Fy(d)c FB(\001)h Fy(z)r FC(\))p Fy(;)471 b
FC(\(3.16\))656 1505 y Fy(f)18 b FC(=)13 b(exp\()p FB(\000)p
FC(\()p Fy(d)d FB(\001)f Fy(z)r FC(\))981 1484 y Fq(2)1001
1505 y FC(\))p Fy(;)f FC(or)418 b(\(3.17\))769 1600 y
Fy(f)18 b FC(=)862 1569 y Fy(e)10 b FB(\000)g Fy(z)p
862 1590 100 2 v 863 1631 a(e)g FB(\000)g Fy(s)1499 1600
y FC(\(3.18\))120 1695 y(\()p Fy(z)16 b FC(is)f(the)f(ey)o(e-co)q
(ordinate)g(distance)h(from)e(the)h(ey)o(e,)g(\(0)p Fy(;)8
b FC(0)p Fy(;)g FC(0)p Fy(;)g FC(1)o(\))j(in)k(ey)o(e)f(co)q
(ordinates,)120 1752 y(to)k(the)h(fragmen)o(t)e(cen)o(ter\).)29
b(The)19 b(equation,)g(along)g(with)g(either)g Fy(d)f
FC(or)g Fy(e)g FC(and)h Fy(s)p FC(,)g(is)120 1808 y(sp)q(eci\014ed)f
(with)234 1894 y Fw(void)30 b Fz(F)l(og)p FB(f)p Fz(if)p
FB(g)p FC(\()g Fw(enum)14 b Fv(pname)p Fw(,)h(T)g Fv(p)n(ar)n(am)h
FC(\))f Fw(;)234 1951 y(void)30 b Fz(F)l(og)p FB(f)p
Fz(if)p FB(g)p Fz(v)p FC(\()f Fw(enum)15 b Fv(pname)p
Fw(,)g(T)g Fv(p)n(ar)n(ams)g FC(\))g Fw(;)120 2037 y
FC(If)c Fv(pname)g FC(is)g Fr(FOG)p 412 2037 14 2 v 16
w(MODE)p FC(,)e(then)i Fv(p)n(ar)n(am)g FC(m)o(ust)f(b)q(e,)i(or)f
Fv(p)n(ar)n(ams)f FC(m)o(ust)g(p)q(oin)o(t)i(to)e(an)h(in)o(teger)120
2093 y(that)19 b(is)i(one)f(of)f(the)h(sym)o(b)q(olic)h(constan)o(ts)e
Fr(EXP)p FC(,)f Fr(EXP2)p FC(,)i(or)f Fr(LINEAR)p FC(,)f(in)j(whic)o(h)
g(case)120 2149 y(equation)11 b(3.16,)f(3.17,)g(or)g(3.18,)f(resp)q
(ectiv)o(ely)l(,)k(is)e(selected)h(for)e(the)g(fog)g(calculation)i
(\(if,)120 2206 y(when)i(3.18)d(is)i(selected,)h Fy(e)f
FC(=)g Fy(s)p FC(,)g(results)g(are)g(unde\014ned\).)20
b(If)13 b Fv(pname)g FC(is)h Fr(FOG)p 1438 2206 V 15
w(DENSITY)p FC(,)120 2262 y Fr(FOG)p 189 2262 V 15 w(START)p
FC(,)i(or)g Fr(FOG)p 466 2262 V 15 w(END)p FC(,)g(then)h
Fv(p)n(ar)n(am)g FC(is)g(or)g Fv(p)n(ar)n(ams)f FC(p)q(oin)o(ts)i(to)e
(a)g(v)m(alue)i(that)e(is)h Fy(d)p FC(,)120 2319 y Fy(s)p
FC(,)e(or)g Fy(e)p FC(,)g(resp)q(ectiv)o(ely)l(.)22 b(If)15
b Fy(d)g FC(is)h(sp)q(eci\014ed)h(less)f(than)f(zero,)g(the)g(error)g
Fr(INVALID)p 1495 2319 V 14 w(VALUE)120 2375 y FC(results.)191
2432 y(An)i(implemen)o(tation)h(ma)o(y)e(c)o(ho)q(ose)h(to)f(appro)o
(ximate)g(the)h(ey)o(e-co)q(ordinate)h(dis-)120 2488
y(tance)i(from)f(the)h(ey)o(e)g(to)g(eac)o(h)g(fragmen)o(t)e(cen)o(ter)
i(b)o(y)g FB(j)p Fy(z)1130 2495 y Fu(e)1148 2488 y FB(j)p
FC(.)34 b(F)l(urther,)20 b Fy(f)25 b FC(need)c(not)p
eop
%%Page: 106 115
106 114 bop 332 137 a FC(106)727 b Fx(CHAPTER)16 b(3.)34
b(RASTERIZA)l(TION)332 286 y FC(b)q(e)19 b(computed)g(at)e(eac)o(h)i
(fragmen)o(t,)e(but)i(ma)o(y)f(b)q(e)h(computed)f(at)g(eac)o(h)g(v)o
(ertex)g(and)332 343 y(in)o(terp)q(olated)e(as)f(other)g(data)f(are.)
403 400 y(No)g(matter)f(whic)o(h)h(equation)h(and)f(appro)o(ximation)g
(is)h(used)g(to)e(compute)h Fy(f)5 b FC(,)14 b(the)332
457 y(result)i(is)f(clamp)q(ed)i(to)e([0)p Fy(;)8 b FC(1])13
b(to)h(obtain)i(the)f(\014nal)h Fy(f)5 b FC(.)403 514
y Fy(f)20 b FC(is)c(used)g(di\013eren)o(tly)g(dep)q(ending)i(on)d
(whether)h(the)f(GL)h(is)g(in)g(R)o(GBA)g(or)e(color)332
571 y(index)i(mo)q(de.)k(In)15 b(R)o(GBA)f(mo)q(de,)g(if)h
Fy(C)1006 578 y Fu(r)1039 571 y FC(represen)o(ts)f(a)g(rasterized)h
(fragmen)o(t's)e(R,)h(G,)332 627 y(or)h(B)g(v)m(alue,)h(then)g(the)f
(corresp)q(onding)h(v)m(alue)h(pro)q(duced)f(b)o(y)f(fog)g(is)860
732 y Fy(C)g FC(=)e Fy(f)5 b(C)1016 739 y Fu(r)1045 732
y FC(+)10 b(\(1)g FB(\000)g Fy(f)5 b FC(\))p Fy(C)1264
739 y Fu(f)1286 732 y Fy(:)332 838 y FC(\(The)14 b(rasterized)h
(fragmen)o(t's)d(A)i(v)m(alue)i(is)e(not)g(c)o(hanged)g(b)o(y)g(fog)g
(blending.\))21 b(The)14 b(R,)332 894 y(G,)h(B,)g(and)h(A)f(v)m(alues)i
(of)e Fy(C)815 901 y Fu(f)853 894 y FC(are)g(sp)q(eci\014ed)j(b)o(y)d
(calling)i Fz(F)l(og)e FC(with)h Fv(pname)g FC(equal)g(to)332
951 y Fr(FOG)p 401 951 14 2 v 15 w(COLOR)p FC(;)e(in)h(this)h(case)e
Fv(p)n(ar)n(ams)h FC(p)q(oin)o(ts)h(to)e(four)g(v)m(alues)i(comprising)
g Fy(C)1625 958 y Fu(f)1647 951 y FC(.)k(If)15 b(these)332
1007 y(are)e(not)f(\015oating-p)q(oin)o(t)i(v)m(alues,)g(then)f(they)g
(are)f(con)o(v)o(erted)h(to)f(\015oating-p)q(oin)o(t)i(using)332
1063 y(the)f(con)o(v)o(ersion)h(giv)o(en)g(in)g(T)l(able)g(2.6)e(for)h
(signed)h(in)o(tegers.)19 b(Eac)o(h)13 b(comp)q(onen)o(t)g(of)g
Fy(C)1804 1070 y Fu(f)332 1120 y FC(is)i(clamp)q(ed)h(to)d([0)p
Fy(;)8 b FC(1])k(when)j(sp)q(eci\014ed.)22 b(If)15 b
Fy(i)1096 1127 y Fu(f)1132 1120 y FC(is)g(a)f(color)g(index,)i(then)f
(a)f(single)h(v)m(alue)332 1176 y(sp)q(eci\014es)j Fy(i)525
1183 y Fu(f)548 1176 y FC(.)23 b(Its)16 b(in)o(teger)h(part)f(is)h
(mask)o(ed)f(with)g(2)1241 1160 y Fu(n)1275 1176 y FB(\000)c
FC(1,)k(where)g Fy(n)h FC(is)g(the)f(n)o(um)o(b)q(er)332
1233 y(of)f(bits)g(in)i(a)d(color)i(index)g(framebu\013er.)403
1290 y(In)f(color)h(index)g(mo)q(de,)f(the)h(form)o(ula)e(for)h(fog)f
(blending)k(is)903 1395 y Fy(I)e FC(=)d Fy(i)1003 1402
y Fu(r)1031 1395 y FC(+)e(\(1)e FB(\000)i Fy(f)5 b FC(\))p
Fy(i)1234 1402 y Fu(f)332 1501 y FC(where)15 b Fy(i)479
1508 y Fu(r)513 1501 y FC(is)h(the)f(rasterized)g(fragmen)o(t's)f
(color)h(index)h(and)g Fy(i)1405 1508 y Fu(f)1442 1501
y FC(is)g(a)e(single-precisi)q(on)332 1557 y(\015oating-p)q(oin)o(t)19
b(v)m(alue.)30 b(\(1)12 b FB(\000)g Fy(f)5 b FC(\))p
Fy(i)923 1564 y Fu(f)964 1557 y FC(is)19 b(rounded)g(to)e(the)i
(nearest)f(\014xed-p)q(oin)o(t)h(v)m(alue)332 1614 y(with)d(the)f(same)
g(n)o(um)o(b)q(er)h(of)f(bits)h(to)f(the)g(righ)o(t)g(of)g(the)h
(binary)g(p)q(oin)o(t)g(as)f Fy(i)1644 1621 y Fu(r)1663
1614 y FC(.)20 b(In)c(this)332 1670 y(case,)f Fy(i)457
1677 y Fu(f)494 1670 y FC(is)h(set)f(b)o(y)g(calling)i
Fz(F)l(og)e FC(with)g Fv(pname)h FC(set)f(to)f Fr(FOG)p
1358 1670 V 15 w(INDEX)g FC(and)i Fv(p)n(ar)n(am)f FC(b)q(eing)332
1726 y(or)g Fv(p)n(ar)n(ams)g FC(p)q(oin)o(ting)i(to)d(the)i(single)g
(\015oating-p)q(oin)o(t)g(v)m(alue)h(that)d(is)i Fy(i)1544
1733 y Fu(f)1567 1726 y FC(.)k(Finally)l(,)c(the)332
1783 y(in)o(teger)f(p)q(ortion)g(of)g Fy(I)j FC(is)e(mask)o(ed)e(\(bit)
o(wise)i(ANDed\))f(with)g(2)1417 1766 y Fu(n)1450 1783
y FB(\000)9 b FC(1,)15 b(where)g Fy(n)g FC(is)g(the)332
1839 y(n)o(um)o(b)q(er)i(of)e(bits)i(in)g(a)f(color)g(in)h(the)f(color)
h(index)g(bu\013er)f(\(bu\013ers)g(are)g(discussed)i(in)332
1896 y(c)o(hapter)d(4\).)403 1953 y(The)f(state)g(required)h(for)e(fog)
h(consists)g(of)g(a)g(three)h(v)m(alued)g(in)o(teger)g(to)e(select)i
(the)332 2010 y(fog)e(equation,)h(three)f(\015oating-p)q(oin)o(t)h(v)m
(alues)h Fy(d)p FC(,)e Fy(e)p FC(,)g(and)h Fy(s)p FC(,)f(an)h(R)o(GBA)f
(fog)g(color)g(and)332 2066 y(a)h(fog)g(color)h(index,)g(and)g(a)f
(single)i(bit)f(to)f(indicate)i(whether)e(or)g(not)h(fog)e(is)i
(enabled.)332 2123 y(In)k(the)f(initial)j(state,)d(fog)f(is)i
(disabled,)i Fr(FOG)p 1125 2123 V 15 w(MODE)c FC(is)i
Fr(EXP)p FC(,)e Fy(d)h FC(=)g(1)p Fy(:)p FC(0,)f Fy(e)h
FC(=)h(1)p Fy(:)p FC(0,)e(and)332 2179 y Fy(s)c FC(=)g(0)p
Fy(:)p FC(0;)h Fy(C)533 2186 y Fu(f)568 2179 y FC(=)f(\(0)p
Fy(;)8 b FC(0)p Fy(;)g FC(0)p Fy(;)f FC(0\))12 b(and)j
Fy(i)922 2186 y Fu(f)957 2179 y FC(=)e(0.)332 2328 y
Fs(3.10)66 b(An)n(tialiasing)24 b(Application)332 2432
y FC(Finally)l(,)19 b(if)f(an)o(tialiasing)h(is)f(enabled)h(for)e(the)g
(primitiv)o(e)i(from)e(whic)o(h)h(a)f(rasterized)332
2488 y(fragmen)o(t)c(w)o(as)g(pro)q(duced,)j(then)e(the)g(computed)h
(co)o(v)o(erage)e(v)m(alue)i(is)g(applied)h(to)d(the)p
eop
%%Page: 107 116
107 115 bop 120 137 a Fx(3.10.)34 b(ANTIALIASING)17 b(APPLICA)l(TION)
620 b FC(107)120 286 y(fragmen)o(t.)22 b(In)17 b(R)o(GBA)f(mo)q(de,)h
(the)f(v)m(alue)h(is)g(m)o(ultiplied)i(b)o(y)d(the)h(fragmen)o(t's)d
(alpha)120 343 y(\(A\))f(v)m(alue)i(to)d(yield)j(a)e(\014nal)h(alpha)g
(v)m(alue.)21 b(In)14 b(color)f(index)i(mo)q(de,)e(the)h(v)m(alue)g(is)
g(used)120 399 y(to)f(set)f(the)i(lo)o(w)e(order)h(bits)h(of)e(the)h
(color)g(index)h(v)m(alue)h(as)d(describ)q(ed)j(in)f(section)g(3.2.)p
eop
%%Page: 108 117
108 116 bop 332 605 a Ft(Chapter)31 b(4)332 820 y FA(P)m(er-F)-10
b(ragmen)m(t)39 b(Op)s(erations)332 945 y(and)f(the)h(F)-10
b(ramebu\013er)332 1175 y FC(The)20 b(framebu\013er)f(consists)g(of)g
(a)g(set)h(of)f(pixels)i(arranged)d(as)h(a)h(t)o(w)o(o-dimensional)332
1231 y(arra)o(y)l(.)31 b(The)20 b(heigh)o(t)f(and)h(width)f(of)g(this)h
(arra)o(y)e(ma)o(y)g(v)m(ary)i(from)e(one)h(GL)h(imple-)332
1288 y(men)o(tation)h(to)f(another.)36 b(F)l(or)20 b(purp)q(oses)h(of)g
(this)g(discussion,)i(eac)o(h)e(pixel)i(in)e(the)332
1344 y(framebu\013er)f(is)h(simply)h(a)e(set)g(of)g(some)g(n)o(um)o(b)q
(er)h(of)f(bits.)36 b(The)20 b(n)o(um)o(b)q(er)h(of)f(bits)332
1401 y(p)q(er)c(pixel)h(ma)o(y)d(also)h(v)m(ary)g(dep)q(ending)j(on)d
(the)g(particular)h(GL)f(implemen)o(tation)i(or)332 1457
y(con)o(text.)403 1521 y(Corresp)q(onding)h(bits)h(from)e(eac)o(h)i
(pixel)h(in)f(the)f(framebu\013er)f(are)h(group)q(ed)h(to-)332
1577 y(gether)f(in)o(to)g(a)f Fv(bitplane)p FC(;)i(eac)o(h)e(bitplane)j
(con)o(tains)e(a)f(single)j(bit)e(from)f(eac)o(h)h(pixel.)332
1634 y(These)c(bitplanes)g(are)f(group)q(ed)h(in)o(to)f(sev)o(eral)g
Fv(lo)n(gic)n(al)g(bu\013ers)p FC(.)19 b(These)14 b(are)f(the)g
Fv(c)n(olor)p FC(,)332 1690 y Fv(depth)p FC(,)k Fv(stencil)p
FC(,)e(and)i Fv(ac)n(cumulation)g FC(bu\013ers.)24 b(The)17
b(color)f(bu\013er)h(actually)g(consists)332 1747 y(of)f(a)f(n)o(um)o
(b)q(er)i(of)e(bu\013ers:)21 b(the)16 b Fv(fr)n(ont)h(left)e
FC(bu\013er,)h(the)g Fv(fr)n(ont)h(right)f FC(bu\013er,)g(the)g
Fv(b)n(ack)332 1803 y(left)d FC(bu\013er,)g(the)g Fv(b)n(ack)h(right)f
FC(bu\013er,)h(and)f(some)g(n)o(um)o(b)q(er)g(of)g Fv(auxiliary)g
FC(bu\013ers.)20 b(T)o(yp-)332 1860 y(ically)14 b(the)f(con)o(ten)o(ts)
f(of)g(the)h(fron)o(t)e(bu\013ers)i(are)f(displa)o(y)o(ed)i(on)e(a)g
(color)h(monitor)f(while)332 1916 y(the)j(con)o(ten)o(ts)g(of)f(the)i
(bac)o(k)e(bu\013ers)h(are)g(in)o(visible.)23 b(\(Monoscopic)15
b(con)o(texts)f(displa)o(y)332 1973 y(only)19 b(the)g(fron)o(t)e(left)i
(bu\013er;)g(stereoscopic)g(con)o(texts)f(displa)o(y)i(b)q(oth)e(the)h
(fron)o(t)e(left)332 2029 y(and)e(the)h(fron)o(t)e(righ)o(t)h
(bu\013ers.\))20 b(The)15 b(con)o(ten)o(ts)g(of)f(the)i(auxiliary)g
(bu\013ers)f(are)g(nev)o(er)332 2086 y(visible.)22 b(All)16
b(color)f(bu\013ers)f(m)o(ust)g(ha)o(v)o(e)g(the)h(same)f(n)o(um)o(b)q
(er)h(of)f(bitplanes,)i(although)332 2142 y(an)e(implemen)o(tation)h
(or)f(con)o(text)f(ma)o(y)h(c)o(ho)q(ose)g(not)f(to)g(pro)o(vide)i
(righ)o(t)f(bu\013ers,)g(bac)o(k)332 2198 y(bu\013ers,)k(or)g
(auxiliary)i(bu\013ers)e(at)f(all.)30 b(F)l(urther,)18
b(an)g(implemen)o(tation)h(or)f(con)o(text)332 2255 y(ma)o(y)d(not)f
(pro)o(vide)i(depth,)g(stencil,)g(or)f(accum)o(ulation)h(bu\013ers.)403
2319 y(Color)k(bu\013ers)g(consist)g(of)g(either)h(unsigned)h(in)o
(teger)e(color)h(indices)h(or)e(R,)g(G,)332 2375 y(B,)h(and,)i
(optionally)l(,)h(A)e(unsigned)h(in)o(teger)e(v)m(alues.)40
b(The)22 b(n)o(um)o(b)q(er)g(of)f(bitplanes)332 2432
y(in)g(eac)o(h)g(of)f(the)h(color)f(bu\013ers,)i(the)e(depth)h
(bu\013er,)h(the)e(stencil)i(bu\013er,)g(and)e(the)332
2488 y(accum)o(ulation)f(bu\013er)g(is)g(\014xed)g(and)g(windo)o(w)f
(dep)q(enden)o(t.)61 b(If)19 b(an)g(accum)o(ulation)1045
2613 y(108)p eop
%%Page: 109 118
109 117 bop 120 137 a Fx(4.1.)34 b(PER-FRA)o(GMENT)15
b(OPERA)l(TIONS)621 b FC(109)p 139 242 1459 2 v 139 1275
2 1033 v 193 317 a
21313290 12787974 3354869 11182899 45455196 36837785 startTexFig
193 317 a
%%BeginDocument: pics/pixop.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
gsave
matrix currentmatrix
[1 0 0 1 51 477] concat
newpath
0 0 M 0 71 L 76.69 71 L 76.69 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
49 475 M 49 550.471 L 129.69 550.471 L 129.69 475 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 51 477] concat
6.453 59.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
6.453 59.4706 M (Fragment) 63.784 S
34.257 40.4706 M 34.257 40.4706 M (+) 8.176 S
1 21.4706 M 1 21.4706 M (Associated) 74.69 S
23.176 2.47059 M 23.176 2.47059 M (Data) 30.338 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 176 488] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 191 492] concat
newpath
0 0 M 0 52 L 74.352 52 L 74.352 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
189 490 M 189 546.471 L 267.352 546.471 L 267.352 490 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 191 492] concat
20.831 40.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
20.831 40.4706 M (Pixel) 32.69 S
1 21.4706 M 1 21.4706 M (Ownership) 72.352 S
22.784 2.47059 M 22.784 2.47059 M (Test) 28.784 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
177 524 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
120 524 M
158 524 L
stroke
grestore
gsave
matrix currentmatrix
[104 0 0 72 320 488] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 347 503] concat
newpath
0 0 M 0 33 L 52.582 33 L 52.582 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
345 501 M 345 538.471 L 401.582 538.471 L 401.582 501 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 347 503] concat
1 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 21.4706 M (Scissor) 50.582 S
11.899 2.47059 M 11.899 2.47059 M (Test) 28.784 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 464 488] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 419 367] concat
newpath
0 0 M 0 33 L 51.798 33 L 51.798 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
417 365 M 417 402.471 L 472.798 402.471 L 472.798 365 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 419 367] concat
2.946 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
2.946 21.4706 M (Stencil ) 49.798 S
11.507 2.47059 M 11.507 2.47059 M (Test) 28.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 331 306] concat
newpath
0 0 M 0 19 L 78.244 19 L 78.244 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
329 304 M 329 327 L 411.244 327 L 411.244 304 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 331 306] concat
/Helvetica-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Framebuffer) 76.244 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 392 352] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 498 514] concat
newpath
0 0 M 0 33 L 40.892 33 L 40.892 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
496 512 M 496 549.471 L 540.892 549.471 L 540.892 512 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 498 514] concat
1 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 21.4706 M (Alpha) 38.892 S
6.054 2.47059 M 6.054 2.47059 M (Test) 28.784 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 248 352] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 256 369] concat
newpath
0 0 M 0 33 L 85.216 33 L 85.216 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
254 367 M 254 404.471 L 343.216 404.471 L 343.216 367 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 256 369] concat
1 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 21.4706 M (Depth buffer) 83.216 S
28.216 2.47059 M 28.216 2.47059 M (Test) 28.784 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 464 216] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 191 233] concat
newpath
0 0 M 0 31 L 72.008 31 L 72.008 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
189 231 M 189 266.471 L 265.008 266.471 L 265.008 231 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 191 233] concat
6.058 19.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
6.058 19.4706 M (Blending) 59.892 S
1 2.4 M /Helvetica-SHOWISO findfont 12 scalefont setfont
1 2.4 M (\(RGBA Only\)) 70.008 S
setmatrix
grestore
gsave
matrix currentmatrix
[104 0 0 72 320 216] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 339 242] concat
newpath
0 0 M 0 14 L 63.446 14 L 63.446 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
337 240 M 337 258.471 L 404.446 258.471 L 404.446 240 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 339 242] concat
1 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 2.47059 M (Dithering) 61.446 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
444 353 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
411 316 translate
180 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
newpath
444 334 M
444 316 L
430 316 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 187 306] concat
newpath
0 0 M 0 19 L 78.244 19 L 78.244 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
185 304 M 185 327 L 267.244 327 L 267.244 304 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 187 306] concat
/Helvetica-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Framebuffer) 76.244 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
300 353 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
267 316 translate
180 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
newpath
300 334 M
300 316 L
286 316 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 115 170] concat
newpath
0 0 M 0 19 L 78.244 19 L 78.244 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
113 168 M 113 191 L 195.244 191 L 195.244 168 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 115 170] concat
/Helvetica-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Framebuffer) 76.244 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
228 217 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
newpath
228 198 M
228 180 L
196 180 L
stroke
grestore
gsave
matrix currentmatrix
[104 0 0 72 176 216] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 0.857143 489 244] concat
newpath
0 0 M 0 14 L 56.446 14 L 56.446 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
487 242.286 M 487 258.118 L 547.446 258.118 L 547.446 242.286 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 0.857143 489 244] concat
1 2.47059 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
1 2.47059 M (Logicop) 54.446 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
321 524 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
280 524 M
302 524 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
465 524 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
424 524 M
446 524 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
351 388 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
392 388 M
370 388 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
321 252 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
280 252 M
302 252 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
465 252 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
424 252 M
446 252 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
495 388 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
568 524 M
608 524 L
608 388 L
514 388 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
177 252 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
248 388 M
96 388 L
96 252 L
158 252 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
617 252 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
568 252 M
598 252 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 607 231] concat
newpath
0 0 M 0 33 L 83.676 33 L 83.676 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
605 229 M 605 266.471 L 692.676 266.471 L 692.676 229 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 607 231] concat
33.284 21.4706 M /Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
33.284 21.4706 M (To) 17.108 S
1 2.47059 M 1 2.47059 M (Framebuffer) 81.676 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 403 170] concat
newpath
0 0 M 0 19 L 78.244 19 L 78.244 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
401 168 M 401 191 L 483.244 191 L 483.244 168 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 403 170] concat
/Helvetica-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Framebuffer) 76.244 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
515 217 translate
90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1.000000 setlinewidth
newpath
515 198 M
515 180 L
483 180 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 480 498] concat
newpath
0 0 M 0 12 L 72.008 12 L 72.008 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
478 496 M 478 512.4 L 554.008 512.4 L 554.008 496 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 480 498] concat
1 2.4 M /Helvetica-SHOWISO findfont 12 scalefont setfont
0 0 0 setrgbcolor
1 2.4 M (\(RGBA Only\)) 70.008 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1245 a Fm(Figure)14 b(4.1.)j(P)o(er-fragmen)o(t)c(op)q(erations.)p
1595 1275 2 1033 v 139 1277 1459 2 v 120 1457 a FC(bu\013er)i(is)h(pro)
o(vided,)f(it)g(m)o(ust)f(ha)o(v)o(e)h(at)f(least)h(as)f(man)o(y)h
(bitplanes)h(p)q(er)g(R,)e(G,)h(and)g(B)120 1513 y(color)h(comp)q(onen)
o(t)f(as)g(do)g(the)g(color)g(bu\013ers.)191 1570 y(The)g(initial)j
(state)c(of)h(all)h(pro)o(vided)g(bitplanes)h(is)e(unde\014ned.)120
1719 y Fs(4.1)67 b(P)n(er-F)-6 b(ragmen)n(t)23 b(Op)r(erations)120
1822 y FC(A)16 b(fragmen)o(t)f(pro)q(duced)i(b)o(y)f(rasterization)g
(with)g(windo)o(w)g(co)q(ordinates)g(of)f(\()p Fy(x)1498
1829 y Fu(w)1526 1822 y Fy(;)8 b(y)1569 1829 y Fu(w)1597
1822 y FC(\))120 1878 y(mo)q(di\014es)16 b(the)g(pixel)g(in)g(the)f
(framebu\013er)g(at)f(that)g(lo)q(cation)i(based)f(on)g(a)g(n)o(um)o(b)
q(er)g(of)120 1935 y(parameters)g(and)h(conditions.)21
b(W)l(e)16 b(describ)q(e)h(these)e(mo)q(di\014cations)i(and)f(tests,)e
(dia-)120 1991 y(grammed)e(in)h(Figure)g(4.1,)e(in)i(the)g(order)f(in)h
(whic)o(h)g(they)f(are)g(p)q(erformed.)19 b(Figure)13
b(4.1)120 2048 y(diagrams)i(these)h(mo)q(di\014cations)g(and)f(tests.)
120 2175 y Fl(4.1.1)56 b(Pixel)17 b(Ownership)i(T)-5
b(est)120 2262 y FC(The)17 b(\014rst)e(test)h(is)g(to)g(determine)h(if)
g(the)f(pixel)h(at)f(lo)q(cation)h(\()p Fy(x)1222 2269
y Fu(w)1250 2262 y Fy(;)8 b(y)1293 2269 y Fu(w)1320 2262
y FC(\))16 b(in)h(the)f(frame-)120 2319 y(bu\013er)e(is)g(curren)o(tly)
g(o)o(wned)f(b)o(y)g(the)h(GL)f(\(more)g(precisely)l(,)i(b)o(y)f(this)g
(GL)f(con)o(text\).)18 b(If)120 2375 y(it)f(is)h(not,)e(the)h(windo)o
(w)g(system)f(decides)j(the)e(fate)f(the)h(incoming)h(fragmen)o(t.)23
b(P)o(os-)120 2432 y(sible)d(results)d(are)h(that)f(the)g(fragmen)o(t)g
(is)h(discarded)h(or)e(that)f(some)i(subset)g(of)f(the)120
2488 y(subsequen)o(t)g(p)q(er-fragmen)o(t)f(op)q(erations)h(are)f
(applied)i(to)e(the)g(fragmen)o(t.)22 b(This)17 b(test)p
eop
%%Page: 110 119
110 118 bop 332 137 a FC(110)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)332 286 y
FC(allo)o(ws)h(the)g(windo)o(w)g(system)f(to)g(con)o(trol)h(the)g(GL's)
f(b)q(eha)o(vior,)h(for)g(instance,)g(when)332 343 y(a)f(GL)g(windo)o
(w)h(is)f(obscured.)332 475 y Fl(4.1.2)55 b(Scissor)19
b(test)332 564 y FC(The)11 b(scissor)f(test)g(determines)h(if)g(\()p
Fy(x)948 571 y Fu(w)976 564 y Fy(;)d(y)1019 571 y Fu(w)1047
564 y FC(\))h(lies)j(within)g(the)e(scissor)g(rectangle)h(de\014ned)332
621 y(b)o(y)k(four)g(v)m(alues.)21 b(These)16 b(v)m(alues)g(are)f(set)g
(with)446 722 y Fw(void)78 b Fz(Scissor)p FC(\()f Fw(int)39
b Fv(left)p Fw(,)45 b(int)38 b Fv(b)n(ottom)p Fw(,)46
b(sizei)38 b Fv(width)p Fw(,)514 778 y(sizei)14 b Fv(height)i
FC(\))f Fw(;)332 879 y FC(If)k Fv(left)g FB(\024)g Fy(x)542
886 y Fu(w)590 879 y Fy(<)g Fv(left)12 b FC(+)h Fv(width)20
b FC(and)f Fv(b)n(ottom)h FB(\024)f Fy(y)1211 886 y Fu(w)1259
879 y Fy(<)g Fv(b)n(ottom)13 b FC(+)g Fv(height)p FC(,)20
b(then)f(the)332 936 y(scissor)e(test)e(passes.)23 b(Otherwise,)17
b(the)g(test)f(fails)h(and)f(the)h(fragmen)o(t)e(is)i(discarded.)332
992 y(The)j(test)g(is)g(enabled)i(or)d(disabled)j(using)f
Fz(Enable)g FC(or)e Fz(Disable)i FC(using)g(the)f(con-)332
1049 y(stan)o(t)14 b Fr(SCISSOR)p 604 1049 14 2 v 14
w(TEST)p FC(.)g(When)h(disabled,)h(it)f(is)h(as)e(if)i(the)f(scissor)f
(test)h(alw)o(a)o(ys)f(passes.)332 1105 y(If)19 b(either)h
Fv(width)g FC(or)e Fv(height)i FC(is)f(less)h(than)f(zero,)g(then)g
(the)g(error)g Fr(INVALID)p 1657 1105 V 14 w(VALUE)f
FC(is)332 1161 y(generated.)44 b(The)24 b(state)e(required)i(consists)g
(of)f(four)g(in)o(teger)g(v)m(alues)i(and)e(a)g(bit)332
1218 y(indicating)j(whether)e(the)h(test)e(is)i(enabled)g(or)f
(disabled.)48 b(In)25 b(the)f(initial)i(state)332 1274
y Fy(l)q(ef)5 b(t)21 b FC(=)h Fy(bottom)f FC(=)h(0;)g
Fy(w)q(idth)e FC(and)h Fy(heig)r(ht)f FC(are)g(determined)i(b)o(y)e
(the)g(size)h(of)f(the)332 1331 y(GL)15 b(windo)o(w.)20
b(Initially)l(,)e(the)d(scissor)h(test)e(is)i(disabled.)332
1463 y Fl(4.1.3)55 b(Alpha)19 b(test)332 1552 y FC(This)c(step)f
(applies)i(only)f(in)g(R)o(GBA)f(mo)q(de.)20 b(In)15
b(color)f(index)h(mo)q(de,)g(pro)q(ceed)g(to)e(the)332
1609 y(next)g(step.)19 b(The)13 b(alpha)g(test)g(discards)g(a)g
(fragmen)o(t)e(conditional)k(on)e(the)f(outcome)h(of)332
1665 y(a)j(comparison)g(b)q(et)o(w)o(een)h(the)f(incoming)h(fragmen)o
(t's)e(alpha)i(v)m(alue)g(and)f(a)g(constan)o(t)332 1722
y(v)m(alue.)21 b(The)16 b(comparison)f(is)h(enabled)g(or)f(disabled)i
(with)e(the)h(generic)g Fz(Enable)g FC(and)332 1778 y
Fz(Disable)d FC(commands)e(using)h(the)g(sym)o(b)q(olic)h(constan)o(t)d
Fr(ALPHA)p 1400 1778 V 15 w(TEST)p FC(.)g(When)i(disabled,)332
1834 y(it)k(is)f(as)g(if)h(the)f(comparison)g(alw)o(a)o(ys)g(passes.)20
b(The)15 b(test)g(is)g(con)o(trolled)h(with)446 1935
y Fw(void)29 b Fz(AlphaF)l(unc)p FC(\()i Fw(enum)14 b
Fv(func)p Fw(,)h(clampf)g Fv(r)n(ef)f FC(\))h Fw(;)332
2037 y Fv(func)f FC(is)h(a)f(sym)o(b)q(olic)i(constan)o(t)d(indicating)
k(the)d(alpha)h(test)f(function;)h Fv(r)n(ef)f FC(is)h(a)f(refer-)332
2093 y(ence)g(v)m(alue.)20 b Fv(r)n(ef)13 b FC(is)h(clamp)q(ed)g(to)f
(lie)h(in)g([0)p Fy(;)8 b FC(1],)j(and)j(then)f(con)o(v)o(erted)g(to)f
(a)h(\014xed-p)q(oin)o(t)332 2149 y(v)m(alue)i(according)e(to)g(the)g
(rules)h(giv)o(en)g(for)f(an)g(A)g(comp)q(onen)o(t)h(in)g(section)g
(2.13.9.)j(F)l(or)332 2206 y(purp)q(oses)j(of)f(the)h(alpha)g(test,)g
(the)g(fragmen)o(t's)e(alpha)i(v)m(alue)h(is)f(also)g(rounded)g(to)332
2262 y(the)c(nearest)g(in)o(teger.)22 b(The)16 b(p)q(ossible)i(constan)
o(ts)d(sp)q(ecifying)j(the)e(test)f(function)i(are)332
2319 y Fr(NEVER)p FC(,)g Fr(ALWAYS)p FC(,)f Fr(LESS)p
FC(,)h Fr(LEQUAL)p FC(,)f Fr(EQUAL)p FC(,)h Fr(GEQUAL)p
FC(,)f Fr(GREATER)p FC(,)g(or)i Fr(NOTEQUAL)p FC(,)e(meaning)332
2375 y(pass)g(the)h(fragmen)o(t)e(nev)o(er,)i(alw)o(a)o(ys,)f(if)h(the)
f(fragmen)o(t's)f(alpha)i(v)m(alue)h(is)f(less)g(than,)332
2432 y(less)d(than)f(or)g(equal)h(to,)f(equal)h(to,)f(greater)f(than)i
(or)e(equal)j(to,)d(greater)h(than,)g(or)g(not)332 2488
y(equal)j(to)f(the)g(reference)h(v)m(alue,)g(resp)q(ectiv)o(ely)l(.)p
eop
%%Page: 111 120
111 119 bop 120 137 a Fx(4.1.)34 b(PER-FRA)o(GMENT)15
b(OPERA)l(TIONS)621 b FC(111)191 286 y(The)12 b(required)g(state)f
(consists)h(of)f(the)g(\015oating-p)q(oin)o(t)i(reference)f(v)m(alue,)h
(an)e(eigh)o(t-)120 343 y(v)m(alued)j(in)o(teger)e(indicating)i(the)e
(comparison)g(function,)i(and)e(a)g(bit)g(indicating)i(if)f(the)120
399 y(comparison)g(is)g(enabled)h(or)e(disabled.)20 b(The)13
b(initial)i(state)c(is)i(for)f(the)g(reference)i(v)m(alue)120
456 y(to)h(b)q(e)h(0)f(and)g(the)g(function)h(to)f(b)q(e)h
Fr(ALWAYS)p FC(.)d(Initially)l(,)18 b(the)d(alpha)h(test)f(is)g
(disabled.)120 578 y Fl(4.1.4)56 b(Stencil)17 b(test)120
663 y FC(The)c(stencil)i(test)d(conditionally)j(discards)e(a)f(fragmen)
o(t)g(based)h(on)g(the)f(outcome)h(of)f(a)120 720 y(comparison)k(b)q
(et)o(w)o(een)g(the)f(v)m(alue)i(in)f(the)g(stencil)g(bu\013er)g(at)f
(lo)q(cation)h(\()p Fy(x)1410 727 y Fu(w)1438 720 y Fy(;)8
b(y)1481 727 y Fu(w)1508 720 y FC(\))16 b(and)120 776
y(a)f(reference)h(v)m(alue.)21 b(The)16 b(test)e(is)i(con)o(trolled)g
(with)234 870 y Fw(void)30 b Fz(StencilF)l(unc)p FC(\()h
Fw(enum)15 b Fv(func)p Fw(,)g(int)f Fv(r)n(ef)p Fw(,)h(uint)g
Fv(mask)g FC(\))g Fw(;)234 927 y(void)30 b Fz(StencilOp)p
FC(\()i Fw(enum)14 b Fv(sfail)p Fw(,)h(enum)f Fv(dpfail)p
Fw(,)h(enum)g Fv(dpp)n(ass)g FC(\))g Fw(;)120 1020 y
FC(The)c(test)f(is)i(enabled)g(or)e(disabled)i(with)f(the)g
Fz(Enable)h FC(and)f Fz(Disable)g FC(commands,)g(us-)120
1077 y(ing)j(the)g(sym)o(b)q(olic)g(constan)o(t)f Fr(STENCIL)p
796 1077 14 2 v 14 w(TEST)p FC(.)f(When)i(disabled,)h(the)e(stencil)i
(test)e(and)120 1133 y(asso)q(ciated)j(mo)q(di\014cations)g(are)f(not)g
(made,)g(and)g(the)g(fragmen)o(t)f(is)i(alw)o(a)o(ys)e(passed.)191
1190 y Fv(r)n(ef)f FC(is)i(an)f(in)o(teger)g(reference)g(v)m(alue)h
(that)f(is)g(used)g(in)h(the)f(unsigned)h(stencil)h(com-)120
1246 y(parison.)k(It)15 b(is)g(clamp)q(ed)g(to)f(the)h(range)f([0)p
Fy(;)8 b FC(2)906 1230 y Fu(s)931 1246 y FB(\000)h FC(1],)k(where)i
Fy(s)f FC(is)h(the)g(n)o(um)o(b)q(er)f(of)g(bits)120
1303 y(in)h(the)f(stencil)h(bu\013er.)20 b Fv(func)13
b FC(is)i(a)e(sym)o(b)q(olic)i(constan)o(t)e(that)g(determines)i(the)f
(stencil)120 1359 y(comparison)j(function;)h(the)e(eigh)o(t)h(sym)o(b)q
(olic)g(constan)o(ts)f(are)g Fr(NEVER)p FC(,)f Fr(ALWAYS)p
FC(,)g Fr(LESS)p FC(,)120 1416 y Fr(LEQUAL)p FC(,)k Fr(EQUAL)p
FC(,)g Fr(GEQUAL)p FC(,)g Fr(GREATER)p FC(,)f(or)i Fr(NOTEQUAL)p
FC(.)e(Accordingly)l(,)23 b(the)d(stencil)i(test)120
1472 y(passes)13 b(nev)o(er,)g(alw)o(a)o(ys,)g(if)g(the)g(reference)h
(v)m(alue)g(is)g(less)f(than,)g(less)h(than)f(or)f(equal)i(to,)120
1528 y(equal)i(to,)d(greater)h(than)h(or)f(equal)h(to,)f(greater)g
(than,)g(or)g(not)g(equal)h(to)f(the)h(mask)o(ed)120
1585 y(stored)k(v)m(alue)g(in)h(the)e(stencil)i(bu\013er.)30
b(The)19 b Fy(s)g FC(least)g(signi\014can)o(t)g(bits)g(of)g
Fv(mask)f FC(are)120 1641 y(bit)o(wise)h(ANDed)g(with)g(b)q(oth)f(the)g
(reference)h(and)g(the)f(stored)g(stencil)h(v)m(alue.)30
b(The)120 1698 y(ANDed)16 b(v)m(alues)g(are)f(those)g(that)g
(participate)g(in)i(the)e(comparison.)191 1754 y Fz(StencilOp)23
b FC(tak)o(es)d(three)h(argumen)o(ts)f(that)g(indicate)i(what)f(happ)q
(ens)g(to)g(the)120 1811 y(stored)h(stencil)h(v)m(alue)g(if)f(this)g
(or)f(certain)h(subsequen)o(t)h(tests)e(fail)h(or)f(pass.)39
b Fv(sfail)120 1867 y FC(indicates)13 b(what)e(action)g(is)h(tak)o(en)e
(if)i(the)f(stencil)i(test)e(fails.)19 b(The)11 b(sym)o(b)q(olic)i
(constan)o(ts)120 1924 y(are)f Fr(KEEP)p FC(,)f Fr(ZERO)p
FC(,)f Fr(REPLACE)p FC(,)g Fr(INCR)p FC(,)h Fr(DECR)p
FC(,)g(and)h Fr(INVERT)p FC(.)e(These)i(corresp)q(ond)h(to)e(k)o
(eeping)120 1980 y(the)19 b(curren)o(t)f(v)m(alue,)j(setting)d(it)h(to)
f(zero,)h(replacing)g(it)g(with)g(the)g(reference)g(v)m(alue,)120
2037 y(incremen)o(ting)j(it,)e(decremen)o(ting)h(it,)g(or)e(bit)o(wise)
i(in)o(v)o(erting)g(it.)34 b(F)l(or)19 b(purp)q(oses)h(of)120
2093 y(incremen)o(t)j(and)e(decremen)o(t,)i(the)e(stencil)i(bits)f(are)
f(considered)i(as)e(an)g(unsigned)120 2149 y(in)o(teger;)14
b(v)m(alues)h(clamp)g(at)e(0)g(and)h(the)g(maxim)o(um)g(represen)o
(table)g(v)m(alue.)21 b(The)14 b(same)120 2206 y(sym)o(b)q(olic)19
b(v)m(alues)g(are)e(giv)o(en)h(to)f(indicate)i(the)f(stencil)h(action)f
(if)g(the)g(depth)g(bu\013er)120 2262 y(test)d(\(b)q(elo)o(w\))g(fails)
h(\()p Fv(dpfail)p FC(\),)e(or)h(if)h(it)f(passes)g(\()p
Fv(dpp)n(ass)p FC(\).)191 2319 y(If)k(the)f(stencil)i(test)e(fails,)h
(the)g(incoming)g(fragmen)o(t)e(is)i(discarded.)31 b(The)19
b(state)120 2375 y(required)12 b(consists)f(of)f(the)h(most)e(recen)o
(t)i(v)m(alues)h(passed)e(to)g Fz(StencilF)l(unc)i FC(and)f
Fz(Sten-)120 2432 y(cilOp)p FC(,)20 b(and)e(a)f(bit)i(indicating)g
(whether)f(stencil)i(testing)d(is)i(enabled)g(or)e(disabled.)120
2488 y(In)f(the)f(initial)i(state,)d(stenciling)k(is)d(disabled,)i(the)
e(stencil)h(reference)g(v)m(alue)h(is)e(zero,)p eop
%%Page: 112 121
112 120 bop 332 137 a FC(112)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)332 286 y
FC(the)i(stencil)i(comparison)e(function)g(is)h Fr(ALWAYS)p
FC(,)d(and)i(the)g(stencil)i Fv(mask)d FC(is)i(all)g(ones.)332
343 y(Initially)l(,)e(all)f(three)e(stencil)i(op)q(erations)f(are)f
Fr(KEEP)p FC(.)f(If)h(there)h(is)g(no)f(stencil)i(bu\013er,)f(no)332
399 y(stencil)19 b(mo)q(di\014cation)f(can)g(o)q(ccur,)f(and)h(it)f(is)
h(as)f(if)h(the)f(stencil)i(tests)e(alw)o(a)o(ys)f(pass,)332
456 y(regardless)f(of)g(an)o(y)g(calls)h(to)f Fz(StencilOp)p
FC(.)332 581 y Fl(4.1.5)55 b(Depth)19 b(bu\013er)f(test)332
668 y FC(The)c(depth)g(bu\013er)f(test)g(discards)h(the)g(incoming)g
(fragmen)o(t)e(if)i(a)f(depth)h(comparison)332 725 y(fails.)26
b(The)17 b(comparison)g(is)g(enabled)i(or)d(disabled)j(with)e(the)g
(generic)h Fz(Enable)g FC(and)332 781 y Fz(Disable)13
b FC(commands)e(using)h(the)g(sym)o(b)q(olic)h(constan)o(t)d
Fr(DEPTH)p 1400 781 14 2 v 15 w(TEST)p FC(.)g(When)i(disabled,)332
838 y(the)k(depth)g(comparison)g(and)g(subsequen)o(t)h(p)q(ossible)h
(up)q(dates)e(to)f(the)h(depth)g(bu\013er)332 894 y(v)m(alue)i(are)f(b)
o(ypassed)g(and)g(the)g(fragmen)o(t)f(is)h(passed)h(to)e(the)h(next)g
(op)q(eration.)25 b(The)332 951 y(stencil)17 b(v)m(alue,)f(ho)o(w)o(ev)
o(er,)f(is)h(mo)q(di\014ed)h(as)e(indicated)i(b)q(elo)o(w)f(as)f(if)h
(the)f(depth)h(bu\013er)332 1007 y(test)c(passed.)19
b(If)13 b(enabled,)h(the)e(comparison)h(tak)o(es)e(place)j(and)e(the)h
(depth)g(bu\013er)f(and)332 1064 y(stencil)17 b(v)m(alue)f(ma)o(y)f
(subsequen)o(tly)h(b)q(e)g(mo)q(di\014ed.)403 1121 y(The)f(comparison)g
(is)h(sp)q(eci\014ed)h(with)446 1217 y Fw(void)29 b Fz(DepthF)l(unc)p
FC(\()i Fw(enum)14 b Fv(func)h FC(\))g Fw(;)332 1314
y FC(This)f(command)g(tak)o(es)f(a)g(single)i(sym)o(b)q(olic)g(constan)
o(t:)j(one)13 b(of)h Fr(NEVER)p FC(,)e Fr(ALWAYS)p FC(,)g
Fr(LESS)p FC(,)332 1370 y Fr(LEQUAL)p FC(,)g Fr(EQUAL)p
FC(,)g Fr(GREATER)p FC(,)g Fr(GEQUAL)p FC(,)g Fr(NOTEQUAL)p
FC(.)f(Accordingly)l(,)16 b(the)d(depth)h(bu\013er)g(test)332
1427 y(passes)k(nev)o(er,)f(alw)o(a)o(ys,)g(if)h(the)g(incoming)h
(fragmen)o(t's)c Fy(z)1336 1434 y Fu(w)1382 1427 y FC(v)m(alue)k(is)f
(less)g(than,)g(less)332 1483 y(than)11 b(or)f(equal)i(to,)e(equal)i
(to,)f(greater)f(than,)h(greater)f(than)g(or)h(equal)g(to,)g(or)f(not)h
(equal)332 1540 y(to)k(the)h(depth)h(v)m(alue)g(stored)f(at)f(the)h(lo)
q(cation)h(giv)o(en)f(b)o(y)g(the)g(incoming)h(fragmen)o(t's)332
1596 y(\()p Fy(x)376 1603 y Fu(w)404 1596 y Fy(;)8 b(y)447
1603 y Fu(w)475 1596 y FC(\))15 b(co)q(ordinates.)403
1653 y(If)j(the)g(depth)g(bu\013er)g(test)g(fails,)h(the)f(incoming)h
(fragmen)o(t)e(is)h(discarded.)29 b(The)332 1710 y(stencil)16
b(v)m(alue)g(at)e(the)g(fragmen)o(t's)f(\()p Fy(x)988
1717 y Fu(w)1016 1710 y Fy(;)8 b(y)1059 1717 y Fu(w)1087
1710 y FC(\))14 b(co)q(ordinates)h(is)g(up)q(dated)g(according)g(to)332
1766 y(the)h(function)g(curren)o(tly)g(in)g(e\013ect)g(for)f(depth)h
(bu\013er)f(test)g(failure.)22 b(Otherwise,)16 b(the)332
1823 y(fragmen)o(t)f(con)o(tin)o(ues)h(to)f(the)g(next)h(op)q(eration)g
(and)g(the)f(v)m(alue)i(of)f(the)f(depth)h(bu\013er)332
1879 y(at)e(the)g(fragmen)o(t's)e(\()p Fy(x)729 1886
y Fu(w)757 1879 y Fy(;)c(y)800 1886 y Fu(w)828 1879 y
FC(\))14 b(lo)q(cation)h(is)f(set)g(to)f(the)i(fragmen)o(t's)d
Fy(z)1520 1886 y Fu(w)1563 1879 y FC(v)m(alue.)20 b(In)15
b(this)332 1935 y(case)e(the)f(stencil)i(v)m(alue)g(is)f(up)q(dated)g
(according)g(to)f(the)h(function)g(curren)o(tly)g(in)h(e\013ect)332
1992 y(for)h(depth)g(bu\013er)h(test)e(success.)403 2049
y(The)g(necessary)f(state)g(is)h(an)g(eigh)o(t-v)m(alued)h(in)o(teger)f
(and)g(a)f(single)i(bit)g(indicating)332 2105 y(whether)23
b(depth)g(bu\013ering)g(is)h(enabled)g(or)e(disabled.)44
b(In)23 b(the)g(initial)i(state)c(the)332 2162 y(function)16
b(is)g Fr(LESS)e FC(and)i(the)f(test)f(is)i(disabled.)403
2219 y(If)e(there)h(is)f(no)h(depth)g(bu\013er,)f(it)g(is)h(as)f(if)h
(the)f(depth)h(bu\013er)g(test)e(alw)o(a)o(ys)h(passes.)332
2345 y Fl(4.1.6)55 b(Blending)332 2432 y FC(Blending)16
b(com)o(bines)f(the)f(incoming)i(fragmen)o(t's)c(R,)j(G,)e(B,)h(and)g
(A)h(v)m(alues)g(with)f(the)332 2488 y(R,)h(G,)e(B,)i(and)f(A)h(v)m
(alues)g(stored)f(in)i(the)e(framebu\013er)g(at)g(the)g(incoming)i
(fragmen)o(t's)p eop
%%Page: 113 122
113 121 bop 120 137 a Fx(4.1.)34 b(PER-FRA)o(GMENT)15
b(OPERA)l(TIONS)621 b FC(113)p 341 242 1054 2 v 340 299
2 57 v 366 282 a(V)l(alue)p 786 299 V 335 w(Blend)17
b(F)l(actors)p 1394 299 V 341 301 1054 2 v 341 309 V
340 365 2 57 v 366 348 a Fr(ZERO)p 786 365 V 357 w FC(\(0)p
Fy(;)8 b FC(0)p Fy(;)g FC(0)p Fy(;)g FC(0)o(\))p 1394
365 V 341 367 1054 2 v 340 423 2 57 v 366 406 a Fr(ONE)p
786 423 V 379 w FC(\(1)p Fy(;)g FC(1)p Fy(;)g FC(1)p
Fy(;)g FC(1)o(\))p 1394 423 V 341 425 1054 2 v 340 482
2 57 v 366 465 a Fr(DST)p 435 465 14 2 v 15 w(COLOR)p
786 482 2 57 v 254 w Fy(R)846 472 y Fu(d)866 465 y Fy(;)g(G)923
472 y Fu(d)942 465 y Fy(;)g(B)997 472 y Fu(d)1017 465
y Fy(;)g(A)1072 472 y Fu(d)p 1394 482 V 341 483 1054
2 v 340 540 2 57 v 366 523 a Fr(ONE)p 435 523 14 2 v
15 w(MINUS)p 560 523 V 14 w(DST)p 640 523 V 16 w(COLOR)p
786 540 2 57 v 48 w FC(\(1)p Fy(;)g FC(1)p Fy(;)g FC(1)p
Fy(;)g FC(1)o(\))f FB(\000)k FC(\()p Fy(R)1107 530 y
Fu(d)1126 523 y Fy(;)d(G)1183 530 y Fu(d)1202 523 y Fy(;)g(B)1257
530 y Fu(d)1277 523 y Fy(;)g(A)1332 530 y Fu(d)1352 523
y FC(\))p 1394 540 V 341 541 1054 2 v 340 598 2 57 v
366 581 a Fr(SRC)p 435 581 14 2 v 15 w(ALPHA)p 786 598
2 57 v 254 w FC(\()p Fy(A)863 588 y Fu(s)881 581 y Fy(;)g(A)936
588 y Fu(s)954 581 y Fy(;)g(A)1009 588 y Fu(s)1027 581
y Fy(;)g(A)1082 588 y Fu(s)1100 581 y FC(\))p 1394 598
V 341 599 1054 2 v 340 656 2 57 v 366 639 a Fr(ONE)p
435 639 14 2 v 15 w(MINUS)p 560 639 V 14 w(SRC)p 640
639 V 16 w(ALPHA)p 786 656 2 57 v 48 w FC(\(1)p Fy(;)g
FC(1)p Fy(;)g FC(1)p Fy(;)g FC(1)o(\))f FB(\000)k FC(\()p
Fy(A)1106 646 y Fu(s)1124 639 y Fy(;)d(A)1179 646 y Fu(s)1197
639 y Fy(;)g(A)1252 646 y Fu(s)1269 639 y Fy(;)g(A)1324
646 y Fu(s)1342 639 y FC(\))p 1394 656 V 341 658 1054
2 v 340 714 2 57 v 366 697 a Fr(DST)p 435 697 14 2 v
15 w(ALPHA)p 786 714 2 57 v 254 w FC(\()p Fy(A)863 704
y Fu(d)883 697 y Fy(;)g(A)938 704 y Fu(d)958 697 y Fy(;)g(A)1013
704 y Fu(d)1032 697 y Fy(;)g(A)1087 704 y Fu(d)1107 697
y FC(\))p 1394 714 V 341 716 1054 2 v 340 772 2 57 v
366 755 a Fr(ONE)p 435 755 14 2 v 15 w(MINUS)p 560 755
V 14 w(DST)p 640 755 V 16 w(ALPHA)p 786 772 2 57 v 48
w FC(\(1)p Fy(;)g FC(1)p Fy(;)g FC(1)p Fy(;)g FC(1)o(\))f
FB(\000)k FC(\()p Fy(A)1106 762 y Fu(d)1126 755 y Fy(;)d(A)1181
762 y Fu(d)1200 755 y Fy(;)g(A)1255 762 y Fu(d)1275 755
y Fy(;)g(A)1330 762 y Fu(d)1349 755 y FC(\))p 1394 772
V 341 774 1054 2 v 340 830 2 57 v 366 813 a Fr(SRC)p
435 813 14 2 v 15 w(ALPHA)p 560 813 V 14 w(SATURATE)p
786 830 2 57 v 64 w FC(\()p Fy(f)r(;)g(f)r(;)g(f)r(;)g
FC(1\))p 1394 830 V 341 832 1054 2 v 120 909 a(T)l(able)20
b(4.1:)26 b(V)l(alues)19 b(con)o(trolling)h(the)e(source)h(blending)i
(function)e(and)g(the)g(source)120 966 y(blending)f(v)m(alues)e(they)f
(compute.)20 b Fy(f)e FC(=)13 b(min)q(\()p Fy(A)960 973
y Fu(s)978 966 y Fy(;)8 b FC(1)h FB(\000)i Fy(A)1111
973 y Fu(d)1131 966 y FC(\).)120 1144 y(\()p Fy(x)164
1151 y Fu(w)192 1144 y Fy(;)d(y)235 1151 y Fu(w)263 1144
y FC(\))18 b(lo)q(cation.)29 b(This)19 b(blending)h(is)e(dep)q(enden)o
(t)i(on)e(the)g(incoming)h(fragmen)o(t's)120 1200 y(alpha)e(v)m(alue)g
(and)f(that)f(of)h(the)g(corresp)q(onding)h(curren)o(tly)f(stored)g
(pixel.)24 b(Blending)120 1257 y(applies)18 b(only)f(in)h(R)o(GBA)e(mo)
q(de;)h(in)h(color)e(index)i(mo)q(de)f(it)g(is)g(b)o(ypassed.)24
b(Blending)120 1313 y(is)14 b(enabled)h(or)e(disabled)j(using)e
Fz(Enable)h FC(or)e Fz(Disable)h FC(with)g(the)g(sym)o(b)q(olic)h
(constan)o(t)120 1370 y Fr(BLEND)p FC(.)20 b(If)i(it)g(is)g(disabled,)i
(or)d(if)h(logical)g(op)q(eration)g(on)f(color)h(v)m(alues)g(is)g
(enabled)120 1426 y(\(section)16 b(4.1.8\),)d(pro)q(ceed)j(to)e(the)i
(next)f(stage.)191 1483 y(The)g(command)g(that)g(con)o(trols)g
(blending)i(is)234 1562 y Fw(void)30 b Fz(BlendF)l(unc)p
FC(\()g Fw(enum)15 b Fv(sr)n(c)p Fw(,)f(enum)h Fv(dst)g
FC(\))g Fw(;)120 1641 y Fv(sr)n(c)i FC(indicates)j(ho)o(w)d(to)g
(compute)h(a)g(source)f(blending)j(factor,)d(while)j
Fv(dst)d FC(indicates)120 1698 y(ho)o(w)k(to)g(compute)g(a)g
(destination)h(factor.)36 b(The)22 b(p)q(ossible)h(argumen)o(ts)d(and)h
(their)120 1754 y(corresp)q(onding)d(computed)g(source)f(and)g
(destination)h(factors)e(are)h(summarized)h(in)120 1811
y(T)l(ables)c(4.1)f(and)g(4.2.)18 b(In)c(these)g(tables)g(a)e
(subscript)j(of)e Fy(s)g FC(indicates)i(a)e(v)m(alue)h(from)f(an)120
1867 y(incoming)h(fragmen)o(t;)e(one)g(of)g Fy(d)g FC(indicates)i(the)f
(corresp)q(onding)g(curren)o(t)f(framebu\013er)120 1924
y(v)m(alue.)21 b(Division)c(of)d(a)h(quadruplet)h(b)o(y)f(a)g(scalar)g
(means)g(dividing)i(eac)o(h)e(elemen)o(t)h(b)o(y)120
1980 y(that)e(v)m(alue.)20 b(Addition)c(or)d(subtraction)h(of)f
(quadruplets)i(or)e(triplets)i(means)f(adding)120 2037
y(or)h(subtracting)g(them)h(comp)q(onen)o(t-wise.)191
2093 y(The)21 b(computations)f(in)h(T)l(ables)h(4.1)d(and)i(4.2)e(are)h
(e\013ectiv)o(ely)i(carried)f(out)f(in)120 2149 y(\015oating-p)q(oin)o
(t)15 b(and)f(yield)h(\015oating-p)q(oin)o(t)f(blending)i(factors.)i
(Destination)c(\(frame-)120 2206 y(bu\013er\))h(comp)q(onen)o(ts)f
(referred)h(to)f(in)h(the)g(tables)g(are)f(tak)o(en)g(to)g(b)q(e)h
(\014xed-p)q(oin)o(t)h(v)m(al-)120 2262 y(ues)e(represen)o(ted)g
(according)g(to)f(the)g(sc)o(heme)h(giv)o(en)g(in)g(section)g(2.13.9)e
(\(Final)i(Color)120 2319 y(Pro)q(cessing\),)i(as)g(are)g(source)g
(\(fragmen)o(t\))e(comp)q(onen)o(ts.)22 b(An)o(y)16 b(implied)j(con)o
(v)o(ersion)120 2375 y(to)c(\015oating-p)q(oin)o(t)h(m)o(ust)e(lea)o(v)
o(e)i(0)f(and)g(1)g(in)o(v)m(arian)o(t.)191 2432 y(The)h(computed)g
(source)g(and)g(destination)h(blending)h(quadruplets)e(are)g(applied)
120 2488 y(to)f(the)h(source)f(and)h(destination)g(R,)g(G,)f(B,)g(and)g
(A)h(v)m(alues)h(to)d(obtain)i(a)f(new)h(set)f(of)p eop
%%Page: 114 123
114 122 bop 332 137 a FC(114)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)p 554 242
1052 2 v 553 299 2 57 v 579 282 a FC(V)l(alue)p 999 299
V 335 w(Blend)i(factors)p 1604 299 V 554 301 1052 2 v
554 309 V 553 365 2 57 v 579 348 a Fr(ZERO)p 999 365
V 357 w FC(\(0)p Fy(;)8 b FC(0)p Fy(;)g FC(0)p Fy(;)g
FC(0)o(\))p 1604 365 V 554 367 1052 2 v 553 423 2 57
v 579 406 a Fr(ONE)p 999 423 V 379 w FC(\(1)p Fy(;)g
FC(1)p Fy(;)g FC(1)p Fy(;)g FC(1)o(\))p 1604 423 V 554
425 1052 2 v 553 482 2 57 v 579 465 a Fr(SRC)p 648 465
14 2 v 15 w(COLOR)p 999 482 2 57 v 254 w Fy(R)1059 472
y Fu(s)1077 465 y Fy(;)g(G)1134 472 y Fu(s)1151 465 y
Fy(;)g(B)1206 472 y Fu(s)1225 465 y Fy(;)g(A)1280 472
y Fu(s)p 1604 482 V 554 483 1052 2 v 553 540 2 57 v 579
523 a Fr(ONE)p 648 523 14 2 v 15 w(MINUS)p 773 523 V
14 w(SRC)p 853 523 V 15 w(COLOR)p 999 540 2 57 v 49 w
FC(\(1)p Fy(;)g FC(1)p Fy(;)g FC(1)p Fy(;)g FC(1)o(\))f
FB(\000)k FC(\()p Fy(R)1320 530 y Fu(s)1337 523 y Fy(;)d(G)1394
530 y Fu(s)1412 523 y Fy(;)g(B)1467 530 y Fu(s)1485 523
y Fy(;)g(A)1540 530 y Fu(s)1557 523 y FC(\))p 1604 540
V 554 541 1052 2 v 553 598 2 57 v 579 581 a Fr(SRC)p
648 581 14 2 v 15 w(ALPHA)p 999 598 2 57 v 254 w FC(\()p
Fy(A)1076 588 y Fu(s)1094 581 y Fy(;)g(A)1149 588 y Fu(s)1167
581 y Fy(;)g(A)1222 588 y Fu(s)1240 581 y Fy(;)g(A)1295
588 y Fu(s)1312 581 y FC(\))p 1604 598 V 554 599 1052
2 v 553 656 2 57 v 579 639 a Fr(ONE)p 648 639 14 2 v
15 w(MINUS)p 773 639 V 14 w(SRC)p 853 639 V 15 w(ALPHA)p
999 656 2 57 v 49 w FC(\(1)p Fy(;)g FC(1)p Fy(;)g FC(1)p
Fy(;)g FC(1)o(\))f FB(\000)k FC(\()p Fy(A)1319 646 y
Fu(s)1337 639 y Fy(;)d(A)1392 646 y Fu(s)1410 639 y Fy(;)g(A)1465
646 y Fu(s)1482 639 y Fy(;)g(A)1537 646 y Fu(s)1555 639
y FC(\))p 1604 656 V 554 658 1052 2 v 553 714 2 57 v
579 697 a Fr(DST)p 648 697 14 2 v 15 w(ALPHA)p 999 714
2 57 v 254 w FC(\()p Fy(A)1076 704 y Fu(d)1096 697 y
Fy(;)g(A)1151 704 y Fu(d)1171 697 y Fy(;)g(A)1226 704
y Fu(d)1245 697 y Fy(;)g(A)1300 704 y Fu(d)1320 697 y
FC(\))p 1604 714 V 554 716 1052 2 v 553 772 2 57 v 579
755 a Fr(ONE)p 648 755 14 2 v 15 w(MINUS)p 773 755 V
14 w(DST)p 853 755 V 15 w(ALPHA)p 999 772 2 57 v 49 w
FC(\(1)p Fy(;)g FC(1)p Fy(;)g FC(1)p Fy(;)g FC(1)o(\))f
FB(\000)k FC(\()p Fy(A)1319 762 y Fu(d)1339 755 y Fy(;)d(A)1394
762 y Fu(d)1413 755 y Fy(;)g(A)1468 762 y Fu(d)1488 755
y Fy(;)g(A)1543 762 y Fu(d)1562 755 y FC(\))p 1604 772
V 554 774 1052 2 v 332 851 a(T)l(able)15 b(4.2:)j(V)l(alues)d(con)o
(trolling)g(the)f(destination)g(blending)i(function)f(and)f(the)g(des-)
332 907 y(tination)i(blending)h(v)m(alues)g(they)e(compute.)332
1098 y(v)m(alues)j(that)f(are)f(sen)o(t)h(to)f(the)h(next)g(op)q
(eration.)26 b(Let)17 b(the)g(source)g(and)h(destination)332
1155 y(blending)d(quadruplets)f(b)q(e)g Fy(S)h FC(and)e
Fy(D)q FC(,)g(resp)q(ectiv)o(ely)l(.)21 b(Then)13 b(a)g(quadruplet)h
(of)e(v)m(alues)332 1211 y(is)k(computed)f(as)959 1272
y Fy(C)992 1279 y Fu(s)1010 1272 y Fy(S)d FC(+)f Fy(C)1129
1279 y Fu(d)1148 1272 y Fy(D)q(;)332 1362 y FC(where)21
b(m)o(ultiplication)j(of)c(quadruplets)i(means)f(m)o(ultiplying)i(them)
e(comp)q(onen)o(t-)332 1418 y(wise.)26 b(Then)17 b(eac)o(h)g(v)m(alue)h
(in)g(this)f(quadruplet)h(is)f(clamp)q(ed)i(to)d(2)1485
1401 y Fu(n)1519 1418 y FB(\000)c FC(1,)17 b(where)g
Fy(n)g FC(is)332 1474 y(the)j(n)o(um)o(b)q(er)g(of)f(bits)h(allo)q
(cated)g(to)f(that)g(color)h(comp)q(onen)o(t)f(in)i(the)e
(framebu\013er,)332 1531 y(and)c(the)h(four)f(v)m(alues)h(are)f(sen)o
(t)g(to)f(the)i(next)f(op)q(eration.)403 1589 y(The)22
b(state)f(required)i(is)f(t)o(w)o(o)e(in)o(tegers)i(indicating)i(the)e
(source)g(and)g(destina-)332 1645 y(tion)f(blending)i(functions)f(and)e
(a)h(bit)g(indicating)i(whether)e(blending)i(is)e(enabled)332
1702 y(or)15 b(disabled.)21 b(The)16 b(initial)h(state)d(of)h(the)g
(blending)j(functions)d(is)h Fr(ONE)f FC(for)f(the)h(source)332
1758 y(function)e(and)f Fr(ZERO)g FC(for)f(the)h(destination)h
(function;)h(initially)l(,)h(blending)f(is)f(disabled.)403
1816 y(Blending)k(o)q(ccurs)f(once)g(for)f(eac)o(h)g(color)h(bu\013er)f
(curren)o(tly)h(enabled)h(for)e(writing)332 1873 y(\(section)j(4.2.1\))
f(using)i(eac)o(h)f(bu\013er's)g(color)g(for)f Fy(C)1244
1880 y Fu(d)1264 1873 y FC(.)29 b(If)18 b(a)g(color)g(bu\013er)g(has)g
(no)g(A)332 1929 y(v)m(alue,)e(then)g(it)f(is)h(as)f(if)g(the)h
(destination)g(A)f(v)m(alue)h(is)g(1.)332 2060 y Fl(4.1.7)55
b(Dithering)332 2149 y FC(Dithering)15 b(selects)h(b)q(et)o(w)o(een)f
(t)o(w)o(o)e(color)h(v)m(alues)i(or)e(indices.)22 b(In)15
b(R)o(GBA)g(mo)q(de,)f(con-)332 2206 y(sider)g(the)g(v)m(alue)h(of)e
(an)o(y)g(of)g(the)h(color)g(comp)q(onen)o(ts)f(as)h(a)f(\014xed-p)q
(oin)o(t)i(v)m(alue)g(with)f Fy(m)332 2262 y FC(bits)h(to)f(the)h(left)
g(of)g(the)g(binary)g(p)q(oin)o(t,)g(where)g Fy(m)g FC(is)g(the)g(n)o
(um)o(b)q(er)g(of)f(bits)h(allo)q(cated)332 2319 y(to)j(that)f(comp)q
(onen)o(t)i(in)g(the)f(framebu\013er;)h(call)g(eac)o(h)g(suc)o(h)f(v)m
(alue)i Fy(c)p FC(.)28 b(F)l(or)18 b(eac)o(h)g Fy(c)p
FC(,)332 2375 y(dithering)f(selects)f(a)f(v)m(alue)h
Fy(c)844 2382 y Fq(1)879 2375 y FC(suc)o(h)g(that)e Fy(c)1100
2382 y Fq(1)1132 2375 y FB(2)f(f)p FC(max)p FB(f)p FC(0)p
Fy(;)8 b FB(d)p Fy(c)p FB(e)h(\000)h FC(1)p FB(g)p Fy(;)e
FB(d)p Fy(c)p FB(eg)14 b FC(\(after)g(this)332 2432 y(selection,)20
b(treat)d Fy(c)667 2439 y Fq(1)705 2432 y FC(as)g(a)h(\014xed)h(p)q
(oin)o(t)g(v)m(alue)g(in)g([0,1])d(with)j Fy(m)f FC(bits\).)28
b(This)19 b(selec-)332 2488 y(tion)d(ma)o(y)f(dep)q(end)i(on)e(the)h
Fy(x)851 2495 y Fu(w)895 2488 y FC(and)f Fy(y)1005 2495
y Fu(w)1049 2488 y FC(co)q(ordinates)h(of)f(the)h(pixel.)22
b(In)17 b(color)e(index)p eop
%%Page: 115 124
115 123 bop 120 137 a Fx(4.1.)34 b(PER-FRA)o(GMENT)15
b(OPERA)l(TIONS)621 b FC(115)120 286 y(mo)q(de,)14 b(the)f(same)g(rule)
h(applies)h(with)f Fy(c)f FC(b)q(eing)h(a)f(single)i(color)e(index.)21
b Fy(c)12 b FC(m)o(ust)h(not)g(b)q(e)120 343 y(larger)k(than)g(the)g
(maxim)o(um)g(v)m(alue)h(represen)o(table)g(in)f(the)g(framebu\013er)g
(for)f(either)120 399 y(the)g(comp)q(onen)o(t)f(or)g(the)g(index,)h(as)
f(appropriate.)191 459 y(Man)o(y)h(dithering)i(algorithms)f(are)g(p)q
(ossible,)i(but)e(a)f(dithered)i(v)m(alue)h(pro)q(duced)120
515 y(b)o(y)12 b(an)o(y)g(algorithm)g(m)o(ust)g(dep)q(end)h(only)g(the)
f(incoming)i(v)m(alue)f(and)f(the)g(fragmen)o(t's)f Fy(x)120
572 y FC(and)16 b Fy(y)i FC(windo)o(w)d(co)q(ordinates.)22
b(If)15 b(dithering)i(is)f(disabled,)h(then)f(eac)o(h)g(color)g(comp)q
(o-)120 628 y(nen)o(t)d(is)h(truncated)e(to)h(a)f(\014xed-p)q(oin)o(t)i
(v)m(alue)g(with)f(as)g(man)o(y)f(bits)h(as)g(there)g(are)f(in)i(the)
120 684 y(corresp)q(onding)g(comp)q(onen)o(t)e(in)i(the)e
(framebu\013er;)h(a)f(color)g(index)i(is)f(rounded)g(to)f(the)120
741 y(nearest)j(in)o(teger)h(represen)o(table)g(in)g(the)f(color)g
(index)i(p)q(ortion)e(of)g(the)g(framebu\013er.)191 800
y(Dithering)h(is)f(enabled)i(with)e Fz(Enable)h FC(and)g(disabled)g
(with)g Fz(Disable)g FC(using)g(the)120 857 y(sym)o(b)q(olic)i(constan)
o(t)e Fr(DITHER)p FC(.)f(The)h(state)g(required)i(is)f(th)o(us)f(a)g
(single)i(bit.)24 b(Initially)l(,)120 913 y(dithering)17
b(is)f(enabled.)120 1051 y Fl(4.1.8)56 b(Logical)17 b(Op)r(eration)120
1143 y FC(Finally)l(,)e(a)d(logical)i(op)q(eration)f(is)h(applied)g(b)q
(et)o(w)o(een)g(the)e(incoming)i(fragmen)o(t's)e(color)120
1199 y(or)19 b(index)h(v)m(alues)f(and)g(the)g(color)g(or)f(index)i(v)m
(alues)g(stored)e(at)g(the)h(corresp)q(onding)120 1256
y(lo)q(cation)13 b(in)g(the)f(framebu\013er.)18 b(The)12
b(result)g(replaces)h(the)f(v)m(alues)h(in)f(the)g(framebu\013er)120
1312 y(at)k(the)g(fragmen)o(t's)f(\()p Fy(x;)8 b(y)r
FC(\))14 b(co)q(ordinates.)23 b(The)17 b(logical)g(op)q(eration)f(on)g
(color)h(indices)120 1369 y(is)d(enabled)h(or)e(disabled)j(with)e
Fz(Enable)g FC(or)f Fz(Disable)i FC(using)f(the)g(sym)o(b)q(olic)h
(constan)o(t)120 1425 y Fr(INDEX)p 233 1425 14 2 v 15
w(LOGIC)p 358 1425 V 15 w(OP)p FC(.)i(\(F)l(or)f(compatibilit)o(y)k
(with)e(GL)g(v)o(ersion)g(1.0,)f(the)h(sym)o(b)q(olic)g(con-)120
1481 y(stan)o(t)e Fr(LOGIC)p 350 1481 V 15 w(OP)h FC(ma)o(y)f(also)h(b)
q(e)h(used.\))26 b(The)17 b(logical)h(op)q(eration)g(on)f(color)g(v)m
(alues)h(is)120 1538 y(enabled)i(or)d(disabled)j(with)e
Fz(Enable)h FC(or)f Fz(Disable)h FC(using)f(the)g(sym)o(b)q(olic)i
(constan)o(t)120 1594 y Fr(COLOR)p 233 1594 V 15 w(LOGIC)p
358 1594 V 15 w(OP)p FC(.)13 b(If)i(the)g(logical)g(op)q(eration)g(is)g
(enabled)h(for)e(color)g(v)m(alues,)i(it)e(is)h(as)f(if)120
1651 y(blending)k(w)o(ere)d(disabled,)h(regardless)g(of)e(the)i(v)m
(alue)g(of)f Fr(BLEND)p FC(.)191 1710 y(The)g(logical)i(op)q(eration)e
(is)h(selected)g(b)o(y)234 1815 y Fw(void)30 b Fz(LogicOp)p
FC(\()i Fw(enum)14 b Fv(op)i FC(\))f Fw(;)120 1921 y
Fv(op)i FC(is)f(a)g(sym)o(b)q(olic)h(constan)o(t;)e(the)i(p)q(ossible)g
(constan)o(ts)e(and)i(corresp)q(onding)g(op)q(era-)120
1977 y(tions)11 b(are)f(en)o(umerated)h(in)g(T)l(able)g(4.3.)18
b(In)11 b(this)g(table,)g Fy(s)g FC(is)g(the)f(v)m(alue)i(of)e(the)g
(incoming)120 2034 y(fragmen)o(t)16 b(and)g Fy(d)h FC(is)g(the)f(v)m
(alue)i(stored)e(in)h(the)g(framebu\013er.)23 b(The)17
b(n)o(umeric)h(v)m(alues)120 2090 y(assigned)i(to)f(the)g(sym)o(b)q
(olic)i(constan)o(ts)d(are)h(the)h(same)f(as)g(those)g(assigned)h(to)f
(the)120 2147 y(corresp)q(onding)e(sym)o(b)q(olic)f(v)m(alues)g(in)g
(the)g(X)f(windo)o(w)g(system.)191 2206 y(Logical)25
b(op)q(erations)e(are)h(p)q(erformed)f(indep)q(enden)o(tl)q(y)j(for)d
(eac)o(h)h(color)f(index)120 2262 y(bu\013er)c(that)f(is)i(selected)g
(for)e(writing,)i(or)e(for)g(eac)o(h)h(red,)h(green,)f(blue,)i(and)e
(alpha)120 2319 y(v)m(alue)e(of)f(eac)o(h)g(color)g(bu\013er)g(that)f
(is)h(selected)h(for)f(writing.)22 b(The)16 b(required)h(state)e(is)120
2375 y(an)g(in)o(teger)h(indicating)h(the)e(logical)h(op)q(eration,)f
(and)g(t)o(w)o(o)f(bits)i(indicating)h(whether)120 2432
y(the)e(logical)g(op)q(eration)g(is)f(enabled)i(or)e(disabled.)21
b(The)15 b(initial)h(state)d(is)i(for)f(the)g(logic)120
2488 y(op)q(eration)i(to)e(b)q(e)i(giv)o(en)g(b)o(y)f
Fr(COPY)p FC(,)f(and)h(to)g(b)q(e)h(disabled.)p eop
%%Page: 116 125
116 124 bop 332 137 a FC(116)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)p 771 242
618 2 v 770 299 2 57 v 795 282 a FC(Argumen)o(t)g(v)m(alue)p
1137 299 V 51 w(Op)q(eration)p 1387 299 V 771 301 618
2 v 770 357 2 57 v 795 340 a Fr(CLEAR)p 1137 357 V 257
w FC(0)p 1387 357 V 770 413 V 795 397 a Fr(AND)p 1137
413 V 301 w Fy(s)c FB(^)f Fy(d)p 1387 413 V 770 470 V
795 453 a Fr(AND)p 864 453 14 2 v 15 w(REVERSE)p 1137
470 2 57 v 132 w Fy(s)h FB(^)f(:)p Fy(d)p 1387 470 V
770 526 V 795 509 a Fr(COPY)p 1137 526 V 279 w Fy(s)p
1387 526 V 770 583 V 795 566 a Fr(AND)p 864 566 14 2
v 15 w(INVERTED)p 1137 583 2 57 v 110 w FB(:)p Fy(s)h
FB(^)f Fy(d)p 1387 583 V 770 639 V 795 622 a Fr(NOOP)p
1137 639 V 279 w Fy(d)p 1387 639 V 770 696 V 795 679
a Fr(XOR)p 1137 696 V 301 w Fy(s)j FC(xor)f Fy(d)p 1387
696 V 770 752 V 795 735 a Fr(OR)p 1137 752 V 323 w Fy(s)f
FB(_)f Fy(d)p 1387 752 V 770 809 V 795 792 a Fr(NOR)p
1137 809 V 301 w FB(:)p FC(\()p Fy(s)h FB(_)f Fy(d)p
FC(\))p 1387 809 V 770 865 V 795 848 a Fr(EQUIV)p 1137
865 V 257 w FB(:)p FC(\()p Fy(s)j FC(xor)f Fy(d)p FC(\))p
1387 865 V 770 922 V 795 905 a Fr(INVERT)p 1137 922 V
235 w FB(:)p Fy(d)p 1387 922 V 770 978 V 795 961 a Fr(OR)p
842 961 14 2 v 16 w(REVERSE)p 1137 978 2 57 v 153 w Fy(s)f
FB(_)f(:)p Fy(d)p 1387 978 V 770 1034 V 795 1018 a Fr(COPY)p
886 1018 14 2 v 15 w(INVERTED)p 1137 1034 2 57 v 88 w
FB(:)p Fy(s)p 1387 1034 V 770 1091 V 795 1074 a Fr(OR)p
842 1074 14 2 v 16 w(INVERTED)p 1137 1091 2 57 v 131
w FB(:)p Fy(s)h FB(_)f Fy(d)p 1387 1091 V 770 1147 V
795 1130 a Fr(NAND)p 1137 1147 V 279 w FB(:)p FC(\()p
Fy(s)h FB(^)f Fy(d)p FC(\))p 1387 1147 V 770 1204 V 795
1187 a Fr(SET)p 1137 1204 V 301 w FC(all)16 b(1's)p 1387
1204 V 771 1205 618 2 v 371 1283 a(T)l(able)g(4.3:)j(Argumen)o(ts)14
b(to)h Fz(LogicOp)i FC(and)e(their)h(corresp)q(onding)g(op)q(erations.)
332 1471 y Fs(4.2)66 b(Whole)23 b(F)-6 b(ramebu\013er)25
b(Op)r(erations)332 1574 y FC(The)c(preceding)h(sections)g(describ)q
(ed)h(the)d(op)q(erations)h(that)g(o)q(ccur)g(as)f(individual)332
1631 y(fragmen)o(ts)g(are)h(sen)o(t)f(to)h(the)g(framebu\013er.)37
b(This)21 b(section)h(describ)q(es)g(op)q(erations)332
1687 y(that)15 b(con)o(trol)f(or)h(a\013ect)g(the)g(whole)h
(framebu\013er.)332 1812 y Fl(4.2.1)55 b(Selecting)17
b(a)i(Bu\013er)f(for)h(W)-5 b(riting)332 1899 y FC(The)15
b(\014rst)f(suc)o(h)h(op)q(eration)f(is)h(con)o(trolling)h(the)e
(bu\013er)h(in)o(to)f(whic)o(h)i(color)e(v)m(alues)i(are)332
1956 y(written.)k(This)c(is)f(accomplished)j(with)446
2052 y Fw(void)29 b Fz(Dra)o(wBu\013er)p FC(\()g Fw(enum)15
b Fv(buf)g FC(\))g Fw(;)332 2149 y Fv(buf)f FC(is)h(a)f(sym)o(b)q(olic)
h(constan)o(t)e(sp)q(ecifying)j(zero,)e(one,)g(t)o(w)o(o,)f(or)g(four)h
(bu\013ers)g(for)f(writ-)332 2205 y(ing.)19 b(The)12
b(constan)o(ts)e(are)h Fr(NONE)p FC(,)g Fr(FRONT)p 1008
2205 14 2 v 14 w(LEFT)p FC(,)f Fr(FRONT)p 1243 2205 V
15 w(RIGHT)p FC(,)g Fr(BACK)p 1479 2205 V 15 w(LEFT)p
FC(,)g Fr(BACK)p 1693 2205 V 15 w(RIGHT)p FC(,)332 2262
y Fr(FRONT)p FC(,)g Fr(BACK)p FC(,)h Fr(LEFT)p FC(,)f
Fr(RIGHT)p FC(,)h Fr(FRONT)p 935 2262 V 14 w(AND)p 1015
2262 V 15 w(BACK)p FC(,)g(and)h Fr(AUX0)f FC(through)g
Fr(AUX)p Fh(n)p FC(,)h(where)g Fy(n)s FC(+)s(1)332 2318
y(is)k(the)f(n)o(um)o(b)q(er)h(of)e(a)o(v)m(ailable)j(auxiliary)g
(bu\013ers.)403 2375 y(The)25 b(constan)o(ts)g(refer)g(to)g(the)h(four)
f(p)q(oten)o(tially)i(visible)g(bu\013ers)f Fv(fr)n(ont)p
1739 2375 V 16 w(left)p FC(,)332 2432 y Fv(fr)n(ont)p
430 2432 V 16 w(right)p FC(,)d Fv(b)n(ack)p 658 2432
V 17 w(left)p FC(,)f(and)g Fv(b)n(ack)p 951 2432 V 16
w(right)p FC(,)h(and)f(to)e(the)i Fv(auxiliary)g FC(bu\013ers.)38
b(Argu-)332 2488 y(men)o(ts)13 b(other)g(than)h Fr(AUX)p
Fh(i)f FC(that)g(omit)g(reference)h(to)f Fr(LEFT)g FC(or)g
Fr(RIGHT)f FC(refer)i(to)e(b)q(oth)i(left)p eop
%%Page: 117 126
117 125 bop 120 137 a Fx(4.2.)34 b(WHOLE)16 b(FRAMEBUFFER)f(OPERA)l
(TIONS)452 b FC(117)p 347 242 1042 2 v 346 299 2 57 v
372 282 a(sym)o(b)q(olic)p 689 299 V 170 w(fron)o(t)p
835 299 V 49 w(fron)o(t)p 980 299 V 49 w(bac)o(k)p 1121
299 V 52 w(bac)o(k)p 1266 299 V 52 w(aux)p 1388 299 V
346 355 V 372 338 a(constan)o(t)p 689 355 V 189 w(left)p
835 355 V 67 w(righ)o(t)p 980 355 V 63 w(left)p 1121
355 V 64 w(righ)o(t)p 1266 355 V 78 w Fy(i)p 1388 355
V 347 357 1042 2 v 346 413 2 57 v 372 397 a Fr(NONE)p
689 413 V 835 413 V 980 413 V 1121 413 V 1266 413 V 1388
413 V 346 470 V 372 453 a(FRONT)p 485 453 14 2 v 14 w(LEFT)p
689 470 2 57 v 167 w FB(\017)p 835 470 V 980 470 V 1121
470 V 1266 470 V 1388 470 V 346 526 V 372 509 a Fr(FRONT)p
485 509 14 2 v 14 w(RIGHT)p 689 526 2 57 v 835 526 V
291 w FB(\017)p 980 526 V 1121 526 V 1266 526 V 1388
526 V 346 583 V 372 566 a Fr(BACK)p 463 566 14 2 v 15
w(LEFT)p 689 583 2 57 v 835 583 V 980 583 V 477 w FB(\017)p
1121 583 V 1266 583 V 1388 583 V 346 639 V 372 622 a
Fr(BACK)p 463 622 14 2 v 15 w(RIGHT)p 689 639 2 57 v
835 639 V 980 639 V 1121 639 V 598 w FB(\017)p 1266 639
V 1388 639 V 346 696 V 372 679 a Fr(FRONT)p 689 696 V
269 w FB(\017)p 835 696 V 123 w(\017)p 980 696 V 1121
696 V 1266 696 V 1388 696 V 346 752 V 372 735 a Fr(BACK)p
689 752 V 835 752 V 980 752 V 580 w FB(\017)p 1121 752
V 120 w(\017)p 1266 752 V 1388 752 V 346 809 V 372 792
a Fr(LEFT)p 689 809 V 291 w FB(\017)p 835 809 V 980 809
V 266 w(\017)p 1121 809 V 1266 809 V 1388 809 V 346 865
V 372 848 a Fr(RIGHT)p 689 865 V 835 865 V 415 w FB(\017)p
980 865 V 1121 865 V 263 w(\017)p 1266 865 V 1388 865
V 346 922 V 372 905 a Fr(FRONT)p 485 905 14 2 v 14 w(AND)p
565 905 V 15 w(BACK)p 689 922 2 57 v 86 w FB(\017)p 835
922 V 123 w(\017)p 980 922 V 120 w(\017)p 1121 922 V
120 w(\017)p 1266 922 V 1388 922 V 346 978 V 372 961
a Fr(AUX)p Fh(i)p 689 978 V 835 978 V 980 978 V 1121
978 V 1266 978 V 864 w FB(\017)p 1388 978 V 347 980 1042
2 v 133 1057 a FC(T)l(able)16 b(4.4:)j(Argumen)o(ts)14
b(to)h Fz(Dra)o(wBu\013er)f FC(and)h(the)g(bu\013ers)g(that)g(they)g
(indicate.)120 1268 y(and)i(righ)o(t)f(bu\013ers.)24
b(Argumen)o(ts)16 b(other)h(than)f Fr(AUX)p Fh(i)g FC(that)g(omit)h
(reference)g(to)f Fr(FRONT)120 1324 y FC(or)h Fr(BACK)f
FC(refer)h(to)g(b)q(oth)g(fron)o(t)f(and)i(bac)o(k)f(bu\013ers.)25
b Fr(AUX)p Fh(i)17 b FC(enables)i(dra)o(wing)e(only)g(to)120
1380 y Fv(auxiliary)f FC(bu\013er)f Fy(i)p FC(.)20 b(Eac)o(h)15
b Fr(AUX)p Fh(i)g FC(adheres)g(to)g Fr(AUX)p Fh(i)d FC(=)h
Fr(AUX0)d FC(+)g Fy(i)p FC(.)20 b(The)15 b(constan)o(ts)g(and)120
1437 y(the)k(bu\013ers)f(they)g(indicate)i(are)e(summarized)h(in)g(T)l
(able)g(4.4.)28 b(If)18 b Fz(Dra)o(wBu\013er)f FC(is)120
1493 y(is)g(supplied)h(with)e(a)f(constan)o(t)g(\(other)g(than)g
Fr(NONE)p FC(\))g(that)f(do)q(es)i(not)g(indicate)h(an)o(y)e(of)120
1550 y(the)j(color)f(bu\013ers)g(allo)q(cated)i(to)e(the)g(GL)g(con)o
(text,)g(the)h(error)e Fr(INVALID)p 1407 1550 14 2 v
15 w(OPERATION)120 1606 y FC(results.)191 1674 y(Indicating)d(a)f
(bu\013er)g(or)f(bu\013ers)h(using)g Fz(Dra)o(wBu\013er)f
FC(causes)h(subsequen)o(t)g(pixel)120 1731 y(color)20
b(v)m(alue)i(writes)e(to)f(a\013ect)g(the)i(indicated)g(bu\013ers.)35
b(If)20 b(more)g(than)g(one)g(color)120 1787 y(bu\013er)14
b(is)h(selected)g(for)e(dra)o(wing,)h(blending)i(and)e(logical)i(op)q
(erations)e(are)f(computed)120 1844 y(and)22 b(applied)h(indep)q
(endently)h(for)d(eac)o(h)g(bu\013er.)39 b(Calling)23
b Fz(Dra)o(wBu\013er)d FC(with)i(a)120 1900 y(v)m(alue)17
b(of)e Fr(NONE)f FC(inhibits)j(the)f(writing)f(of)g(color)g(v)m(alues)i
(to)d(an)o(y)h(bu\013er.)191 1968 y(Monoscopic)c(con)o(texts)g(include)
i(only)f(left)f(bu\013ers,)g(while)i(stereoscopic)e(con)o(texts)120
2025 y(include)j(b)q(oth)e(left)g(and)g(righ)o(t)g(bu\013ers.)18
b(Lik)o(ewise,)c(single)f(bu\013ered)f(con)o(texts)f(include)120
2081 y(only)g(fron)o(t)f(bu\013ers,)h(while)g(double)h(bu\013ered)f
(con)o(texts)f(include)i(b)q(oth)f(fron)o(t)e(and)i(bac)o(k)120
2138 y(bu\013ers.)20 b(The)c(t)o(yp)q(e)f(of)g(con)o(text)f(is)i
(selected)g(at)f(GL)g(initialization.)191 2206 y(The)g(state)f
(required)h(to)f(handle)i(bu\013er)f(selection)h(is)f(a)f(set)h(of)f
(up)h(to)f(4)9 b(+)g Fy(n)15 b FC(bits.)120 2262 y(4)k(bits)g(indicate)
h(if)g(the)e(fron)o(t)g(left)h(bu\013er,)h(the)e(fron)o(t)g(righ)o(t)h
(bu\013er,)g(the)g(bac)o(k)f(left)120 2319 y(bu\013er,)f(or)f(the)h
(bac)o(k)f(righ)o(t)g(bu\013er,)h(are)f(enabled)i(for)e(color)h
(writing.)24 b(The)17 b(other)f Fy(n)120 2375 y FC(bits)i(indicate)h
(whic)o(h)f(of)e(the)i(auxiliary)g(bu\013ers)f(is)h(enabled)g(for)f
(color)g(writing.)26 b(In)120 2432 y(the)16 b(initial)i(state,)d(the)g
(fron)o(t)g(bu\013er)h(or)f(bu\013ers)g(are)h(enabled)h(if)f(there)g
(are)f(no)h(bac)o(k)120 2488 y(bu\013ers;)f(otherwise,)g(only)h(the)f
(bac)o(k)g(bu\013er)g(or)g(bu\013ers)g(are)g(enabled.)p
eop
%%Page: 118 127
118 126 bop 332 137 a FC(118)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)332 286 y
Fl(4.2.2)55 b(Fine)18 b(Con)n(trol)i(of)e(Bu\013er)g(Up)r(dates)332
378 y FC(F)l(our)e(commands)h(are)f(used)h(to)f(mask)g(the)h(writing)g
(of)g(bits)g(to)f(eac)o(h)g(of)g(the)h(logical)332 434
y(framebu\013ers)i(after)g(all)i(p)q(er-fragmen)o(t)e(op)q(erations)h
(ha)o(v)o(e)f(b)q(een)i(p)q(erformed.)33 b(The)332 491
y(commands)446 596 y Fw(void)c Fz(IndexMask)p FC(\()g
Fw(uint)15 b Fv(mask)g FC(\))g Fw(;)446 653 y(void)58
b Fz(ColorMask)p FC(\()f Fw(boolean)29 b Fv(r)p Fw(,)k(boolean)28
b Fv(g)p Fw(,)33 b(boolean)28 b Fv(b)p Fw(,)514 709 y(boolean)14
b Fv(a)h FC(\))g Fw(;)332 815 y FC(con)o(trol)f(the)g(color)f(bu\013er)
h(or)g(bu\013ers)f(\(dep)q(ending)j(on)e(whic)o(h)h(bu\013ers)e(are)h
(curren)o(tly)332 871 y(indicated)19 b(for)d(writing\).)25
b(The)18 b(least)f(signi\014can)o(t)h Fy(n)f FC(bits)g(of)g
Fv(mask)p FC(,)g(where)g Fy(n)g FC(is)g(the)332 928 y(n)o(um)o(b)q(er)g
(of)f(bits)h(in)h(a)e(color)h(index)h(bu\013er,)e(sp)q(ecify)i(a)e
(mask.)24 b(Where)17 b(a)f(1)g(app)q(ears)332 984 y(in)h(this)g(mask,)f
(the)h(corresp)q(onding)g(bit)g(in)g(the)g(color)f(index)i(bu\013er)e
(\(or)g(bu\013ers\))g(is)332 1041 y(written;)d(where)h(a)e(0)h(app)q
(ears,)g(the)g(bit)g(is)h(not)e(written.)20 b(This)13
b(mask)g(applies)h(only)g(in)332 1097 y(color)f(index)h(mo)q(de.)19
b(In)13 b(R)o(GBA)g(mo)q(de,)g Fz(ColorMask)f FC(is)i(used)f(to)f(mask)
g(the)h(writing)332 1154 y(of)g(R,)h(G,)f(B)g(and)h(A)g(v)m(alues)h(to)
e(the)g(color)h(bu\013er)g(or)f(bu\013ers.)19 b Fv(r)p
FC(,)14 b Fv(g)p FC(,)f Fv(b)p FC(,)g(and)h Fv(a)g FC(indicate)332
1210 y(whether)19 b(R,)f(G,)f(B,)h(or)g(A)g(v)m(alues,)i(resp)q(ectiv)o
(ely)l(,)h(are)d(written)g(or)g(not)g(\(a)f(v)m(alue)j(of)332
1267 y Fr(TRUE)13 b FC(means)h(that)g(the)g(corresp)q(onding)h(v)m
(alue)g(is)g(written\).)k(In)c(the)f(initial)i(state,)e(all)332
1323 y(bits)g(\(in)g(color)f(index)i(mo)q(de\))e(and)g(all)i(color)e(v)
m(alues)h(\(in)g(R)o(GBA)g(mo)q(de\))f(are)g(enabled)332
1380 y(for)i(writing.)403 1439 y(The)g(depth)g(bu\013er)g(can)g(b)q(e)h
(enabled)g(or)f(disabled)i(for)d(writing)h Fy(z)1544
1446 y Fu(w)1588 1439 y FC(v)m(alues)h(using)446 1545
y Fw(void)29 b Fz(DepthMask)p FC(\()h Fw(boolean)14 b
Fv(mask)h FC(\))g Fw(;)332 1650 y FC(If)h Fv(mask)g FC(is)h(non-zero,)f
(the)g(depth)h(bu\013er)f(is)g(enabled)i(for)d(writing;)i(otherwise,)f
(it)g(is)332 1707 y(disabled.)22 b(In)16 b(the)f(initial)i(state,)d
(the)h(depth)h(bu\013er)f(is)h(enabled)h(for)d(writing.)403
1766 y(The)h(command)446 1872 y Fw(void)29 b Fz(StencilMask)p
FC(\()i Fw(uint)15 b Fv(mask)g FC(\))g Fw(;)332 1977
y FC(con)o(trols)21 b(the)h(writing)g(of)g(particular)g(bits)g(in)o(to)
g(the)g(stencil)h(planes.)40 b(The)22 b(least)332 2034
y(signi\014can)o(t)16 b Fy(s)f FC(bits)h(of)e Fv(mask)h
FC(comprise)g(an)g(in)o(teger)g(mask)g(\()p Fy(s)g FC(is)g(the)g(n)o
(um)o(b)q(er)g(of)g(bits)332 2090 y(in)k(the)f(stencil)i(bu\013er\),)e
(just)g(as)g(for)g Fz(IndexMask)p FC(.)27 b(The)18 b(initial)j(state)c
(is)i(for)e(the)332 2146 y(stencil)g(plane)f(mask)f(to)f(b)q(e)i(all)g
(ones.)403 2206 y(The)c(state)f(required)i(for)e(the)h(v)m(arious)h
(masking)f(op)q(erations)g(is)h(t)o(w)o(o)d(in)o(tegers)i(and)332
2262 y(a)19 b(bit:)27 b(an)19 b(in)o(teger)g(for)g(color)g(indices,)i
(an)e(in)o(teger)g(for)f(stencil)j(v)m(alues,)f(and)f(a)g(bit)332
2319 y(for)e(depth)h(v)m(alues.)28 b(A)17 b(set)h(of)f(four)g(bits)h
(is)g(also)f(required)i(indicating)g(whic)o(h)f(color)332
2375 y(comp)q(onen)o(ts)f(of)g(an)g(R)o(GBA)g(v)m(alue)h(should)g(b)q
(e)g(written.)25 b(In)18 b(the)f(initial)i(state,)d(the)332
2432 y(in)o(teger)e(masks)e(are)h(all)h(ones)g(as)e(are)h(the)h(bits)f
(con)o(trolling)i(depth)e(v)m(alue)i(and)e(R)o(GBA)332
2488 y(comp)q(onen)o(t)i(writing.)p eop
%%Page: 119 128
119 127 bop 120 137 a Fx(4.2.)34 b(WHOLE)16 b(FRAMEBUFFER)f(OPERA)l
(TIONS)452 b FC(119)120 286 y Fl(4.2.3)56 b(Clearing)18
b(the)g(Bu\013ers)120 373 y FC(The)e(GL)f(pro)o(vides)h(a)f(means)g
(for)g(setting)g(p)q(ortions)g(of)g(ev)o(ery)g(pixel)i(in)f(a)f
(particular)120 430 y(bu\013er)h(to)e(the)h(same)g(v)m(alue.)21
b(The)16 b(argumen)o(t)e(to)234 526 y Fw(void)30 b Fz(Clear)p
FC(\()g Fw(bitfield)14 b Fv(buf)h FC(\))g Fw(;)120 622
y FC(is)36 b(the)f(bit)o(wise)g(OR)h(of)e(a)h(n)o(um)o(b)q(er)g(of)f(v)
m(alues)i(indicating)h(whic)o(h)f(bu\013ers)120 679 y(are)26
b(to)g(b)q(e)h(cleared.)54 b(The)27 b(v)m(alues)g(are)f
Fr(COLOR)p 1003 679 14 2 v 15 w(BUFFER)p 1150 679 V 14
w(BIT)p FC(,)g Fr(DEPTH)p 1379 679 V 14 w(BUFFER)p 1525
679 V 15 w(BIT)p FC(,)120 735 y Fr(STENCIL)p 277 735
V 15 w(BUFFER)p 424 735 V 14 w(BIT)p FC(,)17 b(and)h
Fr(ACCUM)p 735 735 V 15 w(BUFFER)p 882 735 V 14 w(BIT)p
FC(,)f(indicating)j(the)d(bu\013ers)h(curren)o(tly)120
792 y(enabled)f(for)d(color)g(writing,)h(the)g(depth)h(bu\013er,)e(the)
h(stencil)h(bu\013er,)e(and)h(the)g(accu-)120 848 y(m)o(ulation)h
(bu\013er)g(\(see)f(b)q(elo)o(w\),)g(resp)q(ectiv)o(ely)l(.)22
b(The)16 b(v)m(alue)h(to)d(whic)o(h)i(eac)o(h)g(bu\013er)f(is)120
905 y(cleared)g(dep)q(ends)g(on)e(the)g(setting)h(of)f(the)g(clear)h(v)
m(alue)h(for)d(that)h(bu\013er.)19 b(If)14 b(the)f(mask)120
961 y(is)k(not)f(a)g(bit)o(wise)h(OR)h(of)e(the)g(sp)q(eci\014ed)i(v)m
(alues,)g(then)f(the)f(error)g Fr(INVALID)p 1448 961
V 14 w(VALUE)f FC(is)120 1018 y(generated.)234 1114 y
Fw(void)20 b Fz(ClearColor)p FC(\()g Fw(clampf)9 b Fv(r)p
Fw(,)i(clampf)f Fv(g)p Fw(,)h(clampf)e Fv(b)p Fw(,)i(clampf)e
Fv(a)h FC(\))g Fw(;)120 1210 y FC(sets)h(the)g(clear)g(v)m(alue)h(for)e
(the)h(color)f(bu\013ers)h(in)h(R)o(GBA)e(mo)q(de.)19
b(Eac)o(h)11 b(of)f(the)h(sp)q(eci\014ed)120 1267 y(comp)q(onen)o(ts)19
b(is)g(clamp)q(ed)h(to)e([0)p Fy(;)8 b FC(1])16 b(and)j(con)o(v)o
(erted)f(to)g(\014xed-p)q(oin)o(t)h(according)g(to)120
1323 y(the)d(rules)g(of)e(section)i(2.13.9.)234 1419
y Fw(void)30 b Fz(ClearIndex)p FC(\()f Fw(float)15 b
Fv(index)g FC(\))g Fw(;)120 1515 y FC(sets)20 b(the)g(clear)h(color)f
(index.)36 b Fv(index)19 b FC(is)i(con)o(v)o(erted)f(to)f(a)h
(\014xed-p)q(oin)o(t)h(v)m(alue)g(with)120 1572 y(unsp)q(eci\014ed)d
(precision)f(to)e(the)g(left)h(of)e(the)i(binary)g(p)q(oin)o(t;)f(the)g
(in)o(teger)h(part)e(of)h(this)120 1628 y(v)m(alue)i(is)e(then)h(mask)o
(ed)e(with)i(2)675 1612 y Fu(m)717 1628 y FB(\000)11
b FC(1,)j(where)h Fy(m)g FC(is)h(the)f(n)o(um)o(b)q(er)g(of)g(bits)g
(in)h(a)f(color)120 1685 y(index)i(v)m(alue)f(stored)f(in)h(the)f
(framebu\013er.)234 1781 y Fw(void)30 b Fz(ClearDepth)p
FC(\()g Fw(clampd)15 b Fv(d)g FC(\))g Fw(;)120 1877 y
FC(tak)o(es)21 b(a)h(\015oating-p)q(oin)o(t)g(v)m(alue)h(that)f(is)g
(clamp)q(ed)h(to)e(the)h(range)g([0)p Fy(;)8 b FC(1])19
b(and)j(con-)120 1934 y(v)o(erted)c(to)g(\014xed-p)q(oin)o(t)h
(according)g(to)f(the)g(rules)h(for)e(a)h(windo)o(w)h
Fy(z)h FC(v)m(alue)f(giv)o(en)g(in)120 1990 y(section)d(2.10.1.)i
(Similarly)l(,)234 2087 y Fw(void)30 b Fz(ClearStencil)p
FC(\()i Fw(int)14 b Fv(s)h FC(\))g Fw(;)120 2183 y FC(tak)o(es)d(a)h
(single)h(in)o(teger)f(argumen)o(t)f(that)g(is)h(the)g(v)m(alue)h(to)e
(whic)o(h)h(to)f(clear)h(the)g(stencil)120 2239 y(bu\013er.)20
b Fv(s)15 b FC(is)h(mask)o(ed)f(to)f(the)h(n)o(um)o(b)q(er)h(of)f
(bitplanes)h(in)g(the)g(stencil)g(bu\013er.)234 2335
y Fw(void)30 b Fz(ClearAccum)p FC(\()g Fw(float)14 b
Fv(r)p Fw(,)h(float)g Fv(g)p Fw(,)g(float)f Fv(b)p Fw(,)h(float)f
Fv(a)i FC(\))f Fw(;)120 2432 y FC(tak)o(es)i(four)g(\015oating-p)q(oin)
o(t)h(argumen)o(ts)e(that)g(are)h(the)h(v)m(alues,)g(in)g(order,)f(to)g
(whic)o(h)120 2488 y(to)g(set)h(the)f(R,)h(G,)f(B,)g(and)h(A)g(v)m
(alues)g(of)g(the)f(accum)o(ulation)i(bu\013er)e(\(see)h(the)g(next)p
eop
%%Page: 120 129
120 128 bop 332 137 a FC(120)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)332 286 y
FC(section\).)20 b(These)14 b(v)m(alues)i(are)d(clamp)q(ed)j(to)d(the)i
(range)e([)p FB(\000)p FC(1)p Fy(;)8 b FC(1])13 b(when)h(they)h(are)e
(sp)q(ec-)332 343 y(i\014ed.)403 399 y(When)g Fz(Clear)g
FC(is)g(called,)i(the)d(only)i(p)q(er-fragmen)o(t)e(op)q(erations)h
(that)f(are)h(applied)332 456 y(\(if)g(enabled\))g(are)g(the)f(pixel)i
(o)o(wnership)g(test,)e(the)g(scissor)h(test,)f(and)h(dithering.)20
b(The)332 512 y(masking)14 b(op)q(erations)h(describ)q(ed)h(in)f(the)f
(last)g(section)h(\(4.2.2\))d(are)i(also)g(e\013ectiv)o(e.)20
b(If)332 569 y(a)15 b(bu\013er)g(is)h(not)f(presen)o(t,)f(then)i(a)f
Fz(Clear)g FC(directed)i(at)d(that)h(bu\013er)g(has)g(no)g(e\013ect.)
403 625 y(The)d(state)f(required)h(for)f(clearing)i(is)f(a)g(clear)g(v)
m(alue)h(for)e(eac)o(h)h(of)f(the)h(color)g(bu\013er,)332
682 y(the)17 b(depth)h(bu\013er,)f(the)g(stencil)h(bu\013er,)g(and)f
(the)g(accum)o(ulation)h(bu\013er.)25 b(Initially)l(,)332
738 y(the)17 b(R)o(GBA)g(color)g(clear)g(v)m(alue)h(is)f(\(0,0,0,0\),)d
(the)j(clear)h(color)e(index)j(is)e(0,)f(and)h(the)332
795 y(stencil)23 b(bu\013er)e(and)h(accum)o(ulation)g(bu\013er)f(clear)
h(v)m(alues)g(are)f(all)h(0.)38 b(The)22 b(depth)332
851 y(bu\013er)15 b(clear)h(v)m(alue)g(is)g(initially)i(1.0.)332
973 y Fl(4.2.4)55 b(The)19 b(Accum)n(ulation)e(Bu\013er)332
1059 y FC(Eac)o(h)11 b(p)q(ortion)g(of)f(a)h(pixel)h(in)g(the)f(accum)o
(ulation)h(bu\013er)e(consists)i(of)e(four)g(v)m(alues:)19
b(one)332 1115 y(for)12 b(eac)o(h)g(of)g(R,)h(G,)f(B,)g(and)g(A.)h(The)
f(accum)o(ulation)i(bu\013er)e(is)h(con)o(trolled)g(exclusiv)o(ely)332
1171 y(through)i(the)g(use)h(of)446 1265 y Fw(void)29
b Fz(Accum)p FC(\()h Fw(enum)15 b Fv(op)p Fw(,)g(float)g
Fv(value)g FC(\))g Fw(;)332 1359 y FC(\(except)i(for)f(clearing)i
(it\).)25 b Fv(op)17 b FC(is)h(a)e(sym)o(b)q(olic)i(constan)o(t)e
(indicating)j(an)e(accum)o(ula-)332 1416 y(tion)f(bu\013er)g(op)q
(eration,)g(and)g Fv(value)g FC(is)g(a)g(\015oating-p)q(oin)o(t)g(v)m
(alue)h(to)e(b)q(e)i(used)f(in)h(that)332 1472 y(op)q(eration.)j(The)c
(p)q(ossible)h(op)q(erations)e(are)g Fr(ACCUM)p FC(,)f
Fr(LOAD)p FC(,)f Fr(RETURN)p FC(,)h Fr(MULT)p FC(,)g(and)h
Fr(ADD)p FC(.)403 1528 y(The)i(accum)o(ulation)h(bu\013er)f(op)q
(erations)g(apply)g(iden)o(tically)j(to)c(ev)o(ery)h(pixel,)i(so)332
1585 y(w)o(e)11 b(describ)q(e)h(the)f(e\013ect)f(of)g(eac)o(h)h(op)q
(eration)g(on)g(an)f(individual)k(pixel.)20 b(Accum)o(ulation)332
1641 y(bu\013er)14 b(v)m(alues)h(are)f(tak)o(en)g(to)f(b)q(e)i(signed)g
(v)m(alues)g(in)g(the)f(range)g([)p FB(\000)p FC(1)p
Fy(;)8 b FC(1].)18 b(Using)d Fr(ACCUM)332 1698 y FC(obtains)j(R,)f(G,)g
(B,)g(and)h(A)g(comp)q(onen)o(ts)f(from)g(the)h(bu\013er)f(curren)o
(tly)h(selected)h(for)332 1754 y(reading)e(\(section)g(4.3.2\).)22
b(Eac)o(h)16 b(comp)q(onen)o(t,)g(considered)i(as)e(a)g(\014xed-p)q
(oin)o(t)i(v)m(alue)332 1811 y(in)12 b([0,1])e(\(see)h(section)h
(2.13.9\),)e(is)h(con)o(v)o(erted)g(to)g(\015oating-p)q(oin)o(t.)19
b(Eac)o(h)11 b(result)h(is)g(then)332 1867 y(m)o(ultiplied)k(b)o(y)e
Fv(value)p FC(.)19 b(The)13 b(results)h(of)f(this)h(m)o(ultiplication)i
(are)d(then)h(added)g(to)e(the)332 1924 y(corresp)q(onding)21
b(color)f(comp)q(onen)o(t)f(curren)o(tly)i(in)f(the)g(accum)o(ulation)h
(bu\013er,)f(and)332 1980 y(the)11 b(resulting)h(color)f(v)m(alue)h
(replaces)g(the)e(curren)o(t)h(accum)o(ulation)h(bu\013er)f(color)g(v)m
(alue.)332 2037 y(The)17 b Fr(LOAD)f FC(op)q(eration)h(has)f(the)h
(same)g(e\013ect)f(as)g Fr(ACCUM)p FC(,)g(but)g(the)h(computed)g(v)m
(alues)332 2093 y(replace)11 b(the)g(corresp)q(onding)g(accum)o
(ulation)g(bu\013er)f(comp)q(onen)o(ts)g(rather)g(than)g(b)q(eing)332
2149 y(added)16 b(to)e(them.)403 2206 y(The)24 b Fr(RETURN)g
FC(op)q(eration)g(tak)o(es)g(eac)o(h)h(color)f(v)m(alue)i(from)e(the)h
(accum)o(ulation)332 2262 y(bu\013er,)20 b(m)o(ultiplies)i(eac)o(h)d
(of)g(the)g(R,)h(G,)e(B,)h(and)h(A)f(comp)q(onen)o(ts)h(b)o(y)f
Fv(value)p FC(.)32 b(The)332 2319 y(resulting)14 b(color)f(v)m(alue)h
(is)g(placed)g(in)g(the)f(bu\013ers)g(curren)o(tly)h(enabled)g(for)e
(color)h(writ-)332 2375 y(ing)f(as)g(if)g(it)g(w)o(ere)f(a)h(fragmen)o
(t)e(pro)q(duced)j(from)e(rasterization,)h(except)g(that)f(the)h(only)
332 2432 y(p)q(er-fragmen)o(t)g(op)q(erations)g(applied)i(are)d(the)i
(pixel)g(o)o(wnership)g(test)e(and,)i(if)f(enabled,)332
2488 y(dithering)17 b(\(section)e(4.1\);)f(color)h(masking)g(\(section)
h(4.2.2\))d(is)j(also)f(applied.)p eop
%%Page: 121 130
121 129 bop 120 137 a Fx(4.3.)34 b(DRA)-5 b(WING,)15
b(READING,)g(AND)h(COPYING)f(PIXELS)298 b FC(121)191
286 y(The)15 b Fr(MULT)f FC(op)q(eration)h(m)o(ultiplies)i(eac)o(h)e
(R,)g(G,)g(B,)f(and)h(A)g(in)h(the)f(accum)o(ulation)120
343 y(bu\013er)f(b)o(y)g Fv(value)g FC(and)g(then)g(returns)g(the)g
(scaled)h(color)e(comp)q(onen)o(ts)h(to)g(their)g(corre-)120
399 y(sp)q(onding)h(accum)o(ulation)f(bu\013er)f(lo)q(cations.)20
b Fr(ADD)13 b FC(is)h(the)f(same)g(as)g Fr(MULT)g FC(except)g(that)120
456 y Fv(value)j FC(is)f(added)h(to)f(eac)o(h)g(of)g(the)g(color)g
(comp)q(onen)o(ts.)191 513 y(The)g(color)h(comp)q(onen)o(ts)f(op)q
(erated)g(on)g(b)o(y)g Fz(Accum)g FC(m)o(ust)f(b)q(e)i(clamp)q(ed)h
(only)e(if)120 569 y(the)e(op)q(eration)f(is)h Fr(RETURN)p
FC(.)d(In)j(this)g(case,)g(a)e(v)m(alue)j(sen)o(t)e(to)g(the)g(enabled)
i(color)e(bu\013ers)120 626 y(is)k(\014rst)e(clamp)q(ed)i(to)e([0)p
Fy(;)8 b FC(1].)17 b(Otherwise,)f(results)f(are)f(unde\014ned)j(if)e
(the)f(result)i(of)e(an)120 682 y(op)q(eration)f(on)g(a)f(color)h(comp)
q(onen)o(t)g(is)g(out)f(of)g(the)h(range)g([)p FB(\000)p
FC(1)p Fy(;)8 b FC(1].)17 b(When)c(the)g(scissor)120
739 y(test)21 b(is)i(enabled)g(\(section)f(4.1.2\),)f(then)g(only)i
(those)e(pixels)i(within)g(the)f(curren)o(t)120 795 y(scissor)c(b)q(o)o
(x)g(are)f(up)q(dated)h(b)o(y)g(an)o(y)f Fz(Accum)g FC(op)q(eration;)i
(otherwise,)f(all)h(pixels)g(in)120 852 y(the)d(windo)o(w)f(are)g(up)q
(dated.)21 b(If)16 b(there)f(is)h(no)f(accum)o(ulation)h(bu\013er,)f
(or)g(if)h(the)f(GL)g(is)120 908 y(in)h(color)g(index)g(mo)q(de,)f
Fz(Accum)g FC(generates)g(the)g(error)g Fr(INVALID)p
1263 908 14 2 v 14 w(OPERATION)p FC(.)191 965 y(No)f(state)f(\(b)q(ey)o
(ond)h(the)g(accum)o(ulation)h(bu\013er)f(itself)t(\))g(is)g(required)h
(for)e(accum)o(u-)120 1022 y(lation)j(bu\013ering.)120
1169 y Fs(4.3)67 b(Dra)n(wing,)22 b(Reading,)g(and)h(Cop)n(ying)g
(Pixels)120 1272 y FC(Pixels)c(ma)o(y)e(b)q(e)i(written)e(to)g(and)h
(read)g(from)f(the)h(framebu\013er)f(using)h(the)g Fz(Dra)o(w-)120
1328 y(Pixels)h FC(and)f Fz(ReadPixels)h FC(commands.)29
b Fz(Cop)o(yPixels)17 b FC(can)h(b)q(e)h(used)g(to)f(cop)o(y)g(a)120
1385 y(blo)q(c)o(k)e(of)f(pixels)i(from)d(one)i(p)q(ortion)f(of)g(the)g
(framebu\013er)g(to)f(another.)120 1510 y Fl(4.3.1)56
b(W)-5 b(riting)17 b(to)i(the)f(Stencil)f(Bu\013er)120
1597 y FC(The)g(op)q(eration)f(of)f Fz(Dra)o(wPixels)g
FC(w)o(as)h(describ)q(ed)h(in)g(section)g(3.6.3,)d(except)i(if)h(the)
120 1654 y Fv(format)12 b FC(argumen)o(t)e(w)o(as)g Fr(STENCIL)p
702 1654 V 14 w(INDEX)p FC(.)g(In)h(this)g(case,)h(all)g(op)q(erations)
f(describ)q(ed)h(for)120 1710 y Fz(Dra)o(wPixels)g FC(tak)o(e)f(place,)
i(but)g(windo)o(w)f(\()p Fy(x;)c(y)r FC(\))i(co)q(ordinates,)j(eac)o(h)
f(with)h(the)f(corre-)120 1767 y(sp)q(onding)k(stencil)g(index,)g(are)e
(pro)q(duced)i(in)g(lieu)g(of)e(fragmen)o(ts.)19 b(Eac)o(h)14
b(co)q(ordinate-)120 1823 y(stencil)j(index)f(pair)g(is)f(sen)o(t)g
(directly)h(to)f(the)g(p)q(er-fragmen)o(t)g(op)q(erations,)f(b)o
(ypassing)120 1880 y(the)k(texture,)g(fog,)f(and)h(an)o(tialiasing)h
(application)g(stages)e(of)h(rasterization.)27 b(Eac)o(h)120
1936 y(pair)18 b(is)f(then)h(treated)e(as)h(a)g(fragmen)o(t)f(for)g
(purp)q(oses)i(of)e(the)h(pixel)i(o)o(wnership)f(and)120
1992 y(scissor)f(tests;)g(all)h(other)f(p)q(er-fragmen)o(t)f(op)q
(erations)i(are)e(b)o(ypassed.)26 b(Finally)l(,)19 b(eac)o(h)120
2049 y(stencil)f(index)f(is)f(written)g(to)f(its)h(indicated)i(lo)q
(cation)e(in)h(the)f(framebu\013er,)f(sub)s(ject)120
2105 y(to)g(the)g(curren)o(t)g(setting)h(of)e Fz(StencilMask)p
FC(.)191 2163 y(The)h(error)g Fr(INVALID)p 553 2163 V
14 w(OPERATION)e FC(results)j(if)g(there)f(is)h(no)f(stencil)h
(bu\013er.)120 2288 y Fl(4.3.2)56 b(Reading)18 b(Pixels)120
2375 y FC(The)i(metho)q(d)g(for)f(reading)h(pixels)i(from)d(the)g
(framebu\013er)g(and)h(placing)h(them)f(in)120 2432 y(clien)o(t)e
(memory)f(is)g(diagrammed)g(in)g(Figure)g(4.2.)23 b(W)l(e)17
b(describ)q(e)i(the)d(stages)g(of)h(the)120 2488 y(pixel)g(reading)f
(pro)q(cess)f(in)h(the)g(order)f(in)h(whic)o(h)g(they)f(o)q(ccur.)p
eop
%%Page: 122 131
122 130 bop 332 137 a FC(122)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)p 350 551
1459 2 v 350 2128 2 1578 v 404 625 a
21313290 19821357 2039234 592035 43218616 39074365 startTexFig
404 625 a
%%BeginDocument: pics/pixread.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/pmask34 {
<aaaa0000aaaa0000aaaa0000aaaa0000
aaaa0000aaaa0000aaaa0000aaaa0000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 66 /patchar34 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar34 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask34 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
144 580.5 M
198 580.5 L
198 108 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
468 580.5 M
522 580.5 L
522 108 L
stroke
grestore
gsave
matrix currentmatrix
[486 0 0 -207 117 495] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
256 16.08 512 {
96 exch M
(BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)
show
} for
grestore
gsave
matrix currentmatrix
[486 0 0 -207 117 261] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
32 16.08 272 {
96 exch M
(BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)
show
} for
grestore
gsave
matrix currentmatrix
[432 0 0 -45 144 108] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 63] concat
newpath
0 0 M 0 31.5 L 432 31.5 L 432 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 60 M 141 97.5 L 579 97.5 L 579 60 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 63] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
200.047 19.9706 M (pack) 31.906 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 549] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 495] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 492 M 141 543 L 255 543 L 255 492 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 495] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
28.716 33.4706 M (convert) 50.568 S
31.054 19.4706 M (to [0,1]) 45.892 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 252] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 198] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 195 M 141 246 L 255 246 L 255 195 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 198] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
28.716 33.4706 M (convert) 50.568 S
23.669 19.4706 M (RGB to L) 60.662 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 459] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 405] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 402 M 141 453 L 255 453 L 255 402 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 405] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
36.486 33.4706 M (scale) 35.028 S
25.601 19.4706 M (and bias) 56.798 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 369] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 135 315] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
132 312 M 132 363 L 264 363 L 264 312 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 135 315] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
11.284 33.4706 M (RGBA to RGBA ) 107.324 S
40.054 19.4706 M (lookup) 45.892 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 180] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 135 126] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
132 123 M 132 174 L 264 174 L 264 123 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 135 126] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
42.77 33.4706 M (clamp) 40.46 S
40.054 19.4706 M (to [0,1]) 45.892 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 567 M
198 549 L
202.5 567 L
198 564 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 567 M
198 549 L
202.5 567 L
198 564 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 270 M
198 252 L
202.5 270 L
198 267 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 270 M
198 252 L
202.5 270 L
198 267 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 477 M
198 459 L
202.5 477 L
198 474 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 477 M
198 459 L
202.5 477 L
198 474 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 387 M
198 369 L
202.5 387 L
198 384 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 387 M
198 369 L
202.5 387 L
198 384 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 459] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 468 405] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
465 402 M 465 453 L 579 453 L 579 402 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 468 405] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
39.223 33.4706 M (shift) 29.554 S
20.554 19.4706 M (and offset) 66.892 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 477 M
522 459 L
526.5 477 L
522 474 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 477 M
522 459 L
526.5 477 L
522 474 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 369] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 459 315] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
456 312 M 456 363 L 588 363 L 588 312 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 459 315] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
15.932 33.4706 M (index to index ) 98.028 S
40.054 19.4706 M (look) 28.784 S
68.838 19.4706 M (up) 17.108 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 387 M
522 369 L
526.5 387 L
522 384 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 387 M
522 369 L
526.5 387 L
522 384 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 306 369] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 297 315] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
294 312 M 294 363 L 426 363 L 426 312 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 297 315] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
13.608 33.4706 M (index to RGBA ) 102.676 S
40.054 19.4706 M (looku) 37.338 S
77.392 19.4706 M (p) 8.554 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
355.5 387 M
360 369 L
364.5 387 L
360 384 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
355.5 387 M
360 369 L
364.5 387 L
360 384 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 180] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 459 130.5] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
456 127.5 M 456 178.5 L 588 178.5 L 588 127.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 459 130.5] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
36.547 33.4706 M (mask to) 52.906 S
38.297 13.8706 M (\(2) 12.446 S
50.743 19.4706 M (n) 8.554 S
59.297 13.8706 M ( - 1\)) 28.406 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 324 M
360 306 L
198 306 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
522 396 M
360 396 L
360 369 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 63 M
360 36 L
414 36 L
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
396 31.5 M
414 36 L
396 40.5 L
399 36 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
396 31.5 M
414 36 L
396 40.5 L
399 36 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 288 427.5] concat
newpath
0 0 M 0 49.5 L 144 49.5 L 144 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
285.5 425 M 285.5 480.913 L 434.5 480.913 L 434.5 425 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 288 427.5] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
12.474 35.413 M (Pixel Transfer) 119.052 S
24.489 17.413 M (Operations) 95.022 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 423 9] concat
newpath
0 0 M 0 31.5 L 234 31.5 L 234 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
420.5 6.5 M 420.5 43 L 659.5 43 L 659.5 6.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 423 9] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
23.256 19.9706 M (byte, short, int, o) 112.798 S
136.054 19.9706 M (r float pixel) 74.69 S
4.202 5.97059 M (data stream \(index ) 127.596 S
131.798 5.97059 M (or component\)) 98 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 31.5 558] concat
newpath
0 0 M 0 36 L 126 36 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
29 555.5 M 29 596.5 L 160 596.5 L 160 555.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 31.5 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
24.493 24.4706 M (RGBA pixel) 77.014 S
40.439 10.4706 M (data in) 45.122 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 333 558] concat
newpath
0 0 M 0 36 L 126 36 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
330.5 555.5 M 330.5 596.5 L 461.5 596.5 L 461.5 555.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 333 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
7.756 24.4706 M (color index pixel) 110.488 S
40.439 10.4706 M (data in) 45.122 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 198 M
522 180 L
526.5 198 L
522 195 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 198 M
522 180 L
526.5 198 L
522 195 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 126 M
522 108 L
526.5 126 L
522 123 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 126 M
522 108 L
526.5 126 L
522 123 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 126 M
198 108 L
202.5 126 L
198 123 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 126 M
198 108 L
202.5 126 L
198 123 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 198 M
198 180 L
202.5 198 L
198 195 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 198 M
198 180 L
202.5 198 L
198 195 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 288 193.5] concat
newpath
0 0 M 0 49.5 L 144 49.5 L 144 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
285.5 191 M 285.5 246.913 L 434.5 246.913 L 434.5 191 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 288 193.5] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
14.976 35.413 M (Pixel Storage) 114.048 S
24.489 17.413 M (Operations) 95.022 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 1999 a Fm(Figure)h(4.2.)24 b(Op)q(eration)16 b(of)f
Fk(ReadPixels)p Fm(.)22 b(R)o(GBA)15 b(and)h(color)g(index)g(pixel)f
(paths)389 2049 y(are)j(sho)o(wn;)f(depth)h(and)f(stencil)g(pixel)f
(paths)i(are)f(not)g(sho)o(wn.)27 b(R)o(GBA-to-R)o(GBA)389
2099 y(lo)q(okup,)13 b(index-to-index)g(lo)q(okup,)g(and)h(R)o(GB-to-L)
e(con)o(v)o(ersion)i(are)h(optional.)p 1807 2128 2 1578
v 350 2130 1459 2 v eop
%%Page: 123 132
123 131 bop 120 137 a Fx(4.3.)34 b(DRA)-5 b(WING,)15
b(READING,)g(AND)h(COPYING)f(PIXELS)298 b FC(123)p 278
242 1180 2 v 277 299 2 57 v 303 282 a(P)o(arameter)14
b(Name)p 664 299 V 75 w(T)o(yp)q(e)p 868 299 V 76 w(Initial)j(V)l(alue)
p 1164 299 V 51 w(V)l(alid)g(Range)p 1456 299 V 278 301
1180 2 v 278 309 V 277 365 2 57 v 314 348 a Fr(PACK)p
405 348 14 2 v 15 w(SWAP)p 508 348 V 15 w(BYTES)p 664
365 2 57 v 59 w FC(b)q(o)q(olean)p 868 365 V 120 w Fr(FALSE)p
1164 365 V 129 w(TRUE)p FC(/)p Fr(FALSE)p 1456 365 V
278 367 1180 2 v 277 423 2 57 v 325 406 a(PACK)p 416
406 14 2 v 15 w(LSB)p 497 406 V 15 w(FIRST)p 664 423
2 57 v 70 w FC(b)q(o)q(olean)p 868 423 V 120 w Fr(FALSE)p
1164 423 V 129 w(TRUE)p FC(/)p Fr(FALSE)p 1456 423 V
278 425 1180 2 v 277 482 2 57 v 314 465 a(PACK)p 405
465 14 2 v 15 w(ROW)p 486 465 V 15 w(LENGTH)p 664 482
2 57 v 69 w FC(in)o(teger)p 868 482 V 171 w(0)p 1164
482 V 223 w([0)p Fy(;)8 b FB(1)p FC(\))p 1456 482 V 278
483 1180 2 v 277 540 2 57 v 325 523 a Fr(PACK)p 416 523
14 2 v 15 w(SKIP)p 519 523 V 14 w(ROWS)p 664 540 2 57
v 81 w FC(in)o(teger)p 868 540 V 171 w(0)p 1164 540 V
223 w([0)p Fy(;)g FB(1)p FC(\))p 1456 540 V 278 541 1180
2 v 277 598 2 57 v 303 581 a Fr(PACK)p 394 581 14 2 v
15 w(SKIP)p 497 581 V 15 w(PIXELS)p 664 598 2 57 v 58
w FC(in)o(teger)p 868 598 V 171 w(0)p 1164 598 V 223
w([0)p Fy(;)g FB(1)p FC(\))p 1456 598 V 278 599 1180
2 v 277 656 2 57 v 322 639 a Fr(PACK)p 413 639 14 2 v
15 w(ALIGNMENT)p 664 656 2 57 v 76 w FC(in)o(teger)p
868 656 V 171 w(4)p 1164 656 V 218 w(1,2,4,8)p 1456 656
V 278 658 1180 2 v 245 735 a(T)l(able)16 b(4.5:)j Fz(PixelStore)c
FC(parameters)g(p)q(ertaining)h(to)f Fz(ReadPixels)p
FC(.)191 917 y(Pixels)h(are)f(read)g(using)234 1005 y
Fw(void)28 b Fz(ReadPixels)p FC(\()g Fw(int)14 b Fv(x)p
Fw(,)g(int)g Fv(y)p Fw(,)g(sizei)g Fv(width)p Fw(,)h(sizei)e
Fv(height)p Fw(,)302 1061 y(enum)i Fv(format)p Fw(,)h(enum)e
Fv(typ)n(e)p Fw(,)h(void)g Fv(*data)h FC(\))f Fw(;)120
1149 y FC(The)g(argumen)o(ts)e(after)g Fv(x)h FC(and)h
Fv(y)f FC(to)f Fz(ReadPixels)i FC(corresp)q(ond)f(to)g(those)f(of)h
Fz(Dra)o(w-)120 1205 y(Pixels)p FC(.)19 b(The)11 b(pixel)i(storage)d
(mo)q(des)h(that)f(apply)i(to)f Fz(ReadPixels)g FC(are)g(summarized)120
1262 y(in)16 b(T)l(able)g(4.5.)120 1380 y Fz(Obtaining)k(Pixels)d(from)
g(the)h(F)l(ramebu\013er)120 1466 y FC(If)g(the)g Fv(format)h
FC(is)f Fr(DEPTH)p 560 1466 14 2 v 15 w(COMPONENT)p FC(,)d(then)j(v)m
(alues)h(are)f(obtained)g(from)f(the)h(depth)120 1523
y(bu\013er.)29 b(If)19 b(there)f(is)h(no)f(depth)h(bu\013er,)g(the)f
(error)g Fr(INVALID)p 1192 1523 V 14 w(OPERATION)e FC(o)q(ccurs.)29
b(If)120 1579 y(the)18 b Fv(format)g FC(is)g Fr(STENCIL)p
555 1579 V 14 w(INDEX)p FC(,)e(then)i(v)m(alues)h(are)e(tak)o(en)g
(from)g(the)g(stencil)i(bu\013er;)120 1636 y(again,)e(if)f(there)h(is)g
(no)f(stencil)i(bu\013er,)e(the)g(error)g Fr(INVALID)p
1163 1636 V 14 w(OPERATION)f FC(o)q(ccurs.)23 b(F)l(or)120
1692 y(all)d(other)e(formats,)g(the)h(bu\013er)f(from)g(whic)o(h)i(v)m
(alues)g(are)e(obtained)h(is)h(one)e(of)h(the)120 1749
y(color)d(bu\013ers;)e(the)i(selection)g(of)f(color)g(bu\013er)g(is)h
(con)o(trolled)g(with)g Fz(ReadBu\013er)p FC(.)191 1805
y(The)f(command)234 1893 y Fw(void)30 b Fz(ReadBu\013er)p
FC(\()g Fw(enum)14 b Fv(sr)n(c)h FC(\))f Fw(;)120 1980
y FC(tak)o(es)g(a)g(sym)o(b)q(olic)h(constan)o(t)f(as)g(argumen)o(t.)k
(The)d(p)q(ossible)h(v)m(alues)f(are)f Fr(FRONT)p 1503
1980 V 15 w(LEFT)p FC(,)120 2037 y Fr(FRONT)p 233 2037
V 15 w(RIGHT)p FC(,)26 b Fr(BACK)p 485 2037 V 15 w(LEFT)p
FC(,)g Fr(BACK)p 715 2037 V 15 w(RIGHT)p FC(,)f Fr(FRONT)p
FC(,)h Fr(BACK)p FC(,)g Fr(LEFT)p FC(,)g Fr(RIGHT)p FC(,)g(and)i
Fr(AUX0)120 2093 y FC(through)22 b Fr(AUX)p Fh(n)p FC(.)41
b Fr(FRONT)21 b FC(and)i Fr(LEFT)e FC(refer)h(to)g(the)h(fron)o(t)e
(left)i(bu\013er,)g Fr(BACK)f FC(refers)120 2149 y(to)15
b(the)g(bac)o(k)g(left)g(bu\013er,)f(and)i Fr(RIGHT)d
FC(refers)i(to)f(the)h(fron)o(t)f(righ)o(t)h(bu\013er.)20
b(The)15 b(other)120 2206 y(constan)o(ts)c(corresp)q(ond)h(directly)h
(to)e(the)g(bu\013ers)h(that)f(they)g(name.)19 b(If)12
b(the)f(requested)120 2262 y(bu\013er)19 b(is)g(missing,)h(then)f(the)g
(error)e Fr(INVALID)p 942 2262 V 15 w(OPERATION)f FC(is)j(generated.)30
b(The)19 b(ini-)120 2319 y(tial)j(setting)e(for)g Fz(ReadBu\013er)h
FC(is)g Fr(FRONT)f FC(if)h(there)g(is)g(no)g(bac)o(k)f(bu\013er)h(and)g
Fr(BACK)120 2375 y FC(otherwise.)191 2432 y Fz(ReadPixels)12
b FC(obtains)g(v)m(alues)h(from)e(the)h(selected)h(bu\013er)f(from)f
(eac)o(h)h(pixel)h(with)120 2488 y(lo)o(w)o(er)20 b(left)h(hand)g
(corner)f(at)f(\()p Fy(x)13 b FC(+)h Fy(i;)8 b(y)15 b
FC(+)e Fy(j)s FC(\))20 b(for)f(0)i FB(\024)g Fy(i)g(<)h(w)q(idth)d
FC(and)i(0)g FB(\024)g Fy(j)i(<)p eop
%%Page: 124 133
124 132 bop 332 137 a FC(124)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)332 286 y
Fy(heig)r(ht)p FC(;)h(this)h(pixel)h(is)f(said)f(to)g(b)q(e)h(the)f
Fy(i)p FC(th)g(pixel)i(in)f(the)f Fy(j)s FC(th)g(ro)o(w.)22
b(If)16 b(an)o(y)g(of)g(these)332 343 y(pixels)k(lies)f(outside)g(of)e
(the)h(windo)o(w)g(allo)q(cated)h(to)f(the)g(curren)o(t)g(GL)g(con)o
(text,)f(the)332 399 y(v)m(alues)i(obtained)g(for)f(those)g(pixels)i
(are)e(unde\014ned.)30 b(Results)20 b(are)d(also)i(unde\014ned)332
456 y(for)14 b(individual)k(pixels)f(that)d(are)h(not)f(o)o(wned)h(b)o
(y)g(the)g(curren)o(t)g(con)o(text.)k(Otherwise,)332
512 y Fz(ReadPixels)13 b FC(obtains)f(v)m(alues)i(from)d(the)i
(selected)g(bu\013er,)g(regardless)f(of)g(ho)o(w)g(those)332
569 y(v)m(alues)k(w)o(ere)f(placed)i(there.)403 626 y(If)12
b(the)g(GL)h(is)f(in)h(R)o(GBA)f(mo)q(de,)h(and)f Fv(format)h
FC(is)g(one)f(of)g Fr(RED)p FC(,)f Fr(GREEN)p FC(,)g
Fr(BLUE)p FC(,)g Fr(ALPHA)p FC(,)332 683 y Fr(RGB)p FC(,)16
b Fr(RGBA)p FC(,)g Fr(LUMINANCE)p FC(,)f(or)i Fr(LUMINANCE)p
1029 683 14 2 v 14 w(ALPHA)p FC(,)e(then)j(red,)f(green,)h(blue,)h(and)
e(alpha)332 739 y(v)m(alues)j(are)e(obtained)h(from)e(the)i(selected)g
(bu\013er)g(at)e(eac)o(h)i(pixel)h(lo)q(cation.)30 b(If)18
b(the)332 796 y(framebu\013er)h(do)q(es)g(not)g(supp)q(ort)h(alpha)f(v)
m(alues)i(then)e(the)h(A)f(that)f(is)i(obtained)g(is)332
852 y(1.0.)j(If)17 b Fv(format)g FC(is)g Fr(COLOR)p 782
852 V 15 w(INDEX)f FC(and)g(the)h(GL)g(is)g(in)g(R)o(GBA)g(mo)q(de)g
(then)f(the)h(error)332 908 y Fr(INVALID)p 489 908 V
14 w(OPERATION)e FC(o)q(ccurs.)24 b(If)17 b(the)g(GL)g(is)g(in)g(color)
g(index)h(mo)q(de,)f(and)g Fv(format)g FC(is)332 965
y(not)h Fr(DEPTH)p 529 965 V 14 w(COMPONENT)f FC(or)g
Fr(STENCIL)p 970 965 V 14 w(INDEX)p FC(,)g(then)h(the)g(color)g(index)i
(is)e(obtained)h(at)332 1021 y(eac)o(h)c(pixel)i(lo)q(cation.)332
1147 y Fz(Con)o(v)o(ersion)f(of)h(R)o(GBA)g(v)m(alues)332
1235 y FC(This)f(step)e(applies)j(only)e(if)h(the)f(GL)g(is)g(in)h(R)o
(GBA)f(mo)q(de,)g(and)g(then)g(only)g(if)h Fv(format)332
1291 y FC(is)j(neither)h Fr(STENCIL)p 696 1291 V 14 w(INDEX)d
FC(nor)i Fr(DEPTH)p 1032 1291 V 14 w(COMPONENT)p FC(.)e(The)h(R,)h(G,)f
(B,)g(and)h(A)f(v)m(alues)332 1348 y(form)13 b(a)g(group)g(of)g(elemen)
o(ts.)20 b(Eac)o(h)13 b(elemen)o(t)h(is)g(tak)o(en)f(to)f(b)q(e)i(a)f
(\014xed-p)q(oin)o(t)i(v)m(alue)g(in)332 1404 y([0,1])f(with)h
Fy(m)g FC(bits,)g(where)h Fy(m)f FC(is)h(the)f(n)o(um)o(b)q(er)g(of)g
(bits)h(in)g(the)f(corresp)q(onding)h(color)332 1461
y(comp)q(onen)o(t)f(of)g(the)g(selected)i(bu\013er)e(\(see)g(section)h
(2.13.9\).)332 1586 y Fz(Con)o(v)o(ersion)g(of)h(Depth)h(v)m(alues)332
1674 y FC(This)f(step)e(applies)j(only)e(if)g Fv(format)h
FC(is)f Fr(DEPTH)p 1135 1674 V 15 w(COMPONENT)p FC(.)e(An)i(elemen)o(t)
g(is)h(tak)o(en)e(to)332 1730 y(b)q(e)g(a)f(\014xed-p)q(oin)o(t)h(v)m
(alue)g(in)g([0,1])e(with)h Fy(m)g FC(bits,)h(where)f
Fy(m)g FC(is)h(the)f(n)o(um)o(b)q(er)g(of)g(bits)h(in)332
1787 y(the)g(depth)h(bu\013er)f(\(see)g(section)h(2.10.1\).)332
1913 y Fz(Pixel)i(T)l(ransfer)e(Op)q(erations)332 2000
y FC(This)g(step)f(is)h(actually)g(the)g(sequence)g(of)f(steps)h(that)e
(w)o(as)h(describ)q(ed)i(separately)f(in)332 2057 y(section)j(3.6.4.)27
b(After)18 b(the)g(pro)q(cessing)h(describ)q(ed)h(in)f(that)e(section)i
(is)g(completed,)332 2113 y(groups)c(are)g(pro)q(cessed)h(as)f(describ)
q(ed)i(in)f(the)f(follo)o(wing)h(sections.)332 2239 y
Fz(Con)o(v)o(ersion)g(to)i(L)332 2327 y FC(This)e(step)g(applies)h
(only)g(to)e(R)o(GBA)h(comp)q(onen)o(t)f(groups,)h(and)f(only)i(if)f
(the)g Fv(format)332 2383 y FC(is)g(either)g Fr(LUMINANCE)d
FC(or)i Fr(LUMINANCE)p 975 2383 V 14 w(ALPHA)p FC(.)e(A)i(v)m(alue)i(L)
e(is)h(computed)g(as)924 2488 y Fy(L)d FC(=)g Fy(R)d
FC(+)g Fy(G)g FC(+)h Fy(B)p eop
%%Page: 125 134
125 133 bop 120 137 a Fx(4.3.)34 b(DRA)-5 b(WING,)15
b(READING,)g(AND)h(COPYING)f(PIXELS)298 b FC(125)p 551
242 634 2 v 550 299 2 57 v 576 282 a Fv(typ)n(e)15 b
FC(P)o(arameter)p 901 299 V 49 w(Index)h(Mask)p 1183
299 V 551 301 634 2 v 551 309 V 550 365 2 57 v 588 348
a Fr(UNSIGNED)p 767 348 14 2 v 14 w(BYTE)p 901 365 2
57 v 61 w FC(2)950 332 y Fq(8)979 348 y FB(\000)11 b
FC(1)p 1183 365 V 551 367 634 2 v 550 423 2 57 v 661
406 a Fr(BITMAP)p 901 423 V 134 w FC(1)p 1183 423 V 551
425 634 2 v 550 482 2 57 v 683 465 a Fr(BYTE)p 901 482
V 156 w FC(2)950 448 y Fq(7)979 465 y FB(\000)g FC(1)p
1183 482 V 551 483 634 2 v 550 540 2 57 v 577 523 a Fr(UNSIGNED)p
756 523 14 2 v 14 w(SHORT)p 901 540 2 57 v 50 w FC(2)950
506 y Fq(16)997 523 y FB(\000)f FC(1)p 1183 540 V 551
541 634 2 v 550 598 2 57 v 672 581 a Fr(SHORT)p 901 598
V 145 w FC(2)950 564 y Fq(15)997 581 y FB(\000)g FC(1)p
1183 598 V 551 599 634 2 v 550 656 2 57 v 599 639 a Fr(UNSIGNED)p
778 639 14 2 v 14 w(INT)p 901 656 2 57 v 72 w FC(2)950
622 y Fq(32)997 639 y FB(\000)g FC(1)p 1183 656 V 551
658 634 2 v 550 714 2 57 v 694 697 a Fr(INT)p 901 714
V 167 w FC(2)950 681 y Fq(31)997 697 y FB(\000)g FC(1)p
1183 714 V 551 716 634 2 v 120 793 a(T)l(able)18 b(4.6:)j(Index)d
(masks)d(used)i(b)o(y)g Fz(ReadPixels)p FC(.)24 b(Floating)16
b(p)q(oin)o(t)h(data)f(are)g(not)120 849 y(mask)o(ed.)120
1051 y(where)k Fy(R)p FC(,)g Fy(G)p FC(,)f(and)g Fy(B)j
FC(are)d(the)h(v)m(alues)g(of)f(the)g(R,)g(G,)g(and)g(B)h(comp)q(onen)o
(ts.)31 b(The)120 1108 y(single)17 b(computed)f(L)g(comp)q(onen)o(t)g
(replaces)h(the)e(R,)h(G,)f(and)h(B)f(comp)q(onen)o(ts)h(in)h(the)120
1164 y(group.)120 1351 y Fz(Final)i(Con)o(v)o(ersion)120
1459 y FC(F)l(or)e(an)h(index,)h(if)f(the)g Fv(typ)n(e)g
FC(is)g(not)f Fr(FLOAT)p FC(,)f(\014nal)j(con)o(v)o(ersion)f(consists)f
(of)h(masking)120 1516 y(the)23 b(index)g(with)g(the)f(v)m(alue)h(giv)o
(en)g(T)l(able)g(4.6;)i(if)d(the)g Fv(typ)n(e)h FC(is)f
Fr(FLOAT)p FC(,)f(then)i(the)120 1572 y(in)o(teger)g(index)h(is)g(con)o
(v)o(erted)e(to)g(a)h(GL)f(\015oat)h(data)f(v)m(alue.)43
b(F)l(or)23 b(a)f(comp)q(onen)o(t,)120 1629 y(eac)o(h)16
b(comp)q(onen)o(t)f(is)h(\014rst)e(clamp)q(ed)j(to)d([0)p
Fy(;)8 b FC(1].)18 b(Then,)d(the)g(appropriate)h(con)o(v)o(ersion)120
1685 y(form)o(ula)f(from)g(T)l(able)h(4.7)e(is)i(applied)h(to)d(the)h
(comp)q(onen)o(t.)120 1872 y Fz(Placemen)o(t)j(in)g(Clien)o(t)g(Memory)
120 1980 y FC(Groups)c(of)g(elemen)o(ts)g(are)g(placed)h(in)g(memory)f
(just)f(as)h(they)g(are)g(tak)o(en)f(from)h(mem-)120
2037 y(ory)i(for)f Fz(Dra)o(wPixels)p FC(.)20 b(That)c(is,)g(the)f
Fy(i)p FC(th)h(group)f(of)h(the)f Fy(j)s FC(th)g(ro)o(w)g(\(corresp)q
(onding)120 2093 y(to)d(the)h Fy(i)p FC(th)f(pixel)i(in)g(the)f
Fy(j)s FC(th)e(ro)o(w\))h(is)h(placed)h(in)f(memory)f(just)g(where)h
(the)g Fy(i)p FC(th)f(group)120 2149 y(of)k(the)f Fy(j)s
FC(th)g(ro)o(w)g(w)o(ould)g(b)q(e)i(tak)o(en)e(from)g(for)g
Fz(Dra)o(wPixels)p FC(.)20 b(See)c Fz(Unpac)o(king)g
FC(un-)120 2206 y(der)h(section)h(3.6.3.)k(The)17 b(only)g
(di\013erence)h(is)f(that)f(the)h(storage)f(mo)q(de)h(parameters)120
2262 y(whose)h(names)g(b)q(egin)i(with)e Fr(PACK)p 722
2262 14 2 v 33 w FC(are)g(used)h(instead)f(of)g(those)g(whose)g(names)g
(b)q(e-)120 2319 y(gin)j(with)g Fr(UNPACK)p 445 2319
V 15 w FC(.)35 b(If)21 b(the)f Fv(format)i FC(is)f Fr(RED)p
FC(,)e Fr(GREEN)p FC(,)g Fr(BLUE)p FC(,)g Fr(ALPHA)p
FC(,)g(or)h Fr(LUMINANCE)p FC(,)120 2375 y(only)e(the)g(corresp)q
(onding)g(single)g(elemen)o(t)g(is)g(written.)26 b(Lik)o(ewise)19
b(if)f(the)f Fv(format)h FC(is)120 2432 y Fr(LUMINANCE)p
321 2432 V 14 w(ALPHA)g FC(or)g Fr(RGB)p FC(,)g(only)h(the)g(corresp)q
(onding)g(t)o(w)o(o)f(or)g(three)h(elemen)o(ts)g(are)120
2488 y(written.)h(Otherwise)c(all)g(the)g(elemen)o(ts)g(of)e(eac)o(h)i
(group)f(are)f(written.)p eop
%%Page: 126 135
126 134 bop 332 137 a FC(126)208 b Fx(CHAPTER)15 b(4.)35
b(FRA)o(GMENTS)15 b(AND)g(THE)g(FRAMEBUFFER)p 386 242
1388 2 v 385 299 2 57 v 411 282 a Fv(typ)n(e)g FC(P)o(arameter)p
735 299 V 48 w(GL)g(Data)f(T)o(yp)q(e)p 1080 299 V 50
w(Comp)q(onen)o(t)h(Con)o(v)o(ersion)g(F)l(orm)o(ula)p
1772 299 V 386 301 1388 2 v 386 309 V 385 365 2 57 v
422 348 a Fr(UNSIGNED)p 601 348 14 2 v 14 w(BYTE)p 735
365 2 57 v 153 w FC(ub)o(yte)p 1080 365 V 141 w Fy(c)e
FC(=)g(\(2)1227 332 y Fq(8)1256 348 y FB(\000)d FC(1\))p
Fy(f)p 1772 365 V 386 367 1388 2 v 385 423 2 57 v 517
406 a Fr(BYTE)p 735 423 V 260 w FC(b)o(yte)p 1080 423
V 154 w Fy(c)j FC(=)g([\(2)1240 390 y Fq(8)1269 406 y
FB(\000)d FC(1\))p Fy(f)15 b FB(\000)10 b FC(1])p Fy(=)p
FC(2)p 1772 423 V 386 425 1388 2 v 385 482 2 57 v 411
465 a Fr(UNSIGNED)p 590 465 14 2 v 14 w(SHORT)p 735 482
2 57 v 134 w FC(ushort)p 1080 482 V 133 w Fy(c)j FC(=)g(\(2)1227
448 y Fq(16)1274 465 y FB(\000)d FC(1\))p Fy(f)p 1772
482 V 386 483 1388 2 v 385 540 2 57 v 506 523 a Fr(SHORT)p
735 540 V 242 w FC(short)p 1080 540 V 145 w Fy(c)j FC(=)g([\(2)1240
506 y Fq(16)1286 523 y FB(\000)e FC(1\))p Fy(f)j FB(\000)d
FC(1])p Fy(=)p FC(2)p 1772 540 V 386 541 1388 2 v 385
598 2 57 v 433 581 a Fr(UNSIGNED)p 612 581 14 2 v 14
w(INT)p 735 598 2 57 v 180 w FC(uin)o(t)p 1080 598 V
157 w Fy(c)i FC(=)g(\(2)1227 564 y Fq(32)1274 581 y FB(\000)d
FC(1\))p Fy(f)p 1772 598 V 386 599 1388 2 v 385 656 2
57 v 528 639 a Fr(INT)p 735 656 V 287 w FC(in)o(t)p 1080
656 V 170 w Fy(c)j FC(=)g([\(2)1240 622 y Fq(32)1286
639 y FB(\000)e FC(1\))p Fy(f)j FB(\000)d FC(1])p Fy(=)p
FC(2)p 1772 656 V 386 658 1388 2 v 385 714 2 57 v 506
697 a Fr(FLOAT)p 735 714 V 248 w FC(\015oat)p 1080 714
V 152 w Fy(c)i FC(=)g Fy(f)p 1772 714 V 386 716 1388
2 v 332 793 a FC(T)l(able)20 b(4.7:)27 b(Rev)o(ersed)20
b(comp)q(onen)o(t)f(con)o(v)o(ersions)h(-)f(used)h(when)g(comp)q(onen)o
(t)f(data)332 849 y(are)14 b(b)q(eing)h(returned)f(to)f(clien)o(t)j
(memory)l(.)j(Color,)13 b(normal,)h(and)g(depth)g(comp)q(onen)o(ts)332
906 y(are)f(con)o(v)o(erted)g(from)f(the)h(in)o(ternal)h(\015oating-p)q
(oin)o(t)g(represen)o(tation)f(\()p Fy(f)5 b FC(\))12
b(to)h(a)g(datum)332 962 y(of)f(the)h(sp)q(eci\014ed)i(GL)e(data)f(t)o
(yp)q(e)g(\()p Fy(c)p FC(\))g(using)h(the)g(equations)g(in)h(this)f
(table.)19 b(All)14 b(arith-)332 1019 y(metic)h(is)f(done)h(in)f(the)h
(in)o(ternal)f(\015oating)g(p)q(oin)o(t)h(format.)j(These)d(con)o(v)o
(ersions)f(apply)332 1075 y(to)19 b(comp)q(onen)o(t)h(data)f(returned)h
(b)o(y)g(GL)g(query)g(commands)f(and)h(to)f(comp)q(onen)o(ts)332
1132 y(of)g(pixel)i(data)d(returned)i(to)e(clien)o(t)j(memory)l(.)31
b(The)19 b(equations)h(remain)g(the)f(same)332 1188 y(ev)o(en)f(if)g
(the)f(implemen)o(ted)i(ranges)e(of)g(the)g(GL)h(data)e(t)o(yp)q(es)i
(are)f(greater)f(than)h(the)332 1245 y(minim)o(um)f(required)h(ranges.)
i(\(Refer)d(to)e(table)i(2.2\))332 1432 y Fl(4.3.3)55
b(Cop)n(ying)19 b(Pixels)332 1517 y Fz(Cop)o(yPixels)h
FC(transfers)g(a)h(rectangle)h(of)e(pixel)j(v)m(alues)g(from)d(one)h
(region)h(of)e(the)332 1574 y(framebu\013er)15 b(to)f(another.)20
b(Pixel)c(cop)o(ying)g(is)g(diagrammed)f(in)h(Figure)f(4.3.)446
1664 y Fw(void)27 b Fz(Cop)o(yPixels)p FC(\()g Fw(int)13
b Fv(x)p Fw(,)i(int)e Fv(y)p Fw(,)h(sizei)g Fv(width)p
Fw(,)g(sizei)g Fv(height)p Fw(,)514 1720 y(enum)h Fv(typ)n(e)g
FC(\))f Fw(;)332 1811 y Fv(typ)n(e)k FC(is)h(a)g(sym)o(b)q(olic)g
(constan)o(t)f(that)g(m)o(ust)g(b)q(e)h(one)f(of)g Fr(COLOR)p
FC(,)f Fr(STENCIL)p FC(,)g(or)h Fr(DEPTH)p FC(,)332 1867
y(indicating)12 b(that)e(the)h(v)m(alues)g(to)f(b)q(e)h(transferred)f
(are)g(colors,)h(stencil)h(v)m(alues,)g(or)e(depth)332
1924 y(v)m(alues,)17 b(resp)q(ectiv)o(ely)l(.)25 b(The)16
b(\014rst)g(four)f(argumen)o(ts)h(ha)o(v)o(e)f(the)h(same)g(in)o
(terpretation)332 1980 y(as)f(the)g(corresp)q(onding)h(argumen)o(ts)f
(to)f Fz(ReadPixels)p FC(.)403 2037 y(V)l(alues)22 b(are)f(obtained)h
(from)e(the)i(framebu\013er,)g(con)o(v)o(erted)f(\(if)g(appropriate\),)
332 2093 y(then)k(sub)s(jected)g(to)f(the)h(pixel)h(transfer)e(op)q
(erations)h(\(see)g(section)g(3.6.4\),)g(just)332 2149
y(as)c(if)h Fz(ReadPixels)f FC(w)o(ere)g(called)i(with)e(the)h(corresp)
q(onding)g(argumen)o(ts.)37 b(If)21 b(the)332 2206 y
Fv(typ)n(e)e FC(is)g Fr(STENCIL)e FC(or)h Fr(DEPTH)p
FC(,)f(then)i(it)g(is)g(as)f(if)h(the)g Fv(format)h FC(for)e
Fz(ReadPixels)h FC(w)o(ere)332 2262 y Fr(STENCIL)p 489
2262 14 2 v 14 w(INDEX)c FC(or)g Fr(DEPTH)p 794 2262
V 15 w(COMPONENT)p FC(,)e(resp)q(ectiv)o(ely)l(.)23 b(If)16
b(the)g Fv(typ)n(e)g FC(is)g Fr(COLOR)p FC(,)e(then)i(if)332
2319 y(the)g(GL)h(is)f(in)h(R)o(GBA)g(mo)q(de,)f(it)g(is)h(as)f(if)h
(the)f Fv(format)h FC(w)o(ere)f Fr(RGBA)p FC(,)f(while)i(if)g(the)f(GL)
332 2375 y(is)g(in)g(color)f(index)i(mo)q(de,)e(it)g(is)h(as)f(if)g
(the)h Fv(format)g FC(w)o(ere)e Fr(COLOR)p 1431 2375
V 15 w(INDEX)p FC(.)403 2432 y(The)h(groups)h(of)f(elemen)o(ts)h(so)f
(obtained)h(are)f(then)h(written)g(to)e(the)i(framebu\013er)332
2488 y(just)j(as)g(if)g Fz(Dra)o(wPixels)g FC(had)g(b)q(een)h(giv)o(en)
g Fy(w)q(idth)f FC(and)g Fy(heig)r(ht)p FC(,)h(b)q(eginning)h(with)p
eop
%%Page: 127 136
127 135 bop 120 137 a Fx(4.3.)34 b(DRA)-5 b(WING,)15
b(READING,)g(AND)h(COPYING)f(PIXELS)298 b FC(127)p 139
242 1459 2 v 139 1262 2 1020 v 193 317 a
21313290 10230372 263127 15656058 48875847 39074365 startTexFig
193 317 a
%%BeginDocument: pics/pixcopy.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/pmask34 {
<aaaa0000aaaa0000aaaa0000aaaa0000
aaaa0000aaaa0000aaaa0000aaaa0000>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 66 /patchar34 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar34 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask34 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
162 580.5 M
198 580.5 L
198 261 L
234 261 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
468 580.5 M
522 580.5 L
522 261 L
576 261 L
stroke
grestore
gsave
matrix currentmatrix
[486 0 0 -207 117 495] concat
B
setmatrix
/PatternFont findfont 16.08 scalefont setfont
clip
0 0 0 setrgbcolor
256 16.08 512 {
96 exch M
(BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)
show
} for
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 549] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 495] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 492 M 141 543 L 255 543 L 255 492 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 495] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
28.716 33.4706 M (convert) 50.568 S
31.054 19.4706 M (to [0,1]) 45.892 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 459] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 144 405] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
141 402 M 141 453 L 255 453 L 255 402 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 144 405] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
36.486 33.4706 M (scale) 35.028 S
25.601 19.4706 M (and bias) 56.798 S
setmatrix
grestore
gsave
matrix currentmatrix
[108 0 0 -45 144 369] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 135 315] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
132 312 M 132 363 L 264 363 L 264 312 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 135 315] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
11.284 33.4706 M (RGBA to RGBA ) 107.324 S
40.054 19.4706 M (lookup) 45.892 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 567 M
198 549 L
202.5 567 L
198 564 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 567 M
198 549 L
202.5 567 L
198 564 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 477 M
198 459 L
202.5 477 L
198 474 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 477 M
198 459 L
202.5 477 L
198 474 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
193.5 387 M
198 369 L
202.5 387 L
198 384 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
193.5 387 M
198 369 L
202.5 387 L
198 384 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 459] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 468 405] concat
newpath
0 0 M 0 45 L 108 45 L 108 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
465 402 M 465 453 L 579 453 L 579 402 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 468 405] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
39.223 33.4706 M (shift) 29.554 S
20.554 19.4706 M (and offset) 66.892 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 477 M
522 459 L
526.5 477 L
522 474 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 477 M
522 459 L
526.5 477 L
522 474 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 468 369] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 459 315] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
456 312 M 456 363 L 588 363 L 588 312 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 459 315] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
15.932 33.4706 M (index to index ) 98.028 S
40.054 19.4706 M (look) 28.784 S
68.838 19.4706 M (up) 17.108 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
517.5 387 M
522 369 L
526.5 387 L
522 384 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
517.5 387 M
522 369 L
526.5 387 L
522 384 L
closepath
stroke
grestore
gsave
matrix currentmatrix
[108 0 0 -45 306 369] concat
B
setmatrix
1 1 1 setrgbcolor
gsave fill grestore
0 0 0 setrgbcolor
3.000000 setlinewidth
[4] 0 setdash
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 297 315] concat
newpath
0 0 M 0 45 L 126 45 L 126 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
294 312 M 294 363 L 426 363 L 426 312 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 297 315] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
13.608 33.4706 M (index to RGBA ) 102.676 S
40.054 19.4706 M (looku) 37.338 S
77.392 19.4706 M (p) 8.554 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
355.5 387 M
360 369 L
364.5 387 L
360 384 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
355.5 387 M
360 369 L
364.5 387 L
360 384 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
360 324 M
360 306 L
198 306 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
522 396 M
360 396 L
360 369 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 288 427.5] concat
newpath
0 0 M 0 49.5 L 144 49.5 L 144 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
285.5 425 M 285.5 480.913 L 434.5 480.913 L 434.5 425 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 288 427.5] concat
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
12.474 35.413 M (Pixel Transfer) 119.052 S
24.489 17.413 M (Operations) 95.022 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 4.49998 558] concat
newpath
0 0 M 0 36 L 157.5 36 L 157.5 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
1.99998 555.5 M 1.99998 596.5 L 164.5 596.5 L 164.5 555.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 4.49998 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
40.243 24.4706 M (RGBA pixel) 77.014 S
6.02001 10.4706 M (data from framebuff) 132.23 S
138.25 10.4706 M (er) 13.23 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 301.5 558] concat
newpath
0 0 M 0 36 L 180 36 L 180 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
299 555.5 M 299 596.5 L 484 596.5 L 484 555.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 301.5 558] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
34.756 24.4706 M (color index pixel) 110.488 S
17.27 10.4706 M (data from framebuff) 132.23 S
149.5 10.4706 M (er) 13.23 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
newpath
234 256.5 M
252 261 L
234 265.5 L
237 261 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
234 256.5 M
252 261 L
234 265.5 L
237 261 L
closepath
stroke
grestore
gsave
0 0 0 setrgbcolor
newpath
558 256.5 M
576 261 L
558 265.5 L
561 261 L
closepath
eofill
0 0 0 setrgbcolor
3.000000 setlinewidth
newpath
558 256.5 M
576 261 L
558 265.5 L
561 261 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 247.5 238.5] concat
newpath
0 0 M 0 36 L 157.5 36 L 157.5 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
245 236 M 245 277 L 407.5 277 L 407.5 236 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 247.5 238.5] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
40.243 24.4706 M (RGBA pixel) 77.014 S
14.966 10.4706 M (data to framebuffer) 127.568 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 562.5 238.5] concat
newpath
0 0 M 0 36 L 180 36 L 180 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
560 236 M 560 277 L 745 277 L 745 236 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 562.5 238.5] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
34.756 24.4706 M (color index pixel) 110.488 S
26.216 10.4706 M (data to framebuffer) 127.568 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
178 1083 a Fm(Figure)16 b(4.3.)22 b(Op)q(eration)17
b(of)e Fk(Cop)o(yPixels)p Fm(.)22 b(R)o(GBA)15 b(and)h(color)f(index)h
(pixel)f(paths)178 1133 y(are)i(sho)o(wn;)h(depth)f(and)g(stencil)g
(pixel)g(paths)g(are)g(not)g(sho)o(wn.)27 b(R)o(GBA-to-R)o(GBA)178
1183 y(and)13 b(index-to-index)g(lo)q(okup)g(are)h(optional.)i
(Index-to-R)o(GBA)d(lo)q(okup)g(is)h(curren)o(tly)178
1233 y(nev)o(er)g(p)q(erformed.)p 1595 1262 2 1020 v
139 1264 1459 2 v 120 1442 a FC(\014nal)f(con)o(v)o(ersion)f(of)g
(elemen)o(ts.)19 b(The)12 b(e\013ectiv)o(e)h Fv(format)f
FC(is)h(the)f(same)g(as)f(that)g(already)120 1499 y(describ)q(ed.)120
1620 y Fl(4.3.4)56 b(Pixel)17 b(dra)n(w/read)j(state)120
1706 y FC(The)d(state)g(required)h(for)e(pixel)i(op)q(erations)f
(consists)g(of)g(the)g(parameters)f(that)g(are)120 1763
y(set)e(with)h Fz(PixelStore)p FC(,)f Fz(PixelT)l(ransfer)p
FC(,)f(and)h Fz(PixelMap)p FC(.)20 b(This)15 b(state)e(has)h(b)q(een)
120 1819 y(summarized)f(in)g(T)l(ables)g(3.1,)e(3.2,)h(and)g(3.3.)18
b(The)12 b(curren)o(t)g(setting)h(of)e Fz(ReadBu\013er)p
FC(,)120 1876 y(a)k(t)o(w)o(elv)o(e-v)m(alued)i(in)o(teger,)e(is)g
(also)g(required,)h(along)f(with)h(the)f(curren)o(t)g(raster)f(p)q
(osi-)120 1932 y(tion)i(\(section)f(2.12\).)k(State)14
b(set)h(with)h Fz(PixelStore)f FC(is)h(GL)f(clien)o(t)i(state.)p
eop
%%Page: 128 137
128 136 bop 332 598 a Ft(Chapter)31 b(5)332 805 y FA(Sp)s(ecial)39
b(F)-10 b(unctions)332 1028 y FC(This)18 b(c)o(hapter)g(describ)q(es)h
(additional)g(GL)e(functionalit)o(y)i(that)e(do)q(es)h(not)f(\014t)g
(easily)332 1084 y(in)o(to)j(an)o(y)f(of)g(the)h(preceding)h(c)o
(hapters.)33 b(This)20 b(functionalit)o(y)h(consists)f(of)f(ev)m(alua-)
332 1141 y(tors)14 b(\(used)h(to)f(mo)q(del)i(curv)o(es)f(and)g
(surfaces\),)f(selection)i(\(used)f(to)f(lo)q(cate)i(rendered)332
1197 y(primitiv)o(es)g(on)e(the)h(screen\),)g(feedbac)o(k)f(\(whic)o(h)
i(returns)e(GL)g(results)h(b)q(efore)g(raster-)332 1254
y(ization\),)h(displa)o(y)h(lists)f(\(used)g(to)g(designate)g(a)f
(group)h(of)f(GL)h(commands)f(for)g(later)332 1310 y(execution)20
b(b)o(y)e(the)g(GL\),)g(\015ushing)i(and)f(\014nishing)h(\(used)f(to)e
(sync)o(hronize)j(the)e(GL)332 1367 y(command)d(stream\),)f(and)h(hin)o
(ts.)332 1510 y Fs(5.1)66 b(Ev)l(aluators)332 1611 y
FC(Ev)m(aluators)12 b(pro)o(vide)g(a)f(means)h(to)f(use)h(a)f(p)q
(olynomial)i(or)e(rational)h(p)q(olynomial)h(map-)332
1668 y(ping)19 b(to)e(pro)q(duce)i(v)o(ertex,)e(normal,)h(and)g
(texture)g(co)q(ordinates,)g(and)g(colors.)28 b(The)332
1724 y(v)m(alues)19 b(so)f(pro)q(duced)i(are)e(sen)o(t)g(on)g(to)f
(further)i(stages)e(of)h(the)g(GL)g(as)g(if)h(they)f(had)332
1781 y(b)q(een)j(pro)o(vided)f(directly)g(b)o(y)g(the)f(clien)o(t.)34
b(T)l(ransformations,)19 b(ligh)o(ting,)i(primitiv)o(e)332
1837 y(assem)o(bly)l(,)14 b(rasterization,)g(and)g(p)q(er-pixel)j(op)q
(erations)d(are)g(not)f(a\013ected)h(b)o(y)g(the)g(use)332
1894 y(of)h(ev)m(aluators.)403 1950 y(Consider)g(the)h
Fy(R)706 1934 y Fu(k)727 1950 y FC(-v)m(alued)h(p)q(olynomial)g
Fz(p)p FC(\()p Fy(u)p FC(\))d(de\014ned)j(b)o(y)883 2083
y Fz(p)p FC(\()p Fy(u)p FC(\))12 b(=)1053 2030 y Fu(n)1034
2042 y Fi(X)1035 2133 y Fu(i)p Fq(=0)1101 2083 y Fy(B)1137
2064 y Fu(n)1135 2094 y(i)1161 2083 y FC(\()p Fy(u)p
FC(\))p Fz(R)1262 2090 y Fu(i)1733 2083 y FC(\(5.1\))332
2227 y(with)k Fz(R)475 2234 y Fu(i)502 2227 y FB(2)c
Fy(R)579 2211 y Fu(k)616 2227 y FC(and)814 2312 y Fy(B)850
2293 y Fu(n)848 2323 y(i)874 2312 y FC(\()p Fy(u)p FC(\))g(=)996
2240 y Fi( )1029 2281 y Fy(n)1035 2343 y(i)1056 2240
y Fi(!)1089 2312 y Fy(u)1115 2293 y Fu(i)1129 2312 y
FC(\(1)e FB(\000)g Fy(u)p FC(\))1269 2293 y Fu(n)p FG(\000)p
Fu(i)1332 2312 y Fy(;)332 2432 y FC(the)17 b Fy(i)p FC(th)f(Bernstein)i
(p)q(olynomial)g(of)f(degree)g Fy(n)g FC(\(recall)g(that)g(0)1434
2415 y Fq(0)1468 2432 y FB(\021)f FC(1)g(and)1648 2397
y Fi(\000)1667 2412 y Fu(n)1669 2447 y Fq(0)1689 2397
y Fi(\001)1723 2432 y FB(\021)f FC(1\).)332 2488 y(Eac)o(h)g
Fz(R)484 2495 y Fu(i)514 2488 y FC(is)g(a)g Fv(c)n(ontr)n(ol)h(p)n
(oint)p FC(.)j(The)d(relev)m(an)o(t)f(command)g(is)1045
2613 y(128)p eop
%%Page: 129 138
129 137 bop 120 137 a Fx(5.1.)34 b(EV)-5 b(ALUA)l(TORS)1009
b FC(129)p 152 242 1433 2 v 151 299 2 57 v 176 282 a
Fv(tar)n(get)p 618 299 V 356 w Fy(k)p 693 299 V 51 w
FC(V)l(alues)p 1583 299 V 152 301 1433 2 v 152 309 V
151 365 2 57 v 176 348 a Fr(MAP1)p 267 348 14 2 v 15
w(VERTEX)p 414 348 V 15 w(3)p 618 365 2 57 v 197 w FC(3)p
693 365 V 51 w Fy(x)p FC(,)14 b Fy(y)r FC(,)h Fy(z)i
FC(v)o(ertex)e(co)q(ordinates)p 1583 365 V 152 367 1433
2 v 151 423 2 57 v 176 406 a Fr(MAP1)p 267 406 14 2 v
15 w(VERTEX)p 414 406 V 15 w(4)p 618 423 2 57 v 197 w
FC(4)p 693 423 V 51 w Fy(x)p FC(,)f Fy(y)r FC(,)h Fy(z)r
FC(,)g Fy(w)h FC(v)o(ertex)f(co)q(ordinates)p 1583 423
V 152 425 1433 2 v 151 482 2 57 v 176 465 a Fr(MAP1)p
267 465 14 2 v 15 w(INDEX)p 618 482 2 57 v 256 w FC(1)p
693 482 V 51 w(color)g(index)p 1583 482 V 152 483 1433
2 v 151 540 2 57 v 176 523 a Fr(MAP1)p 267 523 14 2 v
15 w(COLOR)p 392 523 V 15 w(4)p 618 540 2 57 v 219 w
FC(4)p 693 540 V 51 w(R,)g(G,)f(B,)h(A)p 1583 540 V 152
541 1433 2 v 151 598 2 57 v 176 581 a Fr(MAP1)p 267 581
14 2 v 15 w(NORMAL)p 618 598 2 57 v 234 w FC(3)p 693
598 V 51 w Fy(x)p FC(,)f Fy(y)r FC(,)h Fy(z)i FC(normal)f(co)q
(ordinates)p 1583 598 V 152 599 1433 2 v 151 656 2 57
v 176 639 a Fr(MAP1)p 267 639 14 2 v 15 w(TEXTURE)p 436
639 V 15 w(COORD)p 561 639 V 14 w(1)p 618 656 2 57 v
51 w FC(1)p 693 656 V 51 w Fy(s)f FC(texture)g(co)q(ordinate)p
1583 656 V 152 658 1433 2 v 151 714 2 57 v 176 697 a
Fr(MAP1)p 267 697 14 2 v 15 w(TEXTURE)p 436 697 V 15
w(COORD)p 561 697 V 14 w(2)p 618 714 2 57 v 51 w FC(2)p
693 714 V 51 w Fy(s)p FC(,)g Fy(t)g FC(texture)g(co)q(ordinates)p
1583 714 V 152 716 1433 2 v 151 772 2 57 v 176 755 a
Fr(MAP1)p 267 755 14 2 v 15 w(TEXTURE)p 436 755 V 15
w(COORD)p 561 755 V 14 w(3)p 618 772 2 57 v 51 w FC(3)p
693 772 V 51 w Fy(s)p FC(,)g Fy(t)p FC(,)g Fy(r)h FC(texture)f(co)q
(ordinates)p 1583 772 V 152 774 1433 2 v 151 830 2 57
v 176 813 a Fr(MAP1)p 267 813 14 2 v 15 w(TEXTURE)p 436
813 V 15 w(COORD)p 561 813 V 14 w(4)p 618 830 2 57 v
51 w FC(4)p 693 830 V 51 w Fy(s)p FC(,)g Fy(t)p FC(,)g
Fy(r)q FC(,)g Fy(q)i FC(texture)e(co)q(ordinates)p 1583
830 V 152 832 1433 2 v 120 959 a(T)l(able)i(5.1:)j(V)l(alues)d(sp)q
(eci\014ed)h(b)o(y)d(the)h Fv(tar)n(get)g FC(to)f Fz(Map1)p
FC(.)22 b(V)l(alues)16 b(are)g(giv)o(en)g(in)h(the)120
1015 y(order)e(in)h(whic)o(h)g(they)g(are)f(tak)o(en.)234
1142 y Fw(void)21 b Fz(Map1)p FB(f)p Fz(fd)p FB(g)p FC(\()g
Fw(enum)10 b Fv(typ)n(e)p Fw(,)h(T)g Fy(u)892 1149 y
Fq(1)912 1142 y Fw(,)g(T)g Fy(u)1008 1149 y Fq(2)1027
1142 y Fw(,)h(int)e Fv(stride)p Fw(,)i(int)e Fv(or)n(der)p
Fw(,)302 1199 y(T)15 b Fv(p)n(oints)g FC(\))g Fw(;)120
1279 y Fv(typ)n(e)i FC(is)f(a)g(sym)o(b)q(olic)i(constan)o(t)d
(indicating)j(the)f(range)f(of)f(the)i(de\014ned)g(p)q(olynomial.)120
1335 y(Its)d(p)q(ossible)i(v)m(alues,)f(along)f(with)g(the)g(ev)m
(aluations)h(that)e(eac)o(h)h(indicates,)i(are)d(giv)o(en)120
1392 y(in)k(T)l(able)g(5.1.)k Fy(or)q(der)16 b FC(is)g(equal)h(to)e
Fy(n)c FC(+)g(1;)k(The)h(error)f Fr(INVALID)p 1240 1392
14 2 v 15 w(VALUE)f FC(is)j(generated)120 1448 y(if)g
Fy(or)q(der)g FC(is)g(less)f(than)h(one)f(or)g(greater)f(than)h
Fr(MAX)p 1001 1448 V 15 w(EVAL)p 1104 1448 V 15 w(ORDER)p
FC(.)f Fv(p)n(oints)h FC(is)g(a)g(p)q(oin)o(ter)120 1505
y(to)d(a)h(set)f(of)g Fy(n)7 b FC(+)g(1)14 b(blo)q(c)o(ks)h(of)e
(storage.)18 b(Eac)o(h)c(blo)q(c)o(k)g(b)q(egins)h(with)f
Fy(k)h FC(single-precision)120 1561 y(\015oating-p)q(oin)o(t)22
b(or)f(double-precision)j(\015oating-p)q(oin)o(t)e(v)m(alues,)h(resp)q
(ectiv)o(ely)l(.)39 b(The)120 1618 y(rest)15 b(of)g(the)g(blo)q(c)o(k)h
(ma)o(y)e(b)q(e)i(\014lled)h(with)e(arbitrary)g(data.)k(T)l(able)d(5.1)
e(indicates)i(ho)o(w)120 1674 y Fy(k)h FC(dep)q(ends)f(on)g
Fv(typ)n(e)f FC(and)g(what)g(the)g Fy(k)h FC(v)m(alues)h(represen)o(t)e
(in)h(eac)o(h)f(case.)191 1731 y Fv(stride)d FC(is)g(the)g(n)o(um)o(b)q
(er)g(of)f(single-)j(or)d(double-precision)k(v)m(alues)e(\(as)e
(appropriate\))120 1787 y(in)i(eac)o(h)g(blo)q(c)o(k)g(of)e(storage.)18
b(The)12 b(error)g Fr(INVALID)p 965 1787 V 14 w(VALUE)f
FC(results)i(if)f Fv(stride)g FC(is)h(less)g(than)120
1843 y Fy(k)q FC(.)19 b(The)12 b(order)f(of)g(the)g(p)q(olynomial,)j
Fv(or)n(der)p FC(,)e(is)g(also)f(the)h(n)o(um)o(b)q(er)g(of)f(blo)q(c)o
(ks)h(of)f(storage)120 1900 y(con)o(taining)16 b(con)o(trol)f(p)q(oin)o
(ts.)191 1956 y Fy(u)217 1963 y Fq(1)251 1956 y FC(and)f
Fy(u)364 1963 y Fq(2)398 1956 y FC(giv)o(e)g(t)o(w)o(o)f(\015oating-p)q
(oin)o(t)h(v)m(alues)h(that)f(de\014ne)h(the)f(endp)q(oin)o(ts)h(of)f
(the)120 2013 y(pre-image)22 b(of)e(the)h(map.)37 b(When)22
b(a)e(v)m(alue)j Fy(u)945 1996 y FG(0)977 2013 y FC(is)f(presen)o(ted)f
(for)f(ev)m(aluation,)k(the)120 2069 y(form)o(ula)15
b(used)h(is)663 2139 y Fz(p)692 2120 y FG(0)704 2139
y FC(\()p Fy(u)748 2120 y FG(0)759 2139 y FC(\))d(=)g
Fz(p)p FC(\()893 2108 y Fy(u)919 2092 y FG(0)941 2108
y FB(\000)e Fy(u)1013 2115 y Fq(1)p 890 2129 148 2 v
890 2170 a Fy(u)916 2177 y Fq(2)945 2170 y FB(\000)g
Fy(u)1017 2177 y Fq(1)1041 2139 y FC(\))p Fy(:)120 2232
y FC(The)16 b(error)e Fr(INVALID)p 482 2232 14 2 v 15
w(VALUE)g FC(results)h(if)h Fy(u)830 2239 y Fq(1)862
2232 y FC(=)d Fy(u)936 2239 y Fq(2)956 2232 y FC(.)191
2288 y Fz(Map2)h FC(is)h(analogous)f(to)g Fz(Map1)p FC(,)g(except)h
(that)f(it)g(describ)q(es)i(biv)m(ariate)g(p)q(olyno-)120
2345 y(mials)g(of)f(the)g(form)536 2450 y Fz(p)p FC(\()p
Fy(u;)8 b(v)r FC(\))i(=)750 2397 y Fu(n)730 2409 y Fi(X)732
2500 y Fu(i)p Fq(=0)813 2397 y Fu(m)799 2409 y Fi(X)798
2500 y Fu(j)r Fq(=0)867 2450 y Fy(B)903 2431 y Fu(n)901
2461 y(i)927 2450 y FC(\()p Fy(u)p FC(\))p Fy(B)1025
2431 y Fu(m)1023 2461 y(j)1058 2450 y FC(\()p Fy(v)r
FC(\))p Fz(R)1157 2457 y Fu(ij)1187 2450 y Fy(:)p eop
%%Page: 130 139
130 138 bop 332 137 a FC(130)622 b Fx(CHAPTER)15 b(5.)35
b(SPECIAL)16 b(FUNCTIONS)p 350 242 1459 2 v 350 767 2
525 v 449 317 a
19892389 4774168 2039234 24339251 49336320 36048404 startTexFig
449 317 a
%%BeginDocument: pics/evalmaps.ps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Times-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Times-Bold-SHOWISO exch definefont pop
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Symbol findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
currentdict
end
/Symbol-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/saveit save def
gsave
gsave
matrix currentmatrix
[96 0 0 -112 176 528] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 31 447] concat
newpath
0 0 M 0 46 L 79.004 46 L 79.004 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
29 445 M 29 495 L 112.004 495 L 112.004 445 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 31 447] concat
/Times-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 26.4286 M (EvalMesh) 77.004 S
0 3.42857 M (EvalPoint) 76.014 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 187 390] concat
newpath
0 0 M 0 23 L 75.008 23 L 75.008 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
185 388 M 185 415 L 264.008 415 L 264.008 388 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 187 390] concat
/Times-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.42857 M (MapGrid) 73.008 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 459 390] concat
newpath
0 0 M 0 23 L 38 23 L 38 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
457 388 M 457 415 L 499 415 L 499 388 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 459 390] concat
/Times-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.42857 M (Map) 36 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 287 370] concat
newpath
0 0 M 0 23 L 86.006 23 L 86.006 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
285 368 M 285 395 L 375.006 395 L 375.006 368 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 287 370] concat
/Times-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
0 3.42857 M (EvalCoord) 84.006 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
177 472 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
72 472 M
158 472 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 163 478] concat
newpath
0 0 M 0 19 L 9.784 19 L 9.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
161 476 M 161 499 L 174.784 499 L 174.784 476 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 163 478] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (k) 7.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 163 446] concat
newpath
0 0 M 0 19 L 5.892 19 L 5.892 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
161 444 M 161 467 L 170.892 467 L 170.892 444 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 163 446] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (l) 3.892 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
200 496 M
248 496 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
200 480 M
248 480 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
200 464 M
248 464 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
200 448 M
248 448 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
208 440 M
208 504 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
224 440 M
224 504 L
stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
240 440 M
240 504 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
401 472 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
272 472 M
382 472 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 347 476] concat
newpath
0 0 M 0 23 L 45.668 23 L 45.668 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
345 473.471 M 345 501 L 394.668 501 L 394.668 473.471 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 347 476] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 6.47059 M ([u) 13.216 S
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
13.216 0.470589 M (1) 6.672 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
19.888 6.47059 M (,u) 12.446 S
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
32.334 0.470589 M (2) 6.672 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
39.006 6.47059 M (]) 4.662 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 347 436] concat
newpath
0 0 M 0 23 L 44.128 23 L 44.128 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
345 433.471 M 345 461 L 393.128 461 L 393.128 433.471 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 347 436] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 6.47059 M ([v) 12.446 S
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
12.446 0.470589 M (1) 6.672 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
19.118 6.47059 M (,v) 11.676 S
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
30.794 0.470589 M (2) 6.672 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
37.466 6.47059 M (]) 4.662 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
328 473 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
328 392 M
328 454 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
509 472 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
464 472 M
490 472 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 443 474] concat
newpath
0 0 M 0 19 L 30.784 19 L 30.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
441 472 M 441 495 L 475.784 495 L 475.784 472 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 443 474] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M ([0,1]) 28.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 443 450] concat
newpath
0 0 M 0 19 L 30.784 19 L 30.784 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
441 448 M 441 471 L 475.784 471 L 475.784 448 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 443 450] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M ([0,1]) 28.784 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 515 458] concat
newpath
0 0 M 0 27 L 43.096 27 L 43.096 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
513 456 M 513 488 L 560.096 488 L 560.096 456 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 515 458] concat
/Symbol findfont 24 scalefont setfont
0 0 0 setrgbcolor
0 6 M (S) 14.208 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
14.208 9 M (B) 10.108 S
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
24.316 3 M (i) 3.336 S
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
27.652 9 M (R) 10.108 S
/Helvetica-Bold-SHOWISO findfont 12 scalefont setfont
37.76 3 M (i) 3.336 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 403 462] concat
newpath
0 0 M 0 22 L 36.622 22 L 36.622 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
401 460 M 401 486 L 441.622 486 L 441.622 460 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 403 462] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Ax+b) 34.622 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
[2] 0 setdash
newpath
476 416 M
476 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
464 416 M
400 416 L
400 528 L
464 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
464 416 M
560 416 L
560 528 L
464 528 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
609 472 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
560 472 M
590 472 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 611 433] concat
newpath
0 0 M 0 88 L 138.136 88 L 138.136 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
609 431 M 609 523 L 751.136 523 L 751.136 431 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 611 433] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 68.4706 M (Vertices) 54.474 S
0 46.4706 M (Normals) 56.014 S
0 24.4706 M (Texture Coordinates) 136.136 S
0 2.47059 M (Colors) 44.338 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 75 526] concat
newpath
0 0 M 0 22 L 56.46 22 L 56.46 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
73 524 M 73 550 L 133.46 550 L 133.46 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 75 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Integers) 54.46 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 315 526] concat
newpath
0 0 M 0 22 L 39.352 22 L 39.352 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
313 524 M 313 550 L 356.352 550 L 356.352 524 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 315 526] concat
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 2.47059 M (Reals) 37.352 S
setmatrix
grestore
grestore
showpage
saveit restore
grestore
%%EndDocument
endTexFig
389 738 a Fm(Figure)e(5.1.)j(Map)d(Ev)n(aluation.)p
1807 767 2 525 v 350 769 1459 2 v 332 952 a FC(The)i(form)e(of)h(the)g
Fz(Map2)g FC(command)g(is)446 1055 y Fw(void)49 b Fz(Map2)p
FB(f)p Fz(fd)p FB(g)p FC(\()h Fw(enum)25 b Fv(tar)n(get)p
Fw(,)i(T)e Fy(u)1239 1062 y Fq(1)1259 1055 y Fw(,)j(T)d
Fy(u)1386 1062 y Fq(2)1405 1055 y Fw(,)j(int)d Fv(ustride)p
Fw(,)514 1111 y(int)12 b Fv(uor)n(der)p Fw(,)i(T)e Fy(v)821
1118 y Fq(1)841 1111 y Fw(,)h(T)g Fy(v)937 1118 y Fq(2)956
1111 y Fw(,)h(int)e Fv(vstride)p Fw(,)h(int)f Fv(vor)n(der)p
Fw(,)h(T)g Fv(p)n(oints)f FC(\))g Fw(;)332 1214 y Fv(tar)n(get)18
b FC(is)h(a)f(range)g(t)o(yp)q(e)g(selected)h(from)f(the)g(same)g
(group)g(as)g(is)g(used)h(for)f Fz(Map1)p FC(,)332 1270
y(except)i(that)f(the)h(string)f Fw(MAP1)g FC(is)h(replaced)h(with)f
Fw(MAP2)p FC(.)32 b Fv(p)n(oints)19 b FC(is)h(a)f(p)q(oin)o(ter)h(to)
332 1327 y(\()p Fy(n)11 b FC(+)f(1\)\()p Fy(m)g FC(+)h(1\))k(blo)q(c)o
(ks)h(of)f(storage)g(\()p Fy(uor)q(der)f FC(=)f Fy(n)e
FC(+)g(1)k(and)h Fy(v)r(or)q(der)e FC(=)g Fy(m)c FC(+)h(1;)k(the)332
1383 y(error)g Fr(INVALID)p 601 1383 14 2 v 14 w(VALUE)g
FC(is)h(generated)g(if)g(either)h Fy(uor)q(der)f FC(or)f
Fy(v)r(or)q(der)h FC(is)g(less)h(than)e(one)332 1440
y(or)g(greater)f(than)h Fr(MAX)p 717 1440 V 15 w(EVAL)p
820 1440 V 15 w(ORDER)p FC(\).)e(The)j(v)m(alues)g(comprising)g
Fz(R)1484 1447 y Fu(ij)1530 1440 y FC(are)f(lo)q(cated)853
1549 y(\()p Fy(ustr)q(ide)p FC(\))p Fy(i)9 b FC(+)h(\()p
Fy(v)r(str)q(ide)p FC(\))p Fy(j)332 1658 y FC(v)m(alues)k(\(either)f
(single-)h(or)f(double-precision)j(\015oating-p)q(oin)o(t,)d(as)f
(appropriate\))h(past)332 1714 y(the)j(\014rst)f(v)m(alue)i(p)q(oin)o
(ted)f(to)f(b)o(y)h Fv(p)n(oints)p FC(.)k Fy(u)1084 1721
y Fq(1)1103 1714 y FC(,)c Fy(u)1158 1721 y Fq(2)1177
1714 y FC(,)g Fy(v)1228 1721 y Fq(1)1247 1714 y FC(,)g(and)f
Fy(v)1386 1721 y Fq(2)1422 1714 y FC(de\014ne)h(the)g(pre-image)332
1771 y(rectangle)g(of)e(the)i(map;)e(a)h(domain)h(p)q(oin)o(t)g(\()p
Fy(u)1133 1754 y FG(0)1144 1771 y Fy(;)8 b(v)1189 1754
y FG(0)1199 1771 y FC(\))15 b(is)h(ev)m(aluated)g(as)763
1904 y Fz(p)792 1886 y FG(0)803 1904 y FC(\()p Fy(u)847
1886 y FG(0)859 1904 y Fy(;)8 b(v)904 1886 y FG(0)914
1904 y FC(\))13 b(=)g Fz(p)p FC(\()1048 1874 y Fy(u)1074
1857 y FG(0)1096 1874 y FB(\000)e Fy(u)1168 1881 y Fq(1)p
1045 1894 148 2 v 1045 1936 a Fy(u)1071 1943 y Fq(2)1100
1936 y FB(\000)g Fy(u)1172 1943 y Fq(1)1196 1904 y Fy(;)1225
1874 y(v)1249 1857 y FG(0)1270 1874 y FB(\000)g Fy(v)1338
1881 y Fq(1)p 1221 1894 140 2 v 1221 1936 a Fy(v)1243
1943 y Fq(2)1273 1936 y FB(\000)g Fy(v)1341 1943 y Fq(1)1366
1904 y FC(\))p Fy(:)403 2033 y FC(The)i(ev)m(aluation)h(of)e(a)h
(de\014ned)h(map)e(is)i(enabled)g(or)e(disabled)j(with)e
Fz(Enable)h FC(and)332 2089 y Fz(Disable)k FC(using)g(the)g(constan)o
(t)e(corresp)q(onding)i(to)f(the)g(map)g(as)g(describ)q(ed)i(ab)q(o)o
(v)o(e.)332 2146 y(The)d(error)e Fr(INVALID)p 694 2146
14 2 v 14 w(VALUE)h FC(results)g(if)h(either)g Fv(ustride)f
FC(or)g Fv(vstride)g FC(is)h(less)g(than)f(k,)g(or)332
2202 y(if)h Fy(u)400 2209 y Fq(1)435 2202 y FC(is)f(equal)h(to)f
Fy(u)682 2209 y Fq(2)702 2202 y FC(,)f(or)h(if)h Fy(v)849
2209 y Fq(1)884 2202 y FC(is)f(equal)h(to)f Fy(v)1127
2209 y Fq(2)1147 2202 y FC(.)403 2261 y(Figure)h(5.1)f(describ)q(es)i
(map)f(ev)m(aluation)h(sc)o(hematically;)g(an)f(ev)m(aluation)h(of)f
(en-)332 2317 y(abled)g(maps)f(is)h(e\013ected)f(in)h(one)g(of)e(t)o(w)
o(o)g(w)o(a)o(ys.)19 b(The)d(\014rst)e(w)o(a)o(y)h(is)g(to)g(use)446
2420 y Fw(void)29 b Fz(Ev)m(alCo)q(ord)p FB(f)p Fz(12)p
FB(gf)p Fz(fd)p FB(g)p FC(\()i Fw(T)15 b Fv(ar)n(g)g
FC(\))g Fw(;)446 2477 y(void)29 b Fz(Ev)m(alCo)q(ord)p
FB(f)p Fz(12)p FB(gf)p Fz(fd)p FB(g)p Fz(v)p FC(\()h
Fw(T)15 b Fv(ar)n(g)g FC(\))g Fw(;)p eop
%%Page: 131 140
131 139 bop 120 137 a Fx(5.1.)34 b(EV)-5 b(ALUA)l(TORS)1009
b FC(131)120 286 y Fz(Ev)m(alCo)q(ord1)15 b FC(causes)e(ev)m(aluation)i
(of)d(the)i(enabled)g(1-dimensional)i(maps.)j(The)13
b(ar-)120 343 y(gumen)o(t)f(is)g(the)f(v)m(alue)i(\(or)d(a)i(p)q(oin)o
(ter)g(to)e(the)i(v)m(alue\))g(that)f(is)h(the)g(domain)g(co)q
(ordinate,)120 399 y Fy(u)146 383 y FG(0)158 399 y FC(.)19
b Fz(Ev)m(alCo)q(ord2)14 b FC(causes)g(ev)m(aluation)g(of)f(the)g
(enabled)i(2-dimensional)g(maps.)j(The)120 456 y(t)o(w)o(o)c(v)m(alues)
j(sp)q(ecify)f(the)f(t)o(w)o(o)f(domain)i(co)q(ordinates,)f
Fy(u)1098 439 y FG(0)1125 456 y FC(and)g Fy(v)1237 439
y FG(0)1249 456 y FC(,)f(in)i(that)f(order.)191 512 y(When)g(one)g(of)f
(the)h Fz(Ev)m(alCo)q(ord)g FC(commands)g(is)g(issued,)h(all)f(curren)o
(tly)g(enabled)120 569 y(maps)d(of)g(the)g(indicated)i(dimension)g(are)
d(ev)m(aluated.)20 b(Then,)13 b(for)f(eac)o(h)g(enabled)h(map,)120
625 y(it)18 b(is)f(as)g(if)g(a)g(corresp)q(onding)h(GL)f(command)g(w)o
(ere)f(issued)i(with)g(the)f(resulting)h(co-)120 682
y(ordinates,)j(with)f(one)g(imp)q(ortan)o(t)f(di\013erence.)34
b(The)20 b(di\013erence)h(is)f(that)f(when)h(an)120 738
y(ev)m(aluation)i(is)f(p)q(erformed,)h(the)f(GL)g(uses)g(ev)m(aluated)g
(v)m(alues)h(instead)g(of)e(curren)o(t)120 795 y(v)m(alues)d(for)e
(those)g(ev)m(aluations)i(that)e(are)g(enabled)i(\(otherwise,)e(the)h
(curren)o(t)g(v)m(alues)120 851 y(are)h(used\).)25 b(The)17
b(order)g(of)f(the)h(e\013ectiv)o(e)g(commands)g(is)g(immaterial,)h
(except)f(that)120 907 y Fz(V)l(ertex)d FC(\(for)g(v)o(ertex)g(co)q
(ordinate)i(ev)m(aluation\))g(m)o(ust)e(b)q(e)i(issued)g(last.)k(Use)15
b(of)g(ev)m(al-)120 964 y(uators)f(has)h(no)g(e\013ect)g(on)g(the)g
(curren)o(t)g(color,)f(normal,)h(or)g(texture)f(co)q(ordinates.)20
b(If)120 1020 y Fz(ColorMaterial)h FC(is)f(enabled,)h(ev)m(aluated)f
(color)f(v)m(alues)i(a\013ect)d(the)h(result)h(of)f(the)120
1077 y(ligh)o(ting)e(equation)g(as)e(if)i(the)f(curren)o(t)f(color)h(w)
o(as)f(b)q(eing)j(mo)q(di\014ed,)f(but)f(no)g(c)o(hange)120
1133 y(is)g(made)f(to)g(the)g(trac)o(king)g(ligh)o(ting)h(parameters)f
(or)f(to)h(the)g(curren)o(t)g(color.)191 1190 y(No)g(command)g(is)h
(e\013ectiv)o(ely)g(issued)h(if)e(the)h(corresp)q(onding)g(map)f(\(of)g
(the)g(indi-)120 1246 y(cated)d(dimension\))h(is)g(not)e(enabled.)20
b(If)12 b(more)g(than)f(one)h(ev)m(aluation)h(is)g(enabled)g(for)e(a)
120 1303 y(particular)k(dimension)h(\(e.g.)i Fr(MAP1)p
739 1303 14 2 v 15 w(TEXTURE)p 908 1303 V 14 w(COORD)p
1032 1303 V 15 w(1)c FC(and)g Fr(MAP1)p 1258 1303 V 15
w(TEXTURE)p 1427 1303 V 14 w(COORD)p 1551 1303 V 15 w(2)p
FC(\),)120 1359 y(then)j(only)g(the)g(result)g(of)f(the)h(ev)m
(aluation)h(of)e(the)g(map)h(with)g(the)f(highest)h(n)o(um)o(b)q(er)120
1416 y(of)e(co)q(ordinates)h(is)f(used.)191 1472 y(Finally)l(,)26
b(if)d(either)g Fr(MAP2)p 640 1472 V 15 w(VERTEX)p 787
1472 V 14 w(3)g FC(or)f Fr(MAP2)p 997 1472 V 14 w(VERTEX)p
1143 1472 V 15 w(4)g FC(is)h(enabled,)j(then)d(the)120
1528 y(normal)13 b(to)g(the)g(surface)g(is)h(computed.)19
b(Analytic)c(computation,)e(whic)o(h)h(sometimes)120
1585 y(yields)21 b(normals)d(of)h(length)g(zero)f(is)i(one)f(metho)q(d)
f(whic)o(h)i(ma)o(y)e(b)q(e)h(used.)31 b(If)19 b(auto-)120
1641 y(matic)e(normal)g(generation)h(is)f(enabled,)i(then)e(this)h
(computed)f(normal)g(is)h(used)f(as)120 1698 y(the)i(normal)g(asso)q
(ciated)g(with)g(a)g(generated)g(v)o(ertex.)30 b(Automatic)19
b(normal)f(gener-)120 1754 y(ation)h(is)h(con)o(trolled)f(with)g
Fz(Enable)h FC(and)f Fz(Disable)h FC(with)g(sym)o(b)q(olic)g(the)f
(constan)o(t)120 1811 y Fr(AUTO)p 211 1811 V 15 w(NORMAL)p
FC(.)12 b(If)j(automatic)e(normal)h(generation)g(is)g(disabled,)i(then)
e(a)f(corresp)q(ond-)120 1867 y(ing)e(normal)g(map,)g(if)f(enabled,)j
(is)e(used)g(to)f(pro)q(duce)h(a)f(normal.)18 b(If)11
b(neither)g(automatic)120 1924 y(normal)19 b(generation)g(nor)f(a)h
(normal)f(map)h(are)f(enabled,)j(then)e(no)f(normal)h(is)g(sen)o(t)120
1980 y(with)i(a)e(v)o(ertex)h(resulting)h(from)e(an)h(ev)m(aluation)h
(\(the)f(e\013ect)g(is)g(that)g(the)g(curren)o(t)120
2037 y(normal)c(is)f(used\).)191 2093 y(F)l(or)g Fr(MAP)p
342 2093 V 15 w(VERTEX)p 489 2093 V 14 w(3)p FC(,)g(let)h
Fz(q)d FC(=)h Fz(p)p FC(.)21 b(F)l(or)15 b Fr(MAP)p 920
2093 V 15 w(VERTEX)p 1067 2093 V 14 w(4)p FC(,)g(let)h
Fz(q)d FC(=)h(\()p Fy(x=w)q(;)8 b(y)r(=w)q(;)g(z)r(=w)p
FC(\),)120 2149 y(where)16 b(\()p Fy(x;)8 b(y)r(;)g(z)r(;)g(w)q
FC(\))h(=)k Fz(p)p FC(.)20 b(Then)c(let)717 2267 y Fz(m)c
FC(=)826 2236 y Fy(@)s Fz(q)p 826 2256 55 2 v 827 2298
a Fy(@)s(u)896 2267 y FB(\002)946 2236 y Fy(@)s Fz(q)p
946 2256 V 948 2298 a Fy(@)s(v)1005 2267 y(:)120 2375
y FC(Then)k(the)f(generated)h(analytic)g(normal,)e Fz(n)p
FC(,)h(is)h(giv)o(en)g(b)o(y)f Fz(n)d FC(=)h Fz(m)p Fy(=)p
FB(k)p Fz(m)p FB(k)p FC(.)191 2432 y(The)19 b(second)h(w)o(a)o(y)e(to)g
(carry)h(out)g(ev)m(aluations)h(is)g(to)e(use)i(a)e(set)h(of)g
(commands)120 2488 y(that)d(pro)o(vide)h(for)e(e\016cien)o(t)i(sp)q
(eci\014cation)h(of)e(a)g(series)g(of)g(ev)o(enly)h(spaced)g(v)m(alues)
g(to)p eop
%%Page: 132 141
132 140 bop 332 137 a FC(132)622 b Fx(CHAPTER)15 b(5.)35
b(SPECIAL)16 b(FUNCTIONS)332 286 y FC(b)q(e)h(mapp)q(ed.)23
b(This)17 b(metho)q(d)f(pro)q(ceeds)h(in)g(t)o(w)o(o)e(steps.)22
b(The)16 b(\014rst)g(step)g(is)h(to)e(de\014ne)332 343
y(a)g(grid)h(in)g(the)f(domain.)20 b(This)c(is)g(done)f(using)446
449 y Fw(void)29 b Fz(MapGrid1)p FB(f)p Fz(fd)p FB(g)p
FC(\()h Fw(int)15 b Fy(n)p Fw(,)g(T)g Fy(u)1164 433 y
FG(0)1164 461 y Fq(1)1184 449 y Fw(,)g(T)g Fy(u)1288
433 y FG(0)1288 461 y Fq(2)1323 449 y FC(\))g Fw(;)332
556 y FC(for)g(a)g(1-dimensional)i(map)e(or)446 662 y
Fw(void)39 b Fz(MapGrid2)p FB(f)p Fz(fd)p FB(g)p FC(\()g
Fw(int)19 b Fy(n)1083 669 y Fu(u)1106 662 y Fw(,)i(T)f
Fy(u)1221 645 y FG(0)1221 673 y Fq(1)1240 662 y Fw(,)h(T)f
Fy(u)1355 645 y FG(0)1355 673 y Fq(2)1375 662 y Fw(,)h(int)e
Fy(n)1538 669 y Fu(v)1559 662 y Fw(,)i(T)e Fy(v)1671
645 y FG(0)1669 673 y Fq(1)1689 662 y Fw(,)514 718 y(T)c
Fy(v)577 702 y FG(0)575 730 y Fq(2)610 718 y FC(\))g
Fw(;)332 825 y FC(for)g(a)h(2-dimensional)i(map.)k(In)17
b(the)f(case)g(of)f Fz(MapGrid1)h Fy(u)1415 808 y FG(0)1415
836 y Fq(1)1451 825 y FC(and)g Fy(u)1566 808 y FG(0)1566
836 y Fq(2)1602 825 y FC(describ)q(e)i(an)332 881 y(in)o(terv)m(al,)23
b(while)e Fy(n)g FC(describ)q(es)h(the)f(n)o(um)o(b)q(er)f(of)g
(partitions)h(of)f(the)h(in)o(terv)m(al.)36 b(The)332
938 y(error)15 b Fr(INVALID)p 601 938 14 2 v 15 w(VALUE)g
FC(results)h(if)h Fy(n)d FB(\024)g FC(0.)23 b(F)l(or)15
b Fz(MapGrid2)p FC(,)h(\()p Fy(u)1466 921 y FG(0)1466
949 y Fq(1)1486 938 y Fy(;)8 b(v)1531 921 y FG(0)1529
949 y Fq(1)1548 938 y FC(\))15 b(sp)q(eci\014es)j(one)332
994 y(t)o(w)o(o-dimensional)c(p)q(oin)o(t)f(and)f(\()p
Fy(u)911 978 y FG(0)911 1006 y Fq(2)931 994 y Fy(;)c(v)976
978 y FG(0)974 1006 y Fq(2)993 994 y FC(\))k(sp)q(eci\014es)j(another.)
j Fy(n)1407 1001 y Fu(u)1442 994 y FC(giv)o(es)13 b(the)g(n)o(um)o(b)q
(er)g(of)332 1050 y(partitions)f(b)q(et)o(w)o(een)h Fy(u)735
1034 y FG(0)735 1062 y Fq(1)766 1050 y FC(and)g Fy(u)878
1034 y FG(0)878 1062 y Fq(2)897 1050 y FC(,)g(and)f Fy(n)1035
1057 y Fu(v)1068 1050 y FC(giv)o(es)g(the)g(n)o(um)o(b)q(er)g(of)g
(partitions)g(b)q(et)o(w)o(een)332 1107 y Fy(v)356 1090
y FG(0)354 1118 y Fq(1)389 1107 y FC(and)j Fy(v)501 1090
y FG(0)499 1118 y Fq(2)519 1107 y FC(.)20 b(If)15 b(either)h
Fy(n)753 1114 y Fu(u)789 1107 y FB(\024)d FC(0)i(or)f
Fy(n)957 1114 y Fu(v)991 1107 y FB(\024)f FC(0,)h(then)i(the)f(error)f
Fr(INVALID)p 1539 1107 V 15 w(VALUE)g FC(o)q(ccurs.)403
1166 y(Once)g(a)e(grid)h(is)h(de\014ned,)g(an)f(ev)m(aluation)h(on)f(a)
f(rectangular)h(subset)g(of)g(that)f(grid)332 1223 y(ma)o(y)j(b)q(e)g
(carried)h(out)f(b)o(y)g(calling)446 1329 y Fw(void)29
b Fz(Ev)m(alMesh1)p FC(\()i Fw(enum)14 b Fv(mo)n(de)p
Fw(,)i(int)e Fy(p)1229 1336 y Fq(1)1249 1329 y Fw(,)h(int)g
Fy(p)1398 1336 y Fq(2)1432 1329 y FC(\))g Fw(;)332 1436
y Fv(mo)n(de)i FC(is)h(either)g Fr(POINT)d FC(or)i Fr(LINE)p
FC(.)f(The)h(e\013ect)g(is)g(the)g(same)g(as)g(p)q(erforming)g(the)g
(fol-)332 1492 y(lo)o(wing)f(co)q(de)g(fragmen)o(t,)d(with)j(\001)p
Fy(u)952 1476 y FG(0)976 1492 y FC(=)d(\()p Fy(u)1068
1476 y FG(0)1068 1504 y Fq(2)1097 1492 y FB(\000)e Fy(u)1169
1476 y FG(0)1169 1504 y Fq(1)1189 1492 y FC(\))p Fy(=n)p
FC(:)529 1602 y Fz(Begin)p Fw(\()p Fv(typ)n(e)p Fw(\);)590
1658 y Fz(for)j Fy(i)f FC(=)g Fy(p)768 1665 y Fq(1)802
1658 y FC(to)i Fy(p)881 1665 y Fq(2)916 1658 y FC(step)g(1)p
Fy(:)p FC(0)650 1714 y Fz(Ev)m(alCo)q(ord1)p Fw(\()p
Fy(i)25 b Fw(*)f FC(\001)p Fy(u)1093 1698 y FG(0)1128
1714 y Fw(+)g Fy(u)1202 1698 y FG(0)1202 1726 y Fq(1)1221
1714 y Fw(\);)529 1771 y Fz(End)p Fw(\(\);)332 1877 y
FC(where)18 b Fz(Ev)m(alCo)q(ord1f)h FC(or)f Fz(Ev)m(alCo)q(ord1d)h
FC(is)f(substituted)h(for)e Fz(Ev)m(alCo)q(ord1)i FC(as)332
1934 y(appropriate.)h(If)14 b Fv(mo)n(de)g FC(is)g Fr(POINT)p
FC(,)e(then)j Fv(typ)n(e)e FC(is)i Fr(POINTS)p FC(;)d(if)i
Fv(mo)n(de)g FC(is)h Fr(LINE)p FC(,)d(then)i Fv(typ)n(e)332
1990 y FC(is)i Fr(LINE)p 469 1990 V 14 w(STRIP)p FC(.)e(The)h(one)g
(requiremen)o(t)h(is)f(that)f(if)i(either)g Fy(i)c FC(=)h(0)h(or)h
Fy(i)d FC(=)h Fy(n)p FC(,)i(then)g(the)332 2047 y(v)m(alue)i(computed)e
(from)g Fy(i)9 b FB(\003)h FC(\001)p Fy(u)889 2030 y
FG(0)911 2047 y FC(+)g Fy(u)982 2030 y FG(0)982 2058
y Fq(1)1017 2047 y FC(is)16 b(precisely)h Fy(u)1275 2030
y FG(0)1275 2058 y Fq(1)1310 2047 y FC(or)d Fy(u)1391
2030 y FG(0)1391 2058 y Fq(2)1411 2047 y FC(,)h(resp)q(ectiv)o(ely)l(.)
403 2106 y(The)g(corresp)q(onding)h(commands)f(for)g(t)o(w)o
(o-dimensional)h(maps)f(are)446 2212 y Fw(void)48 b Fz(Ev)m(alMesh2)p
FC(\()g Fw(enum)23 b Fv(mo)n(de)p Fw(,)k(int)d Fy(p)1295
2219 y Fq(1)1314 2212 y Fw(,)j(int)c Fy(p)1483 2219 y
Fq(2)1503 2212 y Fw(,)j(int)e Fy(q)1669 2219 y Fq(1)1689
2212 y Fw(,)514 2269 y(int)15 b Fy(q)621 2276 y Fq(2)656
2269 y FC(\))g Fw(;)332 2375 y Fv(mo)n(de)c FC(m)o(ust)f(b)q(e)h
Fr(FILL)p FC(,)e Fr(LINE)p FC(,)h(or)g Fr(POINT)p FC(.)f(When)i
Fv(mo)n(de)g FC(is)g Fr(FILL)p FC(,)e(then)i(these)g(commands)332
2432 y(are)18 b(equiv)m(alen)o(t)i(to)d(the)i(follo)o(wing,)g(with)f
(\001)p Fy(u)1148 2415 y FG(0)1177 2432 y FC(=)g(\()p
Fy(u)1274 2415 y FG(0)1274 2443 y Fq(2)1306 2432 y FB(\000)12
b Fy(u)1379 2415 y FG(0)1379 2443 y Fq(1)1399 2432 y
FC(\))p Fy(=n)18 b FC(and)g(\001)p Fy(v)1638 2415 y FG(0)1667
2432 y FC(=)g(\()p Fy(v)1762 2415 y FG(0)1760 2443 y
Fq(2)1791 2432 y FB(\000)332 2488 y Fy(v)356 2472 y FG(0)354
2500 y Fq(1)374 2488 y FC(\))p Fy(=m)p FC(:)p eop
%%Page: 133 142
133 141 bop 120 137 a Fx(5.1.)34 b(EV)-5 b(ALUA)l(TORS)1009
b FC(133)317 286 y Fz(for)15 b Fy(i)d FC(=)h Fy(q)492
293 y Fq(1)528 286 y FC(to)h Fy(q)603 293 y Fq(2)633
286 y FB(\000)d FC(1)k(step)g(1)p Fy(:)p FC(0)378 343
y Fz(Begin)p Fw(\(QUAD)p 631 343 15 2 v 17 w(STRIP\);)439
399 y Fz(for)f Fy(j)h FC(=)e Fy(p)622 406 y Fq(1)657
399 y FC(to)i Fy(p)736 406 y Fq(2)770 399 y FC(step)h(1)p
Fy(:)p FC(0)499 456 y Fz(Ev)m(alCo)q(ord2)p Fw(\()p Fy(j)27
b Fw(*)d FC(\001)p Fy(u)947 439 y FG(0)982 456 y Fw(+)g
Fy(u)1056 439 y FG(0)1056 467 y Fq(1)1100 456 y Fw(,)g
Fy(i)f Fw(*)h FC(\001)p Fy(v)1297 439 y FG(0)1332 456
y Fw(+)g Fy(v)1404 439 y FG(0)1402 467 y Fq(1)1421 456
y Fw(\);)499 512 y Fz(Ev)m(alCo)q(ord2)p Fw(\()p Fy(j)j
Fw(*)d FC(\001)p Fy(u)947 496 y FG(0)982 512 y Fw(+)g
Fy(u)1056 496 y FG(0)1056 524 y Fq(1)1100 512 y Fw(,)g
FC(\()p Fy(i)9 b FC(+)h(1\))24 b Fw(*)f FC(\001)p Fy(v)1410
496 y FG(0)1445 512 y Fw(+)h Fy(v)1517 496 y FG(0)1515
524 y Fq(1)1535 512 y Fw(\);)378 569 y Fz(End)p Fw(\(\);)120
666 y FC(If)16 b Fv(mo)n(de)f FC(is)h Fr(LINE)p FC(,)e(then)h(a)g(call)
i(to)d Fz(Ev)m(alMesh2)i FC(is)f(equiv)m(alen)o(t)i(to)317
764 y Fz(for)e Fy(i)d FC(=)h Fy(q)492 771 y Fq(1)528
764 y FC(to)h Fy(q)603 771 y Fq(2)638 764 y FC(step)h(1)p
Fy(:)p FC(0)378 820 y Fz(Begin)p Fw(\(LINE)p 631 820
V 17 w(STRIP\);)378 877 y Fz(for)g Fy(j)g FC(=)e Fy(p)562
884 y Fq(1)596 877 y FC(to)i Fy(p)675 884 y Fq(2)710
877 y FC(step)g(1)p Fy(:)p FC(0)439 933 y Fz(Ev)m(alCo)q(ord2)p
Fw(\()p Fy(j)27 b Fw(*)c FC(\001)p Fy(u)886 917 y FG(0)922
933 y Fw(+)h Fy(u)996 917 y FG(0)996 945 y Fq(1)1039
933 y Fw(,)g Fy(i)f Fw(*)h FC(\001)p Fy(v)1236 917 y
FG(0)1271 933 y Fw(+)g Fy(v)1343 917 y FG(0)1341 945
y Fq(1)1361 933 y Fw(\);)378 990 y Fz(End)p Fw(\(\);)p
FC(;)317 1046 y Fz(for)15 b Fy(i)d FC(=)h Fy(p)495 1053
y Fq(1)530 1046 y FC(to)i Fy(p)609 1053 y Fq(2)643 1046
y FC(step)h(1)p Fy(:)p FC(0)378 1103 y Fz(Begin)p Fw(\(LINE)p
631 1103 V 17 w(STRIP\);)378 1159 y Fz(for)f Fy(j)g FC(=)e
Fy(q)559 1166 y Fq(1)594 1159 y FC(to)h Fy(q)669 1166
y Fq(2)705 1159 y FC(step)h(1)p Fy(:)p FC(0)439 1216
y Fz(Ev)m(alCo)q(ord2)p Fw(\()p Fy(i)24 b Fw(*)g FC(\001)p
Fy(u)881 1199 y FG(0)916 1216 y Fw(+)g Fy(u)990 1199
y FG(0)990 1227 y Fq(1)1034 1216 y Fw(,)f Fy(j)j Fw(*)e
FC(\001)p Fy(v)1236 1199 y FG(0)1271 1216 y Fw(+)g Fy(v)1343
1199 y FG(0)1341 1227 y Fq(1)1361 1216 y Fw(\);)378 1272
y Fz(End)p Fw(\(\);)120 1369 y FC(If)16 b Fv(mo)n(de)f
FC(is)h Fr(POINT)p FC(,)e(then)h(a)g(call)h(to)f Fz(Ev)m(alMesh2)g
FC(is)h(equiv)m(alen)o(t)h(to)317 1467 y Fz(Begin)p Fw(\(POINTS\);)378
1524 y Fz(for)e Fy(i)d FC(=)h Fy(q)553 1531 y Fq(1)588
1524 y FC(to)i Fy(q)664 1531 y Fq(2)699 1524 y FC(step)g(1)p
Fy(:)p FC(0)439 1580 y Fz(for)f Fy(j)h FC(=)e Fy(p)622
1587 y Fq(1)657 1580 y FC(to)i Fy(p)736 1587 y Fq(2)770
1580 y FC(step)h(1)p Fy(:)p FC(0)499 1637 y Fz(Ev)m(alCo)q(ord2)p
Fw(\()p Fy(j)27 b Fw(*)d FC(\001)p Fy(u)947 1620 y FG(0)982
1637 y Fw(+)g Fy(u)1056 1620 y FG(0)1056 1648 y Fq(1)1100
1637 y Fw(,)g Fy(i)f Fw(*)h FC(\001)p Fy(v)1297 1620
y FG(0)1332 1637 y Fw(+)g Fy(v)1404 1620 y FG(0)1402
1648 y Fq(1)1421 1637 y Fw(\);)317 1693 y Fz(End)p Fw(\(\);)120
1790 y FC(Again,)18 b(in)h(all)f(three)g(cases,)f(there)h(is)g(the)f
(requiremen)o(t)h(that)f(0)11 b FB(\003)h FC(\001)p Fy(u)1373
1774 y FG(0)1396 1790 y FC(+)g Fy(u)1469 1774 y FG(0)1469
1802 y Fq(1)1505 1790 y FC(=)k Fy(u)1582 1774 y FG(0)1582
1802 y Fq(1)1602 1790 y FC(,)120 1847 y Fy(n)11 b FB(\003)f
FC(\001)p Fy(u)255 1830 y FG(0)276 1847 y FC(+)h Fy(u)348
1830 y FG(0)348 1858 y Fq(1)380 1847 y FC(=)i Fy(u)454
1830 y FG(0)454 1858 y Fq(2)474 1847 y FC(,)i(0)9 b FB(\003)h
FC(\001)p Fy(v)629 1830 y FG(0)651 1847 y FC(+)g Fy(v)720
1830 y FG(0)718 1858 y Fq(1)750 1847 y FC(=)j Fy(v)822
1830 y FG(0)820 1858 y Fq(1)840 1847 y FC(,)i(and)g Fy(m)10
b FB(\003)g FC(\001)p Fy(v)1101 1830 y FG(0)1122 1847
y FC(+)h Fy(v)1192 1830 y FG(0)1190 1858 y Fq(1)1222
1847 y FC(=)i Fy(v)1294 1830 y FG(0)1292 1858 y Fq(2)1312
1847 y FC(.)191 1904 y(An)i(ev)m(aluation)i(of)e(a)g(single)h(p)q(oin)o
(t)g(on)f(the)g(grid)h(ma)o(y)e(also)h(b)q(e)h(carried)g(out:)234
2001 y Fw(void)30 b Fz(Ev)m(alP)o(oin)o(t1)p FC(\()h
Fw(int)14 b Fy(p)h FC(\))g Fw(;)120 2099 y FC(Calling)i(it)e(is)h
(equiv)m(alen)o(t)h(to)e(the)g(command)317 2197 y Fz(Ev)m(alCo)q(ord1)p
Fw(\()p Fy(p)h FC(*)f(\001)p Fy(u)748 2180 y FG(0)775
2197 y FC(+)g Fy(u)851 2180 y FG(0)851 2208 y Fq(1)871
2197 y Fw(\);)120 2294 y FC(with)h(\001)p Fy(u)288 2277
y FG(0)315 2294 y FC(and)f Fy(u)429 2277 y FG(0)429 2305
y Fq(1)464 2294 y FC(de\014ned)h(as)f(ab)q(o)o(v)o(e.)234
2391 y Fw(void)30 b Fz(Ev)m(alP)o(oin)o(t2)p FC(\()h
Fw(int)14 b Fy(p)p Fw(,)h(int)g Fy(q)i FC(\))e Fw(;)120
2488 y FC(is)h(equiv)m(alen)o(t)h(to)e(the)g(command)p
eop
%%Page: 134 143
134 142 bop 332 137 a FC(134)622 b Fx(CHAPTER)15 b(5.)35
b(SPECIAL)16 b(FUNCTIONS)529 286 y Fz(Ev)m(alCo)q(ord2)p
Fw(\()p Fy(p)25 b Fw(*)f FC(\001)p Fy(u)979 270 y FG(0)1014
286 y Fw(+)g Fy(u)1088 270 y FG(0)1088 298 y Fq(1)1131
286 y Fw(,)g Fy(q)i Fw(*)d FC(\001)p Fy(v)1334 270 y
FG(0)1370 286 y Fw(+)g Fy(v)1441 270 y FG(0)1439 298
y Fq(1)1459 286 y Fw(\);)403 441 y FC(The)15 b(state)f(required)i(for)e
(ev)m(aluators)h(p)q(oten)o(tially)h(consists)f(of)f(9)h(1-dimensional)
332 498 y(map)j(sp)q(eci\014cations)i(and)f(9)f(2-dimensional)i(map)e
(sp)q(eci\014cations,)j(as)c(w)o(ell)j(as)e(cor-)332
554 y(resp)q(onding)h(\015ags)e(for)h(eac)o(h)f(sp)q(eci\014cation)j
(indicating)g(whic)o(h)e(are)g(enabled.)29 b(Eac)o(h)332
611 y(map)18 b(sp)q(eci\014cation)h(consists)f(of)g(one)f(or)h(t)o(w)o
(o)e(orders,)i(an)g(appropriately)g(sized)h(ar-)332 667
y(ra)o(y)d(of)g(con)o(trol)g(p)q(oin)o(ts,)h(and)g(a)f(set)h(of)f(t)o
(w)o(o)f(v)m(alues)j(\(for)d(a)h(1-dimensional)j(map\))d(or)332
724 y(four)j(v)m(alues)h(\(for)e(a)h(2-dimensional)i(map\))d(to)h
(describ)q(e)h(the)g(domain.)31 b(The)20 b(max-)332 780
y(im)o(um)f(p)q(ossible)i(order,)e(for)f(either)i Fy(u)f
FC(or)f Fy(v)r FC(,)h(is)g(implemen)o(tation)h(dep)q(enden)o(t)h(\(one)
332 837 y(maxim)o(um)d(applies)h(to)e(b)q(oth)h Fy(u)g
FC(and)g Fy(v)r FC(\),)g(but)g(m)o(ust)f(b)q(e)h(at)g(least)g(8.)27
b(Eac)o(h)18 b(con)o(trol)332 893 y(p)q(oin)o(t)f(consists)g(of)f(b)q
(et)o(w)o(een)g(one)h(and)g(four)f(\015oating-p)q(oin)o(t)h(v)m(alues)g
(\(dep)q(ending)i(on)332 949 y(the)f(t)o(yp)q(e)h(of)e(the)i(map\).)28
b(Initially)l(,)21 b(all)e(maps)f(ha)o(v)o(e)g(order)g(1)g(\(making)g
(them)g(con-)332 1006 y(stan)o(t)13 b(maps\).)19 b(All)c(v)o(ertex)f
(co)q(ordinate)g(maps)g(pro)q(duce)h(the)f(co)q(ordinates)h(\(0)p
Fy(;)8 b FC(0)p Fy(;)g FC(0)p Fy(;)f FC(1\))332 1062
y(\(or)18 b(the)i(appropriate)f(subset\);)i(all)f(normal)f(co)q
(ordinate)h(maps)f(pro)q(duce)h(\(0)p Fy(;)8 b FC(0)p
Fy(;)g FC(1\);)332 1119 y(R)o(GBA)16 b(maps)g(pro)q(duce)h(\(1)p
Fy(;)8 b FC(1)p Fy(;)g FC(1)p Fy(;)g FC(1\))o(;)13 b(color)k(index)g
(maps)f(pro)q(duce)h(1.0;)e(texture)h(co-)332 1175 y(ordinate)e(maps)g
(pro)q(duce)g(\(0)p Fy(;)8 b FC(0)p Fy(;)g FC(0)p Fy(;)g
FC(1\))o(;)j(In)k(the)e(initial)j(state,)d(all)i(maps)e(are)h
(disabled.)332 1232 y(A)h(\015ag)g(indicates)i(whether)f(or)e(not)h
(automatic)g(normal)g(generation)h(is)f(enabled)i(for)332
1288 y(2-dimensional)d(maps.)19 b(In)12 b(the)h(initial)h(state,)d
(automatic)h(normal)g(generation)g(is)h(dis-)332 1345
y(abled.)21 b(Also)14 b(required)i(are)e(t)o(w)o(o)f(\015oating-p)q
(oin)o(t)i(v)m(alues)g(and)g(an)f(in)o(teger)g(n)o(um)o(b)q(er)h(of)332
1401 y(grid)e(divisions)h(for)e(the)h(1-dimensional)h(grid)f(sp)q
(eci\014cation)h(and)f(four)f(\015oating-p)q(oin)o(t)332
1458 y(v)m(alues)h(and)g(t)o(w)o(o)d(in)o(teger)j(grid)f(divisions)i
(for)d(the)h(2-dimensional)i(grid)f(sp)q(eci\014cation.)332
1514 y(In)f(the)g(initial)i(state,)d(the)g(b)q(ounds)i(of)e(the)h
(domain)g(in)o(terv)m(al)g(for)f(1-D)g(is)h(0)g(and)f(1)p
Fy(:)p FC(0,)g(re-)332 1570 y(sp)q(ectiv)o(ely;)j(for)d(2-D,)f(they)i
(are)f(\(0)p Fy(;)d FC(0\))h(and)j(\(1)p Fy(:)p FC(0)p
Fy(;)c FC(1)p Fy(:)p FC(0\))o(,)h(resp)q(ectiv)o(ely)l(.)21
b(The)11 b(n)o(um)o(b)q(er)h(of)332 1627 y(grid)i(divisions)h(is)g(1)e
(for)g(1-D)g(and)g(1)h(in)g(b)q(oth)g(directions)h(for)d(2-D.)h(If)h
(an)o(y)f(ev)m(aluation)332 1683 y(command)i(is)h(issued)g(when)g(no)f
(v)o(ertex)g(map)g(is)g(enabled,)i(nothing)e(happ)q(ens.)332
1833 y Fs(5.2)66 b(Selection)332 1937 y FC(Selection)16
b(is)e(used)g(b)o(y)g(a)g(programmer)e(to)i(determine)g(whic)o(h)h
(primitiv)o(es)g(are)f(dra)o(wn)332 1993 y(in)o(to)i(some)g(region)g
(of)g(a)f(windo)o(w.)23 b(The)16 b(region)h(is)f(de\014ned)h(b)o(y)f
(the)g(curren)o(t)g(mo)q(del-)332 2050 y(view)g(and)f(p)q(ersp)q(ectiv)
o(e)i(matrices.)403 2107 y(Selection)23 b(w)o(orks)d(b)o(y)h(returning)
h(an)f(arra)o(y)f(of)g(in)o(teger-v)m(alued)k Fv(names)p
FC(.)37 b(This)332 2164 y(arra)o(y)15 b(represen)o(ts)h(the)g(curren)o
(t)g(con)o(ten)o(ts)f(of)h(the)g Fv(name)h(stack)p FC(.)22
b(This)16 b(stac)o(k)g(is)g(con-)332 2220 y(trolled)g(with)g(the)f
(commands)446 2319 y Fw(void)29 b Fz(InitNames)p FC(\()i
Fw(void)38 b FC(\))15 b Fw(;)446 2375 y(void)29 b Fz(P)o(opName)p
FC(\()h Fw(void)38 b FC(\))15 b Fw(;)446 2432 y(void)29
b Fz(PushName)p FC(\()h Fw(uint)14 b Fv(name)h FC(\))g
Fw(;)446 2488 y(void)29 b Fz(LoadName)p FC(\()i Fw(uint)15
b Fv(name)g FC(\))g Fw(;)p eop
%%Page: 135 144
135 143 bop 120 137 a Fx(5.2.)34 b(SELECTION)1055 b FC(135)120
286 y Fz(InitNames)20 b FC(empties)f(\(clears\))g(the)h(name)f(stac)o
(k.)31 b Fz(P)o(opName)18 b FC(p)q(ops)h(one)h(name)120
343 y(o\013)i(the)h(top)f(of)g(the)h(name)g(stac)o(k.)41
b Fz(PushName)22 b FC(causes)h Fv(name)f FC(to)g(b)q(e)i(pushed)120
399 y(on)o(to)d(the)h(name)g(stac)o(k.)39 b Fz(LoadName)23
b FC(replaces)f(the)g(v)m(alue)h(on)f(the)g(top)f(of)h(the)120
456 y(stac)o(k)c(with)h Fv(name)p FC(.)30 b(Loading)20
b(a)e(name)h(on)o(to)f(an)g(empt)o(y)h(stac)o(k)e(generates)i(the)g
(er-)120 512 y(ror)j Fr(INVALID)p 358 512 14 2 v 14 w(OPERATION)p
FC(.)e(P)o(opping)j(a)f(name)h(o\013)e(of)h(an)g(empt)o(y)g(stac)o(k)g
(generates)120 569 y Fr(STACK)p 233 569 V 15 w(UNDERFLOW)p
FC(;)10 b(pushing)j(a)e(name)h(on)o(to)f(a)g(full)j(stac)o(k)d
(generates)g Fr(STACK)p 1416 569 V 15 w(OVERFLOW)p FC(.)120
625 y(The)k(maxim)o(um)f(allo)o(w)o(able)i(depth)f(of)f(the)g(name)h
(stac)o(k)e(is)i(implemen)o(tation)h(dep)q(en-)120 682
y(den)o(t)g(but)f(m)o(ust)g(b)q(e)g(at)g(least)g(64.)191
739 y(In)h(selection)h(mo)q(de,)e(no)g(fragmen)o(ts)f(are)i(rendered)g
(in)o(to)f(the)h(framebu\013er.)j(The)120 796 y(GL)d(is)f(placed)i(in)f
(selection)g(mo)q(de)g(with)234 893 y Fw(int)30 b Fz(RenderMo)q(de)p
FC(\()g Fw(enum)14 b Fv(mo)n(de)i FC(\))f Fw(;)120 991
y Fv(mo)n(de)21 b FC(is)g(a)f(sym)o(b)q(olic)i(constan)o(t:)29
b(one)21 b(of)f Fr(RENDER)p FC(,)f Fr(SELECT)p FC(,)g(or)h
Fr(FEEDBACK)p FC(.)e Fr(RENDER)120 1048 y FC(is)i(the)f(default,)h
(corresp)q(onding)g(to)f(rendering)h(as)f(describ)q(ed)i(un)o(til)f(no)
o(w.)31 b Fr(SELECT)120 1104 y FC(sp)q(eci\014es)21 b(selection)g(mo)q
(de,)f(and)g Fr(FEEDBACK)d FC(sp)q(eci\014es)k(feedbac)o(k)f(mo)q(de)f
(\(describ)q(ed)120 1160 y(b)q(elo)o(w\).)h(Use)13 b(of)f(an)o(y)h(of)f
(the)h(name)g(stac)o(k)f(manipulation)j(commands)d(while)j(the)e(GL)120
1217 y(is)j(not)f(in)h(selection)h(mo)q(de)e(has)g(no)g(e\013ect.)191
1274 y(Selection)i(is)f(con)o(trolled)g(using)234 1372
y Fw(void)30 b Fz(SelectBu\013er)p FC(\()g Fw(sizei)14
b Fv(n)p Fw(,)h(uint)g Fv(*bu\013er)g FC(\))g Fw(;)120
1470 y Fv(bu\013er)23 b FC(is)g(a)e(p)q(oin)o(ter)i(to)f(an)g(arra)o(y)
f(of)h(unsigned)h(in)o(tegers)g(\(called)g(the)f(selection)120
1526 y(arra)o(y\))13 b(to)g(b)q(e)h(p)q(oten)o(tially)h(\014lled)h
(with)e(names,)g(and)g Fv(n)f FC(is)h(an)g(in)o(teger)g(indicating)i
(the)120 1583 y(maxim)o(um)c(n)o(um)o(b)q(er)h(of)e(v)m(alues)i(that)f
(can)g(b)q(e)g(stored)g(in)h(that)e(arra)o(y)l(.)18 b(Placing)13
b(the)f(GL)120 1639 y(in)j(selection)g(mo)q(de)e(b)q(efore)h
Fz(SelectBu\013er)g FC(has)f(b)q(een)i(called)g(results)f(in)g(an)f
(error)g(of)120 1696 y Fr(INVALID)p 277 1696 V 15 w(OPERATION)g
FC(as)i(do)q(es)g(calling)i Fz(SelectBu\013er)f FC(while)g(in)g
(selection)h(mo)q(de.)191 1753 y(In)e(selection)g(mo)q(de,)f(if)h(a)f
(p)q(oin)o(t,)g(line,)i(p)q(olygon,)e(or)g(the)g(v)m(alid)h(co)q
(ordinates)g(pro-)120 1810 y(duced)j(b)o(y)f(a)g Fz(RasterP)o(os)f
FC(command)h(in)o(tersects)g(the)g(clip)i(v)o(olume)e(\(section)g
(2.11\))120 1866 y(then)e(this)h(primitiv)o(e)g(\(or)e
Fz(RasterP)o(os)f FC(command\))i(causes)g(a)f(selection)i
Fv(hit)p FC(.)k(In)c(the)120 1923 y(case)h(of)g(p)q(olygons,)g(no)f
(hit)i(o)q(ccurs)f(if)g(the)g(p)q(olygon)g(w)o(ould)g(ha)o(v)o(e)g(b)q
(een)h(culled,)h(but)120 1979 y(selection)h(is)f(based)g(on)g(the)f(p)q
(olygon)h(itself,)h(regardless)f(of)f(the)g(setting)h(of)f
Fz(P)o(oly-)120 2036 y(gonMo)q(de)p FC(.)23 b(When)16
b(in)g(selection)i(mo)q(de,)e(whenev)o(er)g(a)f(name)h(stac)o(k)f
(manipulation)120 2092 y(command)j(is)f(executed)h(or)f
Fz(RenderMo)q(de)g FC(is)h(called)h(and)e(there)h(has)f(b)q(een)h(a)f
(hit)120 2148 y(since)f(the)e(last)g(time)h(the)f(stac)o(k)f(w)o(as)h
(manipulated)h(or)f Fz(RenderMo)q(de)g FC(w)o(as)g(called,)120
2205 y(then)i(a)f Fv(hit)h(r)n(e)n(c)n(or)n(d)f FC(is)h(written)f(in)o
(to)g(the)g(selection)i(arra)o(y)l(.)191 2262 y(A)k(hit)h(record)f
(consists)h(of)f(the)g(follo)o(wing)h(items)g(in)g(order:)32
b(a)21 b(non-negativ)o(e)120 2319 y(in)o(teger)15 b(giving)h(the)f(n)o
(um)o(b)q(er)h(of)e(elemen)o(ts)i(on)f(the)g(name)f(stac)o(k)h(at)f
(the)h(time)g(of)g(the)120 2375 y(hit,)i(a)f(minim)o(um)h(depth)g(v)m
(alue,)g(a)f(maxim)o(um)g(depth)h(v)m(alue,)h(and)e(the)g(name)h(stac)o
(k)120 2432 y(with)22 b(the)f(b)q(ottommost)f(elemen)o(t)i(\014rst.)37
b(The)21 b(minim)o(um)i(and)e(maxim)o(um)g(depth)120
2488 y(v)m(alues)14 b(are)d(the)h(minim)o(um)h(and)g(maxim)o(um)e(tak)o
(en)h(o)o(v)o(er)f(all)i(the)f(windo)o(w)g(co)q(ordinate)p
eop
%%Page: 136 145
136 144 bop 332 137 a FC(136)622 b Fx(CHAPTER)15 b(5.)35
b(SPECIAL)16 b(FUNCTIONS)332 286 y Fy(z)i FC(v)m(alues)g(of)d(eac)o(h)i
(\(p)q(ost-clipping\))h(v)o(ertex)d(of)h(eac)o(h)g(primitiv)o(e)i(that)
d(in)o(tersects)h(the)332 343 y(clipping)21 b(v)o(olume)e(since)h(the)f
(last)g(hit)g(record)g(w)o(as)f(written.)30 b(The)19
b(minim)o(um)h(and)332 399 y(maxim)o(um)i(\(eac)o(h)g(of)f(whic)o(h)i
(lies)g(in)g(the)f(range)g([0)p Fy(;)8 b FC(1]\))19 b(are)j(eac)o(h)g
(m)o(ultiplied)j(b)o(y)332 456 y(2)355 439 y Fq(32)405
456 y FB(\000)13 b FC(1)19 b(and)g(rounded)h(to)f(the)g(nearest)g
(unsigned)i(in)o(teger)e(to)g(obtain)g(the)g(v)m(alues)332
512 y(that)14 b(are)h(placed)h(in)g(the)f(hit)h(record.)k(No)15
b(depth)g(o\013set)f(arithmetic)i(\(section)f(3.5.5\))332
569 y(is)h(p)q(erformed)f(on)g(these)h(v)m(alues.)403
629 y(Hit)j(records)g(are)f(placed)j(in)e(the)g(selection)i(arra)o(y)c
(b)o(y)i(main)o(taining)h(a)f(p)q(oin)o(ter)332 685 y(in)o(to)14
b(that)e(arra)o(y)l(.)19 b(When)14 b(selection)h(mo)q(de)e(is)i(en)o
(tered,)e(the)h(p)q(oin)o(ter)g(is)g(initialized)j(to)332
742 y(the)f(b)q(eginning)j(of)c(the)i(arra)o(y)l(.)k(Eac)o(h)16
b(time)h(a)e(hit)i(record)f(is)h(copied,)g(the)f(p)q(oin)o(ter)h(is)332
798 y(up)q(dated)e(to)f(p)q(oin)o(t)h(at)f(the)g(arra)o(y)g(elemen)o(t)
h(after)e(the)i(one)f(in)o(to)h(whic)o(h)g(the)g(topmost)332
855 y(elemen)o(t)20 b(of)f(the)g(name)h(stac)o(k)e(w)o(as)h(stored.)31
b(If)20 b(cop)o(ying)g(the)f(hit)h(record)f(in)o(to)g(the)332
911 y(selection)e(arra)o(y)c(w)o(ould)j(cause)f(the)h(total)e(n)o(um)o
(b)q(er)i(of)e(v)m(alues)i(to)f(exceed)h Fv(n)p FC(,)e(then)i(as)332
967 y(m)o(uc)o(h)f(of)f(the)g(record)h(as)f(\014ts)g(in)h(the)g(arra)o
(y)e(is)i(written)g(and)f(an)h(o)o(v)o(er\015o)o(w)e(\015ag)h(is)h
(set.)403 1027 y(Selection)23 b(mo)q(de)e(is)h(exited)g(b)o(y)f
(calling)i Fz(RenderMo)q(de)e FC(with)h(an)f(argumen)o(t)332
1084 y(v)m(alue)j(other)f(than)g Fr(SELECT)p FC(.)e(Whenev)o(er)j
Fz(RenderMo)q(de)f FC(is)g(called)i(in)f(selection)332
1140 y(mo)q(de,)19 b(it)f(returns)g(the)g(n)o(um)o(b)q(er)g(of)f(hit)i
(records)e(copied)j(in)o(to)d(the)h(selection)i(arra)o(y)332
1197 y(and)d(resets)g(the)g Fz(SelectBu\013er)g FC(p)q(oin)o(ter)h(to)e
(its)h(last)g(sp)q(eci\014ed)i(v)m(alue.)27 b(V)l(alues)18
b(are)332 1253 y(not)f(guaran)o(teed)h(to)f(b)q(e)h(written)g(in)o(to)f
(the)h(selection)h(arra)o(y)e(un)o(til)i Fz(RenderMo)q(de)332
1310 y FC(is)g(called.)31 b(If)18 b(the)g(selection)i(arra)o(y)d(o)o(v)
o(er\015o)o(w)g(\015ag)h(w)o(as)g(set,)g(then)h Fz(RenderMo)q(de)332
1366 y FC(returns)d FB(\000)p FC(1)f(and)h(clears)h(the)e(o)o(v)o
(er\015o)o(w)g(\015ag.)21 b(The)16 b(name)g(stac)o(k)f(is)h(cleared)g
(and)g(the)332 1423 y(stac)o(k)f(p)q(oin)o(ter)g(reset)g(whenev)o(er)h
Fz(RenderMo)q(de)f FC(is)h(called.)403 1483 y(The)i(state)e(required)j
(for)e(selection)i(consists)f(of)g(the)f(address)h(of)f(the)h
(selection)332 1539 y(arra)o(y)f(and)h(its)h(maxim)o(um)f(size,)h(the)f
(name)g(stac)o(k)g(and)g(its)g(asso)q(ciated)h(p)q(oin)o(ter,)g(a)332
1595 y(minim)o(um)f(and)e(maxim)o(um)h(depth)g(v)m(alue,)h(and)e(sev)o
(eral)h(\015ags.)24 b(One)17 b(\015ag)f(indicates)332
1652 y(the)c(curren)o(t)f Fz(RenderMo)q(de)g FC(v)m(alue.)20
b(In)12 b(the)g(initial)i(state,)d(the)g(GL)h(is)g(in)g(the)g
Fr(RENDER)332 1708 y FC(mo)q(de.)29 b(Another)18 b(\015ag)f(is)i(used)f
(to)g(indicate)h(whether)g(or)e(not)h(a)f(hit)i(has)f(o)q(ccurred)332
1765 y(since)k(the)e(last)g(name)g(stac)o(k)g(manipulation.)36
b(This)21 b(\015ag)f(is)h(reset)f(up)q(on)h(en)o(tering)332
1821 y(selection)d(mo)q(de)f(and)f(whenev)o(er)h(a)f(name)h(stac)o(k)e
(manipulation)j(tak)o(es)e(place.)25 b(One)332 1878 y(\014nal)20
b(\015ag)g(is)g(required)g(to)f(indicate)i(whether)f(the)g(maxim)o(um)f
(n)o(um)o(b)q(er)h(of)f(copied)332 1934 y(names)c(w)o(ould)g(ha)o(v)o
(e)g(b)q(een)h(exceeded.)21 b(This)16 b(\015ag)f(is)g(reset)g(up)q(on)h
(en)o(tering)f(selection)332 1991 y(mo)q(de.)27 b(This)18
b(\015ag,)g(the)g(address)f(of)g(the)h(selection)h(arra)o(y)l(,)e(and)g
(its)h(maxim)o(um)g(size)332 2047 y(are)d(GL)g(clien)o(t)i(state.)332
2210 y Fs(5.3)66 b(F)-6 b(eedbac)n(k)332 2319 y FC(F)l(eedbac)o(k,)22
b(lik)o(e)g(selection,)h(is)e(a)f(GL)g(mo)q(de.)37 b(The)21
b(mo)q(de)f(is)h(selected)h(b)o(y)f(calling)332 2375
y Fz(RenderMo)q(de)16 b FC(with)h Fr(FEEDBACK)p FC(.)d(When)j(the)f(GL)
g(is)h(in)g(feedbac)o(k)g(mo)q(de,)f(no)g(frag-)332 2432
y(men)o(ts)d(are)g(written)h(to)e(the)i(framebu\013er.)19
b(Instead,)13 b(information)h(ab)q(out)f(primitiv)o(es)332
2488 y(that)g(w)o(ould)g(ha)o(v)o(e)g(b)q(een)i(rasterized)e(is)h(fed)f
(bac)o(k)h(to)e(the)i(application)g(using)g(the)g(GL.)p
eop
%%Page: 137 146
137 145 bop 120 137 a Fx(5.3.)34 b(FEEDBA)o(CK)1061 b
FC(137)191 286 y(F)l(eedbac)o(k)16 b(is)f(con)o(trolled)h(using)234
394 y Fw(void)24 b Fz(F)l(eedbac)o(kBu\013er)p FC(\()f
Fw(sizei)12 b Fv(n)p Fw(,)h(enum)f Fv(typ)n(e)p Fw(,)g(float)g
Fv(*bu\013er)h FC(\))f Fw(;)120 502 y Fv(bu\013er)h FC(is)f(a)g(p)q
(oin)o(ter)g(to)f(an)h(arra)o(y)f(of)g(\015oating-p)q(oin)o(t)i(v)m
(alues)g(in)o(to)f(whic)o(h)g(feedbac)o(k)h(in-)120 558
y(formation)e(will)i(b)q(e)f(placed,)g(and)g Fv(n)f FC(is)g(a)g(n)o(um)
o(b)q(er)h(indicating)h(the)e(maxim)o(um)g(n)o(um)o(b)q(er)120
615 y(of)16 b(v)m(alues)g(that)f(can)h(b)q(e)h(written)e(to)g(that)g
(arra)o(y)l(.)20 b Fv(typ)n(e)c FC(is)g(a)g(sym)o(b)q(olic)g(constan)o
(t)f(de-)120 671 y(scribing)g(the)e(information)g(to)f(b)q(e)h(fed)g
(bac)o(k)g(for)f(eac)o(h)h(v)o(ertex)g(\(see)g(Figure)g(5.2\).)k(The)
120 728 y(error)d Fr(INVALID)p 388 728 14 2 v 14 w(OPERATION)f
FC(results)h(if)h(the)f(GL)h(is)g(placed)g(in)g(feedbac)o(k)g(mo)q(de)f
(b)q(efore)120 784 y(a)i(call)g(to)f Fz(F)l(eedbac)o(kBu\013er)f
FC(has)h(b)q(een)i(made,)e(or)g(if)h(a)f(call)h(to)f
Fz(F)l(eedbac)o(kBu\013er)120 841 y FC(is)h(made)f(while)i(in)f
(feedbac)o(k)g(mo)q(de.)191 900 y(While)23 b(in)f(feedbac)o(k)f(mo)q
(de,)i(eac)o(h)e(primitiv)o(e)i(that)d(w)o(ould)i(b)q(e)g(rasterized)g
(\(or)120 957 y(bitmap)h(or)e(call)i(to)e Fz(Dra)o(wPixels)g
FC(or)h Fz(Cop)o(yPixels)p FC(,)g(if)g(the)g(raster)f(p)q(osition)i(is)
120 1013 y(v)m(alid\))d(generates)e(a)g(blo)q(c)o(k)h(of)f(v)m(alues)i
(that)d(get)h(copied)i(in)o(to)e(the)g(feedbac)o(k)h(arra)o(y)l(.)120
1070 y(If)d(doing)h(so)e(w)o(ould)h(cause)g(the)g(n)o(um)o(b)q(er)g(of)
f(en)o(tries)i(to)e(exceed)h(the)g(maxim)o(um,)g(the)120
1126 y(blo)q(c)o(k)h(is)f(partially)h(written)f(so)g(as)f(to)h(\014ll)h
(the)f(arra)o(y)f(\(if)h(there)g(is)g(an)o(y)g(ro)q(om)f(left)h(at)120
1183 y(all\).)22 b(The)15 b(\014rst)g(blo)q(c)o(k)i(of)e(v)m(alues)h
(generated)g(after)e(the)i(GL)f(en)o(ters)h(feedbac)o(k)f(mo)q(de)120
1239 y(is)22 b(placed)g(at)e(the)h(b)q(eginning)h(of)f(the)g(feedbac)o
(k)g(arra)o(y)l(,)g(with)g(subsequen)o(t)g(blo)q(c)o(ks)120
1296 y(follo)o(wing.)g(Eac)o(h)15 b(blo)q(c)o(k)h(b)q(egins)h(with)e(a)
g(co)q(de)h(indicating)h(the)f(primitiv)o(e)g(t)o(yp)q(e,)f(fol-)120
1352 y(lo)o(w)o(ed)j(b)o(y)f(v)m(alues)i(that)d(describ)q(e)j(the)f
(primitiv)o(e's)g(v)o(ertices)g(and)f(asso)q(ciated)h(data.)120
1409 y(En)o(tries)f(are)f(also)h(written)f(for)g(bitmaps)h(and)g(pixel)
h(rectangles.)24 b(F)l(eedbac)o(k)17 b(o)q(ccurs)120
1465 y(after)i(p)q(olygon)g(culling)i(\(section)e(3.5.1\))e(and)i
Fz(P)o(olygonMo)q(de)g FC(in)o(terpretation)g(of)120
1521 y(p)q(olygons)f(\(section)g(3.5.4\))d(has)i(tak)o(en)g(place.)27
b(It)17 b(ma)o(y)g(also)g(o)q(ccur)h(after)e(p)q(olygons)120
1578 y(with)i(more)f(than)g(three)g(edges)g(are)g(brok)o(en)g(up)h(in)o
(to)f(triangles)g(\(if)h(the)f(GL)g(imple-)120 1634 y(men)o(tation)e
(renders)f(p)q(olygons)h(b)o(y)g(p)q(erforming)f(this)h(decomp)q
(osition\).)21 b Fy(x)p FC(,)14 b Fy(y)r FC(,)g(and)h
Fy(z)120 1691 y FC(co)q(ordinates)h(returned)h(b)o(y)e(feedbac)o(k)h
(are)g(windo)o(w)g(co)q(ordinates;)g(if)g Fy(w)g FC(is)h(returned,)120
1747 y(it)i(is)g(in)g(clip)h(co)q(ordinates.)29 b(No)18
b(depth)h(o\013set)f(arithmetic)g(\(section)h(3.5.5\))d(is)j(p)q(er-)
120 1804 y(formed)h(on)f(the)g Fy(z)j FC(v)m(alues.)34
b(In)20 b(the)f(case)h(of)f(bitmaps)h(and)f(pixel)i(rectangles,)g(the)
120 1860 y(co)q(ordinates)d(returned)g(are)g(those)f(of)g(the)h(curren)
o(t)f(raster)g(p)q(osition.)28 b(The)18 b(texture)120
1917 y(co)q(ordinates)f(and)f(colors)g(returned)h(are)e(those)h
(resulting)h(from)f(the)g(clipping)i(op)q(er-)120 1973
y(ations)d(as)g(describ)q(ed)i(in)f(\(section)g(2.13.8\).)191
2033 y(The)11 b(ordering)g(rules)h(for)e(GL)h(command)g(in)o
(terpretation)g(also)g(apply)h(in)f(feedbac)o(k)120 2090
y(mo)q(de.)20 b(Eac)o(h)15 b(command)g(m)o(ust)g(b)q(e)g(fully)i(in)o
(terpreted)e(and)h(its)f(e\013ects)g(on)g(b)q(oth)g(GL)120
2146 y(state)h(and)h(the)f(v)m(alues)i(to)e(b)q(e)h(written)g(to)f(the)
g(feedbac)o(k)h(bu\013er)g(completed)g(b)q(efore)120
2202 y(a)e(subsequen)o(t)h(command)f(ma)o(y)g(b)q(e)h(executed.)191
2262 y(The)d(GL)g(is)g(tak)o(en)f(out)h(of)f(feedbac)o(k)h(mo)q(de)g(b)
o(y)g(calling)h Fz(RenderMo)q(de)f FC(with)g(an)120 2319
y(argumen)o(t)j(v)m(alue)h(other)e(than)h Fr(FEEDBACK)p
FC(.)e(When)j(called)g(while)h(in)e(feedbac)o(k)h(mo)q(de,)120
2375 y Fz(RenderMo)q(de)i FC(returns)f(the)g(n)o(um)o(b)q(er)h(of)f(v)m
(alues)i(placed)f(in)h(the)e(feedbac)o(k)h(arra)o(y)120
2432 y(and)e(resets)g(the)f(feedbac)o(k)h(arra)o(y)f(p)q(oin)o(ter)h
(to)f(b)q(e)h Fv(bu\013er)p FC(.)24 b(The)17 b(return)g(v)m(alue)h(nev)
o(er)120 2488 y(exceeds)f(the)e(maxim)o(um)g(n)o(um)o(b)q(er)g(of)g(v)m
(alues)i(passed)e(to)g Fz(F)l(eedbac)o(kBu\013er)p FC(.)p
eop
%%Page: 138 147
138 146 bop 332 137 a FC(138)622 b Fx(CHAPTER)15 b(5.)35
b(SPECIAL)16 b(FUNCTIONS)p 439 242 1280 2 v 438 299 2
57 v 581 282 a FC(T)o(yp)q(e)p 825 299 V 168 w(co)q(ordinates)p
1101 299 V 50 w(color)p 1247 299 V 50 w(texture)p 1440
299 V 49 w(total)f(v)m(alues)p 1718 299 V 439 301 1280
2 v 439 309 V 438 365 2 57 v 611 348 a Fr(2D)p 825 365
V 196 w Fy(x)p FC(,)f Fy(y)p 1101 365 V 201 w FC({)p
1247 365 V 123 w({)p 1440 365 V 169 w(2)p 1718 365 V
439 367 1280 2 v 438 423 2 57 v 611 406 a Fr(3D)p 825
423 V 196 w Fy(x)p FC(,)g Fy(y)r FC(,)h Fy(z)p 1101 423
V 150 w FC({)p 1247 423 V 123 w({)p 1440 423 V 169 w(3)p
1718 423 V 439 425 1280 2 v 438 482 2 57 v 549 465 a
Fr(3D)p 596 465 14 2 v 15 w(COLOR)p 825 482 2 57 v 133
w Fy(x)p FC(,)f Fy(y)r FC(,)h Fy(z)p 1101 482 V 150 w(k)p
1247 482 V 122 w FC({)p 1440 482 V 169 w(3)10 b(+)h Fy(k)p
1718 482 V 439 483 1280 2 v 438 540 2 57 v 464 523 a
Fr(3D)p 511 523 14 2 v 16 w(COLOR)p 637 523 V 14 w(TEXTURE)p
825 540 2 57 v 49 w Fy(x)p FC(,)j Fy(y)r FC(,)h Fy(z)p
1101 540 V 150 w(k)p 1247 540 V 122 w FC(4)p 1440 540
V 169 w(7)10 b(+)h Fy(k)p 1718 540 V 439 541 1280 2 v
438 598 2 57 v 464 581 a Fr(4D)p 511 581 14 2 v 16 w(COLOR)p
637 581 V 14 w(TEXTURE)p 825 598 2 57 v 49 w Fy(x)p FC(,)j
Fy(y)r FC(,)h Fy(z)r FC(,)g Fy(w)p 1101 598 V 87 w(k)p
1247 598 V 122 w FC(4)p 1440 598 V 169 w(8)10 b(+)h Fy(k)p
1718 598 V 439 599 1280 2 v 332 726 a FC(T)l(able)k(5.2:)j(Corresp)q
(ondence)d(of)e(feedbac)o(k)h(t)o(yp)q(e)g(to)f(n)o(um)o(b)q(er)i(of)e
(v)m(alues)i(p)q(er)f(v)o(ertex.)332 783 y Fy(k)i FC(is)g(1)f(in)h
(color)f(index)i(mo)q(de)e(and)h(4)e(in)i(R)o(GBA)g(mo)q(de.)403
926 y(If)g(writing)h(a)e(v)m(alue)j(to)d(the)h(feedbac)o(k)h(bu\013er)f
(w)o(ould)g(cause)g(more)g(v)m(alues)h(to)f(b)q(e)332
982 y(written)e(than)f(the)g(sp)q(eci\014ed)j(maxim)o(um)d(n)o(um)o(b)q
(er)h(of)f(v)m(alues,)i(then)f(the)f(v)m(alue)i(is)f(not)332
1038 y(written)i(and)f(an)h(o)o(v)o(er\015o)o(w)e(\015ag)h(is)h(set.)21
b(In)16 b(this)g(case,)g Fz(RenderMo)q(de)f FC(returns)g
FB(\000)p FC(1)332 1095 y(when)j(it)g(is)g(called,)h(after)e(whic)o(h)i
(the)e(o)o(v)o(er\015o)o(w)g(\015ag)g(is)h(reset.)27
b(While)19 b(in)f(feedbac)o(k)332 1151 y(mo)q(de,)12
b(v)m(alues)g(are)e(not)h(guaran)o(teed)f(to)h(b)q(e)g(written)g(in)o
(to)g(the)g(feedbac)o(k)g(bu\013er)g(b)q(efore)332 1208
y Fz(RenderMo)q(de)k FC(is)h(called.)403 1271 y(Figure)i(5.2)f(giv)o
(es)g(a)h(grammar)e(for)h(the)h(arra)o(y)f(pro)q(duced)i(b)o(y)f
(feedbac)o(k.)28 b(Eac)o(h)332 1328 y(primitiv)o(e)14
b(is)f(indicated)h(with)f(a)f(unique)i(iden)o(tifying)g(v)m(alue)g
(follo)o(w)o(ed)f(b)o(y)f(some)g(n)o(um-)332 1384 y(b)q(er)i(of)f(v)o
(ertices.)19 b(A)14 b(v)o(ertex)f(is)h(fed)f(bac)o(k)h(as)f(some)g(n)o
(um)o(b)q(er)g(of)g(\015oating-p)q(oin)o(t)h(v)m(alues)332
1441 y(determined)21 b(b)o(y)e(the)h(feedbac)o(k)g Fv(typ)n(e)p
FC(.)32 b(T)l(able)20 b(5.2)f(giv)o(es)g(the)h(corresp)q(ondence)h(b)q
(e-)332 1497 y(t)o(w)o(een)e(feedbac)o(k)g Fv(bu\013er)g
FC(and)g(the)g(n)o(um)o(b)q(er)g(of)g(v)m(alues)h(returned)f(for)f(eac)
o(h)h(v)o(ertex.)403 1617 y(The)c(command)446 1739 y
Fw(void)29 b Fz(P)o(assThrough)p FC(\()h Fw(float)14
b Fv(token)h FC(\))g Fw(;)332 1860 y FC(ma)o(y)e(b)q(e)i(used)g(as)e(a)
h(mark)o(er)f(in)i(feedbac)o(k)f(mo)q(de.)20 b Fv(token)14
b FC(is)g(returned)h(as)e(if)i(it)f(w)o(ere)g(a)332 1917
y(primitiv)o(e;)g(it)f(is)g(indicated)h(with)e(its)h(o)o(wn)f(unique)h
(iden)o(tifying)h(v)m(alue.)21 b(The)12 b(ordering)332
1973 y(of)17 b(an)o(y)g Fz(P)o(assThrough)g FC(commands)g(with)g(resp)q
(ect)h(to)f(primitiv)o(e)i(sp)q(eci\014cation)g(is)332
2030 y(main)o(tained)14 b(b)o(y)f(feedbac)o(k.)20 b Fz(P)o(assThrough)
12 b FC(ma)o(y)g(not)h(o)q(ccur)g(b)q(et)o(w)o(een)g
Fz(Begin)h FC(and)332 2086 y Fz(End)p FC(.)20 b(It)c(has)f(no)g
(e\013ect)g(when)g(the)h(GL)f(is)h(not)e(in)i(feedbac)o(k)g(mo)q(de.)
403 2149 y(The)f(state)f(required)h(for)f(feedbac)o(k)i(is)f(the)g(p)q
(oin)o(ter)g(to)f(the)h(feedbac)o(k)g(arra)o(y)l(,)e(the)332
2206 y(maxim)o(um)f(n)o(um)o(b)q(er)f(of)g(v)m(alues)i(that)e(ma)o(y)g
(b)q(e)h(placed)h(there,)f(and)f(the)h(feedbac)o(k)g
Fv(typ)n(e)p FC(.)332 2262 y(An)22 b(o)o(v)o(er\015o)o(w)d(\015ag)i(is)
h(required)g(to)e(indicate)j(whether)e(the)h(maxim)o(um)f(allo)o(w)o
(able)332 2319 y(n)o(um)o(b)q(er)f(of)g(feedbac)o(k)h(v)m(alues)g(has)f
(b)q(een)h(written;)h(initially)h(this)e(\015ag)e(is)i(cleared.)332
2375 y(These)16 b(state)g(v)m(ariables)h(are)f(GL)g(clien)o(t)h(state.)
k(F)l(eedbac)o(k)c(also)e(relies)j(on)e(the)g(same)332
2432 y(mo)q(de)g(\015ag)g(as)f(selection)i(to)e(indicate)j(whether)e
(the)g(GL)f(is)i(in)f(feedbac)o(k,)g(selection,)332 2488
y(or)f(normal)g(rendering)h(mo)q(de.)p eop
%%Page: 139 148
139 147 bop 120 137 a Fx(5.3.)34 b(FEEDBA)o(CK)1061 b
FC(139)120 451 y(feedbac)o(k-list:)255 507 y(feedbac)o(k-item)17
b(feedbac)o(k-list)255 564 y(feedbac)o(k-item)120 676
y(feedbac)o(k-item:)255 733 y(p)q(oin)o(t)255 789 y(line-segmen)o(t)255
846 y(p)q(olygon)255 902 y(bitmap)255 959 y(pixel-rectangle)255
1015 y(passthrough)120 1128 y(p)q(oin)o(t:)255 1185 y
Fr(POINT)p 368 1185 14 2 v 15 w(TOKEN)d FC(v)o(ertex)120
1241 y(line-segmen)o(t:)255 1297 y Fr(LINE)p 346 1297
V 15 w(TOKEN)g FC(v)o(ertex)h(v)o(ertex)255 1354 y Fr(LINE)p
346 1354 V 15 w(RESET)p 471 1354 V 15 w(TOKEN)f FC(v)o(ertex)h(v)o
(ertex)120 1410 y(p)q(olygon:)255 1467 y Fr(POLYGON)p
412 1467 V 15 w(TOKEN)f Fy(n)h FC(p)q(olygon-sp)q(ec)120
1523 y(p)q(olygon-sp)q(ec:)255 1580 y(p)q(olygon-sp)q(ec)i(v)o(ertex)
255 1636 y(v)o(ertex)e(v)o(ertex)g(v)o(ertex)120 1693
y(bitmap:)255 1749 y Fr(BITMAP)p 390 1749 V 15 w(TOKEN)f
FC(v)o(ertex)943 507 y(pixel-rectangle:)1078 564 y Fr(DRAW)p
1169 564 V 15 w(PIXEL)p 1294 564 V 14 w(TOKEN)g FC(v)o(ertex)1078
620 y Fr(COPY)p 1169 620 V 15 w(PIXEL)p 1294 620 V 14
w(TOKEN)g FC(v)o(ertex)943 676 y(passthrough:)1078 733
y Fr(PASS)p 1169 733 V 15 w(THROUGH)p 1338 733 V 14 w(TOKEN)g
Fy(f)943 846 y FC(v)o(ertex:)943 902 y Fr(2D)p FC(:)1078
959 y Fy(f)20 b(f)943 1015 y Fr(3D)p FC(:)1078 1072 y
Fy(f)g(f)g(f)943 1128 y Fr(3D)p 990 1128 V 15 w(COLOR)p
FC(:)1078 1185 y Fy(f)g(f)g(f)h FC(color)943 1241 y Fr(3D)p
990 1241 V 15 w(COLOR)p 1115 1241 V 15 w(TEXTURE)p FC(:)1078
1297 y Fy(f)f(f)g(f)h FC(color)15 b(tex)943 1354 y Fr(4D)p
990 1354 V 15 w(COLOR)p 1115 1354 V 15 w(TEXTURE)p FC(:)1078
1410 y Fy(f)20 b(f)g(f)h(f)f FC(color)15 b(tex)943 1523
y(color:)1078 1580 y Fy(f)20 b(f)g(f)h(f)1078 1636 y(f)943
1749 y FC(tex:)1078 1806 y Fy(f)f(f)g(f)h(f)120 1970
y FC(Figure)c(5.2:)k(F)l(eedbac)o(k)16 b(syn)o(tax.)23
b Fy(f)e FC(is)c(a)e(\015oating-p)q(oin)o(t)i(n)o(um)o(b)q(er.)24
b Fy(n)16 b FC(is)h(a)f(\015oating-)120 2027 y(p)q(oin)o(t)24
b(in)o(teger)f(giving)g(the)g(n)o(um)o(b)q(er)g(of)f(v)o(ertices)h(in)h
(a)e(p)q(olygon.)43 b(The)23 b(sym)o(b)q(ols)120 2083
y(ending)16 b(with)p 371 2083 15 2 v 32 w Fw(TOKEN)d
FC(are)h(sym)o(b)q(olic)h(\015oating-p)q(oin)o(t)g(constan)o(ts.)k(The)
14 b(lab)q(els)i(under)120 2140 y(the)k(\\v)o(ertex")f(rule)i(sho)o(w)e
(the)h(di\013eren)o(t)g(data)f(returned)h(for)f(v)o(ertices)h(dep)q
(ending)120 2196 y(on)c(the)f(feedbac)o(k)h Fv(typ)n(e)p
FC(.)k Fr(LINE)p 651 2196 14 2 v 15 w(TOKEN)15 b FC(and)g
Fr(LINE)p 967 2196 V 15 w(RESET)p 1092 2196 V 15 w(TOKEN)f
FC(are)h(iden)o(tical)i(except)120 2253 y(that)h(the)g(latter)g(is)g
(returned)h(only)g(when)f(the)g(line)i(stipple)g(is)e(reset)g(for)g
(that)f(line)120 2309 y(segmen)o(t.)p eop
%%Page: 140 149
140 148 bop 332 137 a FC(140)622 b Fx(CHAPTER)15 b(5.)35
b(SPECIAL)16 b(FUNCTIONS)332 286 y Fs(5.4)66 b(Displa)n(y)24
b(Lists)332 388 y FC(A)17 b(displa)o(y)i(list)f(is)g(simply)g(a)f
(group)g(of)g(GL)g(commands)g(and)h(argumen)o(ts)e(that)h(has)332
444 y(b)q(een)d(stored)f(for)g(subsequen)o(t)h(execution.)20
b(The)14 b(GL)f(ma)o(y)g(b)q(e)g(instructed)i(to)d(pro)q(cess)332
501 y(a)18 b(particular)h(displa)o(y)h(list)f(\(p)q(ossibly)g(rep)q
(eatedly\))h(b)o(y)e(pro)o(viding)h(a)f(n)o(um)o(b)q(er)h(that)332
557 y(uniquely)h(sp)q(eci\014es)g(it.)29 b(Doing)18 b(so)g(causes)h
(the)f(commands)g(within)h(the)f(list)h(to)f(b)q(e)332
614 y(executed)h(just)e(as)g(if)h(they)g(w)o(ere)f(giv)o(en)h(normally)
l(.)28 b(The)18 b(only)g(exception)h(p)q(ertains)332
670 y(to)e(commands)g(that)g(rely)g(up)q(on)h(clien)o(t)h(state.)26
b(When)17 b(suc)o(h)h(a)f(command)g(is)h(accu-)332 727
y(m)o(ulated)d(in)o(to)g(the)g(displa)o(y)h(list)g(\(that)e(is,)h(when)
g(issued,)h(not)f(when)g(executed\),)g(the)332 783 y(clien)o(t)g(state)
e(in)h(e\013ect)f(at)g(that)g(time)h(applies)h(to)e(the)g(command.)19
b(Only)c(serv)o(er)e(state)332 840 y(is)18 b(a\013ected)g(when)g(the)g
(command)g(is)g(executed.)29 b(As)18 b(alw)o(a)o(ys,)f(p)q(oin)o(ters)h
(whic)o(h)h(are)332 896 y(passed)f(as)e(argumen)o(ts)h(to)f(commands)h
(are)g(dereferenced)i(when)f(the)f(command)g(is)332 952
y(issued.)34 b(\(V)l(ertex)20 b(arra)o(y)e(p)q(oin)o(ters)i(are)f
(dereferenced)i(when)f(the)g(commands)f Fz(Ar-)332 1009
y(ra)o(yElemen)o(t)p FC(,)i Fz(Dra)o(wArra)o(ys)p FC(,)e(or)h
Fz(Dra)o(wElemen)o(ts)g FC(are)h(accum)o(ulated)g(in)o(to)g(a)332
1065 y(displa)o(y)16 b(list.\))403 1122 y(A)f(displa)o(y)h(list)g(is)g
(b)q(egun)g(b)o(y)f(calling)446 1209 y Fw(void)29 b Fz(NewList)p
FC(\()i Fw(uint)15 b Fv(n)p Fw(,)f(enum)h Fv(mo)n(de)g
FC(\))g Fw(;)332 1297 y Fv(n)g FC(is)g(a)g(p)q(ositiv)o(e)h(in)o(teger)
f(to)g(whic)o(h)h(the)f(displa)o(y)h(list)g(that)e(follo)o(ws)h(is)h
(assigned,)f(and)332 1353 y Fv(mo)n(de)20 b FC(is)g(a)f(sym)o(b)q(olic)
h(constan)o(t)f(that)f(con)o(trols)h(the)h(b)q(eha)o(vior)g(of)f(the)g
(GL)h(during)332 1410 y(displa)o(y)e(list)g(creation.)26
b(If)17 b Fv(mo)n(de)h FC(is)f Fr(COMPILE)p FC(,)f(then)h(commands)g
(are)g(not)g(executed)332 1466 y(as)g(they)g(are)g(placed)h(in)g(the)f
(displa)o(y)h(list.)26 b(If)17 b Fv(mo)n(de)h FC(is)f
Fr(COMPILE)p 1476 1466 14 2 v 14 w(AND)p 1556 1466 V
16 w(EXECUTE)e FC(then)332 1523 y(commands)f(are)g(executed)h(as)f
(they)g(are)g(encoun)o(tered,)h(then)g(placed)g(in)g(the)f(displa)o(y)
332 1579 y(list.)21 b(If)15 b Fy(n)e FC(=)g(0,)i(then)g(the)g(error)g
Fr(INVALID)p 1060 1579 V 14 w(VALUE)f FC(is)i(generated.)403
1636 y(After)h(calling)i Fz(NewList)f FC(all)g(subsequen)o(t)g(GL)g
(commands)f(are)g(placed)i(in)f(the)332 1692 y(displa)o(y)e(list)g
(\(in)g(the)f(order)g(the)h(commands)f(are)f(issued\))j(un)o(til)f(a)f
(call)h(to)446 1780 y Fw(void)29 b Fz(EndList)p FC(\()j
Fw(void)38 b FC(\))15 b Fw(;)332 1867 y FC(o)q(ccurs,)g(after)f(whic)o
(h)i(the)f(GL)g(returns)g(to)f(its)h(normal)g(command)g(execution)h
(state.)332 1924 y(It)11 b(is)g(only)g(when)g Fz(EndList)h
FC(o)q(ccurs)f(that)f(the)h(sp)q(eci\014ed)h(displa)o(y)g(list)f(is)h
(actually)f(asso-)332 1980 y(ciated)h(with)f(the)g(index)h(indicated)h
(with)e Fz(NewList)p FC(.)19 b(The)11 b(error)f Fr(INVALID)p
1619 1980 V 14 w(OPERATION)332 2037 y FC(is)20 b(generated)f(if)h
Fz(EndList)h FC(is)f(called)h(without)f(a)f(previous)h(matc)o(hing)f
Fz(NewList)p FC(,)332 2093 y(or)f(if)h Fz(NewList)g FC(is)g(called)i(a)
d(second)h(time)g(b)q(efore)g(calling)h Fz(EndList)p
FC(.)31 b(The)19 b(error)332 2149 y Fr(OUT)p 401 2149
V 15 w(OF)p 460 2149 V 15 w(MEMORY)12 b FC(is)i(generated)g(if)f
Fz(EndList)i FC(is)f(called)h(and)e(the)h(sp)q(eci\014ed)h(displa)o(y)g
(list)332 2206 y(cannot)h(b)q(e)i(stored)e(b)q(ecause)h(insu\016cien)o
(t)i(memory)d(is)h(a)o(v)m(ailable.)26 b(In)17 b(this)g(case)f(GL)332
2262 y(implemen)o(tations)g(of)e(revision)i(1.1)e(or)h(greater)e
(insure)j(that)e(no)h(c)o(hange)g(is)g(made)g(to)332
2319 y(the)k(previous)g(con)o(ten)o(ts)e(of)h(the)h(displa)o(y)g(list,)
h(if)e(an)o(y)l(,)h(and)g(that)e(no)h(other)g(c)o(hange)332
2375 y(is)g(made)f(to)g(the)g(GL)h(state,)f(except)g(for)g(the)h(state)
e(c)o(hanged)i(b)o(y)f(execution)h(of)f(GL)332 2432 y(commands)e(when)h
(the)f(displa)o(y)h(list)g(mo)q(de)g(is)g Fr(COMPILE)p
1310 2432 V 14 w(AND)p 1390 2432 V 15 w(EXECUTE)p FC(.)403
2488 y(Once)g(de\014ned,)g(a)f(displa)o(y)h(list)g(is)g(executed)g(b)o
(y)f(calling)p eop
%%Page: 141 150
141 149 bop 120 137 a Fx(5.4.)34 b(DISPLA)l(Y)17 b(LISTS)978
b FC(141)234 286 y Fw(void)30 b Fz(CallList)p FC(\()i
Fw(uint)14 b Fv(n)h FC(\))g Fw(;)120 383 y Fv(n)f FC(giv)o(es)g(the)h
(index)g(of)f(the)g(displa)o(y)h(list)g(to)f(b)q(e)g(called.)22
b(This)14 b(causes)h(the)f(commands)120 439 y(sa)o(v)o(ed)h(in)g(the)g
(displa)o(y)h(list)g(to)e(b)q(e)h(executed,)g(in)h(order,)e(just)h(as)f
(if)h(they)g(w)o(ere)g(issued)120 496 y(without)23 b(using)g(a)f
(displa)o(y)i(list.)42 b(If)23 b Fy(n)i FC(=)g(0,)f(then)e(the)h(error)
f Fr(INVALID)p 1442 496 14 2 v 14 w(VALUE)f FC(is)120
552 y(generated.)191 609 y(The)15 b(command)234 706 y
Fw(void)30 b Fz(CallLists)p FC(\()h Fw(sizei)15 b Fv(n)p
Fw(,)g(enum)f Fv(typ)n(e)p Fw(,)h(void)g Fv(*lists)f
FC(\))h Fw(;)120 802 y FC(pro)o(vides)22 b(an)f(e\016cien)o(t)g(means)g
(for)f(executing)i(a)f(n)o(um)o(b)q(er)g(of)f(displa)o(y)i(lists.)38
b Fv(n)20 b FC(is)120 859 y(an)g(in)o(teger)f(indicating)i(the)f(n)o
(um)o(b)q(er)f(of)g(displa)o(y)i(lists)f(to)e(b)q(e)i(called,)i(and)d
Fv(lists)f FC(is)120 915 y(a)h(p)q(oin)o(ter)g(that)f(p)q(oin)o(ts)i
(to)e(an)h(arra)o(y)e(of)i(o\013sets.)29 b(Eac)o(h)19
b(o\013set)f(is)h(constructed)g(as)120 971 y(determined)d(b)o(y)e
Fv(lists)e FC(as)i(follo)o(ws.)20 b(First,)13 b Fv(typ)n(e)h
FC(ma)o(y)f(b)q(e)i(one)f(of)g(the)g(constan)o(ts)f Fr(BYTE)p
FC(,)120 1028 y Fr(UNSIGNED)p 299 1028 V 14 w(BYTE)p
FC(,)d Fr(SHORT)p FC(,)g Fr(UNSIGNED)p 733 1028 V 14
w(SHORT)p FC(,)g Fr(INT)p FC(,)g Fr(UNSIGNED)p 1145 1028
V 15 w(INT)p FC(,)g(or)h Fr(FLOAT)f FC(indicating)120
1084 y(that)i(the)g(arra)o(y)f(p)q(oin)o(ted)i(to)f(b)o(y)g
Fv(lists)f FC(is)h(an)g(arra)o(y)f(of)h(b)o(ytes,)g(unsigned)i(b)o
(ytes,)e(shorts,)120 1141 y(unsigned)19 b(shorts,)e(in)o(tegers,)g
(unsigned)i(in)o(tegers,)e(or)g(\015oats,)g(resp)q(ectiv)o(ely)l(.)27
b(In)18 b(this)120 1197 y(case)k(eac)o(h)g(o\013set)f(is)h(found)h(b)o
(y)e(simply)j(con)o(v)o(erting)d(eac)o(h)h(arra)o(y)f(elemen)o(t)i(to)e
(an)120 1254 y(in)o(teger)e(\(\015oating)e(p)q(oin)o(t)i(v)m(alues)g
(are)f(truncated\).)28 b(F)l(urther,)18 b Fv(typ)n(e)g
FC(ma)o(y)f(b)q(e)i(one)f(of)120 1310 y Fr(2)p 145 1310
V 16 w(BYTES)p FC(,)12 b Fr(3)p 318 1310 V 16 w(BYTES)p
FC(,)g(or)i Fr(4)p 546 1310 V 15 w(BYTES)p FC(,)f(indicating)i(that)f
(the)g(arra)o(y)e(con)o(tains)i(sequences)h(of)120 1367
y(2,)k(3,)h(or)e(4)h(unsigned)h(b)o(ytes,)f(in)h(whic)o(h)f(case)g(eac)
o(h)g(in)o(teger)g(o\013set)f(is)i(constructed)120 1423
y(according)c(to)f(the)g(follo)o(wing)h(algorithm:)120
1520 y Fy(of)5 b(f)g(set)14 b FB( )f FC(0)120 1577 y
Fz(for)i Fy(i)d FC(=)h(1)i Fz(to)h Fy(b)199 1633 y(of)5
b(f)g(set)14 b FB( )f Fy(of)5 b(f)g(set)16 b FC(shifted)g(left)g(8)f
(bits)199 1690 y Fy(of)5 b(f)g(set)14 b FB( )f Fy(of)5
b(f)g(set)11 b FC(+)g Fy(by)r(te)199 1746 y FC(adv)m(ance)16
b(to)f(next)g Fv(byte)g FC(in)h(the)f(arra)o(y)120 1842
y Fy(b)g FC(is)h(2,)e(3,)h(or)f(4,)h(as)g(indicated)i(b)o(y)e
Fv(typ)n(e)p FC(.)20 b(If)15 b Fy(n)e FC(=)g(0,)i Fz(CallLists)h
FC(do)q(es)g(nothing.)191 1900 y(Eac)o(h)c(of)g(the)h
Fv(n)e FC(constructed)i(o\013sets)e(is)i(tak)o(en)f(in)h(order)f(and)h
(added)g(to)f(a)g(displa)o(y)120 1956 y(list)20 b(base)e(to)g(obtain)h
(a)f(displa)o(y)h(list)h(n)o(um)o(b)q(er.)30 b(F)l(or)18
b(eac)o(h)g(n)o(um)o(b)q(er,)h(the)g(indicated)120 2012
y(displa)o(y)e(list)f(is)f(executed.)21 b(The)16 b(base)f(is)h(set)f(b)
o(y)g(calling)234 2109 y Fw(void)30 b Fz(ListBase)p FC(\()h
Fw(uint)14 b Fv(b)n(ase)h FC(\))g Fw(;)120 2205 y FC(to)g(sp)q(ecify)h
(the)g(o\013set.)191 2262 y(Indicating)j(a)e(displa)o(y)h(list)h(index)
f(that)f(do)q(es)g(not)g(corresp)q(ond)h(to)f(an)o(y)g(displa)o(y)120
2319 y(list)c(has)f(no)f(e\013ect.)19 b Fz(CallList)14
b FC(or)d Fz(CallLists)i FC(ma)o(y)e(app)q(ear)h(inside)i(a)d(displa)o
(y)i(list.)20 b(\(If)120 2375 y(the)13 b Fv(mo)n(de)f
FC(supplied)i(to)e Fz(NewList)g FC(is)h Fr(COMPILE)p
940 2375 V 14 w(AND)p 1020 2375 V 15 w(EXECUTE)p FC(,)d(then)j(the)f
(appropriate)120 2432 y(lists)19 b(are)f(executed,)h(but)f(the)g
Fz(CallList)i FC(or)e Fz(CallLists)p FC(,)h(rather)f(than)g(those)f
(lists')120 2488 y(constituen)o(t)h(commands,)g(is)g(placed)h(in)f(the)
g(list)g(under)h(construction.\))27 b(T)l(o)17 b(a)o(v)o(oid)p
eop
%%Page: 142 151
142 150 bop 332 137 a FC(142)622 b Fx(CHAPTER)15 b(5.)35
b(SPECIAL)16 b(FUNCTIONS)332 286 y FC(the)k(p)q(ossibilit)o(y)i(of)d
(in\014nite)i(recursion)f(resulting)h(from)e(displa)o(y)i(lists)f
(calling)h(one)332 343 y(another,)d(an)f(implemen)o(tation)i(dep)q
(enden)o(t)g(limit)g(is)g(placed)f(on)g(the)g(nesting)g(lev)o(el)332
399 y(of)c(displa)o(y)i(lists)f(during)h(displa)o(y)f(list)h
(execution.)k(This)c(limit)g(m)o(ust)e(b)q(e)h(at)f(least)g(64.)403
456 y(Tw)o(o)g(commands)h(are)g(pro)o(vided)h(to)e(manage)h(displa)o(y)
h(list)g(indices.)446 550 y Fw(uint)29 b Fz(GenLists)p
FC(\()i Fw(sizei)15 b Fv(s)f FC(\))h Fw(;)332 644 y FC(returns)k(an)g
(in)o(teger)g Fy(n)g FC(suc)o(h)h(that)e(the)h(indices)i
Fy(n;)8 b(:)g(:)g(:)d(;)j(n)13 b FC(+)g Fy(s)g FB(\000)g
FC(1)18 b(are)h(previously)332 700 y(un)o(used)c(\(i.e.)k(there)14
b(are)g Fy(s)g FC(previously)h(un)o(used)f(displa)o(y)h(list)g(indices)
h(starting)d(at)g Fy(n)p FC(\).)332 757 y Fz(GenLists)19
b FC(also)f(has)g(the)h(e\013ect)f(of)g(creating)g(an)g(empt)o(y)g
(displa)o(y)i(list)f(for)e(eac)o(h)i(of)332 813 y(the)13
b(indices)i Fy(n;)8 b(:)g(:)g(:)d(;)j(n)d FC(+)g Fy(s)g
FB(\000)g FC(1,)14 b(so)f(that)f(these)h(indices)i(all)f(b)q(ecome)f
(used.)20 b Fz(GenLists)332 870 y FC(returns)15 b(0)h(if)g(there)f(is)h
(no)f(group)h(of)f Fy(s)g FC(con)o(tiguous)h(previously)h(un)o(used)f
(displa)o(y)h(list)332 926 y(indices,)g(or)e(if)g Fy(s)e
FC(=)g(0.)446 1020 y Fw(boolean)29 b Fz(IsList)p FC(\()h
Fw(uint)15 b Fv(list)f FC(\))h Fw(;)332 1114 y FC(returns)g
Fr(TRUE)f FC(if)i Fv(list)f FC(is)g(the)h(index)g(of)f(some)g(displa)o
(y)h(list.)403 1171 y(A)f(con)o(tiguous)g(group)g(of)g(displa)o(y)h
(lists)g(ma)o(y)f(b)q(e)g(deleted)i(b)o(y)e(calling)446
1265 y Fw(void)29 b Fz(DeleteLists)p FC(\()j Fw(uint)14
b Fv(list)p Fw(,)h(sizei)f Fv(r)n(ange)h FC(\))g Fw(;)332
1359 y FC(where)20 b Fv(list)g FC(is)g(the)g(index)i(of)d(the)h
(\014rst)g(displa)o(y)h(list)g(to)e(b)q(e)i(deleted)g(and)g
Fv(r)n(ange)e FC(is)332 1415 y(the)c(n)o(um)o(b)q(er)f(of)g(displa)o(y)
i(lists)f(to)e(b)q(e)j(deleted.)k(All)c(information)f(ab)q(out)f(the)g
(displa)o(y)332 1472 y(lists)h(is)g(lost,)f(and)h(the)f(indices)i(b)q
(ecome)f(un)o(used.)21 b(Indices)16 b(to)e(whic)o(h)h(no)f(displa)o(y)i
(list)332 1528 y(corresp)q(onds)g(are)e(ignored.)21 b(If)15
b Fy(r)q(ang)r(e)e FC(=)g(0,)h(nothing)i(happ)q(ens.)403
1585 y(Certain)h(commands,)h(when)g(called)i(while)f(compiling)g(a)f
(displa)o(y)h(list,)f(are)g(not)332 1641 y(compiled)f(in)o(to)e(the)g
(displa)o(y)h(list)g(but)f(are)g(executed)h(immediately)l(.)22
b(These)15 b(are:)20 b Fz(Is-)332 1698 y(List)p FC(,)c
Fz(GenLists)p FC(,)f Fz(DeleteLists)p FC(,)h Fz(F)l(eedbac)o(kBu\013er)
p FC(,)d Fz(SelectBu\013er)p FC(,)i Fz(Render-)332 1754
y(Mo)q(de)p FC(,)d Fz(V)l(ertexP)o(oin)o(ter)p FC(,)d
Fz(NormalP)o(oin)o(ter)p FC(,)i Fz(ColorP)o(oin)o(ter)p
FC(,)g Fz(IndexP)o(oin)o(ter)p FC(,)332 1811 y Fz(T)l(exCo)q(ordP)o
(oin)o(ter)p FC(,)31 b Fz(EdgeFlagP)o(oin)o(ter)p FC(,)j
Fz(In)o(terlea)o(v)o(edArra)o(ys)o FC(,)c Fz(Enable-)332
1867 y(Clien)o(tState)p FC(,)25 b Fz(DisableClien)o(tState)p
FC(,)i Fz(PushClien)o(tA)o(ttrib)p FC(,)d Fz(P)o(opClien)o(tA)o(t-)332
1924 y(trib)p FC(,)f Fz(ReadPixels)p FC(,)f Fz(PixelStore)p
FC(,)h Fz(GenT)l(extures)p FC(,)e Fz(DeleteT)l(extures)p
FC(,)h Fz(Are-)332 1980 y(T)l(exturesResiden)o(t)p FC(,)j
Fz(IsT)l(exture)p FC(,)g Fz(Flush)p FC(,)g Fz(Finish)p
FC(,)i(as)c(w)o(ell)i(as)f Fz(IsEnabled)332 2036 y FC(and)g(all)i(of)d
(the)i Fz(Get)f FC(commands)g(\(see)g(Chapter)g(6\).)46
b Fz(T)l(exImage2D)24 b FC(is)h(exe-)332 2093 y(cuted)16
b(immediately)h(only)f(when)g(the)f Fv(tar)n(get)g FC(argumen)o(t)g(is)
h Fr(PROXY)p 1502 2093 14 2 v 15 w(TEXTURE)p 1671 2093
V 14 w(2D)p FC(,)e(and)332 2149 y Fz(T)l(exImage1D)j
FC(is)g(executed)h(immediatedly)g(only)g(when)f(the)g
Fv(tar)n(get)g FC(argumen)o(t)f(is)332 2206 y Fr(PROXY)p
445 2206 V 15 w(TEXTURE)p 614 2206 V 14 w(1D)p FC(.)403
2262 y(Displa)o(y)e(lists)h(require)g(one)f(bit)g(of)g(state)f(to)g
(indicate)j(whether)e(a)g(GL)g(command)332 2319 y(should)20
b(b)q(e)g(executed)g(immediately)h(or)d(placed)i(in)g(a)f(displa)o(y)h
(list.)32 b(In)20 b(the)f(initial)332 2375 y(state,)24
b(commands)e(are)h(executed)g(immediately)l(.)45 b(If)23
b(the)g(bit)g(indicates)h(displa)o(y)332 2432 y(list)18
b(creation,)f(an)g(index)h(is)f(required)h(to)e(indicate)j(the)e
(curren)o(t)g(displa)o(y)g(list)h(b)q(eing)332 2488 y(de\014ned.)24
b(Another)16 b(bit)h(indicates,)g(during)g(displa)o(y)h(list)f
(creation,)f(whether)g(or)g(not)p eop
%%Page: 143 152
143 151 bop 120 137 a Fx(5.5.)34 b Fz(FLUSH)16 b Fx(AND)f
Fz(FINISH)829 b FC(143)120 286 y(commands)20 b(should)h(b)q(e)f
(executed)h(as)f(they)g(are)f(compiled)j(in)o(to)d(the)h(displa)o(y)h
(list.)120 343 y(One)g(in)o(teger)e(is)h(required)h(for)e(the)h(curren)
o(t)f Fz(ListBase)i FC(setting;)g(its)f(initial)i(v)m(alue)120
399 y(is)f(zero.)34 b(Finally)l(,)22 b(state)d(m)o(ust)h(b)q(e)g(main)o
(tained)h(to)f(indicate)h(whic)o(h)g(in)o(tegers)f(are)120
456 y(curren)o(tly)c(in)g(use)f(as)g(displa)o(y)h(list)g(indices.)22
b(In)16 b(the)f(initial)i(state,)d(no)h(indices)i(are)e(in)120
512 y(use.)120 654 y Fs(5.5)67 b(Flush)23 b(and)g(Finish)120
756 y FC(The)16 b(command)234 842 y Fw(void)30 b Fz(Flush)p
FC(\()g Fw(void)38 b FC(\))15 b Fw(;)120 929 y FC(indicates)h(that)d
(all)i(commands)e(that)h(ha)o(v)o(e)f(previously)i(b)q(een)g(sen)o(t)f
(to)f(the)h(GL)g(m)o(ust)120 986 y(complete)i(in)g(\014nite)g(time.)191
1042 y(The)f(command)234 1129 y Fw(void)30 b Fz(Finish)p
FC(\()g Fw(void)39 b FC(\))15 b Fw(;)120 1216 y FC(forces)f(all)g
(previous)g(GL)g(commands)f(to)g(complete.)20 b Fz(Finish)14
b FC(do)q(es)g(not)f(return)h(un)o(til)120 1272 y(all)19
b(e\013ects)e(from)g(previously)i(issued)g(commands)f(on)g(GL)f(clien)o
(t)i(and)f(serv)o(er)g(state)120 1329 y(and)e(the)f(framebu\013er)g
(are)g(fully)h(realized.)120 1470 y Fs(5.6)67 b(Hin)n(ts)120
1572 y FC(Certain)18 b(asp)q(ects)f(of)g(GL)g(b)q(eha)o(vior,)h(when)g
(there)f(is)h(ro)q(om)f(for)f(v)m(ariation,)i(ma)o(y)f(b)q(e)120
1628 y(con)o(trolled)f(with)g(hin)o(ts.)k(A)15 b(hin)o(t)h(is)g(sp)q
(eci\014ed)h(using)234 1715 y Fw(void)30 b Fz(Hin)o(t)p
FC(\()g Fw(enum)15 b Fv(tar)n(get)p Fw(,)g(enum)f Fv(hint)h
FC(\))g Fw(;)120 1802 y Fv(tar)n(get)j FC(is)f(a)g(sym)o(b)q(olic)h
(constan)o(t)e(indicating)j(the)f(b)q(eha)o(vior)f(to)g(b)q(e)h(con)o
(trolled,)g(and)120 1858 y Fv(hint)23 b FC(is)g(a)g(sym)o(b)q(olic)h
(constan)o(t)d(indicating)k(what)d(t)o(yp)q(e)h(of)f(b)q(eha)o(vior)i
(is)f(desired.)120 1915 y Fv(tar)n(get)d FC(ma)o(y)g(b)q(e)g(one)g(of)g
Fr(PERSPECTIVE)p 812 1915 14 2 v 13 w(CORRECTION)p 1045
1915 V 14 w(HINT)p FC(,)f(indicating)i(the)g(desired)120
1971 y(qualit)o(y)12 b(of)f(parameter)g(in)o(terp)q(olation;)i
Fr(POINT)p 924 1971 V 15 w(SMOOTH)p 1071 1971 V 14 w(HINT)p
FC(,)d(indicating)j(the)f(desired)120 2028 y(sampling)g(qualit)o(y)f
(of)e(p)q(oin)o(ts;)j Fr(LINE)p 739 2028 V 15 w(SMOOTH)p
886 2028 V 15 w(HINT)p FC(,)d(indicating)j(the)e(desired)i(sampling)120
2084 y(qualit)o(y)g(of)f(lines;)j Fr(POLYGON)p 588 2084
V 14 w(SMOOTH)p 734 2084 V 14 w(HINT)p FC(,)c(indicating)j(the)f
(desired)g(sampling)g(qualit)o(y)120 2141 y(of)j(p)q(olygons;)g(and)g
Fr(FOG)p 531 2141 V 15 w(HINT)p FC(,)f(indicating)j(whether)e(fog)g
(calculations)h(are)f(done)g(p)q(er)120 2197 y(pixel)k(or)d(p)q(er)i(v)
o(ertex.)24 b Fv(hint)17 b FC(m)o(ust)f(b)q(e)i(one)f(of)f
Fr(FASTEST)p FC(,)g(indicating)i(that)f(the)g(most)120
2254 y(e\016cien)o(t)d(option)f(should)h(b)q(e)g(c)o(hosen;)g
Fr(NICEST)p FC(,)d(indicating)k(that)d(the)i(highest)f(qualit)o(y)120
2310 y(option)23 b(should)g(b)q(e)g(c)o(hosen;)j(and)d
Fr(DONT)p 845 2310 V 15 w(CARE)p FC(,)e(indicating)j(no)e(preference)h
(in)h(the)120 2366 y(matter.)191 2423 y(The)14 b(in)o(terpretation)f
(of)g(hin)o(ts)h(is)g(implemen)o(tation)h(dep)q(enden)o(t.)21
b(An)14 b(implemen-)120 2479 y(tation)h(ma)o(y)g(ignore)g(them)g(en)o
(tirely)l(.)p eop
%%Page: 144 153
144 152 bop 332 598 a Ft(Chapter)31 b(6)332 807 y FA(State)39
b(and)g(State)g(Requests)332 1030 y FC(The)17 b(v)m(alues)i(of)d(most)h
(GL)g(state)f(v)m(ariables)i(can)g(b)q(e)f(obtained)h(using)g(a)f(set)f
(of)h Fz(Get)332 1086 y FC(commands.)j(There)15 b(are)g(four)g
(commands)g(for)f(obtaining)j(simple)f(state)f(v)m(ariables:)446
1182 y Fw(void)29 b Fz(GetBo)q(olean)o(v)p FC(\()j Fw(enum)14
b Fv(value)p Fw(,)h(boolean)g Fv(*data)h FC(\))f Fw(;)446
1239 y(void)29 b Fz(GetIn)o(tegerv)p FC(\()h Fw(enum)14
b Fv(value)p Fw(,)h(int)g Fv(*data)h FC(\))f Fw(;)446
1295 y(void)29 b Fz(GetFloatv)p FC(\()j Fw(enum)14 b
Fv(value)p Fw(,)h(float)g Fv(*data)h FC(\))f Fw(;)446
1352 y(void)29 b Fz(GetDoublev)p FC(\()i Fw(enum)15 b
Fv(value)p Fw(,)g(double)f Fv(*data)i FC(\))f Fw(;)332
1448 y FC(The)j(commands)f(obtain)h(b)q(o)q(olean,)g(in)o(teger,)g
(\015oating-p)q(oin)o(t,)g(or)f(double-precisi)q(on)332
1505 y(state)d(v)m(ariables.)21 b Fv(value)14 b FC(is)h(a)f(sym)o(b)q
(olic)i(constan)o(t)e(indicating)i(the)f(state)e(v)m(ariable)j(to)332
1561 y(return,)f Fv(data)g FC(is)h(a)e(p)q(oin)o(ter)i(to)e(an)h(arra)o
(y)f(of)g(the)h(indicated)i(t)o(yp)q(e)e(in)g(whic)o(h)h(to)e(place)332
1617 y(the)h(returned)h(data.)j(In)d(addition)446 1714
y Fw(boolean)29 b Fz(IsEnabled)p FC(\()i Fw(enum)14 b
Fv(value)i FC(\))e Fw(;)332 1810 y FC(can)i(b)q(e)g(used)g(to)f
(determine)i(if)f Fv(value)g FC(is)g(curren)o(tly)g(enabled)h(\(as)e
(with)h Fz(Enable)p FC(\))h(or)332 1867 y(disabled.)403
1924 y(If)f(a)g Fz(Get)g FC(command)g(is)g(issued)h(that)f(returns)g(v)
m(alue)h(t)o(yp)q(es)f(di\013eren)o(t)g(from)f(the)332
1980 y(t)o(yp)q(e)j(of)f(the)g(v)m(alue)i(b)q(eing)g(obtained,)f(a)f(t)
o(yp)q(e)h(con)o(v)o(ersion)f(is)h(p)q(erformed.)27 b(If)18
b Fz(Get-)332 2037 y(Bo)q(olean)o(v)j FC(is)f(called,)j(a)c
(\015oating-p)q(oin)o(t)i(or)e(in)o(teger)h(v)m(alue)i(con)o(v)o(erts)d
(to)g Fr(FALSE)g FC(if)332 2093 y(and)g(only)h(if)f(it)h(is)f(zero)g
(\(otherwise)g(it)h(con)o(v)o(erts)e(to)g Fr(TRUE)p FC(\).)g(If)h
Fz(GetIn)o(tegerv)f FC(\(or)332 2149 y(an)o(y)f(of)h(the)f
Fz(Get)h FC(commands)g(b)q(elo)o(w\))g(is)g(called,)i(a)d(b)q(o)q
(olean)i(v)m(alue)g(is)f(in)o(terpreted)332 2206 y(as)13
b(either)i(1)e(or)g(0,)g(and)h(a)f(\015oating-p)q(oin)o(t)h(v)m(alue)h
(is)f(rounded)h(to)e(the)g(nearest)h(in)o(teger,)332
2262 y(unless)k(the)f(v)m(alue)h(is)f(a)g(an)g(R)o(GBA)f(color)h(comp)q
(onen)o(t,)g(a)g Fz(DepthRange)h FC(v)m(alue,)g(a)332
2319 y(depth)h(bu\013er)f(clear)h(v)m(alue,)h(or)d(a)h(normal)h(co)q
(ordinate.)29 b(In)19 b(these)f(cases,)h(the)f Fz(Get)332
2375 y FC(command)e(con)o(v)o(erts)f(the)h(\015oating-p)q(oin)o(t)g(v)m
(alue)h(to)f(an)g(in)o(teger)g(according)g(the)g Fw(INT)332
2432 y FC(en)o(try)k(of)f(T)l(able)i(4.7;)g(a)e(v)m(alue)i(not)f(in)h
([)p FB(\000)p FC(1)p Fy(;)8 b FC(1])18 b(con)o(v)o(erts)h(to)g(an)h
(unde\014ned)i(v)m(alue.)332 2488 y(If)c Fz(GetFloatv)g
FC(is)g(called,)g(a)f(b)q(o)q(olean)h(v)m(alue)h(is)e(in)o(terpreted)h
(as)f(either)h(1)p Fy(:)p FC(0)e(or)h(0)p Fy(:)p FC(0,)1045
2613 y(144)p eop
%%Page: 145 154
145 153 bop 1547 137 a FC(145)120 286 y(an)14 b(in)o(teger)h(is)g(co)q
(erced)g(to)e(\015oating-p)q(oin)o(t,)i(and)f(a)g(double-precision)j
(\015oating-p)q(oin)o(t)120 343 y(v)m(alue)23 b(is)f(con)o(v)o(erted)f
(to)g(single-precision.)42 b(Analogous)21 b(con)o(v)o(ersions)h(are)f
(carried)120 399 y(out)d(in)i(the)e(case)g(of)g Fz(GetDoublev)p
FC(.)31 b(If)18 b(a)g(v)m(alue)i(is)f(so)f(large)g(in)i(magnitude)e
(that)120 456 y(it)j(cannot)f(b)q(e)g(represen)o(ted)h(with)f(the)h
(requested)f(t)o(yp)q(e,)h(then)f(the)h(nearest)f(v)m(alue)120
512 y(represen)o(table)c(using)g(the)g(requested)f(t)o(yp)q(e)h(is)f
(returned.)191 572 y(Other)k(commands)f(exist)g(to)g(obtain)h(state)e
(v)m(ariables)j(that)e(are)g(indexed)i(b)o(y)e(a)120
628 y(target.)h(These)d(are)234 735 y Fw(void)30 b Fz(GetClipPlane)p
FC(\()i Fw(enum)14 b Fv(plane)p Fw(,)h(double)f Fv(e)n(qn[4])g
FC(\))h Fw(;)234 791 y(void)30 b Fz(GetLigh)o(t)p FB(f)p
Fz(if)p FB(g)p Fz(v)p FC(\()h Fw(enum)14 b Fv(light)p
Fw(,)h(enum)g Fv(value)p Fw(,)g(T)g Fv(data)h FC(\))f
Fw(;)234 848 y(void)30 b Fz(GetMaterial)p FB(f)p Fz(if)p
FB(g)p Fz(v)p FC(\()h Fw(enum)15 b Fv(fac)n(e)p Fw(,)f(enum)h
Fv(value)p Fw(,)g(T)g Fv(data)h FC(\))f Fw(;)234 904
y(void)30 b Fz(GetT)l(exEn)o(v)p FB(f)p Fz(if)p FB(g)p
Fz(v)p FC(\()f Fw(enum)14 b Fv(env)p Fw(,)h(enum)f Fv(value)p
Fw(,)h(T)g Fv(data)h FC(\))f Fw(;)234 961 y(void)30 b
Fz(GetT)l(exGen)p FB(f)p Fz(if)p FB(g)p Fz(v)p FC(\()f
Fw(enum)15 b Fv(c)n(o)n(or)n(d)p Fw(,)g(enum)f Fv(value)p
Fw(,)h(T)g Fv(data)h FC(\))f Fw(;)234 1017 y(void)53
b Fz(GetT)l(exP)o(arameter)p FB(f)p Fz(if)p FB(g)p Fz(v)p
FC(\()e Fw(enum)27 b Fv(tar)n(get)p Fw(,)i(enum)d Fv(value)p
Fw(,)302 1074 y(T)15 b Fv(data)h FC(\))f Fw(;)234 1130
y(void)39 b Fz(GetT)l(exLev)o(elP)o(arameter)p FB(f)p
Fz(if)p FB(g)p Fz(v)p FC(\()e Fw(enum)19 b Fv(tar)n(get)p
Fw(,)i(int)f Fv(lo)n(d)p Fw(,)302 1187 y(enum)15 b Fv(value)p
Fw(,)g(T)g Fv(data)h FC(\))f Fw(;)234 1243 y(void)30
b Fz(GetPixelMap)p FB(f)p Fz(ui)18 b(us)f(f)p FB(g)p
Fz(v)p FC(\()30 b Fw(enum)14 b Fv(map)p Fw(,)i(T)f Fv(data)h
FC(\))f Fw(;)234 1299 y(void)30 b Fz(GetMap)p FB(f)p
Fz(ifd)p FB(g)p Fz(v)p FC(\()g Fw(enum)14 b Fv(map)p
Fw(,)i(enum)f Fv(value)p Fw(,)g(T)g Fv(data)h FC(\))f
Fw(;)120 1406 y Fz(GetClipPlane)24 b FC(alw)o(a)o(ys)c(returns)i(four)f
(double-precision)j(v)m(alues)f(in)f Fv(e)n(qn)p FC(;)i(these)120
1462 y(are)16 b(the)g(co)q(e\016cien)o(ts)h(of)f(the)g(plane)h
(equation)f(of)g Fv(plane)f FC(in)i(ey)o(e)f(co)q(ordinates)h(\(these)
120 1519 y(co)q(ordinates)f(are)f(those)g(that)f(w)o(ere)h(computed)h
(when)f(the)h(plane)g(w)o(as)e(sp)q(eci\014ed\).)191
1579 y Fz(GetLigh)o(t)g FC(places)g(information)e(ab)q(out)h
Fv(value)g FC(\(a)f(sym)o(b)q(olic)h(constan)o(t\))f(for)g
Fv(light)120 1635 y FC(\(also)j(a)g(sym)o(b)q(olic)h(constan)o(t\))e
(in)i Fv(data)p FC(.)21 b Fr(POSITION)13 b FC(or)i Fr(SPOT)p
1163 1635 14 2 v 15 w(DIRECTION)e FC(returns)i(v)m(al-)120
1691 y(ues)f(in)h(ey)o(e)e(co)q(ordinates)h(\(again,)f(these)h(are)f
(the)h(co)q(ordinates)f(that)g(w)o(ere)g(computed)120
1748 y(when)j(the)f(p)q(osition)i(or)d(direction)j(w)o(as)d(sp)q
(eci\014ed\).)191 1808 y Fz(GetMaterial)p FC(,)27 b Fz(GetT)l(exGen)p
FC(,)f Fz(GetT)l(exEn)o(v)p FC(,)f(and)f Fz(GetT)l(exP)o(arameter)120
1864 y FC(are)11 b(similar)i(to)e Fz(GetLigh)o(t)p FC(,)i(placing)f
(information)g(ab)q(out)f Fv(value)h FC(for)e(the)i(target)e(indi-)120
1920 y(cated)j(b)o(y)f(their)h(\014rst)e(argumen)o(t)h(in)o(to)g
Fv(data)p FC(.)20 b(The)12 b Fv(fac)n(e)g FC(argumen)o(t)g(to)f
Fz(GetMaterial)120 1977 y FC(m)o(ust)k(b)q(e)h(either)g
Fr(FRONT)f FC(or)g Fr(BACK)p FC(,)f(indicating)j(the)f(fron)o(t)e(or)h
(bac)o(k)g(material,)h(resp)q(ec-)120 2033 y(tiv)o(ely)l(.)30
b(The)18 b Fv(env)g FC(argumen)o(t)f(to)g Fz(GetT)l(exEn)o(v)h
FC(m)o(ust)f(curren)o(tly)i(b)q(e)g Fr(TEXTURE)p 1526
2033 V 14 w(ENV)p FC(.)120 2090 y(The)d Fv(c)n(o)n(or)n(d)e
FC(argumen)o(t)h(to)f Fz(GetT)l(exGen)h FC(m)o(ust)g(b)q(e)g(one)h(of)e
Fr(S)p FC(,)h Fr(T)p FC(,)f Fr(R)p FC(,)h(or)f Fr(Q)p
FC(.)h(F)l(or)f Fz(Get-)120 2146 y(T)l(exGen)p FC(,)20
b Fr(EYE)p 400 2146 V 15 w(LINEAR)e FC(co)q(e\016cien)o(ts)i(are)f
(returned)g(in)h(the)g(ey)o(e)f(co)q(ordinates)g(that)120
2203 y(w)o(ere)c(computed)g(when)g(the)g(plane)g(w)o(as)f(sp)q
(eci\014ed;)j Fr(OBJECT)p 1168 2203 V 14 w(LINEAR)d FC(co)q(e\016cien)o
(ts)h(are)120 2259 y(returned)h(in)g(ob)s(ject)f(co)q(ordinates.)191
2319 y(F)l(or)24 b Fz(GetT)l(exP)o(arameter)f FC(and)i
Fz(GetT)l(exLev)o(elP)o(arameter)p FC(,)g Fv(tar)n(get)f
FC(m)o(ust)120 2375 y(curren)o(tly)29 b(b)q(e)g Fr(TEXTURE)p
560 2375 V 15 w(1D)e FC(or)h Fr(TEXTURE)p 869 2375 V
15 w(2D)p FC(,)f(indicating)j(the)f(curren)o(tly)g(b)q(ound)120
2432 y(one-dimensional)g(or)d(t)o(w)o(o-dimensional)h(texture)f(ob)s
(ject,)i(or)d Fr(PROXY)p 1391 2432 V 15 w(TEXTURE)p 1560
2432 V 14 w(1D)120 2488 y FC(or)i Fr(PROXY)p 301 2488
V 15 w(TEXTURE)p 470 2488 V 14 w(2D)p FC(,)g(indicating)i(the)f
(one-dimensional)i(or)d(t)o(w)o(o-dimensional)p eop
%%Page: 146 155
146 154 bop 332 137 a FC(146)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)332 286
y FC(pro)o(xy)29 b(state)h(v)o(ector.)63 b Fv(value)30
b FC(is)g(a)g(sym)o(b)q(olic)h(v)m(alue)g(indicating)h(whic)o(h)e(tex-)
332 343 y(ture)39 b(parameter)f(is)i(to)f(b)q(e)g(obtained.)93
b(The)39 b Fv(lo)n(d)g FC(argumen)o(t)f(to)h Fz(Get-)332
399 y(T)l(exLev)o(elP)o(arameter)18 b FC(determines)i(whic)o(h)g(lev)o
(el-of-detail's)h(state)e(is)g(returned.)332 456 y(If)35
b(the)h Fv(lo)n(d)e FC(argumen)o(t)h(is)g(less)h(than)f(zero)g(or)f(if)
i(it)f(is)h(larger)e(than)h(the)332 512 y(maxim)o(um)j(allo)o(w)o(able)
h(lev)o(el-of-detail)h(then)e(the)g(error)f Fr(INVALID)p
1609 512 14 2 v 14 w(VALUE)g FC(o)q(c-)332 569 y(curs.)29
b(Queries)20 b(of)d Fr(TEXTURE)p 834 569 V 15 w(RED)p
915 569 V 15 w(SIZE)p FC(,)g Fr(TEXTURE)p 1202 569 V
14 w(GREEN)p 1326 569 V 15 w(SIZE)p FC(,)g Fr(TEXTURE)p
1613 569 V 14 w(BLUE)p 1715 569 V 15 w(SIZE)p FC(,)332
625 y Fr(TEXTURE)p 489 625 V 14 w(ALPHA)p 613 625 V 15
w(SIZE)p FC(,)26 b Fr(TEXTURE)p 909 625 V 14 w(LUMINANCE)p
1121 625 V 14 w(SIZE)p FC(,)g(and)h Fr(TEXTURE)p 1516
625 V 14 w(INTENSITY)p 1728 625 V 14 w(SIZE)332 682 y
FC(return)22 b(the)g(actual)g(resolutions)g(of)f(the)h(stored)f(image)h
(arra)o(y)f(comp)q(onen)o(ts,)i(not)332 738 y(the)g(resolutions)h(sp)q
(eci\014ed)h(when)f(the)f(image)g(arra)o(y)f(w)o(as)g(de\014ned.)45
b(Queries)25 b(of)332 795 y Fr(TEXTURE)p 489 795 V 14
w(WIDTH)p FC(,)9 b Fr(TEXTURE)p 789 795 V 14 w(HEIGHT)p
FC(,)g(and)h Fr(TEXTURE)p 1194 795 V 15 w(BORDER)e FC(return)j(the)f
(width,)h(heigh)o(t,)332 851 y(and)24 b(b)q(order)g(as)f(sp)q
(eci\014ed)j(when)e(the)f(image)h(arra)o(y)e(w)o(as)h(created.)45
b(The)24 b(in)o(ter-)332 907 y(nal)f(format)e(of)h(the)g(image)h(arra)o
(y)e(is)i(queried)g(as)f Fr(TEXTURE)p 1419 907 V 14 w(INTERNAL)p
1609 907 V 14 w(FORMAT)p FC(,)f(or)332 964 y(as)15 b
Fr(TEXTURE)p 545 964 V 14 w(COMPONENTS)e FC(for)i(compatibilit)o(y)i
(with)e(GL)g(v)o(ersion)h(1.0.)403 1024 y(F)l(or)f Fz(GetPixelMap)p
FC(,)h(the)g Fv(map)g FC(m)o(ust)f(b)q(e)i(a)e(map)g(name)h(from)f(T)l
(able)i(3.3.)j(F)l(or)332 1081 y Fz(GetMap)p FC(,)c Fv(map)g
FC(m)o(ust)f(b)q(e)h(one)g(of)f(the)g(map)h(t)o(yp)q(es)f(describ)q(ed)
j(in)e(section)g(5.1,)e(and)332 1137 y Fv(value)h FC(m)o(ust)g(b)q(e)h
(one)f(of)g Fr(ORDER)p FC(,)f Fr(COEFF)p FC(,)f(or)i
Fr(DOMAIN)p FC(.)403 1197 y Fz(GetT)l(exImage)g FC(is)g(used)h(to)f
(obtain)g(texture)g(images.)446 1306 y Fw(void)57 b Fz(GetT)l(exImage)p
FC(\()g Fw(enum)29 b Fv(tex)p Fw(,)j(int)d Fv(lo)n(d)p
Fw(,)j(enum)c Fv(format)p Fw(,)514 1363 y(enum)15 b Fv(typ)n(e)p
Fw(,)g(void)f Fv(*img)i FC(\))e Fw(;)332 1472 y FC(It)20
b(is)h(somewhat)e(di\013eren)o(t)h(from)g(the)g(other)f(get)h
(commands;)i Fv(tex)e FC(is)h(a)e(sym)o(b)q(olic)332
1528 y(v)m(alue)j(indicating)h(whic)o(h)f(texture)f(is)g(to)g(b)q(e)g
(obtained.)38 b Fr(TEXTURE)p 1532 1528 V 15 w(1D)20 b
FC(indicates)j(a)332 1585 y(one-dimensional)18 b(texture,)d(while)j
Fr(TEXTURE)p 1114 1585 V 14 w(2D)d FC(indicates)i(a)f(t)o(w)o
(o-dimensional)g(tex-)332 1641 y(ture.)j Fv(lo)n(d)13
b FC(is)h(a)e(lev)o(el-of-detail)k(n)o(um)o(b)q(er,)d
Fv(format)h FC(is)g(a)f(pixel)i(format)c(from)i(T)l(able)h(3.5,)332
1698 y Fv(typ)n(e)d FC(is)h(a)f(pixel)i(t)o(yp)q(e)f(from)f(T)l(able)h
(3.4,)f(and)g Fv(img)g FC(is)h(a)f(p)q(oin)o(ter)h(to)f(a)g(blo)q(c)o
(k)h(of)f(memory)l(.)332 1754 y Fz(GetT)l(exImage)19
b FC(obtains)f(comp)q(onen)o(t)h(groups)g(from)f(a)g(texture)g(image)h
(with)g(the)332 1811 y(indicated)d(lev)o(el-of-detail.)23
b(The)14 b(comp)q(onen)o(ts)h(are)f(assigned)i(among)d(R,)i(G,)f(B,)g
(and)332 1867 y(A)h(according)h(to)f(T)l(able)h(6.1,)e(starting)h(with)
g(the)h(\014rst)f(group)g(in)h(the)f(\014rst)g(ro)o(w,)f(and)332
1924 y(con)o(tin)o(uing)h(b)o(y)e(obtaining)i(groups)e(in)h(order)f
(from)g(eac)o(h)h(ro)o(w)e(and)i(pro)q(ceeding)h(from)332
1980 y(the)g(\014rst)g(ro)o(w)f(to)h(the)g(last.)20 b(These)15
b(groups)g(are)g(then)g(pac)o(k)o(ed)h(and)f(placed)h(in)g(clien)o(t)
332 2037 y(memory)h(as)g(describ)q(ed)j(in)e(section)g(4.3.2)e(under)i
Fz(ReadPixels)p FC(.)27 b(The)18 b(ro)o(w)f(length)332
2093 y(and)e(n)o(um)o(b)q(er)h(of)f(ro)o(ws)f(is)h(determined)i(b)o(y)e
(the)g(size)h(of)f(the)g(texture)g(image)g(\(includ-)332
2149 y(ing)j(an)o(y)e(b)q(orders\).)26 b(Calling)18 b
Fz(GetT)l(exImage)f FC(with)h Fv(lo)n(d)e FC(less)i(than)f(zero)g(or)g
(larger)332 2206 y(than)f(the)g(maxim)o(um)g(allo)o(w)o(able)h(causes)f
(the)g(error)f Fr(INVALID)p 1417 2206 V 15 w(VALUE)p
FC(.)f(Calling)k Fz(Get-)332 2262 y(T)l(exImage)e FC(with)i
Fv(format)f FC(of)g Fr(COLOR)p 992 2262 V 14 w(INDEX)p
FC(,)f Fr(STENCIL)p 1299 2262 V 14 w(INDEX)p FC(,)f(or)i
Fr(DEPTH)p 1619 2262 V 14 w(COMPONENT)332 2319 y FC(causes)e(the)h
(error)e Fr(INVALID)p 818 2319 V 14 w(ENUM)p FC(.)403
2379 y(The)h(command)446 2488 y Fw(boolean)29 b Fz(IsT)l(exture)p
FC(\()g Fw(uint)15 b Fv(textur)n(e)g FC(\))g Fw(;)p eop
%%Page: 147 156
147 155 bop 1547 137 a FC(147)p 420 242 896 2 v 419 299
2 57 v 457 282 a(Base)15 b(In)o(ternal)h(F)l(ormat)p
917 299 V 68 w(R)p 1017 299 V 66 w(G)p 1117 299 V 65
w(B)p 1216 299 V 66 w(A)p 1315 299 V 420 301 896 2 v
420 309 V 419 365 2 57 v 614 348 a Fr(ALPHA)p 917 365
V 232 w FC(0)p 1017 365 V 77 w(0)p 1117 365 V 77 w(0)p
1216 365 V 63 w Fy(A)1276 355 y Fu(t)p 1315 365 V 420
367 896 2 v 419 423 2 57 v 507 406 a Fr(LUMINANCE)d FC(\(or)h
Fr(1)p FC(\))p 917 423 V 114 w Fy(L)976 413 y Fu(t)p
1017 423 V 1056 406 a FC(0)p 1117 423 V 77 w(0)p 1216
423 V 76 w(1)p 1315 423 V 420 425 896 2 v 419 482 2 57
v 445 465 a Fr(LUMINANCE)p 646 465 14 2 v 13 w(ALPHA)g
FC(\(or)h Fr(2)p FC(\))p 917 482 2 57 v 51 w Fy(L)976
472 y Fu(t)p 1017 482 V 1056 465 a FC(0)p 1117 482 V
77 w(0)p 1216 482 V 63 w Fy(A)1276 472 y Fu(t)p 1315
482 V 420 483 896 2 v 419 540 2 57 v 571 523 a Fr(INTENSITY)p
917 540 V 181 w Fy(I)970 530 y Fu(t)p 1017 540 V 1056
523 a FC(0)p 1117 540 V 77 w(0)p 1216 540 V 76 w(1)p
1315 540 V 420 541 896 2 v 419 598 2 57 v 572 581 a Fr(RGB)g
FC(\(or)f Fr(3)p FC(\))p 917 598 V 177 w Fy(R)978 588
y Fu(t)p 1017 598 V 1042 581 a Fy(G)1078 588 y Fu(t)p
1117 598 V 1143 581 a Fy(B)1177 588 y Fu(t)p 1216 598
V 1255 581 a FC(1)p 1315 598 V 420 599 896 2 v 419 656
2 57 v 561 639 a Fr(RGBA)h FC(\(or)f Fr(4)p FC(\))p 917
656 V 166 w Fy(R)978 646 y Fu(t)p 1017 656 V 1042 639
a Fy(G)1078 646 y Fu(t)p 1117 656 V 1143 639 a Fy(B)1177
646 y Fu(t)p 1216 656 V 1242 639 a Fy(A)1276 646 y Fu(t)p
1315 656 V 420 658 896 2 v 120 785 a FC(T)l(able)21 b(6.1:)28
b(T)l(exture)20 b(return)f(v)m(alues.)35 b Fy(R)869 792
y Fu(t)883 785 y FC(,)20 b Fy(G)952 792 y Fu(t)967 785
y FC(,)g Fy(B)1034 792 y Fu(t)1050 785 y FC(,)g Fy(A)1117
792 y Fu(t)1132 785 y FC(,)g Fy(L)1196 792 y Fu(t)1211
785 y FC(,)g(and)g Fy(I)1357 792 y Fu(t)1392 785 y FC(are)f(texture)120
841 y(arra)o(y)14 b(v)m(alues)j(that)d(are)h(assigned)h(to)e(pixel)j(v)
m(alues)g(R,)e(G,)f(B,)h(and)h(A.)120 977 y(returns)d
Fr(TRUE)f FC(if)h Fv(textur)n(e)f FC(is)h(the)g(name)g(of)f(a)g
(texture)g(ob)s(ject.)19 b(If)13 b Fv(textur)n(e)f FC(is)i(zero,)e(or)g
(is)120 1033 y(a)f(non-zero)h(v)m(alue)h(that)d(is)i(not)f(the)g(name)h
(of)f(a)g(texture)g(ob)s(ject,)g(or)g(if)h(an)f(error)g(condi-)120
1090 y(tion)k(o)q(ccurs,)g Fz(IsT)l(exture)f FC(returns)g
Fr(FALSE)p FC(.)g(A)g(name)h(returned)g(b)o(y)g Fz(GenT)l(extures)p
FC(,)120 1146 y(but)h(not)f(y)o(et)f(b)q(ound,)i(is)g(not)f(the)g(name)
g(of)g(a)g(texture)g(ob)s(ject.)191 1203 y(The)g(command)234
1295 y Fw(void)30 b Fz(GetP)o(olygonStipple)p FC(\()h
Fw(void)15 b Fv(*p)n(attern)g FC(\))g Fw(;)120 1387 y
FC(obtains)i(the)f(p)q(olygon)h(stipple.)24 b(The)17
b(pattern)e(is)i(pac)o(k)o(ed)f(in)o(to)h(memory)e(according)120
1443 y(to)f(the)f(pro)q(cedure)i(giv)o(en)g(in)f(section)h(4.3.2)d(for)
h Fz(ReadPixels)p FC(;)h(it)g(is)h(as)e(if)i(the)e Fv(height)120
1500 y FC(and)20 b Fv(width)g FC(passed)g(to)f(that)f(command)i(w)o
(ere)f(b)q(oth)g(equal)i(to)e(32,)g(the)h Fv(typ)n(e)f
FC(w)o(ere)120 1556 y Fr(BITMAP)p FC(,)14 b(and)h(the)h
Fv(format)g FC(w)o(ere)f Fr(COLOR)p 811 1556 14 2 v 14
w(INDEX)p FC(.)191 1612 y(The)g(command)234 1704 y Fw(void)30
b Fz(GetP)o(oin)o(terv)p FC(\()f Fw(enum)15 b Fv(pname)p
Fw(,)g(void)f Fv(**p)n(ar)n(ams)i FC(\))f Fw(;)120 1796
y FC(obtains)22 b(the)f(p)q(oin)o(ter)g(or)g(p)q(oin)o(ters)h(named)f
Fv(pname)g FC(in)h(the)f(arra)o(y)f Fv(p)n(ar)n(ams)p
FC(.)37 b(The)120 1853 y(p)q(ossible)245 b(v)m(alues)g(for)e
Fv(pname)g FC(are)120 1909 y Fr(SELECTION)p 321 1909
V 14 w(BUFFER)p 467 1909 V 15 w(POINTER)p FC(,)14 b Fr(FEEDBACK)p
839 1909 V 14 w(BUFFER)p 985 1909 V 15 w(POINTER)p FC(,)g
Fr(VERTEX)p 1313 1909 V 15 w(ARRAY)p 1438 1909 V 15 w(POINTER)p
FC(,)120 1966 y Fr(NORMAL)p 255 1966 V 15 w(ARRAY)p 380
1966 V 14 w(POINTER)p FC(,)113 b Fr(COLOR)p 784 1966
V 15 w(ARRAY)p 909 1966 V 15 w(POINTER)p FC(,)f Fr(INDEX)p
1313 1966 V 15 w(ARRAY)p 1438 1966 V 15 w(POINTER)p FC(,)120
2022 y Fr(TEXTURE)p 277 2022 V 15 w(COORD)p 402 2022
V 14 w(ARRAY)p 526 2022 V 15 w(POINTER)p FC(,)14 b(and)i
Fr(EDGE)p 899 2022 V 15 w(FLAG)p 1002 2022 V 15 w(ARRAY)p
1127 2022 V 15 w(POINTER)p FC(.)e(Eac)o(h)i(returns)g(a)120
2079 y(single)h(p)q(oin)o(ter)f(v)m(alue.)191 2135 y(Finally)l(,)234
2227 y Fw(ubyte)30 b Fz(*GetString)p FC(\()h Fw(enum)14
b Fv(name)h FC(\))g Fw(;)120 2319 y FC(returns)20 b(a)f(p)q(oin)o(ter)h
(to)g(a)f(static)g(string)h(describing)i(some)d(asp)q(ect)h(of)f(the)h
(curren)o(t)120 2375 y(GL)13 b(connection.)20 b(The)13
b(p)q(ossible)i(v)m(alues)f(for)e Fv(name)g FC(are)h
Fr(VENDOR)p FC(,)e Fr(RENDERER)p FC(,)g Fr(VERSION)p
FC(,)120 2432 y(and)18 b Fr(EXTENSIONS)p FC(.)d(The)j(format)f(of)g
(the)g Fr(RENDERER)f FC(and)i Fr(VERSION)e FC(strings)i(is)g(imple-)120
2488 y(men)o(tation)13 b(dep)q(enden)o(t.)21 b(The)13
b Fr(EXTENSIONS)e FC(string)i(con)o(tains)g(a)g(space)g(separated)g
(list)p eop
%%Page: 148 157
148 156 bop 332 137 a FC(148)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)332 286
y FC(of)20 b(extension)h(names)f(\(The)f(extension)i(names)f(themselv)o
(es)h(do)f(not)g(con)o(tain)g(an)o(y)332 343 y(spaces\);)15
b(the)g Fr(VERSION)f FC(string)h(is)h(laid)g(out)f(as)g(follo)o(ws:)446
428 y Fy(<)p FC(v)o(ersion)g(n)o(um)o(b)q(er)p Fy(><)p
FC(space)p Fy(><)p FC(v)o(endor-sp)q(ec)q(i\014c)k(information)p
Fy(>)332 512 y FC(The)f(v)o(ersion)g(n)o(um)o(b)q(er)f(is)h(either)h
(of)e(the)g(form)35 b Fv(major)p 1313 512 14 2 v 17 w(numb)n(er.minor)p
1609 512 V 17 w(numb)n(er)17 b FC(or)332 569 y Fv(major)p
451 569 V 18 w(numb)n(er.minor)p 748 569 V 16 w(numb)n(er.r)n(ele)n
(ase)p 1056 569 V 15 w(numb)n(er)p FC(,)24 b(where)f(the)f(n)o(um)o(b)q
(ers)h(all)h(ha)o(v)o(e)332 625 y(one)14 b(or)g(more)g(digits.)20
b(The)15 b(v)o(endor)f(sp)q(eci\014c)i(information)e(is)h(optional.)20
b(Ho)o(w)o(ev)o(er,)13 b(if)332 682 y(it)j(is)h(presen)o(t)f(then)g(it)
g(p)q(ertains)h(to)f(the)g(serv)o(er)f(and)h(the)h(format)d(and)i(con)o
(ten)o(ts)g(are)332 738 y(implemen)o(tation)h(dep)q(enden)o(t.)403
795 y Fz(GetString)e FC(returns)g(the)f(v)o(ersion)h(n)o(um)o(b)q(er)g
(\(returned)g(in)g(the)g Fr(VERSION)e FC(string\))332
851 y(and)20 b(the)f(extension)h(names)f(\(returned)h(in)g(the)f
Fr(EXTENSIONS)f FC(string\))h(that)f(can)i(b)q(e)332
907 y(supp)q(orted)13 b(on)f(the)h(connection.)20 b(Th)o(us,)12
b(if)h(the)g(clien)o(t)g(and)g(serv)o(er)f(supp)q(ort)g(di\013eren)o(t)
332 964 y(v)o(ersions)20 b(and/or)g(extensions,)h(a)f(compatible)h(v)o
(ersion)f(and)g(list)h(of)e(extensions)i(is)332 1020
y(returned.)403 1077 y(The)15 b(tables)h(on)f(the)g(follo)o(wing)h
(pages)f(indicate)i(whic)o(h)f(state)f(v)m(ariables)h(are)f(ob-)332
1133 y(tained)e(with)f(what)g(commands.)19 b(State)11
b(v)m(ariables)j(that)d(can)h(b)q(e)h(obtained)g(using)g(an)o(y)332
1190 y(of)18 b Fz(GetBo)q(olean)o(v)p FC(,)j Fz(GetIn)o(tegerv)p
FC(,)d Fz(GetFloatv)p FC(,)i(or)f Fz(GetDoublev)g FC(are)f(listed)332
1246 y(with)f(just)g(one)g(of)f(these)h(commands)g({)f(the)h(one)g
(that)f(is)h(most)f(appropriate)h(giv)o(en)332 1303 y(the)i(t)o(yp)q(e)
g(of)f(the)h(data)g(to)f(b)q(e)h(returned.)32 b(These)19
b(state)f(v)m(ariables)i(cannot)f(b)q(e)g(ob-)332 1359
y(tained)e(using)g Fz(IsEnabled)p FC(.)23 b(Ho)o(w)o(ev)o(er,)16
b(state)f(v)m(ariables)i(for)f(whic)o(h)h Fz(IsEnabled)g
FC(is)332 1416 y(listed)22 b(as)e(the)h(query)g(command)g(can)g(also)f
(b)q(e)i(obtained)f(using)g Fz(GetBo)q(olean)o(v)p FC(,)332
1472 y Fz(GetIn)o(tegerv)p FC(,)f Fz(GetFloatv)p FC(,)h(and)f
Fz(GetDoublev)p FC(.)34 b(State)19 b(v)m(ariables)i(for)e(whic)o(h)332
1528 y(an)o(y)f(other)f(command)h(is)g(listed)h(as)e(the)h(query)g
(command)g(can)g(b)q(e)g(obtained)h(only)332 1585 y(b)o(y)c(using)h
(that)f(command.)403 1641 y(Unless)d(otherwise)f(indicated,)j(m)o
(ulti-v)m(alued)f(state)e(v)m(ariables)h(return)f(their)h(m)o(ul-)332
1698 y(tiple)19 b(v)m(alues)g(in)f(the)f(same)h(order)f(as)g(they)g
(are)h(giv)o(en)f(as)h(argumen)o(ts)e(to)h(the)h(com-)332
1754 y(mands)e(that)g(set)g(them.)23 b(F)l(or)16 b(instance,)h(the)g(t)
o(w)o(o)e Fz(DepthRange)i FC(parameters)f(are)332 1811
y(returned)h(in)h(the)f(order)f Fv(n)h FC(follo)o(w)o(ed)g(b)o(y)g
Fv(f)p FC(.)24 b(Similarly)l(,)19 b(p)q(oin)o(ts)f(for)e(ev)m(aluator)h
(maps)332 1867 y(are)c(returned)g(in)h(the)f(order)g(that)f(they)h(app)
q(eared)h(when)f(passed)h(to)e Fz(Map1)p FC(.)19 b Fz(Map2)332
1924 y FC(returns)f Fz(R)531 1931 y Fu(ij)579 1924 y
FC(in)h(the)f([\()p Fy(uor)q(der)p FC(\))p Fy(i)11 b
FC(+)h Fy(j)s FC(]th)17 b(blo)q(c)o(k)h(of)g(v)m(alues)h(\(see)f(page)f
(130)g(for)h Fy(i)p FC(,)g Fy(j)s FC(,)332 1980 y Fv(uor)n(der)p
FC(,)e(and)f Fz(R)615 1987 y Fu(ij)661 1980 y FC(\).)403
2037 y(Besides)20 b(pro)o(viding)g(a)f(means)g(to)g(obtain)g(the)h(v)m
(alues)g(of)f(state)f(v)m(ariables,)j(the)332 2093 y(GL)h(also)g(pro)o
(vides)g(a)g(means)g(to)f(sa)o(v)o(e)g(and)h(restore)f(groups)h(of)f
(state)g(v)m(ariables.)332 2149 y(The)12 b Fz(PushA)o(ttrib)p
FC(,)e Fz(PushClien)o(tA)o(ttrib)p FC(,)i Fz(P)o(opA)o(ttrib)e
FC(and)i Fz(P)o(opClien)o(tA)o(ttrib)332 2206 y FC(commands)j(are)g
(used)h(for)e(this)i(purp)q(ose.)k(The)c(commands)446
2291 y Fw(void)29 b Fz(PushA)o(ttrib)p FC(\()h Fw(bitfield)14
b Fv(mask)h FC(\))g Fw(;)446 2347 y(void)29 b Fz(PushClien)o(tA)o
(ttrib)p FC(\()h Fw(bitfield)14 b Fv(mask)h FC(\))g Fw(;)332
2432 y FC(tak)o(e)j(a)h(bit)o(wise)h(OR)g(of)f(sym)o(b)q(olic)h
(constan)o(ts)e(indicating)j(whic)o(h)f(groups)f(of)f(state)332
2488 y(v)m(ariables)j(to)e(push)h(on)o(to)e(an)h(attribute)h(stac)o(k.)
31 b Fz(PushA)o(ttrib)19 b FC(uses)h(a)f(serv)o(er)g(at-)p
eop
%%Page: 149 158
149 157 bop 1547 137 a FC(149)120 286 y(tribute)17 b(stac)o(k)f(while)i
Fz(PushClien)o(tA)o(ttrib)f FC(uses)f(a)h(clien)o(t)g(attribute)g(stac)
o(k.)23 b(Eac)o(h)120 343 y(constan)o(t)14 b(refers)h(to)f(a)g(group)g
(of)g(state)g(v)m(ariables.)21 b(The)15 b(classi\014cation)h(of)e(eac)o
(h)h(v)m(ari-)120 399 y(able)h(in)o(to)f(a)f(group)g(is)i(indicated)g
(in)g(the)f(follo)o(wing)g(tables)g(of)g(state)e(v)m(ariables.)21
b(The)120 456 y(error)15 b Fr(STACK)p 345 456 14 2 v
15 w(OVERFLOW)f FC(is)i(generated)f(if)h Fz(PushA)o(ttrib)f
FC(or)g Fz(PushClien)o(tA)o(ttrib)g FC(is)120 512 y(executed)j(while)g
(the)e(corresp)q(onding)h(stac)o(k)f(depth)h(is)g Fr(MAX)p
1166 512 V 15 w(ATTRIB)p 1313 512 V 14 w(STACK)p 1437
512 V 15 w(DEPTH)e FC(or)120 569 y Fr(MAX)p 189 569 V
15 w(CLIENT)p 336 569 V 15 w(ATTRIB)p 483 569 V 14 w(STACK)p
607 569 V 15 w(DEPTH)f FC(resp)q(ectiv)o(ely)l(.)22 b(The)15
b(commands)234 648 y Fw(void)30 b Fz(P)o(opA)o(ttrib)p
FC(\()f Fw(void)38 b FC(\))15 b Fw(;)234 704 y(void)30
b Fz(P)o(opClien)o(tA)o(ttrib)p FC(\()g Fw(void)38 b
FC(\))15 b Fw(;)120 783 y FC(reset)j(the)f(v)m(alues)i(of)e(those)h
(state)e(v)m(ariables)j(that)e(w)o(ere)h(sa)o(v)o(ed)f(with)h(the)f
(last)h(cor-)120 840 y(resp)q(onding)23 b Fz(PushA)o(ttrib)d
FC(or)h Fz(P)o(opClien)o(tA)o(ttrib)p FC(.)38 b(Those)22
b(not)e(sa)o(v)o(ed)h(remain)120 896 y(unc)o(hanged.)h(The)16
b(error)f Fr(STACK)p 684 896 V 15 w(UNDERFLOW)e FC(is)j(generated)g(if)
g Fz(P)o(opA)o(ttrib)f FC(or)g Fz(P)o(op-)120 953 y(Clien)o(tA)o(ttrib)
h FC(is)g(executed)g(while)h(the)e(resp)q(ectiv)o(e)h(stac)o(k)e(is)i
(empt)o(y)l(.)191 1009 y(T)l(able)g(6.2)e(sho)o(ws)h(the)g(attribute)g
(groups)g(with)h(their)f(corresp)q(onding)i(sym)o(b)q(olic)120
1065 y(constan)o(t)e(names)g(and)g(stac)o(ks.)191 1122
y(When)g Fz(PushA)o(ttrib)e FC(is)i(called)i(with)d Fr(TEXTURE)p
1028 1122 V 15 w(BIT)f FC(set,)h(the)h(priorities,)g(b)q(order)120
1178 y(colors,)e(\014lter)g(mo)q(des,)g(and)g(wrap)f(mo)q(des)h(of)f
(the)h(curren)o(tly)g(b)q(ound)g(texture)g(ob)s(jects,)120
1235 y(as)20 b(w)o(ell)h(as)e(the)h(curren)o(t)g(texture)g(bindings)i
(and)e(enables,)i(are)e(pushed)h(on)o(to)e(the)120 1291
y(attribute)k(stac)o(k.)41 b(\(Un)o(b)q(ound)24 b(texture)e(ob)s(jects)
g(are)h(not)f(pushed)i(or)e(restored.\))120 1348 y(When)h(an)g
(attribute)f(set)g(that)g(includes)j(texture)d(information)h(is)g(p)q
(opp)q(ed,)j(the)120 1404 y(bindings)13 b(and)e(enables)h(are)e
(\014rst)g(restored)h(to)f(their)h(pushed)h(v)m(alues,)g(then)f(the)g
(b)q(ound)120 1461 y(texture)16 b(ob)s(jects')g(priorities,)h(b)q
(order)f(colors,)g(\014lter)h(mo)q(des,)f(and)h(wrap)f(mo)q(des)g(are)
120 1517 y(restored)f(to)g(their)g(pushed)i(v)m(alues.)191
1574 y(The)12 b(depth)h(of)e(eac)o(h)i(attribute)e(stac)o(k)h(is)g
(implemen)o(tation)i(dep)q(enden)o(t)f(but)f(m)o(ust)120
1630 y(b)q(e)17 b(at)e(least)h(16.)21 b(The)16 b(state)f(required)i
(for)e(eac)o(h)h(attribute)g(stac)o(k)f(is)h(p)q(oten)o(tially)h(16)120
1686 y(copies)g(of)d(eac)o(h)i(state)e(v)m(ariable,)j(16)d(masks)h
(indicating)i(whic)o(h)g(groups)e(of)f(v)m(ariables)120
1743 y(are)h(stored)f(in)i(eac)o(h)f(stac)o(k)f(en)o(try)l(,)h(and)g
(an)g(attribute)g(stac)o(k)f(p)q(oin)o(ter.)20 b(In)c(the)f(initial)120
1799 y(state,)f(b)q(oth)i(attribute)f(stac)o(ks)f(are)h(empt)o(y)l(.)
191 1856 y(In)g(the)f(tables)h(that)e(follo)o(w,)i(a)f(t)o(yp)q(e)g(is)
h(indicated)h(for)d(eac)o(h)i(v)m(ariable.)21 b(T)l(able)15
b(6.3)120 1912 y(explains)k(these)f(t)o(yp)q(es.)26 b(The)18
b(t)o(yp)q(e)f(actually)h(iden)o(ti\014es)h(all)f(state)f(asso)q
(ciated)g(with)120 1969 y(the)22 b(indicated)h(description;)i(in)d
(certain)f(cases)h(only)f(a)g(p)q(ortion)h(of)e(this)i(state)e(is)120
2025 y(returned.)30 b(This)19 b(is)g(the)g(case)f(with)h(all)h
(matrices,)e(where)h(only)g(the)g(top)f(en)o(try)g(on)120
2082 y(the)e(stac)o(k)e(is)i(returned;)f(with)g(clip)i(planes,)f(where)
f(only)h(the)f(selected)h(clip)h(plane)f(is)120 2138
y(returned,)e(with)e(parameters)g(describing)j(ligh)o(ts,)e(where)g
(only)g(the)g(v)m(alue)g(p)q(ertaining)120 2195 y(to)22
b(the)h(selected)h(ligh)o(t)f(is)g(returned;)k(with)c(textures,)h
(where)f(only)g(the)f(selected)120 2251 y(texture)c(or)f(texture)g
(parameter)f(is)i(returned;)h(and)f(with)f(ev)m(aluator)h(maps,)f
(where)120 2307 y(only)i(the)g(selected)h(map)e(is)h(returned.)30
b(Finally)l(,)20 b(a)e(\\{")g(in)h(the)g(attribute)f(column)120
2364 y(indicates)13 b(that)e(the)g(indicated)j(v)m(alue)e(is)g(not)f
(included)j(in)e(an)o(y)f(attribute)h(group)f(\(and)120
2420 y(th)o(us)k(can)g(not)g(b)q(e)g(pushed)h(or)f(p)q(opp)q(ed)h(with)
f Fz(PushA)o(ttrib)p FC(,)f Fz(PushClien)o(tA)o(ttrib)p
FC(,)120 2477 y Fz(P)o(opA)o(ttrib)p FC(,)g(or)h Fz(P)o(opClien)o(tA)o
(ttrib)p FC(\).)p eop
%%Page: 150 159
150 158 bop 332 137 a FC(150)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)p 533
512 1093 2 v 532 568 2 57 v 562 551 a FC(Stac)o(k)p 699
568 V 112 w(A)o(ttribute)p 1052 568 V 279 w(Constan)o(t)p
1625 568 V 533 570 1093 2 v 533 572 V 532 628 2 57 v
558 611 a(serv)o(er)p 699 628 V 73 w(accum-bu\013er)p
1052 628 V 167 w Fr(ACCUM)p 1284 611 14 2 v 14 w(BUFFER)p
1430 611 V 15 w(BIT)p 1625 628 2 57 v 533 630 1093 2
v 532 686 2 57 v 558 669 a FC(serv)o(er)p 699 686 V 88
w(color-bu\013er)p 1052 686 V 182 w Fr(COLOR)p 1284 669
14 2 v 14 w(BUFFER)p 1430 669 V 15 w(BIT)p 1625 686 2
57 v 533 688 1093 2 v 532 744 2 57 v 558 727 a FC(serv)o(er)p
699 744 V 130 w(curren)o(t)p 1052 744 V 274 w Fr(CURRENT)p
1379 727 14 2 v 15 w(BIT)p 1625 744 2 57 v 533 746 1093
2 v 532 803 2 57 v 558 786 a FC(serv)o(er)p 699 803 V
79 w(depth-bu\013er)p 1052 803 V 174 w Fr(DEPTH)p 1284
786 14 2 v 14 w(BUFFER)p 1430 786 V 15 w(BIT)p 1625 803
2 57 v 533 804 1093 2 v 532 861 2 57 v 558 844 a FC(serv)o(er)p
699 861 V 138 w(enable)p 1052 861 V 295 w Fr(ENABLE)p
1368 844 14 2 v 15 w(BIT)p 1625 861 2 57 v 533 862 1093
2 v 532 919 2 57 v 558 902 a FC(serv)o(er)p 699 919 V
163 w(ev)m(al)p 1052 919 V 341 w Fr(EVAL)p 1346 902 14
2 v 15 w(BIT)p 1625 919 2 57 v 533 920 1093 2 v 532 977
2 57 v 558 960 a FC(serv)o(er)p 699 977 V 171 w(fog)p
1052 977 V 360 w Fr(FOG)p 1335 960 14 2 v 15 w(BIT)p
1625 977 2 57 v 533 979 1093 2 v 532 1035 2 57 v 558
1018 a FC(serv)o(er)p 699 1035 V 161 w(hin)o(t)p 1052
1035 V 340 w Fr(HINT)p 1346 1018 14 2 v 15 w(BIT)p 1625
1035 2 57 v 533 1037 1093 2 v 532 1093 2 57 v 558 1076
a FC(serv)o(er)p 699 1093 V 126 w(ligh)o(ting)p 1052
1093 V 261 w Fr(LIGHTING)p 1390 1076 14 2 v 14 w(BIT)p
1625 1093 2 57 v 533 1095 1093 2 v 532 1151 2 57 v 558
1134 a FC(serv)o(er)p 699 1151 V 166 w(line)p 1052 1151
V 345 w Fr(LINE)p 1346 1134 14 2 v 15 w(BIT)p 1625 1151
2 57 v 533 1153 1093 2 v 532 1209 2 57 v 558 1192 a FC(serv)o(er)p
699 1209 V 171 w(list)p 1052 1209 V 349 w Fr(LIST)p 1346
1192 14 2 v 15 w(BIT)p 1625 1209 2 57 v 533 1211 1093
2 v 532 1267 2 57 v 558 1251 a FC(serv)o(er)p 699 1267
V 154 w(pixel)p 1052 1267 V 271 w Fr(PIXEL)p 1306 1251
14 2 v 14 w(MODE)p 1408 1251 V 15 w(BIT)p 1625 1267 2
57 v 533 1269 1093 2 v 532 1326 2 57 v 558 1309 a FC(serv)o(er)p
699 1326 V 149 w(p)q(oin)o(t)p 1052 1326 V 317 w Fr(POINT)p
1357 1309 14 2 v 15 w(BIT)p 1625 1326 2 57 v 533 1327
1093 2 v 532 1384 2 57 v 558 1367 a FC(serv)o(er)p 699
1384 V 123 w(p)q(olygon)p 1052 1384 V 268 w Fr(POLYGON)p
1379 1367 14 2 v 15 w(BIT)p 1625 1384 2 57 v 533 1385
1093 2 v 532 1442 2 57 v 558 1425 a FC(serv)o(er)p 699
1442 V 49 w(p)q(olygon-stipple)p 1052 1442 V 113 w Fr(POLYGON)p
1295 1425 14 2 v 14 w(STIPPLE)p 1463 1425 V 15 w(BIT)p
1625 1442 2 57 v 533 1443 1093 2 v 532 1500 2 57 v 558
1483 a FC(serv)o(er)p 699 1500 V 138 w(scissor)p 1052
1500 V 282 w Fr(SCISSOR)p 1379 1483 14 2 v 15 w(BIT)p
1625 1500 2 57 v 533 1502 1093 2 v 532 1558 2 57 v 558
1541 a FC(serv)o(er)p 699 1558 V 73 w(stencil-bu\013er)p
1052 1558 V 146 w Fr(STENCIL)p 1306 1541 14 2 v 14 w(BUFFER)p
1452 1541 V 15 w(BIT)p 1625 1558 2 57 v 533 1560 1093
2 v 532 1616 2 57 v 558 1599 a FC(serv)o(er)p 699 1616
V 130 w(texture)p 1052 1616 V 274 w Fr(TEXTURE)p 1379
1599 14 2 v 15 w(BIT)p 1625 1616 2 57 v 533 1618 1093
2 v 532 1674 2 57 v 558 1657 a FC(serv)o(er)p 699 1674
V 104 w(transform)p 1052 1674 V 226 w Fr(TRANSFORM)p
1401 1657 14 2 v 14 w(BIT)p 1625 1674 2 57 v 533 1676
1093 2 v 532 1732 2 57 v 558 1715 a FC(serv)o(er)p 699
1732 V 114 w(viewp)q(ort)p 1052 1732 V 248 w Fr(VIEWPORT)p
1390 1715 14 2 v 14 w(BIT)p 1625 1732 2 57 v 533 1734
1093 2 v 532 1791 2 57 v 558 1774 a FC(serv)o(er)p 699
1791 V 1052 1791 V 507 w Fr(ALL)p 1251 1774 14 2 v 15
w(ATTRIB)p 1398 1774 V 14 w(BITS)p 1625 1791 2 57 v 533
1792 1093 2 v 532 1849 2 57 v 563 1832 a FC(clien)o(t)p
699 1849 V 86 w(v)o(ertex-arra)o(y)p 1052 1849 V 100
w Fr(CLIENT)p 1233 1832 14 2 v 14 w(VERTEX)p 1379 1832
V 15 w(ARRAY)p 1504 1832 V 14 w(BIT)p 1625 1849 2 57
v 533 1850 1093 2 v 532 1907 2 57 v 563 1890 a FC(clien)o(t)p
699 1907 V 104 w(pixel-store)p 1052 1907 V 131 w Fr(CLIENT)p
1244 1890 14 2 v 14 w(PIXEL)p 1368 1890 V 15 w(STORE)p
1493 1890 V 14 w(BIT)p 1625 1907 2 57 v 533 1908 1093
2 v 532 1965 2 57 v 563 1948 a FC(clien)o(t)p 699 1965
V 153 w(select)p 1052 1965 V 148 w Fr(can't)20 b(be)i(pushed)e(or)i
(pop'd)p 1625 1965 V 533 1967 1093 2 v 532 2023 2 57
v 563 2006 a FC(clien)o(t)p 699 2023 V 122 w(feedbac)o(k)p
1052 2023 V 117 w Fr(can't)e(be)i(pushed)e(or)i(pop'd)p
1625 2023 V 533 2025 1093 2 v 532 2081 2 57 v 563 2064
a FC(clien)o(t)p 699 2081 V 1052 2081 V 440 w Fr(ALL)p
1178 2064 14 2 v 15 w(CLIENT)p 1325 2064 V 14 w(ATTRIB)p
1471 2064 V 14 w(BITS)p 1625 2081 2 57 v 533 2083 1093
2 v 804 2210 a FC(T)l(able)16 b(6.2:)j(A)o(ttribute)c(groups)p
eop
%%Page: 151 160
151 159 bop 1547 137 a FC(151)p 264 597 1207 2 v 263
654 2 57 v 289 637 a(T)o(yp)q(e)16 b(co)q(de)p 520 654
V 50 w(Explanation)p 1470 654 V 264 655 1207 2 v 264
664 V 263 720 2 57 v 374 703 a Fy(B)p 520 720 V 138 w
FC(Bo)q(olean)p 1470 720 V 264 722 1207 2 v 263 778 2
57 v 375 761 a Fy(C)p 520 778 V 138 w FC(Color)f(\(\015oating-p)q(oin)o
(t)g(R,)h(G,)e(B,)h(and)g(A)h(v)m(alues\))p 1470 778
V 264 780 1207 2 v 263 836 2 57 v 363 820 a Fy(C)s(I)p
520 836 V 127 w FC(Color)f(index)h(\(\015oating-p)q(oin)o(t)g(index)g
(v)m(alue\))p 1470 836 V 264 838 1207 2 v 263 951 2 113
v 376 878 a Fy(T)p 520 951 V 143 w FC(T)l(exture)j(co)q(ordinates)g
(\(\015oating-p)q(oin)o(t)g Fy(s)p FC(,)h Fy(t)p FC(,)f
Fy(r)q FC(,)g Fy(q)546 934 y FC(v)m(alues\))p 1470 951
V 264 953 1207 2 v 263 1066 2 113 v 372 992 a Fy(N)p
520 1066 V 137 w FC(Normal)27 b(co)q(ordinates)h(\(\015oating-p)q(oin)o
(t)f Fy(x)p FC(,)j Fy(y)r FC(,)g Fy(z)546 1049 y FC(v)m(alues\))p
1470 1066 V 264 1067 1207 2 v 263 1124 2 57 v 374 1107
a Fy(V)p 520 1124 V 145 w FC(V)l(ertex,)15 b(including)j(asso)q(ciated)
d(data)p 1470 1124 V 264 1125 1207 2 v 263 1182 2 57
v 376 1165 a Fy(Z)p 520 1182 V 139 w FC(In)o(teger)p
1470 1182 V 264 1183 1207 2 v 263 1240 2 57 v 361 1223
a Fy(Z)395 1207 y Fq(+)p 520 1240 V 546 1223 a FC(Non-negativ)o(e)h(in)
o(teger)p 1470 1240 V 264 1242 1207 2 v 263 1298 2 57
v 318 1281 a Fy(Z)349 1288 y Fu(k)370 1281 y FC(,)f Fy(Z)429
1288 y Fu(k)q FG(\003)p 520 1298 V 546 1281 a Fy(k)q
FC(-v)m(alued)i(in)o(teger)e(\()p Fy(k)q FB(\003)g FC(indicates)i
Fy(k)f FC(is)g(minim)o(um\))p 1470 1298 V 264 1300 1207
2 v 263 1356 2 57 v 375 1339 a Fy(R)p 520 1356 V 136
w FC(Floating-p)q(oin)o(t)g(n)o(um)o(b)q(er)p 1470 1356
V 264 1358 1207 2 v 263 1414 2 57 v 360 1397 a Fy(R)395
1381 y Fq(+)p 520 1414 V 546 1397 a FC(Non-negativ)o(e)g(\015oating-p)q
(oin)o(t)f(n)o(um)o(b)q(er)p 1470 1414 V 264 1416 1207
2 v 263 1474 2 59 v 343 1457 a Fy(R)378 1441 y Fq([)p
Fu(a;b)p Fq(])p 520 1474 V 546 1457 a FC(Floating-p)q(oin)o(t)h(n)o(um)
o(b)q(er)f(in)h(the)g(range)f([)p Fy(a;)8 b(b)p FC(])p
1470 1474 V 264 1476 1207 2 v 263 1532 2 57 v 365 1516
a Fy(R)400 1499 y Fu(k)p 520 1532 V 546 1516 a Fy(k)q
FC(-tuple)16 b(of)f(\015oating-p)q(oin)o(t)h(n)o(um)o(b)q(ers)p
1470 1532 V 264 1534 1207 2 v 263 1591 2 57 v 375 1574
a Fy(P)p 520 1591 V 142 w FC(P)o(osition)11 b(\()p Fy(x)p
FC(,)f Fy(y)r FC(,)h Fy(z)r FC(,)g Fy(w)g FC(\015oating-p)q(oin)o(t)g
(co)q(ordinates\))p 1470 1591 V 264 1592 1207 2 v 263
1649 2 57 v 373 1632 a Fy(D)p 520 1649 V 135 w FC(Direction)16
b(\()p Fy(x)p FC(,)e Fy(y)r FC(,)h Fy(z)i FC(\015oating-p)q(oin)o(t)f
(co)q(ordinates\))p 1470 1649 V 264 1650 1207 2 v 263
1707 2 57 v 357 1690 a Fy(M)5 b FC(4)p 520 1707 V 117
w(4)10 b FB(\002)g FC(4)15 b(\015oating-p)q(oin)o(t)h(matrix)p
1470 1707 V 264 1708 1207 2 v 263 1765 2 57 v 381 1748
a Fy(I)p 520 1765 V 145 w FC(Image)p 1470 1765 V 264
1767 1207 2 v 263 1823 2 57 v 376 1806 a Fy(A)p 520 1823
V 136 w FC(A)o(ttribute)f(stac)o(k)g(en)o(try)l(,)f(including)k(mask)p
1470 1823 V 264 1825 1207 2 v 263 1881 2 57 v 374 1864
a Fy(Y)p 520 1881 V 146 w FC(P)o(oin)o(ter)d(\(data)f(t)o(yp)q(e)h
(unsp)q(eci\014ed\))p 1470 1881 V 264 1883 1207 2 v 263
1996 2 113 v 309 1922 a Fy(n)10 b FB(\002)h Fy(ty)r(pe)p
520 1996 V 70 w(n)31 b FC(copies)h(of)e(t)o(yp)q(e)h
Fy(ty)r(pe)g FC(\()p Fy(n)p FB(\003)f FC(indicates)i
Fy(n)f FC(is)546 1979 y(minim)o(um\))p 1470 1996 V 264
1997 1207 2 v 562 2124 a(T)l(able)16 b(6.3:)j(State)c(v)m(ariable)i(t)o
(yp)q(es)p eop
%%Page: 152 161
152 160 bop 332 137 a FC(152)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)380 2063
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
380 2063 a 405 2129 a Fm(Get)f(v)n(alue)57 b(T)o(yp)q(e)788
2092 y(Get)788 2129 y(Cmnd)949 2092 y(Initial)949 2129
y(V)m(alue)164 b(Description)f(Sec.)57 b(A)o(ttribute)p
380 2146 1529 2 v 379 2245 2 100 v 488 2180 a Fe({)p
596 2245 V 604 2245 V 149 w Fh(Z)680 2186 y Fd(11)p 763
2245 V 832 2180 a Fk({)p 923 2245 V 137 w Fm(0)p 1083
2245 V 94 w(When)14 b Fc(6)p Fm(=)e(0,)h(indicates)1108
2230 y Fk(b)q(egin/end)e Fm(ob)r(ject)p 1552 2245 V 1578
2180 a(2.6.1)p 1688 2245 V 123 w({)p 1908 2245 V 380
2247 1529 2 v 379 2346 2 100 v 488 2282 a Fe({)p 596
2346 V 604 2346 V 164 w Fh(V)p 763 2346 V 141 w Fk({)p
923 2346 V 137 w Fm({)p 1083 2346 V 94 w(Previous)k(v)o(ertex)g(in)1108
2332 y Fk(Begin/End)f(line)p 1552 2346 V 1578 2282 a
Fm(2.6.1)p 1688 2346 V 123 w({)p 1908 2346 V 380 2348
1529 2 v 379 2448 2 100 v 488 2383 a Fe({)p 596 2448
V 604 2448 V 164 w Fh(B)p 763 2448 V 134 w Fk({)p 923
2448 V 137 w Fm({)p 1083 2448 V 94 w(Indicates)h(if)e
Fb(line-vertex)1108 2433 y Fm(is)h(the)h(\014rst)p 1552
2448 V 1578 2383 a(2.6.1)p 1688 2448 V 123 w({)p 1908
2448 V 380 2449 1529 2 v 379 2549 2 100 v 488 2484 a
Fe({)p 596 2549 V 604 2549 V 164 w Fh(V)p 763 2549 V
141 w Fk({)p 923 2549 V 137 w Fm({)p 1083 2549 V 94 w(First)g(v)o
(ertex)f(of)g(a)1108 2534 y Fk(Begin/End)e(line)h(lo)q(op)p
1552 2549 V 1578 2484 a Fm(2.6.1)p 1688 2549 V 123 w({)p
1908 2549 V 380 2551 1529 2 v 379 2601 2 50 v 488 2586
a Fe({)p 596 2601 V 604 2601 V 152 w Fh(Z)686 2571 y
Fd(+)p 763 2601 V 832 2586 a Fk({)p 923 2601 V 137 w
Fm({)p 1083 2601 V 94 w(Line)h(stipple)g(coun)o(ter)p
1552 2601 V 125 w(3.4)p 1688 2601 V 140 w({)p 1908 2601
V 380 2602 1529 2 v 379 2702 2 100 v 488 2637 a Fe({)p
596 2702 V 604 2702 V 127 w Fh(n)9 b Fc(\002)g Fh(V)p
763 2702 V 103 w Fk({)p 923 2702 V 137 w Fm({)p 1083
2702 V 94 w(V)m(ertices)16 b(inside)d(of)1108 2687 y
Fk(Begin/End)h(p)q(olygon)p 1552 2702 V 1578 2637 a Fm(2.6.1)p
1688 2702 V 123 w({)p 1908 2702 V 380 2703 1529 2 v 379
2803 2 100 v 488 2738 a Fe({)p 596 2803 V 604 2803 V
152 w Fh(Z)686 2723 y Fd(+)p 763 2803 V 832 2738 a Fk({)p
923 2803 V 137 w Fm({)p 1083 2803 V 94 w(Num)o(b)q(er)g(of)1108
2788 y Fb(p)n(olygon-vertic)n(es)p 1552 2803 V 1578 2738
a Fm(2.6.1)p 1688 2803 V 123 w({)p 1908 2803 V 380 2805
1529 2 v 379 2954 2 150 v 488 2840 a Fe({)p 596 2954
V 604 2954 V 129 w Fm(2)9 b Fc(\002)g Fh(V)p 763 2954
V 105 w Fk({)p 923 2954 V 137 w Fm({)p 1083 2954 V 94
w(Previous)15 b(t)o(w)o(o)e(v)o(ertices)1108 2889 y(in)h(a)f
Fk(Begin/End)1108 2939 y(triangle)g(strip)p 1552 2954
V 1578 2840 a Fm(2.6.1)p 1688 2954 V 123 w({)p 1908 2954
V 380 2956 1529 2 v 379 3105 2 150 v 488 2991 a Fe({)p
596 3105 V 604 3105 V 158 w Fh(Z)689 2997 y Fd(3)p 763
3105 V 832 2991 a Fk({)p 923 3105 V 137 w Fm({)p 1083
3105 V 94 w(Num)o(b)q(er)h(of)f(v)o(ertices)i(so)1108
3041 y(far)f(in)f(triangle)h(strip:)k(0,)1108 3090 y(1,)13
b(or)h(more)p 1552 3105 V 1578 2991 a(2.6.1)p 1688 3105
V 123 w({)p 1908 3105 V 380 3107 1529 2 v 379 3207 2
100 v 488 3142 a Fe({)p 596 3207 V 604 3207 V 158 w Fh(Z)689
3148 y Fd(2)p 763 3207 V 832 3142 a Fk({)p 923 3207 V
137 w Fm({)p 1083 3207 V 94 w(T)m(riangle)f(strip)h(A/B)1108
3192 y(v)o(ertex)h(p)q(oin)o(ter)p 1552 3207 V 1578 3142
a(2.6.1)p 1688 3207 V 123 w({)p 1908 3207 V 380 3208
1529 2 v 379 3308 2 100 v 488 3243 a Fe({)p 596 3308
V 604 3308 V 129 w Fm(3)9 b Fc(\002)g Fh(V)p 763 3308
V 105 w Fk({)p 923 3308 V 137 w Fm({)p 1083 3308 V 94
w(V)m(ertices)16 b(of)d(the)h(quad)1108 3293 y(under)h(construction)p
1552 3308 V 1578 3243 a(2.6.1)p 1688 3308 V 123 w({)p
1908 3308 V 380 3310 1529 2 v 379 3459 2 150 v 488 3344
a Fe({)p 596 3459 V 604 3459 V 158 w Fh(Z)689 3350 y
Fd(4)p 763 3459 V 832 3344 a Fk({)p 923 3459 V 137 w
Fm({)p 1083 3459 V 94 w(Num)o(b)q(er)f(of)f(v)o(ertices)i(so)1108
3394 y(far)f(in)f(quad)h(strip:)k(0,)13 b(1,)1108 3444
y(2,)g(or)h(more)p 1552 3459 V 1578 3344 a(2.6.1)p 1688
3459 V 123 w({)p 1908 3459 V 380 3461 1529 2 v 1778 2063
a
currentpoint grestore moveto
1778 2063 a 415 2225 a FF(T)l(able)i(6.4.)22 b(GL)17
b(In)o(ternal)e(b)q(egin-end)i(state)f(v)m(ariables)g(\(inaccessible\))
p eop
%%Page: 153 162
153 161 bop 1547 137 a FC(153)156 2416 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
156 2416 a 414
2482 a Fm(Get)14 b(v)n(alue)269 b(T)o(yp)q(e)1080 2445
y(Get)1080 2482 y(Cmnd)1325 2445 y(Initial)1325 2482
y(V)m(alue)167 b(Description)d(Sec.)57 b(A)o(ttribute)p
170 2499 2119 2 v 169 2579 2 81 v 368 2564 a Fe(CURRENT)p
522 2564 10 2 v 11 w(COLOR)p 824 2579 2 81 v 832 2579
V 248 w Fh(C)p 975 2579 V 1003 2527 a Fk(GetIn)o(tegerv,)1003
2564 y(GetFloatv)p 1295 2579 V 104 w Fm(1,1,1,1)p 1462
2579 V 47 w(Curren)o(t)15 b(color)p 1932 2579 V 242 w(2.7)p
2067 2579 V 85 w(curren)o(t)p 2288 2579 V 170 2581 2119
2 v 169 2661 2 81 v 373 2646 a Fe(CURRENT)p 527 2646
10 2 v 11 w(INDEX)p 824 2661 2 81 v 832 2661 V 243 w
Fh(C)s(I)p 975 2661 V 1003 2609 a Fk(GetIn)o(tegerv,)1003
2646 y(GetFloatv)p 1295 2661 V 152 w Fm(1)p 1462 2661
V 98 w(Curren)o(t)g(color)e(index)p 1932 2661 V 131 w(2.7)p
2067 2661 V 85 w(curren)o(t)p 2288 2661 V 170 2663 2119
2 v 169 2762 2 100 v 277 2698 a Fe(CURRENT)p 431 2698
10 2 v 11 w(TEXTURE)p 592 2698 V 12 w(COORDS)p 824 2762
2 100 v 832 2762 V 157 w Fh(T)p 975 2762 V 117 w Fk(GetFloatv)p
1295 2762 V 77 w Fm(0,0,0,1)p 1462 2762 V 47 w(Curren)o(t)i(texture)
1488 2748 y(co)q(ordinates)p 1932 2762 V 1974 2698 a(2.7)p
2067 2762 V 85 w(curren)o(t)p 2288 2762 V 170 2764 2119
2 v 169 2814 2 50 v 354 2799 a Fe(CURRENT)p 508 2799
10 2 v 12 w(NORMAL)p 824 2814 2 50 v 832 2814 V 233 w
Fh(N)p 975 2814 V 111 w Fk(GetFloatv)p 1295 2814 V 93
w Fm(0,0,1)p 1462 2814 V 64 w(Curren)o(t)g(normal)p 1932
2814 V 201 w(2.7)p 2067 2814 V 85 w(curren)o(t)p 2288
2814 V 170 2816 2119 2 v 169 2915 2 100 v 496 2851 a
Fe({)p 824 2915 V 832 2915 V 377 w Fh(C)p 975 2915 V
206 w Fk({)p 1295 2915 V 224 w Fm(-)p 1462 2915 V 102
w(Color)e(asso)q(ciated)i(with)1488 2900 y(last)f(v)o(ertex)p
1932 2915 V 1974 2851 a(2.6)p 2067 2915 V 140 w({)p 2288
2915 V 170 2917 2119 2 v 169 3017 2 100 v 496 2952 a
Fe({)p 824 3017 V 832 3017 V 366 w Fh(C)s(I)p 975 3017
V 196 w Fk({)p 1295 3017 V 224 w Fm(-)p 1462 3017 V 102
w(Color)f(index)h(asso)q(ciated)1488 3002 y(with)g(last)f(v)o(ertex)p
1932 3017 V 1974 2952 a(2.6)p 2067 3017 V 140 w({)p 2288
3017 V 170 3018 2119 2 v 169 3168 2 150 v 496 3053 a
Fe({)p 824 3168 V 832 3168 V 378 w Fh(T)p 975 3168 V
211 w Fk({)p 1295 3168 V 224 w Fm(-)p 1462 3168 V 102
w(T)m(exture)i(co)q(ordinates)1488 3103 y(asso)q(ciated)g(with)e(last)
1488 3153 y(v)o(ertex)p 1932 3168 V 1974 3053 a(2.6)p
2067 3168 V 140 w({)p 2288 3168 V 170 3169 2119 2 v 169
3219 2 50 v 279 3204 a Fe(CURRENT)p 433 3204 10 2 v 12
w(RASTER)p 570 3204 V 11 w(POSITION)p 824 3219 2 50 v
832 3219 V 151 w Fh(R)911 3189 y Fd(4)p 975 3219 V 1030
3204 a Fk(GetFloatv)p 1295 3219 V 77 w Fm(0,0,0,1)p 1462
3219 V 47 w(Curren)o(t)i(raster)g(p)q(osition)p 1932
3219 V 57 w(2.12)p 2067 3219 V 74 w(curren)o(t)p 2288
3219 V 170 3221 2119 2 v 169 3271 2 50 v 276 3256 a Fe(CURRENT)p
430 3256 10 2 v 11 w(RASTER)p 566 3256 V 12 w(DIST)n(ANCE)p
824 3271 2 50 v 832 3271 V 142 w Fh(R)907 3241 y Fd(+)p
975 3271 V 1030 3256 a Fk(GetFloatv)p 1295 3271 V 125
w Fm(0)p 1462 3271 V 98 w(Curren)o(t)f(raster)g(distance)p
1932 3271 V 57 w(2.12)p 2067 3271 V 74 w(curren)o(t)p
2288 3271 V 170 3272 2119 2 v 169 3402 2 131 v 300 3338
a Fe(CURRENT)p 454 3338 10 2 v 11 w(RASTER)p 590 3338
V 11 w(COLOR)p 824 3402 2 131 v 832 3402 V 180 w Fh(C)p
975 3402 V 1003 3301 a Fk(GetIn)o(tegerv,)1003 3338 y(GetFloatv)p
1295 3402 V 104 w Fm(1,1,1,1)p 1462 3402 V 47 w(Color)f(asso)q(ciated)i
(with)1488 3387 y(raster)g(p)q(osition)p 1932 3402 V
1964 3338 a(2.12)p 2067 3402 V 74 w(curren)o(t)p 2288
3402 V 170 3404 2119 2 v 169 3534 2 131 v 305 3469 a
Fe(CURRENT)p 459 3469 10 2 v 11 w(RASTER)p 595 3469 V
11 w(INDEX)p 824 3534 2 131 v 832 3534 V 175 w Fh(C)s(I)p
975 3534 V 1003 3433 a Fk(GetIn)o(tegerv,)1003 3469 y(GetFloatv)p
1295 3534 V 152 w Fm(1)p 1462 3534 V 98 w(Color)e(index)h(asso)q
(ciated)1488 3519 y(with)g(raster)h(p)q(osition)p 1932
3534 V 1964 3469 a(2.12)p 2067 3534 V 74 w(curren)o(t)p
2288 3534 V 170 3536 2119 2 v 169 3685 2 150 v 208 3571
a Fe(CURRENT)p 362 3571 10 2 v 12 w(RASTER)p 499 3571
V 11 w(TEXTURE)p 660 3571 V 12 w(COORDS)p 824 3685 2
150 v 832 3685 V 89 w Fh(T)p 975 3685 V 117 w Fk(GetFloatv)p
1295 3685 V 77 w Fm(0,0,0,1)p 1462 3685 V 47 w(T)m(exture)g(co)q
(ordinates)1488 3621 y(asso)q(ciated)g(with)e(raster)1488
3670 y(p)q(osition)p 1932 3685 V 1964 3571 a(2.12)p 2067
3685 V 74 w(curren)o(t)p 2288 3685 V 170 3687 2119 2
v 169 3787 2 100 v 227 3722 a Fe(CURRENT)p 381 3722 10
2 v 11 w(RASTER)p 517 3722 V 11 w(POSITION)p 677 3722
V 12 w(V)m(ALID)p 824 3787 2 100 v 832 3787 V 107 w Fh(B)p
975 3787 V 82 w Fk(GetBo)q(olean)o(v)p 1295 3787 V 64
w Fb(T)m(rue)p 1462 3787 V 65 w Fm(Raster)h(p)q(osition)g(v)n(alid)1488
3772 y(bit)p 1932 3787 V 1964 3722 a(2.12)p 2067 3787
V 74 w(curren)o(t)p 2288 3787 V 170 3788 2119 2 v 169
3838 2 50 v 413 3823 a Fe(EDGE)p 501 3823 10 2 v 12 w(FLA)o(G)p
824 3838 2 50 v 832 3838 V 294 w Fh(B)p 975 3838 V 82
w Fk(GetBo)q(olean)o(v)p 1295 3838 V 64 w Fb(T)m(rue)p
1462 3838 V 65 w Fm(Edge)g(\015ag)p 1932 3838 V 301 w(2.6.2)p
2067 3838 V 68 w(curren)o(t)p 2288 3838 V 170 3840 2119
2 v 1579 2416 a
currentpoint grestore moveto
1579 2416 a 361 2575 a FF(T)l(able)i(6.5.)21
b(Curren)o(t)16 b(V)l(alues)g(and)h(Asso)q(ciated)f(Data)p
eop
%%Page: 154 163
154 162 bop 332 137 a FC(154)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)369 2717
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
369 2717 a 605 2783 a Fm(Get)f(v)n(alue)246 b(T)o(yp)q(e)1242
2745 y(Get)1242 2783 y(Cmnd)1476 2745 y(Initial)1476
2783 y(V)m(alue)329 b(Description)321 b(Sec.)75 b(A)o(ttribute)p
383 2799 2420 2 v 382 2849 2 50 v 572 2834 a Fe(VER)n(TEX)p
700 2834 10 2 v 11 w(ARRA)n(Y)p 992 2849 2 50 v 1000
2849 V 239 w Fh(B)p 1143 2849 V 107 w Fk(IsEnabled)p
1450 2849 V 83 w Fb(F)m(alse)p 1609 2849 V 58 w Fm(V)m(ertex)15
b(arra)o(y)f(enable)p 2409 2849 V 452 w(2.8)p 2531 2849
V 58 w(v)o(ertex-arra)o(y)p 2801 2849 V 383 2851 2420
2 v 382 2900 2 50 v 533 2886 a Fe(VER)n(TEX)p 661 2886
10 2 v 11 w(ARRA)n(Y)p 780 2886 V 12 w(SIZE)p 992 2900
2 50 v 1000 2900 V 187 w Fh(Z)1074 2870 y Fd(+)p 1143
2900 V 1171 2886 a Fk(GetIn)o(tegerv)p 1450 2900 V 94
w Fm(4)p 1609 2900 V 94 w(Co)q(ordinates)g(p)q(er)h(v)o(ertex)p
2409 2900 V 393 w(2.8)p 2531 2900 V 58 w(v)o(ertex-arra)o(y)p
2801 2900 V 383 2902 2420 2 v 382 2952 2 50 v 524 2937
a Fe(VER)n(TEX)p 652 2937 10 2 v 11 w(ARRA)n(Y)p 771
2937 V 12 w(TYPE)p 992 2952 2 50 v 1000 2952 V 184 w
Fh(Z)1077 2943 y Fd(4)p 1143 2952 V 1171 2937 a Fk(GetIn)o(tegerv)p
1450 2952 V 50 w Fr(FLOAT)p 1609 2952 V 49 w Fm(T)o(yp)q(e)f(of)g(v)o
(ertex)h(co)q(ordinates)p 2409 2952 V 322 w(2.8)p 2531
2952 V 58 w(v)o(ertex-arra)o(y)p 2801 2952 V 383 2954
2420 2 v 382 3003 2 50 v 509 2988 a Fe(VER)n(TEX)p 637
2988 10 2 v 11 w(ARRA)n(Y)p 756 2988 V 12 w(STRIDE)p
992 3003 2 50 v 1000 3003 V 162 w Fh(Z)1074 2973 y Fd(+)p
1143 3003 V 1171 2988 a Fk(GetIn)o(tegerv)p 1450 3003
V 94 w Fm(0)p 1609 3003 V 94 w(Stride)g(b)q(et)o(w)o(een)g(v)o(ertices)
p 2409 3003 V 391 w(2.8)p 2531 3003 V 58 w(v)o(ertex-arra)o(y)p
2801 3003 V 383 3005 2420 2 v 382 3055 2 50 v 495 3040
a Fe(VER)n(TEX)p 623 3040 10 2 v 12 w(ARRA)n(Y)p 743
3040 V 12 w(POINTER)p 992 3055 2 50 v 1000 3055 V 163
w Fh(Y)p 1143 3055 V 89 w Fk(GetP)o(oin)o(t)o(erv)p 1450
3055 V 91 w Fm(0)p 1609 3055 V 94 w(P)o(oin)o(ter)f(to)g(the)g(v)o
(ertex)h(arra)o(y)p 2409 3055 V 320 w(2.8)p 2531 3055
V 58 w(v)o(ertex-arra)o(y)p 2801 3055 V 383 3057 2420
2 v 382 3106 2 50 v 567 3091 a Fe(NORMAL)p 704 3091 10
2 v 12 w(ARRA)n(Y)p 992 3106 2 50 v 1000 3106 V 234 w
Fh(B)p 1143 3106 V 107 w Fk(IsEnabled)p 1450 3106 V 83
w Fb(F)m(alse)p 1609 3106 V 58 w Fm(Normal)d(arra)o(y)i(enable)p
2409 3106 V 436 w(2.8)p 2531 3106 V 58 w(v)o(ertex-arra)o(y)p
2801 3106 V 383 3108 2420 2 v 382 3158 2 50 v 519 3143
a Fe(NORMAL)p 656 3143 10 2 v 12 w(ARRA)n(Y)p 776 3143
V 11 w(TYPE)p 992 3158 2 50 v 1000 3158 V 180 w Fh(Z)1077
3149 y Fd(5)p 1143 3158 V 1171 3143 a Fk(GetIn)o(tegerv)p
1450 3158 V 50 w Fr(FLOAT)p 1609 3158 V 49 w Fm(T)o(yp)q(e)g(of)g
(normal)d(co)q(ordinates)p 2409 3158 V 308 w(2.8)p 2531
3158 V 58 w(v)o(ertex-arra)o(y)p 2801 3158 V 383 3159
2420 2 v 382 3209 2 50 v 504 3194 a Fe(NORMAL)p 641 3194
10 2 v 12 w(ARRA)n(Y)p 761 3194 V 11 w(STRIDE)p 992 3209
2 50 v 1000 3209 V 158 w Fh(Z)1074 3179 y Fd(+)p 1143
3209 V 1171 3194 a Fk(GetIn)o(tegerv)p 1450 3209 V 94
w Fm(0)p 1609 3209 V 94 w(Stride)k(b)q(et)o(w)o(een)g(normals)p
2409 3209 V 381 w(2.8)p 2531 3209 V 58 w(v)o(ertex-arra)o(y)p
2801 3209 V 383 3211 2420 2 v 382 3261 2 50 v 491 3246
a Fe(NORMAL)p 628 3246 10 2 v 12 w(ARRA)n(Y)p 748 3246
V 11 w(POINTER)p 992 3261 2 50 v 1000 3261 V 159 w Fh(Y)p
1143 3261 V 89 w Fk(GetP)o(oin)o(t)o(erv)p 1450 3261
V 91 w Fm(0)p 1609 3261 V 94 w(P)o(oin)o(ter)f(to)g(the)g(normal)e
(arra)o(y)p 2409 3261 V 305 w(2.8)p 2531 3261 V 58 w(v)o(ertex-arra)o
(y)p 2801 3261 V 383 3262 2420 2 v 382 3312 2 50 v 580
3297 a Fe(COLOR)p 691 3297 10 2 v 11 w(ARRA)n(Y)p 992
3312 2 50 v 1000 3312 V 248 w Fh(B)p 1143 3312 V 107
w Fk(IsEnabled)p 1450 3312 V 83 w Fb(F)m(alse)p 1609
3312 V 58 w Fm(Color)h(arra)o(y)h(enable)p 2409 3312
V 472 w(2.8)p 2531 3312 V 58 w(v)o(ertex-arra)o(y)p 2801
3312 V 383 3314 2420 2 v 382 3364 2 50 v 542 3349 a Fe(COLOR)p
653 3349 10 2 v 11 w(ARRA)n(Y)p 772 3349 V 11 w(SIZE)p
992 3364 2 50 v 1000 3364 V 196 w Fh(Z)1074 3334 y Fd(+)p
1143 3364 V 1171 3349 a Fk(GetIn)o(tegerv)p 1450 3364
V 94 w Fm(4)p 1609 3364 V 94 w(Colors)g(p)q(er)g(v)o(ertex)p
2409 3364 V 496 w(2.8)p 2531 3364 V 58 w(v)o(ertex-arra)o(y)p
2801 3364 V 383 3365 2420 2 v 382 3415 2 50 v 532 3400
a Fe(COLOR)p 643 3400 10 2 v 11 w(ARRA)n(Y)p 762 3400
V 12 w(TYPE)p 992 3415 2 50 v 1000 3415 V 193 w Fh(Z)1077
3406 y Fd(8)p 1143 3415 V 1171 3400 a Fk(GetIn)o(tegerv)p
1450 3415 V 50 w Fr(FLOAT)p 1609 3415 V 49 w Fm(T)o(yp)q(e)g(of)g
(color)f(comp)q(onen)o(ts)p 2409 3415 V 338 w(2.8)p 2531
3415 V 58 w(v)o(ertex-arra)o(y)p 2801 3415 V 383 3417
2420 2 v 382 3467 2 50 v 517 3452 a Fe(COLOR)p 628 3452
10 2 v 11 w(ARRA)n(Y)p 747 3452 V 12 w(STRIDE)p 992 3467
2 50 v 1000 3467 V 171 w Fh(Z)1074 3437 y Fd(+)p 1143
3467 V 1171 3452 a Fk(GetIn)o(tegerv)p 1450 3467 V 94
w Fm(0)p 1609 3467 V 94 w(Stride)i(b)q(et)o(w)o(een)g(colors)p
2409 3467 V 422 w(2.8)p 2531 3467 V 58 w(v)o(ertex-arra)o(y)p
2801 3467 V 383 3468 2420 2 v 382 3518 2 50 v 504 3503
a Fe(COLOR)p 615 3503 10 2 v 11 w(ARRA)n(Y)p 734 3503
V 12 w(POINTER)p 992 3518 2 50 v 1000 3518 V 172 w Fh(Y)p
1143 3518 V 89 w Fk(GetP)o(oin)o(t)o(erv)p 1450 3518
V 91 w Fm(0)p 1609 3518 V 94 w(P)o(oin)o(ter)f(to)g(the)g(color)g(arra)
o(y)p 2409 3518 V 344 w(2.8)p 2531 3518 V 58 w(v)o(ertex-arra)o(y)p
2801 3518 V 383 3520 2420 2 v 382 3570 2 50 v 585 3555
a Fe(INDEX)p 685 3555 10 2 v 12 w(ARRA)n(Y)p 992 3570
2 50 v 1000 3570 V 253 w Fh(B)p 1143 3570 V 107 w Fk(IsEnabled)p
1450 3570 V 83 w Fb(F)m(alse)p 1609 3570 V 58 w Fm(Index)h(arra)o(y)e
(enable)p 2409 3570 V 470 w(2.8)p 2531 3570 V 58 w(v)o(ertex-arra)o(y)p
2801 3570 V 383 3571 2420 2 v 382 3621 2 50 v 538 3606
a Fe(INDEX)p 638 3606 10 2 v 11 w(ARRA)n(Y)p 757 3606
V 12 w(TYPE)p 992 3621 2 50 v 1000 3621 V 198 w Fh(Z)1077
3612 y Fd(4)p 1143 3621 V 1171 3606 a Fk(GetIn)o(tegerv)p
1450 3621 V 50 w Fr(FLOAT)p 1609 3621 V 49 w Fm(T)o(yp)q(e)h(of)g
(indices)p 2409 3621 V 532 w(2.8)p 2531 3621 V 58 w(v)o(ertex-arra)o(y)
p 2801 3621 V 383 3623 2420 2 v 382 3673 2 50 v 523 3658
a Fe(INDEX)p 623 3658 10 2 v 11 w(ARRA)n(Y)p 742 3658
V 12 w(STRIDE)p 992 3673 2 50 v 1000 3673 V 176 w Fh(Z)1074
3643 y Fd(+)p 1143 3673 V 1171 3658 a Fk(GetIn)o(tegerv)p
1450 3673 V 94 w Fm(0)p 1609 3673 V 94 w(Stride)h(b)q(et)o(w)o(een)g
(indices)p 2409 3673 V 404 w(2.8)p 2531 3673 V 58 w(v)o(ertex-arra)o(y)
p 2801 3673 V 383 3674 2420 2 v 382 3724 2 50 v 509 3709
a Fe(INDEX)p 609 3709 10 2 v 12 w(ARRA)n(Y)p 729 3709
V 12 w(POINTER)p 992 3724 2 50 v 1000 3724 V 177 w Fh(Y)p
1143 3724 V 89 w Fk(GetP)o(oin)o(t)o(erv)p 1450 3724
V 91 w Fm(0)p 1609 3724 V 94 w(P)o(oin)o(ter)f(to)g(the)g(index)g(arra)
o(y)p 2409 3724 V 334 w(2.8)p 2531 3724 V 58 w(v)o(ertex-arra)o(y)p
2801 3724 V 383 3726 2420 2 v 382 3776 2 50 v 497 3761
a Fe(TEXTURE)p 649 3761 10 2 v 12 w(COORD)p 774 3761
V 11 w(ARRA)n(Y)p 992 3776 2 50 v 1000 3776 V 165 w Fh(B)p
1143 3776 V 107 w Fk(IsEnabled)p 1450 3776 V 83 w Fb(F)m(alse)p
1609 3776 V 58 w Fm(T)m(exture)h(co)q(ordinate)f(arra)o(y)g(enable)p
2409 3776 V 226 w(2.8)p 2531 3776 V 58 w(v)o(ertex-arra)o(y)p
2801 3776 V 383 3777 2420 2 v 382 3827 2 50 v 459 3812
a Fe(TEXTURE)p 611 3812 10 2 v 11 w(COORD)p 735 3812
V 11 w(ARRA)n(Y)p 854 3812 V 12 w(SIZE)p 992 3827 2 50
v 1000 3827 V 113 w Fh(Z)1074 3797 y Fd(+)p 1143 3827
V 1171 3812 a Fk(GetIn)o(tegerv)p 1450 3827 V 94 w Fm(4)p
1609 3827 V 94 w(Co)q(ordinates)g(p)q(er)h(elemen)o(t)p
2409 3827 V 364 w(2.8)p 2531 3827 V 58 w(v)o(ertex-arra)o(y)p
2801 3827 V 383 3829 2420 2 v 382 3878 2 50 v 450 3864
a Fe(TEXTURE)p 602 3864 10 2 v 11 w(COORD)p 726 3864
V 11 w(ARRA)n(Y)p 845 3864 V 12 w(TYPE)p 992 3878 2 50
v 1000 3878 V 110 w Fh(Z)1077 3870 y Fd(4)p 1143 3878
V 1171 3864 a Fk(GetIn)o(tegerv)p 1450 3878 V 50 w Fr(FLOAT)p
1609 3878 V 49 w Fm(T)o(yp)q(e)f(of)g(texture)h(co)q(ordinates)p
2409 3878 V 304 w(2.8)p 2531 3878 V 58 w(v)o(ertex-arra)o(y)p
2801 3878 V 383 3880 2420 2 v 382 3930 2 50 v 435 3915
a Fe(TEXTURE)p 587 3915 10 2 v 11 w(COORD)p 711 3915
V 11 w(ARRA)n(Y)p 830 3915 V 12 w(STRIDE)p 992 3930 2
50 v 1000 3930 V 88 w Fh(Z)1074 3900 y Fd(+)p 1143 3930
V 1171 3915 a Fk(GetIn)o(tegerv)p 1450 3930 V 94 w Fm(0)p
1609 3930 V 94 w(Stride)g(b)q(et)o(w)o(een)g(texture)g(co)q(ordinates)p
2409 3930 V 176 w(2.8)p 2531 3930 V 58 w(v)o(ertex-arra)o(y)p
2801 3930 V 383 3932 2420 2 v 382 3981 2 50 v 421 3966
a Fe(TEXTURE)p 573 3966 10 2 v 12 w(COORD)p 698 3966
V 11 w(ARRA)n(Y)p 817 3966 V 12 w(POINTER)p 992 3981
2 50 v 1000 3981 V 89 w Fh(Y)p 1143 3981 V 89 w Fk(GetP)o(oin)o(t)o
(erv)p 1450 3981 V 91 w Fm(0)p 1609 3981 V 94 w(P)o(oin)o(ter)f(to)g
(the)g(texture)i(co)q(ordinate)e(arra)o(y)p 2409 3981
V 97 w(2.8)p 2531 3981 V 58 w(v)o(ertex-arra)o(y)p 2801
3981 V 383 3983 2420 2 v 382 4033 2 50 v 544 4018 a Fe(EDGE)p
632 4018 10 2 v 12 w(FLA)o(G)p 727 4018 V 11 w(ARRA)n(Y)p
992 4033 2 50 v 1000 4033 V 212 w Fh(B)p 1143 4033 V
107 w Fk(IsEnabled)p 1450 4033 V 83 w Fb(F)m(alse)p 1609
4033 V 58 w Fm(Edge)h(\015ag)e(arra)o(y)h(enable)p 2409
4033 V 402 w(2.8)p 2531 4033 V 58 w(v)o(ertex-arra)o(y)p
2801 4033 V 383 4035 2420 2 v 382 4084 2 50 v 481 4069
a Fe(EDGE)p 569 4069 10 2 v 12 w(FLA)o(G)p 664 4069 V
12 w(ARRA)n(Y)p 784 4069 V 11 w(STRIDE)p 992 4084 2 50
v 1000 4084 V 135 w Fh(Z)1074 4054 y Fd(+)p 1143 4084
V 1171 4069 a Fk(GetIn)o(tegerv)p 1450 4084 V 94 w Fm(0)p
1609 4084 V 94 w(Stride)h(b)q(et)o(w)o(een)g(edge)f(\015ags)p
2409 4084 V 351 w(2.8)p 2531 4084 V 58 w(v)o(ertex-arra)o(y)p
2801 4084 V 383 4086 2420 2 v 382 4136 2 50 v 468 4121
a Fe(EDGE)p 556 4121 10 2 v 12 w(FLA)o(G)p 651 4121 V
11 w(ARRA)n(Y)p 770 4121 V 12 w(POINTER)p 992 4136 2
50 v 1000 4136 V 136 w Fh(Y)p 1143 4136 V 89 w Fk(GetP)o(oin)o(t)o(erv)
p 1450 4136 V 91 w Fm(0)p 1609 4136 V 94 w(P)o(oin)o(ter)g(to)g(the)g
(edge)h(\015ag)e(arra)o(y)p 2409 4136 V 273 w(2.8)p 2531
4136 V 58 w(v)o(ertex-arra)o(y)p 2801 4136 V 383 4137
2420 2 v 1790 2717 a
currentpoint grestore moveto
1790 2717 a 763 2876 a FF(T)l(able)j(6.6.)22
b(V)l(ertex)15 b(Arra)o(y)g(Data)p eop
%%Page: 155 164
155 163 bop 1547 137 a FC(155)268 2598 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
268 2598 a 447
2664 a Fm(Get)14 b(v)n(alue)232 b(T)o(yp)q(e)1126 2627
y(Get)1126 2664 y(Cmnd)1416 2627 y(Initial)1416 2664
y(V)m(alue)207 b(Description)174 b(Sec.)139 b(A)o(ttribute)p
282 2680 2301 2 v 281 2780 2 100 v 373 2715 a Fe(MODEL)m(VIEW)p
567 2715 10 2 v 12 w(MA)n(TRIX)p 778 2780 2 100 v 786
2780 V 111 w Fm(32)9 b Fc(\003)g(\002)p Fh(M)c Fm(4)p
1014 2780 V 85 w Fk(GetFloatv)p 1347 2780 V 110 w Fm(Iden)o(tit)o(y)p
1593 2780 V 76 w(Mo)q(del-view)13 b(matrix)1619 2765
y(stac)o(k)p 2063 2780 V 2089 2715 a(2.10.2)p 2219 2780
V 194 w({)p 2582 2780 V 282 2782 2301 2 v 281 2881 2
100 v 369 2816 a Fe(PR)o(OJECTION)p 571 2816 10 2 v 12
w(MA)n(TRIX)p 778 2881 2 100 v 786 2881 V 117 w Fm(2)c
Fc(\003)g(\002)p Fh(M)c Fm(4)p 1014 2881 V 96 w Fk(GetFloatv)p
1347 2881 V 110 w Fm(Iden)o(tit)o(y)p 1593 2881 V 76
w(Pro)r(jection)14 b(matrix)1619 2866 y(stac)o(k)p 2063
2881 V 2089 2816 a(2.10.2)p 2219 2881 V 194 w({)p 2582
2881 V 282 2883 2301 2 v 281 2933 2 50 v 394 2918 a Fe(TEXTURE)p
546 2918 10 2 v 12 w(MA)n(TRIX)p 778 2933 2 50 v 786
2933 V 142 w Fm(2)9 b Fc(\003)g(\002)p Fh(M)c Fm(4)p
1014 2933 V 96 w Fk(GetFloatv)p 1347 2933 V 110 w Fm(Iden)o(tit)o(y)p
1593 2933 V 76 w(T)m(exture)15 b(matrix)d(stac)o(k)p
2063 2933 V 88 w(2.10.2)p 2219 2933 V 194 w({)p 2582
2933 V 282 2934 2301 2 v 281 3034 2 100 v 453 2969 a
Fe(VIEWPOR)n(T)p 778 3034 V 786 3034 V 229 w Fm(4)d Fc(\002)g
Fh(Z)p 1014 3034 V 107 w Fk(GetIn)o(tegerv)p 1347 3034
V 73 w Fm(see)16 b(2.10.1)p 1593 3034 V 59 w(Viewp)q(ort)e(origin)f(&)
1619 3019 y(exten)o(t)p 2063 3034 V 2089 2969 a(2.10.1)p
2219 3034 V 124 w(viewp)q(ort)p 2582 3034 V 282 3036
2301 2 v 281 3135 2 100 v 423 3071 a Fe(DEPTH)p 532 3071
10 2 v 11 w(RANGE)p 778 3135 2 100 v 786 3135 V 186 w
Fm(2)c Fc(\002)g Fh(R)939 3055 y Fd(+)p 1014 3135 V 1076
3071 a Fk(GetFloatv)p 1347 3135 V 155 w Fm(0,1)p 1593
3135 V 120 w(Depth)14 b(range)g(near)h(&)1619 3120 y(far)p
2063 3135 V 2089 3071 a(2.10.1)p 2219 3135 V 124 w(viewp)q(ort)p
2582 3135 V 282 3137 2301 2 v 281 3237 2 100 v 325 3172
a Fe(MODEL)m(VIEW)p 519 3172 10 2 v 12 w(ST)n(A)o(CK)p
634 3172 V 10 w(DEPTH)p 778 3237 2 100 v 786 3237 V 123
w Fh(Z)903 3157 y Fd(+)p 1014 3237 V 1056 3172 a Fk(GetIn)o(tegerv)p
1347 3237 V 150 w Fm(1)p 1593 3237 V 137 w(Mo)q(del-view)e(matrix)1619
3222 y(stac)o(k)h(p)q(oin)o(ter)p 2063 3237 V 2089 3172
a(2.10.2)p 2219 3237 V 194 w({)p 2582 3237 V 282 3238
2301 2 v 281 3338 2 100 v 321 3273 a Fe(PR)o(OJECTION)p
523 3273 10 2 v 12 w(ST)n(A)o(CK)p 638 3273 V 10 w(DEPTH)p
778 3338 2 100 v 786 3338 V 119 w Fh(Z)903 3258 y Fd(+)p
1014 3338 V 1056 3273 a Fk(GetIn)o(tegerv)p 1347 3338
V 150 w Fm(1)p 1593 3338 V 137 w(Pro)r(jection)g(matrix)1619
3323 y(stac)o(k)g(p)q(oin)o(ter)p 2063 3338 V 2089 3273
a(2.10.2)p 2219 3338 V 194 w({)p 2582 3338 V 282 3340
2301 2 v 281 3439 2 100 v 346 3374 a Fe(TEXTURE)p 498
3374 10 2 v 12 w(ST)n(A)o(CK)p 613 3374 V 10 w(DEPTH)p
778 3439 2 100 v 786 3439 V 144 w Fh(Z)903 3359 y Fd(+)p
1014 3439 V 1056 3374 a Fk(GetIn)o(tegerv)p 1347 3439
V 150 w Fm(1)p 1593 3439 V 137 w(T)m(exture)h(matrix)d(stac)o(k)1619
3424 y(p)q(oin)o(ter)p 2063 3439 V 2089 3374 a(2.10.2)p
2219 3439 V 194 w({)p 2582 3439 V 282 3441 2301 2 v 281
3491 2 50 v 423 3476 a Fe(MA)n(TRIX)p 549 3476 10 2 v
11 w(MODE)p 778 3491 2 50 v 786 3491 V 227 w Fh(Z)906
3482 y Fd(3)p 1014 3491 V 1056 3476 a Fk(GetIn)o(tegerv)p
1347 3491 V 62 w Fr(MODELVIEW)p 1593 3491 V 48 w Fm(Curren)o(t)j
(matrix)d(mo)q(de)p 2063 3491 V 80 w(2.10.2)p 2219 3491
V 116 w(transform)p 2582 3491 V 282 3492 2301 2 v 281
3592 2 100 v 444 3527 a Fe(NORMALIZE)p 778 3592 V 786
3592 V 256 w Fh(B)p 1014 3592 V 164 w Fk(IsEnabled)p
1347 3592 V 138 w Fb(F)m(alse)p 1593 3592 V 102 w Fm(Curren)o(t)j
(normal)1619 3577 y(normalization)c(on/o\013)p 2063 3592
V 2089 3527 a(2.10.3)p 2219 3592 V 48 w(transform/enable)p
2582 3592 V 282 3594 2301 2 v 281 3693 2 100 v 438 3628
a Fe(CLIP)p 512 3628 10 2 v 11 w(PLANE)p Fg(i)p 778 3693
2 100 v 786 3693 V 195 w Fm(6)e Fc(\003)g(\002)p Fh(R)954
3613 y Fd(4)p 1014 3693 V 1040 3628 a Fk(GetClipPlan)o(e)p
1347 3693 V 86 w Fm(0,0,0,0)p 1593 3693 V 87 w(User)15
b(clipping)e(plane)1619 3678 y(co)q(e\016cien)o(ts)p
2063 3693 V 2105 3628 a(2.11)p 2219 3693 V 133 w(transform)p
2582 3693 V 282 3695 2301 2 v 281 3794 2 100 v 438 3730
a Fe(CLIP)p 512 3730 10 2 v 11 w(PLANE)p Fg(i)p 778 3794
2 100 v 786 3794 V 203 w Fm(6)c Fc(\003)g(\002)p Fh(B)p
1014 3794 V 118 w Fk(IsEnabled)p 1347 3794 V 138 w Fb(F)m(alse)p
1593 3794 V 102 w Fh(x)p Fm(th)14 b(user)h(clipping)d(plane)1619
3780 y(enabled)p 2063 3794 V 2105 3730 a(2.11)p 2219
3794 V 65 w(transform/enable)p 2582 3794 V 282 3796 2301
2 v 1467 2598 a
currentpoint grestore moveto
1467 2598 a 528 2757 a FF(T)l(able)k(6.7.)22
b(T)l(ransformation)16 b(state)p eop
%%Page: 156 165
156 164 bop 332 137 a FC(156)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)807 2204
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
807 2204 a 884 2270 a Fm(Get)f(v)n(alue)87 b(T)o(yp)q(e)1360
2233 y(Get)1360 2270 y(Cmnd)1602 2233 y(Initial)1602
2270 y(V)m(alue)174 b(Description)g(Sec.)77 b(A)o(ttribute)p
821 2287 1792 2 v 820 2337 2 50 v 881 2322 a Fe(F)o(OG)p
948 2322 10 2 v 12 w(COLOR)p 1112 2337 2 50 v 1120 2337
V 109 w Fh(C)p 1263 2337 V 103 w Fk(GetFloatv)p 1566
2337 V 75 w Fm(0,0,0,0)p 1746 2337 V 54 w(F)m(og)13 b(color)p
2216 2337 V 329 w(3.9)p 2372 2337 V 144 w(fog)p 2612
2337 V 821 2338 1792 2 v 820 2388 2 50 v 886 2373 a Fe(F)o(OG)p
953 2373 10 2 v 12 w(INDEX)p 1112 2388 2 50 v 1120 2388
V 121 w Fh(I)p 1263 2388 V 109 w Fk(GetFloatv)p 1566
2388 V 123 w Fm(0)p 1746 2388 V 105 w(F)m(og)g(index)p
2216 2388 V 319 w(3.9)p 2372 2388 V 144 w(fog)p 2612
2388 V 821 2390 1792 2 v 820 2489 2 100 v 867 2425 a
Fe(F)o(OG)p 934 2425 10 2 v 11 w(DENSITY)p 1112 2489
2 100 v 1120 2489 V 97 w Fh(R)p 1263 2489 V 100 w Fk(GetFloatv)p
1566 2489 V 107 w Fm(1.0)p 1746 2489 V 88 w(Exp)q(onen)o(tial)g(fog)
1772 2474 y(densit)o(y)p 2216 2489 V 2268 2425 a(3.9)p
2372 2489 V 144 w(fog)p 2612 2489 V 821 2491 1792 2 v
820 2541 2 50 v 886 2526 a Fe(F)o(OG)p 953 2526 10 2
v 11 w(ST)n(AR)n(T)p 1112 2541 2 50 v 1120 2541 V 114
w Fh(R)p 1263 2541 V 100 w Fk(GetFloatv)p 1566 2541 V
107 w Fm(0.0)p 1746 2541 V 88 w(Linear)h(fog)f(start)p
2216 2541 V 213 w(3.9)p 2372 2541 V 144 w(fog)p 2612
2541 V 821 2543 1792 2 v 820 2592 2 50 v 903 2577 a Fe(F)o(OG)p
970 2577 10 2 v 11 w(END)p 1112 2592 2 50 v 1120 2592
V 133 w Fh(R)p 1263 2592 V 100 w Fk(GetFloatv)p 1566
2592 V 107 w Fm(1.0)p 1746 2592 V 88 w(Linear)h(fog)f(end)p
2216 2592 V 234 w(3.9)p 2372 2592 V 144 w(fog)p 2612
2592 V 821 2594 1792 2 v 820 2644 2 50 v 889 2629 a Fe(F)o(OG)p
956 2629 10 2 v 11 w(MODE)p 1112 2644 2 50 v 1120 2644
V 111 w Fh(Z)1197 2635 y Fd(3)p 1263 2644 V 1289 2629
a Fk(GetIn)o(tegerv)p 1566 2644 V 80 w Fr(EXP)p 1746
2644 V 82 w Fm(F)m(og)g(mo)q(de)p 2216 2644 V 318 w(3.9)p
2372 2644 V 144 w(fog)p 2612 2644 V 821 2645 1792 2 v
820 2695 2 50 v 941 2680 a Fe(F)o(OG)p 1112 2695 V 1120
2695 V 170 w Fh(B)p 1263 2695 V 105 w Fk(IsEnabled)p
1566 2695 V 91 w Fb(F)m(alse)p 1746 2695 V 69 w Fm(T)m(rue)h(if)f(fog)g
(enabled)p 2216 2695 V 154 w(3.9)p 2372 2695 V 76 w(fog/enable)p
2612 2695 V 821 2697 1792 2 v 820 2747 2 50 v 860 2732
a Fe(SHADE)p 966 2732 10 2 v 11 w(MODEL)p 1112 2747 2
50 v 1120 2747 V 76 w Fh(Z)1194 2717 y Fd(+)p 1263 2747
V 1289 2732 a Fk(GetIn)o(tegerv)p 1566 2747 V 47 w Fr(SMOOTH)p
1746 2747 V 49 w Fk(ShadeMo)q(del)f Fm(setting)p 2216
2747 V 77 w(2.13.7)p 2372 2747 V 74 w(ligh)o(ting)p 2612
2747 V 821 2748 1792 2 v 1351 2204 a
currentpoint grestore moveto
1351 2204 a 873
2363 a FF(T)l(able)k(6.8.)21 b(Coloring)p eop
%%Page: 157 166
157 165 bop 1547 137 a FC(157)-90 2831 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
-90 2831 a 118
2897 a Fm(Get)14 b(v)n(alue)259 b(T)o(yp)q(e)828 2860
y(Get)828 2897 y(Cmnd)1228 2860 y(Initial)1228 2897 y(V)m(alue)309
b(Description)174 b(Sec.)119 b(A)o(ttribute)p -76 2913
2534 2 v -77 3013 2 100 v 131 2948 a Fe(LIGHTING)p 477
3013 V 485 3013 V 297 w Fh(B)p 710 3013 V 168 w Fk(IsEnabled)p
1056 3013 V 248 w Fb(F)m(alse)p 1507 3013 V 205 w Fm(T)m(rue)14
b(if)f(ligh)o(ting)f(is)1533 2998 y(enabled)p 1977 3013
V 2003 2948 a(2.13.1)p 2133 3013 V 48 w(ligh)o(ting/enable)p
2456 3013 V -76 3015 2534 2 v -77 3114 2 100 v 66 3050
a Fe(COLOR)p 177 3050 10 2 v 11 w(MA)n(TERIAL)p 477 3114
2 100 v 485 3114 V 232 w Fh(B)p 710 3114 V 168 w Fk(IsEnabled)p
1056 3114 V 248 w Fb(F)m(alse)p 1507 3114 V 205 w Fm(T)m(rue)i(if)f
(color)h(trac)o(king)1533 3099 y(is)g(enabled)p 1977
3114 V 2003 3050 a(2.13.3)p 2133 3114 V 48 w(ligh)o(ting/enable)p
2456 3114 V -76 3116 2534 2 v -77 3216 2 100 v -38 3151
a Fe(COLOR)p 73 3151 10 2 v 11 w(MA)n(TERIAL)p 247 3151
V 12 w(P)n(ARAMETER)p 477 3216 2 100 v 485 3216 V 123
w Fh(Z)603 3157 y Fd(5)p 710 3216 V 757 3151 a Fk(GetIn)o(tegerv)p
1056 3216 V 69 w Fr(AMBIENT)p 1238 3151 14 2 v 15 w(AND)p
1319 3151 V 15 w(DIFFUSE)p 1507 3216 2 100 v 48 w Fm(Material)f(prop)q
(erties)1533 3201 y(trac)o(king)h(curren)o(t)h(color)p
1977 3216 V 2003 3151 a(2.13.3)p 2133 3216 V 116 w(ligh)o(ting)p
2456 3216 V -76 3217 2534 2 v -77 3317 2 100 v 20 3252
a Fe(COLOR)p 131 3252 10 2 v 11 w(MA)n(TERIAL)p 305 3252
V 12 w(F)m(A)o(CE)p 477 3317 2 100 v 485 3317 V 180 w
Fh(Z)603 3258 y Fd(3)p 710 3317 V 757 3252 a Fk(GetIn)o(tegerv)p
1056 3317 V 124 w Fr(FRONT)p 1249 3252 14 2 v 15 w(AND)p
1330 3252 V 15 w(BACK)p 1507 3317 2 100 v 103 w Fm(F)m(ace\(s\))g
(a\013ected)g(b)o(y)1533 3302 y(color)f(trac)o(king)p
1977 3317 V 2003 3252 a(2.13.3)p 2133 3317 V 116 w(ligh)o(ting)p
2456 3317 V -76 3319 2534 2 v -77 3368 2 50 v 134 3353
a Fe(AMBIENT)p 477 3368 V 485 3368 V 267 w Fm(2)9 b Fc(\002)h
Fh(C)p 710 3368 V 88 w Fk(GetMaterialf)o(v)p 1056 3368
V 109 w Fm(\(0.2,0.2,0.)o(2,1)o(.0\))p 1507 3368 V 108
w(Am)o(bien)o(t)i(material)f(color)p 1977 3368 V 50 w(2.13.1)p
2133 3368 V 116 w(ligh)o(ting)p 2456 3368 V -76 3370
2534 2 v -77 3420 2 50 v 141 3405 a Fe(DIFFUSE)p 477
3420 V 485 3420 V 272 w Fm(2)e Fc(\002)h Fh(C)p 710 3420
V 88 w Fk(GetMaterialf)o(v)p 1056 3420 V 109 w Fm(\(0.8,0.8,0.)o(8,1)o
(.0\))p 1507 3420 V 108 w(Di\013use)k(material)e(color)p
1977 3420 V 79 w(2.13.1)p 2133 3420 V 116 w(ligh)o(ting)p
2456 3420 V -76 3422 2534 2 v -77 3471 2 50 v 125 3456
a Fe(SPECULAR)p 477 3471 V 485 3471 V 257 w Fm(2)d Fc(\002)h
Fh(C)p 710 3471 V 88 w Fk(GetMaterialf)o(v)p 1056 3471
V 109 w Fm(\(0.0,0.0,0.)o(0,1)o(.0\))p 1507 3471 V 108
w(Sp)q(ecular)k(material)d(color)p 1977 3471 V 50 w(2.13.1)p
2133 3471 V 116 w(ligh)o(ting)p 2456 3471 V -76 3473
2534 2 v -77 3523 2 50 v 133 3508 a Fe(EMISSION)p 477
3523 V 485 3523 V 265 w Fm(2)e Fc(\002)h Fh(C)p 710 3523
V 88 w Fk(GetMaterialf)o(v)p 1056 3523 V 109 w Fm(\(0.0,0.0,0.)o(0,1)o
(.0\))p 1507 3523 V 108 w(Emissiv)o(e)j(mat.)j(color)p
1977 3523 V 109 w(2.13.1)p 2133 3523 V 116 w(ligh)o(ting)p
2456 3523 V -76 3525 2534 2 v -77 3624 2 100 v 128 3559
a Fe(SHININESS)p 477 3624 V 485 3624 V 260 w Fm(2)9 b
Fc(\002)g Fh(R)p 710 3624 V 86 w Fk(GetMaterialf)o(v)p
1056 3624 V 222 w Fm(0.0)p 1507 3624 V 223 w(Sp)q(ecular)15
b(exp)q(onen)o(t)f(of)1533 3609 y(material)p 1977 3624
V 2003 3559 a(2.13.1)p 2133 3624 V 116 w(ligh)o(ting)p
2456 3624 V -76 3626 2534 2 v -77 3676 2 50 v 19 3661
a Fe(LIGHT)p 118 3661 10 2 v 11 w(MODEL)p 241 3661 V
11 w(AMBIENT)p 477 3676 2 50 v 485 3676 V 187 w Fh(C)p
710 3676 V 166 w Fk(GetFloatv)p 1056 3676 V 151 w Fm(\(0.2,0.2,0.)o
(2,1)o(.0\))p 1507 3676 V 108 w(Am)o(bien)o(t)f(scene)i(color)p
1977 3676 V 104 w(2.13.1)p 2133 3676 V 116 w(ligh)o(ting)p
2456 3676 V -76 3677 2534 2 v -77 3727 2 50 v -29 3712
a Fe(LIGHT)p 70 3712 10 2 v 11 w(MODEL)p 193 3712 V 11
w(LOCAL)p 309 3712 V 11 w(VIEWER)p 477 3727 2 50 v 485
3727 V 138 w Fh(B)p 710 3727 V 137 w Fk(GetBo)q(olean)o(v)p
1056 3727 V 215 w Fb(F)m(alse)p 1507 3727 V 205 w Fm(View)o(er)g(is)e
(lo)q(cal)p 1977 3727 V 205 w(2.13.1)p 2133 3727 V 116
w(ligh)o(ting)p 2456 3727 V -76 3729 2534 2 v -77 3779
2 50 v 13 3764 a Fe(LIGHT)p 112 3764 10 2 v 12 w(MODEL)p
236 3764 V 11 w(TW)o(O)p 321 3764 V 12 w(SIDE)p 477 3779
2 50 v 485 3779 V 179 w Fh(B)p 710 3779 V 137 w Fk(GetBo)q(olean)o(v)p
1056 3779 V 215 w Fb(F)m(alse)p 1507 3779 V 205 w Fm(Use)i(t)o(w)o
(o-sided)f(ligh)o(ting)p 1977 3779 V 66 w(2.13.1)p 2133
3779 V 116 w(ligh)o(ting)p 2456 3779 V -76 3780 2534
2 v -77 3880 2 100 v 134 3815 a Fe(AMBIENT)p 477 3880
V 485 3880 V 257 w Fm(8)9 b Fc(\003)g(\002)p Fh(C)p 710
3880 V 112 w Fk(GetLigh)o(t)o(fv)p 1056 3880 V 143 w
Fm(\(0.0,0.0,0.)o(0,1)o(.0\))p 1507 3880 V 108 w(Am)o(bien)o(t)k(in)o
(tensit)o(y)g(of)1533 3865 y(ligh)o(t)g Fh(i)p 1977 3880
V 2003 3815 a Fm(2.13.1)p 2133 3880 V 116 w(ligh)o(ting)p
2456 3880 V -76 3882 2534 2 v -77 3981 2 100 v 141 3916
a Fe(DIFFUSE)p 477 3981 V 485 3981 V 262 w Fm(8)c Fc(\003)g(\002)p
Fh(C)p 710 3981 V 112 w Fk(GetLigh)o(t)o(fv)p 1056 3981
V 222 w Fm(see)15 b(2.5)p 1507 3981 V 190 w(Di\013use)f(in)o(tensit)o
(y)g(of)1533 3966 y(ligh)o(t)f Fh(i)p 1977 3981 V 2003
3916 a Fm(2.13.1)p 2133 3981 V 116 w(ligh)o(ting)p 2456
3981 V -76 3983 2534 2 v -77 4082 2 100 v 125 4018 a
Fe(SPECULAR)p 477 4082 V 485 4082 V 247 w Fm(8)c Fc(\003)g(\002)p
Fh(C)p 710 4082 V 112 w Fk(GetLigh)o(t)o(fv)p 1056 4082
V 222 w Fm(see)15 b(2.5)p 1507 4082 V 190 w(Sp)q(ecular)g(in)o(tensit)o
(y)e(of)1533 4067 y(ligh)o(t)g Fh(i)p 1977 4082 V 2003
4018 a Fm(2.13.1)p 2133 4082 V 116 w(ligh)o(ting)p 2456
4082 V -76 4084 2534 2 v -77 4134 2 50 v 133 4119 a Fe(POSITION)p
477 4134 V 485 4134 V 254 w Fm(8)c Fc(\003)g(\002)p Fh(P)p
710 4134 V 115 w Fk(GetLigh)o(t)o(fv)p 1056 4134 V 143
w Fm(\(0.0,0.0,1.)o(0,0)o(.0\))p 1507 4134 V 108 w(P)o(osition)k(of)g
(ligh)o(t)g Fh(i)p 1977 4134 V 152 w Fm(2.13.1)p 2133
4134 V 116 w(ligh)o(ting)p 2456 4134 V -76 4136 2534
2 v -77 4185 2 50 v 4 4170 a Fe(CONST)n(ANT)p 176 4170
10 2 v 11 w(A)n(TTENUA)n(TION)p 477 4185 2 50 v 485 4185
V 111 w Fm(8)c Fc(\003)g(\002)p Fh(R)646 4155 y Fd(+)p
710 4185 V 770 4170 a Fk(GetLigh)o(t)o(fv)p 1056 4185
V 256 w Fm(1.0)p 1507 4185 V 223 w(Constan)o(t)14 b(atten.)19
b(factor)p 1977 4185 V 61 w(2.13.1)p 2133 4185 V 116
w(ligh)o(ting)p 2456 4185 V -76 4187 2534 2 v -77 4237
2 50 v 30 4222 a Fe(LINEAR)p 148 4222 10 2 v 12 w(A)n(TTENUA)n(TION)p
477 4237 2 50 v 485 4237 V 138 w Fm(8)9 b Fc(\003)g(\002)p
Fh(R)646 4207 y Fd(+)p 710 4237 V 770 4222 a Fk(GetLigh)o(t)o(fv)p
1056 4237 V 256 w Fm(0.0)p 1507 4237 V 223 w(Linear)14
b(atten.)k(factor)p 1977 4237 V 111 w(2.13.1)p 2133 4237
V 116 w(ligh)o(ting)p 2456 4237 V -76 4239 2534 2 v -77
4338 2 100 v -5 4273 a Fe(QUADRA)n(TIC)p 184 4273 10
2 v 11 w(A)n(TTENUA)n(TION)p 477 4338 2 100 v 485 4338
V 103 w Fm(8)9 b Fc(\003)g(\002)p Fh(R)646 4258 y Fd(+)p
710 4338 V 770 4273 a Fk(GetLigh)o(t)o(fv)p 1056 4338
V 256 w Fm(0.0)p 1507 4338 V 223 w(Quadratic)14 b(atten.)1533
4323 y(factor)p 1977 4338 V 2003 4273 a(2.13.1)p 2133
4338 V 116 w(ligh)o(ting)p 2456 4338 V -76 4340 2534
2 v -77 4439 2 100 v 73 4375 a Fe(SPOT)p 157 4375 10
2 v 11 w(DIRECTION)p 477 4439 2 100 v 485 4439 V 192
w Fm(8)9 b Fc(\003)g(\002)p Fh(D)p 710 4439 V 110 w Fk(GetLigh)o(t)o
(fv)p 1056 4439 V 168 w Fm(\(0.0,0.0,-1.0)o(\))p 1507
4439 V 134 w(Sp)q(otligh)o(t)k(direction)h(of)1533 4424
y(ligh)o(t)f Fh(i)p 1977 4439 V 2003 4375 a Fm(2.13.1)p
2133 4439 V 116 w(ligh)o(ting)p 2456 4439 V -76 4441
2534 2 v -77 4541 2 100 v 74 4476 a Fe(SPOT)p 158 4476
10 2 v 12 w(EXPONENT)p 477 4541 2 100 v 485 4541 V 183
w Fm(8)c Fc(\003)g(\002)p Fh(R)646 4461 y Fd(+)p 710
4541 V 770 4476 a Fk(GetLigh)o(t)o(fv)p 1056 4541 V 256
w Fm(0.0)p 1507 4541 V 223 w(Sp)q(otligh)o(t)k(exp)q(onen)o(t)i(of)1533
4526 y(ligh)o(t)e Fh(i)p 1977 4541 V 2003 4476 a Fm(2.13.1)p
2133 4541 V 116 w(ligh)o(ting)p 2456 4541 V -76 4542
2534 2 v -77 4592 2 50 v 97 4577 a Fe(SPOT)p 181 4577
10 2 v 11 w(CUTOFF)p 477 4592 2 50 v 485 4592 V 203 w
Fm(8)c Fc(\003)g(\002)p Fh(R)646 4562 y Fd(+)p 710 4592
V 770 4577 a Fk(GetLigh)o(t)o(fv)p 1056 4592 V 235 w
Fm(180.0)p 1507 4592 V 202 w(Sp)q(ot.)18 b(angle)c(of)f(ligh)o(t)g
Fh(i)p 1977 4592 V 90 w Fm(2.13.1)p 2133 4592 V 116 w(ligh)o(ting)p
2456 4592 V -76 4594 2534 2 v -77 4644 2 50 v 153 4629
a Fe(LIGHT)p Fg(i)p 477 4644 V 485 4644 V 274 w Fm(8)c
Fc(\003)g(\002)p Fh(B)p 710 4644 V 122 w Fk(IsEnabled)p
1056 4644 V 248 w Fb(F)m(alse)p 1507 4644 V 205 w Fm(T)m(rue)14
b(if)f(ligh)o(t)g Fh(i)h Fm(enabled)p 1977 4644 V 72
w(2.13.1)p 2133 4644 V 48 w(ligh)o(ting/enable)p 2456
4644 V -76 4645 2534 2 v -77 4745 2 100 v 79 4680 a Fe(COLOR)p
190 4680 10 2 v 11 w(INDEXES)p 477 4745 2 100 v 485 4745
V 177 w Fm(2)9 b Fc(\002)g Fm(3)g Fc(\002)h Fh(R)p 710
4745 V 50 w Fk(GetMaterialf)o(v)p 1056 4745 V 206 w Fm(0,1,1)p
1507 4745 V 206 w Fh(a)1555 4686 y Ff(m)1587 4680 y Fm(,)j
Fh(d)1634 4686 y Ff(m)1665 4680 y Fm(,)g(and)h Fh(s)1790
4686 y Ff(m)1836 4680 y Fm(for)1533 4730 y(color)g(index)g(ligh)o(ting)
p 1977 4745 V 2003 4680 a(2.13.1)p 2133 4745 V 116 w(ligh)o(ting)p
2456 4745 V -76 4747 2534 2 v 1825 2831 a
currentpoint grestore moveto
1825 2831 a
320 2993 a FF(T)l(able)i(6.9.)22 b(Ligh)o(ting)16 b(\(see)g(also)h(T)l
(able)f(2.5)h(for)f(defaults\))p eop
%%Page: 158 167
158 166 bop 332 137 a FC(158)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)275 2494
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
275 2494 a 448 2560 a Fm(Get)f(v)n(alue)196 b(T)o(yp)q(e)1116
2523 y(Get)1116 2560 y(Cmnd)1417 2523 y(Initial)1417
2560 y(V)m(alue)164 b(Description)f(Sec.)112 b(A)o(ttribute)p
289 2577 2197 2 v 288 2627 2 50 v 450 2612 a Fe(POINT)p
550 2612 10 2 v 12 w(SIZE)p 773 2627 2 50 v 781 2627
V 210 w Fh(R)868 2597 y Fd(+)p 949 2627 V 1065 2612 a
Fk(GetFloatv)p 1392 2627 V 167 w Fm(1.0)p 1551 2627 V
77 w(P)o(oin)o(t)13 b(size)p 2021 2627 V 311 w(3.3)p
2156 2627 V 157 w(p)q(oin)o(t)p 2485 2627 V 289 2628
2197 2 v 288 2678 2 50 v 416 2663 a Fe(POINT)p 516 2663
10 2 v 12 w(SMOOTH)p 773 2678 2 50 v 781 2678 V 189 w
Fh(B)p 949 2678 V 188 w Fk(IsEnabled)p 1392 2678 V 150
w Fb(F)m(alse)p 1551 2678 V 59 w Fm(P)o(oin)o(t)g(an)o(tialiasing)f(on)
p 2021 2678 V 110 w(3.3)p 2156 2678 V 89 w(p)q(oin)o(t/enable)p
2485 2678 V 289 2680 2197 2 v 288 2730 2 50 v 442 2715
a Fe(LINE)p 516 2715 10 2 v 12 w(WIDTH)p 773 2730 2 50
v 781 2730 V 202 w Fh(R)868 2700 y Fd(+)p 949 2730 V
1065 2715 a Fk(GetFloatv)p 1392 2730 V 167 w Fm(1.0)p
1551 2730 V 77 w(Line)i(width)p 2021 2730 V 289 w(3.4)p
2156 2730 V 172 w(line)p 2485 2730 V 289 2731 2197 2
v 288 2781 2 50 v 429 2766 a Fe(LINE)p 503 2766 10 2
v 12 w(SMOOTH)p 773 2781 2 50 v 781 2781 V 202 w Fh(B)p
949 2781 V 188 w Fk(IsEnabled)p 1392 2781 V 150 w Fb(F)m(alse)p
1551 2781 V 59 w Fm(Line)g(an)o(tialiasing)d(on)p 2021
2781 V 129 w(3.4)p 2156 2781 V 104 w(line/enable)p 2485
2781 V 289 2783 2197 2 v 288 2833 2 50 v 353 2818 a Fe(LINE)p
427 2818 10 2 v 12 w(STIPPLE)p 568 2818 V 11 w(P)n(A)n(TTERN)p
773 2833 2 50 v 781 2833 V 114 w Fh(Z)868 2803 y Fd(+)p
949 2833 V 1045 2818 a Fk(GetIn)o(tegerv)p 1392 2833
V 148 w Fm(1's)p 1551 2833 V 80 w(Line)j(stipple)p 2021
2833 V 257 w(3.4.2)p 2156 2833 V 155 w(line)p 2485 2833
V 289 2834 2197 2 v 288 2884 2 50 v 364 2869 a Fe(LINE)p
438 2869 10 2 v 11 w(STIPPLE)p 578 2869 V 12 w(REPEA)n(T)p
773 2884 2 50 v 781 2884 V 125 w Fh(Z)868 2854 y Fd(+)p
949 2884 V 1045 2869 a Fk(GetIn)o(tegerv)p 1392 2884
V 162 w Fm(1)p 1551 2884 V 94 w(Line)g(stipple)g(rep)q(eat)p
2021 2884 V 130 w(3.4.2)p 2156 2884 V 155 w(line)p 2485
2884 V 289 2886 2197 2 v 288 2936 2 50 v 432 2921 a Fe(LINE)p
506 2921 10 2 v 11 w(STIPPLE)p 773 2936 2 50 v 781 2936
V 205 w Fh(B)p 949 2936 V 188 w Fk(IsEnabled)p 1392 2936
V 150 w Fb(F)m(alse)p 1551 2936 V 59 w Fm(Line)g(stipple)g(enable)p
2021 2936 V 128 w(3.4.2)p 2156 2936 V 87 w(line/enable)p
2485 2936 V 289 2937 2197 2 v 288 3037 2 100 v 452 2972
a Fe(CULL)p 536 2972 10 2 v 11 w(F)m(A)o(CE)p 773 3037
2 100 v 781 3037 V 224 w Fh(B)p 949 3037 V 188 w Fk(IsEnabled)p
1392 3037 V 150 w Fb(F)m(alse)p 1551 3037 V 59 w Fm(P)o(olygon)e
(culling)1577 3022 y(enabled)p 2021 3037 V 2047 2972
a(3.5.1)p 2156 3037 V 48 w(p)q(olygon/enable)p 2485 3037
V 289 3038 2197 2 v 288 3138 2 100 v 400 3073 a Fe(CULL)p
484 3073 10 2 v 10 w(F)m(A)o(CE)p 574 3073 V 11 w(MODE)p
773 3138 2 100 v 781 3138 V 167 w Fh(Z)871 3079 y Fd(3)p
949 3138 V 1045 3073 a Fk(GetIn)o(tegerv)p 1392 3138
V 129 w Fr(BACK)p 1551 3138 V 60 w Fm(Cull)h(fron)o(t/bac)o(k)g(facing)
1577 3123 y(p)q(olygons)p 2021 3138 V 2047 3073 a(3.5.1)p
2156 3138 V 116 w(p)q(olygon)p 2485 3138 V 289 3140 2197
2 v 288 3239 2 100 v 439 3175 a Fe(FR)o(ONT)p 549 3175
10 2 v 11 w(F)m(A)o(CE)p 773 3239 2 100 v 781 3239 V
205 w Fh(Z)871 3181 y Fd(2)p 949 3239 V 1045 3175 a Fk(GetIn)o(tegerv)p
1392 3239 V 139 w Fr(CCW)p 1551 3239 V 72 w Fm(P)o(olygon)f(fron)o
(tface)1577 3224 y(CW/CCW)h(indicator)p 2021 3239 V 2047
3175 a(3.5.1)p 2156 3239 V 116 w(p)q(olygon)p 2485 3239
V 289 3241 2197 2 v 288 3341 2 100 v 390 3276 a Fe(POL)n(YGON)p
542 3276 10 2 v 12 w(SMOOTH)p 773 3341 2 100 v 781 3341
V 163 w Fh(B)p 949 3341 V 188 w Fk(IsEnabled)p 1392 3341
V 150 w Fb(F)m(alse)p 1551 3341 V 59 w Fm(P)o(olygon)f(an)o(tialiasing)
1577 3326 y(on)p 2021 3341 V 2063 3276 a(3.5)p 2156 3341
V 65 w(p)q(olygon/enable)p 2485 3341 V 289 3342 2197
2 v 288 3442 2 100 v 410 3377 a Fe(POL)n(YGON)p 562 3377
10 2 v 13 w(MODE)p 773 3442 2 100 v 781 3442 V 141 w
Fm(2)d Fc(\002)g Fh(Z)906 3383 y Fd(3)p 949 3442 V 1045
3377 a Fk(GetIn)o(tegerv)p 1392 3442 V 129 w Fr(FILL)p
1551 3442 V 60 w Fm(P)o(olygon)j(rasterization)1577 3427
y(mo)q(de)h(\(fron)o(t)g(&)h(bac)o(k\))p 2021 3442 V
2047 3377 a(3.5.4)p 2156 3442 V 116 w(p)q(olygon)p 2485
3442 V 289 3444 2197 2 v 288 3493 2 50 v 328 3478 a Fe(POL)n(YGON)p
480 3478 10 2 v 12 w(OFFSET)p 614 3478 V 10 w(F)m(A)o(CTOR)p
773 3493 2 50 v 781 3493 V 101 w Fh(R)p 949 3493 V 183
w Fk(GetFloatv)p 1392 3493 V 183 w Fm(0)p 1551 3493 V
94 w(P)o(olygon)e(o\013set)j(factor)p 2021 3493 V 96
w(3.5.5)p 2156 3493 V 116 w(p)q(olygon)p 2485 3493 V
289 3495 2197 2 v 288 3545 2 50 v 344 3530 a Fe(POL)n(YGON)p
496 3530 10 2 v 12 w(OFFSET)p 630 3530 V 10 w(UNITS)p
773 3545 2 50 v 781 3545 V 118 w Fh(R)p 949 3545 V 183
w Fk(GetFloatv)p 1392 3545 V 183 w Fm(0)p 1551 3545 V
94 w(P)o(olygon)d(o\013set)j(bias)p 2021 3545 V 129 w(3.5.5)p
2156 3545 V 116 w(p)q(olygon)p 2485 3545 V 289 3547 2197
2 v 288 3696 2 150 v 342 3581 a Fe(POL)n(YGON)p 494 3581
10 2 v 12 w(OFFSET)p 628 3581 V 10 w(POINT)p 773 3696
2 150 v 781 3696 V 115 w Fh(B)p 949 3696 V 188 w Fk(IsEnabled)p
1392 3696 V 150 w Fb(F)m(alse)p 1551 3696 V 59 w Fm(P)o(olygon)d
(o\013set)j(enable)1577 3631 y(for)e Fr(POINT)g Fm(mo)q(de)1577
3681 y(rasterization)p 2021 3696 V 2047 3581 a(3.5.5)p
2156 3696 V 48 w(p)q(olygon/enable)p 2485 3696 V 289
3698 2197 2 v 288 3847 2 150 v 355 3733 a Fe(POL)n(YGON)p
507 3733 10 2 v 12 w(OFFSET)p 641 3733 V 10 w(LINE)p
773 3847 2 150 v 781 3847 V 128 w Fh(B)p 949 3847 V 188
w Fk(IsEnabled)p 1392 3847 V 150 w Fb(F)m(alse)p 1551
3847 V 59 w Fm(P)o(olygon)f(o\013set)j(enable)1577 3782
y(for)e Fr(LINE)g Fm(mo)q(de)1577 3832 y(rasterization)p
2021 3847 V 2047 3733 a(3.5.5)p 2156 3847 V 48 w(p)q(olygon/enable)p
2485 3847 V 289 3849 2197 2 v 288 3998 2 150 v 357 3884
a Fe(POL)n(YGON)p 509 3884 10 2 v 12 w(OFFSET)p 643 3884
V 10 w(FILL)p 773 3998 2 150 v 781 3998 V 129 w Fh(B)p
949 3998 V 188 w Fk(IsEnabled)p 1392 3998 V 150 w Fb(F)m(alse)p
1551 3998 V 59 w Fm(P)o(olygon)f(o\013set)j(enable)1577
3933 y(for)e Fr(FILL)g Fm(mo)q(de)1577 3983 y(rasterization)p
2021 3998 V 2047 3884 a(3.5.5)p 2156 3998 V 48 w(p)q(olygon/enable)p
2485 3998 V 289 4000 2197 2 v 288 4050 2 50 v 531 4035
a Fe({)p 773 4050 V 781 4050 V 309 w Fh(I)p 949 4050
V 102 w Fk(GetP)o(olygonSt)o(i)o(pp)o(le)p 1392 4050
V 77 w Fm(1's)p 1551 4050 V 80 w(P)o(olygon)f(stipple)p
2021 4050 V 207 w(3.5)p 2156 4050 V 66 w(p)q(olygon-stipple)p
2485 4050 V 289 4051 2197 2 v 288 4101 2 50 v 392 4086
a Fe(POL)n(YGON)p 544 4086 10 2 v 13 w(STIPPLE)p 773
4101 2 50 v 781 4101 V 165 w Fh(B)p 949 4101 V 188 w
Fk(IsEnabled)p 1392 4101 V 150 w Fb(F)m(alse)p 1551 4101
V 59 w Fm(P)o(olygon)g(stipple)i(enable)p 2021 4101 V
62 w(3.5.2)p 2156 4101 V 48 w(p)q(olygon/enable)p 2485
4101 V 289 4103 2197 2 v 1884 2494 a
currentpoint grestore moveto
1884 2494 a 810
2653 a FF(T)l(able)i(6.10.)22 b(Rasterization)p eop
%%Page: 159 168
159 167 bop 1547 137 a FC(159)-164 2715 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
-164 2715 a
31 2781 a Fm(Get)14 b(v)n(alue)257 b(T)o(yp)q(e)843 2744
y(Get)843 2781 y(Cmnd)1201 2744 y(Initial)1201 2781 y(V)m(alue)174
b(Description)163 b(Sec.)105 b(A)o(ttribute)p -150 2797
2418 2 v -151 2897 2 100 v -126 2832 a Fe(TEXTURE)p 26
2832 10 2 v 12 w(1D)p 379 2897 2 100 v 387 2897 V 419
w Fh(B)p 631 2897 V 271 w Fk(IsEnabled)p 1164 2897 V
206 w Fb(F)m(alse)p 1345 2897 V 69 w Fm(T)m(rue)15 b(if)e(1D)g
(texturing)h(is)1370 2882 y(enabled)p 1815 2897 V 1840
2832 a(3.8.6)p 1950 2897 V 48 w(texture/enable)p 2266
2897 V -150 2899 2418 2 v -151 2998 2 100 v -126 2934
a Fe(TEXTURE)p 26 2934 10 2 v 12 w(2D)p 379 2998 2 100
v 387 2998 V 419 w Fh(B)p 631 2998 V 271 w Fk(IsEnabled)p
1164 2998 V 206 w Fb(F)m(alse)p 1345 2998 V 69 w Fm(T)m(rue)h(if)e(2D)g
(texturing)h(is)1370 2983 y(enabled)p 1815 2998 V 1840
2934 a(3.8.6)p 1950 2998 V 48 w(texture/enable)p 2266
2998 V -150 3000 2418 2 v -151 3100 2 100 v -126 3035
a Fe(TEXTURE)p 26 3035 10 2 v 12 w(BINDING)p 171 3035
V 12 w(1D)p 379 3100 2 100 v 387 3100 V 261 w Fh(Z)511
3020 y Fd(+)p 631 3100 V 772 3035 a Fk(GetIn)o(tegerv)p
1164 3100 V 218 w Fm(0)p 1345 3100 V 104 w(T)m(exture)h(ob)r(ject)g(b)q
(ound)1370 3085 y(to)f Fr(TEXTURE)p 1578 3085 14 2 v
14 w(1D)p 1815 3100 2 100 v 1840 3035 a Fm(3.8.4)p 1950
3100 V 116 w(texture)p 2266 3100 V -150 3101 2418 2 v
-151 3201 2 100 v -126 3136 a Fe(TEXTURE)p 26 3136 10
2 v 12 w(BINDING)p 171 3136 V 12 w(2D)p 379 3201 2 100
v 387 3201 V 261 w Fh(Z)511 3121 y Fd(+)p 631 3201 V
772 3136 a Fk(GetIn)o(tegerv)p 1164 3201 V 218 w Fm(0)p
1345 3201 V 104 w(T)m(exture)h(ob)r(ject)g(b)q(ound)1370
3186 y(to)f Fr(TEXTURE)p 1578 3186 14 2 v 14 w(2D)p 1815
3201 2 100 v 1840 3136 a Fm(3.8.4)p 1950 3201 V 116 w(texture)p
2266 3201 V -150 3202 2418 2 v -151 3302 2 100 v -126
3237 a Fe(TEXTURE)p 379 3302 V 387 3302 V 437 w Fh(n)9
b Fc(\002)h Fh(I)p 631 3302 V 203 w Fk(GetT)l(exImage)p
1164 3302 V 155 w Fm(see)15 b(3.8)p 1345 3302 V 54 w
Fh(x)p Fm(D)f(texture)h(image)d(at)1370 3287 y(l.o.d.)17
b Fh(i)p 1815 3302 V 1856 3237 a Fm(3.8)p 1950 3302 V
188 w({)p 2266 3302 V -150 3304 2418 2 v -151 3403 2
100 v -126 3339 a Fe(TEXTURE)p 26 3339 10 2 v 12 w(WIDTH)p
379 3403 2 100 v 387 3403 V 299 w Fh(n)9 b Fc(\002)g
Fh(Z)549 3324 y Fd(+)p 631 3403 V 657 3339 a Fk(GetT)l(exLev)o(elP)o
(aramete)o(r)p 1164 3403 V 102 w Fm(0)p 1345 3403 V 104
w Fh(x)p Fm(D)14 b(texture)h(image)d Fh(i)p Fm('s)1370
3388 y(sp)q(eci\014ed)k(width)p 1815 3403 V 1856 3339
a(3.8)p 1950 3403 V 188 w({)p 2266 3403 V -150 3405 2418
2 v -151 3505 2 100 v -126 3440 a Fe(TEXTURE)p 26 3440
10 2 v 12 w(HEIGHT)p 379 3505 2 100 v 387 3505 V 287
w Fh(n)9 b Fc(\002)g Fh(Z)549 3425 y Fd(+)p 631 3505
V 657 3440 a Fk(GetT)l(exLev)o(elP)o(aramete)o(r)p 1164
3505 V 102 w Fm(0)p 1345 3505 V 104 w(2D)14 b(texture)h(image)d
Fh(i)p Fm('s)1370 3490 y(sp)q(eci\014ed)k(heigh)o(t)p
1815 3505 V 1856 3440 a(3.8)p 1950 3505 V 188 w({)p 2266
3505 V -150 3506 2418 2 v -151 3606 2 100 v -126 3541
a Fe(TEXTURE)p 26 3541 10 2 v 12 w(BORDER)p 379 3606
2 100 v 387 3606 V 276 w Fh(n)9 b Fc(\002)g Fh(Z)549
3526 y Fd(+)p 631 3606 V 657 3541 a Fk(GetT)l(exLev)o(elP)o(aramete)o
(r)p 1164 3606 V 102 w Fm(0)p 1345 3606 V 104 w Fh(x)p
Fm(D)14 b(texture)h(image)d Fh(i)p Fm('s)1370 3591 y(sp)q(eci\014ed)k
(b)q(order)f(width)p 1815 3606 V 1856 3541 a(3.8)p 1950
3606 V 188 w({)p 2266 3606 V -150 3608 2418 2 v -151
3707 2 100 v -126 3643 a Fe(TEXTURE)p 26 3643 10 2 v
12 w(INTERNAL)p 198 3643 V 12 w(F)o(ORMA)n(T)-126 3692
y(\(TEXTURE)p 38 3692 V 12 w(COMPONENTS\))p 379 3707
2 100 v 387 3707 V 440 3643 a Fh(n)9 b Fc(\002)h Fh(Z)544
3649 y Fd(42)p 631 3707 V 657 3643 a Fk(GetT)l(exLev)o(elP)o(aramete)o
(r)p 1164 3707 V 102 w Fm(1)p 1345 3707 V 104 w Fh(x)p
Fm(D)k(texture)h(image)d Fh(i)p Fm('s)1370 3692 y(in)o(ternal)i(image)e
(format)p 1815 3707 V 1856 3643 a(3.8)p 1950 3707 V 188
w({)p 2266 3707 V -150 3709 2418 2 v -151 3809 2 100
v -126 3744 a Fe(TEXTURE)p 26 3744 10 2 v 12 w(RED)p
103 3744 V 11 w(SIZE)p 379 3809 2 100 v 387 3809 V 265
w Fh(n)d Fc(\002)g Fh(Z)549 3729 y Fd(+)p 631 3809 V
657 3744 a Fk(GetT)l(exLev)o(elP)o(aramete)o(r)p 1164
3809 V 102 w Fm(0)p 1345 3809 V 104 w Fh(x)p Fm(D)14
b(texture)h(image)d Fh(i)p Fm('s)1370 3794 y(red)j(resolution)p
1815 3809 V 1856 3744 a(3.8)p 1950 3809 V 188 w({)p 2266
3809 V -150 3810 2418 2 v -151 3910 2 100 v -126 3845
a Fe(TEXTURE)p 26 3845 10 2 v 12 w(GREEN)p 145 3845 V
13 w(SIZE)p 379 3910 2 100 v 387 3910 V 221 w Fh(n)9
b Fc(\002)g Fh(Z)549 3830 y Fd(+)p 631 3910 V 657 3845
a Fk(GetT)l(exLev)o(elP)o(aramete)o(r)p 1164 3910 V 102
w Fm(0)p 1345 3910 V 104 w Fh(x)p Fm(D)14 b(texture)h(image)d
Fh(i)p Fm('s)1370 3895 y(green)j(resolution)p 1815 3910
V 1856 3845 a(3.8)p 1950 3910 V 188 w({)p 2266 3910 V
-150 3912 2418 2 v -151 4011 2 100 v -126 3946 a Fe(TEXTURE)p
26 3946 10 2 v 12 w(BLUE)p 120 3946 V 12 w(SIZE)p 379
4011 2 100 v 387 4011 V 247 w Fh(n)9 b Fc(\002)g Fh(Z)549
3931 y Fd(+)p 631 4011 V 657 3946 a Fk(GetT)l(exLev)o(elP)o(aramete)o
(r)p 1164 4011 V 102 w Fm(0)p 1345 4011 V 104 w Fh(x)p
Fm(D)14 b(texture)h(image)d Fh(i)p Fm('s)1370 3996 y(blue)i(resolution)
p 1815 4011 V 1856 3946 a(3.8)p 1950 4011 V 188 w({)p
2266 4011 V -150 4013 2418 2 v -151 4112 2 100 v -126
4048 a Fe(TEXTURE)p 26 4048 10 2 v 12 w(ALPHA)p 143 4048
V 12 w(SIZE)p 379 4112 2 100 v 387 4112 V 224 w Fh(n)9
b Fc(\002)g Fh(Z)549 4033 y Fd(+)p 631 4112 V 657 4048
a Fk(GetT)l(exLev)o(elP)o(aramete)o(r)p 1164 4112 V 102
w Fm(0)p 1345 4112 V 104 w Fh(x)p Fm(D)14 b(texture)h(image)d
Fh(i)p Fm('s)1370 4097 y(alpha)h(resolution)p 1815 4112
V 1856 4048 a(3.8)p 1950 4112 V 188 w({)p 2266 4112 V
-150 4114 2418 2 v -151 4214 2 100 v -126 4149 a Fe(TEXTURE)p
26 4149 10 2 v 12 w(LUMINANCE)p 225 4149 V 12 w(SIZE)p
379 4214 2 100 v 387 4214 V 142 w Fh(n)c Fc(\002)g Fh(Z)549
4134 y Fd(+)p 631 4214 V 657 4149 a Fk(GetT)l(exLev)o(elP)o(aramete)o
(r)p 1164 4214 V 102 w Fm(0)p 1345 4214 V 104 w Fh(x)p
Fm(D)14 b(texture)h(image)d Fh(i)p Fm('s)1370 4199 y(luminance)h
(resolution)p 1815 4214 V 1856 4149 a(3.8)p 1950 4214
V 188 w({)p 2266 4214 V -150 4215 2418 2 v -151 4315
2 100 v -126 4250 a Fe(TEXTURE)p 26 4250 10 2 v 12 w(INTENSITY)p
207 4250 V 12 w(SIZE)p 379 4315 2 100 v 387 4315 V 160
w Fh(n)c Fc(\002)g Fh(Z)549 4235 y Fd(+)p 631 4315 V
657 4250 a Fk(GetT)l(exLev)o(elP)o(aramete)o(r)p 1164
4315 V 102 w Fm(0)p 1345 4315 V 104 w Fh(x)p Fm(D)14
b(texture)h(image)d Fh(i)p Fm('s)1370 4300 y(in)o(tensit)o(y)i
(resolution)p 1815 4315 V 1856 4250 a(3.8)p 1950 4315
V 188 w({)p 2266 4315 V -150 4317 2418 2 v -151 4366
2 50 v -126 4352 a Fe(TEXTURE)p 26 4352 10 2 v 12 w(BORDER)p
169 4352 V 12 w(COLOR)p 379 4366 2 50 v 387 4366 V 156
w Fm(2)465 4336 y Fd(+)502 4352 y Fc(\002)9 b Fh(C)p
631 4366 V 139 w Fk(GetT)l(exP)o(arameter)p 1164 4366
V 108 w Fm(0,0,0,0)p 1345 4366 V 54 w(T)m(exture)15 b(b)q(order)g
(color)p 1815 4366 V 110 w(3.8)p 1950 4366 V 133 w(texture)p
2266 4366 V -150 4368 2418 2 v -151 4468 2 100 v -126
4403 a Fe(TEXTURE)p 26 4403 10 2 v 12 w(MIN)p 98 4403
V 12 w(FIL)n(TER)p 379 4468 2 100 v 387 4468 V 217 w
Fm(2)458 4388 y Fd(+)494 4403 y Fc(\002)10 b Fh(Z)564
4409 y Fd(6)p 631 4468 V 712 4403 a Fk(GetT)l(exP)o(arameter)p
1164 4468 V 107 w Fm(see)15 b(3.8)p 1345 4468 V 54 w(T)m(exture)g
(mini\014cation)1370 4453 y(function)p 1815 4468 V 1840
4403 a(3.8.1)p 1950 4468 V 116 w(texture)p 2266 4468
V -150 4469 2418 2 v -151 4569 2 100 v -126 4504 a Fe(TEXTURE)p
26 4504 10 2 v 12 w(MA)o(G)p 109 4504 V 12 w(FIL)n(TER)p
379 4569 2 100 v 387 4569 V 206 w Fm(2)458 4489 y Fd(+)494
4504 y Fc(\002)10 b Fh(Z)564 4510 y Fd(2)p 631 4569 V
712 4504 a Fk(GetT)l(exP)o(arameter)p 1164 4569 V 107
w Fm(see)15 b(3.8)p 1345 4569 V 54 w(T)m(exture)g(magni\014cation)1370
4554 y(function)p 1815 4569 V 1840 4504 a(3.8.2)p 1950
4569 V 116 w(texture)p 2266 4569 V -150 4571 2418 2 v
-151 4621 2 50 v -126 4606 a Fe(TEXTURE)p 26 4606 10
2 v 12 w(WRAP)p 132 4606 V 12 w(S)p 379 4621 2 50 v 387
4621 V 278 w Fm(2)458 4591 y Fd(+)494 4606 y Fc(\002)10
b Fh(Z)564 4612 y Fd(2)p 631 4621 V 712 4606 a Fk(GetT)l(exP)o
(arameter)p 1164 4621 V 102 w Fr(REPEAT)p 1345 4621 V
48 w Fm(T)m(exture)15 b(wrap)f(mo)q(de)f(S)p 1815 4621
V 92 w(3.8)p 1950 4621 V 133 w(texture)p 2266 4621 V
-150 4622 2418 2 v -151 4672 2 50 v -126 4657 a Fe(TEXTURE)p
26 4657 10 2 v 12 w(WRAP)p 132 4657 V 12 w(T)p 379 4672
2 50 v 387 4672 V 273 w Fm(1)458 4642 y Fd(+)494 4657
y Fc(\002)d Fh(Z)564 4663 y Fd(2)p 631 4672 V 712 4657
a Fk(GetT)l(exP)o(arameter)p 1164 4672 V 102 w Fr(REPEAT)p
1345 4672 V 48 w Fm(T)m(exture)15 b(wrap)f(mo)q(de)f(T)p
1815 4672 V 85 w(3.8)p 1950 4672 V 133 w(texture)p 2266
4672 V -150 4674 2418 2 v -151 4725 2 52 v -126 4711
a Fe(TEXTURE)p 26 4711 10 2 v 12 w(PRIORITY)p 379 4725
2 52 v 387 4725 V 224 w Fm(2)434 4695 y Fd(+)470 4711
y Fc(\002)d Fh(R)544 4695 y Fd([0)p Ff(;)p Fd(1])p 631
4725 V 692 4711 a Fk(GetT)l(exP)o(arameterfv)p 1164 4725
V 137 w Fm(1)p 1345 4725 V 104 w(T)m(exture)15 b(ob)r(ject)g(priorit)o
(y)p 1815 4725 V 52 w(3.8.4)p 1950 4725 V 116 w(texture)p
2266 4725 V -150 4727 2418 2 v -151 4777 2 50 v -126
4762 a Fe(TEXTURE)p 26 4762 10 2 v 12 w(RESIDENT)p 379
4777 2 50 v 387 4777 V 251 w Fm(2)465 4747 y Fd(+)501
4762 y Fc(\002)10 b Fh(B)p 631 4777 V 119 w Fk(GetT)l(exP)o(arameteri)o
(v)p 1164 4777 V 102 w Fb(F)m(alse)p 1345 4777 V 69 w
Fm(T)m(exture)15 b(residency)p 1815 4777 V 149 w(3.8.4)p
1950 4777 V 116 w(texture)p 2266 4777 V -150 4779 2418
2 v 1899 2715 a
currentpoint grestore moveto
1899 2715 a 567 2874 a FF(T)l(able)h(6.11.)22
b(T)l(exture)15 b(Ob)s(jects)p eop
%%Page: 160 169
160 168 bop 332 137 a FC(160)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)659 2421
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
659 2421 a 795 2487 a Fm(Get)f(v)n(alue)161 b(T)o(yp)q(e)1373
2450 y(Get)1373 2487 y(Cmnd)1670 2450 y(Initial)1670
2487 y(V)m(alue)214 b(Description)174 b(Sec.)116 b(A)o(ttribute)p
673 2504 2124 2 v 672 2604 2 100 v 720 2539 a Fe(TEXTURE)p
872 2539 10 2 v 11 w(ENV)p 947 2539 V 12 w(MODE)p 1083
2604 2 100 v 1091 2604 V 104 w Fh(Z)1182 2545 y Fd(4)p
1263 2604 V 1291 2539 a Fk(GetT)l(exEn)o(viv)p 1593 2604
V 70 w Fr(MODULATE)p 1854 2604 V 67 w Fm(T)m(exture)15
b(application)1880 2589 y(function)p 2324 2604 V 2360
2539 a(3.8.5)p 2480 2604 V 127 w(texture)p 2796 2604
V 673 2605 2124 2 v 672 2705 2 100 v 712 2640 a Fe(TEXTURE)p
864 2640 10 2 v 12 w(ENV)p 940 2640 V 12 w(COLOR)p 1083
2705 2 100 v 1091 2705 V 103 w Fh(C)p 1263 2705 V 99
w Fk(GetT)l(exEn)o(vfv)p 1593 2705 V 98 w Fm(0,0,0,0)p
1854 2705 V 94 w(T)m(exture)g(en)o(vironmen)o(t)1880
2690 y(color)p 2324 2705 V 2360 2640 a(3.8.5)p 2480 2705
V 127 w(texture)p 2796 2705 V 673 2707 2124 2 v 672 2806
2 100 v 757 2741 a Fe(TEXTURE)p 909 2741 10 2 v 12 w(GEN)p
986 2741 V 12 w Fg(x)p 1083 2806 2 100 v 1091 2806 V
112 w Fm(4)9 b Fc(\002)h Fh(B)p 1263 2806 V 98 w Fk(IsEnabled)p
1593 2806 V 144 w Fb(F)m(alse)p 1854 2806 V 110 w Fm(T)m(exgen)k
(enabled)g(\()p Fh(x)g Fm(is)1880 2791 y(S,)g(T,)f(R,)g(or)h(Q\))p
2324 2806 V 2350 2741 a(2.10.4)p 2480 2806 V 48 w(texture/enable)p
2796 2806 V 673 2808 2124 2 v 672 2957 2 150 v 796 2843
a Fe(EYE)p 860 2843 10 2 v 12 w(PLANE)p 1083 2957 2 150
v 1091 2957 V 144 w Fm(4)9 b Fc(\002)g Fh(R)1220 2828
y Fd(4)p 1263 2957 V 1289 2843 a Fk(GetT)l(exGenfv)p
1593 2957 V 67 w Fm(see)15 b(2.10.4)p 1854 2957 V 67
w(T)m(exgen)f(plane)g(equation)1880 2893 y(co)q(e\016cien)o(ts)h(\(for)
f(S,)f(T,)1880 2942 y(R,)g(and)h(Q\))p 2324 2957 V 2350
2843 a(2.10.4)p 2480 2957 V 116 w(texture)p 2796 2957
V 673 2959 2124 2 v 672 3108 2 150 v 766 2994 a Fe(OBJECT)p
892 2994 10 2 v 11 w(PLANE)p 1083 3108 2 150 v 1091 3108
V 113 w Fm(4)9 b Fc(\002)g Fh(R)1220 2979 y Fd(4)p 1263
3108 V 1289 2994 a Fk(GetT)l(exGenfv)p 1593 3108 V 67
w Fm(see)15 b(2.10.4)p 1854 3108 V 67 w(T)m(exgen)f(ob)r(ject)h(linear)
1880 3044 y(co)q(e\016cien)o(ts)g(\(for)f(S,)f(T,)1880
3093 y(R,)g(and)h(Q\))p 2324 3108 V 2350 2994 a(2.10.4)p
2480 3108 V 116 w(texture)p 2796 3108 V 673 3110 2124
2 v 672 3259 2 150 v 719 3145 a Fe(TEXTURE)p 871 3145
10 2 v 12 w(GEN)p 948 3145 V 12 w(MODE)p 1083 3259 2
150 v 1091 3259 V 68 w Fm(4)9 b Fc(\002)g Fh(Z)1218 3151
y Fd(3)p 1263 3259 V 1289 3145 a Fk(GetT)l(exGeniv)p
1593 3259 V 48 w Fr(EYE)p 1687 3145 14 2 v 16 w(LINEAR)p
1854 3259 2 150 v 48 w Fm(F)m(unction)14 b(used)g(for)1880
3195 y(texgen)h(\(for)e(S,)h(T,)f(R,)1880 3245 y(and)h(Q)p
2324 3259 V 2350 3145 a(2.10.4)p 2480 3259 V 116 w(texture)p
2796 3259 V 673 3261 2124 2 v 1499 2421 a
currentpoint grestore moveto
1499 2421 a
549 2581 a FF(T)l(able)i(6.12.)22 b(T)l(exture)16 b(En)o(vironmen)o(t)e
(and)i(Generation)p eop
%%Page: 161 170
161 169 bop 1547 137 a FC(161)136 2632 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
136 2632 a 389
2698 a Fm(Get)14 b(v)n(alue)268 b(T)o(yp)q(e)1051 2661
y(Get)1051 2698 y(Cmnd)1304 2661 y(Initial)1304 2698
y(V)m(alue)185 b(Description)163 b(Sec.)158 b(A)o(ttribute)p
150 2715 2335 2 v 149 2765 2 50 v 369 2750 a Fe(SCISSOR)p
500 2750 10 2 v 11 w(TEST)p 794 2765 2 50 v 802 2765
V 272 w Fh(B)p 955 2765 V 110 w Fk(IsEnabled)p 1257 2765
V 102 w Fb(F)m(alse)p 1459 2765 V 80 w Fm(Scissoring)14
b(enabled)p 1929 2765 V 140 w(4.1.2)p 2064 2765 V 107
w(scissor/enable)p 2484 2765 V 150 2766 2335 2 v 149
2816 2 50 v 377 2801 a Fe(SCISSOR)p 508 2801 10 2 v 10
w(BO)o(X)p 794 2816 2 50 v 802 2816 V 247 w Fm(4)9 b
Fc(\002)g Fh(Z)p 955 2816 V 53 w Fk(GetIn)o(tegerv)p
1257 2816 V 48 w Fm(see)15 b(4.1.2)p 1459 2816 V 48 w(Scissor)f(b)q(o)o
(x)p 1929 2816 V 268 w(4.1.2)p 2064 2816 V 175 w(scissor)p
2484 2816 V 150 2818 2335 2 v 149 2868 2 50 v 380 2853
a Fe(ALPHA)p 487 2853 10 2 v 13 w(TEST)p 794 2868 2 50
v 802 2868 V 283 w Fh(B)p 955 2868 V 110 w Fk(IsEnabled)p
1257 2868 V 102 w Fb(F)m(alse)p 1459 2868 V 80 w Fm(Alpha)f(test)i
(enabled)p 1929 2868 V 128 w(4.1.3)p 2064 2868 V 62 w
(color-bu\013er/enable)p 2484 2868 V 150 2869 2335 2
v 149 2919 2 50 v 332 2904 a Fe(ALPHA)p 439 2904 10 2
v 12 w(TEST)p 532 2904 V 11 w(FUNC)p 794 2919 2 50 v
802 2919 V 229 w Fh(Z)884 2910 y Fd(8)p 955 2919 V 980
2904 a Fk(GetIn)o(tegerv)p 1257 2919 V 58 w Fr(ALWAYS)p
1459 2919 V 60 w Fm(Alpha)e(test)i(function)p 1929 2919
V 117 w(4.1.3)p 2064 2919 V 130 w(color-bu\013er)p 2484
2919 V 150 2921 2335 2 v 149 3020 2 100 v 344 2956 a
Fe(ALPHA)p 451 2956 10 2 v 12 w(TEST)p 544 2956 V 11
w(REF)p 794 3020 2 100 v 802 3020 V 234 w Fh(R)881 2941
y Fd(+)p 955 3020 V 980 2956 a Fk(GetIn)o(tegerv)p 1257
3020 V 113 w Fm(0)p 1459 3020 V 116 w(Alpha)e(test)i(reference)1485
3006 y(v)n(alue)p 1929 3020 V 1955 2956 a(4.1.3)p 2064
3020 V 130 w(color-bu\013er)p 2484 3020 V 150 3022 2335
2 v 149 3072 2 50 v 367 3057 a Fe(STENCIL)p 502 3057
10 2 v 11 w(TEST)p 794 3072 2 50 v 802 3072 V 270 w Fh(B)p
955 3072 V 110 w Fk(IsEnabled)p 1257 3072 V 102 w Fb(F)m(alse)p
1459 3072 V 80 w Fm(Stenciling)e(enabled)p 1929 3072
V 141 w(4.1.4)p 2064 3072 V 48 w(stencil-bu\013er/enable)p
2484 3072 V 150 3074 2335 2 v 149 3123 2 50 v 365 3108
a Fe(STENCIL)p 500 3108 10 2 v 10 w(FUNC)p 794 3123 2
50 v 802 3123 V 262 w Fh(Z)884 3114 y Fd(8)p 955 3123
V 980 3108 a Fk(GetIn)o(tegerv)p 1257 3123 V 58 w Fr(ALWAYS)p
1459 3123 V 60 w Fm(Stencil)h(function)p 1929 3123 V
185 w(4.1.4)p 2064 3123 V 116 w(stencil-bu\013er)p 2484
3123 V 150 3125 2335 2 v 149 3175 2 50 v 306 3160 a Fe(STENCIL)p
441 3160 10 2 v 10 w(V)m(ALUE)p 553 3160 V 12 w(MASK)p
794 3175 2 50 v 802 3175 V 198 w Fh(Z)881 3145 y Fd(+)p
955 3175 V 980 3160 a Fk(GetIn)o(tegerv)p 1257 3175 V
99 w Fm(1's)p 1459 3175 V 102 w(Stencil)g(mask)p 1929
3175 V 239 w(4.1.4)p 2064 3175 V 116 w(stencil-bu\013er)p
2484 3175 V 150 3177 2335 2 v 149 3226 2 50 v 376 3211
a Fe(STENCIL)p 511 3211 10 2 v 11 w(REF)p 794 3226 2
50 v 802 3226 V 268 w Fh(Z)881 3196 y Fd(+)p 955 3226
V 980 3211 a Fk(GetIn)o(tegerv)p 1257 3226 V 113 w Fm(0)p
1459 3226 V 116 w(Stencil)g(reference)i(v)n(alue)p 1929
3226 V 66 w(4.1.4)p 2064 3226 V 116 w(stencil-bu\013er)p
2484 3226 V 150 3228 2335 2 v 149 3278 2 50 v 373 3263
a Fe(STENCIL)p 508 3263 10 2 v 11 w(F)m(AIL)p 794 3278
2 50 v 802 3278 V 270 w Fh(Z)884 3269 y Fd(6)p 955 3278
V 980 3263 a Fk(GetIn)o(tegerv)p 1257 3278 V 80 w Fr(KEEP)p
1459 3278 V 82 w Fm(Stencil)e(fail)e(action)p 1929 3278
V 153 w(4.1.4)p 2064 3278 V 116 w(stencil-bu\013er)p
2484 3278 V 150 3279 2335 2 v 149 3379 2 100 v 272 3314
a Fe(STENCIL)p 407 3314 10 2 v 10 w(P)n(ASS)p 491 3314
V 11 w(DEPTH)p 609 3314 V 12 w(F)m(AIL)p 794 3379 2 100
v 802 3379 V 168 w Fh(Z)884 3320 y Fd(6)p 955 3379 V
980 3314 a Fk(GetIn)o(tegerv)p 1257 3379 V 80 w Fr(KEEP)p
1459 3379 V 82 w Fm(Stencil)i(depth)g(bu\013er)1485 3364
y(fail)e(action)p 1929 3379 V 1955 3314 a(4.1.4)p 2064
3379 V 116 w(stencil-bu\013er)p 2484 3379 V 150 3381
2335 2 v 149 3480 2 100 v 269 3416 a Fe(STENCIL)p 404
3416 10 2 v 10 w(P)n(ASS)p 488 3416 V 11 w(DEPTH)p 606
3416 V 12 w(P)n(ASS)p 794 3480 2 100 v 802 3480 V 166
w Fh(Z)884 3422 y Fd(6)p 955 3480 V 980 3416 a Fk(GetIn)o(tegerv)p
1257 3480 V 80 w Fr(KEEP)p 1459 3480 V 82 w Fm(Stencil)i(depth)g
(bu\013er)1485 3465 y(pass)g(action)p 1929 3480 V 1955
3416 a(4.1.4)p 2064 3480 V 116 w(stencil-bu\013er)p 2484
3480 V 150 3482 2335 2 v 149 3532 2 50 v 380 3517 a Fe(DEPTH)p
489 3517 10 2 v 11 w(TEST)p 794 3532 2 50 v 802 3532
V 283 w Fh(B)p 955 3532 V 110 w Fk(IsEnabled)p 1257 3532
V 102 w Fb(F)m(alse)p 1459 3532 V 80 w Fm(Depth)g(bu\013er)h(enabled)p
1929 3532 V 87 w(4.1.5)p 2064 3532 V 54 w(depth-bu\013er/enable)p
2484 3532 V 150 3534 2335 2 v 149 3633 2 100 v 377 3568
a Fe(DEPTH)p 486 3568 10 2 v 12 w(FUNC)p 794 3633 2 100
v 802 3633 V 274 w Fh(Z)884 3574 y Fd(8)p 955 3633 V
980 3568 a Fk(GetIn)o(tegerv)p 1257 3633 V 80 w Fr(LESS)p
1459 3633 V 82 w Fm(Depth)f(bu\013er)h(test)1485 3618
y(function)p 1929 3633 V 1955 3568 a(4.1.5)p 2064 3633
V 122 w(depth-bu\013er)p 2484 3633 V 150 3635 2335 2
v 149 3685 2 50 v 427 3670 a Fe(BLEND)p 794 3685 V 802
3685 V 330 w Fh(B)p 955 3685 V 110 w Fk(IsEnabled)p 1257
3685 V 102 w Fb(F)m(alse)p 1459 3685 V 80 w Fm(Blending)e(enabled)p
1929 3685 V 158 w(4.1.6)p 2064 3685 V 62 w(color-bu\013er/enable)p
2484 3685 V 150 3686 2335 2 v 149 3786 2 100 v 391 3721
a Fe(BLEND)p 498 3721 10 2 v 12 w(SR)o(C)p 794 3786 2
100 v 802 3786 V 288 w Fh(Z)884 3727 y Fd(9)p 955 3786
V 980 3721 a Fk(GetIn)o(tegerv)p 1257 3786 V 91 w Fr(ONE)p
1459 3786 V 93 w Fm(Blending)g(source)1485 3771 y(function)p
1929 3786 V 1955 3721 a(4.1.6)p 2064 3786 V 130 w(color-bu\013er)p
2484 3786 V 150 3788 2335 2 v 149 3887 2 100 v 390 3822
a Fe(BLEND)p 497 3822 10 2 v 12 w(DST)p 794 3887 2 100
v 802 3887 V 287 w Fh(Z)884 3828 y Fd(8)p 955 3887 V
980 3822 a Fk(GetIn)o(tegerv)p 1257 3887 V 80 w Fr(ZERO)p
1459 3887 V 82 w Fm(Blending)g(destination)1485 3872
y(function)p 1929 3887 V 1955 3822 a(4.1.6)p 2064 3887
V 130 w(color-bu\013er)p 2484 3887 V 150 3889 2335 2
v 149 3939 2 50 v 419 3924 a Fe(DITHER)p 794 3939 V 802
3939 V 323 w Fh(B)p 955 3939 V 110 w Fk(IsEnabled)p 1257
3939 V 105 w Fb(T)m(rue)p 1459 3939 V 83 w Fm(Dithering)g(enabled)p
1929 3939 V 146 w(4.1.7)p 2064 3939 V 62 w(color-bu\013er/enable)p
2484 3939 V 150 3940 2335 2 v 149 3990 2 50 v 189 3975
a Fe(INDEX)p 289 3975 10 2 v 12 w(LOGIC)p 399 3975 V
11 w(OP)e(\(v1.0:)j(GL)p 596 3975 V 11 w(LOGIC)p 705
3975 V 11 w(OP\))p 794 3990 2 50 v 802 3990 V 93 w Fh(B)p
955 3990 V 110 w Fk(IsEnabled)p 1257 3990 V 102 w Fb(F)m(alse)p
1459 3990 V 80 w Fm(Index)g(logic)f(op)h(enabled)p 1929
3990 V 62 w(4.1.8)p 2064 3990 V 62 w(color-bu\013er/enable)p
2484 3990 V 150 3992 2335 2 v 149 4042 2 50 v 343 4027
a Fe(COLOR)p 454 4027 10 2 v 11 w(LOGIC)p 563 4027 V
11 w(OP)p 794 4042 2 50 v 802 4042 V 247 w Fh(B)p 955
4042 V 110 w Fk(IsEnabled)p 1257 4042 V 102 w Fb(F)m(alse)p
1459 4042 V 80 w Fm(Color)f(logic)g(op)g(enabled)p 1929
4042 V 65 w(4.1.8)p 2064 4042 V 62 w(color-bu\013er/enable)p
2484 4042 V 150 4043 2335 2 v 149 4093 2 50 v 351 4078
a Fe(LOGIC)p 451 4078 10 2 v 11 w(OP)p 505 4078 V 11
w(MODE)p 794 4093 2 50 v 802 4093 V 240 w Fh(Z)875 4084
y Fd(16)p 955 4093 V 980 4078 a Fk(GetIn)o(tegerv)p 1257
4093 V 80 w Fr(COPY)p 1459 4093 V 82 w Fm(Logic)g(op)h(function)p
1929 4093 V 152 w(4.1.8)p 2064 4093 V 130 w(color-bu\013er)p
2484 4093 V 150 4095 2335 2 v 1599 2632 a
currentpoint grestore moveto
1599 2632 a
560 2792 a FF(T)l(able)i(6.13.)22 b(Pixel)15 b(Op)q(erations)p
eop
%%Page: 162 171
162 170 bop 332 137 a FC(162)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)581 2326
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
581 2326 a 725 2392 a Fm(Get)f(v)n(alue)173 b(T)o(yp)q(e)1315
2355 y(Get)1315 2392 y(Cmnd)1576 2355 y(Initial)1576
2392 y(V)m(alue)186 b(Description)163 b(Sec.)89 b(A)o(ttribute)p
595 2409 2027 2 v 594 2509 2 100 v 700 2444 a Fe(DRA)m(W)p
796 2444 10 2 v 11 w(BUFFER)p 1021 2509 2 100 v 1029
2509 V 150 w Fh(Z)1108 2450 y Fd(10)p Fa(\003)p 1210
2509 V 1244 2444 a Fk(GetIn)o(tegerv)p 1529 2509 V 56
w Fm(see)15 b(4.2.1)p 1732 2509 V 48 w(Bu\013ers)h(selected)g(for)1757
2494 y(dra)o(wing)p 2201 2509 V 2227 2444 a(4.2.1)p 2336
2509 V 62 w(color-bu\013er)p 2621 2509 V 595 2510 2027
2 v 594 2560 2 50 v 663 2545 a Fe(INDEX)p 763 2545 10
2 v 12 w(WRITEMASK)p 1021 2560 2 50 v 1029 2560 V 124
w Fh(Z)1122 2530 y Fd(+)p 1210 2560 V 1244 2545 a Fk(GetIn)o(tegerv)p
1529 2560 V 108 w Fm(1's)p 1732 2560 V 101 w(Color)d(index)h(writemask)
p 2201 2560 V 58 w(4.2.2)p 2336 2560 V 62 w(color-bu\013er)p
2621 2560 V 595 2562 2027 2 v 594 2661 2 100 v 658 2597
a Fe(COLOR)p 769 2597 10 2 v 11 w(WRITEMASK)p 1021 2661
2 100 v 1029 2661 V 96 w Fm(4)9 b Fc(\002)g Fh(B)p 1210
2661 V 65 w Fk(GetBo)q(olean)o(v)p 1529 2661 V 82 w Fb(T)m(rue)p
1732 2661 V 82 w Fm(Color)k(write)i(enables;)f(R,)1757
2646 y(G,)f(B,)h(or)g(A)p 2201 2661 V 2227 2597 a(4.2.2)p
2336 2661 V 62 w(color-bu\013er)p 2621 2661 V 595 2663
2027 2 v 594 2763 2 100 v 659 2698 a Fe(DEPTH)p 768 2698
10 2 v 11 w(WRITEMASK)p 1021 2763 2 100 v 1029 2763 V
132 w Fh(B)p 1210 2763 V 101 w Fk(GetBo)q(olean)o(v)p
1529 2763 V 82 w Fb(T)m(rue)p 1732 2763 V 82 w Fm(Depth)h(bu\013er)f
(enabled)1757 2748 y(for)g(writing)p 2201 2763 V 2227
2698 a(4.2.2)p 2336 2763 V 54 w(depth-bu\013er)p 2621
2763 V 595 2764 2027 2 v 594 2864 2 100 v 646 2799 a
Fe(STENCIL)p 781 2799 10 2 v 11 w(WRITEMASK)p 1021 2864
2 100 v 1029 2864 V 107 w Fh(Z)1122 2784 y Fd(+)p 1210
2864 V 1244 2799 a Fk(GetIn)o(tegerv)p 1529 2864 V 108
w Fm(1's)p 1732 2864 V 101 w(Stencil)g(bu\013er)1757
2849 y(writemask)p 2201 2864 V 2227 2799 a(4.2.2)p 2336
2864 V 48 w(stencil-bu\013er)p 2621 2864 V 595 2866 2027
2 v 594 2965 2 100 v 646 2900 a Fe(COLOR)p 757 2900 10
2 v 11 w(CLEAR)p 873 2900 V 11 w(V)m(ALUE)p 1021 2965
2 100 v 1029 2965 V 120 w Fh(C)p 1210 2965 V 130 w Fk(GetFloatv)p
1529 2965 V 94 w Fm(0,0,0,0)p 1732 2965 V 65 w(Color)f(bu\013er)i
(clear)1757 2950 y(v)n(alue)e(\(R)o(GBA)h(mo)q(de\))p
2201 2965 V 2227 2900 a(4.2.3)p 2336 2965 V 62 w(color-bu\013er)p
2621 2965 V 595 2967 2027 2 v 594 3067 2 100 v 651 3002
a Fe(INDEX)p 751 3002 10 2 v 12 w(CLEAR)p 868 3002 V
11 w(V)m(ALUE)p 1021 3067 2 100 v 1029 3067 V 114 w Fh(C)s(I)p
1210 3067 V 120 w Fk(GetFloatv)p 1529 3067 V 143 w Fm(0)p
1732 3067 V 115 w(Color)e(bu\013er)h(clear)g(v)n(alue)1757
3052 y(\(color)h(index)g(mo)q(de\))p 2201 3067 V 2227
3002 a(4.2.3)p 2336 3067 V 62 w(color-bu\013er)p 2621
3067 V 595 3068 2027 2 v 594 3168 2 100 v 647 3103 a
Fe(DEPTH)p 756 3103 10 2 v 11 w(CLEAR)p 872 3103 V 11
w(V)m(ALUE)p 1021 3168 2 100 v 1029 3168 V 107 w Fh(R)1122
3088 y Fd(+)p 1210 3168 V 1244 3103 a Fk(GetIn)o(tegerv)p
1529 3168 V 122 w Fm(1)p 1732 3168 V 115 w(Depth)h(bu\013er)f(clear)
1757 3153 y(v)n(alue)p 2201 3168 V 2227 3103 a(4.2.3)p
2336 3168 V 54 w(depth-bu\013er)p 2621 3168 V 595 3169
2027 2 v 594 3219 2 50 v 634 3204 a Fe(STENCIL)p 769
3204 10 2 v 11 w(CLEAR)p 885 3204 V 11 w(V)m(ALUE)p 1021
3219 2 50 v 1029 3219 V 95 w Fh(Z)1122 3189 y Fd(+)p
1210 3219 V 1244 3204 a Fk(GetIn)o(tegerv)p 1529 3219
V 122 w Fm(0)p 1732 3219 V 115 w(Stencil)g(clear)h(v)n(alue)p
2201 3219 V 140 w(4.2.3)p 2336 3219 V 48 w(stencil-bu\013er)p
2621 3219 V 595 3221 2027 2 v 594 3321 2 100 v 643 3256
a Fe(A)o(CCUM)p 759 3256 10 2 v 11 w(CLEAR)p 875 3256
V 12 w(V)m(ALUE)p 1021 3321 2 100 v 1029 3321 V 68 w
Fm(4)9 b Fc(\002)g Fh(R)1158 3241 y Fd(+)p 1210 3321
V 1264 3256 a Fk(GetFloatv)p 1529 3321 V 143 w Fm(0)p
1732 3321 V 115 w(Accum)o(ulation)j(bu\013er)1757 3306
y(clear)j(v)n(alue)p 2201 3321 V 2227 3256 a(4.2.3)p
2336 3321 V 48 w(accum-bu\013er)p 2621 3321 V 595 3322
2027 2 v 1577 2326 a
currentpoint grestore moveto
1577 2326 a 734 2486 a FF(T)l(able)h(6.14.)22
b(F)l(ramebu\013er)15 b(Con)o(trol)p eop
%%Page: 163 172
163 171 bop 1547 137 a FC(163)219 2252 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
219 2252 a 358
2318 a Fm(Get)14 b(v)n(alue)150 b(T)o(yp)q(e)906 2281
y(Get)906 2318 y(Cmnd)1146 2281 y(Initial)1146 2318 y(V)m(alue)164
b(Description)156 b(Sec.)59 b(A)o(ttribute)p 232 2334
1878 2 v 231 2434 2 100 v 278 2369 a Fe(UNP)n(A)o(CK)p
408 2369 10 2 v 12 w(SW)m(AP)p 506 2369 V 12 w(BYTES)p
649 2434 2 100 v 657 2434 V 95 w Fh(B)p 801 2434 V 82
w Fk(GetBo)q(olean)o(v)p 1120 2434 V 57 w Fb(F)m(alse)p
1280 2434 V 58 w Fm(V)m(alue)14 b(of)1305 2419 y Fr(UNPACK)p
1440 2419 14 2 v 15 w(SWAP)p 1543 2419 V 15 w(BYTES)p
1749 2434 2 100 v 1784 2369 a Fm(4.3)p 1871 2434 V 58
w(pixel-store)p 2109 2434 V 232 2436 1878 2 v 231 2535
2 100 v 299 2471 a Fe(UNP)n(A)o(CK)p 429 2471 10 2 v
12 w(LSB)p 498 2471 V 10 w(FIRST)p 649 2535 2 100 v 657
2535 V 115 w Fh(B)p 801 2535 V 82 w Fk(GetBo)q(olean)o(v)p
1120 2535 V 57 w Fb(F)m(alse)p 1280 2535 V 58 w Fm(V)m(alue)g(of)1305
2520 y Fr(UNPACK)p 1440 2520 14 2 v 15 w(LSB)p 1521 2520
V 15 w(FIRST)p 1749 2535 2 100 v 1784 2471 a Fm(4.3)p
1871 2535 V 58 w(pixel-store)p 2109 2535 V 232 2537 1878
2 v 231 2637 2 100 v 271 2572 a Fe(UNP)n(A)o(CK)p 401
2572 10 2 v 12 w(R)o(O)o(W)p 486 2572 V 12 w(LENGTH)p
649 2637 2 100 v 657 2637 V 76 w Fh(Z)731 2557 y Fd(+)p
801 2637 V 835 2572 a Fk(GetIn)o(tegerv)p 1120 2637 V
100 w Fm(0)p 1280 2637 V 94 w(V)m(alue)g(of)1305 2622
y Fr(UNPACK)p 1440 2622 14 2 v 15 w(ROW)p 1521 2622 V
15 w(LENGTH)p 1749 2637 2 100 v 1784 2572 a Fm(4.3)p
1871 2637 V 58 w(pixel-store)p 2109 2637 V 232 2638 1878
2 v 231 2738 2 100 v 292 2673 a Fe(UNP)n(A)o(CK)p 422
2673 10 2 v 11 w(SKIP)p 504 2673 V 12 w(R)o(O)o(WS)p
649 2738 2 100 v 657 2738 V 96 w Fh(Z)731 2658 y Fd(+)p
801 2738 V 835 2673 a Fk(GetIn)o(tegerv)p 1120 2738 V
100 w Fm(0)p 1280 2738 V 94 w(V)m(alue)g(of)1305 2723
y Fr(UNPACK)p 1440 2723 14 2 v 15 w(SKIP)p 1543 2723
V 15 w(ROWS)p 1749 2738 2 100 v 1784 2673 a Fm(4.3)p
1871 2738 V 58 w(pixel-store)p 2109 2738 V 232 2740 1878
2 v 231 2839 2 100 v 282 2774 a Fe(UNP)n(A)o(CK)p 412
2774 10 2 v 12 w(SKIP)p 495 2774 V 11 w(PIXELS)p 649
2839 2 100 v 657 2839 V 87 w Fh(Z)731 2759 y Fd(+)p 801
2839 V 835 2774 a Fk(GetIn)o(tegerv)p 1120 2839 V 100
w Fm(0)p 1280 2839 V 94 w(V)m(alue)g(of)1305 2824 y Fr(UNPACK)p
1440 2824 14 2 v 15 w(SKIP)p 1543 2824 V 15 w(PIXELS)p
1749 2839 2 100 v 1784 2774 a Fm(4.3)p 1871 2839 V 58
w(pixel-store)p 2109 2839 V 232 2841 1878 2 v 231 2940
2 100 v 283 2876 a Fe(UNP)n(A)o(CK)p 413 2876 10 2 v
12 w(ALIGNMENT)p 649 2940 2 100 v 657 2940 V 89 w Fh(Z)731
2861 y Fd(+)p 801 2940 V 835 2876 a Fk(GetIn)o(tegerv)p
1120 2940 V 100 w Fm(4)p 1280 2940 V 94 w(V)m(alue)g(of)1305
2926 y Fr(UNPACK)p 1440 2926 14 2 v 15 w(ALIGNMENT)p
1749 2940 2 100 v 1784 2876 a Fm(4.3)p 1871 2940 V 58
w(pixel-store)p 2109 2940 V 232 2942 1878 2 v 231 3042
2 100 v 300 2977 a Fe(P)n(A)o(CK)p 386 2977 10 2 v 12
w(SW)m(AP)p 484 2977 V 11 w(BYTES)p 649 3042 2 100 v
657 3042 V 118 w Fh(B)p 801 3042 V 82 w Fk(GetBo)q(olean)o(v)p
1120 3042 V 57 w Fb(F)m(alse)p 1280 3042 V 58 w Fm(V)m(alue)g(of)1305
3027 y Fr(PACK)p 1396 3027 14 2 v 15 w(SWAP)p 1499 3027
V 15 w(BYTES)p 1749 3042 2 100 v 1784 2977 a Fm(4.3)p
1871 3042 V 58 w(pixel-store)p 2109 3042 V 232 3043 1878
2 v 231 3143 2 100 v 321 3078 a Fe(P)n(A)o(CK)p 407 3078
10 2 v 11 w(LSB)p 475 3078 V 11 w(FIRST)p 649 3143 2
100 v 657 3143 V 137 w Fh(B)p 801 3143 V 82 w Fk(GetBo)q(olean)o(v)p
1120 3143 V 57 w Fb(F)m(alse)p 1280 3143 V 58 w Fm(V)m(alue)g(of)1305
3128 y Fr(PACK)p 1396 3128 14 2 v 15 w(LSB)p 1477 3128
V 15 w(FIRST)p 1749 3143 2 100 v 1784 3078 a Fm(4.3)p
1871 3143 V 58 w(pixel-store)p 2109 3143 V 232 3145 1878
2 v 231 3244 2 100 v 293 3180 a Fe(P)n(A)o(CK)p 379 3180
10 2 v 12 w(R)o(O)o(W)p 464 3180 V 12 w(LENGTH)p 649
3244 2 100 v 657 3244 V 98 w Fh(Z)731 3165 y Fd(+)p 801
3244 V 835 3180 a Fk(GetIn)o(tegerv)p 1120 3244 V 100
w Fm(0)p 1280 3244 V 94 w(V)m(alue)g(of)1305 3229 y Fr(PACK)p
1396 3229 14 2 v 15 w(ROW)p 1477 3229 V 15 w(LENGTH)p
1749 3244 2 100 v 1784 3180 a Fm(4.3)p 1871 3244 V 58
w(pixel-store)p 2109 3244 V 232 3246 1878 2 v 231 3346
2 100 v 314 3281 a Fe(P)n(A)o(CK)p 400 3281 10 2 v 11
w(SKIP)p 482 3281 V 11 w(R)o(O)o(WS)p 649 3346 2 100
v 657 3346 V 119 w Fh(Z)731 3266 y Fd(+)p 801 3346 V
835 3281 a Fk(GetIn)o(tegerv)p 1120 3346 V 100 w Fm(0)p
1280 3346 V 94 w(V)m(alue)g(of)1305 3331 y Fr(PACK)p
1396 3331 14 2 v 15 w(SKIP)p 1499 3331 V 15 w(ROWS)p
1749 3346 2 100 v 1784 3281 a Fm(4.3)p 1871 3346 V 58
w(pixel-store)p 2109 3346 V 232 3347 1878 2 v 231 3447
2 100 v 304 3382 a Fe(P)n(A)o(CK)p 390 3382 10 2 v 12
w(SKIP)p 473 3382 V 11 w(PIXELS)p 649 3447 2 100 v 657
3447 V 109 w Fh(Z)731 3367 y Fd(+)p 801 3447 V 835 3382
a Fk(GetIn)o(tegerv)p 1120 3447 V 100 w Fm(0)p 1280 3447
V 94 w(V)m(alue)g(of)1305 3432 y Fr(PACK)p 1396 3432
14 2 v 15 w(SKIP)p 1499 3432 V 15 w(PIXELS)p 1749 3447
2 100 v 1784 3382 a Fm(4.3)p 1871 3447 V 58 w(pixel-store)p
2109 3447 V 232 3449 1878 2 v 231 3548 2 100 v 306 3483
a Fe(P)n(A)o(CK)p 392 3483 10 2 v 11 w(ALIGNMENT)p 649
3548 2 100 v 657 3548 V 111 w Fh(Z)731 3468 y Fd(+)p
801 3548 V 835 3483 a Fk(GetIn)o(tegerv)p 1120 3548 V
100 w Fm(4)p 1280 3548 V 94 w(V)m(alue)g(of)1305 3533
y Fr(PACK)p 1396 3533 14 2 v 15 w(ALIGNMENT)p 1749 3548
2 100 v 1784 3483 a Fm(4.3)p 1871 3548 V 58 w(pixel-store)p
2109 3548 V 232 3550 1878 2 v 1517 2252 a
currentpoint grestore moveto
1517 2252 a
676 2411 a FF(T)l(able)i(6.15.)22 b(Pixels)p eop
%%Page: 164 173
164 172 bop 332 137 a FC(164)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)430 2262
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
430 2262 a 508 2328 a Fm(Get)f(v)n(alue)151 b(T)o(yp)q(e)1123
2291 y(Get)1123 2328 y(Cmnd)1389 2291 y(Initial)1389
2328 y(V)m(alue)185 b(Description)156 b(Sec.)51 b(A)o(ttribute)p
444 2344 1913 2 v 443 2444 2 100 v 504 2379 a Fe(MAP)p
575 2379 10 2 v 11 w(COLOR)p 738 2444 2 100 v 746 2444
V 171 w Fh(B)p 1013 2444 V 148 w Fk(GetBo)q(olean)o(v)p
1342 2444 V 83 w Fb(F)m(alse)p 1544 2444 V 80 w Fm(T)m(rue)14
b(if)f(colors)h(are)1570 2429 y(mapp)q(ed)p 2014 2444
V 2049 2379 a(4.3)p 2135 2444 V 100 w(pixel)p 2356 2444
V 444 2446 1913 2 v 443 2545 2 100 v 492 2481 a Fe(MAP)p
563 2481 10 2 v 12 w(STENCIL)p 738 2545 2 100 v 746 2545
V 158 w Fh(B)p 1013 2545 V 148 w Fk(GetBo)q(olean)o(v)p
1342 2545 V 83 w Fb(F)m(alse)p 1544 2545 V 80 w Fm(T)m(rue)g(if)f
(stencil)h(v)n(alues)1570 2530 y(are)g(mapp)q(ed)p 2014
2545 V 2049 2481 a(4.3)p 2135 2545 V 100 w(pixel)p 2356
2545 V 444 2547 1913 2 v 443 2597 2 50 v 498 2582 a Fe(INDEX)p
598 2582 10 2 v 12 w(SHIFT)p 738 2597 2 50 v 746 2597
V 165 w Fh(Z)p 1013 2597 V 159 w Fk(GetIn)o(tegerv)p
1342 2597 V 126 w Fm(0)p 1544 2597 V 116 w(V)m(alue)f(of)g
Fr(INDEX)p 1845 2582 14 2 v 15 w(SHIFT)p 2014 2597 2
50 v 82 w Fm(4.3)p 2135 2597 V 100 w(pixel)p 2356 2597
V 444 2598 1913 2 v 443 2648 2 50 v 483 2633 a Fe(INDEX)p
583 2633 10 2 v 12 w(OFFSET)p 738 2648 2 50 v 746 2648
V 150 w Fh(Z)p 1013 2648 V 159 w Fk(GetIn)o(tegerv)p
1342 2648 V 126 w Fm(0)p 1544 2648 V 116 w(V)m(alue)g(of)g
Fr(INDEX)p 1845 2633 14 2 v 15 w(OFFSET)p 2014 2648 2
50 v 60 w Fm(4.3)p 2135 2648 V 100 w(pixel)p 2356 2648
V 444 2650 1913 2 v 443 2799 2 150 v 534 2685 a Fg(x)p
553 2685 10 2 v 12 w Fe(SCALE)p 738 2799 2 150 v 746
2799 V 201 w Fh(R)p 1013 2799 V 176 w Fk(GetFloatv)p
1342 2799 V 147 w Fm(1)p 1544 2799 V 116 w(V)m(alue)g(of)g
Fh(x)p 1759 2685 14 2 v 16 w Fr(SCALE)p Fm(;)f Fh(x)i
Fm(is)1570 2735 y Fr(RED)p Fm(,)e Fr(GREEN)p Fm(,)h Fr(BLUE)p
Fm(,)1570 2784 y Fr(ALPHA)p Fm(,)f(or)i Fr(DEPTH)p 2014
2799 2 150 v 2049 2685 a Fm(4.3)p 2135 2799 V 100 w(pixel)p
2356 2799 V 444 2801 1913 2 v 443 2950 2 150 v 549 2836
a Fg(x)p 568 2836 10 2 v 11 w Fe(BIAS)p 738 2950 2 150
v 746 2950 V 216 w Fh(R)p 1013 2950 V 176 w Fk(GetFloatv)p
1342 2950 V 147 w Fm(0)p 1544 2950 V 116 w(V)m(alue)f(of)g
Fh(x)p 1759 2836 14 2 v 16 w Fr(BIAS)p Fm(;)f Fh(x)i
Fm(is)1570 2886 y(one)g(of)f Fr(RED)p Fm(,)g Fr(GREEN)p
Fm(,)1570 2935 y Fr(BLUE)p Fm(,)f Fr(ALPHA)p Fm(,)g(or)i
Fr(DEPTH)p 2014 2950 2 150 v 2049 2836 a Fm(4.3)p 2135
2950 V 100 w(pixel)p 2356 2950 V 444 2952 1913 2 v 443
3002 2 50 v 536 2987 a Fe(ZOOM)p 629 2987 10 2 v 12 w(X)p
738 3002 2 50 v 746 3002 V 203 w Fh(R)p 1013 3002 V 176
w Fk(GetFloatv)p 1342 3002 V 131 w Fm(1.0)p 1544 3002
V 99 w Fh(x)f Fm(zo)q(om)g(factor)p 2014 3002 V 227 w(4.3)p
2135 3002 V 100 w(pixel)p 2356 3002 V 444 3004 1913 2
v 443 3053 2 50 v 536 3038 a Fe(ZOOM)p 629 3038 10 2
v 12 w(Y)p 738 3053 2 50 v 746 3053 V 203 w Fh(R)p 1013
3053 V 176 w Fk(GetFloatv)p 1342 3053 V 131 w Fm(1.0)p
1544 3053 V 99 w Fh(y)i Fm(zo)q(om)e(factor)p 2014 3053
V 229 w(4.3)p 2135 3053 V 100 w(pixel)p 2356 3053 V 444
3055 1913 2 v 443 3254 2 200 v 590 3090 a Fg(x)p 738
3254 V 746 3254 V 165 w Fm(8)c Fc(\002)h Fm(32)e Fc(\003)h(\002)p
Fh(R)p 1013 3254 V 50 w Fk(GetPixelMap)p 1342 3254 V
99 w Fm(0's)p 1544 3254 V 102 w(R)o(GBA)k Fk(PixelMap)1570
3140 y Fm(translation)g(tables;)g Fh(x)h Fm(is)1570 3190
y(a)f(map)f(name)h(from)1570 3239 y(T)m(able)g(3.3)p
2014 3254 V 2049 3090 a(4.3)p 2135 3254 V 133 w({)p 2356
3254 V 444 3256 1913 2 v 443 3455 2 200 v 590 3291 a
Fg(x)p 738 3455 V 746 3455 V 165 w Fm(2)c Fc(\002)h Fm(32)f
Fc(\003)g(\002)p Fh(Z)p 1013 3455 V 53 w Fk(GetPixelMap)p
1342 3455 V 99 w Fm(0's)p 1544 3455 V 102 w(Index)14
b Fk(PixelMap)1570 3341 y Fm(translation)f(tables;)g
Fh(x)h Fm(is)1570 3390 y(a)f(map)f(name)h(from)1570 3440
y(T)m(able)g(3.3)p 2014 3455 V 2049 3291 a(4.3)p 2135
3455 V 133 w({)p 2356 3455 V 444 3457 1913 2 v 443 3507
2 50 v 551 3492 a Fg(x)p 570 3492 10 2 v 11 w Fe(SIZE)p
738 3507 2 50 v 746 3507 V 206 w Fh(Z)882 3477 y Fd(+)p
1013 3507 V 1052 3492 a Fk(GetIn)o(tegerv)p 1342 3507
V 126 w Fm(1)p 1544 3507 V 116 w(Size)h(of)f(table)h
Fh(x)p 2014 3507 V 219 w Fm(4.3)p 2135 3507 V 133 w({)p
2356 3507 V 444 3508 1913 2 v 443 3558 2 50 v 487 3543
a Fe(READ)p 576 3543 10 2 v 11 w(BUFFER)p 738 3558 2
50 v 746 3558 V 147 w Fh(Z)885 3549 y Fd(3)p 1013 3558
V 1052 3543 a Fk(GetIn)o(tegerv)p 1342 3558 V 60 w Fm(see)h(4.3.2)p
1544 3558 V 49 w(Read)e(source)i(bu\013er)p 2014 3558
V 142 w(4.3)p 2135 3558 V 100 w(pixel)p 2356 3558 V 444
3560 1913 2 v 1728 2262 a
currentpoint grestore moveto
1728 2262 a 809 2424 a FF(T)l(able)h(6.16.)22
b(Pixels)15 b(\(con)o(t.\))p eop
%%Page: 165 174
165 173 bop 1547 137 a FC(165)392 2365 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
392 2365 a 532
2431 a Fm(Get)14 b(v)n(alue)260 b(T)o(yp)q(e)1269 2394
y(Get)1269 2431 y(Cmnd)1486 2394 y(Initial)1486 2431
y(V)m(alue)169 b(Description)157 b(Sec.)68 b(A)o(ttribute)p
406 2448 2068 2 v 405 2497 2 50 v 567 2482 a Fe(ORDER)p
824 2497 V 832 2497 V 269 w Fm(9)9 b Fc(\002)g Fh(Z)1045
2488 y Fd(8)p Fa(\003)p 1193 2497 V 1219 2482 a Fk(GetMapiv)p
1455 2497 V 99 w Fm(1)p 1625 2497 V 99 w(1d)14 b(map)e(order)p
2095 2497 V 235 w(5.1)p 2216 2497 V 151 w({)p 2473 2497
V 406 2499 2068 2 v 405 2549 2 50 v 567 2534 a Fe(ORDER)p
824 2549 V 832 2549 V 233 w Fm(9)d Fc(\002)g Fm(2)g Fc(\002)h
Fh(Z)1081 2540 y Fd(8)p Fa(\003)p 1193 2549 V 1219 2534
a Fk(GetMapiv)p 1455 2549 V 83 w Fm(1,1)p 1625 2549 V
82 w(2d)k(map)e(orders)p 2095 2549 V 219 w(5.1)p 2216
2549 V 151 w({)p 2473 2549 V 406 2550 2068 2 v 405 2600
2 50 v 570 2585 a Fe(COEFF)p 824 2600 V 832 2600 V 229
w Fm(9)d Fc(\002)h Fm(8)f Fc(\003)g(\002)p Fh(R)1100
2570 y Ff(n)p 1193 2600 V 1218 2585 a Fk(GetMapfv)p 1455
2600 V 49 w Fm(see)15 b(5.1)p 1625 2600 V 49 w(1d)f(con)o(trol)f(p)q
(oin)o(ts)p 2095 2600 V 171 w(5.1)p 2216 2600 V 151 w({)p
2473 2600 V 406 2602 2068 2 v 405 2652 2 50 v 570 2637
a Fe(COEFF)p 824 2652 V 832 2652 V 183 w Fm(9)c Fc(\002)h
Fm(8)f Fc(\003)g(\002)p Fm(8)g Fc(\003)g(\002)p Fh(R)1146
2622 y Ff(n)p 1193 2652 V 1218 2637 a Fk(GetMapfv)p 1455
2652 V 49 w Fm(see)15 b(5.1)p 1625 2652 V 49 w(2d)f(con)o(trol)f(p)q
(oin)o(ts)p 2095 2652 V 171 w(5.1)p 2216 2652 V 151 w({)p
2473 2652 V 406 2653 2068 2 v 405 2703 2 50 v 558 2688
a Fe(DOMAIN)p 824 2703 V 832 2703 V 240 w Fm(9)c Fc(\002)g
Fm(2)g Fc(\002)h Fh(R)p 1193 2703 V 117 w Fk(GetMapfv)p
1455 2703 V 49 w Fm(see)15 b(5.1)p 1625 2703 V 49 w(1d)f(domain)d(endp)
q(oin)o(ts)p 2095 2703 V 99 w(5.1)p 2216 2703 V 151 w({)p
2473 2703 V 406 2705 2068 2 v 405 2755 2 50 v 558 2740
a Fe(DOMAIN)p 824 2755 V 832 2755 V 240 w Fm(9)e Fc(\002)g
Fm(4)g Fc(\002)h Fh(R)p 1193 2755 V 117 w Fk(GetMapfv)p
1455 2755 V 49 w Fm(see)15 b(5.1)p 1625 2755 V 49 w(2d)f(domain)d(endp)
q(oin)o(ts)p 2095 2755 V 99 w(5.1)p 2216 2755 V 151 w({)p
2473 2755 V 406 2756 2068 2 v 405 2856 2 100 v 566 2791
a Fe(MAP1)p 652 2791 10 2 v 12 w Fg(x)p 824 2856 2 100
v 832 2856 V 282 w Fm(9)e Fc(\002)g Fh(B)p 1193 2856
V 159 w Fk(IsEnabled)p 1455 2856 V 65 w Fb(F)m(alse)p
1625 2856 V 64 w Fm(1d)14 b(map)e(enables:)19 b Fh(x)13
b Fm(is)1651 2841 y(map)f(t)o(yp)q(e)p 2095 2856 V 2130
2791 a(5.1)p 2216 2856 V 58 w(ev)n(al/enable)p 2473 2856
V 406 2858 2068 2 v 405 2957 2 100 v 566 2893 a Fe(MAP2)p
652 2893 10 2 v 12 w Fg(x)p 824 2957 2 100 v 832 2957
V 282 w Fm(9)d Fc(\002)g Fh(B)p 1193 2957 V 159 w Fk(IsEnabled)p
1455 2957 V 65 w Fb(F)m(alse)p 1625 2957 V 64 w Fm(2d)14
b(map)e(enables:)19 b Fh(x)13 b Fm(is)1651 2942 y(map)f(t)o(yp)q(e)p
2095 2957 V 2130 2893 a(5.1)p 2216 2957 V 58 w(ev)n(al/enable)p
2473 2957 V 406 2959 2068 2 v 405 3009 2 50 v 465 2994
a Fe(MAP1)p 551 2994 10 2 v 12 w(GRID)p 642 2994 V 11
w(DOMAIN)p 824 3009 2 50 v 832 3009 V 183 w Fm(2)d Fc(\002)g
Fh(R)p 1193 3009 V 154 w Fk(GetFloatv)p 1455 3009 V 82
w Fm(0,1)p 1625 3009 V 82 w(1d)14 b(grid)f(endp)q(oin)o(ts)p
2095 3009 V 161 w(5.1)p 2216 3009 V 126 w(ev)n(al)p 2473
3009 V 406 3010 2068 2 v 405 3060 2 50 v 465 3045 a Fe(MAP2)p
551 3045 10 2 v 12 w(GRID)p 642 3045 V 11 w(DOMAIN)p
824 3060 2 50 v 832 3060 V 183 w Fm(4)c Fc(\002)g Fh(R)p
1193 3060 V 154 w Fk(GetFloatv)p 1455 3060 V 49 w Fm(0,1;0,1)p
1625 3060 V 49 w(2d)14 b(grid)f(endp)q(oin)o(ts)p 2095
3060 V 161 w(5.1)p 2216 3060 V 126 w(ev)n(al)p 2473 3060
V 406 3062 2068 2 v 405 3112 2 50 v 445 3097 a Fe(MAP1)p
531 3097 10 2 v 12 w(GRID)p 622 3097 V 11 w(SEGMENTS)p
824 3112 2 50 v 832 3112 V 185 w Fh(Z)1015 3082 y Fd(+)p
1193 3112 V 1219 3097 a Fk(GetFloatv)p 1455 3112 V 98
w Fm(1)p 1625 3112 V 99 w(1d)h(grid)f(divisions)p 2095
3112 V 179 w(5.1)p 2216 3112 V 126 w(ev)n(al)p 2473 3112
V 406 3113 2068 2 v 405 3163 2 50 v 445 3148 a Fe(MAP2)p
531 3148 10 2 v 12 w(GRID)p 622 3148 V 11 w(SEGMENTS)p
824 3163 2 50 v 832 3163 V 149 w Fm(2)c Fc(\002)h Fh(Z)1051
3133 y Fd(+)p 1193 3163 V 1219 3148 a Fk(GetFloatv)p
1455 3163 V 82 w Fm(1,1)p 1625 3163 V 82 w(2d)k(grid)f(divisions)p
2095 3163 V 179 w(5.1)p 2216 3163 V 126 w(ev)n(al)p 2473
3163 V 406 3165 2068 2 v 405 3314 2 150 v 505 3200 a
Fe(A)o(UTO)p 595 3200 10 2 v 11 w(NORMAL)p 824 3314 2
150 v 832 3314 V 258 w Fh(B)p 1193 3314 V 194 w Fk(IsEnabled)p
1455 3314 V 65 w Fb(F)m(alse)p 1625 3314 V 64 w Fm(T)m(rue)h(if)f
(automatic)1651 3250 y(normal)f(generation)1651 3299
y(enabled)p 2095 3314 V 2130 3200 a(5.1)p 2216 3314 V
58 w(ev)n(al/enable)p 2473 3314 V 406 3316 2068 2 v 1343
2365 a
currentpoint grestore moveto
1343 2365 a 295 2527 a FF(T)l(able)k(6.17.)22
b(Ev)m(aluators)c(\()p Fl(GetMap)e FF(tak)o(es)g(a)h(map)e(name\))p
eop
%%Page: 166 175
166 174 bop 332 137 a FC(166)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)884 2462
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
884 2462 a 1110 2528 a Fm(Get)f(v)n(alue)236 b(T)o(yp)q(e)1735
2491 y(Get)1735 2528 y(Cmnd)2042 2491 y(Initial)2042
2528 y(V)m(alue)j(Description)156 b(Sec.)50 b(A)o(ttribute)p
898 2545 2165 2 v 897 2645 2 100 v 937 2580 a Fe(PERSPECTIVE)p
1155 2580 10 2 v 12 w(CORRECTION)p 1376 2580 V 12 w(HINT)p
1487 2645 2 100 v 1495 2645 V 81 w Fh(Z)1572 2586 y Fd(3)p
1639 2645 V 1664 2580 a Fk(GetIn)o(tegerv)p 1941 2645
V 48 w Fm(DONT)p 2094 2580 13 2 v 15 w(CARE)p 2251 2645
2 100 v 49 w(P)o(ersp)q(ectiv)o(e)16 b(correction)2276
2630 y(hin)o(t)p 2720 2645 V 2755 2580 a(5.6)p 2842 2645
V 108 w(hin)o(t)p 3062 2645 V 898 2646 2165 2 v 897 2696
2 50 v 1034 2681 a Fe(POINT)p 1134 2681 10 2 v 11 w(SMOOTH)p
1279 2681 V 12 w(HINT)p 1487 2696 2 50 v 1495 2696 V
178 w Fh(Z)1572 2687 y Fd(3)p 1639 2696 V 1664 2681 a
Fk(GetIn)o(tegerv)p 1941 2696 V 48 w Fm(DONT)p 2094 2681
13 2 v 15 w(CARE)p 2251 2696 2 50 v 49 w(P)o(oin)o(t)e(smo)q(oth)e(hin)
o(t)p 2720 2696 V 148 w(5.6)p 2842 2696 V 108 w(hin)o(t)p
3062 2696 V 898 2698 2165 2 v 897 2748 2 50 v 1047 2733
a Fe(LINE)p 1121 2733 10 2 v 11 w(SMOOTH)p 1266 2733
V 12 w(HINT)p 1487 2748 2 50 v 1495 2748 V 191 w Fh(Z)1572
2739 y Fd(3)p 1639 2748 V 1664 2733 a Fk(GetIn)o(tegerv)p
1941 2748 V 48 w Fm(DONT)p 2094 2733 13 2 v 15 w(CARE)p
2251 2748 2 50 v 49 w(Line)i(smo)q(oth)f(hin)o(t)p 2720
2748 V 166 w(5.6)p 2842 2748 V 108 w(hin)o(t)p 3062 2748
V 898 2749 2165 2 v 897 2799 2 50 v 1007 2784 a Fe(POL)n(YGON)p
1159 2784 10 2 v 13 w(SMOOTH)p 1306 2784 V 11 w(HINT)p
1487 2799 2 50 v 1495 2799 V 152 w Fh(Z)1572 2790 y Fd(3)p
1639 2799 V 1664 2784 a Fk(GetIn)o(tegerv)p 1941 2799
V 48 w Fm(DONT)p 2094 2784 13 2 v 15 w(CARE)p 2251 2799
2 50 v 49 w(P)o(olygon)g(smo)q(oth)g(hin)o(t)p 2720 2799
V 99 w(5.6)p 2842 2799 V 108 w(hin)o(t)p 3062 2799 V
898 2801 2165 2 v 897 2850 2 50 v 1123 2836 a Fe(F)o(OG)p
1190 2836 10 2 v 12 w(HINT)p 1487 2850 2 50 v 1495 2850
V 267 w Fh(Z)1572 2842 y Fd(3)p 1639 2850 V 1664 2836
a Fk(GetIn)o(tegerv)p 1941 2850 V 48 w Fm(DONT)p 2094
2836 13 2 v 15 w(CARE)p 2251 2850 2 50 v 49 w(F)m(og)g(hin)o(t)p
2720 2850 V 327 w(5.6)p 2842 2850 V 108 w(hin)o(t)p 3062
2850 V 898 2852 2165 2 v 1274 2462 a
currentpoint grestore moveto
1274 2462 a 894
2621 a FF(T)l(able)j(6.18.)22 b(Hin)o(ts)p eop
%%Page: 167 176
167 175 bop 1547 137 a FC(167)43 2482 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
43 2482 a 285
2548 a Fm(Get)14 b(v)n(alue)271 b(T)o(yp)q(e)963 2510
y(Get)963 2548 y(Cmnd)1195 2510 y(Minim)o(um)1195 2548
y(V)m(alue)229 b(Description)174 b(Sec.)68 b(A)o(ttribute)p
57 2564 2185 2 v 56 2664 2 100 v 276 2599 a Fe(MAX)p
349 2599 10 2 v 12 w(LIGHTS)p 678 2664 2 100 v 687 2664
V 275 w Fh(Z)779 2584 y Fd(+)p 867 2664 V 893 2599 a
Fk(GetIn)o(tegerv)p 1169 2664 V 124 w Fm(8)p 1394 2664
V 127 w(Maxim)o(um)10 b(n)o(um)o(b)q(er)j(of)1420 2649
y(ligh)o(ts)p 1864 2664 V 1890 2599 a(2.13.1)p 2020 2664
V 123 w({)p 2240 2664 V 57 2665 2185 2 v 56 2765 2 100
v 232 2700 a Fe(MAX)p 305 2700 10 2 v 11 w(CLIP)p 388
2700 V 11 w(PLANES)p 678 2765 2 100 v 687 2765 V 231
w Fh(Z)779 2685 y Fd(+)p 867 2765 V 893 2700 a Fk(GetIn)o(tegerv)p
1169 2765 V 124 w Fm(6)p 1394 2765 V 127 w(Maxim)o(um)d(n)o(um)o(b)q
(er)j(of)1420 2750 y(user)i(clipping)e(planes)p 1864
2765 V 1906 2700 a(2.11)p 2020 2765 V 140 w({)p 2240
2765 V 57 2767 2185 2 v 56 2866 2 100 v 121 2802 a Fe(MAX)p
194 2802 10 2 v 12 w(MODEL)m(VIEW)p 398 2802 V 12 w(ST)n(A)o(CK)p
513 2802 V 10 w(DEPTH)p 678 2866 2 100 v 687 2866 V 120
w Fh(Z)779 2787 y Fd(+)p 867 2866 V 893 2802 a Fk(GetIn)o(tegerv)p
1169 2866 V 114 w Fm(32)p 1394 2866 V 116 w(Maxim)o(um)d(mo)q(del-view)
1420 2851 y(stac)o(k)k(depth)p 1864 2866 V 1890 2802
a(2.10.2)p 2020 2866 V 123 w({)p 2240 2866 V 57 2868
2185 2 v 56 2968 2 100 v 117 2903 a Fe(MAX)p 190 2903
10 2 v 12 w(PR)o(OJECTION)p 402 2903 V 12 w(ST)n(A)o(CK)p
517 2903 V 10 w(DEPTH)p 678 2968 2 100 v 687 2968 V 116
w Fh(Z)779 2888 y Fd(+)p 867 2968 V 893 2903 a Fk(GetIn)o(tegerv)p
1169 2968 V 124 w Fm(2)p 1394 2968 V 127 w(Maxim)o(um)c(pro)r(jection)
1420 2953 y(matrix)i(stac)o(k)i(depth)p 1864 2968 V 1890
2903 a(2.10.2)p 2020 2968 V 123 w({)p 2240 2968 V 57
2969 2185 2 v 56 3119 2 150 v 142 3004 a Fe(MAX)p 215
3004 10 2 v 12 w(TEXTURE)p 377 3004 V 12 w(ST)n(A)o(CK)p
492 3004 V 10 w(DEPTH)p 678 3119 2 150 v 687 3119 V 141
w Fh(Z)779 2989 y Fd(+)p 867 3119 V 893 3004 a Fk(GetIn)o(tegerv)p
1169 3119 V 124 w Fm(2)p 1394 3119 V 127 w(Maxim)o(um)c(n)o(um)o(b)q
(er)1420 3054 y(depth)k(of)g(texture)1420 3104 y(matrix)e(stac)o(k)p
1864 3119 V 1890 3004 a(2.10.2)p 2020 3119 V 123 w({)p
2240 3119 V 57 3120 2185 2 v 56 3270 2 150 v 257 3155
a Fe(SUBPIXEL)p 411 3155 10 2 v 13 w(BITS)p 678 3270
2 150 v 687 3270 V 255 w Fh(Z)779 3140 y Fd(+)p 867 3270
V 893 3155 a Fk(GetIn)o(tegerv)p 1169 3270 V 124 w Fm(4)p
1394 3270 V 127 w(Num)o(b)q(er)h(of)h(bits)f(of)1420
3205 y(subpixel)h(precision)g(in)f(x)1420 3255 y(&)h(y)p
1864 3270 V 1932 3155 a(3)p 2020 3270 V 168 w({)p 2240
3270 V 57 3272 2185 2 v 56 3371 2 100 v 219 3306 a Fe(MAX)p
292 3306 10 2 v 12 w(TEXTURE)p 454 3306 V 12 w(SIZE)p
678 3371 2 100 v 687 3371 V 218 w Fh(Z)779 3291 y Fd(+)p
867 3371 V 893 3306 a Fk(GetIn)o(tegerv)p 1169 3371 V
114 w Fm(64)p 1394 3371 V 116 w(See)h(the)f(discussion)h(in)1420
3356 y(Section)f(3.8.)p 1864 3371 V 1916 3306 a(3.8)p
2020 3371 V 151 w({)p 2240 3371 V 57 3373 2185 2 v 56
3522 2 150 v 190 3408 a Fe(MAX)p 263 3408 10 2 v 12 w(PIXEL)p
367 3408 V 12 w(MAP)p 448 3408 V 12 w(T)n(ABLE)p 678
3522 2 150 v 687 3522 V 188 w Fh(Z)779 3393 y Fd(+)p
867 3522 V 893 3408 a Fk(GetIn)o(tegerv)p 1169 3522 V
114 w Fm(32)p 1394 3522 V 116 w(Maxim)o(um)c(size)15
b(of)e(a)1420 3458 y Fk(PixelMap)f Fm(translation)1420
3507 y(table)p 1864 3522 V 1900 3408 a(3.6.2)p 2020 3522
V 134 w({)p 2240 3522 V 57 3524 2185 2 v 56 3624 2 100
v 171 3559 a Fe(MAX)p 244 3559 10 2 v 12 w(NAME)p 347
3559 V 12 w(ST)n(A)o(CK)p 462 3559 V 11 w(DEPTH)p 678
3624 2 100 v 687 3624 V 170 w Fh(Z)779 3544 y Fd(+)p
867 3624 V 893 3559 a Fk(GetIn)o(tegerv)p 1169 3624 V
114 w Fm(64)p 1394 3624 V 116 w(Maxim)o(um)e(selection)1420
3609 y(name)j(stac)o(k)h(depth)p 1864 3624 V 1916 3559
a(5.2)p 2020 3624 V 151 w({)p 2240 3624 V 57 3625 2185
2 v 56 3725 2 100 v 225 3660 a Fe(MAX)p 298 3660 10 2
v 12 w(LIST)p 379 3660 V 10 w(NESTING)p 678 3725 2 100
v 687 3725 V 224 w Fh(Z)779 3645 y Fd(+)p 867 3725 V
893 3660 a Fk(GetIn)o(tegerv)p 1169 3725 V 114 w Fm(64)p
1394 3725 V 116 w(Maxim)o(um)c(displa)o(y)j(list)1420
3710 y(call)g(nesting)p 1864 3725 V 1916 3660 a(5.4)p
2020 3725 V 151 w({)p 2240 3725 V 57 3727 2185 2 v 56
3826 2 100 v 232 3761 a Fe(MAX)p 305 3761 10 2 v 12 w(EV)m(AL)p
397 3761 V 12 w(ORDER)p 678 3826 2 100 v 687 3826 V 231
w Fh(Z)779 3746 y Fd(+)p 867 3826 V 893 3761 a Fk(GetIn)o(tegerv)p
1169 3826 V 124 w Fm(8)p 1394 3826 V 127 w(Maxim)o(um)d(ev)n(aluator)
1420 3811 y(p)q(olynomial)g(order)p 1864 3826 V 1916
3761 a(5.1)p 2020 3826 V 151 w({)p 2240 3826 V 57 3828
2185 2 v 56 3927 2 100 v 205 3863 a Fe(MAX)p 278 3863
10 2 v 11 w(VIEWPOR)n(T)p 457 3863 V 12 w(DIMS)p 678
3927 2 100 v 687 3927 V 167 w Fm(2)f Fc(\002)h Fh(Z)815
3848 y Fd(+)p 867 3927 V 893 3863 a Fk(GetIn)o(tegerv)p
1169 3927 V 48 w Fm(see)15 b(2.10.1)p 1394 3927 V 49
w(Maxim)o(um)10 b(viewp)q(ort)1420 3912 y(dimensions)p
1864 3927 V 1890 3863 a(2.10.1)p 2020 3927 V 123 w({)p
2240 3927 V 57 3929 2185 2 v 56 4029 2 100 v 159 3964
a Fe(MAX)p 232 3964 10 2 v 12 w(A)n(TTRIB)p 362 3964
V 10 w(ST)n(A)o(CK)p 475 3964 V 10 w(DEPTH)p 678 4029
2 100 v 687 4029 V 158 w Fh(Z)779 3949 y Fd(+)p 867 4029
V 893 3964 a Fk(GetIn)o(tegerv)p 1169 4029 V 114 w Fm(16)p
1394 4029 V 116 w(Maxim)o(um)g(depth)15 b(of)e(the)1420
4014 y(serv)o(er)i(attribute)g(stac)o(k)p 1864 4029 V
1932 3964 a(6)p 2020 4029 V 168 w({)p 2240 4029 V 57
4030 2185 2 v 56 4130 2 100 v 95 4065 a Fe(MAX)p 168
4065 10 2 v 12 w(CLIENT)p 296 4065 V 11 w(A)n(TTRIB)p
425 4065 V 10 w(ST)n(A)o(CK)p 538 4065 V 11 w(DEPTH)p
678 4130 2 100 v 687 4130 V 94 w Fh(Z)779 4050 y Fd(+)p
867 4130 V 893 4065 a Fk(GetIn)o(tegerv)p 1169 4130 V
114 w Fm(16)p 1394 4130 V 116 w(Maxim)o(um)10 b(depth)15
b(of)e(the)1420 4115 y(clien)o(t)h(attribute)g(stac)o(k)p
1864 4130 V 1932 4065 a(6)p 2020 4130 V 168 w({)p 2240
4130 V 57 4132 2185 2 v 1692 2482 a
currentpoint grestore moveto
1692 2482 a 371 2641
a FF(T)l(able)i(6.19.)22 b(Impleme)o(n)o(tation)14 b(Dep)q(enden)o(t)h
(V)l(alues)p eop
%%Page: 168 177
168 176 bop 332 137 a FC(168)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)582 2354
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
582 2354 a 762 2419 a Fm(Get)f(v)n(alue)208 b(T)o(yp)q(e)1387
2382 y(Get)1387 2419 y(Cmnd)1627 2382 y(Minim)o(um)1627
2419 y(V)m(alue)229 b(Description)163 b(Sec.)58 b(A)o(ttribute)p
596 2436 2057 2 v 595 2535 2 100 v 742 2470 a Fe(A)o(UX)p
809 2470 10 2 v 12 w(BUFFERS)p 1092 2535 2 100 v 1101
2535 V 201 w Fh(Z)1193 2455 y Fd(+)p 1281 2535 V 1316
2470 a Fk(GetIn)o(tegerv)p 1601 2535 V 133 w Fm(0)p 1826
2535 V 127 w(Num)o(b)q(er)13 b(of)g(auxiliary)1852 2520
y(bu\013ers)p 2296 2535 V 2321 2470 a(4.2.1)p 2431 2535
V 124 w({)p 2651 2535 V 596 2537 2057 2 v 595 2637 2
100 v 755 2572 a Fe(R)o(GBA)p 844 2572 10 2 v 12 w(MODE)p
1092 2637 2 100 v 1101 2637 V 228 w Fh(B)p 1281 2637
V 101 w Fk(GetBo)q(olean)o(v)p 1601 2637 V 125 w Fm({)p
1826 2637 V 127 w(T)m(rue)h(if)f(color)g(bu\013ers)1852
2622 y(store)h(rgba)p 2296 2637 V 2338 2572 a(2.7)p 2431
2637 V 140 w({)p 2651 2637 V 596 2638 2057 2 v 595 2738
2 100 v 750 2673 a Fe(INDEX)p 850 2673 10 2 v 12 w(MODE)p
1092 2738 2 100 v 1101 2738 V 222 w Fh(B)p 1281 2738
V 101 w Fk(GetBo)q(olean)o(v)p 1601 2738 V 125 w Fm({)p
1826 2738 V 127 w(T)m(rue)g(if)f(color)g(bu\013ers)1852
2723 y(store)h(indexes)p 2296 2738 V 2338 2673 a(2.7)p
2431 2738 V 140 w({)p 2651 2738 V 596 2739 2057 2 v 595
2839 2 100 v 725 2774 a Fe(DOUBLEBUFFER)p 1092 2839 V
1101 2839 V 197 w Fh(B)p 1281 2839 V 101 w Fk(GetBo)q(olean)o(v)p
1601 2839 V 125 w Fm({)p 1826 2839 V 127 w(T)m(rue)g(if)f(fron)o(t)g(&)
i(bac)o(k)1852 2824 y(bu\013ers)g(exist)p 2296 2839 V
2321 2774 a(4.2.1)p 2431 2839 V 124 w({)p 2651 2839 V
596 2841 2057 2 v 595 2940 2 100 v 789 2876 a Fe(STEREO)p
1092 2940 V 1101 2940 V 262 w Fh(B)p 1281 2940 V 101
w Fk(GetBo)q(olean)o(v)p 1601 2940 V 125 w Fm({)p 1826
2940 V 127 w(T)m(rue)f(if)f(left)g(&)i(righ)o(t)1852
2925 y(bu\013ers)g(exist)p 2296 2940 V 2354 2876 a(6)p
2431 2940 V 157 w({)p 2651 2940 V 596 2942 2057 2 v 595
3042 2 100 v 703 2977 a Fe(POINT)p 803 2977 10 2 v 11
w(SIZE)p 880 2977 V 12 w(RANGE)p 1092 3042 2 100 v 1101
3042 V 127 w Fm(2)9 b Fc(\002)h Fh(R)1230 2962 y Fd(+)p
1281 3042 V 1336 2977 a Fk(GetFloatv)p 1601 3042 V 138
w Fm(1,1)p 1826 3042 V 110 w(Range)j(\(lo)g(to)h(hi\))g(of)1852
3027 y(an)o(tialiased)e(p)q(oin)o(t)i(sizes)p 2296 3042
V 2338 2977 a(3.3)p 2431 3042 V 140 w({)p 2651 3042 V
596 3043 2057 2 v 595 3143 2 100 v 643 3078 a Fe(POINT)p
743 3078 10 2 v 11 w(SIZE)p 820 3078 V 12 w(GRANULARITY)p
1092 3143 2 100 v 1101 3143 V 103 w Fh(R)1194 3063 y
Fd(+)p 1281 3143 V 1336 3078 a Fk(GetFloatv)p 1601 3143
V 154 w Fm({)p 1826 3143 V 127 w(An)o(tialiased)f(p)q(oin)o(t)g(size)
1852 3128 y(gran)o(ularit)o(y)p 2296 3143 V 2338 3078
a(3.3)p 2431 3143 V 140 w({)p 2651 3143 V 596 3145 2057
2 v 595 3244 2 100 v 695 3179 a Fe(LINE)p 769 3179 10
2 v 12 w(WIDTH)p 889 3179 V 11 w(RANGE)p 1092 3244 2
100 v 1101 3244 V 119 w Fm(2)c Fc(\002)h Fh(R)1230 3164
y Fd(+)p 1281 3244 V 1336 3179 a Fk(GetFloatv)p 1601
3244 V 138 w Fm(1,1)p 1826 3244 V 110 w(Range)j(\(lo)g(to)h(hi\))g(of)
1852 3229 y(an)o(tialiased)e(line)i(widths)p 2296 3244
V 2338 3179 a(3.4)p 2431 3244 V 140 w({)p 2651 3244 V
596 3246 2057 2 v 595 3346 2 100 v 635 3281 a Fe(LINE)p
709 3281 10 2 v 11 w(WIDTH)p 828 3281 V 12 w(GRANULARITY)p
1092 3346 2 100 v 1101 3346 V 95 w Fh(R)1194 3266 y Fd(+)p
1281 3346 V 1336 3281 a Fk(GetFloatv)p 1601 3346 V 154
w Fm({)p 1826 3346 V 127 w(An)o(tialiased)f(line)g(width)1852
3331 y(gran)o(ularit)o(y)p 2296 3346 V 2338 3281 a(3.4)p
2431 3346 V 140 w({)p 2651 3346 V 596 3347 2057 2 v 1576
2354 a
currentpoint grestore moveto
1576 2354 a 520 2513 a FF(T)l(able)j(6.20.)22
b(More)16 b(Implem)o(en)o(tation)d(Dep)q(enden)o(t)j(V)l(alues)p
eop
%%Page: 169 178
169 177 bop 1547 137 a FC(169)20 2210 y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
20 2210 a 141
2276 a Fm(Get)14 b(v)n(alue)130 b(T)o(yp)q(e)660 2239
y(Get)660 2276 y(Cmnd)892 2239 y(Initial)892 2276 y(V)m(alue)163
b(Description)157 b(Sec.)50 b(A)o(ttribute)p 34 2293
1804 2 v 33 2442 2 150 v 157 2328 a Fe(RED)p 224 2328
10 2 v 11 w(BITS)p 412 2442 2 150 v 421 2442 V 160 w
Fh(Z)495 2313 y Fd(+)p 564 2442 V 590 2328 a Fk(GetIn)o(tegerv)p
866 2442 V 95 w Fm(-)p 1025 2442 V 97 w(Num)o(b)q(er)14
b(of)f(bits)h(p)q(er)g(red)1051 2378 y(comp)q(onen)o(t)f(in)h(color)
1051 2427 y(bu\013ers)p 1495 2442 V 1546 2328 a(4)p 1616
2442 V 150 w({)p 1837 2442 V 34 2444 1804 2 v 33 2593
2 150 v 135 2479 a Fe(GREEN)p 244 2479 10 2 v 13 w(BITS)p
412 2593 2 150 v 421 2593 V 138 w Fh(Z)495 2464 y Fd(+)p
564 2593 V 590 2479 a Fk(GetIn)o(tegerv)p 866 2593 V
95 w Fm(-)p 1025 2593 V 97 w(Num)o(b)q(er)g(of)f(bits)h(p)q(er)1051
2529 y(green)h(comp)q(onen)o(t)e(in)1051 2579 y(color)h(bu\013ers)p
1495 2593 V 1546 2479 a(4)p 1616 2593 V 150 w({)p 1837
2593 V 34 2595 1804 2 v 33 2745 2 150 v 148 2630 a Fe(BLUE)p
232 2630 10 2 v 12 w(BITS)p 412 2745 2 150 v 421 2745
V 151 w Fh(Z)495 2615 y Fd(+)p 564 2745 V 590 2630 a
Fk(GetIn)o(tegerv)p 866 2745 V 95 w Fm(-)p 1025 2745
V 97 w(Num)o(b)q(er)g(of)f(bits)h(p)q(er)1051 2680 y(blue)g(comp)q
(onen)o(t)f(in)1051 2730 y(color)h(bu\013ers)p 1495 2745
V 1546 2630 a(4)p 1616 2745 V 150 w({)p 1837 2745 V 34
2746 1804 2 v 33 2896 2 150 v 137 2781 a Fe(ALPHA)p 244
2781 10 2 v 12 w(BITS)p 412 2896 2 150 v 421 2896 V 139
w Fh(Z)495 2766 y Fd(+)p 564 2896 V 590 2781 a Fk(GetIn)o(tegerv)p
866 2896 V 95 w Fm(-)p 1025 2896 V 97 w(Num)o(b)q(er)g(of)f(bits)h(p)q
(er)1051 2831 y(alpha)f(comp)q(onen)o(t)g(in)1051 2881
y(color)h(bu\013ers)p 1495 2896 V 1546 2781 a(4)p 1616
2896 V 150 w({)p 1837 2896 V 34 2897 1804 2 v 33 2997
2 100 v 140 2932 a Fe(INDEX)p 240 2932 10 2 v 12 w(BITS)p
412 2997 2 100 v 421 2997 V 143 w Fh(Z)495 2917 y Fd(+)p
564 2997 V 590 2932 a Fk(GetIn)o(tegerv)p 866 2997 V
95 w Fm(-)p 1025 2997 V 97 w(Num)o(b)q(er)g(of)f(bits)h(p)q(er)1051
2982 y(index)g(in)f(color)h(bu\013ers)p 1495 2997 V 1546
2932 a(4)p 1616 2997 V 150 w({)p 1837 2997 V 34 2999
1804 2 v 33 3098 2 100 v 136 3034 a Fe(DEPTH)p 245 3034
10 2 v 11 w(BITS)p 412 3098 2 100 v 421 3098 V 139 w
Fh(Z)495 3018 y Fd(+)p 564 3098 V 590 3034 a Fk(GetIn)o(tegerv)p
866 3098 V 95 w Fm(-)p 1025 3098 V 97 w(Num)o(b)q(er)g(of)f(depth)1051
3083 y(bu\013er)i(planes)p 1495 3098 V 1546 3034 a(4)p
1616 3098 V 150 w({)p 1837 3098 V 34 3100 1804 2 v 33
3200 2 100 v 123 3135 a Fe(STENCIL)p 258 3135 10 2 v
11 w(BITS)p 412 3200 2 100 v 421 3200 V 126 w Fh(Z)495
3120 y Fd(+)p 564 3200 V 590 3135 a Fk(GetIn)o(tegerv)p
866 3200 V 95 w Fm(-)p 1025 3200 V 97 w(Num)o(b)q(er)f(of)f(stencil)
1051 3185 y(planes)p 1495 3200 V 1546 3135 a(4)p 1616
3200 V 150 w({)p 1837 3200 V 34 3201 1804 2 v 33 3351
2 150 v 94 3236 a Fe(A)o(CCUM)p 210 3236 10 2 v 12 w(RED)p
287 3236 V 11 w(BITS)p 412 3351 2 150 v 421 3351 V 97
w Fh(Z)495 3221 y Fd(+)p 564 3351 V 590 3236 a Fk(GetIn)o(tegerv)p
866 3351 V 95 w Fm(-)p 1025 3351 V 97 w(Num)o(b)q(er)h(of)f(bits)h(p)q
(er)g(red)1051 3286 y(comp)q(onen)o(t)f(in)h(the)1051
3336 y(accum)o(ulation)e(bu\013er)p 1495 3351 V 1546
3236 a(4)p 1616 3351 V 150 w({)p 1837 3351 V 34 3352
1804 2 v 33 3552 2 200 v 73 3387 a Fe(A)o(CCUM)p 189
3387 10 2 v 11 w(GREEN)p 307 3387 V 13 w(BITS)p 412 3552
2 200 v 421 3552 V 75 w Fh(Z)495 3372 y Fd(+)p 564 3552
V 590 3387 a Fk(GetIn)o(tegerv)p 866 3552 V 95 w Fm(-)p
1025 3552 V 97 w(Num)o(b)q(er)i(of)f(bits)h(p)q(er)1051
3437 y(green)h(comp)q(onen)o(t)e(in)1051 3487 y(the)i(accum)o(ulation)
1051 3537 y(bu\013er)p 1495 3552 V 1546 3387 a(4)p 1616
3552 V 150 w({)p 1837 3552 V 34 3553 1804 2 v 33 3703
2 150 v 86 3588 a Fe(A)o(CCUM)p 202 3588 10 2 v 11 w(BLUE)p
295 3588 V 12 w(BITS)p 412 3703 2 150 v 421 3703 V 88
w Fh(Z)495 3573 y Fd(+)p 564 3703 V 590 3588 a Fk(GetIn)o(tegerv)p
866 3703 V 95 w Fm(-)p 1025 3703 V 97 w(Num)o(b)q(er)f(of)f(bits)h(p)q
(er)1051 3638 y(blue)g(comp)q(onen)o(t)f(in)h(the)1051
3688 y(accum)o(ulation)e(bu\013er)p 1495 3703 V 1546
3588 a(4)p 1616 3703 V 150 w({)p 1837 3703 V 34 3704
1804 2 v 33 3904 2 200 v 74 3739 a Fe(A)o(CCUM)p 190
3739 10 2 v 11 w(ALPHA)p 306 3739 V 12 w(BITS)p 412 3904
2 200 v 421 3904 V 77 w Fh(Z)495 3724 y Fd(+)p 564 3904
V 590 3739 a Fk(GetIn)o(tegerv)p 866 3904 V 95 w Fm(-)p
1025 3904 V 97 w(Num)o(b)q(er)i(of)f(bits)h(p)q(er)1051
3789 y(alpha)f(comp)q(onen)o(t)g(in)1051 3839 y(the)i(accum)o(ulation)
1051 3889 y(bu\013er)p 1495 3904 V 1546 3739 a(4)p 1616
3904 V 150 w({)p 1837 3904 V 34 3905 1804 2 v 1715 2210
a
currentpoint grestore moveto
1715 2210 a 303 2370 a FF(T)l(able)h(6.21.)22 b(Implem)o(en)o(t)o
(ation)14 b(Dep)q(enden)o(t)i(Pixel)f(Depths)p eop
%%Page: 170 179
170 178 bop 332 137 a FC(170)417 b Fx(CHAPTER)16 b(6.)34
b(ST)l(A)l(TE)16 b(AND)f(ST)l(A)l(TE)g(REQUESTS)402 2339
y
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch
translate
402 2339 a 603 2405 a Fm(Get)f(v)n(alue)236 b(T)o(yp)q(e)1256
2367 y(Get)1256 2405 y(Cmnd)1500 2367 y(Initial)1500
2405 y(V)m(alue)175 b(Description)156 b(Sec.)50 b(A)o(ttribute)p
416 2421 2042 2 v 415 2471 2 50 v 613 2456 a Fe(LIST)p
684 2456 10 2 v 10 w(BASE)p 955 2471 2 50 v 963 2471
V 260 w Fh(Z)1063 2441 y Fd(+)p 1157 2471 V 1185 2456
a Fk(GetIn)o(tegerv)p 1464 2471 V 105 w Fm(0)p 1644 2471
V 104 w(Setting)14 b(of)f Fk(ListBase)p 2114 2471 V 110
w Fm(5.4)p 2236 2471 V 116 w(list)p 2456 2471 V 416 2473
2042 2 v 415 2622 2 150 v 604 2507 a Fe(LIST)p 675 2507
10 2 v 10 w(INDEX)p 955 2622 2 150 v 963 2622 V 251 w
Fh(Z)1063 2492 y Fd(+)p 1157 2622 V 1185 2507 a Fk(GetIn)o(tegerv)p
1464 2622 V 105 w Fm(0)p 1644 2622 V 104 w(n)o(um)o(b)q(er)g(of)h
(displa)o(y)f(list)1670 2557 y(under)i(construction;)f(0)1670
2607 y(if)f(none)p 2114 2622 V 2149 2507 a(5.4)p 2236
2622 V 133 w({)p 2456 2622 V 416 2624 2042 2 v 415 2773
2 150 v 606 2659 a Fe(LIST)p 677 2659 10 2 v 11 w(MODE)p
955 2773 2 150 v 963 2773 V 253 w Fh(Z)1063 2644 y Fd(+)p
1157 2773 V 1185 2659 a Fk(GetIn)o(tegerv)p 1464 2773
V 105 w Fm(0)p 1644 2773 V 104 w(Mo)q(de)i(of)e(displa)o(y)g(list)1670
2708 y(under)i(construction;)1670 2758 y(unde\014ned)g(if)e(none)p
2114 2773 V 2149 2659 a(5.4)p 2236 2773 V 133 w({)p 2456
2773 V 416 2775 2042 2 v 415 2825 2 50 v 685 2810 a Fe({)p
955 2825 V 963 2825 V 289 w Fm(16)c Fc(\003)g(\002)p
Fh(A)p 1157 2825 V 166 w Fk({)p 1464 2825 V 176 w Fm(empt)o(y)p
1644 2825 V 57 w(Serv)o(er)15 b(attribute)g(stac)o(k)p
2114 2825 V 100 w(6)p 2236 2825 V 150 w({)p 2456 2825
V 416 2826 2042 2 v 415 2926 2 100 v 518 2861 a Fe(A)n(TTRIB)p
638 2861 10 2 v 10 w(ST)n(A)o(CK)p 751 2861 V 11 w(DEPTH)p
955 2926 2 100 v 963 2926 V 165 w Fh(Z)1063 2846 y Fd(+)p
1157 2926 V 1185 2861 a Fk(GetIn)o(tegerv)p 1464 2926
V 105 w Fm(0)p 1644 2926 V 104 w(Serv)o(er)g(attribute)g(stac)o(k)1670
2911 y(p)q(oin)o(ter)p 2114 2926 V 2165 2861 a(6)p 2236
2926 V 150 w({)p 2456 2926 V 416 2928 2042 2 v 415 2977
2 50 v 685 2962 a Fe({)p 955 2977 V 963 2977 V 289 w
Fm(16)9 b Fc(\003)g(\002)p Fh(A)p 1157 2977 V 166 w Fk({)p
1464 2977 V 176 w Fm(empt)o(y)p 1644 2977 V 57 w(Clien)o(t)14
b(attribute)g(stac)o(k)p 2114 2977 V 104 w(6)p 2236 2977
V 150 w({)p 2456 2977 V 416 2979 2042 2 v 415 3079 2
100 v 455 3014 a Fe(CLIENT)p 573 3014 10 2 v 10 w(A)n(TTRIB)p
701 3014 V 11 w(ST)n(A)o(CK)p 815 3014 V 10 w(DEPTH)p
955 3079 2 100 v 963 3079 V 102 w Fh(Z)1063 2999 y Fd(+)p
1157 3079 V 1185 3014 a Fk(GetIn)o(tegerv)p 1464 3079
V 105 w Fm(0)p 1644 3079 V 104 w(Clien)o(t)g(attribute)g(stac)o(k)1670
3064 y(p)q(oin)o(ter)p 2114 3079 V 2165 3014 a(6)p 2236
3079 V 150 w({)p 2456 3079 V 416 3080 2042 2 v 415 3130
2 50 v 531 3115 a Fe(NAME)p 624 3115 10 2 v 12 w(ST)n(A)o(CK)p
739 3115 V 10 w(DEPTH)p 955 3130 2 50 v 963 3130 V 178
w Fh(Z)1063 3100 y Fd(+)p 1157 3130 V 1185 3115 a Fk(GetIn)o(tegerv)p
1464 3130 V 105 w Fm(0)p 1644 3130 V 104 w(Name)f(stac)o(k)h(depth)p
2114 3130 V 151 w(5.2)p 2236 3130 V 133 w({)p 2456 3130
V 416 3132 2042 2 v 415 3182 2 50 v 575 3167 a Fe(RENDER)p
706 3167 10 2 v 12 w(MODE)p 955 3182 2 50 v 963 3182
V 229 w Fh(Z)1066 3173 y Fd(3)p 1157 3182 V 1185 3167
a Fk(GetIn)o(tegerv)p 1464 3182 V 50 w Fr(RENDER)p 1644
3182 V 48 w Fk(RenderMo)q(de)e Fm(setting)p 2114 3182
V 72 w(5.2)p 2236 3182 V 133 w({)p 2456 3182 V 416 3183
2042 2 v 415 3283 2 100 v 461 3218 a Fe(SELECTION)p 639
3218 10 2 v 11 w(BUFFER)p 775 3218 V 11 w(POINTER)p 955
3283 2 100 v 963 3283 V 120 w Fh(Y)p 1157 3283 V 115
w Fk(GetP)o(oin)o(t)o(erv)p 1464 3283 V 102 w Fm(0)p
1644 3283 V 104 w(Selection)i(bu\013er)1670 3268 y(p)q(oin)o(ter)p
2114 3283 V 2149 3218 a(5.2)p 2236 3283 V 94 w(select)p
2456 3283 V 416 3285 2042 2 v 415 3334 2 50 v 498 3319
a Fe(SELECTION)p 676 3319 10 2 v 11 w(BUFFER)p 812 3319
V 11 w(SIZE)p 955 3334 2 50 v 963 3334 V 145 w Fh(Z)1063
3304 y Fd(+)p 1157 3334 V 1185 3319 a Fk(GetIn)o(tegerv)p
1464 3334 V 105 w Fm(0)p 1644 3334 V 104 w(Selection)g(bu\013er)h(size)
p 2114 3334 V 121 w(5.2)p 2236 3334 V 94 w(select)p 2456
3334 V 416 3336 2042 2 v 415 3436 2 100 v 463 3371 a
Fe(FEEDBA)o(CK)p 635 3371 10 2 v 12 w(BUFFER)p 772 3371
V 11 w(POINTER)p 955 3436 2 100 v 963 3436 V 123 w Fh(Y)p
1157 3436 V 115 w Fk(GetP)o(oin)o(t)o(erv)p 1464 3436
V 102 w Fm(0)p 1644 3436 V 104 w(F)m(eedbac)o(k)g(bu\013er)1670
3421 y(p)q(oin)o(ter)p 2114 3436 V 2149 3371 a(5.3)p
2236 3436 V 66 w(feedbac)o(k)p 2456 3436 V 416 3437 2042
2 v 415 3487 2 50 v 501 3472 a Fe(FEEDBA)o(CK)p 673 3472
10 2 v 11 w(BUFFER)p 809 3472 V 11 w(SIZE)p 955 3487
2 50 v 963 3487 V 148 w Fh(Z)1063 3457 y Fd(+)p 1157
3487 V 1185 3472 a Fk(GetIn)o(tegerv)p 1464 3487 V 105
w Fm(0)p 1644 3487 V 104 w(F)m(eedbac)o(k)g(bu\013er)g(size)p
2114 3487 V 115 w(5.3)p 2236 3487 V 66 w(feedbac)o(k)p
2456 3487 V 416 3489 2042 2 v 415 3539 2 50 v 492 3524
a Fe(FEEDBA)o(CK)p 664 3524 10 2 v 11 w(BUFFER)p 800
3524 V 11 w(TYPE)p 955 3539 2 50 v 963 3539 V 145 w Fh(Z)1066
3530 y Fd(5)p 1157 3539 V 1185 3524 a Fk(GetIn)o(tegerv)p
1464 3539 V 93 w Fr(2D)p 1644 3539 V 93 w Fm(F)m(eedbac)o(k)g(t)o(yp)q
(e)p 2114 3539 V 219 w(5.3)p 2236 3539 V 66 w(feedbac)o(k)p
2456 3539 V 416 3540 2042 2 v 415 3590 2 50 v 685 3575
a Fe({)p 955 3590 V 963 3590 V 300 w Fh(n)9 b Fc(\002)g
Fh(Z)1103 3581 y Fd(8)p 1157 3590 V 1215 3575 a Fk(GetError)p
1464 3590 V 136 w Fm(0)p 1644 3590 V 104 w(Curren)o(t)15
b(error)g(co)q(de\(s\))p 2114 3590 V 92 w(2.5)p 2236
3590 V 133 w({)p 2456 3590 V 416 3592 2042 2 v 415 3691
2 100 v 685 3627 a Fe({)p 955 3691 V 963 3691 V 306 w
Fh(n)10 b Fc(\002)f Fh(B)p 1157 3691 V 186 w Fk({)p 1464
3691 V 186 w Fb(F)m(alse)p 1644 3691 V 69 w Fm(T)m(rue)14
b(if)f(there)j(is)d(a)1670 3676 y(corresp)q(onding)i(error)p
2114 3691 V 2149 3627 a(2.5)p 2236 3691 V 133 w({)p 2456
3691 V 416 3693 2042 2 v 1757 2339 a
currentpoint grestore moveto
1757 2339 a 805
2498 a FF(T)l(able)h(6.22.)22 b(Miscellaneous)p eop
%%Page: 171 180
171 179 bop 120 614 a Ft(App)s(endix)33 b(A)120 837 y
FA(In)m(v)-6 b(ariance)120 1075 y FC(The)12 b(Op)q(enGL)i(sp)q
(eci\014cation)f(is)f(not)g(pixel)h(exact.)19 b(It)12
b(therefore)f(do)q(es)h(not)f(guaran)o(tee)120 1132 y(an)j(exact)g
(matc)o(h)f(b)q(et)o(w)o(een)i(images)f(pro)q(duced)h(b)o(y)f
(di\013eren)o(t)g(GL)g(implemen)o(tations.)120 1188 y(Ho)o(w)o(ev)o
(er,)20 b(the)g(sp)q(eci\014cation)i(do)q(es)f(sp)q(ecify)g(exact)f
(matc)o(hes,)g(in)h(some)f(cases,)g(for)120 1244 y(images)12
b(pro)q(duced)g(b)o(y)f(the)g(same)g(implemen)o(tation.)20
b(The)12 b(purp)q(ose)g(of)e(this)i(app)q(endix)120 1301
y(is)22 b(to)f(iden)o(tify)i(and)f(pro)o(vide)g(justi\014cation)g(for)f
(those)g(cases)h(that)f(require)h(exact)120 1357 y(matc)o(hes.)120
1591 y Fs(A.1)67 b(Rep)r(eatabilit)n(y)120 1723 y FC(The)18
b(ob)o(vious)f(and)g(most)f(fundamen)o(tal)h(case)g(is)h(rep)q(eated)f
(issuance)h(of)f(a)g(series)g(of)120 1779 y(GL)k(commands.)37
b(F)l(or)21 b(an)o(y)f(giv)o(en)i(GL)f(and)g(framebu\013er)f(state)g
Fv(ve)n(ctor)p FC(,)i(and)f(for)120 1836 y(an)o(y)13
b(GL)h(command,)f(the)g(resulting)i(GL)e(and)h(framebu\013er)f(state)f
(m)o(ust)h(b)q(e)h(iden)o(tical)120 1892 y(whenev)o(er)f(the)f(command)
f(is)i(executed)g(on)e(that)h(initial)i(GL)e(and)g(framebu\013er)f
(state.)191 1964 y(One)24 b(purp)q(ose)g(of)f(rep)q(eatabilit)o(y)i(is)
f(a)o(v)o(oidance)g(of)f(visual)h(artifacts)f(when)h(a)120
2021 y(double-bu\013ered)c(scene)d(is)h(redra)o(wn.)26
b(If)17 b(rendering)i(is)e(not)g(rep)q(eatable,)h(sw)o(apping)120
2077 y(b)q(et)o(w)o(een)j(t)o(w)o(o)f(bu\013ers)g(rendered)i(with)f
(the)g(same)f(command)h(sequence)h(ma)o(y)e(re-)120 2134
y(sult)c(in)h(visible)h(c)o(hanges)d(in)h(the)g(image.)21
b(Suc)o(h)16 b(false)g(motion)g(is)g(distracting)g(to)f(the)120
2190 y(view)o(er.)21 b(Another)15 b(reason)g(for)f(rep)q(eatabilit)o(y)
j(is)e(testabilit)o(y)l(.)191 2262 y(Rep)q(eatabilit)o(y)l(,)21
b(while)e(imp)q(ortan)o(t,)g(is)f(a)g(w)o(eak)g(requiremen)o(t.)29
b(Giv)o(en)19 b(only)g(re-)120 2319 y(p)q(eatabilit)o(y)e(as)e(a)f
(requiremen)o(t,)i(t)o(w)o(o)d(scenes)j(rendered)g(with)g(one)f
(\(small\))g(p)q(olygon)120 2375 y(c)o(hanged)22 b(in)f(p)q(osition)h
(migh)o(t)f(di\013er)g(at)f(ev)o(ery)h(pixel.)38 b(Suc)o(h)22
b(a)e(di\013erence,)j(while)120 2432 y(within)17 b(the)e(la)o(w)g(of)f
(rep)q(eatabilit)o(y)l(,)i(is)g(certainly)g(not)f(within)h(its)f
(spirit.)21 b(Additional)120 2488 y(in)o(v)m(ariance)c(rules)f(are)f
(desirable)i(to)d(ensure)i(useful)g(op)q(eration.)833
2613 y(171)p eop
%%Page: 172 181
172 180 bop 332 137 a FC(172)792 b Fx(APPENDIX)15 b(A.)30
b(INV)-5 b(ARIANCE)332 286 y Fs(A.2)66 b(Multi-pass)24
b(Algorithms)332 389 y FC(In)o(v)m(ariance)15 b(is)f(necessary)g(for)f
(a)g(whole)h(set)f(of)h(useful)g(m)o(ulti-pass)h(algorithms.)k(Suc)o(h)
332 446 y(algorithms)d(render)g(m)o(ultiple)i(times,)e(eac)o(h)g(time)h
(with)f(a)g(di\013eren)o(t)g(GL)g(mo)q(de)g(v)o(ec-)332
502 y(tor,)i(to)h(ev)o(en)o(tually)g(pro)q(duce)h(a)e(result)h(in)h
(the)f(framebu\013er.)30 b(Examples)19 b(of)f(these)332
559 y(algorithms)d(include:)400 655 y FB(\017)23 b FC(\\Erasing")15
b(a)h(primitiv)o(e)i(from)d(the)h(framebu\013er)g(b)o(y)g(redra)o(wing)
g(it,)h(either)g(in)446 711 y(a)e(di\013eren)o(t)g(color)g(or)g(using)h
(the)f(X)o(OR)h(logical)g(op)q(eration.)400 808 y FB(\017)23
b FC(Using)16 b(stencil)g(op)q(erations)g(to)e(compute)h(capping)i
(planes.)403 904 y(On)e(the)g(other)g(hand,)g(in)o(v)m(ariance)i(rules)
f(can)f(greatly)g(increase)g(the)h(complexit)o(y)332
961 y(of)f(high-p)q(erformance)h(implemen)o(tations)g(of)e(the)h(GL.)g
(Ev)o(en)g(the)g(w)o(eak)f(rep)q(eatabil-)332 1017 y(it)o(y)e
(requiremen)o(t)h(signi\014can)o(tly)h(constrains)f(a)f(parallel)i
(implemen)o(tation)f(of)f(the)h(GL.)332 1074 y(Because)k(GL)g(implemen)
o(tations)g(are)f(required)i(to)e(implemen)o(t)i(ALL)f(GL)f(capabili-)
332 1130 y(ties,)i(not)g(just)f(a)g(con)o(v)o(enien)o(t)h(subset,)g
(those)g(that)f(utilize)j(hardw)o(are)d(acceleration)332
1186 y(are)d(exp)q(ected)h(to)e(alternate)h(b)q(et)o(w)o(een)g(hardw)o
(are)g(and)g(soft)o(w)o(are)e(mo)q(dules)j(based)g(on)332
1243 y(the)20 b(curren)o(t)g(GL)f(mo)q(de)i(v)o(ector.)32
b(A)20 b(strong)f(in)o(v)m(ariance)i(requiremen)o(t)g(forces)e(the)332
1299 y(b)q(eha)o(vior)f(of)e(the)i(hardw)o(are)e(and)h(soft)o(w)o(are)f
(mo)q(dules)i(to)e(b)q(e)i(iden)o(tical,)h(something)332
1356 y(that)h(ma)o(y)h(b)q(e)h(v)o(ery)e(di\016cult)j(to)d(ac)o(hiev)o
(e)i(\(for)e(example,)j(if)f(the)f(hardw)o(are)f(do)q(es)332
1412 y(\015oating-p)q(oin)o(t)c(op)q(erations)f(with)h(di\013eren)o(t)f
(precision)i(than)e(the)g(soft)o(w)o(are\).)403 1469
y(What)h(is)h(desired)h(is)f(a)g(compromise)g(that)f(results)h(in)h
(man)o(y)e(complian)o(t,)h(high-)332 1526 y(p)q(erformance)k(implemen)o
(tations,)h(and)f(in)g(man)o(y)f(soft)o(w)o(are)f(v)o(endors)h(c)o(ho)q
(osing)h(to)332 1582 y(p)q(ort)15 b(to)g(Op)q(enGL.)332
1729 y Fs(A.3)66 b(In)n(v)l(ariance)25 b(Rules)332 1832
y FC(F)l(or)15 b(a)g(giv)o(en)g(instan)o(tiation)h(of)f(an)g(Op)q(enGL)
h(rendering)h(con)o(text:)332 1942 y Fz(Rule)h(1)23 b
Fv(F)m(or)17 b(any)g(given)g(GL)g(and)h(fr)n(amebu\013er)g(state)f(ve)n
(ctor,)h(and)f(for)h(any)f(given)332 1999 y(GL)d(c)n(ommand,)h(the)g(r)
n(esulting)f(GL)g(and)g(fr)n(amebu\013er)h(state)g(must)g(b)n(e)f
(identic)n(al)g(e)n(ach)332 2055 y(time)i(the)h(c)n(ommand)f(is)g(exe)n
(cute)n(d)g(on)g(that)h(initial)f(GL)g(and)g(fr)n(amebu\013er)h(state.)
332 2165 y Fz(Rule)h(2)23 b Fv(Changes)17 b(to)g(the)h(fol)r(lowing)f
(state)h(values)f(have)g(no)h(side)f(e\013e)n(cts)f(\(the)i(use)332
2221 y(of)f(any)f(other)h(state)f(value)g(is)g(not)g(a\013e)n(cte)n(d)g
(by)g(the)h(change\):)332 2317 y Fz(Required:)500 2414
y FB(\017)23 b Fv(F)m(r)n(amebu\013er)16 b(c)n(ontents)e(\(al)r(l)i
(bitplanes\))500 2488 y FB(\017)23 b Fv(The)16 b(c)n(olor)g(bu\013ers)g
(enable)n(d)f(for)i(writing)p eop
%%Page: 173 182
173 181 bop 120 137 a Fx(A.3.)35 b(INV)-5 b(ARIANCE)16
b(R)o(ULES)849 b FC(173)289 286 y FB(\017)22 b Fv(The)16
b(values)g(of)g(matric)n(es)g(other)h(than)g(the)f(top-of-stack)h
(matric)n(es)289 358 y FB(\017)22 b Fv(Scissor)15 b(p)n(ar)n(ameters)i
(\(other)f(than)g(enable\))289 430 y FB(\017)22 b Fv(Writemasks)16
b(\(c)n(olor,)g(index,)g(depth,)h(stencil\))289 502 y
FB(\017)22 b Fv(Cle)n(ar)15 b(values)h(\(c)n(olor,)g(index,)g(depth,)h
(stencil,)e(ac)n(cumulation\))289 574 y FB(\016)22 b
Fv(Curr)n(ent)16 b(values)g(\(c)n(olor,)f(index,)h(normal,)g(textur)n
(e)h(c)n(o)n(or)n(ds,)f(e)n(dge\015ag\))289 646 y FB(\016)22
b Fv(Curr)n(ent)16 b(r)n(aster)g(c)n(olor,)g(index)g(and)g(textur)n(e)h
(c)n(o)n(or)n(dinates.)289 717 y FB(\016)22 b Fv(Material)d(pr)n(op)n
(erties)g(\(ambient,)h(di\013use,)g(sp)n(e)n(cular,)f(emission,)g
(shini-)334 774 y(ness\))120 867 y Fz(Strongly)f(suggested:)289
959 y FB(\017)k Fv(Matrix)17 b(mo)n(de)289 1031 y FB(\017)22
b Fv(Matrix)17 b(stack)f(depths)289 1103 y FB(\017)22
b Fv(A)o(lpha)16 b(test)g(p)n(ar)n(ameters)h(\(other)f(than)g(enable\))
289 1175 y FB(\017)22 b Fv(Stencil)15 b(p)n(ar)n(ameters)h(\(other)h
(than)f(enable\))289 1247 y FB(\017)22 b Fv(Depth)17
b(test)f(p)n(ar)n(ameters)g(\(other)h(than)f(enable\))289
1318 y FB(\017)22 b Fv(Blend)16 b(p)n(ar)n(ameters)g(\(other)g(than)h
(enable\))289 1390 y FB(\017)22 b Fv(L)n(o)n(gic)n(al)15
b(op)n(er)n(ation)h(p)n(ar)n(ameters)g(\(other)h(than)f(enable\))289
1462 y FB(\017)22 b Fv(Pixel)16 b(stor)n(age)g(and)g(tr)n(ansfer)g
(state)289 1534 y FB(\017)22 b Fv(Evaluator)c(state)f(\(exc)n(ept)g(as)
g(it)g(a\013e)n(cts)g(the)g(vertex)g(data)h(gener)n(ate)n(d)f(by)334
1590 y(the)g(evaluators\))289 1662 y FB(\017)22 b Fv(Polygon)13
b(o\013set)h(p)n(ar)n(ameters)f(\(other)h(than)g(enables,)f(and)g(exc)n
(ept)h(as)f(they)334 1719 y(a\013e)n(ct)j(the)g(depth)h(values)f(of)h
(fr)n(agments\))120 1821 y Fz(Corollary)h(1)23 b Fv(F)m(r)n(agment)13
b(gener)n(ation)h(is)g(invariant)g(with)h(r)n(esp)n(e)n(ct)f(to)g(the)h
(state)g(val-)120 1878 y(ues)i(marke)n(d)f(with)h FB(\017)f
Fv(in)g(R)o(ule)g(2.)120 1980 y Fz(Corollary)i(2)23 b
Fv(The)17 b(window)g(c)n(o)n(or)n(dinates)g(\(x,)g(y,)h(and)f(z\))f(of)
i(gener)n(ate)n(d)f(fr)n(agments)120 2037 y(ar)n(e)g(also)f(invariant)f
(with)i(r)n(esp)n(e)n(ct)e(to)120 2128 y Fz(Required:)289
2220 y FB(\017)22 b Fv(Curr)n(ent)17 b(values)g(\(c)n(olor,)g(c)n(olor)
g(index,)h(normal,)f(textur)n(e)h(c)n(o)n(or)n(ds,)f(e)n(dge-)334
2277 y(\015ag\))289 2349 y FB(\017)22 b Fv(Curr)n(ent)16
b(r)n(aster)g(c)n(olor,)g(c)n(olor)g(index,)g(and)g(textur)n(e)h(c)n(o)
n(or)n(dinates)289 2420 y FB(\017)22 b Fv(Material)d(pr)n(op)n(erties)g
(\(ambient,)h(di\013use,)g(sp)n(e)n(cular,)f(emission,)g(shini-)334
2477 y(ness\))p eop
%%Page: 174 183
174 182 bop 332 137 a FC(174)792 b Fx(APPENDIX)15 b(A.)30
b(INV)-5 b(ARIANCE)332 286 y Fz(Rule)18 b(3)23 b Fv(The)c(arithmetic)g
(of)h(e)n(ach)f(p)n(er-fr)n(agment)g(op)n(er)n(ation)f(is)h(invariant)g
(exc)n(ept)332 343 y(with)13 b(r)n(esp)n(e)n(ct)f(to)h(p)n(ar)n
(ameters)f(that)i(dir)n(e)n(ctly)d(c)n(ontr)n(ol)h(it)h(\(the)f(p)n(ar)
n(ameters)h(that)g(c)n(ontr)n(ol)332 399 y(the)h(alpha)f(test,)h(for)f
(instanc)n(e,)g(ar)n(e)g(the)g(alpha)h(test)f(enable,)g(the)g(alpha)h
(test)f(function,)332 456 y(and)j(the)h(alpha)g(test)f(r)n(efer)n(enc)n
(e)e(value\).)332 562 y Fz(Corollary)k(3)k Fv(Images)15
b(r)n(ender)n(e)n(d)f(into)h(di\013er)n(ent)f(c)n(olor)h(bu\013ers,)g
(either)g(simultane-)332 619 y(ously)k(or)h(sep)n(ar)n(ately)f(using)f
(the)i(same)f(c)n(ommand)h(se)n(quenc)n(e,)e(ar)n(e)h(pixel)g(identic)n
(al.)332 675 y(\(Note)f(that)h(this)f(do)n(es)f(not)h(hold)h(b)n(etwe)n
(en)e(X)1149 658 y FG(\003)1186 675 y Fv(pixmaps)i(and)f(c)n(olor)g
(bu\013ers,)h(how-)332 731 y(ever.\))332 875 y Fs(A.4)66
b(What)24 b(All)f(This)g(Means)332 976 y FC(Hardw)o(are)16
b(accelerated)h(GL)g(implemen)o(tations)h(are)f(exp)q(ected)h(to)e
(default)h(to)f(soft-)332 1033 y(w)o(are)11 b(op)q(eration)i(when)f
(some)g(GL)g(state)f(v)o(ectors)g(are)h(encoun)o(tered.)20
b(Ev)o(en)12 b(the)g(w)o(eak)332 1089 y(rep)q(eatabilit)o(y)21
b(requiremen)o(t)f(means,)g(for)f(example,)i(that)d(Op)q(enGL)j
(implemen)o(ta-)332 1145 y(tions)14 b(cannot)h(apply)g(h)o(ysteresis)f
(to)g(this)g(sw)o(ap,)g(but)g(m)o(ust)g(instead)h(guaran)o(tee)e(that)
332 1202 y(a)h(giv)o(en)g(mo)q(de)g(v)o(ector)f(implies)j(that)e(a)f
(subsequen)o(t)i(command)e Fv(always)h FC(is)h(executed)332
1258 y(in)h(either)g(the)f(hardw)o(are)g(or)f(the)i(soft)o(w)o(are)d
(mac)o(hine.)403 1315 y(The)j(stronger)e(in)o(v)m(ariance)j(rules)g
(constrain)f(when)g(the)f(switc)o(h)h(from)f(hardw)o(are)332
1371 y(to)g(soft)o(w)o(are)e(rendering)j(can)g(o)q(ccur,)f(giv)o(en)h
(that)e(the)i(soft)o(w)o(are)d(and)j(hardw)o(are)e(ren-)332
1428 y(derers)k(are)f(not)g(pixel)i(iden)o(tical.)28
b(F)l(or)17 b(example,)i(the)e(switc)o(h)h(can)f(b)q(e)h(made)g(when)
332 1484 y(blending)h(is)f(enabled)g(or)f(disabled,)i(but)e(it)g
(should)h(not)f(b)q(e)g(made)g(when)h(a)e(c)o(hange)332
1541 y(is)g(made)f(to)g(the)g(blending)i(parameters.)403
1597 y(Because)c(\015oating)g(p)q(oin)o(t)h(v)m(alues)g(ma)o(y)f(b)q(e)
g(represen)o(ted)h(using)g(di\013eren)o(t)f(formats)332
1654 y(in)k(di\013eren)o(t)g(renderers)f(\(hardw)o(are)f(and)i(soft)o
(w)o(are\),)d(man)o(y)h(Op)q(enGL)j(state)d(v)m(alues)332
1710 y(ma)o(y)i(c)o(hange)h(subtly)g(when)g(renderers)h(are)e(sw)o(app)
q(ed.)28 b(This)18 b(is)g(the)g(t)o(yp)q(e)g(of)f(state)332
1766 y(v)m(alue)g(c)o(hange)e(that)f(Rule)j(1)e(seeks)g(to)g(a)o(v)o
(oid.)p 332 2445 598 2 v 383 2472 a Fp(\003)401 2488
y Fo(X)e(is)g(a)g(registered)i(trademark)f(of)e(the)h(MIT)g(X)g
(Consortium.)p eop
%%Page: 175 184
175 183 bop 120 598 a Ft(App)s(endix)33 b(B)120 805 y
FA(Corollaries)120 1028 y FC(The)22 b(follo)o(wing)g(observ)m(ations)f
(are)g(deriv)o(ed)h(from)e(the)i(b)q(o)q(dy)f(and)h(the)f(other)g(ap-)
120 1084 y(p)q(endixes)c(of)d(the)h(sp)q(eci\014cation.)21
b(Absence)16 b(of)e(an)g(observ)m(ation)h(from)f(this)h(list)g(in)h(no)
120 1141 y(w)o(a)o(y)f(impugns)h(its)f(v)o(eracit)o(y)l(.)176
1247 y(1.)22 b(The)28 b Fr(CURRENT)p 497 1247 14 2 v
14 w(RASTER)p 643 1247 V 15 w(TEXTURE)p 812 1247 V 14
w(COORDINATES)d FC(m)o(ust)j(b)q(e)g(main)o(tained)h(cor-)234
1304 y(rectly)22 b(at)g(all)h(times,)g(including)i(p)q(erio)q(ds)e
(while)g(texture)f(mapping)h(is)f(not)234 1360 y(enabled,)16
b(and)g(when)f(the)h(GL)f(is)h(in)g(color)f(index)h(mo)q(de.)176
1454 y(2.)22 b(When)d(requested,)g(texture)f(co)q(ordinates)h(returned)
f(in)i(feedbac)o(k)e(mo)q(de)h(are)234 1510 y(alw)o(a)o(ys)c(v)m(alid,)
h(includin)q(g)i(p)q(erio)q(ds)e(while)h(texture)f(mapping)g(is)g(not)f
(enabled,)234 1567 y(and)g(when)h(the)f(GL)h(is)f(in)h(color)g(index)g
(mo)q(de.)176 1661 y(3.)22 b(The)i(error)f(seman)o(tics)h(of)f(up)o(w)o
(ard)g(compatible)i(Op)q(enGL)g(revisions)f(ma)o(y)234
1717 y(c)o(hange.)31 b(Otherwise,)21 b(only)e(additions)h(can)g(b)q(e)f
(made)g(to)g(up)o(w)o(ard)f(compat-)234 1774 y(ible)f(revisions.)176
1868 y(4.)22 b(GL)17 b(query)g(commands)g(are)f(not)h(required)h(to)e
(satisfy)g(the)h(seman)o(tics)g(of)g(the)234 1924 y Fz(Flush)23
b FC(or)g(the)g Fz(Finish)h FC(commands.)43 b(All)24
b(that)f(is)g(required)i(is)e(that)g(the)234 1981 y(queried)c(state)d
(b)q(e)i(consisten)o(t)g(with)g(complete)g(execution)g(of)f(all)h
(previously)234 2037 y(executed)e(GL)f(commands.)176
2131 y(5.)22 b(Application)g(sp)q(eci\014ed)f(p)q(oin)o(t)f(size)h(and)
f(line)h(width)f(m)o(ust)f(b)q(e)h(returned)g(as)234
2187 y(sp)q(eci\014ed)h(when)f(queried.)34 b(Implemen)o(tation)20
b(dep)q(enden)o(t)h(clamping)g(a\013ects)234 2244 y(the)15
b(v)m(alues)i(only)e(while)i(they)e(are)g(in)h(use.)176
2338 y(6.)22 b(Bitmaps)15 b(and)h(pixel)h(transfers)d(do)h(not)g(cause)
g(selection)i(hits.)176 2432 y(7.)22 b(The)15 b(mask)f(sp)q(eci\014ed)j
(as)e(the)g(third)g(argumen)o(t)f(to)g Fz(StencilF)l(unc)j
FC(a\013ects)d(the)234 2488 y(op)q(erands)e(of)f(the)h(stencil)h
(comparison)e(function,)i(but)e(has)h(no)f(direct)i(e\013ect)e(on)833
2613 y(175)p eop
%%Page: 176 185
176 184 bop 332 137 a FC(176)756 b Fx(APPENDIX)16 b(B.)30
b(COR)o(OLLARIES)446 286 y FC(the)14 b(up)q(date)i(of)e(the)h(stencil)h
(bu\013er.)j(The)c(mask)f(sp)q(eci\014ed)j(b)o(y)e Fz(StencilMask)446
343 y FC(has)f(no)h(e\013ect)g(on)g(the)f(stencil)j(comparison)e
(function;)g(it)g(limits)h(the)f(e\013ect)g(of)446 399
y(the)g(up)q(date)h(of)f(the)g(stencil)i(bu\013er.)388
491 y(8.)22 b(P)o(olygon)13 b(shading)i(is)g(completed)g(b)q(efore)f
(the)h(p)q(olygon)f(mo)q(de)h(is)f(in)o(terpreted.)446
548 y(If)19 b(the)g(shade)g(mo)q(del)h(is)g Fr(FLAT)p
FC(,)d(all)j(of)f(the)g(p)q(oin)o(ts)g(or)f(lines)j(generated)e(b)o(y)g
(a)446 604 y(single)d(p)q(olygon)g(will)h(ha)o(v)o(e)e(the)g(same)g
(color.)388 696 y(9.)22 b(A)17 b(displa)o(y)i(list)g(is)f(just)f(a)g
(group)h(of)f(commands)g(and)h(argumen)o(ts,)f(so)g(errors)446
752 y(generated)e(b)o(y)g(commands)g(in)h(a)f(displa)o(y)i(list)f(m)o
(ust)e(b)q(e)i(generated)g(when)f(the)446 809 y(list)j(is)g(executed.)
28 b(If)18 b(the)g(list)g(is)g(created)g(in)g Fr(COMPILE)f
FC(mo)q(de,)h(errors)e(should)446 865 y(not)f(b)q(e)g(generated)h
(while)g(the)g(list)g(is)f(b)q(eing)i(created.)365 957
y(10.)22 b Fz(RasterP)o(os)14 b FC(do)q(es)i(not)f(c)o(hange)h(the)g
(curren)o(t)f(raster)g(index)h(from)f(its)h(default)446
1013 y(v)m(alue)h(in)f(an)g(R)o(GBA)g(mo)q(de)g(GL)f(con)o(text.)21
b(Lik)o(ewise,)c Fz(RasterP)o(os)e FC(do)q(es)h(not)446
1070 y(c)o(hange)f(the)h(curren)o(t)f(raster)g(color)g(from)g(its)h
(default)g(v)m(alue)g(in)h(a)e(color)g(index)446 1126
y(GL)22 b(con)o(text.)40 b(Both)22 b(the)g(curren)o(t)g(raster)f(index)
i(and)f(the)g(curren)o(t)g(raster)446 1183 y(color)15
b(can)g(b)q(e)g(queried,)h(ho)o(w)o(ev)o(er,)e(regardless)h(of)f(the)h
(color)g(mo)q(de)g(of)f(the)h(GL)446 1239 y(con)o(text.)365
1331 y(11.)22 b(A)16 b(material)h(prop)q(ert)o(y)f(that)g(is)h(attac)o
(hed)f(to)g(the)h(curren)o(t)f(color)h(via)g Fz(Color-)446
1387 y(Material)k FC(alw)o(a)o(ys)d(tak)o(es)h(the)h(v)m(alue)h(of)e
(the)h(curren)o(t)f(color.)33 b(A)o(ttempts)19 b(to)446
1444 y(c)o(hange)c(that)f(material)i(prop)q(ert)o(y)f(via)g
Fz(Material)i FC(calls)f(ha)o(v)o(e)f(no)g(e\013ect.)365
1535 y(12.)22 b Fz(Material)15 b FC(and)f Fz(ColorMaterial)g
FC(can)g(b)q(e)h(used)f(to)f(mo)q(dify)h(the)g(R)o(GBA)g(ma-)446
1592 y(terial)19 b(prop)q(erties,)g(ev)o(en)g(in)g(a)g(color)f(index)i
(con)o(text.)29 b(Lik)o(ewise,)20 b Fz(Material)446 1648
y FC(can)15 b(b)q(e)h(used)g(to)f(mo)q(dify)g(the)h(color)f(index)i
(material)e(prop)q(erties,)h(ev)o(en)f(in)i(an)446 1705
y(R)o(GBA)e(con)o(text.)365 1797 y(13.)22 b(There)16
b(is)g(no)g(atomicit)o(y)f(requiremen)o(t)i(for)e(Op)q(enGL)i
(rendering)g(commands,)446 1853 y(ev)o(en)e(at)g(the)g(fragmen)o(t)f
(lev)o(el.)365 1945 y(14.)22 b(Because)h(rasterization)f(of)f(non-an)o
(tialiased)j(p)q(olygons)f(is)f(p)q(oin)o(t)h(sampled,)446
2001 y(p)q(olygons)15 b(that)g(ha)o(v)o(e)g(no)g(area)g(generate)g(no)g
(fragmen)o(ts)f(when)i(they)f(are)g(ras-)446 2058 y(terized)e(in)f
Fr(FILL)f FC(mo)q(de,)i(and)f(the)g(fragmen)o(ts)f(generated)h(b)o(y)f
(the)i(rasterization)446 2114 y(of)h(\\narro)o(w")g(p)q(olygons)i(ma)o
(y)e(not)h(form)f(a)h(con)o(tin)o(uous)h(arra)o(y)l(.)365
2206 y(15.)22 b(Op)q(enGL)e(do)q(es)e(not)g(force)h(left-)g(or)f(righ)o
(t-handedness)h(on)g(an)o(y)f(of)g(its)h(co)q(or-)446
2262 y(dinates)d(systems.)21 b(Consider,)16 b(ho)o(w)o(ev)o(er,)f(the)h
(follo)o(wing)g(conditions:)23 b(\(1\))14 b(the)446 2319
y(ob)s(ject)e(co)q(ordinate)h(system)f(is)h(righ)o(t-handed;)g(\(2\))f
(the)h(only)g(commands)f(used)446 2375 y(to)h(manipulate)j(the)e(mo)q
(del-view)i(matrix)e(are)g Fz(Scale)h FC(\(with)f(p)q(ositiv)o(e)h
(scaling)446 2432 y(v)m(alues)g(only\),)g Fz(Rotate)p
FC(,)g(and)g Fz(T)l(ranslate)p FC(;)g(\(3\))e(exactly)i(one)f(of)g
(either)h Fz(F)l(rus-)446 2488 y(tum)e FC(or)g Fz(Ortho)h
FC(is)g(used)g(to)f(set)h(the)f(pro)s(jection)h(matrix;)f(\(4\))g(the)h
(near)f(v)m(alue)p eop
%%Page: 177 186
177 185 bop 1547 137 a FC(177)234 286 y(is)15 b(less)f(than)g(the)h
(far)e(v)m(alue)j(for)d Fz(DepthRange)p FC(.)21 b(If)14
b(these)h(conditions)g(are)f(all)234 343 y(satis\014ed,)h(then)g(the)g
(ey)o(e)f(co)q(ordinate)h(system)f(is)i(righ)o(t-handed)f(and)g(the)f
(clip,)234 399 y(normalized)i(device,)h(and)e(windo)o(w)h(co)q
(ordinate)f(systems)g(are)g(left-handed.)153 493 y(16.)22
b(ColorMaterial)15 b(has)g(no)g(e\013ect)g(on)g(color)g(index)i(ligh)o
(ting.)153 587 y(17.)22 b(\(No)12 b(pixel)j(drop)q(outs)d(or)g
(duplicates.\))21 b(Let)13 b(t)o(w)o(o)e(p)q(olygons)j(share)e(an)h
(iden)o(tical)234 643 y(edge)j(\(that)f(is,)h(there)f(exist)h(v)o
(ertices)g(A)g(and)g(B)g(of)f(an)h(edge)g(of)f(one)h(p)q(olygon,)234
700 y(and)e(v)o(ertices)h(C)f(and)g(D)g(of)g(an)g(edge)g(of)g(the)g
(other)g(p)q(olygon,)g(and)h(the)f(co)q(ordi-)234 756
y(nates)e(of)f(v)o(ertex)h(A)g(\(resp.)18 b(B\))12 b(are)g(iden)o
(tical)h(to)f(those)f(of)h(v)o(ertex)f(C)h(\(resp.)19
b(D\),)234 813 y(and)f(the)g(state)g(of)f(the)h(the)g(co)q(ordinate)h
(transfomations)e(is)h(iden)o(tical)i(when)234 869 y(A,)e(B,)h(C,)e
(and)i(D)f(are)h(sp)q(eci\014ed\).)31 b(Then,)20 b(when)f(the)f
(fragmen)o(ts)g(pro)q(duced)234 926 y(b)o(y)h(rasterization)g(of)f(b)q
(oth)h(p)q(olygons)h(are)f(tak)o(en)f(together,)h(eac)o(h)g(fragmen)o
(t)234 982 y(in)o(tersecting)d(the)f(in)o(terior)h(of)f(the)g(shared)g
(edge)h(is)g(pro)q(duced)g(exactly)g(once.)153 1076 y(18.)22
b(Op)q(enGL)j(state)f(con)o(tin)o(ues)g(to)g(b)q(e)h(mo)q(di\014ed)g
(in)g Fr(FEEDBACK)d FC(mo)q(de)j(and)f(in)234 1132 y
Fr(SELECT)14 b FC(mo)q(de.)20 b(The)c(con)o(ten)o(ts)e(of)h(the)g
(framebu\013er)g(are)g(not)f(mo)q(di\014ed.)153 1226
y(19.)22 b(The)11 b(curren)o(t)g(raster)f(p)q(osition,)j(the)e(user)g
(de\014ned)h(clip)h(planes,)g(the)e(sp)q(ot)g(direc-)234
1283 y(tions)16 b(and)f(the)h(ligh)o(t)g(p)q(ositions)g(for)f
Fr(LIGHT)p Fh(i)p FC(,)f(and)i(the)f(ey)o(e)h(planes)g(for)f(texgen)234
1339 y(are)j(transformed)g(when)i(they)f(are)f(sp)q(eci\014ed.)33
b(They)19 b(are)f(not)h(transformed)234 1396 y(during)d(a)f
Fz(P)o(opA)o(ttrib)p FC(,)f(or)h(when)g(cop)o(ying)h(a)f(con)o(text.)
153 1489 y(20.)22 b(Dithering)f(algorithms)g(ma)o(y)f(b)q(e)h
(di\013eren)o(t)g(for)e(di\013eren)o(t)i(comp)q(onen)o(ts.)36
b(In)234 1546 y(particular,)15 b(alpha)g(ma)o(y)f(b)q(e)h(dithered)h
(di\013eren)o(tly)g(from)e(red,)g(green,)h(or)f(blue,)234
1602 y(and)h(an)h(implemen)o(tation)g(ma)o(y)f(c)o(ho)q(ose)g(to)f(not)
h(dither)h(alpha)g(at)e(all.)p eop
%%Page: 178 187
178 186 bop 332 605 a Ft(App)s(endix)33 b(C)332 820 y
FA(V)-10 b(ersion)39 b(1.1)332 1050 y FC(Op)q(enGL)20
b(v)o(ersion)f(1.1)e(is)i(the)g(\014rst)f(revision)i(since)g(the)e
(original)i(v)o(ersion)f(1.0)e(w)o(as)332 1107 y(released)f(on)e(1)g
(July)i(1992.)j(V)l(ersion)c(1.1)f(is)h(up)o(w)o(ard)f(compatible)i
(with)f(v)o(ersion)g(1.0,)332 1163 y(meaning)e(that)f(an)o(y)g(program)
f(that)h(runs)g(with)h(a)f(1.0)f(GL)i(implemen)o(tation)g(will)h(also)
332 1219 y(run)g(unc)o(hanged)g(with)g(a)f(1.1)g(GL)g(implemen)o
(tation.)21 b(Sev)o(eral)14 b(additions)g(w)o(ere)f(made)332
1276 y(to)18 b(the)h(GL,)f(esp)q(ecially)j(to)d(the)h(texture)f
(mapping)i(capabilities,)h(but)e(also)f(to)g(the)332
1332 y(geometry)d(and)g(fragmen)o(t)g(op)q(erations.)20
b(F)l(ollo)o(wing)c(are)f(brief)i(descriptions)f(of)f(eac)o(h)332
1389 y(addition.)332 1574 y Fs(C.1)66 b(V)-6 b(ertex)23
b(Arra)n(y)332 1690 y FC(Arra)o(ys)15 b(of)g(v)o(ertex)g(data)g(ma)o(y)
g(b)q(e)h(transferred)g(to)f(the)g(GL)h(with)g(man)o(y)f(few)o(er)h
(com-)332 1747 y(mands)22 b(than)f(w)o(ere)g(previously)i(necessary)l
(.)39 b(Six)22 b(arra)o(ys)f(are)g(de\014ned,)j(one)d(eac)o(h)332
1803 y(storing)e(v)o(ertex)f(p)q(ositions,)j(normal)e(co)q(ordinates,)h
(colors,)g(color)f(indices,)j(texture)332 1860 y(co)q(ordinates,)15
b(and)h(edge)f(\015ags.)k(The)d(arra)o(ys)e(ma)o(y)g(b)q(e)i(sp)q
(eci\014ed)h(and)e(enabled)i(inde-)332 1916 y(p)q(enden)o(tly)l(,)i(or)
e(one)g(of)g(the)g(pre-de\014ned)i(con\014gurations)e(ma)o(y)f(b)q(e)i
(selected)g(with)g(a)332 1973 y(single)f(command.)403
2037 y(The)11 b(primary)g(goal)g(w)o(as)f(to)g(decrease)i(the)f(n)o(um)
o(b)q(er)g(of)f(subroutine)i(calls)g(required)332 2093
y(to)e(transfer)h(non-displa)o(y)h(listed)h(geometry)d(data)g(to)h(the)
g(GL.)f(A)h(secondary)g(goal)g(w)o(as)332 2149 y(to)16
b(impro)o(v)o(e)g(the)h(e\016ciency)g(of)f(the)h(transfer;)f(esp)q
(ecially)j(to)c(allo)o(w)i(direct)g(memory)332 2206 y(access)j(\(DMA\))
f(hardw)o(are)h(to)f(b)q(e)i(used)g(to)e(e\013ect)h(the)g(transfer.)34
b(The)20 b(additions)332 2262 y(matc)o(h)12 b(those)g(of)f(the)h
Fr(EXT)p 775 2262 14 2 v 16 w(vertex)p 923 2262 V 14
w(array)f FC(extension,)i(except)g(that)e(static)h(arra)o(y)f(data)332
2319 y(are)20 b(not)f(supp)q(orted)i(\(b)q(ecause)g(they)f(complicated)
h(the)f(in)o(terface,)h(and)f(w)o(ere)g(not)332 2375
y(b)q(eing)f(used\),)f(and)g(the)f(pre-de\014ned)i(con\014gurations)f
(are)f(added)h(\(b)q(oth)g(to)f(reduce)332 2432 y(subroutine)k(coun)o
(t)e(ev)o(en)i(further,)f(and)g(to)f(allo)o(w)h(for)g(e\016cien)o(t)g
(transfer)f(of)h(arra)o(y)332 2488 y(data\).)1045 2613
y(178)p eop
%%Page: 179 188
179 187 bop 120 137 a Fx(C.2.)35 b(POL)l(YGON)16 b(OFFSET)881
b FC(179)120 286 y Fs(C.2)67 b(P)n(olygon)22 b(O\013set)120
389 y FC(Depth)11 b(v)m(alues)g(of)f(fragmen)o(ts)f(generated)h(b)o(y)g
(the)h(rasterization)f(of)g(a)g(p)q(olygon)h(ma)o(y)e(b)q(e)120
445 y(shifted)16 b(to)o(w)o(ard)e(or)h(a)o(w)o(a)o(y)e(from)i(the)g
(origin,)g(as)g(an)g(a\016ne)h(function)g(of)e(the)i(windo)o(w)120
502 y(co)q(ordinate)k(depth)g(slop)q(e)h(of)e(the)h(p)q(olygon.)33
b(Shifted)21 b(depth)f(v)m(alues)g(allo)o(w)g(copla-)120
558 y(nar)14 b(geometry)l(,)g(esp)q(ecially)j(facet)d(outlines,)h(to)f
(b)q(e)h(rendered)g(without)g(depth)g(bu\013er)120 615
y(artifacts.)k(They)d(ma)o(y)e(also)i(b)q(e)f(used)h(b)o(y)f(future)h
(shado)o(w)e(generation)i(algorithms.)191 671 y(The)11
b(additions)h(matc)o(h)f(those)g(of)f(the)h Fr(EXT)p
912 671 14 2 v 15 w(polygon)p 1081 671 V 15 w(offset)e
FC(extension,)k(with)e(t)o(w)o(o)120 728 y(exceptions.)23
b(First,)15 b(the)h(o\013set)f(is)h(enabled)i(separately)e(for)f
Fr(POINT)p FC(,)f Fr(LINE)p FC(,)h(and)h Fr(FILL)120
784 y FC(rasterization)f(mo)q(des,)g(all)h(sharing)g(a)f(single)h
(a\016ne)f(function)h(de\014nition.)22 b(\(Shifting)120
841 y(the)12 b(depth)f(v)m(alues)i(of)d(the)h(outline)i(fragmen)o(ts,)d
(instead)i(of)f(the)g(\014ll)h(fragmen)o(ts,)f(allo)o(ws)120
897 y(the)19 b(con)o(ten)o(ts)f(of)g(the)h(depth)g(bu\013er)f(to)g(b)q
(e)h(main)o(tained)h(correctly)l(.\))30 b(Second,)20
b(the)120 954 y(o\013set)14 b(bias)h(is)g(sp)q(eci\014ed)i(in)e(units)h
(of)e(depth)h(bu\013er)g(resolution,)g(rather)f(than)g(in)i(the)120
1010 y([0,1])e(depth)i(range.)120 1156 y Fs(C.3)67 b(Logical)23
b(Op)r(eration)120 1258 y FC(F)l(ragmen)o(ts)18 b(generated)g(b)o(y)h
(R)o(GBA)f(rendering)i(ma)o(y)d(b)q(e)j(merged)e(in)o(to)h(the)f
(frame-)120 1315 y(bu\013er)j(using)h(a)e(logical)i(op)q(eration,)g
(just)e(as)h(color)f(index)i(fragmen)o(ts)e(are)g(in)i(GL)120
1371 y(v)o(ersion)17 b(1.0.)k(Blending)d(is)f(disabled)g(during)g(suc)o
(h)g(op)q(eration)f(b)q(ecause)h(it)f(is)h(rarely)120
1428 y(desired,)i(b)q(ecause)f(man)o(y)f(systems)g(could)h(not)f(supp)q
(ort)g(it,)h(and)f(to)g(matc)o(h)f(the)h(se-)120 1484
y(man)o(tics)11 b(of)f(the)g Fr(EXT)p 473 1484 V 15 w(blend)p
598 1484 V 15 w(logic)p 723 1484 V 14 w(op)g FC(extension,)i(on)e(whic)
o(h)i(this)e(addition)i(is)f(lo)q(osely)120 1540 y(based.)120
1686 y Fs(C.4)67 b(T)-6 b(exture)23 b(Image)e(F)-6 b(ormats)120
1789 y FC(Stored)17 b(texture)g(arra)o(ys)f(ha)o(v)o(e)h(a)g(format,)e
(kno)o(wn)i(as)g(the)g Fv(internal)g(format)p FC(,)h(rather)120
1845 y(than)f(a)g(simple)i(coun)o(t)e(of)g(comp)q(onen)o(ts.)26
b(The)18 b(in)o(ternal)g(format)e(is)h(represen)o(ted)h(as)120
1901 y(a)i(single)h(en)o(umerated)g(v)m(alue,)h(indicating)g(b)q(oth)e
(the)g(organization)g(of)g(the)g(image)120 1958 y(data)13
b(\()p Fr(LUMINANCE)p FC(,)e Fr(RGB)p FC(,)h(etc.\))19
b(and)14 b(the)f(n)o(um)o(b)q(er)h(of)f(bits)h(of)f(storage)f(for)h
(eac)o(h)h(image)120 2014 y(comp)q(onen)o(t.)20 b(Clien)o(ts)c(can)f
(use)h(the)f(in)o(ternal)g(format)f(sp)q(eci\014cation)j(to)d(suggest)h
(the)120 2071 y(desired)20 b(storage)e(precision)i(of)e(texture)g
(images.)30 b(New)19 b Fv(b)n(ase)g(formats)p FC(,)g
Fr(ALPHA)f FC(and)120 2127 y Fr(INTENSITY)p FC(,)g(pro)o(vide)j(new)f
(texture)g(en)o(vironmen)o(t)g(op)q(erations.)34 b(These)21
b(additions)120 2184 y(matc)o(h)15 b(those)g(of)g(a)g(subset)g(of)g
(the)g Fr(EXT)p 805 2184 V 15 w(texture)f FC(extension.)120
2329 y Fs(C.5)67 b(T)-6 b(exture)23 b(Replace)f(En)n(vironmen)n(t)120
2432 y FC(A)13 b(common)f(use)h(of)f(texture)g(mapping)h(is)g(to)f
(replace)h(the)g(color)f(v)m(alues)i(of)e(generated)120
2488 y(fragmen)o(ts)17 b(with)h(texture)g(color)g(data.)27
b(This)19 b(could)g(b)q(e)f(sp)q(eci\014ed)i(only)f(indirectly)p
eop
%%Page: 180 189
180 188 bop 332 137 a FC(180)806 b Fx(APPENDIX)15 b(C.)30
b(VERSION)16 b(1.1)332 286 y FC(in)22 b(GL)e(v)o(ersion)h(1.0,)g(whic)o
(h)h(required)g(that)e(clien)o(t)i(sp)q(eci\014ed)h(\\white")d
(geometry)332 343 y(b)q(e)e(mo)q(dulated)g(b)o(y)f(a)g(texture.)26
b(GL)17 b(v)o(ersion)h(1.1)e(allo)o(ws)i(suc)o(h)f(replacemen)o(t)h(to)
f(b)q(e)332 399 y(sp)q(eci\014ed)e(explicitly)l(,)h(p)q(ossibly)f
(impro)o(ving)e(p)q(erformance.)20 b(These)13 b(additions)h(matc)o(h)
332 456 y(those)h(of)g(a)g(subset)g(of)g(the)g Fr(EXT)p
879 456 14 2 v 15 w(texture)f FC(extension.)332 627 y
Fs(C.6)66 b(T)-6 b(exture)24 b(Pro)n(xies)332 738 y FC(T)l(exture)14
b(pro)o(xies)g(allo)o(w)g(a)g(GL)f(implemen)o(tation)i(to)f(adv)o
(ertise)f(di\013eren)o(t)i(maxim)o(um)332 795 y(texture)10
b(image)h(sizes)g(as)f(a)h(function)g(of)f(some)g(other)g(texture)h
(parameters,)f(esp)q(ecially)332 851 y(of)16 b(the)h(in)o(ternal)g
(image)g(format.)23 b(Clien)o(ts)17 b(ma)o(y)f(use)h(the)g(pro)o(xy)f
(query)h(mec)o(hanism)332 907 y(to)g(tailor)g(their)g(use)h(of)f
(texture)g(resources)g(at)f(run)i(time.)26 b(The)17 b(pro)o(xy)g(in)o
(terface)g(is)332 964 y(designed)e(to)d(allo)o(w)h(suc)o(h)h(queries)g
(without)f(adding)h(new)f(routines)g(to)g(the)g(GL)g(in)o(ter-)332
1020 y(face.)20 b(These)15 b(additions)g(matc)o(h)f(those)g(of)g(a)h
(subset)f(of)g(the)h Fr(EXT)p 1449 1020 V 15 w(texture)e
FC(extension,)332 1077 y(except)18 b(that)f(implemen)o(tations)i
(return)f(allo)q(cation)g(information)g(consisten)o(t)g(with)332
1133 y(supp)q(ort)d(for)g(complete)h(mipmap)g(arra)o(ys.)332
1305 y Fs(C.7)66 b(Cop)n(y)23 b(T)-6 b(exture)23 b(and)g(Subtexture)332
1416 y FC(T)l(exture)d(arra)o(y)e(data)h(can)h(b)q(e)h(sp)q(eci\014ed)h
(from)c(framebu\013er)i(memory)l(,)g(as)f(w)o(ell)i(as)332
1472 y(from)f(clien)o(t)h(memory)l(,)g(and)f(rectangular)h(subregions)g
(of)e(texture)h(arra)o(ys)f(can)i(b)q(e)332 1528 y(rede\014ned)c
(either)f(from)f(clien)o(t)h(or)f(framebu\013er)g(memory)l(.)20
b(These)c(additions)g(matc)o(h)332 1585 y(those)f(de\014ned)i(b)o(y)e
(the)g Fr(EXT)p 818 1585 V 15 w(copy)p 921 1585 V 15
w(texture)f FC(and)h Fr(EXT)p 1258 1585 V 15 w(subtexture)e
FC(extensions.)332 1756 y Fs(C.8)66 b(T)-6 b(exture)24
b(Ob)t(jects)332 1867 y FC(A)17 b(set)g(of)g(texture)g(arra)o(ys)f(and)
i(their)g(related)f(texture)g(state)g(can)g(b)q(e)h(treated)f(as)g(a)
332 1924 y(single)i(ob)s(ject.)28 b(Suc)o(h)18 b(treatmen)o(t)f(allo)o
(ws)h(for)g(greater)f(implemen)o(tation)i(e\016ciency)332
1980 y(when)c(m)o(ultiple)i(arra)o(ys)c(are)i(used.)20
b(In)15 b(conjunction)h(with)f(the)g(subtexture)g(capabil-)332
2037 y(it)o(y)l(,)f(it)g(also)g(allo)o(ws)f(clien)o(ts)i(to)e(mak)o(e)h
(gradual)f(c)o(hanges)h(to)f(existing)i(texture)e(arra)o(ys,)332
2093 y(rather)f(than)h(completely)i(rede\014ning)f(them.)19
b(These)14 b(additions)g(matc)o(h)e(those)h(of)f(the)332
2149 y Fr(EXT)p 401 2149 V 15 w(texture)p 570 2149 V
14 w(object)h FC(extension,)h(with)g(sligh)o(t)g(additions)g(to)f(the)h
(texture)f(residency)332 2206 y(seman)o(tics.)332 2377
y Fs(C.9)66 b(Other)23 b(Changes)388 2488 y FC(1.)f(Color)15
b(indices)i(ma)o(y)d(no)o(w)h(b)q(e)h(sp)q(eci\014ed)h(as)e(unsigned)i
(b)o(ytes.)p eop
%%Page: 181 190
181 189 bop 120 137 a Fx(C.10.)34 b(A)o(CKNO)o(WLEDGEMENTS)746
b FC(181)176 286 y(2.)22 b(T)l(exture)11 b(co)q(ordinates)f
Fy(s)p FC(,)i Fy(t)p FC(,)f(and)g Fy(r)g FC(are)f(divided)i(b)o(y)f
Fy(q)h FC(during)f(the)g(rasterization)234 343 y(of)f(p)q(oin)o(ts,)i
(pixel)h(rectangles,)e(and)g(bitmaps.)19 b(This)11 b(division)i(w)o(as)
d(do)q(cumen)o(ted)234 399 y(only)16 b(for)e(lines)j(and)f(p)q(olygons)
f(in)h(the)f(1.0)g(v)o(ersion.)176 495 y(3.)22 b(The)15
b(line)i(rasterization)f(algorithm)f(w)o(as)f(c)o(hanged)i(so)f(that)f
(v)o(ertical)i(lines)h(on)234 551 y(pixel)g(b)q(orders)e(rasterize)h
(correctly)l(.)176 647 y(4.)22 b(Separate)e(pixel)i(transfer)e
(discussions)i(in)f(c)o(hapter)f(3)g(and)h(c)o(hapter)f(4)g(w)o(ere)234
704 y(com)o(bined)c(in)o(to)f(a)g(single)i(discussion)g(in)f(c)o
(hapter)f(3.)176 799 y(5.)22 b(T)l(exture)17 b(alpha)h(v)m(alues)g(are)
f(returned)g(as)g(1.0)f(if)h(there)g(is)h(no)f(alpha)h(c)o(hannel)234
856 y(in)d(the)g(texture)f(arra)o(y)l(.)k(This)d(b)q(eha)o(vior)g(w)o
(as)f(unsp)q(eci\014ed)j(in)e(the)f(1.0)g(v)o(ersion,)234
912 y(and)h(w)o(as)g(incorrectly)h(do)q(cumen)o(ted)g(in)g(the)f
(reference)h(man)o(ual.)176 1008 y(6.)22 b(F)l(og)15
b(start)e(and)j(end)g(v)m(alues)g(ma)o(y)f(no)o(w)f(b)q(e)i(negativ)o
(e.)176 1103 y(7.)22 b(Ev)m(aluated)15 b(color)f(v)m(alues)h(direct)f
(the)g(ev)m(aluation)h(of)f(the)g(ligh)o(ting)h(equation)f(if)234
1160 y Fz(ColorMaterial)j FC(is)e(enabled.)120 1306 y
Fs(C.10)66 b(Ac)n(kno)n(wledgemen)n(ts)120 1408 y FC(Op)q(enGL)17
b(1.1)e(is)h(the)g(result)g(of)f(the)h(con)o(tributions)g(of)f(man)o(y)
g(p)q(eople,)i(represen)o(ting)120 1465 y(a)h(cross)f(section)i(of)e
(the)h(computer)g(industry)l(.)29 b(F)l(ollo)o(wing)19
b(is)f(a)g(partial)g(list)h(of)f(the)120 1521 y(con)o(tributors,)i
(including)i(the)d(compan)o(y)g(that)g(they)g(represen)o(ted)h(at)e
(the)i(time)f(of)120 1578 y(their)d(con)o(tribution:)191
1634 y(Kurt)f(Ak)o(eley)l(,)h(Silicon)h(Graphics)191
1691 y(Bill)g(Armstrong,)d(Ev)m(ans)h(&)h(Sutherland)191
1748 y(Andy)g(Bigos,)f(3Dlabs)191 1805 y(P)o(at)f(Bro)o(wn,)h(IBM)191
1862 y(Jim)h(Cobb,)f(Ev)m(ans)g(&)h(Sutherland)191 1919
y(Dic)o(k)f(Coulter,)g(Digital)h(Equipmen)o(t)191 1976
y(Bruce)g(D'Amora,)d(GE)i(Medical)h(Systems)191 2033
y(John)g(Dennis,)f(Digital)h(Equipmen)o(t)191 2090 y(F)l(red)f(Fisher,)
h(Accel)g(Graphics)191 2147 y(Chris)g(F)l(razier,)f(Silicon)i(Graphics)
191 2204 y(T)l(o)q(dd)f(F)l(razier,)f(Ev)m(ans)g(&)h(Sutherland)191
2261 y(Tim)f(F)l(reese,)g(NCD)191 2317 y(Ken)h(Garnett,)e(NCD)191
2374 y(Mik)o(e)h(Hec)o(k,)g(T)l(emplate)h(Graphics)g(Soft)o(w)o(are)191
2431 y(Da)o(v)o(e)e(Higgins,)i(IBM)191 2488 y(Phil)h(Huxley)l(,)f
(3Dlabs)p eop
%%Page: 182 191
182 190 bop 332 137 a FC(182)806 b Fx(APPENDIX)15 b(C.)30
b(VERSION)16 b(1.1)403 286 y FC(Dale)f(Kirkland,)h(In)o(tergraph)403
343 y(Ho)q(c)o(k)f(San)g(Lee,)h(Microsoft)403 399 y(Kevin)g(LeF)l(eb)o
(vre,)g(Hewlett)f(P)o(ac)o(k)m(ard)403 456 y(Jim)h(Miller,)g(IBM)403
512 y(Tim)f(Misner,)g(SunSoft)403 569 y(Jerem)o(y)g(Morris,)f(3Dlabs)
403 625 y(Israel)i(Pink)m(as,)f(In)o(tel)403 682 y(Bimal)h(P)o(o)q
(ddar,)e(IBM)403 738 y(Lyle)i(Ramsha)o(w,)e(Digital)i(Equipmen)o(t)403
795 y(Randi)g(Rost,)f(Hewlett)g(P)o(ac)o(k)m(ard)403
851 y(John)g(Sc)o(himpf,)h(Silicon)i(Graphics)403 907
y(Mark)c(Segal,)h(Silicon)j(Graphics)403 964 y(Igor)c(Sin)o(y)o(ak,)i
(In)o(tel)403 1020 y(Je\013)f(Stev)o(enson,)g(Hewlett)g(P)o(ac)o(k)m
(ard)403 1077 y(Bill)i(Sw)o(eeney)l(,)f(SunSoft)403 1133
y(Kelvin)h(Thompson,)d(P)o(ortable)h(Graphics)403 1190
y(Neil)h(T)l(rev)o(ett,)e(3Dlabs)403 1246 y(Linas)i(V)l(epstas,)f(IBM)
403 1303 y(Andy)g(V)l(esp)q(er,)h(Digital)g(Equipmen)o(t)403
1359 y(Henri)g(W)l(arren,)e(Megatek)403 1416 y(P)o(aula)h(W)l(omac)o
(k,)f(Silicon)j(Graphics)403 1472 y(Mason)d(W)l(o)q(o,)h(Silicon)i
(Graphics)403 1528 y(Stev)o(e)e(W)l(righ)o(t,)f(Microsoft)p
eop
%%Page: 183 192
183 191 bop 120 520 a FA(Index)39 b(of)f(GL)h(calls)120
732 y FC(Accum,)16 b(120,)e(121)120 788 y(AlphaF)l(unc,)j(110)120
845 y(AreT)l(exturesResiden)o(t,)g(101,)d(142)120 901
y(Arra)o(yElemen)o(t,)h(19,)f(23,)g(24,)h(140)120 989
y(Begin,)23 b(13,)e(15{20,)f(23,)i(24,)f(27,)g(52,)286
1045 y(60,)h(63,)g(66,)g(69,)g(132,)g(133,)286 1102 y(138)120
1158 y(BindT)l(exture,)17 b(99,)d(100)120 1215 y(Bitmap,)i(83,)e(84)120
1271 y(BlendF)l(unc,)j(113)120 1359 y(CallList,)g(19,)d(141)120
1416 y(CallLists,)j(19,)d(141)120 1472 y(Clear,)h(119,)f(120)120
1528 y(ClearAccum,)i(119)120 1585 y(ClearColor,)f(119)120
1641 y(ClearDepth,)g(119)120 1698 y(ClearIndex,)h(119)120
1754 y(ClearStencil,)h(119)120 1811 y(ClipPlane,)g(37)120
1867 y(Color,)e(19,)f(20,)g(40,)h(53)120 1924 y(Color3,)g(20)120
1980 y(Color4,)g(20)120 2037 y(ColorMask,)f(118)120 2093
y(ColorMaterial,)32 b(47,)g(49,)g(50,)f(131,)286 2149
y(176,)14 b(181)120 2206 y(ColorP)o(oin)o(ter,)h(19,)f(21,)g(22,)g(26,)
g(142)120 2262 y(Colorub,)h(53)120 2319 y(Colorui,)h(53)120
2375 y(Colorus,)f(53)120 2432 y(Cop)o(yPixels,)24 b(71{74,)e(91,)h
(121,)f(126,)286 2488 y(127,)14 b(137)940 732 y(Cop)o(yT)l(exImage1D,)g
(91,)g(92)940 789 y(Cop)o(yT)l(exImage2D,)g(91,)g(92)940
846 y(Cop)o(yT)l(exSubImage1D,)h(92,)f(93)940 903 y(Cop)o(yT)l
(exSubImage2D,)h(92)940 960 y(CullF)l(ace,)h(66,)f(67)940
1070 y(DeleteLists,)h(142)940 1127 y(DeleteT)l(extures,)g(100,)e(142)
940 1184 y(DepthF)l(unc,)i(112)940 1241 y(DepthMask,)e(118)940
1298 y(DepthRange,)h(29,)g(144,)f(148,)g(177)940 1356
y(Disable,)j(33,)d(36,)h(37,)g(42,)f(47,)h(57,)g(60,)1106
1412 y(63,)27 b(66,)f(67,)h(69,)f(71,)h(102,)1106 1468
y(105,)k(110{113,)e(115,)h(130,)1106 1525 y(131)940 1582
y(DisableClien)o(tState,)14 b(19,)d(23,)h(26,)g(142)940
1639 y(Dra)o(wArra)o(ys,)h(23,)h(24,)g(140)940 1696 y(Dra)o(wBu\013er,)
g(116,)g(117)940 1753 y(Dra)o(wElemen)o(ts,)g(24,)g(25,)h(140)940
1811 y(Dra)o(wPixels,)h(68,)e(71{79,)g(81,)h(84,)g(85,)1106
1867 y(121,)f(123,)g(125,)g(126,)g(137)940 1977 y(EdgeFlag,)h(18,)f(19)
940 2034 y(EdgeFlagP)o(oin)o(ter,)h(19,)f(21,)g(22,)g(142)940
2091 y(EdgeFlagv,)h(18)940 2148 y(Enable,)j(33,)e(36,)g(37,)g(42,)g
(47,)g(57,)g(60,)1106 2205 y(63,)27 b(66,)f(67,)h(69,)f(71,)h(102,)1106
2261 y(105,)k(110{113,)e(115,)h(130,)1106 2317 y(131,)14
b(144)940 2375 y(EnableClien)o(tState,)i(19,)e(23,)g(26,)g(142)940
2432 y(End,)h(13,)g(15{20,)e(23,)h(24,)g(27,)h(52,)f(60,)1106
2488 y(66,)h(69,)f(132,)g(133,)g(138)833 2613 y(183)p
eop
%%Page: 184 193
184 192 bop 332 137 a FC(184)1275 b Fx(INDEX)332 286
y FC(EndList,)16 b(140)332 343 y(Ev)m(alCo)q(ord,)f(19,)f(130,)g(131)
332 400 y(Ev)m(alCo)q(ord1,)h(131{133)332 457 y(Ev)m(alCo)q(ord1d,)g
(132)332 514 y(Ev)m(alCo)q(ord1f,)g(132)332 571 y(Ev)m(alCo)q(ord2,)g
(131,)f(133,)g(134)332 628 y(Ev)m(alMesh1,)h(132)332
685 y(Ev)m(alMesh2,)g(132,)f(133)332 741 y(Ev)m(alP)o(oin)o(t,)h(19)332
798 y(Ev)m(alP)o(oin)o(t1,)g(133)332 855 y(Ev)m(alP)o(oin)o(t2,)g(133)
332 961 y(F)l(eedbac)o(kBu\013er,)g(137,)f(142)332 1018
y(Finish,)i(142,)e(143,)g(175)332 1074 y(Flush,)i(142,)e(143,)g(175)332
1131 y(F)l(og,)g(105,)g(106)332 1188 y(F)l(ron)o(tF)l(ace,)g(46,)g(66)
332 1245 y(F)l(rustum,)h(30,)f(31,)g(176)332 1351 y(GenLists,)i(142)332
1407 y(GenT)l(extures,)f(100,)f(142,)g(147)332 1464 y(Get,)g(29,)h
(142,)f(144)332 1521 y(GetBo)q(olean)o(v,)h(144,)f(148)332
1578 y(GetClipPlane,)i(145)332 1635 y(GetDoublev,)f(144,)f(145,)g(148)
332 1692 y(GetError,)f(11)332 1749 y(GetFloatv,)h(144,)g(148)332
1806 y(GetIn)o(tegerv,)g(144,)g(148)332 1862 y(GetLigh)o(t,)h(145)332
1919 y(GetMap,)f(145,)g(146)332 1976 y(GetMaterial,)g(145)332
2033 y(GetPixelMap,)h(145,)f(146)332 2090 y(GetP)o(oin)o(terv,)g(147)
332 2147 y(GetP)o(olygonStipple,)i(147)332 2204 y(GetString,)f(147,)f
(148)332 2261 y(GetT)l(exEn)o(v,)h(145)332 2318 y(GetT)l(exGen,)g(145)
332 2374 y(GetT)l(exImage,)g(146)332 2431 y(GetT)l(exLev)o(elP)o
(arameter,)g(145,)e(146)332 2488 y(GetT)l(exP)o(arameter,)g(145)1152
286 y(GetT)l(exP)o(arameterfv,)g(101)1152 343 y(GetT)l(exP)o
(arameteriv,)h(101)1152 437 y(Hin)o(t,)h(143)1152 531
y(Index,)h(19,)e(21)1152 588 y(IndexMask,)h(118)1152
644 y(IndexP)o(oin)o(ter,)h(19,)e(22,)g(142)1152 700
y(InitNames,)i(134,)d(135)1152 757 y(In)o(terlea)o(v)o(edArra)o(ys,)h
(19,)h(25,)f(142)1152 813 y(IsEnabled,)i(142,)e(144,)g(148)1152
870 y(IsList,)i(142)1152 926 y(IsT)l(exture,)f(142,)f(146,)g(147)1152
1020 y(Ligh)o(t,)h(46{48)1152 1077 y(Ligh)o(tMo)q(del,)h(46,)e(48)1152
1133 y(LineStipple,)k(63)1152 1190 y(LineWidth,)f(60)1152
1246 y(ListBase,)e(141,)f(143)1152 1303 y(LoadIden)o(tit)o(y)l(,)i(30)
1152 1359 y(LoadMatrix,)e(30)1152 1416 y(LoadName,)h(134,)f(135)1152
1472 y(LogicOp,)i(115,)e(116)1152 1566 y(Map1,)g(129,)g(130,)g(148)1152
1623 y(Map2,)g(129,)g(130,)g(148)1152 1679 y(MapGrid1,)g(132)1152
1735 y(MapGrid2,)g(132)1152 1792 y(Material,)h(19,)f(46,)g(48,)g(51,)h
(176)1152 1848 y(MatrixMo)q(de,)f(30)1152 1905 y(MultMatrix,)g(30)1152
1999 y(NewList,)h(140,)f(141)1152 2055 y(Normal,)h(19,)f(20)1152
2112 y(Normal3,)g(8,)h(20,)f(33)1152 2168 y(Normal3d,)h(8)1152
2225 y(Normal3dv,)g(9)1152 2281 y(Normal3f,)f(8)1152
2338 y(Normal3fv,)g(9)1152 2394 y(NormalP)o(oin)o(ter,)g(19,)g(22,)h
(26,)f(142)1152 2488 y(Ortho,)h(30,)f(32,)g(176)p eop
%%Page: 185 194
185 193 bop 120 137 a Fx(INDEX)1277 b FC(185)120 286
y(P)o(assThrough,)14 b(138)120 343 y(PixelMap,)i(72,)e(74,)h(127)120
399 y(PixelStore,)25 b(19,)f(72,)f(73,)h(123,)f(127,)286
456 y(142)120 512 y(PixelT)l(ransfer,)16 b(72,)e(73,)h(127)120
569 y(PixelZo)q(om,)h(81)120 625 y(P)o(oin)o(tSize,)g(57)120
682 y(P)o(olygonMo)q(de,)e(66,)g(69{71,)f(135,)g(137)120
738 y(P)o(olygonO\013set,)i(70)120 795 y(P)o(olygonStipple,)i(68)120
851 y(P)o(opA)o(ttrib,)e(148,)f(149,)g(177)120 907 y(P)o(opClien)o(tA)o
(ttrib,)g(19,)e(142,)g(148,)g(149)120 964 y(P)o(opMatrix,)i(33)120
1020 y(P)o(opName,)h(134,)f(135)120 1077 y(PrioritizeT)l(extures,)i
(101)120 1133 y(PushA)o(ttrib,)f(148,)f(149)120 1190
y(PushClien)o(tA)o(ttrib,)34 b(19,)e(142,)g(148,)286
1246 y(149)120 1303 y(PushMatrix,)15 b(33)120 1359 y(PushName,)g(134,)f
(135)120 1453 y(RasterP)o(os,)g(39,)h(135,)e(176)120
1510 y(RasterP)o(os2,)h(39)120 1566 y(RasterP)o(os3,)g(39)120
1623 y(RasterP)o(os4,)g(39)120 1679 y(ReadBu\013er,)i(123,)e(127)120
1735 y(ReadPixels,)29 b(71{74,)d(77,)g(79,)g(121{)286
1792 y(126,)14 b(142,)g(146,)g(147)120 1848 y(Rect,)i(27,)e(66)120
1905 y(RenderMo)q(de,)i(135{138,)d(142)120 1961 y(Rotate,)i(30,)f(31,)g
(176)120 2055 y(Scale,)i(30,)e(31,)h(176)120 2112 y(Scissor,)h(110)120
2168 y(SelectBu\013er,)g(135,)e(136,)g(142)120 2225 y(ShadeMo)q(del,)j
(52)120 2281 y(StencilF)l(unc,)h(111,)c(175)120 2338
y(StencilMask,)i(118,)e(121,)g(176)120 2394 y(StencilOp,)k(111,)c(112)
120 2488 y(T)l(exCo)q(ord,)h(19,)f(20)940 286 y(T)l(exCo)q(ord1,)h(20)
940 343 y(T)l(exCo)q(ord2,)g(20)940 399 y(T)l(exCo)q(ord3,)g(20)940
456 y(T)l(exCo)q(ord4,)g(20)940 512 y(T)l(exCo)q(ordP)o(oin)o(ter,)22
b(19,)f(21,)g(22,)h(26,)1106 569 y(142)940 625 y(T)l(exEn)o(v,)15
b(102)940 682 y(T)l(exGen,)g(35,)g(36)940 738 y(T)l(exImage,)g(92)940
795 y(T)l(exImage1D,)22 b(86,)i(89,)f(91,)h(92,)g(97,)1106
851 y(99,)15 b(142)940 907 y(T)l(exImage2D,)25 b(85{87,)i(89,)g(91,)h
(92,)1106 964 y(97,)15 b(99,)f(142)940 1020 y(T)l(exP)o(arameter,)g
(93,)g(94)940 1077 y(T)l(exP)o(arameterf,)g(101)940 1133
y(T)l(exP)o(arameterfv,)g(101)940 1190 y(T)l(exP)o(arameteri,)h(101)940
1246 y(T)l(exP)o(arameteriv,)g(101)940 1303 y(T)l(exSubImage,)h(92)940
1359 y(T)l(exSubImage1D,)f(92,)g(93)940 1416 y(T)l(exSubImage2D,)g(92)
940 1472 y(T)l(ranslate,)g(30,)f(31,)g(176)940 1570 y(V)l(ertex,)h(7,)g
(19,)f(20,)g(39,)g(131)940 1626 y(V)l(ertex2,)h(19,)f(27)940
1683 y(V)l(ertex2sv,)h(7)940 1739 y(V)l(ertex3,)g(19)940
1796 y(V)l(ertex3f,)g(7)940 1852 y(V)l(ertex4,)g(20)940
1909 y(V)l(ertexP)o(oin)o(ter,)g(19,)f(22,)g(26,)h(142)940
1965 y(Viewp)q(ort,)g(29)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF