e48fa64c7a53e1799e511b45a500da9771756560
[clinton/guile-figl.git] / upstream-man-pages / man2 / glXChooseFBConfig.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id="glXChooseFBConfig">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glXChooseFBConfig</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glXChooseFBConfig</refname>
17 <refpurpose>return a list of GLX frame buffer configurations that match the specified attributes</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>GLXFBConfig * <function>glXChooseFBConfig</function></funcdef>
23 <paramdef>Display * <parameter>dpy</parameter></paramdef>
24 <paramdef>int <parameter>screen</parameter></paramdef>
25 <paramdef>const int * <parameter>attrib_list</parameter></paramdef>
26 <paramdef>int * <parameter>nelements</parameter></paramdef>
27 </funcprototype>
28 </funcsynopsis>
29 </refsynopsisdiv>
30 <!-- eqn: ignoring delim $$ -->
31 <refsect1 id="parameters"><title>Parameters</title>
32 <variablelist>
33 <varlistentry>
34 <term><parameter>dpy</parameter></term>
35 <listitem>
36 <para>
37 Specifies the connection to the X server.
38 </para>
39 </listitem>
40 </varlistentry>
41 <varlistentry>
42 <term><parameter>screen</parameter></term>
43 <listitem>
44 <para>
45 Specifies the screen number.
46 </para>
47 </listitem>
48 </varlistentry>
49 <varlistentry>
50 <term><parameter>attrib_list</parameter></term>
51 <listitem>
52 <para>
53 Specifies a list of attribute/value pairs.
54 The last attribute must be <constant>None</constant>.
55 </para>
56 </listitem>
57 </varlistentry>
58 <varlistentry>
59 <term><parameter>nelements</parameter></term>
60 <listitem>
61 <para>
62 Returns the number of elements in the list returned by <function>glXChooseFBConfig</function>.
63 </para>
64 </listitem>
65 </varlistentry>
66 </variablelist>
67 </refsect1>
68 <refsect1 id="description"><title>Description</title>
69 <para>
70 <function>glXChooseFBConfig</function> returns GLX frame buffer configurations that match the attributes
71 specified in <parameter>attrib_list</parameter>, or <constant>NULL</constant> if no matches are found.
72 If <parameter>attrib_list</parameter> is <constant>NULL</constant>, then <function>glXChooseFBConfig</function> returns an array of GLX
73 frame buffer configurations that are available on the specified screen.
74 If an error occurs, no frame buffer configurations exist on the
75 specified screen, or if no frame buffer configurations match the
76 specified attributes, then <constant>NULL</constant> is returned.
77 Use <function>XFree</function> to free the memory returned by
78 <function>glXChooseFBConfig</function>.
79 </para>
80 <para>
81 All attributes in <parameter>attrib_list</parameter>, including boolean attributes, are
82 immediately followed by the corresponding desired value. The list is
83 terminated with <constant>None</constant>. If an attribute is not specified in <parameter>attrib_list</parameter>,
84 then the default value (see below) is used (and the attribute is said to be
85 specified implicitly). For example, if <constant>GLX_STEREO</constant> is not specified, then
86 it is assumed to be <constant>False</constant>. For some attributes, the default is
87 <constant>GLX_DONT_CARE</constant>, meaning that any value is OK for this attribute, so the
88 attribute will not be checked.
89 </para>
90 <para>
91 Attributes are matched in an attribute-specific manner.
92 Some of the attributes, such as <constant>GLX_LEVEL</constant>, must match the specified
93 value exactly; others, such as, <constant>GLX_RED_SIZE</constant> must meet or exceed the
94 specified minimum values. If more than one GLX frame buffer configuration is found,
95 then a list of configurations, sorted
96 according to the ``best'' match criteria, is returned. The match
97 criteria for each attribute and the exact sorting order is
98 defined below.
99 </para>
100 <para>
101 The interpretations of the various GLX visual attributes are as follows:
102 </para>
103 <variablelist>
104 <varlistentry>
105 <term><constant>GLX_FBCONFIG_ID</constant></term>
106 <listitem>
107 <para>
108 </para>
109 <para>
110 Must be followed by a valid XID that indicates the desired GLX frame
111 buffer configuration. When a <constant>GLX_FBCONFIG_ID</constant> is specified, all
112 attributes are ignored. The default value is <constant>GLX_DONT_CARE</constant>.
113 </para>
114 </listitem>
115 </varlistentry>
116 <varlistentry>
117 <term><constant>GLX_BUFFER_SIZE</constant></term>
118 <listitem>
119 <para>
120 </para>
121 <para>
122 Must be followed by a nonnegative integer that indicates the desired
123 color index buffer size.
124 The smallest index buffer of at least the specified size is preferred.
125 This attribute is ignored if <constant>GLX_COLOR_INDEX_BIT</constant> is not set in
126 <constant>GLX_RENDER_TYPE</constant>. The default value is 0.
127 </para>
128 </listitem>
129 </varlistentry>
130 <varlistentry>
131 <term><constant>GLX_LEVEL</constant></term>
132 <listitem>
133 <para>
134 </para>
135 <para>
136 Must be followed by an integer buffer-level specification.
137 This specification is honored exactly.
138 Buffer level 0 corresponds to the default frame buffer of the display.
139 Buffer level 1 is the first overlay frame buffer, level two the second
140 overlay frame buffer, and so on.
141 Negative buffer levels correspond to underlay frame buffers.
142 The default value is 0.
143 </para>
144 </listitem>
145 </varlistentry>
146 <varlistentry>
147 <term><constant>GLX_DOUBLEBUFFER</constant></term>
148 <listitem>
149 <para>
150 </para>
151 <para>
152 Must be followed by <constant>True</constant> or <constant>False</constant>. If
153 <constant>True</constant> is specified, then
154 only double-buffered frame buffer configurations are considered;
155 if
156 <constant>False</constant> is specified, then
157 only single-buffered frame buffer configurations are considered.
158 The default value is <constant>GLX_DONT_CARE</constant>.
159 </para>
160 </listitem>
161 </varlistentry>
162 <varlistentry>
163 <term><constant>GLX_STEREO</constant></term>
164 <listitem>
165 <para>
166 </para>
167 <para>
168 Must be followed by <constant>True</constant> or <constant>False</constant>. If
169 <constant>True</constant> is specified, then
170 only stereo frame buffer configurations are considered;
171 if
172 <constant>False</constant> is specified, then
173 only monoscopic frame buffer configurations are considered.
174 The default value is <constant>False</constant>.
175 </para>
176 </listitem>
177 </varlistentry>
178 <varlistentry>
179 <term><constant>GLX_AUX_BUFFERS</constant></term>
180 <listitem>
181 <para>
182 </para>
183 <para>
184 Must be followed by a nonnegative integer that indicates the desired
185 number of auxiliary buffers.
186 Configurations with the
187 smallest number of auxiliary buffers that meet or exceed
188 the specified number are preferred.
189 The default value is 0.
190 </para>
191 </listitem>
192 </varlistentry>
193 <varlistentry>
194 <term><constant>GLX_RED_SIZE</constant>, <constant>GLX_GREEN_SIZE</constant>, <constant>GLX_BLUE_SIZE</constant>, <constant>GLX_ALPHA_SIZE</constant></term>
195 <listitem>
196 <para>
197 </para>
198 <para>
199 Each attribute, if present, must be followed by a nonnegative minimum size
200 specification or <constant>GLX_DONT_CARE</constant>.
201 The largest available total RGBA color buffer size (sum of <constant>GLX_RED_SIZE</constant>,
202 <constant>GLX_GREEN_SIZE</constant>, <constant>GLX_BLUE_SIZE</constant>, and <constant>GLX_ALPHA_SIZE</constant>)
203 of at least the minimum size specified for each color component is preferred.
204 If the requested number of bits for a color component is 0 or
205 <constant>GLX_DONT_CARE</constant>, it is not considered. The default value for each color
206 component is 0.
207 </para>
208 </listitem>
209 </varlistentry>
210 <varlistentry>
211 <term><constant>GLX_DEPTH_SIZE</constant></term>
212 <listitem>
213 <para>
214 </para>
215 <para>
216 Must be followed by a nonnegative minimum size specification.
217 If this value is zero,
218 frame buffer configurations with no depth buffer are preferred.
219 Otherwise, the largest available depth buffer of at least the minimum size
220 is preferred.
221 The default value is 0.
222 </para>
223 </listitem>
224 </varlistentry>
225 <varlistentry>
226 <term><constant>GLX_STENCIL_SIZE</constant></term>
227 <listitem>
228 <para>
229 </para>
230 <para>
231 Must be followed by a nonnegative integer that indicates the desired
232 number of stencil bitplanes.
233 The smallest stencil buffer of at least the specified size is preferred.
234 If the desired value is zero,
235 frame buffer configurations with no stencil buffer are preferred.
236 The default value is 0.
237 </para>
238 </listitem>
239 </varlistentry>
240 <varlistentry>
241 <term><constant>GLX_ACCUM_RED_SIZE</constant></term>
242 <listitem>
243 <para>
244 </para>
245 <para>
246 Must be followed by a nonnegative minimum size specification.
247 If this value is zero,
248 frame buffer configurations with no red accumulation buffer are preferred.
249 Otherwise, the largest possible red accumulation buffer
250 of at least the minimum size is preferred.
251 The default value is 0.
252 </para>
253 </listitem>
254 </varlistentry>
255 <varlistentry>
256 <term><constant>GLX_ACCUM_GREEN_SIZE</constant></term>
257 <listitem>
258 <para>
259 </para>
260 <para>
261 Must be followed by a nonnegative minimum size specification.
262 If this value is zero,
263 frame buffer configurations with no green accumulation buffer are preferred.
264 Otherwise, the largest possible green accumulation buffer
265 of at least the minimum size is preferred.
266 The default value is 0.
267 </para>
268 </listitem>
269 </varlistentry>
270 <varlistentry>
271 <term><constant>GLX_ACCUM_BLUE_SIZE</constant></term>
272 <listitem>
273 <para>
274 </para>
275 <para>
276 Must be followed by a nonnegative minimum size specification.
277 If this value is zero,
278 frame buffer configurations with no blue accumulation buffer are preferred.
279 Otherwise, the largest possible blue accumulation buffer
280 of at least the minimum size is preferred.
281 The default value is 0.
282 </para>
283 </listitem>
284 </varlistentry>
285 <varlistentry>
286 <term><constant>GLX_ACCUM_ALPHA_SIZE</constant></term>
287 <listitem>
288 <para>
289 </para>
290 <para>
291 Must be followed by a nonnegative minimum size specification.
292 If this value is zero,
293 frame buffer configurations with no alpha accumulation buffer are preferred.
294 Otherwise, the largest possible alpha accumulation buffer
295 of at least the minimum size is preferred.
296 The default value is 0.
297 </para>
298 </listitem>
299 </varlistentry>
300 <varlistentry>
301 <term><constant>GLX_RENDER_TYPE</constant></term>
302 <listitem>
303 <para>
304 </para>
305 <para>
306 Must be followed by a mask indicating which OpenGL rendering modes
307 the frame buffer configuration must support.
308 Valid bits are <constant>GLX_RGBA_BIT</constant> and
309 <constant>GLX_COLOR_INDEX_BIT</constant>. If the mask is
310 set to <constant>GLX_RGBA_BIT</constant> | <constant>GLX_COLOR_INDEX_BIT</constant>,
311 then only frame buffer configurations that can be bound to both
312 RGBA contexts and color index contexts will be considered.
313 The default value is <constant>GLX_RGBA_BIT</constant>.
314 </para>
315 </listitem>
316 </varlistentry>
317 <varlistentry>
318 <term><constant>GLX_DRAWABLE_TYPE</constant></term>
319 <listitem>
320 <para>
321 </para>
322 <para>
323 Must be followed by a mask indicating which GLX drawable types
324 the frame buffer configuration must support. Valid bits are
325 <constant>GLX_WINDOW_BIT</constant>,
326 <constant>GLX_PIXMAP_BIT</constant>, and <constant>GLX_PBUFFER_BIT</constant>.
327 For example, if mask is set to
328 <constant>GLX_WINDOW_BIT</constant> | <constant>GLX_PIXMAP_BIT</constant>,
329 only frame buffer configurations that support both windows and GLX pixmaps
330 will be considered.
331 The default value is <constant>GLX_WINDOW_BIT</constant>.
332 </para>
333 </listitem>
334 </varlistentry>
335 <varlistentry>
336 <term><constant>GLX_X_RENDERABLE</constant></term>
337 <listitem>
338 <para>
339 </para>
340 <para>
341 Must be followed by <constant>True</constant> or <constant>False</constant>.
342 If <constant>True</constant> is specified, then only frame buffer configurations that
343 have associated X visuals (and can be used to render to Windows and/or
344 GLX pixmaps) will be considered.
345 The default value is <constant>GLX_DONT_CARE</constant>.
346 </para>
347 </listitem>
348 </varlistentry>
349 <varlistentry>
350 <term><constant>GLX_X_VISUAL_TYPE</constant></term>
351 <listitem>
352 <para>
353 </para>
354 <para>
355 Must be followed by one of
356 <constant>GLX_TRUE_COLOR</constant>,
357 <constant>GLX_DIRECT_COLOR</constant>,
358 <constant>GLX_PSEUDO_COLOR</constant>,
359 <constant>GLX_STATIC_COLOR</constant>,
360 <constant>GLX_GRAY_SCALE</constant>, or
361 <constant>GLX_STATIC_GRAY</constant>, indicating the desired X visual type.
362 Not all frame buffer configurations have an associated X visual. If
363 <constant>GLX_DRAWABLE_TYPE</constant> is specified in <parameter>attrib_list</parameter> and the
364 mask that follows does not have <constant>GLX_WINDOW_BIT</constant> set,
365 then this value is ignored. It is also ignored if
366 <constant>GLX_X_RENDERABLE</constant> is specified as <constant>False</constant>.
367 RGBA rendering may be supported for visuals of type
368 <constant>GLX_TRUE_COLOR</constant>,
369 <constant>GLX_DIRECT_COLOR</constant>,
370 <constant>GLX_PSEUDO_COLOR</constant>,
371 or <constant>GLX_STATIC_COLOR</constant>,
372 but color index rendering is only supported for visuals of type
373 <constant>GLX_PSEUDO_COLOR</constant> or <constant>GLX_STATIC_COLOR</constant>
374 (i.e., single-channel visuals).
375 The tokens <constant>GLX_GRAY_SCALE</constant> and <constant>GLX_STATIC_GRAY</constant> will
376 not match current OpenGL enabled visuals, but are included for future use.
377 The default value for <constant>GLX_X_VISUAL_TYPE</constant> is <constant>GLX_DONT_CARE</constant>.
378 </para>
379 </listitem>
380 </varlistentry>
381 <varlistentry>
382 <term><constant>GLX_CONFIG_CAVEAT</constant></term>
383 <listitem>
384 <para>
385 </para>
386 <para>
387 Must be followed by one of
388 <constant>GLX_NONE</constant>,
389 <constant>GLX_SLOW_CONFIG</constant>,
390 <constant>GLX_NON_CONFORMANT_CONFIG</constant>.
391 If <constant>GLX_NONE</constant> is specified, then only frame buffer configurations with
392 no caveats will be considered; if <constant>GLX_SLOW_CONFIG</constant>
393 is specified, then only slow frame buffer configurations will be considered; if
394 <constant>GLX_NON_CONFORMANT_CONFIG</constant> is specified, then only
395 nonconformant frame buffer configurations will be considered.
396 The default value is <constant>GLX_DONT_CARE</constant>.
397 </para>
398 </listitem>
399 </varlistentry>
400 <varlistentry>
401 <term><constant>GLX_TRANSPARENT_TYPE</constant></term>
402 <listitem>
403 <para>
404 </para>
405 <para>
406 Must be followed by one of
407 <constant>GLX_NONE</constant>,
408 <constant>GLX_TRANSPARENT_RGB</constant>,
409 <constant>GLX_TRANSPARENT_INDEX</constant>.
410 If <constant>GLX_NONE</constant> is specified, then only opaque
411 frame buffer configurations will be considered; if <constant>GLX_TRANSPARENT_RGB</constant>
412 is specified, then only transparent
413 frame buffer configurations that support RGBA rendering will be considered;
414 if <constant>GLX_TRANSPARENT_INDEX</constant> is specified,
415 then only transparent frame buffer configurations that support color
416 index rendering will be considered.
417 The default value is <constant>GLX_NONE</constant>.
418 </para>
419 </listitem>
420 </varlistentry>
421 <varlistentry>
422 <term><constant>GLX_TRANSPARENT_INDEX_VALUE</constant></term>
423 <listitem>
424 <para>
425 </para>
426 <para>
427 Must be followed by an integer value indicating the transparent
428 index value; the value must be between 0 and the maximum
429 frame buffer value for indices.
430 Only frame buffer configurations that use the
431 specified transparent index value will be considered.
432 The default value is <constant>GLX_DONT_CARE</constant>.
433 This attribute is ignored unless <constant>GLX_TRANSPARENT_TYPE</constant> is
434 included in <parameter>attrib_list</parameter> and specified as <constant>GLX_TRANSPARENT_INDEX</constant>.
435 </para>
436 </listitem>
437 </varlistentry>
438 <varlistentry>
439 <term><constant>GLX_TRANSPARENT_RED_VALUE</constant></term>
440 <listitem>
441 <para>
442 </para>
443 <para>
444 Must be followed by an integer value indicating the transparent
445 red value; the value must be between 0 and the maximum
446 frame buffer value for red.
447 Only frame buffer configurations that use the
448 specified transparent red value will be considered.
449 The default value is <constant>GLX_DONT_CARE</constant>.
450 This attribute is
451 ignored unless <constant>GLX_TRANSPARENT_TYPE</constant> is included in
452 <parameter>attrib_list</parameter> and specified as <constant>GLX_TRANSPARENT_RGB</constant>.
453 </para>
454 </listitem>
455 </varlistentry>
456 <varlistentry>
457 <term><constant>GLX_TRANSPARENT_GREEN_VALUE</constant></term>
458 <listitem>
459 <para>
460 </para>
461 <para>
462 Must be followed by an integer value indicating the transparent
463 green value; the value must be between 0 and the maximum
464 frame buffer value for green.
465 Only frame buffer configurations that use the
466 specified transparent green value will be considered.
467 The default value is <constant>GLX_DONT_CARE</constant>.
468 This attribute is
469 ignored unless <constant>GLX_TRANSPARENT_TYPE</constant> is included in
470 <parameter>attrib_list</parameter> and specified as <constant>GLX_TRANSPARENT_RGB</constant>.
471 </para>
472 </listitem>
473 </varlistentry>
474 <varlistentry>
475 <term><constant>GLX_TRANSPARENT_BLUE_VALUE</constant></term>
476 <listitem>
477 <para>
478 </para>
479 <para>
480 Must be followed by an integer value indicating the transparent
481 blue value; the value must be between 0 and the maximum
482 frame buffer value for blue.
483 Only frame buffer configurations that use the
484 specified transparent blue value will be considered.
485 The default value is <constant>GLX_DONT_CARE</constant>.
486 This attribute is ignored unless <constant>GLX_TRANSPARENT_TYPE</constant> is included in
487 <parameter>attrib_list</parameter> and specified as <constant>GLX_TRANSPARENT_RGB</constant>.
488 </para>
489 </listitem>
490 </varlistentry>
491 <varlistentry>
492 <term><constant>GLX_TRANSPARENT_ALPHA_VALUE</constant></term>
493 <listitem>
494 <para>
495 </para>
496 <para>
497 Must be followed by an integer value indicating the transparent
498 alpha value; the value must be between 0 and the maximum
499 frame buffer value for alpha.
500 Only frame buffer configurations that use the
501 specified transparent alpha value will be considered.
502 The default value is <constant>GLX_DONT_CARE</constant>.
503 </para>
504 </listitem>
505 </varlistentry>
506 </variablelist>
507 <para>
508 When more than one GLX frame buffer configuration matches the specified attributes,
509 a list of matching configurations is returned. The list is sorted
510 according to the following precedence rules, which are applied in ascending
511 order (i.e., configurations
512 that are considered equal by a lower numbered rule are sorted by the higher
513 numbered rule):
514 </para>
515 <variablelist>
516 <varlistentry>
517 <term>1.</term>
518 <listitem>
519 <para>
520 By <constant>GLX_CONFIG_CAVEAT</constant> where the precedence is <constant>GLX_NONE</constant>,
521 <constant>GLX_SLOW_CONFIG</constant>, and <constant>GLX_NON_CONFORMANT_CONFIG</constant>.
522 </para>
523 </listitem>
524 </varlistentry>
525 <varlistentry>
526 <term>2.</term>
527 <listitem>
528 <para>
529 Larger total number of RGBA color components
530 (<constant>GLX_RED_SIZE</constant>, <constant>GLX_GREEN_SIZE</constant>, <constant>GLX_BLUE_SIZE</constant>,
531 plus <constant>GLX_ALPHA_SIZE</constant>)
532 that have higher number of bits. If the requested number of bits in
533 <parameter>attrib_list</parameter> is zero or <constant>GLX_DONT_CARE</constant> for a particular color
534 component, then the number of bits for that component is not considered.
535 </para>
536 </listitem>
537 </varlistentry>
538 <varlistentry>
539 <term>3.</term>
540 <listitem>
541 <para>
542 Smaller <constant>GLX_BUFFER_SIZE</constant>.
543 </para>
544 </listitem>
545 </varlistentry>
546 <varlistentry>
547 <term>4.</term>
548 <listitem>
549 <para>
550 Single buffered configuration (<constant>GLX_DOUBLEBUFFER</constant> being
551 <constant>False</constant> precedes a double buffered one.
552 </para>
553 </listitem>
554 </varlistentry>
555 <varlistentry>
556 <term>5.</term>
557 <listitem>
558 <para>
559 Smaller <constant>GLX_AUX_BUFFERS</constant>.
560 </para>
561 </listitem>
562 </varlistentry>
563 <varlistentry>
564 <term>6.</term>
565 <listitem>
566 <para>
567 Larger <constant>GLX_DEPTH_SIZE</constant>.
568 </para>
569 </listitem>
570 </varlistentry>
571 <varlistentry>
572 <term>7.</term>
573 <listitem>
574 <para>
575 Smaller <constant>GLX_STENCIL_SIZE</constant>.
576 </para>
577 </listitem>
578 </varlistentry>
579 <varlistentry>
580 <term>8.</term>
581 <listitem>
582 <para>
583 Larger total number of accumulation buffer color components
584 (<constant>GLX_ACCUM_RED_SIZE</constant>, <constant>GLX_ACCUM_GREEN_SIZE</constant>,
585 <constant>GLX_ACCUM_BLUE_SIZE</constant>, plus <constant>GLX_ACCUM_ALPHA_SIZE</constant>) that have
586 higher number of bits. If the requested number of bits in <parameter>attrib_list</parameter> is
587 zero or <constant>GLX_DONT_CARE</constant> for a particular color component, then the
588 number of bits for that component is not considered.
589 </para>
590 </listitem>
591 </varlistentry>
592 <varlistentry>
593 <term>9.</term>
594 <listitem>
595 <para>
596 By <constant>GLX_X_VISUAL_TYPE</constant> where the precedence order is
597 <constant>GLX_TRUE_COLOR</constant>, <constant>GLX_DIRECT_COLOR</constant>, <constant>GLX_PSEUDO_COLOR</constant>,
598 <constant>GLX_STATIC_COLOR</constant>, <constant>GLX_GRAY_SCALE</constant>, <constant>GLX_STATIC_GRAY</constant>.
599 </para>
600 </listitem>
601 </varlistentry>
602 </variablelist>
603 </refsect1>
604 <refsect1 id="examples"><title>Examples</title>
605 <para>
606 </para>
607 <variablelist>
608 <varlistentry>
609 <term><parameter>attrib_list</parameter> =</term>
610 <listitem>
611 <para>
612 {<constant>GLX_RENDER_TYPE</constant>, <constant>GLX_RGBA_BIT</constant>,
613 <constant>GLX_RED_SIZE</constant>, 4,
614 <constant>GLX_GREEN_SIZE</constant>, 4,
615 <constant>GLX_BLUE_SIZE</constant>, 4,
616 <constant>None</constant>};
617 </para>
618 </listitem>
619 </varlistentry>
620 </variablelist>
621 <para>
622 Specifies a frame buffer configuration that supports RGBA rendering
623 and exists in the normal frame buffer,
624 not an overlay or underlay buffer.
625 The returned visual supports at least four bits each of red,
626 green, and blue,
627 and possibly no bits of alpha.
628 It does not support stereo display.
629 It may or may not have one or more auxiliary color buffers,
630 a back buffer,
631 a depth buffer,
632 a stencil buffer,
633 or an accumulation buffer.
634 </para>
635 </refsect1>
636 <refsect1 id="notes"><title>Notes</title>
637 <para>
638 <function>glXChooseFBConfig</function> is available only if the GLX version is 1.3 or greater.
639 </para>
640 <para>
641 If the GLX version is 1.1 or 1.0, the GL version must be 1.0.
642 If the GLX version is 1.2, then the GL version must be 1.1.
643 If the GLX version is 1.3, then the GL version must be 1.2.
644 </para>
645 <para>
646 <citerefentry><refentrytitle>glXGetFBConfigs</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glXGetFBConfigAttrib</refentrytitle></citerefentry> can
647 be used to implement selection algorithms other than the generic
648 one implemented by <function>glXChooseFBConfig</function>. Call <function>glXChooseFBConfig</function> to retrieve all the frame buffer configurations
649 on a particular screen or, alternatively, all the frame buffer configurations with
650 a particular set of attributes. Next, call <citerefentry><refentrytitle>glXGetFBConfigAttrib</refentrytitle></citerefentry>
651 to retrieve additional attributes for the frame buffer configurations and then
652 select between them.
653 </para>
654 <para>
655 GLX implementations are strongly discouraged,
656 but not proscribed,
657 from changing the selection algorithm used by <function>glXChooseFBConfig</function>.
658 Therefore, selections may change from release to release
659 of the client-side library.
660 </para>
661 </refsect1>
662 <refsect1 id="errors"><title>Errors</title>
663 <para>
664 <constant>NULL</constant> is returned if an undefined GLX attribute is
665 encountered in <parameter>attrib_list</parameter>, if <parameter>screen</parameter> is invalid, or if <parameter>dpy</parameter> does
666 not support the GLX extension.
667 </para>
668 </refsect1>
669 <refsect1 id="seealso"><title>See Also</title>
670 <para>
671 <citerefentry><refentrytitle>glXGetFBConfigAttrib</refentrytitle></citerefentry>,
672 <citerefentry><refentrytitle>glXGetFBConfigs</refentrytitle></citerefentry>,
673 <citerefentry><refentrytitle>glXGetVisualFromFBConfig</refentrytitle></citerefentry>
674 </para>
675 </refsect1>
676 <refsect1 id="Copyright"><title>Copyright</title>
677 <para>
678 Copyright <trademark class="copyright"></trademark> 1991-2006
679 Silicon Graphics, Inc. This document is licensed under the SGI
680 Free Software B License. For details, see
681 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
682 </para>
683 </refsect1>
684 </refentry>