home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!usc!cs.utexas.edu!sun-barr!ames!sgi!fido!spud.asd.sgi.com!segal
- From: segal@spud.asd.sgi.com (Mark Segal)
- Newsgroups: comp.graphics.opengl
- Subject: Re: conformance question
- Date: 16 Dec 1992 00:16:16 GMT
- Organization: Silicon Graphics, Inc.
- Lines: 56
- Distribution: world
- Message-ID: <1glsggINNh1c@fido.asd.sgi.com>
- References: <1992Dec15.074053.1837@dsd.es.com> <1992Dec15.080609.26325@microunity.com> <1992Dec15.204500.14333@dsd.es.com>
- NNTP-Posting-Host: spud.asd.sgi.com
-
- In article <1992Dec15.204500.14333@dsd.es.com>, rthomson@mesa.dsd.es.com (Rich Thomson) writes:
- |> In article <1992Dec15.080609.26325@microunity.com>
- |> jsw@microunity.com (Jeff Weinstein) writes:
- |> > From the GLX extension spec, version 1.0:
- |> >
- |> > A conformant GLX extension must provide at least one RGB visual
- |> > with a spencil buffer, a depth buffer, and an accumulation buffer
- |> > with color components of non-zero size. A conformant extension
- |> > must also provide at least one color index type visual with depth
- |> > and stencil buffers. Other visuals with fewer associated buffers
- |> > may also be made available.
- |> >
- |> >So the answer to your question is no, at least in the context of GLX.
- |>
- |> How does this mesh with the following:
- |>
- |> ``All color buffers must have the same number of bitplanes,
- |> although an implementation or context may choose not to provide
- |> right buffers, back buffers, or auxiliary buffers at all.
- |> Further, an implementation or context may not provide depth,
- |> stencil, or accumulation buffers.''
- |> (OpenGL specification V1.0, pg. 88)
- |>
- |> Further, it seems that the presence of double buffering, depth
- |> buffering, stencil buffering and accumulation buffering isn't strictly
- |> required of all OpenGL implementations since the glGet() function is
- |> used to query the presence of these.
- |>
- |> I'm still curious how this is different from subsetting.
-
- OK, I'll give it a try. The OpenGL specification describes how OpenGL
- is supposed to act in a SINGLE visual, not over all visuals (see page 5
- of the spec). We wanted to allow visuals without z-buffers, for instance,
- because, for instance, there may be some machines that can't provide both
- a z-buffer and a whole bunch of framebuffer bits for other stuff. Thus,
- the specification needs to say how things operate in case certain buffers
- aren't present.
-
- The GLX specification describes how OpenGL integrates into X, and thus
- describes facts about visuals and how they must relate to OpenGL (there
- are analogous requirements for Windows/NT). One of the requirements
- of the integration is that certain visuals with certain features must
- be provided, exactly because we want to be sure that minimum functionality
- is always available in at least one visual. As long as a programmer uses
- only that functionality, there can't be any problem about 'subsetting.'
-
- We cannot take the union of all possible framebuffer configurations and
- require that these be present across all platforms; this would be both
- impractical and undesirable. So we came to a compromise. It's true:
- some machines may provide visuals with, say, 24 bits of stencil while
- others may provide only 1 (you can determine how many bits you have by
- making the appropriate glGet() call). But it's never the case that some
- feature or some arbitrary group of features can be missing from an
- implementation (given the correct visual, anyway).
-
- Mark
-