15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    SGIX_fbconfig
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GLX_SGIX_fbconfig
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci    
115bd8deadSopenharmony_ci    $Date: 1997/03/24 18:56:20 $ $Revision: 1.16 $
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNumber
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    49
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciDependencies
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    SGIS_multisample affects the definition of this extension
205bd8deadSopenharmony_ci    EXT_visual_info affects the definition of this extension
215bd8deadSopenharmony_ci    EXT_visual_rating affects the definition of this extension
225bd8deadSopenharmony_ci    EXT_import_context affects the definition of this extension
235bd8deadSopenharmony_ci    SGIX_pbuffer affects the definition of this extension
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciOverview
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    This extension introduces a new way to describe the capabilities of a 
285bd8deadSopenharmony_ci    GLX drawable (i.e., to describe the depth of color buffer components 
295bd8deadSopenharmony_ci    and the type and size of ancillary buffers), removes the "similarity"
305bd8deadSopenharmony_ci    requirement when making a context current to a drawable, and supports 
315bd8deadSopenharmony_ci    RGBA rendering to one- and two-component Windows and GLX Pixmaps.
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    Currently GLX overloads X Visuals with information on GLX drawable
345bd8deadSopenharmony_ci    capabilities. This extension defines a new construct, a GLXFBConfigSGIX,
355bd8deadSopenharmony_ci    that encapsulates GLX drawable capabilities and has the following 
365bd8deadSopenharmony_ci    properties:
375bd8deadSopenharmony_ci    
385bd8deadSopenharmony_ci       - It may or may not have an associated X visual. If it does have 
395bd8deadSopenharmony_ci       an associated X visual then it is possible to create Windows that  
405bd8deadSopenharmony_ci       have the capabilities described by the GLXFBConfig.
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci       - A particular GLXFBConfig does not need to work with all GLX 
435bd8deadSopenharmony_ci       drawables. For example, it is possible for implementations to export 
445bd8deadSopenharmony_ci       GLXFBConfigs that only work with GLX pixmaps.
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    This extension also removes the "similarity" restriction when making
475bd8deadSopenharmony_ci    a context and drawable current. Instead a less restrictive requirement 
485bd8deadSopenharmony_ci    of "compatibility" (see definition below) is imposed. Note that when 
495bd8deadSopenharmony_ci    a context is created it has an associated rendering type which
505bd8deadSopenharmony_ci    is either RGBA or color index. In the future we may want to remove all
515bd8deadSopenharmony_ci    "similarity" and "compatibility" restrictions and allow a context to be
525bd8deadSopenharmony_ci    bound to any drawable that supports its rendering type.
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    Finally the current GLX specification requires that the GLX_RGBA visual
555bd8deadSopenharmony_ci    attribute be associated only with X visual types TrueColor and DirectColor. 
565bd8deadSopenharmony_ci    This extension defines the semantics for doing RGBA rendering to Windows
575bd8deadSopenharmony_ci    created with visuals of type PseudoColor, StaticColor, GrayScale, and 
585bd8deadSopenharmony_ci    StaticGray.  In each of these cases, the red component is used to
595bd8deadSopenharmony_ci    generate the display, and the green and blue components, if present,
605bd8deadSopenharmony_ci    are ignored for display purposes.  
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    The OpenGL RGBA rendering semantics are more powerful than the OpenGL
635bd8deadSopenharmony_ci    index rendering semantics.  By extending the number of X visual types
645bd8deadSopenharmony_ci    that can be associated with an RGBA color buffer, this extension allows
655bd8deadSopenharmony_ci    RGBA rendering semantics to be used with pseudo color and gray scale
665bd8deadSopenharmony_ci    displays.  An especially useful application of this extension is
675bd8deadSopenharmony_ci    support of one- and two-component RGBA drawables; drawables whose green,
685bd8deadSopenharmony_ci    blue, and sometimes alpha components have no bitplanes.
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ciIssues
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    *	Should GLXFBConfigs apply to all GLX drawables or just GLXPbuffers?
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci        A: For consistency, all GLX drawables should be supported. (And if this 
765bd8deadSopenharmony_ci        extension is incorporated in a future release of GLX then the existing 
775bd8deadSopenharmony_ci        calls that rely on XVisualInfo structures should be deprecated.) The 
785bd8deadSopenharmony_ci        current mechanism which ties the description of GLX drawables to
795bd8deadSopenharmony_ci        X visuals is inadequate since it restricts all drawable configurations
805bd8deadSopenharmony_ci        to those which can be supported by on-screen windows.
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    *   Should the selection of an FBConfig differ from glXChooseVisual? If 
835bd8deadSopenharmony_ci	so, how? 
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci        Yes. For some attributes, the default value (that is, the value that is
865bd8deadSopenharmony_ci        used if the attribute is not specified in the list) should be "don't 
875bd8deadSopenharmony_ci        care". Also, an ordered list of GLXFBConfigs should be returned so 
885bd8deadSopenharmony_ci        applications can go through the list and apply their own policies to 
895bd8deadSopenharmony_ci        determine the best GLXFBConfig.
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci    *   Do we want to introduce the notion of "compatible" GLXFBConfigs and 
925bd8deadSopenharmony_ci	visuals? (GLX currently uses the term "similar". GLXContexts and 
935bd8deadSopenharmony_ci	GLXDrawables are similar iff they have been created with respect 
945bd8deadSopenharmony_ci	to the same VisualID and root window.)
955bd8deadSopenharmony_ci   
965bd8deadSopenharmony_ci        A: Yes. The GLX definition of similar visuals is too restrictive 
975bd8deadSopenharmony_ci	(and the glXMakeCurrentRead extension already relaxes it.) This 
985bd8deadSopenharmony_ci	is the right time to agree on a definition since we need to define 
995bd8deadSopenharmony_ci	how GLXFBConfigs match up to X Visuals. Note, that we do not 
1005bd8deadSopenharmony_ci	redefine similar; instead a new term, compatible, is introduced.
1015bd8deadSopenharmony_ci        In the future, we may want to remove this restriction and allow
1025bd8deadSopenharmony_ci        a context to be bound to any drawable. (But a context would still
1035bd8deadSopenharmony_ci        be created to do either RGBA or color index rendering.)
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ciNew Procedures and Functions
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    int glXGetFBConfigAttribSGIX(Display *dpy, 
1095bd8deadSopenharmony_ci			         GLXFBConfigSGIX config,
1105bd8deadSopenharmony_ci			         int attribute,
1115bd8deadSopenharmony_ci			         int *value);
1125bd8deadSopenharmony_ci					   
1135bd8deadSopenharmony_ci    GLXFBConfigSGIX *glXChooseFBConfigSGIX(Display *dpy, 
1145bd8deadSopenharmony_ci				           int screen,
1155bd8deadSopenharmony_ci				           const int *attrib_list,
1165bd8deadSopenharmony_ci				           int *nelements);
1175bd8deadSopenharmony_ci					   
1185bd8deadSopenharmony_ci    GLXPixmap glXCreateGLXPixmapWithConfigSGIX(Display *dpy, 
1195bd8deadSopenharmony_ci		                   	       GLXFBConfig config,
1205bd8deadSopenharmony_ci				   	       Pixmap pixmap);
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    GLXContext glXCreateContextWithConfigSGIX(Display *dpy,  
1235bd8deadSopenharmony_ci                                              GLXFBConfig config,
1245bd8deadSopenharmony_ci					      int render_type,
1255bd8deadSopenharmony_ci                                              GLXContext share_list,
1265bd8deadSopenharmony_ci				 	      Bool direct);
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    XVisualInfo *glXGetVisualFromFBConfigSGIX(Display *dpy,
1295bd8deadSopenharmony_ci                                              GLXFBConfig config);
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci    GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX(Display *dpy,
1325bd8deadSopenharmony_ci                                                 XVisualInfo *vis);
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ciNew Tokens
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci    Accepted by the <attribute> parameter of glXGetFBConfigAttribSGIX, and 
1375bd8deadSopenharmony_ci    by the <attrib_list> parameter of glXChooseFBConfigSGIX:
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci        GLX_DRAWABLE_TYPE_SGIX		0x8010
1405bd8deadSopenharmony_ci        GLX_RENDER_TYPE_SGIX		0x8011
1415bd8deadSopenharmony_ci        GLX_X_RENDERABLE_SGIX		0x8012
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci    Accepted by the <attribute> parameter of glXGetFBConfigAttribSGIX, the
1445bd8deadSopenharmony_ci    <attrib_list> parameter of glXChooseFBConfigSGIX, by the <attribute> 
1455bd8deadSopenharmony_ci    parameter of glXQueryGLXPbufferSGIX and by the <attribute> parameter
1465bd8deadSopenharmony_ci    of glXQueryContextInfoEXT:
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ci	GLX_FBCONFIG_ID_SGIX		0x8013
1495bd8deadSopenharmony_ci
1505bd8deadSopenharmony_ci    Accepted by the <attribute> parameter of glXGetFBConfigAttribSGIX:
1515bd8deadSopenharmony_ci 
1525bd8deadSopenharmony_ci        GLX_SCREEN_EXT			0x800C
1535bd8deadSopenharmony_ci    
1545bd8deadSopenharmony_ci    Returned by glXGetFBConfigAttribSGIX (when <attribute> is set to 
1555bd8deadSopenharmony_ci    GLX_DRAWABLE_TYPE_SGIX) and accepted by the <attrib_list> parameter of 
1565bd8deadSopenharmony_ci    glXChooseFBConfigSGIX (following the GLX_DRAWABLE_TYPE_SGIX token):
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci        GLX_WINDOW_BIT_SGIX		0x00000001
1595bd8deadSopenharmony_ci	GLX_PIXMAP_BIT_SGIX		0x00000002
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci    Returned by glXGetFBConfigAttribSGIX (when <attribute> is set to 
1625bd8deadSopenharmony_ci    GLX_RENDER_TYPE_SGIX) and accepted by the <attrib_list> parameter of 
1635bd8deadSopenharmony_ci    glXChooseFBConfigSGIX (following the GLX_RENDER_TYPE_SGIX token):
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci        GLX_RGBA_BIT_SGIX		0x00000001
1665bd8deadSopenharmony_ci	GLX_COLOR_INDEX_BIT_SGIX	0x00000002
1675bd8deadSopenharmony_ci
1685bd8deadSopenharmony_ci    Accepted by the <render_type> parameter of glXCreateContextWithConfigSGIX:
1695bd8deadSopenharmony_ci
1705bd8deadSopenharmony_ci        GLX_RGBA_TYPE_SGIX		0x8014
1715bd8deadSopenharmony_ci	GLX_COLOR_INDEX_TYPE_SGIX	0x8015
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci    None
1765bd8deadSopenharmony_ci
1775bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization)
1785bd8deadSopenharmony_ci
1795bd8deadSopenharmony_ci    None
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
1825bd8deadSopenharmony_ciand the Frame buffer)
1835bd8deadSopenharmony_ci
1845bd8deadSopenharmony_ci    In section 4.1.6 (Blending) follow the sentence "If a color buffer has
1855bd8deadSopenharmony_ci    no A value, then it is as if the destination A value is 1." with the
1865bd8deadSopenharmony_ci    sentence "If the color buffer has no R, G, or B value, then it is as
1875bd8deadSopenharmony_ci    if the destination R, G, or B value is 0."
1885bd8deadSopenharmony_ci
1895bd8deadSopenharmony_ci    In section 4.3.2 (Reading Pixels) follow the sentence "If the framebuffer
1905bd8deadSopenharmony_ci    does not support alpha values then the A that is obtained is 1.0." with
1915bd8deadSopenharmony_ci    the sentence "If the framebuffer does not support red, green, or blue
1925bd8deadSopenharmony_ci    values, then the R, G or B that is obtained is 0.0."
1935bd8deadSopenharmony_ci
1945bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions)
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci    None
1975bd8deadSopenharmony_ci
1985bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
1995bd8deadSopenharmony_ci
2005bd8deadSopenharmony_ci    None
2015bd8deadSopenharmony_ci
2025bd8deadSopenharmony_ciAdditions to the GLX Specification
2035bd8deadSopenharmony_ci
2045bd8deadSopenharmony_ci    [Add the following to section 3.2.2 on Configuration Management]
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ci    A GLXFBConfigSGIX describes the format, type and size of the color 
2075bd8deadSopenharmony_ci    buffers and ancillary buffers for a GLXDrawable. When the GLXDrawable
2085bd8deadSopenharmony_ci    is a window then the GLXFBConfigSGIX that describes it has an associated
2095bd8deadSopenharmony_ci    X Visual; for GLXPixmaps and GLXPbuffers there may or may not be an
2105bd8deadSopenharmony_ci    X Visual associated with the GLXFBConfigSGIX.
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci    Use glXChooseFBConfigSGIX to get GLXFBConfigSGIXs that match a
2135bd8deadSopenharmony_ci    list of attributes or to get the list of GLXFBConfigSGIXs that are
2145bd8deadSopenharmony_ci    available on the specified screen.
2155bd8deadSopenharmony_ci
2165bd8deadSopenharmony_ci        GLXFBConfigSGIX *glXChooseFBConfigSGIX(Display *dpy, 
2175bd8deadSopenharmony_ci					  int screen,
2185bd8deadSopenharmony_ci					  const int *attrib_list,
2195bd8deadSopenharmony_ci				          int *nelements);
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ci    If <attrib_list> is NULL then glXChooseFBConfigSGIX returns an array of 
2225bd8deadSopenharmony_ci    GLXFBConfigSGIXs that are available on the specified screen; otherwise this
2235bd8deadSopenharmony_ci    call returns an array of GLXFBConfigSGIXs that match the specified attributes. 
2245bd8deadSopenharmony_ci    (The attributes are described in Table 3.) The number of elements
2255bd8deadSopenharmony_ci    in the array is returned in nelements.   The attributes are matched in 
2265bd8deadSopenharmony_ci    an attribute-specific manner, as shown in Table 4. Some of the attributes, 
2275bd8deadSopenharmony_ci    such as GLX_LEVEL, must match the specified value exactly; others, such as, 
2285bd8deadSopenharmony_ci    GLX_RED_SIZE must meet or exceed the specified minimum values. To retrieve
2295bd8deadSopenharmony_ci    the GLXFBConfigSGIX, given an i.d., use the GLX_FBCONFIG_ID_SGIX attribute.
2305bd8deadSopenharmony_ci    When GLX_FBCONFIG_ID_SGIX is specified, all other attributes are ignored,
2315bd8deadSopenharmony_ci    and only the GLXFBConfigSGIX with the given XID is returned (NULL is returned
2325bd8deadSopenharmony_ci    if it does not exist).
2335bd8deadSopenharmony_ci
2345bd8deadSopenharmony_ci    If no conforming GLXFBConfigSGIX exists, or if an error occurs (i.e., an 
2355bd8deadSopenharmony_ci    undefined GLX attribute is encountered in <attrib_list>, <screen> is 
2365bd8deadSopenharmony_ci    invalid, or <dpy> does not support the GLX extension) then NULL is 
2375bd8deadSopenharmony_ci    returned. If <attrib_list> is not NULL and more than one GLXFBConfigSGIX is 
2385bd8deadSopenharmony_ci    found, then a list of GLXFBConfigSGIXs, sorted according to the "best"
2395bd8deadSopenharmony_ci    match criteria, is returned.  The exact sorting precedence order is 
2405bd8deadSopenharmony_ci    defined below.  Use XFree to free the memory returned by
2415bd8deadSopenharmony_ci    glXChooseFBConfigSGIX.
2425bd8deadSopenharmony_ci
2435bd8deadSopenharmony_ci    If GLX_RENDER_TYPE_SGIX is in <attrib_list> then the value that follows
2445bd8deadSopenharmony_ci    is a mask indicating which type of GLXContexts drawables created with
2455bd8deadSopenharmony_ci    the corresponding GLXFBConfigSGIXs be bound to. For example, if 
2465bd8deadSopenharmony_ci		GLX_RGBA_BIT_SGIX | GLX_COLOR_INDEX_BIT_SGIX 
2475bd8deadSopenharmony_ci    is specified as the mask then glXChooseFBConfigSGIX will search for 
2485bd8deadSopenharmony_ci    GLXFBConfigSGIXs that can be used to create drawables that can be bound to both 
2495bd8deadSopenharmony_ci    RGBA and color index rendering contexts. The default value for
2505bd8deadSopenharmony_ci    GLX_RENDER_TYPE_SGIX is GLX_RGBA_BIT_SGIX. 
2515bd8deadSopenharmony_ci
2525bd8deadSopenharmony_ci    The attribute GLX_DRAWABLE_TYPE_SGIX has as its value a mask indicating
2535bd8deadSopenharmony_ci    the drawable types that can be created with the corresponding GLXFBConfigSGIX
2545bd8deadSopenharmony_ci    (the config is said to ``support'' these drawable types).
2555bd8deadSopenharmony_ci    For example, a GLXFBConfigSGIX for which the value of GLX_DRAWABLE_TYPE_SGIX
2565bd8deadSopenharmony_ci    attribute is GLX_WINDOW_BIT_SGIX | GLX_PIXMAP_BIT_SGIX can be used to create
2575bd8deadSopenharmony_ci    both Windows and GLX pixmaps, while a config for which this attribute value
2585bd8deadSopenharmony_ci    is GLX_WINDOW_BIT_SGIX can not be used for creating GLX pixmaps. The default
2595bd8deadSopenharmony_ci    value for GLX_DRAWABLE_TYPE_SGIX is GLX_WINDOW_BIT_SGIX.
2605bd8deadSopenharmony_ci
2615bd8deadSopenharmony_ci    If a GLXFBConfigSGIX supports Windows then it has an associated X Visual. The
2625bd8deadSopenharmony_ci    value of the GLX_X_VISUAL_TYPE_EXT attribute specifies the type of X
2635bd8deadSopenharmony_ci    Visual. The possible values are:
2645bd8deadSopenharmony_ci
2655bd8deadSopenharmony_ci        GLX token name                  X Visual Type
2665bd8deadSopenharmony_ci        --------------                  -------------
2675bd8deadSopenharmony_ci        GLX_TRUE_COLOR_EXT              TrueColor
2685bd8deadSopenharmony_ci        GLX_DIRECT_COLOR_EXT            DirectColor
2695bd8deadSopenharmony_ci        GLX_PSEUDO_COLOR_EXT            PseudoColor
2705bd8deadSopenharmony_ci        GLX_STATIC_COLOR_EXT            StaticColor
2715bd8deadSopenharmony_ci        GLX_GRAY_SCALE_EXT              GrayScale
2725bd8deadSopenharmony_ci        GLX_STATIC_GRAY_EXT             StaticGray
2735bd8deadSopenharmony_ci
2745bd8deadSopenharmony_ci    Note that RGBA rendering may be supported for any of the six Visual types
2755bd8deadSopenharmony_ci    but color index rendering is only supported for PseudoColor, StaticColor,
2765bd8deadSopenharmony_ci    GrayScale, and StaticGray visuals (i.e., single-channel visuals). The
2775bd8deadSopenharmony_ci    GLX_X_VISUAL_TYPE_EXT attribute is ignored if GLX_DRAWABLE_TYPE_SGIX is
2785bd8deadSopenharmony_ci    specified in <attrib_list> and the mask that follows does not have
2795bd8deadSopenharmony_ci    GLX_WINDOW_BIT_SGIX set.
2805bd8deadSopenharmony_ci
2815bd8deadSopenharmony_ci    GLX_X_RENDERABLE_SGIX is a boolean indicating whether X can be used
2825bd8deadSopenharmony_ci    to render into a drawable created with the GLXFBConfigSGIX. This attribute
2835bd8deadSopenharmony_ci    is True if the GLXFBConfigSGIX supports Windows and/or GLX pixmaps.
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ci    All attributes in <attrib_list>, including boolean attributes, are 
2865bd8deadSopenharmony_ci    immediately followed by the corresponding desired value. The list is 
2875bd8deadSopenharmony_ci    terminated with None. If an attribute is not specified in <attrib_list> 
2885bd8deadSopenharmony_ci    then the default value (listed in Table 4) is used (it is said to be
2895bd8deadSopenharmony_ci    specified implicitly).  For example, if GLX_STEREO is not specified then it
2905bd8deadSopenharmony_ci    is assumed to be False.  For some attributes, the default is "don't care"
2915bd8deadSopenharmony_ci    meaning that any value is OK for this attribute, so the attribute will not
2925bd8deadSopenharmony_ci    be checked.
2935bd8deadSopenharmony_ci
2945bd8deadSopenharmony_ci    When more than one GLXFBConfigSGIX matches the specification, a list of matching
2955bd8deadSopenharmony_ci    configurations is returned. The list is sorted according to the following
2965bd8deadSopenharmony_ci    precedence rules that are applied in ascending order (i.e., configurations
2975bd8deadSopenharmony_ci    that are considered equal by lower numbered rule are sorted by the higher
2985bd8deadSopenharmony_ci    numbered rule):
2995bd8deadSopenharmony_ci
3005bd8deadSopenharmony_ci	 1. by GLX_VISUAL_RATING_EXT where the precedence is GLX_NONE_EXT,
3015bd8deadSopenharmony_ci	    GLX_SLOW_VISUAL.
3025bd8deadSopenharmony_ci	 2. larger total number of RGBA color components (GLX_RED_BITS,
3035bd8deadSopenharmony_ci	    GLX_GREEN_BITS, GLX_BLUE_BITS, and GLX_ALPHA_BITS) that have higher
3045bd8deadSopenharmony_ci	    number of bits,
3055bd8deadSopenharmony_ci	 3. smaller GLX_INDEX_BITS,
3065bd8deadSopenharmony_ci	 4. single buffered configuration (GLX_DOUBLE_BUFFER being False)
3075bd8deadSopenharmony_ci	    precedes a double buffered one,
3085bd8deadSopenharmony_ci	 5. smaller GLX_AUX_BUFFERS,
3095bd8deadSopenharmony_ci	 6. smaller GLX_SAMPLE_BUFFERS_SGIS,
3105bd8deadSopenharmony_ci	 7. smaller GLX_SAMPLES_SGIS,
3115bd8deadSopenharmony_ci	 8. larger GLX_DEPTH_BITS,
3125bd8deadSopenharmony_ci	 9. smaller GLX_STENCIL_BITS,
3135bd8deadSopenharmony_ci	10. larger total number of accumulation buffer color components
3145bd8deadSopenharmony_ci	    (GLX_ACCUM_RED_BITS, GLX_ACCUM_GREEN_BITS, GLX_ACCUM_BLUE_BITS, and
3155bd8deadSopenharmony_ci	    GLX_ACCUM_ALPHA_BITS) that have higher number of bits;
3165bd8deadSopenharmony_ci	11. sort by GLX_VISUAL_TYPE_EXT where the precedence order is
3175bd8deadSopenharmony_ci	    GLX_TRUE_COLOR_EXT, GLX_DIRECT_COLOR_EXT, GLX_PSEUDO_COLOR_EXT,
3185bd8deadSopenharmony_ci	    GLX_STATIC_COLOR_EXT, GLX_GRAY_SCALE_EXT, GLX_STATIC_GRAY_EXT,
3195bd8deadSopenharmony_ci
3205bd8deadSopenharmony_ci    To get the value of a GLX attribute for a GLXFBConfigSGIX use
3215bd8deadSopenharmony_ci
3225bd8deadSopenharmony_ci        int glXGetFBConfigAttribSGIX(Display *dpy, 
3235bd8deadSopenharmony_ci			             GLXFBConfigSGIX config,
3245bd8deadSopenharmony_ci			             int attribute,
3255bd8deadSopenharmony_ci			             int *value);
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci    If glXGetFBConfigAttribSGIX succeeds then it returns Success and the 
3285bd8deadSopenharmony_ci    value for the specified attribute is returned in <value>; otherwise 
3295bd8deadSopenharmony_ci    it returns one of the following errors:
3305bd8deadSopenharmony_ci
3315bd8deadSopenharmony_ci        GLX_BAD_ATTRIB <attribute> is not a valid GLX attribute 
3325bd8deadSopenharmony_ci
3335bd8deadSopenharmony_ci    Refer to Tables 3 and 4 for a list of valid GLX attributes. 
3345bd8deadSopenharmony_ci
3355bd8deadSopenharmony_ci    Note that a GLXFBConfigSGIX has an associated X Visual iff the 
3365bd8deadSopenharmony_ci    GLX_DRAWABLE_TYPE_SGIX value has the GLX_WINDOW_BIT_SGIX bit set. To 
3375bd8deadSopenharmony_ci    retrieve the associated visual, call:
3385bd8deadSopenharmony_ci
3395bd8deadSopenharmony_ci      XVisualInfo *glXGetVisualFromFBConfigSGIX(Display *dpy,
3405bd8deadSopenharmony_ci                                                GLXFBConfigSGIX config);
3415bd8deadSopenharmony_ci  
3425bd8deadSopenharmony_ci    If <config> is a valid GLXFBConfigSGIX and it has an associated X Visual then 
3435bd8deadSopenharmony_ci    information describing that visual is returned; otherwise NULL is returned.
3445bd8deadSopenharmony_ci    Use XFree to free the data returned.
3455bd8deadSopenharmony_ci
3465bd8deadSopenharmony_ci    It is also possible to get a GLXFBConfigSGIX, given visual information:
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ci      GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX(Display *dpy,
3495bd8deadSopenharmony_ci                                               XVisualInfo *vis);
3505bd8deadSopenharmony_ci
3515bd8deadSopenharmony_ci    If the visual is valid and supports OpenGL rendering (i.e., if the GLX 
3525bd8deadSopenharmony_ci    visual attribute GLX_USE_GL is True) then the associated GLXFBConfigSGIX is 
3535bd8deadSopenharmony_ci    returned; otherwise NULL is returned.
3545bd8deadSopenharmony_ci
3555bd8deadSopenharmony_ci
3565bd8deadSopenharmony_ci    [Change Table 1 caption to read: "GLX Configuration attributes for Visuals" 
3575bd8deadSopenharmony_ci     and add the tables below]
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ci    Attribute  		  	    Type     Description
3605bd8deadSopenharmony_ci    ---------                 	    ----     -----------
3615bd8deadSopenharmony_ci    GLX_BUFFER_SIZE           	    integer  depth of the color buffer
3625bd8deadSopenharmony_ci    GLX_LEVEL                 	    integer  frame buffer level
3635bd8deadSopenharmony_ci    GLX_DOUBLEBUFFER		    boolean  True if color buffers have
3645bd8deadSopenharmony_ci    					     front/back pairs
3655bd8deadSopenharmony_ci    GLX_STEREO			    boolean  True if color buffers have
3665bd8deadSopenharmony_ci    					     left/right pairs
3675bd8deadSopenharmony_ci    GLX_AUX_BUFFERS           	    integer  number of auxiliary color buffers
3685bd8deadSopenharmony_ci    GLX_RED_SIZE              	    integer  number of bits of Red in the
3695bd8deadSopenharmony_ci    					     framebuffer
3705bd8deadSopenharmony_ci    GLX_GREEN_SIZE            	    integer  number of bits of Green in the
3715bd8deadSopenharmony_ci    					     framebuffer
3725bd8deadSopenharmony_ci    GLX_BLUE_SIZE             	    integer  number of bits of Blue in the
3735bd8deadSopenharmony_ci    					     framebuffer
3745bd8deadSopenharmony_ci    GLX_ALPHA_SIZE            	    integer  number of bits of Alpha in the
3755bd8deadSopenharmony_ci    					     framebuffer
3765bd8deadSopenharmony_ci    GLX_DEPTH_SIZE            	    integer  number of bits in the depth buffer
3775bd8deadSopenharmony_ci    GLX_STENCIL_SIZE          	    integer  number of bits in the stencil buffer
3785bd8deadSopenharmony_ci    GLX_ACCUM_RED_SIZE        	    integer  number of bits of Red in the 
3795bd8deadSopenharmony_ci					     accumulation buffer
3805bd8deadSopenharmony_ci    GLX_ACCUM_GREEN_SIZE      	    integer  number of bits of Green in the
3815bd8deadSopenharmony_ci					     accumulation buffer
3825bd8deadSopenharmony_ci    GLX_ACCUM_BLUE_SIZE       	    integer  number of bits of Blue in the 
3835bd8deadSopenharmony_ci					     accumulation buffer
3845bd8deadSopenharmony_ci    GLX_ACCUM_ALPHA_SIZE      	    integer  number of bits of Alpha in the
3855bd8deadSopenharmony_ci					     accumulation buffer
3865bd8deadSopenharmony_ci    GLX_SAMPLE_BUFFERS_SGIS   	    integer  number of multisample buffers
3875bd8deadSopenharmony_ci    GLX_SAMPLES_SGIS          	    integer  number of samples stored in each
3885bd8deadSopenharmony_ci					     multisample buffer
3895bd8deadSopenharmony_ci    GLX_X_VISUAL_TYPE_EXT	    integer  X visual type of the associated visual
3905bd8deadSopenharmony_ci    GLX_TRANSPARENT_TYPE_EXT 	    enum     GLX_NONE_EXT,
3915bd8deadSopenharmony_ci			                     TRANSPARENT_RGB_EXT, or 
3925bd8deadSopenharmony_ci			                     TRANSPARENT_INDEX_EXT
3935bd8deadSopenharmony_ci    GLX_TRANSPARENT_INDEX_VALUE_EXT integer  transparent index value.
3945bd8deadSopenharmony_ci    GLX_TRANSPARENT_RED_VALUE_EXT   integer  transparent red value.
3955bd8deadSopenharmony_ci    GLX_TRANSPARENT_GREEN_VALUE_EXT integer  transparent green value.
3965bd8deadSopenharmony_ci    GLX_TRANSPARENT_BLUE_VALUE_EXT  integer  transparent blue value.
3975bd8deadSopenharmony_ci    GLX_TRANSPARENT_ALPHA_VALUE_EXT integer  transparent alpha value.
3985bd8deadSopenharmony_ci    GLX_VISUAL_CAVEAT_EXT	    enum     GLX_NONE_EXT or GLX_SLOW_VISUAL_EXT
3995bd8deadSopenharmony_ci    GLX_DRAWABLE_TYPE_SGIX	    bitmask  mask indicating which GLX drawables
4005bd8deadSopenharmony_ci					     are supported.  Valid bits are
4015bd8deadSopenharmony_ci					     GLX_WINDOW_BIT_SGIX and
4025bd8deadSopenharmony_ci					     GLX_PIXMAP_BIT_SGIX
4035bd8deadSopenharmony_ci    GLX_RENDER_TYPE_SGIX	    bitmask  mask indicating which OpenGL
4045bd8deadSopenharmony_ci					     rendering modes are
4055bd8deadSopenharmony_ci					     supported. Valid bits are
4065bd8deadSopenharmony_ci					     GLX_RGBA_BIT_SGIX and
4075bd8deadSopenharmony_ci					     GLX_COLOR_INDEX_SGIX.
4085bd8deadSopenharmony_ci    GLX_X_RENDERABLE_SGIX     	    boolean  True if X can render to drawable
4095bd8deadSopenharmony_ci    GLX_FBCONFIG_ID_SGIX	    XID      i.d. of GLXFBConfigSGIX
4105bd8deadSopenharmony_ci
4115bd8deadSopenharmony_ci    Table 3: GLXFBConfigSGIX attributes (Note that GLX_RGBA and GLX_USE_GL
4125bd8deadSopenharmony_ci             are not supported for GLXFBConfigSGIXs)
4135bd8deadSopenharmony_ci
4145bd8deadSopenharmony_ci    Attribute  		  	     Default		        Sorting Criterion
4155bd8deadSopenharmony_ci    ---------                 	     -------			-----------------
4165bd8deadSopenharmony_ci    GLX_BUFFER_SIZE		     0				smaller
4175bd8deadSopenharmony_ci    GLX_LEVEL			     0				exact
4185bd8deadSopenharmony_ci    GLX_DOUBLEBUFFER		     don't care			smaller
4195bd8deadSopenharmony_ci    GLX_STEREO			     False			exact
4205bd8deadSopenharmony_ci    GLX_AUX_BUFFERS		     0				smaller
4215bd8deadSopenharmony_ci    GLX_RED_SIZE		     0				larger
4225bd8deadSopenharmony_ci    GLX_GREEN_SIZE		     0				larger
4235bd8deadSopenharmony_ci    GLX_BLUE_SIZE		     0				larger
4245bd8deadSopenharmony_ci    GLX_ALPHA_SIZE		     0				larger
4255bd8deadSopenharmony_ci    GLX_DEPTH_SIZE		     0				larger
4265bd8deadSopenharmony_ci    GLX_STENCIL_SIZE		     0				larger
4275bd8deadSopenharmony_ci    GLX_ACCUM_RED_SIZE		     0				larger
4285bd8deadSopenharmony_ci    GLX_ACCUM_GREEN_SIZE	     0				larger
4295bd8deadSopenharmony_ci    GLX_ACCUM_BLUE_SIZE		     0				larger
4305bd8deadSopenharmony_ci    GLX_ACCUM_ALPHA_SIZE	     0				larger
4315bd8deadSopenharmony_ci    GLX_SAMPLE_BUFFERS_SGIS	     0				smaller
4325bd8deadSopenharmony_ci    GLX_SAMPLES_SGIS		     0				smaller
4335bd8deadSopenharmony_ci    GLX_X_VISUAL_TYPE_EXT	     don't care			exact
4345bd8deadSopenharmony_ci    GLX_TRANSPARENT_TYPE_EXT	     GLX_NONE_EXT		exact
4355bd8deadSopenharmony_ci    GLX_TRANSPARENT_INDEX_VALUE_EXT  don't care			exact
4365bd8deadSopenharmony_ci    GLX_TRANSPARENT_RED_VALUE_EXT    don't care			exact
4375bd8deadSopenharmony_ci    GLX_TRANSPARENT_GREEN_VALUE_EXT  don't care			exact
4385bd8deadSopenharmony_ci    GLX_TRANSPARENT_BLUE_VALUE_EXT   don't care			exact
4395bd8deadSopenharmony_ci    GLX_TRANSPARENT_ALPHA_VALUE_EXT  don't care			exact
4405bd8deadSopenharmony_ci    GLX_VISUAL_CAVEAT_EXT	     don't care			exact
4415bd8deadSopenharmony_ci    GLX_DRAWABLE_TYPE_SGIX	     GLX_WINDOW_BIT_SGIX	mask
4425bd8deadSopenharmony_ci    GLX_RENDER_TYPE_SGIX	     GLX_RGBA_BIT_SGIX          mask
4435bd8deadSopenharmony_ci    GLX_X_RENDERABLE_SGIX	     don't care			exact
4445bd8deadSopenharmony_ci    GLX_FBCONFIG_ID_SGIX	     don't care			exact
4455bd8deadSopenharmony_ci
4465bd8deadSopenharmony_ci    Table 4: Default values and match criteria for GLXFBConfigSGIX attributes.  The
4475bd8deadSopenharmony_ci             definition of the sorting criteria is as follow:
4485bd8deadSopenharmony_ci	     smaller - configs with attribute value that meets or exceeds the
4495bd8deadSopenharmony_ci	       specified value are returned, with precedence given to smaller
4505bd8deadSopenharmony_ci	       values (when a value is not explicitly requested, the default is
4515bd8deadSopenharmony_ci	       implied);
4525bd8deadSopenharmony_ci	     larger - when the value is requested explicitly, only configs
4535bd8deadSopenharmony_ci	       with a corresponding attribute value that meet or exceed the
4545bd8deadSopenharmony_ci	       specified value are returned, with precedence given to larger
4555bd8deadSopenharmony_ci	       values.  When the value is not requested explicitly behaves exactly
4565bd8deadSopenharmony_ci	       like the ``smaller'' criterion.
4575bd8deadSopenharmony_ci	     exact - only configs whose corresponding attribute value exactly
4585bd8deadSopenharmony_ci	       matches the requested value are considered.
4595bd8deadSopenharmony_ci	     mask - only configs for which the set bits of corresponding
4605bd8deadSopenharmony_ci	       attribute include all the bits that are set in the requested
4615bd8deadSopenharmony_ci	       value are considered (Additional bits might be set in the
4625bd8deadSopenharmony_ci	       attribute).
4635bd8deadSopenharmony_ci
4645bd8deadSopenharmony_ci    [Add the following to section 3.2.3 on Offscreen Rendering]
4655bd8deadSopenharmony_ci
4665bd8deadSopenharmony_ci    To create a GLX pixmap using a GLXFBConfigSGIX use 
4675bd8deadSopenharmony_ci
4685bd8deadSopenharmony_ci      GLXPixmap glXCreateGLXPixmapWithConfigSGIX(Display *dpy, 
4695bd8deadSopenharmony_ci		                   	         GLXFBConfigSGIX config,
4705bd8deadSopenharmony_ci				   	         Pixmap pixmap);
4715bd8deadSopenharmony_ci
4725bd8deadSopenharmony_ci    This call is identical to glXCreateGLXPixmap except that the GLXPixmap 
4735bd8deadSopenharmony_ci    is created with color buffers and ancillary buffers as specified by 
4745bd8deadSopenharmony_ci    <config>. If <config> is not a valid GLXFBConfigSGIX, or if it does not
4755bd8deadSopenharmony_ci    support pixmap rendering then a GLXBadFBConfigSGIX error is generated.
4765bd8deadSopenharmony_ci
4775bd8deadSopenharmony_ci
4785bd8deadSopenharmony_ci    [Add the following to section 3.2.4 on Rendering Contexts]
4795bd8deadSopenharmony_ci
4805bd8deadSopenharmony_ci    To create a GLX context using a GLXFBConfigSGIX call
4815bd8deadSopenharmony_ci
4825bd8deadSopenharmony_ci      GLXContext glXCreateContextWithConfigSGIX(Display *dpy,  
4835bd8deadSopenharmony_ci                                                GLXFBConfigSGIX config,
4845bd8deadSopenharmony_ci					        int render_type,
4855bd8deadSopenharmony_ci						GLXContext share_list,
4865bd8deadSopenharmony_ci						Bool direct);
4875bd8deadSopenharmony_ci
4885bd8deadSopenharmony_ci    This call is identical to glXCreateContext except that the resulting 
4895bd8deadSopenharmony_ci    GLXContext can be used to render to any "compatible" GLXDrawable. A
4905bd8deadSopenharmony_ci    GLXContext and a GLXDrawable are compatible if
4915bd8deadSopenharmony_ci        - the render_type attribute for the context is supported by the
4925bd8deadSopenharmony_ci          GLXFBConfigSGIX that the drawable was created with. (e.g., if the
4935bd8deadSopenharmony_ci          context was created with render_type GLX_RGBA_TYPE_SGIX, then
4945bd8deadSopenharmony_ci          the GLXFBConfigSGIX's GLX_RENDER_TYPE_SGIX attribute must have
4955bd8deadSopenharmony_ci          the GLX_RGBA_BIT_SGIX bit set.)
4965bd8deadSopenharmony_ci        - all color buffers and ancillary buffers that exist in both 
4975bd8deadSopenharmony_ci	  GLXFBConfigSGIXs have the same depth. For example, a GLXDrawable that 
4985bd8deadSopenharmony_ci	  had a front left buffer and a back left buffer with red, green and 
4995bd8deadSopenharmony_ci	  blue sizes of 4 would not be compatible with a GLXFBConfigSGIX that had 
5005bd8deadSopenharmony_ci	  only a front left buffer with red, green and blue sizes of 8. However,
5015bd8deadSopenharmony_ci    	  it would be compatible with a GLXFBConfigSGIX that had only a front left 
5025bd8deadSopenharmony_ci 	  buffer if the red, green and blue sizes were 4.
5035bd8deadSopenharmony_ci
5045bd8deadSopenharmony_ci    glXCreateContextWithConfigSGIX can generate the following errors: 
5055bd8deadSopenharmony_ci    GLXBadContext if <share_list> is neither zero nor a valid GLX
5065bd8deadSopenharmony_ci    rendering context; GLXBadFBConfigSGIX if <config> is not a valid 
5075bd8deadSopenharmony_ci    GLXFBConfigSGIX; BadMatch if <share_list> defines an address space that
5085bd8deadSopenharmony_ci    cannot be shared with the newly created context or if <share_list>
5095bd8deadSopenharmony_ci    was created on a different screen than the one referenced by <config>;
5105bd8deadSopenharmony_ci    BadAlloc if the server does not have enough resources to allocate the
5115bd8deadSopenharmony_ci    new context; BadValue if <render_type> does not refer to a valid
5125bd8deadSopenharmony_ci    rendering type.
5135bd8deadSopenharmony_ci
5145bd8deadSopenharmony_ci
5155bd8deadSopenharmony_ci    [Add to description of glXMakeCurrent]
5165bd8deadSopenharmony_ci
5175bd8deadSopenharmony_ci    No error will be generated if the value of DRAW_BUFFER in <ctx> 
5185bd8deadSopenharmony_ci    indicates a color buffer that is not supported by <drawable>.
5195bd8deadSopenharmony_ci    In this case, all rendering will behave as if DRAW_BUFFER was 
5205bd8deadSopenharmony_ci    set to NONE. The same goes for READ_BUFFER: no error will be 
5215bd8deadSopenharmony_ci    generated if it does not correspond to a valid color buffer;
5225bd8deadSopenharmony_ci    subsequent glReadPixel and glCopyPixel operations will simply 
5235bd8deadSopenharmony_ci    return invalid data.
5245bd8deadSopenharmony_ci
5255bd8deadSopenharmony_ci    Note that it is an error to later call glDrawBuffer and/or glReadBuffer
5265bd8deadSopenharmony_ci    (even if they are implicitly called via glPopAttrib) and specify
5275bd8deadSopenharmony_ci    a color buffer that is not supported by <drawable>.  Also
5285bd8deadSopenharmony_ci    subsequent calls to glCopyPixels, that specify an unsupported
5295bd8deadSopenharmony_ci    ancillary buffer, will result in an error.
5305bd8deadSopenharmony_ci
5315bd8deadSopenharmony_ci    [Add to table listing GLX context attributes for glXQueryContextInfoEXT]
5325bd8deadSopenharmony_ci
5335bd8deadSopenharmony_ci    GLX context attribute   type    context information
5345bd8deadSopenharmony_ci    ---------------------   ----    -------------------
5355bd8deadSopenharmony_ci    GLX_FBCONFIG_ID_SGIX    XID     FBConfig id
5365bd8deadSopenharmony_ci
5375bd8deadSopenharmony_ci
5385bd8deadSopenharmony_ciGLX Protocol
5395bd8deadSopenharmony_ci
5405bd8deadSopenharmony_ci	Three newGLX protocol commands are added.
5415bd8deadSopenharmony_ci
5425bd8deadSopenharmony_ci	GetFBConfigsSGIX
5435bd8deadSopenharmony_ci	    1		CARD8		opcode (X assigned)
5445bd8deadSopenharmony_ci	    1		17		GLX opcode (glXVendorPrivateWithReply)
5455bd8deadSopenharmony_ci	    2		4		request length
5465bd8deadSopenharmony_ci	    4		65540		vendor specific opcode
5475bd8deadSopenharmony_ci	    4				unused
5485bd8deadSopenharmony_ci	    4		CARD32		screen
5495bd8deadSopenharmony_ci	  =>
5505bd8deadSopenharmony_ci	    1		1		reply
5515bd8deadSopenharmony_ci	    1				unused
5525bd8deadSopenharmony_ci	    2		CARD16		sequence number
5535bd8deadSopenharmony_ci	    4		n*m		length
5545bd8deadSopenharmony_ci	    4		n		numFBConfigs
5555bd8deadSopenharmony_ci	    4		m		numAttribs
5565bd8deadSopenharmony_ci	    20				unused
5575bd8deadSopenharmony_ci	    8 * n	LISTofATTRIB	properties
5585bd8deadSopenharmony_ci	
5595bd8deadSopenharmony_ci	     Where n is the number of FBConfigs returned and m is the number
5605bd8deadSopenharmony_ci	     of attributes returned for each FBConfig.  Both m and n are
5615bd8deadSopenharmony_ci	     of type CARD32.
5625bd8deadSopenharmony_ci
5635bd8deadSopenharmony_ci
5645bd8deadSopenharmony_ci	CreateContextWithConfigSGIX
5655bd8deadSopenharmony_ci	    1		CARD8		opcode (X assigned)
5665bd8deadSopenharmony_ci	    1		17		GLX opcode (glXVendorPrivateWithReply)
5675bd8deadSopenharmony_ci	    2		9		request length
5685bd8deadSopenharmony_ci	    4		65541		vendor specific opcode
5695bd8deadSopenharmony_ci	    4				unused
5705bd8deadSopenharmony_ci	    4		GLX_CONTEXT	context
5715bd8deadSopenharmony_ci	    4		GLX_FBCONFIG	fbconfig
5725bd8deadSopenharmony_ci	    4		CARD32		screen
5735bd8deadSopenharmony_ci	    4		CARD32		renderType
5745bd8deadSopenharmony_ci	    4		GLX_CONTEXT	shareList
5755bd8deadSopenharmony_ci	    1		BOOL		isDirect
5765bd8deadSopenharmony_ci	    1		CARD8		reserved1
5775bd8deadSopenharmony_ci	    1		CARD16		reserved2
5785bd8deadSopenharmony_ci	    
5795bd8deadSopenharmony_ci
5805bd8deadSopenharmony_ci	CreateGLXPixmapWithConfigSGIX
5815bd8deadSopenharmony_ci	    1		CARD8		opcode (X assigned)
5825bd8deadSopenharmony_ci	    1		17		GLX opcode (glXVendorPrivateWithReply)
5835bd8deadSopenharmony_ci	    2		7		request length
5845bd8deadSopenharmony_ci	    4		65542		vendor specific opcode
5855bd8deadSopenharmony_ci	    4				unused
5865bd8deadSopenharmony_ci	    4		CARD32		screen
5875bd8deadSopenharmony_ci	    4		GLX_FBCONFIG	fbconfig
5885bd8deadSopenharmony_ci	    4		CARD32		pixmap
5895bd8deadSopenharmony_ci	    4		GLX_PIXMAP	glxpixmap
5905bd8deadSopenharmony_ci
5915bd8deadSopenharmony_ci
5925bd8deadSopenharmony_ciDependencies on SGIS_multisample
5935bd8deadSopenharmony_ci
5945bd8deadSopenharmony_ci    If SGIS_multisample is not supported, references to
5955bd8deadSopenharmony_ci    GLX_SAMPLE_BUFFERS_SGIS and GLX_SAMPLES_SGIS in this document are
5965bd8deadSopenharmony_ci    invalid and should be ignored.
5975bd8deadSopenharmony_ci
5985bd8deadSopenharmony_ciDependencies on EXT_visual_info
5995bd8deadSopenharmony_ci
6005bd8deadSopenharmony_ci    If EXT_visual_info is not supported, references to
6015bd8deadSopenharmony_ci    GLX_X_VISUAL_TYPE_EXT, GLX_TRANSPARENT_TYPE_EXT,
6025bd8deadSopenharmony_ci    GLX_TRANSPARENT_INDEX_VALUE_EXT, GLX_TRANSPARENT_RED_VALUE_EXT,
6035bd8deadSopenharmony_ci    GLX_TRANSPARENT_GREEN_VALUE_EXT, GLX_TRANSPARENT_BLUE_VALUE_EXT,
6045bd8deadSopenharmony_ci    GLX_TRANSPARENT_ALPHA_VALUE_EXT, GLX_TRUE_COLOR_EXT, 
6055bd8deadSopenharmony_ci    GLX_DIRECT_COLOR_EXT, GLX_PSEUDO_COLOR_EXT, GLX_STATIC_COLOR_EXT, 
6065bd8deadSopenharmony_ci    GLX_GRAY_SCALE_EXT, and GLX_STATIC_GRAY_EXT, in this document 
6075bd8deadSopenharmony_ci    are invalid and should be ignored.
6085bd8deadSopenharmony_ci    
6095bd8deadSopenharmony_ciDependencies on EXT_visual_rating
6105bd8deadSopenharmony_ci
6115bd8deadSopenharmony_ci    If EXT_visual_rating is not supported, references to GLX_VISUAL_CAVEAT_EXT 
6125bd8deadSopenharmony_ci    and GLX_SLOW_VISUAL_EXT, in this document are invalid and should be ignored.
6135bd8deadSopenharmony_ci
6145bd8deadSopenharmony_ciDependencies on EXT_import_context
6155bd8deadSopenharmony_ci
6165bd8deadSopenharmony_ci    If EXT_import_context is not supported, references to glXQueryContextInfoEXT
6175bd8deadSopenharmony_ci    in this document should be ignored.
6185bd8deadSopenharmony_ci
6195bd8deadSopenharmony_ciDependencies on SGIX_pbuffer
6205bd8deadSopenharmony_ci
6215bd8deadSopenharmony_ci    If SGIX_pbuffer is not supported, references to glXQueryGLXPbufferSGIX
6225bd8deadSopenharmony_ci    and GLXPbuffer in this document should be ignored.
6235bd8deadSopenharmony_ci
6245bd8deadSopenharmony_ci
6255bd8deadSopenharmony_ciErrors
6265bd8deadSopenharmony_ci
6275bd8deadSopenharmony_ci    One new GLX error is introduced: 
6285bd8deadSopenharmony_ci
6295bd8deadSopenharmony_ci	GLXBadFBConfigSGIX
6305bd8deadSopenharmony_ci
6315bd8deadSopenharmony_ciNew State
6325bd8deadSopenharmony_ci
6335bd8deadSopenharmony_ci    None
6345bd8deadSopenharmony_ci
6355bd8deadSopenharmony_ciNew Implementation Dependent State
6365bd8deadSopenharmony_ci
6375bd8deadSopenharmony_ci    None
638