XXX - Incomplete

Name

    WIN_scene_markerXXX

Name Strings

    GL_WIN_scene_markerXXX

Number

    ???

Proposal:
Scene Delimiting Extensions for OpenGL

Dan McCabe
Bob Seitsinger
S3 Incorporated
Otto Berkes
Microsoft, Inc.


June 23, 1997


Abstract
A generation of hardware is appearing that uses embedded memory for its pixel 
and depth buffers.

However, these buffers do not cover the entire screen and therefore require 
multiple passes of the primitives in a scene in order to fully render them to 
the entire screen. This proposal extends the API of OpenGL to delimit scenes 
by defining their boundaries, enabling the device driver to capture the scene's 
data base and take multiple passes over the scene to present it to the 
rasterizer. Also included in this proposal is a query mechanism to determine 
whether scene delimiting must be used by the application.

NAME
glBeginScene, glEndScene - delimit a scene

C SPECIFICATION
void glBeginScene ( void void )
void glEndScene ( void void )

DESCRIPTION
glBeginScene and glEndScene delimit the primitives that are associated with 
a single scene.

Any changes to GL state which affect primitives drawn between glBeginScene 
and glEndScene must also be made between glBeginScene and glEndScene. The 
failure to do so may result in those state changes not being observable.

EXAMPLES

NOTES
glBeginScene and glEndScene only need to be used if glGet with parameter 
GL_SCENE_REQUIRED returns GL_TRUE.

ERRORS
GL_INVALID_OPERATION is generated if glEndScene is called before the 
corresponding glBeginScene is called.

ASSOCIATED GETS
glGet with argument GL_SCENE_REQUIRED.

SEE ALSO
glNewList, glEndList, glCallList, glCallLists, glDeleteLists, glGenLists





NAME
glGetBooleanv - extension to state

C SPECIFICATION
void glGetBooleanv (	GLenum pname,
	GLboolean *params )

DESCRIPTION
GL_SCENE_REQUIRED
params returns a single Boolean value indicating whether scene delimiting is required. 

See glBeginScene and glEndScene.
