summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2010-03-15 15:24:38 -0400
committerZack Rusin <zackr@vmware.com>2010-03-15 15:24:38 -0400
commit275c4bd3643d773210780cb8d578ca84f2604684 (patch)
tree8266edc39d4253ac0f2a0ecd41f560f3d815bb5c /docs
parentc5c5cd7132e18f4aad8e73d8ee879f8823c4c1e7 (diff)
parentd0b35352ed27b1e66785c45ee95a352ed06b47ce (diff)
Merge remote branch 'origin/master' into gallium_draw_llvm
Diffstat (limited to 'docs')
-rw-r--r--docs/GL3.txt2
-rw-r--r--docs/MiniGLX.html534
-rw-r--r--docs/README.3DFX2
-rw-r--r--docs/README.D3D124
-rw-r--r--docs/README.directfb29
-rw-r--r--docs/contents.html1
-rw-r--r--docs/demos.html18
-rw-r--r--docs/devinfo.html2
-rw-r--r--docs/dispatch.html6
-rw-r--r--docs/egl.html2
-rw-r--r--docs/install.html2
-rw-r--r--docs/relnotes-7.8.html7
-rw-r--r--docs/relnotes-7.9.html50
-rw-r--r--docs/relnotes.html1
14 files changed, 63 insertions, 717 deletions
diff --git a/docs/GL3.txt b/docs/GL3.txt
index df3fd74549..889edefbce 100644
--- a/docs/GL3.txt
+++ b/docs/GL3.txt
@@ -20,7 +20,7 @@ Framebuffer objects (GL_EXT_framebuffer_object) DONE
Half-float some infrastructure done
Multisample blit DONE
Non-normalized Integer texture/framebuffer formats not started
-1D/2D Texture arrays mostly done
+1D/2D Texture arrays core Mesa, swrast done
Packed depth/stencil formats DONE
Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE
GL_EXT_texture_compression_rgtc not started
diff --git a/docs/MiniGLX.html b/docs/MiniGLX.html
deleted file mode 100644
index e7ebae6851..0000000000
--- a/docs/MiniGLX.html
+++ /dev/null
@@ -1,534 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <title>Mini GLX Specification</title>
-</head>
-<body>
-<h1>
-<center>Mini GLX Specification</center>
-</h1>
-<h2>
-<center>Tungsten Graphics, Inc.<br>
-<br>
-January 20, 2003<br>
-<br>
-</center>
-</h2>
-<p> Copyright &copy; 2002-2003 by Tungsten Graphics, Inc., Cedar Park,
-Texas. All Rights Reserved. <br>
-<br>
-Permission is granted to make and distribute verbatim copies of this
-document provided the copyright notice and this permission notice are
-preserved on all copies.<br>
-<br>
-</p>
-<h1>1. Introduction</h1>
-<p>The Mini GLX interface facilitates OpenGL rendering on embedded
-devices. The interface is a subset of the GLX interface, plus a minimal
-set of Xlib-like functions.</p>
-<p>Programs written to the Mini GLX specification should run unchanged
-on systems with the X Window System and the GLX extension. The intention
-is to allow flexibility for prototyping and testing.</p>
-<p>This document serves as both the reference guide and programming
-guide for Mini GLX.<br>
-<br>
-</p>
-<h1>2. Mini GLX Concepts</h1>
-<p>The OpenGL specification does not describe how OpenGL rendering
-contexts and drawing surfaces (i.e. the frame buffer) are created and
-managed. Rather, this is handled by an OpenGL window system interface,
-such as Mini GLX.</p>
-<p>There are three main datatypes or resources managed by Mini GLX. The
-resources and their corresponding GLX or Xlib data types are:</p>
-<table cellspacing="10" align="center">
- <tbody>
- <tr>
- <td><u>Resource</u></td>
- <td><u>Data type</u></td>
- </tr>
- <tr>
- <td>pixel formats</td>
- <td>X Visual and XVisualInfo</td>
- </tr>
- <tr>
- <td>drawing surfaces</td>
- <td>X Window or GLXDrawable</td>
- </tr>
- <tr>
- <td>rendering contexts</td>
- <td>GLXContext</td>
- </tr>
- </tbody>
-</table>
-<p>Pixel formats or X Visuals describe the per-pixel attributes of the
-frame buffer. For example, bits per color component, Z buffer size,
-stencil size, TrueColor vs PseudoColor, etc.</p>
-<p>Drawing surfaces or X Windows typically describe a spatial
-allocation of the frame buffer (i.e. the position and size of a
-rectangular region of pixels). Since MiniGLX doesn't really support a
-window system, the window is effectively the entire frame buffer.</p>
-<p>A rendering context represents the current OpenGL state such as
-current drawing color, line width, blending mode, texture parameters,
-etc. Several rendering contexts can be created but only one can be in
-use at any given time.</p>
-<p>The Mini GLX interface provides all the functions needed for
-choosing pixel formats, create drawing surfaces, creating rendering
-contexts and binding rendering contexts to drawing surfaces.<br>
-<br>
-</p>
-<h1>3. Using Mini GLX</h1>
-<p>To use the Mini GLX interface in your application, include the
-GL/miniglx.h header file at compile time:</p>
-<blockquote><code> #include &lt;GL/miniglx.h&gt;<br>
- </code></blockquote>
-<code></code>Applications should link with libGL.so (i.e. <code>gcc
-myprogram.o -lGL -o myprogram</code>). &nbsp;libGL.so implements the
-MiniGLX API functions and, in turn, loads a hardware-specific device
-driver (such as <code>radeon_dri.so</code>) at runtime. &nbsp;The
-environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
-directory where these modules are located.<br>
-<br>
-The remainder of this section describes the MiniGLX API functions.<br>
-<br>
-<h2>3.1 Initialization</h2>
-<p>The XOpenDisplay function is used to initialize the graphics system:</p>
-<blockquote>
- <pre>Display *XOpenDisplay(const char *displayname)<br></pre>
-</blockquote>
-<p>The <code>displayName</code> parameter is currently ignored in Mini
-GLX. It is recommended that <code>NULL</code> be passed as the<code>displayName</code>
-parameter.</p>
-<p>If XOpenDisplay is able to initialize the graphics system a pointer
-to a Display will be returned. Otherwise, NULL will be returned.</p>
-<h2>3.2 Choosing a Visual</h2>
-<p>A visual (i.e. pixel format) must be chosen before a drawing surface
-or rendering context can be created. This is done with the
-glXChooseVisual function:</p>
-<blockquote>
- <pre>XVisualInfo *glXChooseVisual(Display *dpy, int screen, const int *attribList)<br></pre>
-</blockquote>
-<p><code>dpy</code> is a pointer to the display returned by
-XOpenDisplay. </p>
-<p><code>screen</code> is currently ignored by Mini GLX and should be
-zero. </p>
-<p><code>attribList</code> is a list of GLX attributes which describe
-the desired pixel format. It is terminated by the token <code>None</code>.
-The attributes are as follows:</p>
-<blockquote>
- <dl>
- <dt><code>GLX_USE_GL</code></dt>
- <dd>This attribute should always be present in order to maintain
-compatibility with GLX.</dd>
- <dt><code>GLX_RGBA</code></dt>
- <dd>If present, only RGBA pixel formats will be considered.
-Otherwise, only color index formats are considered.</dd>
- <dt><code>GLX_DOUBLEBUFFER</code></dt>
- <dd>if present, only double-buffered pixel formats will be chosen.</dd>
- <dt><code>GLX_RED_SIZE n</code></dt>
- <dd>Must be followed by a non-negative integer indicating the
-minimum number of bits per red pixel component that is acceptable.</dd>
- <dt><code>GLX_GREEN_SIZE n</code></dt>
- <dd>Must be followed by a non-negative integer indicating the
-minimum number of bits per green pixel component that is acceptable.</dd>
- <dt><code>GLX_BLUE_SIZE n</code></dt>
- <dd>Must be followed by a non-negative integer indicating the
-minimum number of bits per blue pixel component that is acceptable.</dd>
- <dt><code>GLX_ALPHA_SIZE n</code></dt>
- <dd>Must be followed by a non-negative integer indicating the
-minimum number of bits per alpha pixel component that is acceptable.</dd>
- <dt><code>GLX_STENCIL_SIZE n</code></dt>
- <dd>Must be followed by a non-negative integer indicating the
-minimum number of bits per stencil value that is acceptable.</dd>
- <dt><code>None</code></dt>
- <dd>This token is used to terminate the attribute list.</dd>
- </dl>
-</blockquote>
-<p>glXChooseVisual will return a pointer to an XVisualInfo object which
-most closely matches the requirements of the attribute list. If there
-is no visual which matches the request, NULL will be returned.</p>
-<p>Note that visuals with accumulation buffers and depth buffers are
-not available.<br>
-<br>
-</p>
-<h2>3.3 Creating a Drawing Surface</h2>
-<p>Drawing surfaces are created as X windows. &nbsp;For Mini GLX,
-windows are <i>full-screen</i>; they cover the entire frame buffer.
-&nbsp;Also, Mini GLX imposes a limit of one window. A second window
-cannot be created until the first one is destroyed.</p>
-<h3>3.3.1 Window Creation</h3>
-<p>The XCreateWindow function is used to create a drawing surface:</p>
-<blockquote>
- <pre>Window XCreateWindow( Display *display,<br> Window parent,<br> int x, int y,<br> unsigned int width, unsigned int height,<br> unsigned int borderWidth,<br> int depth,<br> unsigned int class,<br> Visual *visual,<br> unsigned long valuemask,<br> XSetWindowAttributes *attributes )<br></pre>
-</blockquote>
-<p>The parameters are as follows:</p>
-<blockquote>
- <dl>
- <dt><code>display</code></dt>
- <dd>A Display pointer, as returned by XOpenDisplay.</dd>
- <dt><code>parent</code></dt>
- <dd>The parent window for the new window. For Mini GLX, this
-should be<code>RootWindow(dpy, 0)</code>.</dd>
- <dt><code>x, y</code></dt>
- <dd>The position of the window. For Mini GLX, both values should
-be zero.</dd>
- <dt><code>width, height</code></dt>
- <dd>The size of the window. For Mini GLX, this specifies the
-desired screen size such as 1024, 768 or 1280, 1024.</dd>
- <dt><code>borderWidth</code></dt>
- <dd>This parameter should be zero.</dd>
- <dt><code>depth</code></dt>
- <dd>The pixel depth for the window. For Mini GLX this should be
-the depth found in the XVisualInfo object returned by <code>glxChooseVisual</code>.</dd>
- <dt><code>class</code></dt>
- <dd>The window class. For Mini GLX this value should be <code>InputOutput</code>.</dd>
- <dt><code>visual</code></dt>
- <dd>This parameter should be the <code>visual</code> field of the <code>XVisualInfo</code>
-object returned by <code>glxChooseVisual</code>.</dd>
- <dt><code>valuemask</code></dt>
- <dd>This parameter indicates which fields of the <code>XSetWindowAttributes</code>
-are to be used. For Mini GLX this is typically the bitmask<code>CWBackPixel
-| CWBorderPixel | CWColormap</code>.</dd>
- <dt><code>attributes</code></dt>
- <dd>Initial window attributes. Of the fields in the <code>XSetWindowAttributes</code>
-structure, the<code>background_pixel</code>, <code>border_pixel</code>
-and <code>colormap</code> fields should be set. &nbsp;See the discussion
-below regarding colormaps.</dd>
- </dl>
-</blockquote>
-<p><code>XCreateWindow</code> will return a window handle if it succeeds
-or zero if it fails.</p>
-<h3>3.3.2 Window Mapping</h3>
-<p>To display the window the XMapWindow function must be called:</p>
-<blockquote>
- <pre>void XMapWindow(Display *dpy, Window w)</pre>
-</blockquote>
-<p>This function does nothing in Mini GLX but is required for Xlib/GLX
-compatibility</p>
-<h3>3.3.3 Colormaps<br>
-</h3>
-<p>Xlib requires specification of a colormap when creating a window.
-&nbsp;For purposes of interoperability, Mini GLX requires this as well,
-though the colormap is not actually used. &nbsp;The XCreateColormap
-function is used to create a colormap:</p>
-<blockquote><code>Colormap XCreateColormap(Display *dpy, Window window,
-Visual *visual, int alloc)</code><br>
- <code></code></blockquote>
-<p>The parameters are as follows:<br>
-</p>
-<blockquote>
- <dl>
- <dt><code>dpy</code></dt>
- <dd>The display handle as returned by XOpenDisplay.</dd>
- <dt><code>window</code></dt>
- <dd> This parameter is ignored by Mini GLX but should be the value
-returned by the <code>RootWindow(dpy, 0)</code> macro.<br>
- </dd>
- <dt><code>visual</code></dt>
- <dd>This parameter is ignored by Mini GLX but should be the visual
-field of the XVisualInfo object returned by glXChooseVisual. </dd>
- <dt><code>alloc</code></dt>
- <dd>This parameter is ignored by Mini GLX but should be set to <code>AllocNone</code>.</dd>
- </dl>
-</blockquote>
-<br>
-<h2>3.4 Creating a Rendering Context</h2>
-<p>An OpenGL rendering context is created with the <code>glXCreateContext</code>
-function:</p>
-<blockquote>
- <pre>GLXContext glXCreateContext(Display *dpy, XVisualInfo *visInfo, GLXContext shareList, Bool direct)<br></pre>
-</blockquote>
-<p>The parameters are as follows:</p>
-<blockquote>
- <dl>
- <dt><code>dpy</code></dt>
- <dd>The display handle as returned by XOpenDisplay.</dd>
- <dt><code>visInfo</code></dt>
- <dd>The visual as returned by glXChooseVisual.</dd>
- <dt><code>shareList</code></dt>
- <dd>If non-zero, texture objects and display lists are shared with
-the named rendering context. If zero, texture objects and display lists
-will (initially) be private to this context. They may be shared when a
-subsequent context is created.</dd>
- <dt><code>direct</code></dt>
- <dd>Specifies whether direct or indirect rendering is desired. For
-Mini GLX this value is ignored but it should be set to <code>True</code>.</dd>
- </dl>
-</blockquote>
-<p><code>glXCreateContext</code> will return a GLXContext handle if it
-succeeds or zero if it fails due to invalid parameter or insufficient
-resources.<br>
-<br>
-</p>
-<h2>3.5 Binding a Rendering Context</h2>
-<p>The final step before beginning OpenGL rendering is to bind (i.e.
-activate) a rendering context and drawing surface with the
-glXMakeCurrent function:</p>
-<blockquote>
- <pre>Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx)<br></pre>
-</blockquote>
-<p>The parameters are as follows:</p>
-<blockquote>
- <dl>
- <dt><code>dpy</code></dt>
- <dd>The display handle, as returned by XOpenDisplay.</dd>
- <dt><code>drawable</code></dt>
- <dd>The window or drawable to bind to the rendering context. This
-should be the value returned by XCreateWindow.</dd>
- <dt><code>ctx</code></dt>
- <dd>The rendering context to bind, as returned by glXCreateContext.</dd>
- </dl>
-</blockquote>
-<p>If glXMakeCurrent succeeds True is returned. Otherwise False is
-returned to indicate an invalid display, window or context parameter.</p>
-<p>After the rendering context has been bound to the drawing surface
-OpenGL rendering can begin.</p>
-<p>The current rendering context may be unbound by calling
-glXMakeCurrent with the window and context parameters set to zero.</p>
-<p>An application may create any number of rendering contexts and bind
-them as needed. Note that binding a rendering context is generally not a
-light-weight operation. &nbsp;Most simple OpenGL applications create
-only one rendering context.<br>
-<br>
-</p>
-<h2>3.6 Color Buffer Swapping</h2>
-<p>A double buffered window has two color buffers: a front buffer and a
-back buffer. Normally, rendering is directed to the back buffer while
-the front buffer is displayed. When rendering of a frame is finished
-the front and back buffers are swapped to provide the illusion of
-instanteous screen updates.</p>
-<p>The color buffers for a particular window (i.e. drawable) may be
-swapped with the glXSwapBuffers command:</p>
-<blockquote>
- <pre>void glXSwapBuffers(Display *dpy, GLXDrawable drawable)<br></pre>
-</blockquote>
-Any pending rendering commands will be completed before the buffer swap
-takes place.<br>
-<br>
-Calling glXSwapBuffers on a window which is single-buffered has no
-effect.<br>
-<br>
-<h2>3.7 Releasing Resources</h2>
-<h3>3.7.1 Releasing Rendering Contexts</h3>
-<p>A rendering context may be destroyed by calling glXDestroyContext:</p>
-<blockquote>
- <pre>void glXDestroyContext(Display *dpy, GLXContext ctx)<br></pre>
-</blockquote>
-<h3>3.7.2 Releasing Windows</h3>
-<p>A window may be destroyed by calling XDestroyWindow:</p>
-<blockquote>
- <pre>void XDestroyWindow(Display *dpy, Window window)<br></pre>
-</blockquote>
-<h3>3.7.3 Releasing Visuals</h3>
-<p>An XVisualInfo object may be freed by calling XFree:</p>
-<blockquote>
- <pre>void XFree(void *data)<br></pre>
-</blockquote>
-<h3>3.7.4 Releasing Colormaps</h3>
-<p>A colormap may be freed by calling XFreeColormap:</p>
-<blockquote>
- <pre>void XFreeColormap(Display *dpy, Colormap colormap)<br></pre>
-</blockquote>
-<h3>3.7.4 Releasing Display Resources</h3>
-<p>When the application is about to exit, the resources associated with
-the graphics system can be released by calling XCloseDisplay:</p>
-<blockquote>
- <pre>void XCloseDisplay(Display *dpy)<br></pre>
-</blockquote>
-<p>The display handle becomes invalid at this point.<br>
-<br>
-</p>
-<h2>3.8 Query Functions</h2>
-<h3>3.8.1 Querying Available Visuals</h3>
-A list of all available visuals can be obtained with the XGetVisualInfo
-function:<br>
-<br>
-<div style="margin-left: 40px;"><code>XVisualInfo
-*XGetVisualInfo(Display *dpy, long vinfo_mask, XVisualInfo
-*vinfo_template, int *nitems_return)<br>
-</code></div>
-<br>
-The parameters are as follows:<br>
-<blockquote>
- <dl>
- <dt><code>dpy</code></dt>
- <dd>The display handle, as returned by XOpenDisplay.</dd>
- <dt><code>vinfo_mask</code></dt>
- <dd>A bitmask indicating which fields of the vinfo_template are to
-be matched. &nbsp;The value must be VisualScreenMask.</dd>
- <dt><code>vinfo_template</code></dt>
- <dd>A template whose fields indicate which visual attributes must
-be matched by the results. &nbsp;The screen field of this structure must
-be zero.</dd>
- <dt><code>nitems_return</code></dt>
- <dd>Returns the number of visuals returned. </dd>
- </dl>
-</blockquote>
-The return value is the address of an array of all available visuals.<br>
-<br>
-An example of using XGetVisualInfo to get all available visuals follows:<br>
-<br>
-<div style="margin-left: 40px;"><code>XVisualInfo visTemplate, *results;</code><br>
-<code>int numVisuals;</code><br>
-<code>Display *dpy = XOpenDisplay(NULL);</code><br>
-<code>visTemplate.screen = 0;</code><br>
-<code>results = XGetVisualInfo(dpy, VisualScreenMask, &amp;visTemplate,
-&amp;numVisuals);</code><br>
-<code></code></div>
-<br>
-<h3>3.8.2 Querying Visual Attributes</h3>
-<p>The GLX attributes of an X visual may be queried with the
-glXGetConfig function:</p>
-<blockquote>
- <pre>int glXGetConfig(Display *dpy, XVisualInfo *vis, int attribute, int *value)<br></pre>
-</blockquote>
-<p>The parameters are as follows:</p>
-<blockquote>
- <dl>
- <dt><code>dpy</code></dt>
- <dd>The display handle, as returned by XOpenDisplay.</dd>
- <dt><code>vis</code></dt>
- <dd>The visual, as returned by glXChooseVisual.</dd>
- <dt><code>attribute</code></dt>
- <dd>The attribute to query. The attributes are listed below.</dd>
- <dt><code>value</code></dt>
- <dd>Pointer to an integer in which the result of the query will be
-stored. </dd>
- </dl>
-</blockquote>
-<p>The return value will be zero if no error occurs.<code>
-&nbsp;GLX_INVALID_ATTRIBUTE</code> will be returned if the attribute
-parameter is invalid.<code> &nbsp;GLX_BAD_VISUAL</code> will be returned
-if the XVisualInfo parameter is invalid.</p>
-<p>The following attributes may be queried:</p>
-<blockquote>
- <dl>
- <dt><code>GLX_USE_GL</code></dt>
- <dd>The result will be <code>True</code> or <code>False</code> to
-indicate if OpenGL rendering is supported with the visual. Mini GLX
-always return <code>True</code>.</dd>
- <dt><code>GLX_RGBA</code></dt>
- <dd>The result will be <code>True</code> for RGBA visuals or <code>False</code>
-for color index visuals.</dd>
- <dt><code>GLX_DOUBLEBUFFER</code></dt>
- <dd>The result will be <code>True</code> if the visual has two
-color buffers or <code>False</code> if the visual has one color buffer.</dd>
- <dt><code>GLX_RED_SIZE</code></dt>
- <dd>The result will be the number of red bits per pixel.</dd>
- <dt><code>GLX_GREEN_SIZE</code></dt>
- <dd>The result will be the number of green bits per pixel.</dd>
- <dt><code>GLX_BLUE_SIZE</code></dt>
- <dd>The result will be the number of blue bits per pixel.</dd>
- <dt><code>GLX_ALPHA_SIZE</code></dt>
- <dd>The result will be the number of alpha bits per pixel.</dd>
- <dt><code>GLX_DEPTH_SIZE</code></dt>
- <dd>The result will be the number of bits per Z value.</dd>
- <dt><code>GLX_STENCIL_SIZE</code></dt>
- <dd>The result will be the number of bits per stencil value.<br>
- <br>
- </dd>
- </dl>
-</blockquote>
-<h3>3.8.3 Querying the Current Rendering Context</h3>
-<p>The current rendering context can be queried with
-glXGetCurrentContext: </p>
-<blockquote>
- <pre>GLXContext glXGetCurrentContext(void)<br></pre>
-</blockquote>
-<p>Zero will be returned if no context is currently bound.<br>
-<br>
-</p>
-<h3>3.8.4 Querying the Current Drawable</h3>
-<p>The current drawable (i.e. window or drawing surface) can be queried
-with glXGetCurrentDrawable:</p>
-<blockquote>
- <pre>GLXDrawable glXGetCurrentDrawable(void)<br></pre>
-</blockquote>
-<p>Zero will be returned if no drawable is currently bound.<br>
-<br>
-</p>
-<h3>3.8.5 Function Address Queries</h3>
-<p>The glXGetProcAddress function will return the address of any
-available OpenGL or Mini GLX function:</p>
-<blockquote>
- <pre>void *glXGetProcAddress(const GLubyte *procName)<br></pre>
-</blockquote>
-<p>If <code>procName</code> is a valid function name, a pointer to that
-function will be returned. &nbsp;Otherwise, NULL will be returned.</p>
-<p>The purpose of glXGetProcAddress is to facilitate using future
-extensions to OpenGL or Mini GLX. If a future version of the library
-adds new extension functions they'll be accessible via
-glXGetProcAddress. The alternative is to hard-code calls to the new
-functions in the application but doing so will prevent linking the
-application with older versions of the library.<br>
-<br>
-</p>
-<h2>3.9 Versioning</h2>
-The Mini GLX version can be queried at run time with glXQueryVersion:
-<blockquote>
- <pre>Bool glXQueryVersion(Display *dpy, int *major, int *minor)<br></pre>
-</blockquote>
-<p><code>major</code> will be set to the major version number and<code>minor</code>
-will be set to the minor version number.<code>True</code> will be
-returned if the function succeeds. <code>False</code> will be returned
-if the function fails due to invalid parameters. The <code>dpy</code>
-argument is currently ignored, but should be the value returned by
-XOpenDisplay.</p>
-<p>At compile time, the Mini GLX interface version can be tested with
-the MINI_GLX_VERSION_1_<i>x</i> preprocessor tokens. For example, if
-version 1.0 of Mini GLX is supported, then<code> MINI_GLX_VERSION_1_0</code>
-will be defined. If version 1.1 of Mini GLX is supported, then<code>
-MINI_GLX_VERSION_1_1</code> will be defined.</p>
-<p>At the time of writing the current Mini GLX version is 1.0.<br>
-<br>
-</p>
-<h1>4.0 Interoperability with GLX and Xlib</h1>
-While Mini GLX strives to be compatible with GLX and Xlib there are
-some unavoidable differences which must be taken into consideration.<br>
-<h2>4.1 Public vs Private Structures</h2>
-The structure of many X data types is public. &nbsp;For example, the <code>Display</code>
-data type is defined as a structure in /usr/include/X11/Xlib.h and
-programmers may access any fields of that structure at will. &nbsp;Mini
-GLX also defines a Display data type but its fields are hidden and not
-visiblein <code>miniglx.h</code>. &nbsp;Duplicating the Xlib
-declaration for the <code>Display</code> data type in minigl.h would
-require defining a large number of other superfluous Xlib datatypes.<br>
-<br>
-Mini GLX users are discouraged from directly accessing the fields of
-Xlib data types to maximize portability - though this is unavoidable to
-some extent. &nbsp;For example, the <code>XVisualInfo</code> and <code>XSetWindowAtttributes</code>
-data types must be completely public.
-<h2>4.2 Macros</h2>
-In some cases, Xlib defines macros which are meant to be used instead
-of direct structure accesses. &nbsp;For example, the <code>RootWindow(dpy,
-screen)</code> macro returns the root window for a given screen on a
-given display. &nbsp;Unfortunately, macros do nothing to aid in ABI
-compatibility since they are resolved at compile time instead of at
-link/run time.<br>
-<br>
-Mini GLX also defines a <code>RootWindow</code> macro since it's
-essential for creating windows. &nbsp;But the implementation of this
-macro by Xlib and Mini GLX is completely different.<br>
-<h2>4.3 Summary</h2>
-Because Xlib and Mini GLX define data types and macros differently,
-Mini GLX applications must be recompiled when retargeting Mini GLX or
-native Xlib/GLX. &nbsp;That is, applications can't simply be re-linked
-because of ABI incompatibilities.<br>
-<br>
-Nevertheless, the fact that Mini GLX programs can be recompiled for
-Xlib and GLX increases portability and flexibility for testing and
-prototyping.<br>
-<br>
-<h1>5.0 Example Program</h1>
-<p>This section shows an example program which uses the Mini GLX
-interface. The program simply draws several frames of a rotating square.<br>
-</p>
-<p>The program may be compiled for use with Xlib/GLX or Mini GLX by
-setting the <code>USE_MINIGLX</code> token to 0 or 1, respectively.
-&nbsp;Note that the only difference is the header files which are
-included.<br>
-</p>
-<p> </p>
-<pre><code><br></code>#define USE_MINIGLX 1 /* 1 = use Mini GLX, 0 = use Xlib/GLX */<br><br>#include &lt;stdio.h&gt;<br>#include &lt;stdlib.h&gt;<br>#include &lt;GL/gl.h&gt;<br><br>#if USE_MINIGLX<br>#include &lt;GL/miniglx.h&gt;<br>#else<br>#include &lt;GL/glx.h&gt;<br>#include &lt;X11/Xlib.h&gt;<br>#endif<br><br><code>/*<br> * Create a simple double-buffered RGBA window.<br> */<br>static Window<br>MakeWindow(Display * dpy, unsigned int width, unsigned int height)<br>{<br> int visAttributes[] = {<br> GLX_RGBA,<br> GLX_RED_SIZE, 1,<br> GLX_GREEN_SIZE, 1,<br> GLX_BLUE_SIZE, 1,<br> GLX_DOUBLEBUFFER,<br> None<br> };<br> XSetWindowAttributes attr;<br> unsigned long attrMask;<br> Window root;<br> Window win;<br> GLXContext ctx;<br> XVisualInfo *visinfo;<br><br> root = RootWindow(dpy, 0);<br><br> /* Choose GLX visual / pixel format */<br> visinfo = glXChooseVisual(dpy, 0, visAttributes);<br> if (!visinfo) {<br> printf("Error: couldn't get an RGB, Double-buffered visual\n");<br> exit(1);<br> }<br><br> /* Create the window */<br> attr.background_pixel = 0;<br> attr.border_pixel = 0;<br> attr.colormap = XCreateColormap(dpy, root, visinfo-&gt;visual, AllocNone);<br> attrMask = CWBackPixel | CWBorderPixel | CWColormap;<br> win = XCreateWindow(dpy, root, 0, 0, width, height,<br> 0, visinfo-&gt;depth, InputOutput,<br> visinfo-&gt;visual, attrMask, &amp;attr);<br> if (!win) {<br> printf("Error: XCreateWindow failed\n");<br> exit(1);<br> }<br><br> /* Display the window */<br> XMapWindow(dpy, win);<br><br> /* Create GLX rendering context */<br> ctx = glXCreateContext(dpy, visinfo, NULL, True);<br> if (!ctx) {<br> printf("Error: glXCreateContext failed\n");<br> exit(1);<br> }<br><br> /* Bind the rendering context and window */<br> glXMakeCurrent(dpy, win, ctx);<br><br> return win;<br>}<br><br><br>/*<br> * Draw a few frames of a rotating square.<br> */<br>static void<br>DrawFrames(Display * dpy, Window win)<br>{<br> int angle;<br> glShadeModel(GL_FLAT);<br> glClearColor(0.5, 0.5, 0.5, 1.0);<br> for (angle = 0; angle &lt; 360; angle += 10) {<br> glClear(GL_COLOR_BUFFER_BIT);<br> glColor3f(1.0, 1.0, 0.0);<br> glPushMatrix();<br> glRotatef(angle, 0, 0, 1);<br> glRectf(-0.8, -0.8, 0.8, 0.8);<br> glPopMatrix();<br> glXSwapBuffers(dpy, win);<br> }<br>}<br><br><br>int<br>main(int argc, char *argv[])<br>{<br> Display *dpy;<br> Window win;<br><br> dpy = XOpenDisplay(NULL);<br> if (!dpy) {<br> printf("Error: XOpenDisplay failed\n");<br> return 1;<br> }<br><br> win = MakeWindow(dpy, 300, 300);<br><br> DrawFrames(dpy, win);<br><br> return 0;<br>}<br></code></pre>
-<br>
-</body>
-</html>
diff --git a/docs/README.3DFX b/docs/README.3DFX
index 037e8fa7cc..7feda6f33f 100644
--- a/docs/README.3DFX
+++ b/docs/README.3DFX
@@ -644,7 +644,7 @@ Hints and Special Features:
- The Voodoo driver supports the GL_EXT_paletted_texture. it works
only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
- is ignored because this is a limitation of the the current Glide
+ is ignored because this is a limitation of the current Glide
version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
a demo of this extension.
diff --git a/docs/README.D3D b/docs/README.D3D
deleted file mode 100644
index b41fcb6208..0000000000
--- a/docs/README.D3D
+++ /dev/null
@@ -1,124 +0,0 @@
-
- DirectX 6 Driver for Mesa 3.0
-
-
-This software is distributed under the terms of the GNU Library
-General Public License, see the LICENSE file for details.
-
-
-
-What do you need ?
-------------------
-
- - A PC with a DirectX 6 video driver installed.
-
- - Mesa 3.0
-
- - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
- The Voodoo2 requires the Glide library 2.51. The Glide 3.0 is not
- compatible with the Glide 2.x so it doesn't work with the current
- version of the driver;
-
- - Visual C++ 5.0 is only compiler test but others should be ok with
- changes to the makefiles (CFLAGS/LFLAGS).
-
- - DirectX 6 SDK (was a MS download but not sure if still available).
-
- - SoftIce or another debugger that will get DPF's is nice.
-
-
-Tested on:
-----------
- Windows 95
- Windows 98
- Windows NT 5.0 (beta 2)
-
-
-What is able to do ?
---------------------
-
- - the driver will try and use DirectX to rasterize the OpenGL primitives
- that are sent to the driver. The driver will fall back to SW if the rendering
- context is too big. The fallback to SW still uses DirectDraw. If the driver
- fails to support and operation (accum, stencil, etc) then it will try and get
- Mesa to render it in SW. DirectX 6 features that are unsupported by the
- installed DirectX 6 driver will be mapped to some other best fit feature.
-
-
-How to compile:
----------------
-
- These instructions assume you have Visual C++ installed.
-
- You might need to increase you enviroment space. You can do this by
- adding the following statement to you config.sys.
-
- shell=C:\COMMAND.COM C:\ /p /e:8198
-
- Next setup you compiler enviroment by running vcvars32.bat in the Visual C++
- 'bin' directoy.
-
- c:\DevStudio\VC\bin\vcvars32.bat
-
- Modify the D3D makefile to point at your SDK install. Example has the SDK
- installed on my 'f' drive in the root.
-
- file: \Mesa-3.0\src\makefile.d3d
-
- SDKROOT=f:\mssdk
-
- Now you can simply make the project. If you look in the makefile you can see
- I have some different targets like 'install'.
-
- nmake /f makefile.d3d
-
-
-FAQ:
-----
-
- 1) I don't think the driver is using my DirectX driver.
-
- This maybe true as the current version will only select the Primary D3D driver
- installed. If you 3D card is the secondary (3dfx) then your out of luck for this
- release.
-
- 2) The driver seems like its not HW accelerated.
-
- If you have a video card with limited memory then you might want to try and
- change your destop resolution to a low setting (640x480x16) so that the 3D part
- of the card has more resources. Remeber the driver can't make the card better...
-
- 3) Nothing works.
-
- Make sure you have a DirectX '6' driver installed. Check you driver docs for this
- info or use the SDK info utilities.
- The final 'dll' is named opengl32.dll and is either in the same directory as the
- OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32).
- Check your destop resolution. Most DirectX 6 drivers will only support 16bit and
- 32bit color depth. To find out for sure you can check the DirectX Info Viewer in
- the SDK.
-
-
- 4) Rendering doesn't look right.
-
- Sometimes this is because the card doesn't support a feature that that is required.
- This is usually due to unsupported alpha functions (test/blend) or texture mapping.
- Some cards suffer from too small of an alpha channel. The driver does its best to
- fallback on unsupported features. This is not to say the driver may not have a bug(s).
-
- 5) Textures look bad.
-
- No mipmapping in this release.
-
-
-Thanks to:
-----------
-
-Brian Paul
-
-
-
-
-Leigh McRae (leigh@altsoftware.com)
-February 9, 1999
-
diff --git a/docs/README.directfb b/docs/README.directfb
deleted file mode 100644
index d66ca8d3ca..0000000000
--- a/docs/README.directfb
+++ /dev/null
@@ -1,29 +0,0 @@
-
- Mesa DirectFB Information
-
-
-Requirements
-============
-
- To build Mesa with DirectFB (DirectFBGL) support you need:
- - DirectFB at least 1.0.0 (http://directfb.org)
- - pkg-config at least 0.9 (http://pkgconfig.sf.net)
-
-
-Installation
-============
- Run
-
- make linux-directfb
-
- to build Mesa and DirectFBGL module,
-
- make install
-
- to install OpenGL libraries and
-
- cd src/mesa/drivers/directfb ; make install
-
- to install DirectFBGL module in the proper location.
- Actually, that last command may not be needed. Please provide feedback.
-
diff --git a/docs/contents.html b/docs/contents.html
index f0646ffb40..cca20ecaae 100644
--- a/docs/contents.html
+++ b/docs/contents.html
@@ -92,7 +92,6 @@ a:visited {
<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
<li><a href="science.html" target="MainFrame">Science and Technical</a>
<li><a href="utility.html" target="MainFrame">Utilities</a>
-<li><a href="demos.html" target="MainFrame">Demos / other</a>
</ul>
<b>Hosted by:</b>
diff --git a/docs/demos.html b/docs/demos.html
deleted file mode 100644
index b4a2cc5e36..0000000000
--- a/docs/demos.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<HTML>
-
-<TITLE>Demos</TITLE>
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<BODY>
-
-<H1>Demos</H1>
-
-
-<ul>
-<li><a href="http://www.geocities.com/shobhand/homepage.html">Shobhan Dutta's Geartrain and Walkthrough Demos</a>
-</li></ul>
-
-
-</body>
-</html> \ No newline at end of file
diff --git a/docs/devinfo.html b/docs/devinfo.html
index 0fb816749e..df0e726524 100644
--- a/docs/devinfo.html
+++ b/docs/devinfo.html
@@ -107,7 +107,7 @@ Global variables are not allowed.
Function name examples:
</p>
<pre>
- glFooBar() - a public GL entry point (in dispatch.c)
+ glFooBar() - a public GL entry point (in glapi_dispatch.c)
_mesa_FooBar() - the internal immediate mode function
save_FooBar() - retained mode (display list) function in dlist.c
foo_bar() - a static (private) function
diff --git a/docs/dispatch.html b/docs/dispatch.html
index bcab74c707..e5587c1a29 100644
--- a/docs/dispatch.html
+++ b/docs/dispatch.html
@@ -199,7 +199,7 @@ few preprocessor defines.</p>
<li>If <tt>GLX_USE_TLS</tt> is defined, method #4 is used.</li>
<li>If <tt>PTHREADS</tt> is defined, method #3 is used.</li>
<li>If any of <tt>PTHREADS</tt>,
-<tt>SOLARIS_THREADS</tt>, <tt>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt>
+<tt>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt>
is defined, method #2 is used.</li>
<li>If none of the preceeding are defined, method #1 is used.</li>
</ul>
@@ -244,8 +244,8 @@ isn't a significant problem.</p>
system. There are two steps to this. The file must first be added to
<tt>src/mesa/sources</tt>. That gets the file built and linked. The second
step is to add the correct <tt>#ifdef</tt> magic to
-<tt>src/mesa/main/dispatch.c</tt> to prevent the C version of the dispatch
-functions from being built.</p>
+<tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the
+dispatch functions from being built.</p>
<A NAME="fixedsize"/>
<H3>3.4. Fixed-Length Dispatch Stubs</H3>
diff --git a/docs/egl.html b/docs/egl.html
index 82cc06600b..55907f6cfa 100644
--- a/docs/egl.html
+++ b/docs/egl.html
@@ -28,7 +28,7 @@ cards.</p>
<ol>
<li>
-<p>Run <code>configure</code> with the desired state trackers and and enable
+<p>Run <code>configure</code> with the desired state trackers and enable
the Gallium driver for your hardware. For example</p>
<pre>
diff --git a/docs/install.html b/docs/install.html
index 5aea92e0b5..3962ea5c91 100644
--- a/docs/install.html
+++ b/docs/install.html
@@ -361,7 +361,7 @@ To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler tool
This will create:
</p>
<ul>
-<li>build/windows-x86-debug/gallium/winsys/gdi/opengl32.dll &mdash; Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll
+<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll &mdash; Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll
<li>build/windows-x86-debug/glut/glx/glut32.dll
<li>progs/build/windows-x86-debug/wgl/wglinfo.exe
<li>progs/build/windows-x86-debug/trivial/tri.exe
diff --git a/docs/relnotes-7.8.html b/docs/relnotes-7.8.html
index 177d11e57a..ebe3d498b5 100644
--- a/docs/relnotes-7.8.html
+++ b/docs/relnotes-7.8.html
@@ -36,7 +36,9 @@ tbd
<ul>
<li>GL_NV_conditional_render extension (swrast driver only)
<li>GL_EXT_draw_buffers2 extension (swrast and i965 driver only)
-<li>GL_ARB_fragment_coord_conventions extension (for swrast and Gallium drivers)
+<li>GL_ARB_fragment_coord_conventions extension (for swrast, i965, and Gallium drivers)
+<li>GL_EXT_texture_array extension (swrast driver only)
+<li>GL_APPLE_object_purgeable extension (swrast and i945/i965 DRI drivers)
<li>Much improved support for <a href="egl.html">EGL in Mesa</a>
<li>New state trackers for <a href="opengles.html">OpenGL ES 1.1 and 2.0</a>
<li>Dedicated documentation for Gallium
@@ -52,7 +54,8 @@ tbd
<h2>Changes</h2>
<ul>
-<li>TBD
+<li>Removed support for color-index rendering</li>
+<li>Removed support for GCC versions earlier than 3.3.0.</li>
</ul>
</body>
diff --git a/docs/relnotes-7.9.html b/docs/relnotes-7.9.html
new file mode 100644
index 0000000000..f7d5016dc6
--- /dev/null
+++ b/docs/relnotes-7.9.html
@@ -0,0 +1,50 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 7.9 Release Notes / date TBD</H1>
+
+<p>
+Mesa 7.9 is a new development release.
+People who are concerned with stability and reliability should stick
+with a previous release or wait for Mesa 7.9.1.
+</p>
+<p>
+Mesa 7.9 implements the OpenGL 2.1 API, but the version reported by
+glGetString(GL_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 2.1.
+</p>
+<p>
+See the <a href="install.html">Compiling/Installing page</a> for prerequisites
+for DRI hardware acceleration.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+tbd
+</pre>
+
+
+<h2>New features</h2>
+<ul>
+</ul>
+
+
+<h2>Bug fixes</h2>
+<ul>
+</ul>
+
+
+<h2>Changes</h2>
+<ul>
+</ul>
+
+</body>
+</html>
diff --git a/docs/relnotes.html b/docs/relnotes.html
index f1f95c5d3c..3e17a1e94e 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -13,7 +13,6 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<UL>
-<<<<<<< HEAD:docs/relnotes.html
<LI><A HREF="relnotes-7.8.html">7.8 release notes</A>
<LI><A HREF="relnotes-7.7.1.html">7.7.1 release notes</A>
<LI><A HREF="relnotes-7.7.html">7.7 release notes</A>