home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / extensions / man / glintro.z / glintro
Encoding:
Text File  |  1996-11-11  |  45.1 KB  |  594 lines

  1.  
  2.  
  3.  
  4. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ggggllllIIIInnnnttttrrrroooo - Introduction to OpenGL
  10.  
  11.  
  12.  
  13. OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
  14.      OpenGL is a high-performance 3D-oriented renderer similar to IrisGL.  It
  15.      is supported on all SGI graphics adaptors except for the G, GT and GTX. A
  16.      number of other vendors also support OpenGL.
  17.  
  18.      See ggggllllXXXXIIIInnnnttttrrrroooo for a short example program and compilation instructions.
  19.  
  20.  
  21.  
  22. OOOOPPPPEEEENNNNGGGGLLLL EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS
  23.      SGI has implemented some extensions to OpenGL. The following extensions
  24.      are supported on all platforms that support OpenGL:
  25.  
  26.  
  27.      EEEEXXXXTTTT____aaaabbbbggggrrrr
  28.           extends the list of host-memory color formats.  Specifically, it
  29.           provides a reverse-order alternative to image format RGBA. The ABGR
  30.           component order matches the cpack Iris GL format on big-endian
  31.           machines. (For more information see ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee,
  32.           ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD).
  33.  
  34.  
  35.      EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee
  36.           provides support for a variety of resolutions of color components in
  37.           texture images. That is, instead of treating a retained image as
  38.           having 1, 2, 3, or 4 components, it is treated as though it had a
  39.           specific format, such as GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____AAAALLLLPPPPHHHHAAAA, or just GGGGLLLL____AAAALLLLPPPPHHHHAAAA.  This
  40.           extension also defines a robust method for applications to determine
  41.           what combinations of texture dimensions and resolutions are
  42.           supported by an implementation and it introduces a new texture
  43.           environment: GGGGLLLL____RRRREEEEPPPPLLLLAAAACCCCEEEE____EEEEXXXXTTTT.  (For more information see
  44.           ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  45.           ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllTTTTeeeexxxxEEEEnnnnvvvvffff, ggggllllTTTTeeeexxxxEEEEnnnnvvvviiii, ggggllllTTTTeeeexxxxEEEEnnnnvvvvffffvvvv,
  46.           ggggllllTTTTeeeexxxxEEEEnnnnvvvviiiivvvv).
  47.  
  48.  
  49.      EEEEXXXXTTTT____ppppoooollllyyyyggggoooonnnn____ooooffffffffsssseeeetttt
  50.           allows depth values of fragments to be displaced so that lines (or
  51.           points) and polygons that lie in the same plane can be rendered
  52.           without interaction -- the lines are rendered either completely in
  53.           front of or behind the polygons (depending on the sign of the offset
  54.           factor).  It also allows multiple coplanar polygons to be rendered
  55.           without interaction, if different offset factors are used for each
  56.           polygon.  (For more information see ggggllllPPPPoooollllyyyyggggoooonnnnOOOOffffffffsssseeeettttEEEEXXXXTTTT, ggggllllEEEEnnnnaaaabbbblllleeee,
  57.           ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv,
  58.           ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv).
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      EEEEXXXXTTTT____bbbblllleeeennnndddd____ccccoooolllloooorrrr
  75.           allows a constant to be used as a factor in the blending equation.
  76.           A typical use is to blend two RGB images.  Without the constant
  77.           blend factor, one image must have an alpha channel with each pixel
  78.           set to the desired blend factor.  (For more information see
  79.           ggggllllBBBBlllleeeennnnddddCCCCoooolllloooorrrrEEEEXXXXTTTT, ggggllllBBBBlllleeeennnnddddFFFFuuuunnnncccc, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv,
  80.           ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv).
  81.  
  82.  
  83.      EEEEXXXXTTTT____bbbblllleeeennnndddd____mmmmiiiinnnnmmmmaaaaxxxx
  84.           allows the blend equation to be changed using ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT)
  85.           and introduces two new blend equations, one to produce the minimum
  86.           color components of the source and destination colors and one to
  87.           produce the maximum.  (Also see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv,
  88.           ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv).
  89.  
  90.  
  91.      EEEEXXXXTTTT____bbbblllleeeennnndddd____llllooooggggiiiicccc____oooopppp
  92.           defines an additional blending equation for ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT.
  93.           This equation is a simple logical combination of the source and
  94.           destination colors.  (Also see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv,
  95.           ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv).
  96.  
  97.  
  98.      EEEEXXXXTTTT____bbbblllleeeennnndddd____ssssuuuubbbbttttrrrraaaacccctttt
  99.           adds two additional blending equations which are set using
  100.           ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT. These new equations are similar to the default
  101.           blending equation, but produce the difference of its terms, rather
  102.           than the sum. Image differences are useful in many image processing
  103.           applications. (Also see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv,
  104.           ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv).
  105.  
  106.  
  107.  
  108. OOOOPPPPEEEENNNNGGGGLLLL EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS oooonnnn RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee,,,, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222,,,, aaaannnndddd VVVVTTTTXXXX
  109.      RealityEngine, RealityEngine2, and VTX systems support the following
  110.      extensions in addition to those listed above:
  111.  
  112.  
  113.      SSSSGGGGIIIISSSS____ddddeeeettttaaaaiiiillll____tttteeeexxxxttttuuuurrrreeee
  114.           introduces texture magnification filters that blend between the
  115.           level 0 image and a separately defined "detail" image. This detail
  116.           blending can be enabled for all color channels, for the alpha
  117.           channel only, or for the red, green, and blue channels only. It is
  118.           available only for 2D textures.  (For more information see
  119.           ggggllllDDDDeeeettttaaaaiiiillllTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS, ggggllllGGGGeeeettttDDDDeeeettttaaaaiiiillllTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD,
  120.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffff, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiii,
  121.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, ggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee,
  122.           ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  123.           ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
  124.           ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv).
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  137.  
  138.  
  139.  
  140.      SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee
  141.           provides a mechanism to antialias all primitives.  The technique is
  142.           to sample all primitives multiple times at different locations
  143.           within each pixel (rather than just the pixel center). The color
  144.           sample values are resolved to a single, displayable color each time
  145.           a pixel is updated, so the antialiasing appears to be automatic at
  146.           the application level. (For more information see ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS,
  147.           ggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS, ggggllllTTTTaaaaggggSSSSaaaammmmpppplllleeeeBBBBuuuuffffffffeeeerrrrSSSSGGGGIIIIXXXX, ggggllllXXXXCCCChhhhoooooooosssseeeeVVVViiiissssuuuuaaaallll,
  148.           ggggllllXXXXGGGGeeeettttCCCCoooonnnnffffiiiigggg, ggggllllEEEEnnnnaaaabbbblllleeee, ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllPPPPuuuusssshhhhAAAAttttttttrrrriiiibbbb,
  149.           ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv.)
  150.  
  151.  
  152.      EEEEXXXXTTTT____ssssuuuubbbbtttteeeexxxxttttuuuurrrreeee
  153.           allows a contiguous portion of an already-existing texture image to
  154.           be redefined without affecting the remaining portion of the image or
  155.           any of the other state that describes the texture. There are three
  156.           new calls: ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDDEEEEXXXXTTTT, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT,
  157.           ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT. Only a subset of this extension is available;
  158.           refer to the man pages for more details.
  159.  
  160.  
  161.      EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee3333DDDD
  162.           supports 3-dimensional texture mapping. It also defines the in-
  163.           memory formats for 3D images, and adds pixel storage modes to
  164.           support them. (For more information see ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT,
  165.           ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee, ggggllllEEEEnnnnaaaabbbblllleeee, ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  166.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv,
  167.           ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvvEEEEnnnnaaaabbbblllleeee, ggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee, ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  168.           ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv.)
  169.  
  170.  
  171.      SSSSGGGGIIIISSSS____sssshhhhaaaarrrrppppeeeennnn____tttteeeexxxxttttuuuurrrreeee
  172.           introduces texture magnification filters that sharpen the resulting
  173.           image by extrapolating from the level 1 image to the level 0 image.
  174.           Sharpening can be enabled for all color channels, for the alpha
  175.           channel only, or for the red, green, and blue channels only.  (For
  176.           more information see ggggllllSSSShhhhaaaarrrrppppeeeennnnTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS, ggggllllGGGGeeeettttSSSShhhhaaaarrrrppppeeeennnnTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS,
  177.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiii, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffff, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  178.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv).
  179.  
  180.  
  181.      EEEEXXXXTTTT____ccccoooonnnnvvvvoooolllluuuuttttiiiioooonnnn
  182.           adds 1- or 2-dimensional convolution operations to the pixel
  183.           transfer process.  Thus pixel drawing, reading, and copying, as well
  184.           as texture image definition, are all candidates for convolution. The
  185.           convolution kernels are themselves treated as 1- and 2-dimensional
  186.           images, which can be loaded from application memory or from the
  187.           framebuffer.  (For more information see ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDDEEEEXXXXTTTT,
  188.           ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, ggggllllCCCCooooppppyyyyCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDDEEEEXXXXTTTT,
  189.           ggggllllCCCCooooppppyyyyCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, ggggllllGGGGeeeettttCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrrEEEEXXXXTTTT,
  190.           ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, ggggllllGGGGeeeettttSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrrEEEEXXXXTTTT,
  191.           ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiiEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT,
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  203.  
  204.  
  205.  
  206.           ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT,
  207.           ggggllllGGGGeeeettttCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT, ggggllllGGGGeeeettttCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT,
  208.           ggggllllEEEEnnnnaaaabbbblllleeee, ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv,
  209.           ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv, ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrriiii, ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrrffff).
  210.           Only a subset of this extension is available; refer to the man pages
  211.           for details.
  212.  
  213.  
  214.      EEEEXXXXTTTT____hhhhiiiissssttttooooggggrrrraaaammmm
  215.           defines pixel operations that count occurrences of specific color
  216.           component values (histogram) and track the minimum and maximum color
  217.           component values (minmax).  An optional mode allows pixel data to be
  218.           discarded after the histogram and/or minmax operations are
  219.           completed.  Otherwise the pixel data continue on to the next
  220.           operation unaffected.  (For more information see ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT,
  221.           ggggllllRRRReeeesssseeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT, ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT,
  222.           ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT, ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT,
  223.           ggggllllMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT, ggggllllRRRReeeesssseeeettttMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT, ggggllllGGGGeeeettttMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT,
  224.           ggggllllGGGGeeeettttMMMMiiiinnnnmmmmaaaaxxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT, ggggllllGGGGeeeettttMMMMiiiinnnnmmmmaaaaxxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT, ggggllllEEEEnnnnaaaabbbblllleeee,
  225.           ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv,
  226.           ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv)
  227.  
  228.  
  229.      SSSSGGGGIIII____ccccoooolllloooorrrr____mmmmaaaattttrrrriiiixxxx
  230.           adds a 4x4 matrix stack and matrix multiplication to the pixel
  231.           transfer path.  The color matrix operates on RGBA pixel components.
  232.           It can be used to reorder or duplicate color components, and to
  233.           implement simple color-space conversions.  (For more information,
  234.           see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv,
  235.           ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrr)
  236.  
  237.  
  238.      SSSSGGGGIIII____tttteeeexxxxttttuuuurrrreeee____ccccoooolllloooorrrr____ttttaaaabbbblllleeee
  239.           adds a color lookup table to the texture mapping process.  (For more
  240.           information, see ggggllllTTTTeeeexxxxCCCCoooolllloooorrrrTTTTaaaabbbblllleeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIII)
  241.  
  242.  
  243.      SSSSGGGGIIII____ccccoooolllloooorrrr____ttttaaaabbbblllleeee
  244.           defines a new RGBA-format color lookup table mechanism, and several
  245.           new lookup tables in the OpenGL pixel path.  The new lookup tables
  246.           are treated as one-dimensional images with internal formats, like
  247.           texture images and convolution filter images.  This allows the
  248.           tables to operate on a subset of the components of passing pixels.
  249.           (For example, a table with internal format GGGGLLLL____AAAALLLLPPPPHHHHAAAA modifies only
  250.           the A component of each passing pixel, leaving the R, G, and B
  251.           components untouched.)  At present, only the functionality needed to
  252.           support SSSSGGGGIIII____tttteeeexxxxttttuuuurrrreeee____ccccoooolllloooorrrr____ttttaaaabbbblllleeee has been implemented, so this
  253.           extension is not listed in the extensions string returned by
  254.           ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.  (For more information, see ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeeSSSSGGGGIIII,
  255.           ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIII, and ggggllllGGGGeeeettttCCCCoooolllloooorrrrTTTTaaaabbbblllleeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIII)
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  269.  
  270.  
  271.  
  272.      EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee____oooobbbbjjjjeeeecccctttt
  273.           supports named texture objects whose contents and parameters may be
  274.           changed after they are defined.  (Contrast this with textures in
  275.           display lists, which cannot be modified after the display lists are
  276.           created.)  For machines with special texture memories,
  277.           EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee____oooobbbbjjjjeeeecccctttt also provides simple texture memory management.
  278.           (For more information, see ggggllllGGGGeeeennnnTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT, ggggllllDDDDeeeelllleeeetttteeeeTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT,
  279.           ggggllllBBBBiiiinnnnddddTTTTeeeexxxxttttuuuurrrreeeeEEEEXXXXTTTT, ggggllllPPPPrrrriiiioooorrrriiiittttiiiizzzzeeeeTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT, ggggllllAAAArrrreeeeTTTTeeeexxxxttttuuuurrrreeeessssRRRReeeessssiiiiddddeeeennnnttttEEEEXXXXTTTT,
  280.           and ggggllllIIIIssssTTTTeeeexxxxttttuuuurrrreeeeEEEEXXXXTTTT)
  281.  
  282.  
  283.      EEEEXXXXTTTT____ccccooooppppyyyy____tttteeeexxxxttttuuuurrrreeee
  284.           provides the ability to copy pixels directly from the framebuffer
  285.           into texture memory.  At present only a small subset of this
  286.           extension has been implemented, so the extension name is not listed
  287.           in the extensions string returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.  (For more
  288.           information, see ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT and ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT)
  289.  
  290.  
  291.      SSSSGGGGIIIIXXXX____iiiinnnntttteeeerrrrllllaaaacccceeee
  292.           modifies the behavior of ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllCCCCooooppppyyyyPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD,
  293.           ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT and ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT,
  294.           such that when GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX is enabled the source image is
  295.           considered to be a field of an "interlaced" frame.  That is, the
  296.           effective source image has height equal to twice the actual height
  297.           and every other row contains "transparent" pixels that do not affect
  298.           the corresponding destination pixels in the target image.  For
  299.           example:
  300.  
  301.              ggggllllEEEEnnnnaaaabbbblllleeee(GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX);
  302.              _s_e_t _c_u_r_r_e_n_t _r_a_s_t_e_r _p_o_s_i_t_i_o_n _t_o (_x_r,_y_r)
  303.              ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss(_w_i_d_t_h, _h_e_i_g_h_t, GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, _I0);
  304.              _s_e_t _r_a_s_t_e_r _p_o_s_i_t_i_o_n _t_o (_x_r,_y_r+_z_o_o_m_y)
  305.              ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss(_w_i_d_t_h, _h_e_i_g_h_t, GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, _I1);
  306.           is equivalent to
  307.  
  308.              ggggllllDDDDiiiissssaaaabbbblllleeee( GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX);
  309.              _s_e_t _c_u_r_r_e_n_t _r_a_s_t_e_r _p_o_s_i_t_i_o_n _t_o (_x_r,_y_r)
  310.              ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss(_w_i_d_t_h, 2x_h_e_i_g_h_t, GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, _I2);
  311.           where pixel rows (0,2,4,...) of _I2 are from image _I0, and rows
  312.           (1,3,5,...) are from image _I1.
  313.  
  314.           This is particularly useful for assembling consecutive interlaced
  315.           video format fields to into a complete frame in either the frame-
  316.           buffer or in texture memory.
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.                                                                         PPPPaaaaggggeeee 5555
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  332.  
  333.  
  334.  
  335. UUUUSSSSIIIINNNNGGGG EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS
  336.      Procedure names and tokens for OpenGL extensions are suffixed with EXT or
  337.      with a vendor-specfic acronym.  EXT is used for extensions that have been
  338.      reviewed and will be supported by more than one OpenGL vendor.
  339.  
  340.      SGI also supports some vendor-specific extensions. Procedure names and
  341.      tokens for the SGI-specific extensions are suffixed with SGI, SGIS or
  342.      SGIX. ``SGI'' is used for extensions that will be available across the
  343.      product line (although the support for all machines might not be released
  344.      simultaneously).  ``SGIS'' is used for extensions that will be available
  345.      on a subset of SGI platforms.  ``SGIX'' extensions are experimental; in
  346.      future releases, the API for these extensions might change or might not
  347.      be supported at all.
  348.  
  349.      All supported extensions will have an associated macro definition in gl.h
  350.      and a corresponding token in the extensions string returned by ggggllllGGGGeeeetttt----
  351.      SSSSttttrrrriiiinnnngggg.  For example, if the EEEEXXXXTTTT____aaaabbbbggggrrrr extension is supported then the
  352.      token GGGGLLLL____EEEEXXXXTTTT____aaaabbbbggggrrrr will be defined in gl.h and GGGGLLLL____EEEEXXXXTTTT____aaaabbbbggggrrrr will appear in
  353.      the extensions string returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.
  354.  
  355.      The definitions in gl.h can be used at compile time to determine if an
  356.      extension's tokens and procedures exist in the OpenGL library. However,
  357.      the tokens returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg must be consulted at runtime to deter-
  358.      mine whether the extension is supported on the particular display in use
  359.      at that moment.
  360.  
  361.      Some of the RealityEngine extensions are incomplete and therefore are not
  362.      advertised in the extensions string.
  363.  
  364.      As an alternative to parsing the extensions string, you can determine
  365.      which extensions are supported by examining the renderer string (to
  366.      determine which graphics subsystem is being used) and the version string
  367.      (to determine the release number of the software being used).  For more
  368.      information see ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.
  369.  
  370.      GLX also has been extended. Refer to ggggllllXXXXIIIInnnnttttrrrroooo for more information.
  371.  
  372.  
  373. NNNNOOOOTTTTEEEESSSS
  374.      When an OpenGL application uses indirect rendering, additional instances
  375.      of Xsgi, the SGI X server, process show up under ps.  The additional
  376.      processes are multiple threads of the X server, used to implement
  377.      indirect rendering.
  378.  
  379.  
  380. BBBBUUUUGGGGSSSS
  381.      Different OpenGL processes which render to the same window using direct
  382.      rendering will not share the software ancillary buffers on that window.
  383.  
  384.      X and OpenGL do not coordinate swapping on double-buffered windows prop-
  385.      erly.
  386.  
  387.  
  388.  
  389.  
  390.                                                                         PPPPaaaaggggeeee 6666
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  398.  
  399.  
  400.  
  401.      The GLX specification allows rendering contexts to be shared within an
  402.      address space. This implies that an indirect rendering context may be
  403.      used by different clients connected to the same server, and that a direct
  404.      rendering context may be used by different threads sharing the address
  405.      space of a single client. However, neither of these are currently sup-
  406.      ported. If an application requires more than one rendering thread then it
  407.      must create a separate context for each thread.
  408.  
  409.      If an OpenGL program does a server grab using its X connection, then for
  410.      the duration of the grab it should not render OpenGL into any window that
  411.      the client doing the grab did not create.  Otherwise a deadlock occurs.
  412.      The client is still able to do X rendering.  This holds for both local
  413.      and remote rendering.
  414.  
  415.      ggggllllXXXXCCCCooooppppyyyyCCCCoooonnnntttteeeexxxxtttt does not work correctly if the source context is not the
  416.      current context or if the destination context has never been made
  417.      current.
  418.  
  419.      No locking of display list structures is done on behalf of indirect
  420.      OpenGL contexts that share display list spaces.  Applications that use
  421.      such contexts should use their own mechanisms to ensure mutual exclusion
  422.      when defining or destroying display lists.
  423.  
  424.      You may notice some discrepancies between the OpenGL Reference Manual
  425.      which is available through InSight and the man pages (i.e., the ones you
  426.      get using the "man gl..." command in a shell window). If so, the man
  427.      pages contain the correct, up to date, information.
  428.  
  429.  
  430.  
  431. MMMMAAAACCCCHHHHIIIINNNNEEEE DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNCCCCIIIIEEEESSSS
  432.      RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee,,,, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222,,,, aaaannnndddd VVVVTTTTXXXX
  433.  
  434.      Textures loaded using ggggllllPPPPiiiixxxxeeeellllMMMMaaaapppp might be corrupted when enough textures
  435.      are loaded to cause kernel management of texture memory.  Corruption
  436.      should occur only if the ggggllllPPPPiiiixxxxeeeellllMMMMaaaapppp has changed or been disabled since
  437.      the original load.
  438.  
  439.      Line stippling for antialiased lines is not quite correct.
  440.  
  441.      Antialiasing has no effect in multisampled visuals.  When multisampling
  442.      is off, all primitives will be aliased.
  443.  
  444.      VVVVGGGGXXXX aaaannnndddd VVVVGGGGXXXXTTTT
  445.  
  446.      On VGX and VGXT systems, OpenGL is implemented atop IrisGL. This imple-
  447.      mentation passes the mustpass OpenGL conformance tests but, nonetheless,
  448.      the following inconsistencies exist: fragments centers lie on integer
  449.      coordinates (not half-integer coordinates), and diffuse and specular
  450.      light colors are ignored.
  451.  
  452.  
  453.  
  454.  
  455.  
  456.                                                                         PPPPaaaaggggeeee 7777
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  464.  
  465.  
  466.  
  467.      If any of the following is enabled, then all geometric primitives will be
  468.      rendered through software (i.e., no hardware acceleration will be used):
  469.           o alpha test (unless test is GL_ALWAYS or GL_NOTEQUAL and reference
  470.      value is '0')
  471.           o texture
  472.           o lighting enabled but no lights enabled
  473.           o clock-wise front face
  474.           o fog enabled and color index visual
  475.           o we have to draw into both front and back buffer AND blend is
  476.      enabled, or logic op
  477.             is enabled
  478.  
  479.      Points will be rendered through software if evaluators are used (e.g.,
  480.      GGGGLLLL____MMMMAAAAPPPP1111____VVVVEEEERRRRTTTTEEEEXXXX3333 is enabled).
  481.  
  482.      Polygons, meshes and strips will be rendered through software if any of
  483.      the following is true:
  484.           o front mode is not the same as back mode and front mode is not
  485.      GGGGLLLL____FFFFIIIILLLLLLLL
  486.           o polygon offset is enabled and the scale and bias offset factors
  487.      are not 1 and 0, respectively.
  488.           o points have to go through software and front mode is GGGGLLLL____PPPPOOOOIIIINNNNTTTT
  489.  
  490.      On VGXT fog is done per-vertex instead of per-pixel.
  491.  
  492.      PPPPeeeerrrrssssoooonnnnaaaallll IIIIrrrriiiissss
  493.  
  494.      On Personal Iris systems, OpenGL is implemented atop IrisGL. This imple-
  495.      mentation passes the mustpass OpenGL conformance tests but, nonetheless,
  496.      the following incompatibilities exist: fragments centers lie on integer
  497.      coordinates (not half-integer coordinates), and diffuse and specular
  498.      light colors are ignored.
  499.  
  500.      If any of the following is enabled, then all geometric primitives will be
  501.      rendered through software (i.e., no hardware acceleration will be used):
  502.           o alpha test
  503.           o texture
  504.           o stencil
  505.           o model clip
  506.           o two-sided lighting, if lighting is enabled
  507.           o clock-wise front face
  508.           o fog (unless the fog mode is GGGGLLLL____LLLLIIIINNNNEEEEAAAARRRR)
  509.           o blend
  510.  
  511.      If any of the following is enabled, points will be rendered through
  512.      software:
  513.           o anti-aliasing and the point smooth hint is set to GGGGLLLL____NNNNIIIICCCCEEEESSSSTTTT
  514.           o point size is greater than 1.5
  515.           o evaluation (e.g., GGGGLLLL____MMMMAAAAPPPP1111____VVVVEEEERRRRTTTTEEEEXXXX3333 is enabled)
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.                                                                         PPPPaaaaggggeeee 8888
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  530.  
  531.  
  532.  
  533.      If any of the following is enabled, lines are done in software:
  534.           o anti-aliasing and the width is not equal to 1.0
  535.           o anti-aliasing and the line smooth hint is set to GGGGLLLL____NNNNIIIICCCCEEEESSSSTTTT
  536.  
  537.      If any of the following is true, polygons, meshes and strips are done in
  538.      software:
  539.           o anti-aliasing is enabled
  540.           o front mode is not the same as back mode (two-sidedness is not
  541.             supported in hardware)
  542.           o polygon offset is enabled and the scale and bias offset factors
  543.             are not 1 and 0, respectively.
  544.           o points have to go through software and front mode is GGGGLLLL____PPPPOOOOIIIINNNNTTTT
  545.           o lines have to go through software and front mode is GGGGLLLL____LLLLIIIINNNNEEEE
  546.  
  547. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  548.      ggggllllXXXXIIIInnnnttttrrrroooo
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                                                                         PPPPaaaaggggeeee 9999
  589.  
  590.  
  591.  
  592.