| %!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 |