1b8e80941SmrgName
2b8e80941Smrg
3b8e80941Smrg    MESA_agp_offset
4b8e80941Smrg
5b8e80941SmrgName Strings
6b8e80941Smrg
7b8e80941Smrg    GLX_MESA_agp_offset
8b8e80941Smrg
9b8e80941SmrgContact
10b8e80941Smrg
11b8e80941Smrg    Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
12b8e80941Smrg    Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
13b8e80941Smrg
14b8e80941SmrgStatus
15b8e80941Smrg
16b8e80941Smrg    Obsolete. Effectively superseded by ARB_vertex_buffer_object.
17b8e80941Smrg
18b8e80941SmrgVersion
19b8e80941Smrg
20b8e80941Smrg    1.0
21b8e80941Smrg
22b8e80941SmrgNumber
23b8e80941Smrg
24b8e80941Smrg    TBD
25b8e80941Smrg
26b8e80941SmrgDependencies
27b8e80941Smrg
28b8e80941Smrg    OpenGL 1.0 or later is required
29b8e80941Smrg    GLX_NV_vertex_array_range is required.
30b8e80941Smrg    This extensions is written against the OpenGL 1.4 Specification.
31b8e80941Smrg
32b8e80941SmrgOverview
33b8e80941Smrg
34b8e80941Smrg    This extensions provides a way to convert pointers in an AGP memory
35b8e80941Smrg    region into byte offsets into the AGP aperture.
36b8e80941Smrg    Note, this extension depends on GLX_NV_vertex_array_range, for which
37b8e80941Smrg    no real specification exists.  See GL_NV_vertex_array_range for more
38b8e80941Smrg    information.
39b8e80941Smrg
40b8e80941SmrgIP Status
41b8e80941Smrg
42b8e80941Smrg    None
43b8e80941Smrg
44b8e80941SmrgIssues
45b8e80941Smrg
46b8e80941Smrg    None
47b8e80941Smrg
48b8e80941SmrgNew Procedures and Functions
49b8e80941Smrg
50b8e80941Smrg    unsigned int glXGetAGPOffsetMESA( const void *pointer )
51b8e80941Smrg
52b8e80941SmrgNew Tokens
53b8e80941Smrg
54b8e80941Smrg    None
55b8e80941Smrg
56b8e80941SmrgAdditions to the OpenGL 1.4 Specification
57b8e80941Smrg
58b8e80941Smrg    None
59b8e80941Smrg
60b8e80941SmrgAdditions to Chapter 3 the GLX 1.4 Specification (Functions and Errors)
61b8e80941Smrg
62b8e80941Smrg    Add a new section, 3.6 as follows:
63b8e80941Smrg
64b8e80941Smrg    3.6 AGP Memory Access
65b8e80941Smrg
66b8e80941Smrg    On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
67b8e80941Smrg    and freed with glXFreeMemoryNV.  Sometimes it's useful to know where a
68b8e80941Smrg    block of AGP memory is located with respect to the start of the AGP
69b8e80941Smrg    aperture.  The function
70b8e80941Smrg
71b8e80941Smrg        GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
72b8e80941Smrg
73b8e80941Smrg    Returns the offset of the given memory block from the start of AGP
74b8e80941Smrg    memory in basic machine units (i.e. bytes).  If pointer is invalid
75b8e80941Smrg    the value ~0 will be returned.
76b8e80941Smrg
77b8e80941SmrgGLX Protocol
78b8e80941Smrg
79b8e80941Smrg    None.  This is a client side-only extension.
80b8e80941Smrg
81b8e80941SmrgErrors
82b8e80941Smrg
83b8e80941Smrg    glXGetAGPOffsetMESA will return ~0 if the pointer does not point to
84b8e80941Smrg    an AGP memory region.
85b8e80941Smrg
86b8e80941SmrgNew State
87b8e80941Smrg
88b8e80941Smrg    None
89b8e80941Smrg
90b8e80941SmrgRevision History
91b8e80941Smrg
92b8e80941Smrg    20 September 2002 - Initial draft
93b8e80941Smrg    2 October 2002 - finished GLX chapter 3 additions
94b8e80941Smrg    27 July 2004 - use unsigned int instead of GLuint, void instead of GLvoid
95