Name EXT_visual_rating Name Strings GLX_EXT_visual_rating Version $Date: 1996/03/12 03:12:47 $ $Revision: 1.7 $ Number 44 Dependencies None Overview This extension allows servers to identify a particular GLX visual as undesirable. A new visual attribute is introduced, providing a way for servers to specify caveats (e.g., slow) for a visual. The attribute may be queried using glXGetConfig, and can therefore be used by application-specific visual selection routines. The new attribute is also used by glXChooseVisual to discriminate against visuals with caveats. This extension allows servers to export visuals with improved features or image quality, but lower performance or greater system burden, without having to have these visuals selected preferentially. It is intended to insure that most applications get the "right" visual, not that all applications do. Issues It is possible for an application to unknowingly select a visual with caveats, if it is unaware of the GLX_VISUAL_CAVEAT_EXT attribute. Also, if the server supports this extension but the client library does not, then glXChooseVisual may select a visual with caveats. The latter problem can be rectified if/when this extension is incorporated into GLX 1.3, since the server knows the clients version and can avoid exporting visuals with caveats to client libraries that don't know how to handle them. (Note that the server does not know which GLX extensions a client supports.) Reasoning This extension is designed to be automatic -- applications don't have to use it explicitly. glXChooseVisual always prefers visuals with no caveats. Because visuals that don't have a GLX_VISUAL_CAVEAT_EXT attribute are treated as good visuals, applications need not concern themselves with whether a server supports EXT_visual_rating or not. This allows operation to be automatic. The new visual attribute is defined as an enumerated type so additional caveats, such as GLX_RESOURCE_HOG_EXT, can be introduced in the future. New Procedures and Functions None New Tokens Accepted by the parameter of glXGetConfig and by the parameter of glXChooseVisual: GLX_VISUAL_CAVEAT_EXT 0x20 Returned by the parameter of glXGetConfig (when is set to GLX_VISUAL_CAVEAT_EXT) and accepted by the parameter of glXChooseVIsual (following the GLX_VISUAL_CAVEAT_EXT token): GLX_NONE_EXT 0x8000 GLX_SLOW_VISUAL_EXT 0x8001 GLX_NON_CONFORMANT_VISUAL_EXT 0x800D Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) None Additions to Chapter 3 of the 1.0 Specification (Rasterization) None Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and the Frame Buffer) None Additions to Chapter 5 of the 1.0 Specification (Special Functions) None Additions to Chapter 6 of the 1.0 Specification (State and State Requests) None Additions to the GLX Specification When called with set to GLX_VISUAL_CAVEAT_EXT, glXGetConfig returns in parameter one of three values: GLX_NONE_EXT, GLX_SLOW_VISUAL_EXT or GLX_NON_CONFORMANT_VISUAL_EXT. The returned value is known as the rating of the visual. If the GLX_VISUAL_CAVEAT_EXT attribute is not specified in the parameter of glXChooseVisual then preference is given to visuals with no caveats (i.e., visuals with this attribute set to GLX_NONE_EXT). If the GLX_VISUAL_CAVEAT_EXT attribute is specified, then glXChooseVisual will match the specified value exactly. For example, if the value is specified as GLX_NONE_EXT, then only visuals with no caveats will be considered. If the server doesn't support EXT_visual_rating, GLX client implementations treat all visuals as if they had the GLX_VISUAL_CAVEAT_EXT attribute set to GLX_NONE_EXT. Individual visuals that do not have this attribute set are also assumed to have no caveats. A client that supports EXT_visual_rating will insure that the string GLX_EXT_visual_rating is returned by glXQueryExtensionsString, regardless of whether the server supports EXT_visual_rating. GLX Protocol A single additional property type/property value pair may be included in the property list of each visual returned by glXGetVisualConfigs. This property type/property value pair is encoded as 4 ENUM property type 0x20 GLX_VISUAL_CAVEAT_EXT 4 ENUM property value 0x8000 GLX_NONE_EXT 0x8001 GLX_SLOW_VISUAL_EXT 0x800D GLX_NON_CONFORMANT_VISUAL_EXT If this property type/property value pair is not specified for a visual, then the value is assumed to be GLX_NONE_EXT. Errors None New State No GL state New Implementation Dependent State None