Drop fb, ffb and gamma dri drivers
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 25 Feb 2010 21:12:58 +0000 (16:12 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 25 Feb 2010 22:40:11 +0000 (17:40 -0500)
71 files changed:
configure.ac
src/mesa/drivers/dri/fb/Doxyfile [deleted file]
src/mesa/drivers/dri/fb/Makefile [deleted file]
src/mesa/drivers/dri/fb/fb_dri.c [deleted file]
src/mesa/drivers/dri/ffb/Makefile [deleted file]
src/mesa/drivers/dri/ffb/ffb_bitmap.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_bitmap.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_clear.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_clear.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_context.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_dd.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_dd.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_depth.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_depth.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_fifo.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_fog.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_lines.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_lines.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_linetmp.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_lock.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_points.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_points.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_pointtmp.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_rendertmp.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_span.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_span.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_state.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_state.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_stencil.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_stencil.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_tex.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_tex.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_tris.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_tris.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_tritmp.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_vb.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_vb.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_vbtmp.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_vtxfmt.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_vtxfmt.h [deleted file]
src/mesa/drivers/dri/ffb/ffb_xmesa.c [deleted file]
src/mesa/drivers/dri/ffb/ffb_xmesa.h [deleted file]
src/mesa/drivers/dri/ffb/server/ffb_dac.h [deleted file]
src/mesa/drivers/dri/ffb/server/ffb_drishare.h [deleted file]
src/mesa/drivers/dri/ffb/server/ffb_regs.h [deleted file]
src/mesa/drivers/dri/gamma/Makefile [deleted file]
src/mesa/drivers/dri/gamma/gamma_client.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_context.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_context.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_dd.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_inithw.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_lock.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_lock.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_macros.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_regs.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_render.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_screen.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_screen.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_span.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_state.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_tex.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_texmem.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_texstate.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_tris.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_tris.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_tritmp.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_vb.c [deleted file]
src/mesa/drivers/dri/gamma/gamma_vb.h [deleted file]
src/mesa/drivers/dri/gamma/gamma_xmesa.c [deleted file]
src/mesa/drivers/dri/gamma/server/glint_common.h [deleted file]
src/mesa/drivers/dri/gamma/server/glint_dri.h [deleted file]

index b4561000d225d2f3d208adc4c0084b57979298d9..d108ecdad2941bfdfe78e295529525b9eb294051 100644 (file)
@@ -720,10 +720,9 @@ if test "$mesa_driver" = dri; then
 
         case "$host_cpu" in
         x86_64)
-            # ffb, gamma, and sis are missing because they have not be
-            # converted to use the new interface.  i810 are missing
-            # because there is no x86-64 system where they could *ever*
-            # be used.
+            # sis is missing because they have not be converted to use
+            # the new interface.  i810 are missing because there is no
+            # x86-64 system where they could *ever* be used.
             if test "x$DRI_DIRS" = "xyes"; then
                 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
                     savage tdfx unichrome swrast"
@@ -739,7 +738,7 @@ if test "$mesa_driver" = dri; then
         sparc*)
             # Build only the drivers for cards that exist on sparc`
             if test "x$DRI_DIRS" = "xyes"; then
-                DRI_DIRS="mach64 r128 r200 r300 r600 radeon ffb swrast"
+                DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
             fi
             ;;
         esac
@@ -755,8 +754,6 @@ if test "$mesa_driver" = dri; then
             CXXFLAGS="$CXXFLAGS -ansi -pedantic"
         fi
 
-        # ffb and gamma are missing because they have not been converted
-        # to use the new interface.
         if test "x$DRI_DIRS" = "xyes"; then
             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
                 unichrome savage sis swrast"
@@ -778,7 +775,7 @@ if test "$mesa_driver" = dri; then
     # default drivers
     if test "x$DRI_DIRS" = "xyes"; then
         DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
-            savage sis tdfx unichrome ffb swrast"
+            savage sis tdfx unichrome swrast"
     fi
 
     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
diff --git a/src/mesa/drivers/dri/fb/Doxyfile b/src/mesa/drivers/dri/fb/Doxyfile
deleted file mode 100644 (file)
index 31256db..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-# Doxyfile 1.3.2-Gideon
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = fb
-PROJECT_NUMBER         = $VERSION$
-OUTPUT_DIRECTORY       = 
-OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = NO
-EXTRACT_ALL            = NO
-EXTRACT_PRIVATE        = NO
-EXTRACT_STATIC         = NO
-EXTRACT_LOCAL_CLASSES  = YES
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-INTERNAL_DOCS          = NO
-CASE_SENSE_NAMES       = YES
-SHORT_NAMES            = NO
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = YES
-JAVADOC_AUTOBRIEF      = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = YES
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 8
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ALIASES                = 
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 30
-OPTIMIZE_OUTPUT_FOR_C  = NO
-OPTIMIZE_OUTPUT_JAVA   = NO
-SHOW_USED_FILES        = YES
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = /home/temp/Mesa/src/drv/fb
-FILE_PATTERNS          = *.c \
-                         *.cc \
-                         *.cxx \
-                         *.cpp \
-                         *.c++ \
-                         *.java \
-                         *.ii \
-                         *.ixx \
-                         *.ipp \
-                         *.i++ \
-                         *.inl \
-                         *.h \
-                         *.hh \
-                         *.hxx \
-                         *.hpp \
-                         *.h++ \
-                         *.idl \
-                         *.odl \
-                         *.cs \
-                         *.C \
-                         *.H \
-                         *.tlh \
-                         *.diff \
-                         *.patch \
-                         *.moc \
-                         *.xpm
-RECURSIVE              = yes
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = *
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION    = YES
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = NO
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = YES
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = yes
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = NO
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = YES
-HAVE_DOT               = NO
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-UML_LOOK               = NO
-TEMPLATE_RELATIONS     = NO
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-CALL_GRAPH             = NO
-GRAPHICAL_HIERARCHY    = YES
-DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
-MAX_DOT_GRAPH_DEPTH    = 1000
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
-CGI_NAME               = search.cgi
-CGI_URL                = 
-DOC_URL                = 
-DOC_ABSPATH            = 
-BIN_ABSPATH            = /usr/local/bin/
-EXT_DOC_PATHS          = 
diff --git a/src/mesa/drivers/dri/fb/Makefile b/src/mesa/drivers/dri/fb/Makefile
deleted file mode 100644 (file)
index 848e204..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# src/mesa/drivers/dri/fb/Makefile
-
-TOP = ../../../../..
-include $(TOP)/configs/current
-
-LIBNAME = fb_dri.so
-
-
-DRIVER_SOURCES = \
-       fb_dri.c \
-       $(EGL_SOURCES)
-
-
-C_SOURCES = \
-       $(COMMON_SOURCES) \
-       $(DRIVER_SOURCES)
-
-ASM_SOURCES = 
-
-# XXX not 100% sure this is right
-#WINDOW_SYSTEM = solo
-
-include ../Makefile.template
-
diff --git a/src/mesa/drivers/dri/fb/fb_dri.c b/src/mesa/drivers/dri/fb/fb_dri.c
deleted file mode 100644 (file)
index ac07e57..0000000
+++ /dev/null
@@ -1,792 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version:  6.3
- *
- * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/* Minimal swrast-based dri loadable driver.
- *
- * Todo:
- *   -- Use malloced (rather than framebuffer) memory for backbuffer
- *   -- 32bpp is hardwared -- fix
- *
- * NOTES:
- *   -- No mechanism for cliprects or resize notification --
- *      assumes this is a fullscreen device.  
- *   -- No locking -- assumes this is the only driver accessing this 
- *      device.
- *   -- Doesn't (yet) make use of any acceleration or other interfaces
- *      provided by fb.  Would be entirely happy working against any 
- *     fullscreen interface.
- *   -- HOWEVER: only a small number of pixelformats are supported, and
- *      the mechanism for choosing between them makes some assumptions
- *      that may not be valid everywhere.
- */
-
-#include "driver.h"
-#include "drm.h"
-#include "utils.h"
-#include "drirenderbuffer.h"
-
-#include "buffers.h"
-#include "main/extensions.h"
-#include "main/framebuffer.h"
-#include "main/renderbuffer.h"
-#include "vbo/vbo.h"
-#include "swrast/swrast.h"
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/tnl.h"
-#include "tnl/tcontext.h"
-#include "tnl/t_pipeline.h"
-#include "drivers/common/driverfuncs.h"
-
-void fbSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis);
-
-typedef struct {
-   GLcontext *glCtx;           /* Mesa context */
-
-   struct {
-      __DRIcontext *context;   
-      __DRIscreen *screen;     
-      __DRIdrawable *drawable; /* drawable bound to this ctx */
-   } dri;
-   
-} fbContext, *fbContextPtr;
-
-#define FB_CONTEXT(ctx)                ((fbContextPtr)(ctx->DriverCtx))
-
-
-static const GLubyte *
-get_string(GLcontext *ctx, GLenum pname)
-{
-   (void) ctx;
-   switch (pname) {
-      case GL_RENDERER:
-         return (const GLubyte *) "Mesa dumb framebuffer";
-      default:
-         return NULL;
-   }
-}
-
-
-static void
-update_state( GLcontext *ctx, GLuint new_state )
-{
-   /* not much to do here - pass it on */
-   _swrast_InvalidateState( ctx, new_state );
-   _swsetup_InvalidateState( ctx, new_state );
-   _vbo_InvalidateState( ctx, new_state );
-   _tnl_InvalidateState( ctx, new_state );
-}
-
-
-/**
- * Called by ctx->Driver.GetBufferSize from in core Mesa to query the
- * current framebuffer size.
- */
-static void
-get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height )
-{
-   GET_CURRENT_CONTEXT(ctx);
-   fbContextPtr fbmesa = FB_CONTEXT(ctx);
-
-   *width  = fbmesa->dri.drawable->w;
-   *height = fbmesa->dri.drawable->h;
-}
-
-
-static void
-updateFramebufferSize(GLcontext *ctx)
-{
-   fbContextPtr fbmesa = FB_CONTEXT(ctx);
-   struct gl_framebuffer *fb = ctx->WinSysDrawBuffer;
-   if (fbmesa->dri.drawable->w != fb->Width ||
-       fbmesa->dri.drawable->h != fb->Height) {
-      driUpdateFramebufferSize(ctx, fbmesa->dri.drawable);
-   }
-}
-
-static void
-viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
-{
-   /* XXX this should be called after we acquire the DRI lock, not here */
-   updateFramebufferSize(ctx);
-}
-
-
-static void
-init_core_functions( struct dd_function_table *functions )
-{
-   functions->GetString = get_string;
-   functions->UpdateState = update_state;
-   functions->GetBufferSize = get_buffer_size;
-   functions->Viewport = viewport;
-
-   functions->Clear = _swrast_Clear;  /* could accelerate with blits */
-}
-
-
-/*
- * Generate code for span functions.
- */
-
-/* 24-bit BGR */
-#define NAME(PREFIX) PREFIX##_B8G8R8
-#define FORMAT GL_RGBA8
-#define SPAN_VARS \
-   driRenderbuffer *drb = (driRenderbuffer *) rb;
-#define INIT_PIXEL_PTR(P, X, Y) \
-   GLubyte *P = (GLubyte *)drb->Base.Data + (drb->Base.Height - (Y)) * drb->pitch + (X) * 3;
-#define INC_PIXEL_PTR(P) P += 3
-#define STORE_PIXEL(DST, X, Y, VALUE) \
-   DST[0] = VALUE[BCOMP]; \
-   DST[1] = VALUE[GCOMP]; \
-   DST[2] = VALUE[RCOMP]
-#define FETCH_PIXEL(DST, SRC) \
-   DST[RCOMP] = SRC[2]; \
-   DST[GCOMP] = SRC[1]; \
-   DST[BCOMP] = SRC[0]; \
-   DST[ACOMP] = 0xff
-
-#include "swrast/s_spantemp.h"
-
-
-/* 32-bit BGRA */
-#define NAME(PREFIX) PREFIX##_B8G8R8A8
-#define FORMAT GL_RGBA8
-#define SPAN_VARS \
-   driRenderbuffer *drb = (driRenderbuffer *) rb;
-#define INIT_PIXEL_PTR(P, X, Y) \
-   GLubyte *P = (GLubyte *)drb->Base.Data + (drb->Base.Height - (Y)) * drb->pitch + (X) * 4;
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
-   DST[0] = VALUE[BCOMP]; \
-   DST[1] = VALUE[GCOMP]; \
-   DST[2] = VALUE[RCOMP]; \
-   DST[3] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
-   DST[0] = VALUE[BCOMP]; \
-   DST[1] = VALUE[GCOMP]; \
-   DST[2] = VALUE[RCOMP]; \
-   DST[3] = 0xff
-#define FETCH_PIXEL(DST, SRC) \
-   DST[RCOMP] = SRC[2]; \
-   DST[GCOMP] = SRC[1]; \
-   DST[BCOMP] = SRC[0]; \
-   DST[ACOMP] = SRC[3]
-
-#include "swrast/s_spantemp.h"
-
-
-/* 16-bit BGR (XXX implement dithering someday) */
-#define NAME(PREFIX) PREFIX##_B5G6R5
-#define FORMAT GL_RGBA8
-#define SPAN_VARS \
-   driRenderbuffer *drb = (driRenderbuffer *) rb;
-#define INIT_PIXEL_PTR(P, X, Y) \
-   GLushort *P = (GLushort *)drb->Base.Data + (drb->Base.Height - (Y)) * drb->pitch + (X) * 2;
-#define INC_PIXEL_PTR(P) P += 1
-#define STORE_PIXEL(DST, X, Y, VALUE) \
-   DST[0] = ( (((VALUE[RCOMP]) & 0xf8) << 8) | (((VALUE[GCOMP]) & 0xfc) << 3) | ((VALUE[BCOMP]) >> 3) )
-#define FETCH_PIXEL(DST, SRC) \
-   DST[RCOMP] = ( (((SRC[0]) >> 8) & 0xf8) | (((SRC[0]) >> 11) & 0x7) ); \
-   DST[GCOMP] = ( (((SRC[0]) >> 3) & 0xfc) | (((SRC[0]) >>  5) & 0x3) ); \
-   DST[BCOMP] = ( (((SRC[0]) << 3) & 0xf8) | (((SRC[0])      ) & 0x7) ); \
-   DST[ACOMP] = 0xff
-
-#include "swrast/s_spantemp.h"
-
-
-/* 15-bit BGR (XXX implement dithering someday) */
-#define NAME(PREFIX) PREFIX##_B5G5R5
-#define FORMAT GL_RGBA8
-#define SPAN_VARS \
-   driRenderbuffer *drb = (driRenderbuffer *) rb;
-#define INIT_PIXEL_PTR(P, X, Y) \
-   GLushort *P = (GLushort *)drb->Base.Data + (drb->Base.Height - (Y)) * drb->pitch + (X) * 2;
-#define INC_PIXEL_PTR(P) P += 1
-#define STORE_PIXEL(DST, X, Y, VALUE) \
-   DST[0] = ( (((VALUE[RCOMP]) & 0xf8) << 7) | (((VALUE[GCOMP]) & 0xf8) << 2) | ((VALUE[BCOMP]) >> 3) )
-#define FETCH_PIXEL(DST, SRC) \
-   DST[RCOMP] = ( (((SRC[0]) >> 7) & 0xf8) | (((SRC[0]) >> 10) & 0x7) ); \
-   DST[GCOMP] = ( (((SRC[0]) >> 2) & 0xf8) | (((SRC[0]) >>  5) & 0x7) ); \
-   DST[BCOMP] = ( (((SRC[0]) << 3) & 0xf8) | (((SRC[0])      ) & 0x7) ); \
-   DST[ACOMP] = 0xff
-
-#include "swrast/s_spantemp.h"
-
-
-/* 8-bit color index */
-#define NAME(PREFIX) PREFIX##_CI8
-#define FORMAT GL_COLOR_INDEX8_EXT
-#define SPAN_VARS \
-   driRenderbuffer *drb = (driRenderbuffer *) rb;
-#define INIT_PIXEL_PTR(P, X, Y) \
-   GLubyte *P = (GLubyte *)drb->Base.Data + (drb->Base.Height - (Y)) * drb->pitch + (X);
-#define INC_PIXEL_PTR(P) P += 1
-#define STORE_PIXEL(DST, X, Y, VALUE) \
-   *DST = VALUE[0]
-#define FETCH_PIXEL(DST, SRC) \
-   DST = SRC[0]
-
-#include "swrast/s_spantemp.h"
-
-
-
-void
-fbSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis)
-{
-   ASSERT(drb->Base.InternalFormat == GL_RGBA);
-   if (drb->Base.InternalFormat == GL_RGBA) {
-      if (vis->redBits == 5 && vis->greenBits == 6 && vis->blueBits == 5) {
-         drb->Base.GetRow = get_row_B5G6R5;
-         drb->Base.GetValues = get_values_B5G6R5;
-         drb->Base.PutRow = put_row_B5G6R5;
-         drb->Base.PutMonoRow = put_mono_row_B5G6R5;
-         drb->Base.PutRowRGB = put_row_rgb_B5G6R5;
-         drb->Base.PutValues = put_values_B5G6R5;
-         drb->Base.PutMonoValues = put_mono_values_B5G6R5;
-      }
-      else if (vis->redBits == 5 && vis->greenBits == 5 && vis->blueBits == 5) {
-         drb->Base.GetRow = get_row_B5G5R5;
-         drb->Base.GetValues = get_values_B5G5R5;
-         drb->Base.PutRow = put_row_B5G5R5;
-         drb->Base.PutMonoRow = put_mono_row_B5G5R5;
-         drb->Base.PutRowRGB = put_row_rgb_B5G5R5;
-         drb->Base.PutValues = put_values_B5G5R5;
-         drb->Base.PutMonoValues = put_mono_values_B5G5R5;
-      }
-      else if (vis->redBits == 8 && vis->greenBits == 8 && vis->blueBits == 8
-               && vis->alphaBits == 8) {
-         drb->Base.GetRow = get_row_B8G8R8A8;
-         drb->Base.GetValues = get_values_B8G8R8A8;
-         drb->Base.PutRow = put_row_B8G8R8A8;
-         drb->Base.PutMonoRow = put_mono_row_B8G8R8A8;
-         drb->Base.PutRowRGB = put_row_rgb_B8G8R8A8;
-         drb->Base.PutValues = put_values_B8G8R8A8;
-         drb->Base.PutMonoValues = put_mono_values_B8G8R8A8;
-      }
-      else if (vis->redBits == 8 && vis->greenBits == 8 && vis->blueBits == 8
-               && vis->alphaBits == 0) {
-         drb->Base.GetRow = get_row_B8G8R8;
-         drb->Base.GetValues = get_values_B8G8R8;
-         drb->Base.PutRow = put_row_B8G8R8;
-         drb->Base.PutMonoRow = put_mono_row_B8G8R8;
-         drb->Base.PutRowRGB = put_row_rgb_B8G8R8;
-         drb->Base.PutValues = put_values_B8G8R8;
-         drb->Base.PutMonoValues = put_mono_values_B8G8R8;
-      }
-      else if (vis->indexBits == 8) {
-         drb->Base.GetRow = get_row_CI8;
-         drb->Base.GetValues = get_values_CI8;
-         drb->Base.PutRow = put_row_CI8;
-         drb->Base.PutMonoRow = put_mono_row_CI8;
-         drb->Base.PutValues = put_values_CI8;
-         drb->Base.PutMonoValues = put_mono_values_CI8;
-      }
-   }
-   else {
-      /* hardware z/stencil/etc someday */
-   }
-}
-
-
-
-/* Initialize the driver specific screen private data.
- */
-static GLboolean
-fbInitDriver( __DRIscreen *sPriv )
-{
-   sPriv->private = NULL;
-   return GL_TRUE;
-}
-
-static void
-fbDestroyScreen( __DRIscreen *sPriv )
-{
-}
-
-
-/* Create the device specific context.
- */
-static GLboolean
-fbCreateContext( const __GLcontextModes *glVisual,
-                __DRIcontext *driContextPriv,
-                void *sharedContextPrivate)
-{
-   fbContextPtr fbmesa;
-   GLcontext *ctx, *shareCtx;
-   struct dd_function_table functions;
-
-   assert(glVisual);
-   assert(driContextPriv);
-
-   /* Allocate the Fb context */
-   fbmesa = (fbContextPtr) calloc(1,  sizeof(*fbmesa) );
-   if ( !fbmesa )
-      return GL_FALSE;
-
-   /* Init default driver functions then plug in our FBdev-specific functions
-    */
-   _mesa_init_driver_functions(&functions);
-   init_core_functions(&functions);
-
-   /* Allocate the Mesa context */
-   if (sharedContextPrivate)
-      shareCtx = ((fbContextPtr) sharedContextPrivate)->glCtx;
-   else
-      shareCtx = NULL;
-
-   ctx = fbmesa->glCtx = _mesa_create_context(glVisual, shareCtx, 
-                                             &functions, (void *) fbmesa);
-   if (!fbmesa->glCtx) {
-      free(fbmesa);
-      return GL_FALSE;
-   }
-   driContextPriv->driverPrivate = fbmesa;
-
-   /* Create module contexts */
-   _swrast_CreateContext( ctx );
-   _vbo_CreateContext( ctx );
-   _tnl_CreateContext( ctx );
-   _swsetup_CreateContext( ctx );
-   _swsetup_Wakeup( ctx );
-
-
-   /* use default TCL pipeline */
-   {
-      TNLcontext *tnl = TNL_CONTEXT(ctx);
-      tnl->Driver.RunPipeline = _tnl_run_pipeline;
-   }
-
-   _mesa_enable_sw_extensions(ctx);
-
-   return GL_TRUE;
-}
-
-
-static void
-fbDestroyContext( __DRIcontext *driContextPriv )
-{
-   GET_CURRENT_CONTEXT(ctx);
-   fbContextPtr fbmesa = (fbContextPtr) driContextPriv->driverPrivate;
-   fbContextPtr current = ctx ? FB_CONTEXT(ctx) : NULL;
-
-   /* check if we're deleting the currently bound context */
-   if (fbmesa == current) {
-      _mesa_make_current(NULL, NULL, NULL);
-   }
-
-   /* Free fb context resources */
-   if ( fbmesa ) {
-      _swsetup_DestroyContext( fbmesa->glCtx );
-      _tnl_DestroyContext( fbmesa->glCtx );
-      _vbo_DestroyContext( fbmesa->glCtx );
-      _swrast_DestroyContext( fbmesa->glCtx );
-
-      /* free the Mesa context */
-      fbmesa->glCtx->DriverCtx = NULL;
-      _mesa_destroy_context( fbmesa->glCtx );
-
-      free( fbmesa );
-   }
-}
-
-
-/* Create and initialize the Mesa and driver specific pixmap buffer
- * data.
- */
-static GLboolean
-fbCreateBuffer( __DRIscreen *driScrnPriv,
-               __DRIdrawable *driDrawPriv,
-               const __GLcontextModes *mesaVis,
-               GLboolean isPixmap )
-{
-   struct gl_framebuffer *mesa_framebuffer;
-   
-   if (isPixmap) {
-      return GL_FALSE; /* not implemented */
-   }
-   else {
-      const GLboolean swDepth = mesaVis->depthBits > 0;
-      const GLboolean swAlpha = mesaVis->alphaBits > 0;
-      const GLboolean swAccum = mesaVis->accumRedBits > 0;
-      const GLboolean swStencil = mesaVis->stencilBits > 0;
-      
-      mesa_framebuffer = _mesa_create_framebuffer(mesaVis);
-      if (!mesa_framebuffer)
-         return 0;
-
-      /* XXX double-check these parameters (bpp vs cpp, etc) */
-      {
-         driRenderbuffer *drb = driNewRenderbuffer(MESA_FORMAT_ARGB8888,
-                                                   driScrnPriv->pFB,
-                                                   driScrnPriv->fbBPP / 8,
-                                                   driScrnPriv->fbOrigin,
-                                                   driScrnPriv->fbStride,
-                                                   driDrawPriv);
-         fbSetSpanFunctions(drb, mesaVis);
-         _mesa_add_renderbuffer(mesa_framebuffer,
-                                BUFFER_FRONT_LEFT, &drb->Base);
-      }
-      if (mesaVis->doubleBufferMode) {
-         /* XXX what are the correct origin/stride values? */
-         GLvoid *backBuf = malloc(driScrnPriv->fbStride
-                                        * driScrnPriv->fbHeight);
-         driRenderbuffer *drb = driNewRenderbuffer(MESA_FORMAT_ARGB8888,
-                                                   backBuf,
-                                                   driScrnPriv->fbBPP /8,
-                                                   driScrnPriv->fbOrigin,
-                                                   driScrnPriv->fbStride,
-                                                   driDrawPriv);
-         fbSetSpanFunctions(drb, mesaVis);
-         _mesa_add_renderbuffer(mesa_framebuffer,
-                                BUFFER_BACK_LEFT, &drb->Base);
-      }
-
-      _mesa_add_soft_renderbuffers(mesa_framebuffer,
-                                   GL_FALSE, /* color */
-                                   swDepth,
-                                   swStencil,
-                                   swAccum,
-                                   swAlpha, /* or always zero? */
-                                   GL_FALSE /* aux */);
-      
-      driDrawPriv->driverPrivate = mesa_framebuffer;
-
-      return 1;
-   }
-}
-
-
-static void
-fbDestroyBuffer(__DRIdrawable *driDrawPriv)
-{
-   _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL);
-}
-
-
-
-/* If the backbuffer is on a videocard, this is extraordinarily slow!
- */
-static void
-fbSwapBuffers( __DRIdrawable *dPriv )
-{
-   struct gl_framebuffer *mesa_framebuffer = (struct gl_framebuffer *)dPriv->driverPrivate;
-   struct gl_renderbuffer * front_renderbuffer = mesa_framebuffer->Attachment[BUFFER_FRONT_LEFT].Renderbuffer;
-   void *frontBuffer = front_renderbuffer->Data;
-   int currentPitch = ((driRenderbuffer *)front_renderbuffer)->pitch;
-   void *backBuffer = mesa_framebuffer->Attachment[BUFFER_BACK_LEFT].Renderbuffer->Data;
-
-   if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) {
-      fbContextPtr fbmesa = (fbContextPtr) dPriv->driContextPriv->driverPrivate;
-      GLcontext *ctx = fbmesa->glCtx;
-      
-      if (ctx->Visual.doubleBufferMode) {
-        int i;
-        int offset = 0;
-         char *tmp = malloc(currentPitch);
-
-         _mesa_notifySwapBuffers( ctx );  /* flush pending rendering comands */
-
-         ASSERT(frontBuffer);
-         ASSERT(backBuffer);
-
-        for (i = 0; i < dPriv->h; i++) {
-            memcpy(tmp, (char *) backBuffer + offset, currentPitch);
-            memcpy((char *) frontBuffer + offset, tmp, currentPitch);
-            offset += currentPitch;
-        }
-           
-        free(tmp);
-      }
-   }
-   else {
-      /* XXX this shouldn't be an error but we can't handle it for now */
-      _mesa_problem(NULL, "fbSwapBuffers: drawable has no context!\n");
-   }
-}
-
-
-/* Force the context `c' to be the current context and associate with it
- * buffer `b'.
- */
-static GLboolean
-fbMakeCurrent( __DRIcontext *driContextPriv,
-              __DRIdrawable *driDrawPriv,
-              __DRIdrawable *driReadPriv )
-{
-   if ( driContextPriv ) {
-      fbContextPtr newFbCtx = 
-            (fbContextPtr) driContextPriv->driverPrivate;
-
-      newFbCtx->dri.drawable = driDrawPriv;
-
-      _mesa_make_current( newFbCtx->glCtx, 
-                           driDrawPriv->driverPrivate,
-                           driReadPriv->driverPrivate);
-   } else {
-      _mesa_make_current( NULL, NULL, NULL );
-   }
-
-   return GL_TRUE;
-}
-
-
-/* Force the context `c' to be unbound from its buffer.
- */
-static GLboolean
-fbUnbindContext( __DRIcontext *driContextPriv )
-{
-   return GL_TRUE;
-}
-
-static struct __DriverAPIRec fbAPI = {
-   .InitDriver      = fbInitDriver,
-   .DestroyScreen   = fbDestroyScreen,
-   .CreateContext   = fbCreateContext,
-   .DestroyContext  = fbDestroyContext,
-   .CreateBuffer    = fbCreateBuffer,
-   .DestroyBuffer   = fbDestroyBuffer,
-   .SwapBuffers     = fbSwapBuffers,
-   .MakeCurrent     = fbMakeCurrent,
-   .UnbindContext   = fbUnbindContext,
-};
-
-
-
-static int
-__driValidateMode(const DRIDriverContext *ctx )
-{
-   return 1;
-}
-
-static int
-__driInitFBDev( struct DRIDriverContextRec *ctx )
-{
-   /* Note that drmOpen will try to load the kernel module, if needed. */
-   /* we need a fbdev drm driver - it will only track maps */
-   ctx->drmFD = drmOpen("radeon", NULL );
-   if (ctx->drmFD < 0) {
-      fprintf(stderr, "[drm] drmOpen failed\n");
-      return 0;
-   }
-
-   ctx->shared.SAREASize = SAREA_MAX;
-
-   if (drmAddMap( ctx->drmFD,
-       0,
-       ctx->shared.SAREASize,
-       DRM_SHM,
-       DRM_CONTAINS_LOCK,
-       &ctx->shared.hSAREA) < 0)
-   {
-      fprintf(stderr, "[drm] drmAddMap failed\n");
-      return 0;
-   }
-   fprintf(stderr, "[drm] added %d byte SAREA at 0x%08lx\n",
-           ctx->shared.SAREASize,
-           (unsigned long) ctx->shared.hSAREA);
-
-   if (drmMap( ctx->drmFD,
-       ctx->shared.hSAREA,
-       ctx->shared.SAREASize,
-       (drmAddressPtr)(&ctx->pSAREA)) < 0)
-   {
-      fprintf(stderr, "[drm] drmMap failed\n");
-      return 0;
-   }
-   memset(ctx->pSAREA, 0, ctx->shared.SAREASize);
-   fprintf(stderr, "[drm] mapped SAREA 0x%08lx to %p, size %d\n",
-           (unsigned long) ctx->shared.hSAREA, ctx->pSAREA,
-           ctx->shared.SAREASize);
-   
-   /* Need to AddMap the framebuffer and mmio regions here:
-   */
-   if (drmAddMap( ctx->drmFD,
-       (drm_handle_t)ctx->FBStart,
-       ctx->FBSize,
-       DRM_FRAME_BUFFER,
-#ifndef _EMBEDDED
-                 0,
-#else
-                 DRM_READ_ONLY,
-#endif
-                 &ctx->shared.hFrameBuffer) < 0)
-   {
-      fprintf(stderr, "[drm] drmAddMap framebuffer failed\n");
-      return 0;
-   }
-
-   fprintf(stderr, "[drm] framebuffer handle = 0x%08lx\n",
-           (unsigned long) ctx->shared.hFrameBuffer);
-
-   return 1;
-}
-
-static void
-__driHaltFBDev( struct DRIDriverContextRec *ctx )
-{
-}
-
-struct DRIDriverRec __driDriver = {
-   __driValidateMode,
-   __driValidateMode,
-   __driInitFBDev,
-   __driHaltFBDev
-};
-
-static __GLcontextModes *
-fbFillInModes( __DRIscreen *psp,
-              unsigned pixel_bits, unsigned depth_bits,
-              unsigned stencil_bits, GLboolean have_back_buffer )
-{
-   __GLcontextModes * modes;
-   __GLcontextModes * m;
-   unsigned num_modes;
-   unsigned depth_buffer_factor;
-   unsigned back_buffer_factor;
-   GLenum fb_format;
-   GLenum fb_type;
-
-    /* Right now GLX_SWAP_COPY_OML isn't supported, but it would be easy
-   * enough to add support.  Basically, if a context is created with an
-   * fbconfig where the swap method is GLX_SWAP_COPY_OML, pageflipping
-   * will never be used.
-    */
-   static const GLenum back_buffer_modes[] = {
-      GLX_NONE, GLX_SWAP_UNDEFINED_OML /*, GLX_SWAP_COPY_OML */
-   };
-
-   uint8_t depth_bits_array[2];
-   uint8_t stencil_bits_array[2];
-
-
-   depth_bits_array[0] = depth_bits;
-   depth_bits_array[1] = depth_bits;
-    
-    /* Just like with the accumulation buffer, always provide some modes
-   * with a stencil buffer.  It will be a sw fallback, but some apps won't
-   * care about that.
-    */
-   stencil_bits_array[0] = 0;
-   stencil_bits_array[1] = (stencil_bits == 0) ? 8 : stencil_bits;
-
-   depth_buffer_factor = ((depth_bits != 0) || (stencil_bits != 0)) ? 2 : 1;
-   back_buffer_factor  = (have_back_buffer) ? 2 : 1;
-
-   num_modes = depth_buffer_factor * back_buffer_factor * 4;
-
-   if ( pixel_bits == 16 ) {
-      fb_format = GL_RGB;
-      fb_type = GL_UNSIGNED_SHORT_5_6_5;
-   }
-   else {
-      fb_format = GL_RGBA;
-      fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
-   }
-
-   modes = (*psp->contextModes->createContextModes)( num_modes, sizeof( __GLcontextModes ) );
-   m = modes;
-   if ( ! driFillInModes( & m, fb_format, fb_type,
-          depth_bits_array, stencil_bits_array, depth_buffer_factor,
-          back_buffer_modes, back_buffer_factor,
-          GLX_TRUE_COLOR ) ) {
-             fprintf( stderr, "[%s:%u] Error creating FBConfig!\n",
-                      __func__, __LINE__ );
-             return NULL;
-          }
-
-          if ( ! driFillInModes( & m, fb_format, fb_type,
-                 depth_bits_array, stencil_bits_array, depth_buffer_factor,
-                 back_buffer_modes, back_buffer_factor,
-                 GLX_DIRECT_COLOR ) ) {
-                    fprintf( stderr, "[%s:%u] Error creating FBConfig!\n",
-                             __func__, __LINE__ );
-                    return NULL;
-                 }
-
-    /* Mark the visual as slow if there are "fake" stencil bits.
-    */
-                 for ( m = modes ; m != NULL ; m = m->next ) {
-                    if ( (m->stencilBits != 0) && (m->stencilBits != stencil_bits) ) {
-                       m->visualRating = GLX_SLOW_CONFIG;
-                    }
-                 }
-
-                 return modes;
-}
-
-
-/**
- * This is the bootstrap function for the driver.  libGL supplies all of the
- * requisite information about the system, and the driver initializes itself.
- * This routine also fills in the linked list pointed to by \c driver_modes
- * with the \c __GLcontextModes that the driver can support for windows or
- * pbuffers.
- * 
- * \return A pointer to a \c __DRIscreen on success, or \c NULL on 
- *         failure.
- */
-PUBLIC
-void * __driCreateNewScreen( __DRInativeDisplay *dpy, int scrn, __DRIscreen *psc,
-                                   const __GLcontextModes * modes,
-                                   const __DRIversion * ddx_version,
-                                   const __DRIversion * dri_version,
-                                   const __DRIversion * drm_version,
-                                   const __DRIframebuffer * frame_buffer,
-                                   drmAddress pSAREA, int fd, 
-                                   int internal_api_version,
-                                   __GLcontextModes ** driver_modes )
-{
-   __DRIscreen *psp;
-   static const __DRIversion ddx_expected = { 4, 0, 0 };
-   static const __DRIversion dri_expected = { 4, 0, 0 };
-   static const __DRIversion drm_expected = { 1, 5, 0 };
-
-
-   if ( ! driCheckDriDdxDrmVersions2( "fb",
-          dri_version, & dri_expected,
-          ddx_version, & ddx_expected,
-          drm_version, & drm_expected ) ) {
-             return NULL;
-          }
-      
-          psp = __driUtilCreateNewScreen(dpy, scrn, psc, NULL,
-                                         ddx_version, dri_version, drm_version,
-                                         frame_buffer, pSAREA, fd,
-                                         internal_api_version, &fbAPI);
-          if ( psp != NULL ) {
-            *driver_modes = fbFillInModes( psp, psp->fbBPP,
-                                           (psp->fbBPP == 16) ? 16 : 24,
-                                           (psp->fbBPP == 16) ? 0  : 8,
-                                           1);
-          }
-
-          return (void *) psp;
-}
-
-/* This is the table of extensions that the loader will dlsym() for. */
-PUBLIC const __DRIextension *__driDriverExtensions[] = {
-    &driCoreExtension.base,
-    &driLegacyExtension.base,
-    NULL
-};
diff --git a/src/mesa/drivers/dri/ffb/Makefile b/src/mesa/drivers/dri/ffb/Makefile
deleted file mode 100644 (file)
index e9da8f9..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# src/mesa/drivers/dri/ffb/Makefile
-
-TOP = ../../../../..
-include $(TOP)/configs/current
-
-LIBNAME = ffb_dri.so
-
-# not yet
-# MINIGLX_SOURCES = server/ffb_dri.c 
-
-DRIVER_SOURCES = \
-       ffb_bitmap.c \
-       ffb_clear.c \
-       ffb_dd.c \
-       ffb_depth.c \
-       ffb_fog.c \
-       ffb_lines.c \
-       ffb_points.c \
-       ffb_span.c \
-       ffb_state.c \
-       ffb_stencil.c \
-       ffb_tex.c \
-       ffb_tris.c \
-       ffb_vb.c \
-       ffb_xmesa.c
-
-C_SOURCES = \
-       $(COMMON_SOURCES) \
-       $(DRIVER_SOURCES)
-
-
-ASM_SOURCES = 
-
-include ../Makefile.template
-
diff --git a/src/mesa/drivers/dri/ffb/ffb_bitmap.c b/src/mesa/drivers/dri/ffb/ffb_bitmap.c
deleted file mode 100644 (file)
index b71a552..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "ffb_context.h"
-#include "ffb_state.h"
-#include "ffb_lock.h"
-#include "ffb_bitmap.h"
-#include "swrast/swrast.h"
-#include "main/macros.h"
-
-/* Compute ceiling of integer quotient of A divided by B: */
-#define CEILING( A, B )  ( (A) % (B) == 0 ? (A)/(B) : (A)/(B)+1 )
-
-#undef FFB_BITMAP_TRACE
-
-static void
-ffb_bitmap(GLcontext *ctx, GLint px, GLint py,
-          GLsizei width, GLsizei height,
-          const struct gl_pixelstore_attrib *unpack,
-          const GLubyte *bitmap)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_fbcPtr ffb = fmesa->regs;
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       unsigned int ppc, pixel;
-       GLint row, col, row_stride;
-       const GLubyte *src;
-       char *buf;
-
-       if (fmesa->bad_fragment_attrs != 0)
-               _swrast_Bitmap(ctx, px, py, width,
-                              height, unpack, bitmap);
-
-       pixel = (((((GLuint)(ctx->Current.RasterColor[0] * 255.0f)) & 0xff) <<  0) |
-                ((((GLuint)(ctx->Current.RasterColor[1] * 255.0f)) & 0xff) <<  8) |
-                ((((GLuint)(ctx->Current.RasterColor[2] * 255.0f)) & 0xff) << 16) |
-                ((((GLuint)(ctx->Current.RasterColor[3] * 255.0f)) & 0xff) << 24));
-
-#ifdef FFB_BITMAP_TRACE
-       fprintf(stderr, "ffb_bitmap: ppc(%08x) fbc(%08x) cmp(%08x) pixel(%08x)\n",
-               fmesa->ppc, fmesa->fbc, fmesa->cmp, pixel);
-#endif
-
-       LOCK_HARDWARE(fmesa);
-       fmesa->hw_locked = 1;
-
-       if (fmesa->state_dirty)
-               ffbSyncHardware(fmesa);
-
-       ppc = fmesa->ppc;
-
-       FFBFifo(fmesa, 4);
-       ffb->ppc = ((ppc &
-                    ~(FFB_PPC_TBE_MASK | FFB_PPC_ZS_MASK | FFB_PPC_CS_MASK | FFB_PPC_XS_MASK))
-                   | (FFB_PPC_TBE_TRANSPARENT | FFB_PPC_ZS_CONST | FFB_PPC_CS_CONST |
-                      (ctx->Color.BlendEnabled ? FFB_PPC_XS_CONST : FFB_PPC_XS_WID)));
-       ffb->constz = ((GLuint) (ctx->Current.RasterPos[2] * 0x0fffffff));
-       ffb->fg = pixel;
-       ffb->fontinc = (0 << 16) | 32;
-
-       buf = (char *)(fmesa->sfb32 + (dPriv->x << 2) + (dPriv->y << 13));
-
-       row_stride = (unpack->Alignment * CEILING(width, 8 * unpack->Alignment));
-       src = (const GLubyte *) (bitmap +
-                                (unpack->SkipRows * row_stride) +
-                                (unpack->SkipPixels / 8));
-       if (unpack->LsbFirst == GL_TRUE) {
-               for (row = 0; row < height; row++, src += row_stride) {
-                       const GLubyte *row_src = src;
-                       GLuint base_x, base_y;
-
-                       base_x = dPriv->x + px;
-                       base_y = dPriv->y + (dPriv->h - (py + row));
-
-                       FFBFifo(fmesa, 1);
-                       ffb->fontxy = (base_y << 16) | base_x;
-
-                       for (col = 0; col < width; col += 32, row_src += 4) {
-                               GLint bitnum, font_w = (width - col);
-                               GLuint font_data;
-
-                               if (font_w > 32)
-                                       font_w = 32;
-                               font_data = 0;
-                               for (bitnum = 0; bitnum < 32; bitnum++) {
-                                       const GLubyte val = row_src[bitnum >> 3];
-
-                                       if (val & (1 << (bitnum & (8 - 1))))
-                                               font_data |= (1 << (31 - bitnum));
-                               }
-
-                               FFBFifo(fmesa, 2);
-                               ffb->fontw = font_w;
-                               ffb->font = font_data;
-                       }
-               }
-       } else {
-               for (row = 0; row < height; row++, src += row_stride) {
-                       const GLubyte *row_src = src;
-                       GLuint base_x, base_y;
-
-                       base_x = dPriv->x + px;
-                       base_y = dPriv->y + (dPriv->h - (py + row));
-
-                       FFBFifo(fmesa, 1);
-                       ffb->fontxy = (base_y << 16) | base_x;
-
-                       for (col = 0; col < width; col += 32, row_src += 4) {
-                               GLint font_w = (width - col);
-
-                               if (font_w > 32)
-                                       font_w = 32;
-                               FFBFifo(fmesa, 2);
-                               ffb->fontw = font_w;
-                               ffb->font = (((unsigned int)row_src[0]) << 24 |
-                                            ((unsigned int)row_src[1]) << 16 |
-                                            ((unsigned int)row_src[2]) <<  8 |
-                                            ((unsigned int)row_src[3]) <<  0);
-                       }
-               }
-       }
-
-       FFBFifo(fmesa, 1);
-       ffb->ppc = ppc;
-       fmesa->ffbScreen->rp_active = 1;
-
-       UNLOCK_HARDWARE(fmesa);
-       fmesa->hw_locked = 0;
-}
-
-void ffbDDInitBitmapFuncs(GLcontext *ctx)
-{
-       ctx->Driver.Bitmap = ffb_bitmap;
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_bitmap.h b/src/mesa/drivers/dri/ffb/ffb_bitmap.h
deleted file mode 100644 (file)
index 0ccbc57..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-#ifndef _FFB_BITMAP_H
-#define _FFB_BITMAP_H
-
-extern void ffbDDInitBitmapFuncs(GLcontext *);
-
-#endif /* !(_FFB_BITMAP_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_clear.c b/src/mesa/drivers/dri/ffb/ffb_clear.c
deleted file mode 100644 (file)
index aa3fa0a..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-
-#include "main/mm.h"
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_context.h"
-#include "ffb_vb.h"
-#include "ffb_clear.h"
-#include "ffb_lock.h"
-
-#undef CLEAR_TRACE
-
-#define BOX_AREA(__w, __h)     ((int)(__w) * (int)(__h))
-
-/* Compute the page aligned box for a page mode fast fill.
- * In 'ework' this returns greater than zero if there are some odd
- * edges to take care of which are outside of the page aligned area.
- * It will place less than zero there if the box is too small,
- * indicating that a different method must be used to fill it.
- */
-#define CreatorPageFillParms(ffp, x, y, w, h, px, py, pw, ph, ework) \
-do {   int xdiff, ydiff; \
-       int pf_bh = ffp->pagefill_height; \
-       int pf_bw = ffp->pagefill_width; \
-       py = ((y + (pf_bh - 1)) & ~(pf_bh - 1)); \
-       ydiff = py - y; \
-       px = ffp->Pf_AlignTab[x + (pf_bw - 1)]; \
-       xdiff = px - x; \
-       ph = ((h - ydiff) & ~(pf_bh - 1)); \
-       if(ph <= 0) \
-               ework = -1; \
-       else { \
-               pw = ffp->Pf_AlignTab[w - xdiff]; \
-               if(pw <= 0) { \
-                       ework = -1; \
-               } else { \
-                       ework = (((xdiff > 0)           || \
-                                 (ydiff > 0)           || \
-                                 ((w - pw) > 0)        || \
-                                 ((h - ph) > 0))) ? 1 : 0; \
-               } \
-       } \
-} while(0);
-
-struct ff_fixups {
-       int x, y, width, height;
-};
-
-/* Compute fixups of non-page aligned areas after a page fill.
- * Return the number of fixups needed.
- */
-static INLINE int
-CreatorComputePageFillFixups(struct ff_fixups *fixups,
-                            int x, int y, int w, int h,
-                            int paligned_x, int paligned_y,
-                            int paligned_w, int paligned_h)
-{
-       int nfixups = 0;
-
-       /* FastFill Left */
-       if(paligned_x != x) {
-               fixups[nfixups].x = x;
-               fixups[nfixups].y = paligned_y;
-               fixups[nfixups].width = paligned_x - x;
-               fixups[nfixups].height = paligned_h;
-               nfixups++;
-       }
-       /* FastFill Top */
-       if(paligned_y != y) {
-               fixups[nfixups].x = x;
-               fixups[nfixups].y = y;
-               fixups[nfixups].width = w;
-               fixups[nfixups].height = paligned_y - y;
-               nfixups++;
-       }
-       /* FastFill Right */
-       if((x+w) != (paligned_x+paligned_w)) {
-               fixups[nfixups].x = (paligned_x+paligned_w);
-               fixups[nfixups].y = paligned_y;
-               fixups[nfixups].width = (x+w) - fixups[nfixups].x;
-               fixups[nfixups].height = paligned_h;
-               nfixups++;
-       }
-       /* FastFill Bottom */
-       if((y+h) != (paligned_y+paligned_h)) {
-               fixups[nfixups].x = x;
-               fixups[nfixups].y = (paligned_y+paligned_h);
-               fixups[nfixups].width = w;
-               fixups[nfixups].height = (y+h) - fixups[nfixups].y;
-               nfixups++;
-       }
-       return nfixups;
-}
-
-static void
-ffb_do_clear(GLcontext *ctx, __DRIdrawable *dPriv)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       FFBDRIPtr gDRIPriv = (FFBDRIPtr) fmesa->driScreen->pDevPriv;
-       ffb_fbcPtr ffb = fmesa->regs;
-       drm_clip_rect_t *box = dPriv->pClipRects;
-       int nc = dPriv->numClipRects;
-       GLint cx, cy, cw, ch;
-
-       /* compute region after locking: */
-       cx = ctx->DrawBuffer->_Xmin;
-       cy = ctx->DrawBuffer->_Ymin;
-       cw = ctx->DrawBuffer->_Xmax - cx;
-       ch = ctx->DrawBuffer->_Ymax - cy;
-
-       cy  = dPriv->h - cy - ch;
-       cx += dPriv->x;
-       cy += dPriv->y;
-
-       while (nc--) {
-               GLint x = box[nc].x1;
-               GLint y = box[nc].y1;
-               GLint width = box[nc].x2 - x;
-               GLint height = box[nc].y2 - y;
-               int paligned_y, paligned_x;
-               int paligned_h, paligned_w = 0;
-               int extra_work;
-
-               if (BOX_AREA(width, height) < gDRIPriv->fastfill_small_area) {
-                       FFBFifo(fmesa, 5);
-                       ffb->drawop = FFB_DRAWOP_RECTANGLE;
-                       ffb->by = y;
-                       ffb->bx = x;
-                       ffb->bh = height;
-                       ffb->bw = width;
-                       continue;
-               }
-
-               FFBFifo(fmesa, 1);
-               ffb->drawop = FFB_DRAWOP_FASTFILL;
-
-               if (gDRIPriv->disable_pagefill ||
-                   (width < (gDRIPriv->pagefill_width<<1)) ||
-                   (height < (gDRIPriv->pagefill_height<<1)))
-                       goto do_fastfill;
-
-               CreatorPageFillParms(gDRIPriv,
-                                    x, y, width, height,
-                                    paligned_x, paligned_y,
-                                    paligned_w, paligned_h, extra_work);
-
-               if (extra_work < 0 ||
-                   BOX_AREA(paligned_w, paligned_h) < gDRIPriv->pagefill_small_area) {
-               do_fastfill:
-                       FFBFifo(fmesa, 10);
-                       ffb->by = FFB_FASTFILL_COLOR_BLK;
-                       ffb->dy = 0;
-                       ffb->dx = 0;
-                       ffb->bh = gDRIPriv->fastfill_height;
-                       ffb->bw = (gDRIPriv->fastfill_width * 4);
-                       ffb->by = FFB_FASTFILL_BLOCK;
-                       ffb->dy = y;
-                       ffb->dx = x;
-                       ffb->bh = (height + (y & (gDRIPriv->fastfill_height - 1)));
-                       ffb->bx = (width + (x & (gDRIPriv->fastfill_width - 1)));
-                       continue;
-               }
-
-               /* Ok, page fill is possible and worth it. */
-               FFBFifo(fmesa, 15);
-               ffb->by = FFB_FASTFILL_COLOR_BLK;
-               ffb->dy = 0;
-               ffb->dx = 0;
-               ffb->bh = gDRIPriv->fastfill_height;
-               ffb->bw = gDRIPriv->fastfill_width * 4;
-               ffb->by = FFB_FASTFILL_BLOCK_X;
-               ffb->dy = 0;
-               ffb->dx = 0;
-               ffb->bh = gDRIPriv->pagefill_height;
-               ffb->bw = gDRIPriv->pagefill_width * 4;
-               ffb->by = FFB_FASTFILL_PAGE;
-               ffb->dy = paligned_y;
-               ffb->dx = paligned_x;
-               ffb->bh = paligned_h;
-               ffb->bx = paligned_w;
-
-               if (extra_work) {
-                       struct ff_fixups local_fixups[4];
-                       int nfixups;
-
-                       nfixups = CreatorComputePageFillFixups(local_fixups,
-                                                              x, y, width, height,
-                                                              paligned_x, paligned_y,
-                                                              paligned_w, paligned_h);
-                       FFBFifo(fmesa, 5 + (nfixups * 5));
-                       ffb->by = FFB_FASTFILL_COLOR_BLK;
-                       ffb->dy = 0;
-                       ffb->dx = 0;
-                       ffb->bh = gDRIPriv->fastfill_height;
-                       ffb->bw = gDRIPriv->fastfill_width * 4;
-
-                       while (--nfixups >= 0) {
-                               int xx, yy, ww, hh;
-
-                               xx = local_fixups[nfixups].x;
-                               yy = local_fixups[nfixups].y;
-                               ffb->dy = yy;
-                               ffb->dx = xx;
-                               ww = (local_fixups[nfixups].width +
-                                     (xx & (gDRIPriv->fastfill_width - 1)));
-                               hh = (local_fixups[nfixups].height +
-                                     (yy & (gDRIPriv->fastfill_height - 1)));
-                               if (nfixups != 0) {
-                                       ffb->by = FFB_FASTFILL_BLOCK;
-                                       ffb->bh = hh;
-                                       ffb->bw = ww;
-                               } else {
-                                       ffb->bh = hh;
-                                       ffb->by = FFB_FASTFILL_BLOCK;
-                                       ffb->bx = ww;
-                               }
-                       }
-               }
-       }
-}
-
-void ffbDDClear(GLcontext *ctx, GLbitfield mask)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       unsigned int stcmask = BUFFER_BIT_STENCIL;
-
-#ifdef CLEAR_TRACE
-       fprintf(stderr, "ffbDDClear: mask(%08x) \n", mask);
-#endif
-       if (!(fmesa->ffb_sarea->flags & FFB_DRI_FFB2PLUS))
-               stcmask = 0;
-
-       if (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT | BUFFER_BIT_DEPTH | stcmask)) {
-               ffb_fbcPtr ffb = fmesa->regs;
-               unsigned int fbc, ppc;
-
-               fbc = (FFB_FBC_XE_ON);
-               ppc = (FFB_PPC_ACE_DISABLE | FFB_PPC_DCE_DISABLE |
-                      FFB_PPC_ABE_DISABLE | FFB_PPC_VCE_DISABLE |
-                      FFB_PPC_APE_DISABLE | FFB_PPC_XS_WID |
-                      FFB_PPC_ZS_CONST | FFB_PPC_CS_CONST);
-
-               /* Y/X enables must be both on or both off. */
-               if (mask & (BUFFER_BIT_DEPTH | stcmask)) {
-                       fbc |= (FFB_FBC_ZE_ON | FFB_FBC_YE_ON | FFB_FBC_WB_C);
-               } else
-                       fbc |= FFB_FBC_ZE_OFF | FFB_FBC_YE_OFF;
-
-               /* All RGB enables must be both on or both off. */
-               if (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT)) {
-                       if (mask & BUFFER_BIT_FRONT_LEFT) {
-                               if (fmesa->back_buffer == 0)
-                                       fbc |= FFB_FBC_WB_B;
-                               else
-                                       fbc |= FFB_FBC_WB_A;
-                       }
-                       if (mask & BUFFER_BIT_BACK_LEFT) {
-                               if (fmesa->back_buffer == 0)
-                                       fbc |= FFB_FBC_WB_A;
-                               else
-                                       fbc |= FFB_FBC_WB_B;
-                       }
-                       fbc |= FFB_FBC_RGBE_ON;
-               } else
-                       fbc |= FFB_FBC_RGBE_OFF;
-
-               LOCK_HARDWARE(fmesa);
-
-               if (dPriv->numClipRects) {
-                       FFBFifo(fmesa, 8);
-                       ffb->fbc = fbc;
-                       ffb->ppc = ppc;
-                       ffb->xclip = FFB_XCLIP_TEST_ALWAYS;
-                       ffb->cmp = 0x80808080;
-                       ffb->rop = FFB_ROP_NEW;
-
-                       if (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT))
-                               ffb->fg = fmesa->clear_pixel;
-                       if (mask & BUFFER_BIT_DEPTH)
-                               ffb->constz = fmesa->clear_depth;
-                       if (mask & stcmask)
-                               ffb->consty = fmesa->clear_stencil;
-
-                       ffb_do_clear(ctx, dPriv);
-
-                       FFBFifo(fmesa, 6);
-                       ffb->ppc = fmesa->ppc;
-                       ffb->fbc = fmesa->fbc;
-                       ffb->xclip = fmesa->xclip;
-                       ffb->cmp = fmesa->cmp;
-                       ffb->rop = fmesa->rop;
-                       ffb->drawop = fmesa->drawop;
-                       if (mask & stcmask)
-                               ffb->consty = fmesa->consty;
-                       fmesa->ffbScreen->rp_active = 1;
-               }
-
-               UNLOCK_HARDWARE(fmesa);
-
-               mask &= ~(BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT |
-                         BUFFER_BIT_DEPTH | stcmask);
-       }
-
-       if (mask) 
-               _swrast_Clear(ctx, mask);
-}
-
diff --git a/src/mesa/drivers/dri/ffb/ffb_clear.h b/src/mesa/drivers/dri/ffb/ffb_clear.h
deleted file mode 100644 (file)
index c3b8ce7..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _FFB_CLEAR_H
-#define _FFB_CLEAR_H
-
-extern void ffbDDClear(GLcontext *ctx, GLbitfield mask);
-
-#endif /* !(_FFB_CLEAR_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_context.h b/src/mesa/drivers/dri/ffb/ffb_context.h
deleted file mode 100644 (file)
index 4d1d53f..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-
-#ifndef _FFB_CONTEXT_H
-#define _FFB_CONTEXT_H
-
-#include "dri_util.h"
-#include "drm.h"
-
-#include "main/mtypes.h"
-
-#include "ffb_xmesa.h"
-
-typedef struct {
-       GLfloat alpha;
-       GLfloat red;
-       GLfloat green;
-       GLfloat blue;
-} ffb_color;
-
-#define FFB_GET_ALPHA(VTX)     \
-       FFB_COLOR_FROM_FLOAT((VTX)->color[0].alpha)
-#define FFB_GET_RED(VTX)       \
-       FFB_COLOR_FROM_FLOAT((VTX)->color[0].red)
-#define FFB_GET_GREEN(VTX)     \
-       FFB_COLOR_FROM_FLOAT((VTX)->color[0].green)
-#define FFB_GET_BLUE(VTX)      \
-       FFB_COLOR_FROM_FLOAT((VTX)->color[0].blue)
-
-typedef struct {
-       GLfloat x, y, z;
-       ffb_color       color[2];
-} ffb_vertex;
-
-#define FFB_DELAYED_VIEWPORT_VARS                              \
-       GLfloat         VP_SX = fmesa->hw_viewport[MAT_SX];     \
-       GLfloat         VP_TX = fmesa->hw_viewport[MAT_TX];     \
-       GLfloat         VP_SY = fmesa->hw_viewport[MAT_SY];     \
-       GLfloat         VP_TY = fmesa->hw_viewport[MAT_TY];     \
-       GLfloat         VP_SZ = fmesa->hw_viewport[MAT_SZ];     \
-       GLfloat         VP_TZ = fmesa->hw_viewport[MAT_TZ];     \
-       (void) VP_SX; (void) VP_SY; (void) VP_SZ;               \
-       (void) VP_TX; (void) VP_TY; (void) VP_TZ
-
-#define FFB_GET_Z(VTX)                 \
-       FFB_Z_FROM_FLOAT(VP_SZ * (VTX)->z + VP_TZ)
-#define FFB_GET_Y(VTX)                 \
-       FFB_XY_FROM_FLOAT(VP_SY * (VTX)->y + VP_TY)
-#define FFB_GET_X(VTX)                 \
-       FFB_XY_FROM_FLOAT(VP_SX * (VTX)->x + VP_TX)
-
-typedef void (*ffb_point_func)(GLcontext *, ffb_vertex *);
-typedef void (*ffb_line_func)(GLcontext *, ffb_vertex *, ffb_vertex *);
-typedef void (*ffb_tri_func)(GLcontext *, ffb_vertex *, ffb_vertex *,
-                            ffb_vertex *);
-typedef void (*ffb_quad_func)(GLcontext *, ffb_vertex *, ffb_vertex *,
-                             ffb_vertex *, ffb_vertex *);
-
-/* Immediate mode fast-path support. */
-typedef struct {
-       GLfloat         obj[4];
-       GLfloat         normal[4];
-       GLfloat         clip[4];
-       GLuint          mask;
-       GLfloat         color[4];
-       GLfloat         win[4];
-       GLfloat         eye[4];
-} ffbTnlVertex, *ffbTnlVertexPtr;
-
-typedef void (*ffb_interp_func)(GLfloat t,
-                               ffbTnlVertex *O,
-                               const ffbTnlVertex *I,
-                               const ffbTnlVertex *J);
-
-struct ffb_current_state {
-       GLfloat color[4];
-       GLfloat normal[4];
-       GLfloat specular[4];
-};
-
-struct ffb_light_state {
-       GLfloat base_color[3];
-       GLfloat base_alpha;
-};
-
-struct ffb_vertex_state {
-       struct ffb_current_state        current;
-       struct ffb_light_state          light;
-};
-
-struct ffb_imm_vertex {
-       ffbTnlVertex    vertices[8];
-       ffbTnlVertex    *v0;
-       ffbTnlVertex    *v1;
-       ffbTnlVertex    *v2;
-       ffbTnlVertex    *v3;
-
-       void (*save_vertex)(GLcontext *ctx, ffbTnlVertex *v);
-       void (*flush_vertex)(GLcontext *ctx, ffbTnlVertex *v);
-
-       ffb_interp_func interp;
-
-       GLuint prim, format;
-
-       GLvertexformat vtxfmt;
-};
-
-typedef struct ffb_context_t {
-       GLcontext               *glCtx;
-       GLframebuffer           *glBuffer;
-
-       ffb_fbcPtr              regs;
-       volatile char           *sfb32;
-
-       int                     hw_locked;
-
-       int                     back_buffer;    /* 0 = bufferA, 1 = bufferB */
-
-       /* Viewport matrix. */
-       GLfloat                 hw_viewport[16];
-#define SUBPIXEL_X (-0.5F)
-#define SUBPIXEL_Y (-0.5F + 0.125)
-
-       /* Vertices in driver format. */
-       ffb_vertex              *verts;
-
-       /* Rasterization functions. */
-       ffb_point_func draw_point;
-       ffb_line_func draw_line;
-       ffb_tri_func draw_tri;
-       ffb_quad_func draw_quad;
-
-       GLenum raster_primitive;
-       GLenum render_primitive;
-
-       GLfloat backface_sign;
-       GLfloat depth_scale;
-
-       GLfloat ffb_2_30_fixed_scale;
-       GLfloat ffb_one_over_2_30_fixed_scale;
-       GLfloat ffb_16_16_fixed_scale;
-       GLfloat ffb_one_over_16_16_fixed_scale;
-       GLfloat ffb_ubyte_color_scale;
-       GLfloat ffb_zero;
-
-       /* Immediate mode state. */
-       struct ffb_vertex_state vtx_state;
-       struct ffb_imm_vertex   imm;
-
-       /* Debugging knobs. */
-       GLboolean debugFallbacks;
-
-       /* This records state bits when a per-fragment attribute has
-        * been set which prevents us from rendering in hardware.
-        *
-        * As attributes change, some of these bits may clear as
-        * we move back within the chips capabilities.  If they
-        * all clear, we return to full hw rendering.
-        */
-       unsigned int            bad_fragment_attrs;
-#define FFB_BADATTR_FOG                0x00000001      /* Bad fog possible only when < FFB2 */
-#define FFB_BADATTR_BLENDFUNC  0x00000002      /* Any non-const func based upon dst alpha */
-#define FFB_BADATTR_BLENDROP   0x00000004      /* Blend enabled and LogicOP != GL_COPY */
-#define FFB_BADATTR_BLENDEQN   0x00000008      /* Blend equation other than ADD */
-#define FFB_BADATTR_STENCIL    0x00000010      /* Stencil enabled when < FFB2+ */
-#define FFB_BADATTR_TEXTURE    0x00000020      /* Texture enabled */
-#define FFB_BADATTR_SWONLY     0x00000040      /* Environment var set */
-
-       unsigned int            state_dirty;
-       unsigned int            state_fifo_ents;
-#define FFB_STATE_FBC          0x00000001
-#define FFB_STATE_PPC          0x00000002
-#define FFB_STATE_DRAWOP       0x00000004
-#define FFB_STATE_ROP          0x00000008
-#define FFB_STATE_LPAT         0x00000010
-#define FFB_STATE_PMASK                0x00000020
-#define FFB_STATE_XPMASK       0x00000040
-#define FFB_STATE_YPMASK       0x00000080
-#define FFB_STATE_ZPMASK       0x00000100
-#define FFB_STATE_XCLIP                0x00000200
-#define FFB_STATE_CMP          0x00000400
-#define FFB_STATE_MATCHAB      0x00000800
-#define FFB_STATE_MAGNAB       0x00001000
-#define FFB_STATE_MATCHC       0x00002000
-#define FFB_STATE_MAGNC                0x00004000
-#define FFB_STATE_DCUE         0x00008000
-#define FFB_STATE_BLEND                0x00010000
-#define FFB_STATE_CLIP         0x00020000
-#define FFB_STATE_STENCIL      0x00040000
-#define FFB_STATE_APAT         0x00080000
-#define FFB_STATE_WID          0x00100000
-#define FFB_STATE_ALL          0x001fffff
-
-       unsigned int            state_all_fifo_ents;
-
-#define FFB_MAKE_DIRTY(FMESA, STATE_MASK, FIFO_ENTS)   \
-do {   if ((STATE_MASK) & ~((FMESA)->state_dirty)) {   \
-               (FMESA)->state_dirty |= (STATE_MASK);   \
-               (FMESA)->state_fifo_ents += FIFO_ENTS;  \
-       }                                               \
-} while (0)
-
-       /* General hw reg state. */
-       unsigned int            fbc;
-       unsigned int            ppc;
-       unsigned int            drawop;
-       unsigned int            rop;
-
-       unsigned int            lpat;
-#define FFB_LPAT_BAD           0xffffffff
-       unsigned int            wid;
-       unsigned int            pmask;
-       unsigned int            xpmask;
-       unsigned int            ypmask;
-       unsigned int            zpmask;
-       unsigned int            xclip;
-       unsigned int            cmp;
-       unsigned int            matchab;
-       unsigned int            magnab;
-       unsigned int            matchc;
-       unsigned int            magnc;
-
-       /* Depth cue unit hw reg state. */
-       unsigned int            dcss;   /* All FFB              */
-       unsigned int            dcsf;   /* All FFB              */
-       unsigned int            dcsb;   /* All FFB              */
-       unsigned int            dczf;   /* All FFB              */
-       unsigned int            dczb;   /* All FFB              */
-       unsigned int            dcss1;  /* >=FFB2 only          */
-       unsigned int            dcss2;  /* >=FFB2 only          */
-       unsigned int            dcss3;  /* >=FFB2 only          */
-       unsigned int            dcs2;   /* >=FFB2 only          */
-       unsigned int            dcs3;   /* >=FFB2 only          */
-       unsigned int            dcs4;   /* >=FFB2 only          */
-       unsigned int            dcd2;   /* >=FFB2 only          */
-       unsigned int            dcd3;   /* >=FFB2 only          */
-       unsigned int            dcd4;   /* >=FFB2 only          */
-
-       /* Blend unit hw reg state. */
-       unsigned int            blendc;
-       unsigned int            blendc1;
-       unsigned int            blendc2;
-
-       /* ViewPort clipping hw reg state. */
-       unsigned int            vclipmin;
-       unsigned int            vclipmax;
-       unsigned int            vclipzmin;
-       unsigned int            vclipzmax;
-       struct {
-               unsigned int    min;
-               unsigned int    max;
-       } aux_clips[4];
-
-       /* Stencil control hw reg state.  >=FFB2+ only. */
-       unsigned int            stencil;
-       unsigned int            stencilctl;
-       unsigned int            consty;         /* Stencil Ref */
-
-       /* Area pattern (used for polygon stipples). */
-       unsigned int            pattern[32];
-
-       /* Fog state. */
-       float                   Znear, Zfar;
-
-       drm_context_t           hHWContext;
-       drm_hw_lock_t           *driHwLock;
-       int                     driFd;
-
-       unsigned int            clear_pixel;
-       unsigned int            clear_depth;
-       unsigned int            clear_stencil;
-
-       unsigned int            setupindex;
-       unsigned int            setupnewinputs;
-       unsigned int            new_gl_state;
-
-       __DRIdrawable   *driDrawable;
-       __DRIscreen     *driScreen;
-       ffbScreenPrivate        *ffbScreen;
-       ffb_dri_state_t         *ffb_sarea;
-} ffbContextRec, *ffbContextPtr;
-
-#define FFB_CONTEXT(ctx)       ((ffbContextPtr)((ctx)->DriverCtx))
-
-/* We want the depth values written during software rendering
- * to match what the hardware is going to put there when we
- * hw render.
- *
- * The Z buffer is 28 bits deep.  Smooth shaded primitives
- * specify a 2:30 signed fixed point Z value in the range 0.0
- * to 1.0 inclusive.
- *
- * So for example, when hw rendering, the largest Z value of
- * 1.0 would produce a value of 0x0fffffff in the actual Z
- * buffer, which is the maximum value.
- *
- * Mesa's depth type is a 32-bit uint, so we use the following macro
- * to convert to/from FFB hw Z values.  Note we also have to clear
- * out the top bits as that is where the Y (stencil) buffer is stored
- * and during hw Z buffer reads it is always there. (During writes
- * we tell the hw to discard those top 4 bits).
- */
-#define Z_TO_MESA(VAL)         ((GLuint)(((VAL) & 0x0fffffff) << (32 - 28)))
-#define Z_FROM_MESA(VAL)       (((GLuint)((GLdouble)(VAL))) >> (32 - 28))
-
-#endif /* !(_FFB_CONTEXT_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_dd.c b/src/mesa/drivers/dri/ffb/ffb_dd.c
deleted file mode 100644 (file)
index 91b6d31..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000, 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-#include "main/mm.h"
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_context.h"
-#include "ffb_clear.h"
-#include "ffb_lock.h"
-
-#define FFB_DATE       "20021125"
-
-PUBLIC const char __driConfigOptions[] = { 0 };
-const GLuint __driNConfigOptions = 0;
-
-/* Mesa's Driver Functions */
-
-static const GLubyte *ffbDDGetString(GLcontext *ctx, GLenum name)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       static char buffer[128];
-
-       switch (name) {
-       case GL_VENDOR:
-               return (GLubyte *) "David S. Miller";
-
-       case GL_RENDERER:
-               sprintf(buffer, "Mesa DRI FFB " FFB_DATE);
-
-               if (fmesa->ffb_sarea->flags & FFB_DRI_FFB2)
-                       strncat(buffer, " FFB2", 5);
-               if (fmesa->ffb_sarea->flags & FFB_DRI_FFB2PLUS)
-                       strncat(buffer, " FFB2PLUS", 9);
-               if (fmesa->ffb_sarea->flags & FFB_DRI_PAC1)
-                       strncat(buffer, " PAC1", 5);
-               if (fmesa->ffb_sarea->flags & FFB_DRI_PAC2)
-                       strncat(buffer, " PAC2", 5);
-
-#ifdef USE_SPARC_ASM
-               strncat(buffer, " Sparc", 6);
-#endif
-
-               return (GLubyte *) buffer;
-
-       default:
-               return NULL;
-       };
-}
-
-
-static void ffbBufferSize(GLframebuffer *buffer, GLuint *width, GLuint *height)
-{
-       GET_CURRENT_CONTEXT(ctx);
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       LOCK_HARDWARE(fmesa);
-       *width = fmesa->driDrawable->w;
-       *height = fmesa->driDrawable->h;
-       UNLOCK_HARDWARE(fmesa);
-}
-
-void ffbDDExtensionsInit(GLcontext *ctx)
-{
-       /* Nothing for now until we start to add
-        * real acceleration. -DaveM
-        */
-
-       /* XXX Need to turn off GL_EXT_blend_func_separate for one.
-        * XXX Also BlendEquation should be turned off too, what
-        * XXX EXT is that assosciated with?
-        */
-}
-
-static void ffbDDFinish(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       LOCK_HARDWARE(fmesa);
-       FFBWait(fmesa, fmesa->regs);
-       UNLOCK_HARDWARE(fmesa);
-}
-
-void ffbDDInitDriverFuncs(GLcontext *ctx)
-{
-       ctx->Driver.GetBufferSize        = ffbBufferSize;
-       ctx->Driver.GetString            = ffbDDGetString;
-       ctx->Driver.Clear                = ffbDDClear;
-
-       ctx->Driver.Finish               = ffbDDFinish;
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_dd.h b/src/mesa/drivers/dri/ffb/ffb_dd.h
deleted file mode 100644 (file)
index 1198cda..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D.
- * Copyright (C) 2000 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#ifndef _FFB_DD_H
-#define _FFB_DD_H
-
-#include "main/context.h"
-
-void ffbDDInitDriverFuncs(GLcontext *ctx);
-void ffbDDExtensionsInit(GLcontext *ctx);
-
-#endif /* !(_FFB_DD_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_depth.c b/src/mesa/drivers/dri/ffb/ffb_depth.c
deleted file mode 100644 (file)
index d19385b..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_context.h"
-#include "ffb_depth.h"
-#include "ffb_lock.h"
-
-
-#undef DEPTH_TRACE
-
-static void FFBWriteDepthSpan( GLcontext *ctx,
-                                 struct gl_renderbuffer *rb,
-                                 GLuint n, GLint x, GLint y,
-                                const void *values,
-                                const GLubyte mask[] )
-{
-        const GLuint *depth = (const GLuint *) values;
-#ifdef DEPTH_TRACE
-       fprintf(stderr, "FFBWriteDepthSpan: n(%d) x(%d) y(%d)\n",
-               (int) n, x, y);
-#endif
-       if (ctx->Depth.Mask) {
-               ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-               __DRIdrawable *dPriv = fmesa->driDrawable;
-               GLuint *zptr;
-               GLuint i;
-
-               if (!fmesa->hw_locked)
-                       LOCK_HARDWARE(fmesa);
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = (FFB_FBC_WB_C | FFB_FBC_ZE_ON |
-                                   FFB_FBC_YE_OFF | FFB_FBC_RGBE_OFF);
-               fmesa->regs->ppc = FFB_PPC_ZS_VAR;
-               FFBWait(fmesa, fmesa->regs);
-
-               y = (dPriv->h - y);
-               zptr = (GLuint *)
-                       ((char *)fmesa->sfb32 +
-                        ((dPriv->x + x) << 2) +
-                        ((dPriv->y + y) << 13));
-               
-               for (i = 0; i < n; i++) {
-                       if (mask[i]) {
-                               *zptr = Z_FROM_MESA(depth[i]);
-                       }
-                       zptr++;
-               }
-
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = fmesa->fbc;
-               fmesa->regs->ppc = fmesa->ppc;
-               fmesa->ffbScreen->rp_active = 1;
-               if (!fmesa->hw_locked)
-                       UNLOCK_HARDWARE(fmesa);
-       }
-}
-
-static void FFBWriteMonoDepthSpan( GLcontext *ctx, 
-                                    struct gl_renderbuffer *rb,
-                                    GLuint n, GLint x, GLint y,
-                                    const void *value, const GLubyte mask[] )
-{
-       const GLuint depthVal = *((GLuint *) value);
-       GLuint depths[MAX_WIDTH];
-       GLuint i;
-       for (i = 0; i < n; i++)
-               depths[i] = depthVal;
-       FFBWriteDepthSpan(ctx, rb, n, x, y, depths, mask);
-}
-
-static void FFBWriteDepthPixels( GLcontext *ctx,
-                                   struct gl_renderbuffer *rb,
-                                  GLuint n,
-                                  const GLint x[],
-                                  const GLint y[],
-                                  const void *values,
-                                  const GLubyte mask[] )
-{
-        const GLuint *depth = (const GLuint *) values;
-#ifdef DEPTH_TRACE
-       fprintf(stderr, "FFBWriteDepthPixels: n(%d)\n", (int) n);
-#endif
-       if (ctx->Depth.Mask) {
-               ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-               __DRIdrawable *dPriv = fmesa->driDrawable;
-               char *zbase;
-               GLuint i;
-
-               if (!fmesa->hw_locked)
-                       LOCK_HARDWARE(fmesa);
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = (FFB_FBC_WB_C | FFB_FBC_ZE_ON |
-                                   FFB_FBC_YE_OFF | FFB_FBC_RGBE_OFF);
-               fmesa->regs->ppc = FFB_PPC_ZS_VAR;
-               fmesa->ffbScreen->rp_active = 1;
-               FFBWait(fmesa, fmesa->regs);
-
-               zbase = ((char *)fmesa->sfb32 +
-                        (dPriv->x << 2) + (dPriv->y << 13));
-               
-               for (i = 0; i < n; i++) {
-                       GLint y1 = (dPriv->h - y[i]);
-                       GLint x1 = x[i];
-                       GLuint *zptr;
-
-                       zptr = (GLuint *)
-                               (zbase + (x1 << 2) + (y1 << 13));
-                       if (mask[i])
-                               *zptr = Z_FROM_MESA(depth[i]);
-               }
-
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = fmesa->fbc;
-               fmesa->regs->ppc = fmesa->ppc;
-               fmesa->ffbScreen->rp_active = 1;
-               if (!fmesa->hw_locked)
-                       UNLOCK_HARDWARE(fmesa);
-       }
-}
-
-static void FFBReadDepthSpan( GLcontext *ctx,
-                                struct gl_renderbuffer *rb,
-                               GLuint n, GLint x, GLint y,
-                               void *values )
-{
-        GLuint *depth = (GLuint *) values;
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       GLuint *zptr;
-       GLuint i;
-
-#ifdef DEPTH_TRACE
-       fprintf(stderr, "FFBReadDepthSpan: n(%d) x(%d) y(%d)\n",
-               (int) n, x, y);
-#endif
-       if (!fmesa->hw_locked)
-               LOCK_HARDWARE(fmesa);
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = FFB_FBC_RB_C;
-       fmesa->ffbScreen->rp_active = 1;
-       FFBWait(fmesa, fmesa->regs);
-
-       y = (dPriv->h - y);
-       zptr = (GLuint *)
-               ((char *)fmesa->sfb32 +
-                ((dPriv->x + x) << 2) +
-                ((dPriv->y + y) << 13));
-               
-       for (i = 0; i < n; i++) {
-               depth[i] = Z_TO_MESA(*zptr);
-               zptr++;
-       }
-
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = fmesa->fbc;
-       fmesa->ffbScreen->rp_active = 1;
-       if (!fmesa->hw_locked)
-               UNLOCK_HARDWARE(fmesa);
-}
-
-static void FFBReadDepthPixels( GLcontext *ctx,
-                                  struct gl_renderbuffer *rb,
-                                  GLuint n,
-                                 const GLint x[], const GLint y[],
-                                 void *values )
-{
-        GLuint *depth = (GLuint *) values;
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       char *zbase;
-       GLuint i;
-
-#ifdef DEPTH_TRACE
-       fprintf(stderr, "FFBReadDepthPixels: n(%d)\n", (int) n);
-#endif
-       if (!fmesa->hw_locked)
-               LOCK_HARDWARE(fmesa);
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = FFB_FBC_RB_C;
-       fmesa->ffbScreen->rp_active = 1;
-       FFBWait(fmesa, fmesa->regs);
-
-       zbase = ((char *)fmesa->sfb32 +
-                (dPriv->x << 2) + (dPriv->y << 13));
-               
-       for (i = 0; i < n; i++) {
-               GLint y1 = (dPriv->h - y[i]);
-               GLint x1 = x[i];
-               GLuint *zptr;
-
-               zptr = (GLuint *)
-                       (zbase + (x1 << 2) + (y1 << 13));
-               depth[i] = Z_TO_MESA(*zptr);
-       }
-
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = fmesa->fbc;
-       fmesa->ffbScreen->rp_active = 1;
-       if (!fmesa->hw_locked)
-               UNLOCK_HARDWARE(fmesa);
-}
-
-/**
- * Plug in the Get/Put routines for the given driRenderbuffer.
- */
-void
-ffbSetDepthFunctions(driRenderbuffer *drb, const GLvisual *vis)
-{
-       assert(drb->Base.InternalFormat == GL_DEPTH_COMPONENT16);
-       drb->Base.GetRow        = FFBReadDepthSpan;
-       drb->Base.GetValues     = FFBReadDepthPixels;
-       drb->Base.PutRow        = FFBWriteDepthSpan;
-       drb->Base.PutMonoRow    = FFBWriteMonoDepthSpan;
-       drb->Base.PutValues     = FFBWriteDepthPixels;
-       drb->Base.PutMonoValues = NULL;
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_depth.h b/src/mesa/drivers/dri/ffb/ffb_depth.h
deleted file mode 100644 (file)
index 8a1829e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-#ifndef _FFB_DEPTH_H
-#define _FFB_DEPTH_H
-
-void ffbSetDepthFunctions(driRenderbuffer *drb, const GLvisual *vis);
-
-#endif /* !(_FFB_DEPTH_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_fifo.h b/src/mesa/drivers/dri/ffb/ffb_fifo.h
deleted file mode 100644 (file)
index a175f38..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef _FFB_FIFO_H
-#define _FFB_FIFO_H
-
-#define FFBFifo(__fmesa, __n) \
-do {   ffbScreenPrivate *__fScrn = (__fmesa)->ffbScreen; \
-       int __cur_slots = __fScrn->fifo_cache; \
-       if ((__cur_slots - (__n)) < 0) { \
-               ffb_fbcPtr __ffb = __fmesa->regs; \
-               do { __cur_slots = (((int)__ffb->ucsr & FFB_UCSR_FIFO_MASK) - 4); \
-               } while ((__cur_slots - (__n)) < 0); \
-       } (__fScrn)->fifo_cache = (__cur_slots - (__n)); \
-} while(0)
-
-#define FFBWait(__fmesa, __ffb) \
-do {   ffbScreenPrivate *__fScrn = (__fmesa)->ffbScreen; \
-       if (__fScrn->rp_active) { \
-               unsigned int __regval = (__ffb)->ucsr; \
-               while((__regval & FFB_UCSR_ALL_BUSY) != 0) { \
-                       __regval = (__ffb)->ucsr; \
-               } \
-               __fScrn->fifo_cache = ((int)(__regval & FFB_UCSR_FIFO_MASK)) - 4; \
-               __fScrn->rp_active = 0; \
-       } \
-} while(0)
-
-#endif /* !(_FFB_FIFO_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_fog.c b/src/mesa/drivers/dri/ffb/ffb_fog.c
deleted file mode 100644 (file)
index e6eca23..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/* FFB fog support:
- *
- * There are two levels of support for FOG in the Creator3D series.
- * Both involve a depth cue unit and 1 or 4 slope factors and scales
- * for varying the pixel intensity.
- *
- * Chips prior to FFB2 only have a single set of such settings, FFB2
- * and later have 4 settings.
- *
- * The basic depth cueing equation is:
- *
- *     C_final = dcsf(z) * C_orig + (1 - dcsf(z)) * C_fog
- *
- *     C_final --      The final color passed to blend unit or frame
- *                     buffer (if blending is disabled).
- *
- *     C_orig  --      The color we start with, which comes either from
- *                     the raster processor or cpu writes to the smart
- *                     framebuffer aperture.
- *
- *     C_fog   --      This is the "fog" color, ie. the desired color
- *                     at the deepest Z.
- *
- *     dcsf(z) --      The depth cue scale as a function of Z.
- *
- * With pre-FFB2 chips there are four parameters to control the depth
- * cue scaling.  Here is a diagram:
- *
- *                1.0  -------------
- *                     |   |   |   |
- *                     |   |   |   |
- *             Sfront  XXXXX---+---+
- *                     |   |X  |   |
- *     dcsf(z)         |   | X |   |
- *                     |   |  X|   |
- *             Sback   +---+---XXXXX
- *                     |   |   |   |
- *                0.0  -------------
- *                     0.0 Zf  Zb 1.0
- *
- *                           z
- * Therefore:
- *
- *     for Zf < z < Zb
- *
- *             dcsf(z) = Sback + ((Sfront - Sback) / (Zf - Zb)) * (Zb - z)
- *
- *     for z <= Zf
- *
- *             dcsf(z) = Sfront
- *
- *     for z >= Zb
- *
- *             dcsf(z) = Sback
- *
- * With FFB2 and later, 3 more slope regions are provided, the first of
- * them starts at the end of the region defined above and ends at a
- * specified depth value, the next slop region starts there and ends
- * at the next specified depth value, and so on.  Each of the 3 slope
- * regions also have scale and slope settings of their own.
- *
- * The C_fog color is programmed into the alpha blending unit color1
- * and color2 registers as follows:
- *
- *     color1:         -(C_fog)
- *     color2:         C_fog - bg
- *
- * If alpha blending is disabled, the bg factor is zero.  Note that
- * the alpha blending color registers specify each of the RGB values
- * as 9 bit 1:8 signed numbers in the range -1.00 to 0.ff inclusive.
- * (ie. 0x100 == -1.00 and 0x0ff == +0.ff)
- */
diff --git a/src/mesa/drivers/dri/ffb/ffb_lines.c b/src/mesa/drivers/dri/ffb/ffb_lines.c
deleted file mode 100644 (file)
index 6dca4ed..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000, 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-#include "main/mm.h"
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_context.h"
-#include "ffb_vb.h"
-#include "ffb_lines.h"
-
-#undef FFB_LINE_TRACE
-
-#define FFB_LINE_FLAT_BIT      0x01
-#define FFB_LINE_ALPHA_BIT     0x02
-#define MAX_FFB_LINE_FUNCS      0x04
-
-static ffb_line_func ffb_line_tab[MAX_FFB_LINE_FUNCS];
-
-/* If the line is not wide, we can support all of the line
- * patterning and smooth shading features of OpenGL fully.
- */
-
-#define IND (0)
-#define TAG(x) x
-#include "ffb_linetmp.h"
-
-#define IND (FFB_LINE_FLAT_BIT)
-#define TAG(x) x##_flat
-#include "ffb_linetmp.h"
-
-#define IND (FFB_LINE_ALPHA_BIT)
-#define TAG(x) x##_alpha
-#include "ffb_linetmp.h"
-
-#define IND (FFB_LINE_ALPHA_BIT|FFB_LINE_FLAT_BIT)
-#define TAG(x) x##_alpha_flat
-#include "ffb_linetmp.h"
-
-void ffbDDLinefuncInit(void)
-{
-       init();
-       init_flat();
-       init_alpha();
-       init_alpha_flat();
-}
-
-static void ffb_dd_line( GLcontext *ctx, GLuint e0, GLuint e1 )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_vertex *v0 = &fmesa->verts[e0];
-       ffb_vertex *v1 = &fmesa->verts[e1];
-       fmesa->draw_line( ctx, v0, v1 );
-}
-
-void ffbChooseLineState(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       GLuint flags = ctx->_TriangleCaps;
-       GLuint ind = 0;
-
-       tnl->Driver.Render.Line = ffb_dd_line;
-
-       if (flags & DD_FLATSHADE)
-               ind |= FFB_LINE_FLAT_BIT;
-
-       if ((flags & DD_LINE_STIPPLE) != 0 &&
-           fmesa->lpat == FFB_LPAT_BAD) {
-               fmesa->draw_line = ffb_fallback_line;
-               return;
-       }
-
-       /* If blending or the alpha test is enabled we need to
-        * provide alpha components to the chip, else we can
-        * do without it and thus feed vertex data to the chip
-        * more efficiently.
-        */
-       if (ctx->Color.BlendEnabled || ctx->Color.AlphaEnabled)
-               ind |= FFB_LINE_ALPHA_BIT;
-
-       fmesa->draw_line = ffb_line_tab[ind];
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_lines.h b/src/mesa/drivers/dri/ffb/ffb_lines.h
deleted file mode 100644 (file)
index ddb9365..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-
-#ifndef _FFB_LINES_H
-#define _FFB_LINES_H
-
-#include "ffb_context.h"
-
-#define _FFB_NEW_LINE (_DD_NEW_FLATSHADE |     \
-                      _DD_NEW_LINE_WIDTH |     \
-                      _DD_NEW_LINE_STIPPLE |   \
-                      _DD_NEW_LINE_SMOOTH |    \
-                      _NEW_COLOR)
-
-extern void ffbDDLinefuncInit(void);
-extern void ffbChooseLineState(GLcontext *);
-extern void ffb_fallback_line( GLcontext *ctx, ffb_vertex *v0, ffb_vertex *v1 );
-
-#endif /* !(_FFB_LINES_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_linetmp.h b/src/mesa/drivers/dri/ffb/ffb_linetmp.h
deleted file mode 100644 (file)
index 10e1375..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-
-static INLINE void TAG(ffb_line)(GLcontext *ctx, ffb_vertex *v0, 
-                                  ffb_vertex *v1 )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_fbcPtr ffb = fmesa->regs;
-#if (IND & FFB_LINE_FLAT_BIT)
-       const GLuint const_fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( v1->color[0] );
-#endif
-       FFB_DELAYED_VIEWPORT_VARS;
-
-#ifdef FFB_LINE_TRACE
-       fprintf(stderr, "FFB: ffb_line ["
-#if (IND & FFB_LINE_FLAT_BIT)
-               " FLAT"
-#endif
-#if (IND & FFB_LINE_ALPHA_BIT)
-               " ALPHA"
-#endif
-               " ]\n");
-#endif
-
-#if (IND & FFB_LINE_FLAT_BIT)
-       FFBFifo(fmesa, 1);
-       ffb->fg = const_fg;
-#ifdef FFB_LINE_TRACE
-       fprintf(stderr, "FFB: ffb_line confg_fg[%08x]\n", const_fg);
-#endif
-#endif
-
-#if (IND & FFB_LINE_FLAT_BIT)
-       /* (2 * 3) + 1 */
-       FFBFifo(fmesa, 7);
-#else
-#if (IND & FFB_LINE_ALPHA_BIT)
-       /* (2 * 7) + 1 */
-       FFBFifo(fmesa, 15);
-#else
-       /* (2 * 6) + 1 */
-       FFBFifo(fmesa, 13);
-#endif
-#endif
-
-       /* Using DDLINE or AALINE, init the line pattern state. */
-       ffb->lpat = fmesa->lpat;
-
-#if !(IND & FFB_LINE_FLAT_BIT)
-#if (IND & FFB_LINE_ALPHA_BIT)
-       ffb->alpha      = FFB_GET_ALPHA(v0);
-#endif
-       ffb->red        = FFB_GET_RED(v0);
-       ffb->green      = FFB_GET_GREEN(v0);
-       ffb->blue       = FFB_GET_BLUE(v0);
-#endif
-       ffb->z          = FFB_GET_Z(v0);
-       ffb->ryf        = FFB_GET_Y(v0);
-       ffb->rxf        = FFB_GET_X(v0);
-
-#if !(IND & FFB_LINE_FLAT_BIT)
-#if (IND & FFB_LINE_ALPHA_BIT)
-       ffb->alpha      = FFB_GET_ALPHA(v1);
-#endif
-       ffb->red        = FFB_GET_RED(v1);
-       ffb->green      = FFB_GET_GREEN(v1);
-       ffb->blue       = FFB_GET_BLUE(v1);
-#endif
-       ffb->z          = FFB_GET_Z(v1);
-       ffb->y          = FFB_GET_Y(v1);
-       ffb->x          = FFB_GET_X(v1);
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(init)(void)
-{
-       ffb_line_tab[IND] = TAG(ffb_line);
-}
-
-#undef IND
-#undef TAG
diff --git a/src/mesa/drivers/dri/ffb/ffb_lock.h b/src/mesa/drivers/dri/ffb/ffb_lock.h
deleted file mode 100644 (file)
index 1fd3eb5..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#ifndef _FFB_LOCK_H
-#define _FFB_LOCK_H
-
-#include "ffb_context.h"
-
-extern void ffbXMesaUpdateState(ffbContextPtr fmesa);
-#define FFB_UPDATE_STATE(fmesa)        ffbXMesaUpdateState(fmesa)
-
-/* Lock the hardware and validate our state.  This hardware can only ever
- * exist on SPARC platforms.  Don't bother building the real LOCK_HARDWARE and
- * UNLOCK_HARDWARE code on non-SPARC platforms.  The only reason the driver
- * gets built on non-SPARC is to catch build breakages earlier.
- */
-#if !defined(__sparc__)
-#define LOCK_HARDWARE(fmesa)                   
-#define UNLOCK_HARDWARE(fmesa)                 
-#else
-#define LOCK_HARDWARE(fmesa)                           \
-  do {                                                 \
-    DRM_CAS_RESULT(__ret);                             \
-    DRM_CAS(fmesa->driHwLock, fmesa->hHWContext,       \
-           (DRM_LOCK_HELD | fmesa->hHWContext), __ret);\
-    if (__ret) {                                       \
-        drmGetLock(fmesa->driFd, fmesa->hHWContext, 0);        \
-       FFB_UPDATE_STATE(fmesa);                        \
-    }                                                  \
-  } while (0)
-
-
-/* Unlock the hardware. */
-#define UNLOCK_HARDWARE(fmesa)                                 \
-    DRM_UNLOCK(fmesa->driFd, fmesa->driHwLock, fmesa->hHWContext);     
-#endif
-
-#endif /* !(_FFB_LOCK_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_points.c b/src/mesa/drivers/dri/ffb/ffb_points.c
deleted file mode 100644 (file)
index 5bf4f8f..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000, 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-#include "ffb_dd.h"
-#include "ffb_context.h"
-#include "ffb_vb.h"
-#include "ffb_points.h"
-
-
-#undef FFB_POINT_TRACE
-
-#define FFB_POINT_AA_BIT       0x01
-
-static ffb_point_func ffb_point_tab[0x08];
-
-#define IND (0)
-#define TAG(x) x
-#include "ffb_pointtmp.h"
-
-#define IND (FFB_POINT_AA_BIT)
-#define TAG(x) x##_aa
-#include "ffb_pointtmp.h"
-
-void ffbDDPointfuncInit(void)
-{
-       init();
-       init_aa();
-}
-
-static void ffb_dd_points( GLcontext *ctx, GLuint first, GLuint last )
-{
-       struct vertex_buffer *VB = &TNL_CONTEXT( ctx )->vb;
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_vertex *fverts = fmesa->verts;
-       int i;
-
-       if (VB->Elts == 0) {
-               for ( i = first ; i < last ; i++ ) {
-                       if ( VB->ClipMask[i] == 0 ) {
-                               fmesa->draw_point( ctx, &fverts[i] );
-                       }
-               }
-       } else {
-               for ( i = first ; i < last ; i++ ) {
-                       GLuint e = VB->Elts[i];
-                       if ( VB->ClipMask[e] == 0 ) {
-                               fmesa->draw_point( ctx, &fverts[e] );
-                       }
-               }
-       }
-}
-
-void ffbChoosePointState(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       GLuint flags = ctx->_TriangleCaps;
-       GLuint ind = 0;
-
-       tnl->Driver.Render.Points = ffb_dd_points;
-
-       if (flags & DD_POINT_SMOOTH)
-               ind |= FFB_POINT_AA_BIT;
-
-       fmesa->draw_point = ffb_point_tab[ind];
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_points.h b/src/mesa/drivers/dri/ffb/ffb_points.h
deleted file mode 100644 (file)
index a7229de..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-#ifndef _FFB_POINTS_H
-#define _FFB_POINTS_H
-
-extern void ffbDDPointfuncInit(void);
-
-#define _FFB_NEW_POINT (_DD_NEW_POINT_SIZE |   \
-                       _DD_NEW_POINT_SMOOTH |  \
-                       _NEW_COLOR)
-
-extern void ffbChoosePointState(GLcontext *);
-extern void ffb_fallback_point( GLcontext *ctx, ffb_vertex *v0 );
-
-#endif /* !(_FFB_POINTS_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_pointtmp.h b/src/mesa/drivers/dri/ffb/ffb_pointtmp.h
deleted file mode 100644 (file)
index 3003de7..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-
-static INLINE void TAG(ffb_draw_point)(GLcontext *ctx, ffb_vertex *tmp )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_fbcPtr ffb = fmesa->regs;
-       FFB_DELAYED_VIEWPORT_VARS;
-
-#ifdef FFB_POINT_TRACE
-       fprintf(stderr, "FFB: ffb_point ["
-#if (IND & FFB_POINT_AA_BIT)
-               "AA"
-#endif
-               "] X(%f) Y(%f) Z(%f)\n",
-               tmp->x, tmp->y, tmp->z);
-#endif
-
-#if (IND & FFB_POINT_AA_BIT)
-       FFBFifo(fmesa, 4);
-                       
-       ffb->fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( tmp->color[0] );
-       ffb->z = FFB_GET_Z(tmp);
-       ffb->y = FFB_GET_Y(tmp) + 0x8000 /* FIX ME */;
-       ffb->x = FFB_GET_X(tmp) + 0x8000 /* FIX ME */;
-#else
-       {
-               unsigned int const_fg, const_z, h, w;
-
-               const_fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( tmp->color[0] );
-               const_z = Z_FROM_MESA(FFB_Z_TO_FLOAT(FFB_GET_Z(tmp)));
-               h = FFB_GET_Y(tmp) >> 16;
-               w = FFB_GET_X(tmp) >> 16;
-#ifdef FFB_POINT_TRACE
-               fprintf(stderr, "FFB: ffb_point fg(%08x) z(%08x) h(%08x) w(%08x)\n",
-                       const_fg, const_z, h, w);
-#endif
-               FFBFifo(fmesa, 4);
-               ffb->fg = const_fg;
-               ffb->constz = const_z;
-               ffb->bh = h;
-               ffb->bw = w;
-       }
-#endif
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-
-static void TAG(init)(void)
-{
-       ffb_point_tab[IND] = TAG(ffb_draw_point);
-}
-
-#undef IND
-#undef TAG
diff --git a/src/mesa/drivers/dri/ffb/ffb_rendertmp.h b/src/mesa/drivers/dri/ffb/ffb_rendertmp.h
deleted file mode 100644 (file)
index 64141c2..0000000
+++ /dev/null
@@ -1,645 +0,0 @@
-
-#define IMPL_LOCAL_VARS                                                \
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);                 \
-       ffb_fbcPtr ffb = fmesa->regs;                           \
-       const GLuint * const elt = TNL_CONTEXT(ctx)->vb.Elts;   \
-       FFB_DELAYED_VIEWPORT_VARS;                              \
-       (void) fmesa; (void) ffb; (void) elt
-
-#if (IND & FFB_FLAT_BIT)
-#define FFB_DECLARE_CACHED_COLOR(NAME)         \
-       unsigned int NAME;
-#define FFB_COMPUTE_CACHED_COLOR(NAME, VTX)    \
-       NAME = FFB_PACK_CONST_UBYTE_ARGB_COLOR((VTX)->color[0])
-#define FFB_CACHED_COLOR_SAME(NAME1, NAME2)    \
-       ((NAME1) == (NAME2))
-#define FFB_CACHED_COLOR_SET(NAME)             \
-       ffb->fg = (NAME)
-#define FFB_CACHED_COLOR_UPDATE(NAME1, NAME2)  \
-       ffb->fg = (NAME1) = (NAME2)
-#define FFB_SET_PRIM_COLOR(COLOR_VERTEX)       \
-       ffb->fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR((COLOR_VERTEX)->color[0])
-#define FFB_PRIM_COLOR_COST                    1
-#define FFB_SET_VERTEX_COLOR(VTX)              /**/
-#define FFB_VERTEX_COLOR_COST                  0
-#else
-#define FFB_DECLARE_CACHED_COLOR(NAME)         /**/
-#define FFB_COMPUTE_CACHED_COLOR(NAME, VTX)    /**/
-#define FFB_CACHED_COLOR_SAME(NAME1, NAME2)    0
-#define FFB_CACHED_COLOR_SET(NAME1)            /**/
-#define FFB_CACHED_COLOR_UPDATE(NAME1, NAME2)  /**/
-#define FFB_SET_PRIM_COLOR(COLOR_VERTEX)       /**/
-#define FFB_PRIM_COLOR_COST                    0
-#if (IND & FFB_ALPHA_BIT)
-#define FFB_SET_VERTEX_COLOR(VTX)              \
-       ffb->alpha = FFB_GET_ALPHA(VTX);        \
-       ffb->red   = FFB_GET_RED(VTX);          \
-       ffb->green = FFB_GET_GREEN(VTX);        \
-       ffb->blue  = FFB_GET_BLUE(VTX)
-#define FFB_VERTEX_COLOR_COST                  4
-#else
-#define FFB_SET_VERTEX_COLOR(VTX)              \
-       ffb->red   = FFB_GET_RED(VTX);          \
-       ffb->green = FFB_GET_GREEN(VTX);        \
-       ffb->blue  = FFB_GET_BLUE(VTX)
-#define FFB_VERTEX_COLOR_COST                  3
-#endif
-#endif
-
-#define RESET_STIPPLE  ffb->lpat = fmesa->lpat;
-
-#if !(IND & (FFB_TRI_CULL_BIT))
-static void TAG(ffb_vb_points)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_POINTS);
-       if (ctx->_TriangleCaps & DD_POINT_SMOOTH) {
-               for (i = start; i < count; i++) {
-                       ffb_vertex *v0 = &fmesa->verts[ELT(i)];
-
-                       FFBFifo(fmesa, 4);
-                       ffb->fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR(v0->color[0]);
-                       ffb->z = FFB_GET_Z(v0);
-                       ffb->y = FFB_GET_Y(v0) + 0x8000 /* FIX ME */;
-                       ffb->x = FFB_GET_X(v0) + 0x8000 /* FIX ME */;
-               }
-       } else {
-               for (i = start; i < count; i++) {
-                       ffb_vertex *v0 = &fmesa->verts[ELT(i)];
-                       FFBFifo(fmesa, 4);
-                       ffb->fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR(v0->color[0]);
-                       ffb->constz = Z_FROM_MESA(FFB_Z_TO_FLOAT(FFB_GET_Z(v0)));
-                       ffb->bh = FFB_GET_Y(v0) >> 16;
-                       ffb->bw = FFB_GET_X(v0) >> 16;
-               }
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_vb_lines)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_LINES);
-       for (i = start + 1; i < count; i += 2) {
-               ffb_vertex *v0 = &fmesa->verts[i - 1];
-               ffb_vertex *v1 = &fmesa->verts[i - 0];
-
-               FFBFifo(fmesa, (1 + FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 2) + 6));
-
-               RESET_STIPPLE;
-
-               FFB_SET_PRIM_COLOR(v1);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->ryf = FFB_GET_Y(v0);
-               ffb->rxf = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z   = FFB_GET_Z(v1);
-               ffb->y   = FFB_GET_Y(v1);
-               ffb->x   = FFB_GET_X(v1);
-       }
-}
-
-static void TAG(ffb_vb_line_loop)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_LINE_LOOP);
-       if ((flags & PRIM_BEGIN) != 0) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(start + 0)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(start + 1)];
-
-               FFBFifo(fmesa, (1 + FFB_PRIM_COLOR_COST +
-                               ((FFB_VERTEX_COLOR_COST * 2) + (3 * 2))));
-
-               RESET_STIPPLE;
-
-               FFB_SET_PRIM_COLOR(v1);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->ryf = FFB_GET_Y(v0);
-               ffb->rxf = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z   = FFB_GET_Z(v1);
-               ffb->y   = FFB_GET_Y(v1);
-               ffb->x   = FFB_GET_X(v1);
-       }
-       for (i = start + 2; i < count; i++) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(i)];
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST + 3)));
-
-               FFB_SET_PRIM_COLOR(v0);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->y   = FFB_GET_Y(v0);
-               ffb->x   = FFB_GET_X(v0);
-       }
-       if ((flags & PRIM_END) != 0) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(start)];
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST + 3)));
-
-               FFB_SET_PRIM_COLOR(v0);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->y   = FFB_GET_Y(v0);
-               ffb->x   = FFB_GET_X(v0);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_vb_line_strip)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       FFB_DECLARE_CACHED_COLOR(cached_fg)
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_LINE_STRIP);
-       FFBFifo(fmesa, (1 + FFB_PRIM_COLOR_COST +
-                       ((FFB_VERTEX_COLOR_COST * 2) + (3 * 2))));
-
-       RESET_STIPPLE;
-
-       {
-               ffb_vertex *v0 = &fmesa->verts[ELT(start + 0)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(start + 1)];
-
-               FFB_COMPUTE_CACHED_COLOR(cached_fg, v0);
-               FFB_CACHED_COLOR_SET(cached_fg);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z = FFB_GET_Z(v0);
-               ffb->ryf = FFB_GET_Y(v0);
-               ffb->rxf = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z = FFB_GET_Z(v1);
-               ffb->y = FFB_GET_Y(v1);
-               ffb->x = FFB_GET_X(v1);
-       }
-
-       for (i = start + 2; i < count; i++) {
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 0)];
-               FFB_DECLARE_CACHED_COLOR(new_fg)
-
-               FFB_COMPUTE_CACHED_COLOR(new_fg, v1);
-               if (FFB_CACHED_COLOR_SAME(cached_fg, new_fg)) {
-                       FFBFifo(fmesa, ((FFB_VERTEX_COLOR_COST * 1) + (3 * 1)));
-               } else {
-                       FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                                       (FFB_VERTEX_COLOR_COST * 1) + (3 * 1)));
-                       FFB_CACHED_COLOR_UPDATE(cached_fg, new_fg);
-               }
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z   = FFB_GET_Z(v1);
-               ffb->y   = FFB_GET_Y(v1);
-               ffb->x   = FFB_GET_X(v1);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-#endif /* !(IND & (FFB_TRI_CULL_BIT)) */
-
-/* OK, now things start getting fun :-) */
-#if (IND & (FFB_TRI_CULL_BIT))
-#define FFB_AREA_DECLARE       GLfloat cc, ex, ey, fx, fy;
-#define FFB_COMPUTE_AREA_TRI(V0, V1, V2)       \
-{      ex = (V1)->x - (V0)->x;                 \
-       ey = (V1)->y - (V0)->y;                 \
-       fx = (V2)->x - (V0)->x;                 \
-       fy = (V2)->y - (V0)->y;                 \
-       cc = ex*fy-ey*fx;                       \
-}
-#define FFB_COMPUTE_AREA_QUAD(V0, V1, V2, V3)  \
-{      ex = (V2)->x - (V0)->x;                 \
-       ey = (V2)->y - (V0)->y;                 \
-       fx = (V3)->x - (V1)->x;                 \
-       fy = (V3)->y - (V1)->y;                 \
-       cc = ex*fy-ey*fx;                       \
-}
-#else
-#define FFB_AREA_DECLARE                       /**/
-#define FFB_COMPUTE_AREA_TRI(V0, V1, V2)       do { } while(0)
-#define FFB_COMPUTE_AREA_QUAD(V0, V1, V2, V3)  do { } while(0)
-#endif
-
-#if (IND & FFB_TRI_CULL_BIT)
-#define FFB_CULL_TRI(CULL_ACTION)              \
-       if (cc * fmesa->backface_sign > fmesa->ffb_zero) {      \
-               CULL_ACTION                     \
-       }
-#define FFB_CULL_QUAD(CULL_ACTION)             \
-       if (cc * fmesa->backface_sign > fmesa->ffb_zero) {      \
-               CULL_ACTION                     \
-       }
-#else
-#define FFB_CULL_TRI(CULL_ACTION)      do { } while (0)
-#define FFB_CULL_QUAD(CULL_ACTION)     do { } while (0)
-#endif
-
-static void TAG(ffb_vb_triangles)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_TRIANGLES);
-       for (i = start + 2; i < count; i += 3) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(i - 2)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 1)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)];
-               FFB_AREA_DECLARE
-
-               FFB_COMPUTE_AREA_TRI(v0, v1, v2);
-               FFB_CULL_TRI(continue;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 3) + 9));
-               FFB_SET_PRIM_COLOR(v2);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->ryf = FFB_GET_Y(v0);
-               ffb->rxf = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z   = FFB_GET_Z(v1);
-               ffb->y   = FFB_GET_Y(v1);
-               ffb->x   = FFB_GET_X(v1);
-
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z   = FFB_GET_Z(v2);
-               ffb->y   = FFB_GET_Y(v2);
-               ffb->x   = FFB_GET_X(v2);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_vb_tri_strip)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       GLint parity = 0;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_TRIANGLE_STRIP);
-
-       i = start + 2;
-       goto something_clipped;
-
- something_clipped:
-       for (; i < count; i++, parity ^= 1) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(i - 2 + parity)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 1 - parity)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)];
-               FFB_AREA_DECLARE
-
-               FFB_COMPUTE_AREA_TRI(v0, v1, v2);
-               FFB_CULL_TRI(continue;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 3) + 9));
-               FFB_SET_PRIM_COLOR(v2);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->ryf = FFB_GET_Y(v0);
-               ffb->rxf = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z   = FFB_GET_Z(v1);
-               ffb->y   = FFB_GET_Y(v1);
-               ffb->x   = FFB_GET_X(v1);
-
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z   = FFB_GET_Z(v2);
-               ffb->y   = FFB_GET_Y(v2);
-               ffb->x   = FFB_GET_X(v2);
-
-               i++;
-               parity ^= 1;
-               break;
-       }
-
-       for (; i < count; i++, parity ^= 1) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(i - 2 + parity)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 1 - parity)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)];
-               FFB_AREA_DECLARE
-               (void) v0; (void) v1;
-
-               FFB_COMPUTE_AREA_TRI(v0, v1, v2);
-               FFB_CULL_TRI(i++; parity^=1; goto something_clipped;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 1) + 3));
-               FFB_SET_PRIM_COLOR(v2);
-
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z   = FFB_GET_Z(v2);
-               ffb->y   = FFB_GET_Y(v2);
-               ffb->x   = FFB_GET_X(v2);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_vb_tri_fan)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_TRIANGLE_FAN);
-
-       i = start + 2;
-       goto something_clipped;
-
- something_clipped:
-       for ( ; i < count; i++) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(start)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 1)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)];
-               FFB_AREA_DECLARE
-
-               FFB_COMPUTE_AREA_TRI(v0, v1, v2);
-               FFB_CULL_TRI(continue;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 3) + 9));
-               FFB_SET_PRIM_COLOR(v2);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->ryf = FFB_GET_Y(v0);
-               ffb->rxf = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z   = FFB_GET_Z(v1);
-               ffb->y   = FFB_GET_Y(v1);
-               ffb->x   = FFB_GET_X(v1);
-
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z   = FFB_GET_Z(v2);
-               ffb->y   = FFB_GET_Y(v2);
-               ffb->x   = FFB_GET_X(v2);
-
-               i++;
-               break;
-       }
-
-       for (; i < count; i++) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(start)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 1)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)];
-               FFB_AREA_DECLARE
-               (void) v0; (void) v1;
-
-               FFB_COMPUTE_AREA_TRI(v0, v1, v2);
-               FFB_CULL_TRI(i++; goto something_clipped;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 1) + 3));
-               FFB_SET_PRIM_COLOR(v2);
-
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z    = FFB_GET_Z(v2);
-               ffb->dmyf = FFB_GET_Y(v2);
-               ffb->dmxf = FFB_GET_X(v2);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_vb_poly)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_POLYGON);
-
-       /* XXX Optimize XXX */
-       for (i = start + 2; i < count; i++) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(i - 1)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(start)];
-               FFB_AREA_DECLARE
-
-               FFB_COMPUTE_AREA_TRI(v0, v1, v2);
-               FFB_CULL_TRI(continue;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 3) + 9));
-               FFB_SET_PRIM_COLOR(v2);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z   = FFB_GET_Z(v0);
-               ffb->ryf = FFB_GET_Y(v0);
-               ffb->rxf = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z   = FFB_GET_Z(v1);
-               ffb->y   = FFB_GET_Y(v1);
-               ffb->x   = FFB_GET_X(v1);
-
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z   = FFB_GET_Z(v2);
-               ffb->y   = FFB_GET_Y(v2);
-               ffb->x   = FFB_GET_X(v2);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_vb_quads)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_QUADS);
-
-       for (i = start + 3; i < count; i += 4) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(i - 3)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 2)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(i - 1)];
-               ffb_vertex *v3 = &fmesa->verts[ELT(i - 0)];
-               FFB_AREA_DECLARE
-
-               FFB_COMPUTE_AREA_QUAD(v0, v1, v2, v3);
-               FFB_CULL_QUAD(continue;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 4) + 12));
-               FFB_SET_PRIM_COLOR(v3);
-
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z    = FFB_GET_Z(v0);
-               ffb->ryf  = FFB_GET_Y(v0);
-               ffb->rxf  = FFB_GET_X(v0);
-
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z    = FFB_GET_Z(v1);
-               ffb->y    = FFB_GET_Y(v1);
-               ffb->x    = FFB_GET_X(v1);
-
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z    = FFB_GET_Z(v2);
-               ffb->y    = FFB_GET_Y(v2);
-               ffb->x    = FFB_GET_X(v2);
-
-               FFB_SET_VERTEX_COLOR(v3);
-               ffb->z    = FFB_GET_Z(v3);
-               ffb->dmyf = FFB_GET_Y(v3);
-               ffb->dmxf = FFB_GET_X(v3);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_vb_quad_strip)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       GLint i;
-       IMPL_LOCAL_VARS;
-
-#ifdef FFB_RENDER_TRACE
-       fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n",
-               __FUNCTION__, start, count, flags);
-#endif
-       ffbRenderPrimitive(ctx, GL_QUAD_STRIP);
-
-       /* XXX Optimize XXX */
-       for (i = start + 3; i < count; i += 2) {
-               ffb_vertex *v0 = &fmesa->verts[ELT(i - 1)];
-               ffb_vertex *v1 = &fmesa->verts[ELT(i - 3)];
-               ffb_vertex *v2 = &fmesa->verts[ELT(i - 2)];
-               ffb_vertex *v3 = &fmesa->verts[ELT(i - 0)];
-               FFB_AREA_DECLARE
-
-               FFB_COMPUTE_AREA_QUAD(v0, v1, v2, v3);
-               FFB_CULL_QUAD(continue;);
-
-               FFBFifo(fmesa, (FFB_PRIM_COLOR_COST +
-                               (FFB_VERTEX_COLOR_COST * 4) + 12));
-               FFB_SET_PRIM_COLOR(v3);
-
-               FFB_DUMP_VERTEX(v0);
-               FFB_SET_VERTEX_COLOR(v0);
-               ffb->z    = FFB_GET_Z(v0);
-               ffb->ryf  = FFB_GET_Y(v0);
-               ffb->rxf  = FFB_GET_X(v0);
-
-               FFB_DUMP_VERTEX(v1);
-               FFB_SET_VERTEX_COLOR(v1);
-               ffb->z    = FFB_GET_Z(v1);
-               ffb->y    = FFB_GET_Y(v1);
-               ffb->x    = FFB_GET_X(v1);
-
-               FFB_DUMP_VERTEX(v2);
-               FFB_SET_VERTEX_COLOR(v2);
-               ffb->z    = FFB_GET_Z(v2);
-               ffb->y    = FFB_GET_Y(v2);
-               ffb->x    = FFB_GET_X(v2);
-
-               FFB_DUMP_VERTEX(v3);
-               FFB_SET_VERTEX_COLOR(v3);
-               ffb->z    = FFB_GET_Z(v3);
-               ffb->dmyf = FFB_GET_Y(v3);
-               ffb->dmxf = FFB_GET_X(v3);
-       }
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void (*TAG(render_tab)[GL_POLYGON + 2])(GLcontext *, GLuint, GLuint, GLuint) =
-{
-#if !(IND & (FFB_TRI_CULL_BIT))
-       TAG(ffb_vb_points),
-       TAG(ffb_vb_lines),
-       TAG(ffb_vb_line_loop),
-       TAG(ffb_vb_line_strip),
-#else
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-#endif
-       TAG(ffb_vb_triangles),
-       TAG(ffb_vb_tri_strip),
-       TAG(ffb_vb_tri_fan),
-       TAG(ffb_vb_quads),
-       TAG(ffb_vb_quad_strip),
-       TAG(ffb_vb_poly),
-       ffb_vb_noop,
-};
-
-#undef IND
-#undef TAG
-
-#undef IMPL_LOCAL_VARS
-#undef FFB_DECLARE_CACHED_COLOR
-#undef FFB_COMPUTE_CACHED_COLOR
-#undef FFB_CACHED_COLOR_SAME
-#undef FFB_CACHED_COLOR_SET
-#undef FFB_CACHED_COLOR_UPDATE
-#undef FFB_SET_PRIM_COLOR
-#undef FFB_PRIM_COLOR_COST
-#undef FFB_SET_VERTEX_COLOR
-#undef FFB_VERTEX_COLOR_COST
-#undef RESET_STIPPLE
-#undef FFB_AREA_DECLARE
-#undef FFB_COMPUTE_AREA_TRI
-#undef FFB_COMPUTE_AREA_QUAD
-#undef FFB_CULL_TRI
-#undef FFB_CULL_QUAD
diff --git a/src/mesa/drivers/dri/ffb/ffb_span.c b/src/mesa/drivers/dri/ffb/ffb_span.c
deleted file mode 100644 (file)
index 61901cc..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_context.h"
-#include "ffb_lock.h"
-
-#define DBG 0
-
-#define HW_LOCK()                                              \
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);                 \
-       if (!fmesa->hw_locked)                                  \
-               LOCK_HARDWARE(fmesa);
-
-#define HW_UNLOCK()                    \
-       if (!fmesa->hw_locked)          \
-               UNLOCK_HARDWARE(fmesa); \
-
-#define LOCAL_VARS                                             \
-       __DRIdrawable *dPriv = fmesa->driDrawable;      \
-       GLuint height = dPriv->h;                               \
-        GLuint p;                                              \
-       char *buf;                                              \
-        (void) p
-
-#define INIT_MONO_PIXEL(p, color)              \
-        p = ((color[0] <<  0) |                        \
-            (color[1] << 8) |                  \
-            (color[2] << 16))
-
-/* We use WID clipping, so this test always passes. */
-#define CLIPPIXEL(__x, __y)    (1)
-
-/* And also, due to WID clipping, we need not do anything
- * special here.
- */
-#define CLIPSPAN(__x,__y,__n,__x1,__n1,__i)            \
-       __n1 = __n;                                     \
-       __x1 = __x;                                     \
-
-#define HW_CLIPLOOP()                                                  \
-do {   unsigned int fbc, ppc, cmp;                                     \
-       FFBWait(fmesa, fmesa->regs);                                    \
-       fbc = fmesa->regs->fbc; ppc = fmesa->regs->ppc; cmp = fmesa->regs->cmp; \
-       fmesa->regs->fbc = ((fbc &                                      \
-                            ~(FFB_FBC_WB_C | FFB_FBC_ZE_MASK | FFB_FBC_RGBE_MASK)) \
-                           | (FFB_FBC_ZE_OFF | FFB_FBC_RGBE_MASK));    \
-       fmesa->regs->ppc = ((ppc &                                      \
-                            ~(FFB_PPC_XS_MASK | FFB_PPC_ABE_MASK | FFB_PPC_DCE_MASK | \
-                              FFB_PPC_APE_MASK | FFB_PPC_CS_MASK))     \
-                           | (FFB_PPC_XS_WID | FFB_PPC_ABE_DISABLE |   \
-                              FFB_PPC_DCE_DISABLE | FFB_PPC_APE_DISABLE | \
-                              FFB_PPC_CS_VAR));                        \
-       fmesa->regs->cmp = ((cmp & ~(0xff << 16)) | (0x80 << 16));      \
-       fmesa->ffbScreen->rp_active = 1;                                \
-       FFBWait(fmesa, fmesa->regs);                                    \
-       buf = (char *)(fmesa->sfb32 + (dPriv->x << 2) + (dPriv->y << 13));\
-       if (dPriv->numClipRects) {
-
-#define HW_ENDCLIPLOOP()       \
-       }                       \
-       fmesa->regs->fbc = fbc; \
-       fmesa->regs->ppc = ppc; \
-       fmesa->regs->cmp = cmp; \
-       fmesa->ffbScreen->rp_active = 1; \
-} while(0)
-
-#define Y_FLIP(__y)            (height - __y - 1)
-
-#define READ_RGBA(rgba,__x,__y)                                        \
-do {   GLuint p = *(GLuint *)(buf + ((__x)<<2) + ((__y)<<13)); \
-       rgba[0] = (p >>  0) & 0xff;                             \
-       rgba[1] = (p >>  8) & 0xff;                             \
-       rgba[2] = (p >> 16) & 0xff;                             \
-       rgba[3] = 0xff;                                         \
-} while(0)
-
-#define WRITE_RGBA(__x, __y, __r, __g, __b, __a)               \
-       *(GLuint *)(buf + ((__x)<<2) + ((__y)<<13)) =           \
-               ((((__r) & 0xff) <<  0) |                       \
-                (((__g) & 0xff) <<  8) |                       \
-                (((__b) & 0xff) << 16))
-
-#define WRITE_PIXEL(__x, __y, __p) \
-       *(GLuint *)(buf + ((__x)<<2) + ((__y)<<13)) = (__p)
-
-#define TAG(x) ffb##x##_888
-
-#include "spantmp.h"
-
-/**
- * Plug in the Get/Put routines for the given driRenderbuffer.
- */
-void
-ffbSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis)
-{
-       assert(vis->redBits == 8);
-        assert(vis->greenBits == 8);
-        assert(vis->blueBits == 8);
-        ffbInitPointers_888(&drb->Base);
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_span.h b/src/mesa/drivers/dri/ffb/ffb_span.h
deleted file mode 100644 (file)
index 37506cf..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-#ifndef _FFB_SPAN_H
-#define _FFB_SPAN_H
-
-#include "drirenderbuffer.h"
-
-void ffbSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis);
-
-#endif /* !(_FFB_SPAN_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_state.c b/src/mesa/drivers/dri/ffb/ffb_state.c
deleted file mode 100644 (file)
index c09d2fe..0000000
+++ /dev/null
@@ -1,1222 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000, 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-#include "main/colormac.h"
-#include "main/enums.h"
-
-#include "vbo/vbo.h"
-#include "tnl/tnl.h"
-#include "tnl/t_pipeline.h"
-#include "swrast/swrast.h"
-#include "swrast_setup/swrast_setup.h"
-
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_context.h"
-#include "ffb_tris.h"
-#include "ffb_state.h"
-
-#undef STATE_TRACE
-
-static unsigned int ffbComputeAlphaFunc(GLcontext *ctx)
-{
-       unsigned int xclip;
-       GLubyte alphaRef;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDAlphaFunc: func(%s) ref(%02x)\n",
-               _mesa_lookup_enum_by_nr(ctx->Color.AlphaFunc),
-               ctx->Color.AlphaRef & 0xff);
-#endif
-
-       switch (ctx->Color.AlphaFunc) {
-       case GL_NEVER: xclip = FFB_XCLIP_TEST_NEVER; break;
-       case GL_LESS: xclip = FFB_XCLIP_TEST_LT; break;
-       case GL_EQUAL: xclip = FFB_XCLIP_TEST_EQ; break;
-       case GL_LEQUAL: xclip = FFB_XCLIP_TEST_LE; break;
-       case GL_GREATER: xclip = FFB_XCLIP_TEST_GT; break;
-       case GL_NOTEQUAL: xclip = FFB_XCLIP_TEST_NE; break;
-       case GL_GEQUAL: xclip = FFB_XCLIP_TEST_GE; break;
-       case GL_ALWAYS: xclip = FFB_XCLIP_TEST_ALWAYS; break;
-
-       default:
-               return FFB_XCLIP_TEST_ALWAYS | 0x00;
-       }
-
-       CLAMPED_FLOAT_TO_UBYTE(alphaRef, ctx->Color.AlphaRef);
-       xclip |= (alphaRef & 0xff);
-
-       return xclip;
-}
-
-static void ffbDDAlphaFunc(GLcontext *ctx, GLenum func, GLfloat ref)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       if (ctx->Color.AlphaEnabled) {
-               unsigned int xclip = ffbComputeAlphaFunc(ctx);
-
-               if (fmesa->xclip != xclip) {
-                       fmesa->xclip = xclip;
-                       FFB_MAKE_DIRTY(fmesa, FFB_STATE_XCLIP, 1);
-               }
-       }
-}
-
-static void ffbDDBlendEquationSeparate(GLcontext *ctx, 
-                                      GLenum modeRGB, GLenum modeA)
-{
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDBlendEquation: mode(%s)\n", 
-               _mesa_lookup_enum_by_nr(modeRGB));
-#endif
-       assert( modeRGB == modeA );
-       FALLBACK( ctx, (modeRGB != GL_FUNC_ADD), FFB_BADATTR_BLENDEQN);
-}
-
-static void ffbDDBlendFuncSeparate(GLcontext *ctx, GLenum sfactorRGB,
-                                  GLenum dfactorRGB, GLenum sfactorA,
-                                  GLenum dfactorA)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int blendc = 1 << 4;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDBlendFuncSeparate: sRGB(%s) dRGB(%s) sA(%s) dA(%s)\n",
-               _mesa_lookup_enum_by_nr(sfactorRGB),
-               _mesa_lookup_enum_by_nr(dfactorRGB),
-               _mesa_lookup_enum_by_nr(sfactorA),
-               _mesa_lookup_enum_by_nr(dfactorA));
-#endif
-       switch (ctx->Color.BlendSrcRGB) {
-       case GL_ZERO:
-               blendc |= (0 << 0);
-               break;
-
-       case GL_ONE:
-               blendc |= (1 << 0);
-               break;
-
-       case GL_ONE_MINUS_SRC_ALPHA:
-               blendc |= (2 << 0);
-               break;
-
-       case GL_SRC_ALPHA:
-               blendc |= (3 << 0);
-               break;
-
-       default:
-               if (ctx->Color.BlendEnabled)
-                       FALLBACK( ctx, FFB_BADATTR_BLENDFUNC, GL_TRUE );
-               return;
-       };
-
-       switch (ctx->Color.BlendDstRGB) {
-       case GL_ZERO:
-               blendc |= (0 << 2);
-               break;
-
-       case GL_ONE:
-               blendc |= (1 << 2);
-               break;
-
-       case GL_ONE_MINUS_SRC_ALPHA:
-               blendc |= (2 << 2);
-               break;
-
-       case GL_SRC_ALPHA:
-               blendc |= (3 << 2);
-               break;
-
-       default:
-               if (ctx->Color.BlendEnabled)
-                       FALLBACK( ctx, FFB_BADATTR_BLENDFUNC, GL_TRUE );
-               return;
-       };
-
-       if (ctx->Color.BlendEnabled &&
-           ctx->Color.ColorLogicOpEnabled &&
-           ctx->Color.LogicOp != GL_COPY) {
-               /* We could avoid this if sfactor is GL_ONE and
-                * dfactor is GL_ZERO.  I do not think that is even
-                * worthwhile to check because if someone is using
-                * blending they use more interesting settings and
-                * also it would add more state tracking to a lot
-                * of the code in this file.
-                */
-               FALLBACK(ctx, FFB_BADATTR_BLENDROP, GL_TRUE);
-               return;
-       }
-
-       FALLBACK( ctx, (FFB_BADATTR_BLENDFUNC|FFB_BADATTR_BLENDROP), GL_FALSE );
-
-       if (blendc != fmesa->blendc) {
-               fmesa->blendc = blendc;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_BLEND, 1);
-       }
-}
-
-static void ffbDDDepthFunc(GLcontext *ctx, GLenum func)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLuint cmp;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDDepthFunc: func(%s)\n",
-               _mesa_lookup_enum_by_nr(func));
-#endif
-
-       switch (func) {
-       case GL_NEVER:
-               cmp = FFB_CMP_MAGN_NEVER;
-               break;
-       case GL_ALWAYS:
-               cmp = FFB_CMP_MAGN_ALWAYS;
-               break;
-       case GL_LESS:
-               cmp = FFB_CMP_MAGN_LT;
-               break;
-       case GL_LEQUAL:
-               cmp = FFB_CMP_MAGN_LE;
-               break;
-       case GL_EQUAL:
-               cmp = FFB_CMP_MAGN_EQ;
-               break;
-       case GL_GREATER:
-               cmp = FFB_CMP_MAGN_GT;
-               break;
-       case GL_GEQUAL:
-               cmp = FFB_CMP_MAGN_GE;
-               break;
-       case GL_NOTEQUAL:
-               cmp = FFB_CMP_MAGN_NE;
-               break;
-       default:
-               return;
-       };
-
-       if (! ctx->Depth.Test)
-               cmp = FFB_CMP_MAGN_ALWAYS;
-
-       cmp <<= 16;
-       cmp = (fmesa->cmp & ~(0xff<<16)) | cmp;
-       if (cmp != fmesa->cmp) {
-               fmesa->cmp = cmp;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_CMP, 1);
-       }
-}
-
-static void ffbDDDepthMask(GLcontext *ctx, GLboolean flag)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLuint fbc = fmesa->fbc;
-       GLboolean enabled_now;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDDepthMask: flag(%d)\n", flag);
-#endif
-
-       if ((fbc & FFB_FBC_ZE_MASK) == FFB_FBC_ZE_OFF)
-               enabled_now = GL_FALSE;
-       else
-               enabled_now = GL_TRUE;
-
-       if (flag != enabled_now) {
-               fbc &= ~FFB_FBC_ZE_MASK;
-               if (flag) {
-                       fbc |= FFB_FBC_WB_C | FFB_FBC_ZE_ON;
-               } else {
-                       fbc |= FFB_FBC_ZE_OFF;
-                       fbc &= ~FFB_FBC_WB_C;
-               }
-               fmesa->fbc = fbc;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_FBC, 1);
-       }
-}
-
-static void
-ffbDDStencilFuncSeparate(GLcontext *ctx, GLenum face, GLenum func,
-                         GLint ref, GLuint mask)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int stencil, stencilctl, consty;
-
-       /* We will properly update sw/hw state when stenciling is
-        * enabled.
-        */
-       if (! ctx->Stencil._Enabled)
-               return;
-
-       stencilctl = fmesa->stencilctl;
-       stencilctl &= ~(7 << 16);
-
-       switch (func) {
-       case GL_ALWAYS:         stencilctl |= (0 << 16); break;
-       case GL_GREATER:        stencilctl |= (1 << 16); break;
-       case GL_EQUAL:          stencilctl |= (2 << 16); break;
-       case GL_GEQUAL:         stencilctl |= (3 << 16); break;
-       case GL_NEVER:          stencilctl |= (4 << 16); break;
-       case GL_LEQUAL:         stencilctl |= (5 << 16); break;
-       case GL_NOTEQUAL:       stencilctl |= (6 << 16); break;
-       case GL_LESS:           stencilctl |= (7 << 16); break;
-
-       default:
-               return;
-       };
-
-       consty = ref & 0xf;
-
-       stencil = fmesa->stencil;
-       stencil &= ~(0xf << 20);
-       stencil |= (mask & 0xf) << 20;
-
-       if (fmesa->stencil != stencil ||
-           fmesa->stencilctl != stencilctl ||
-           fmesa->consty != consty) {
-               fmesa->stencil = stencil;
-               fmesa->stencilctl = stencilctl;
-               fmesa->consty = consty;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_STENCIL, 6);
-       }
-}
-
-static void
-ffbDDStencilMaskSeparate(GLcontext *ctx, GLenum face, GLuint mask)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       mask &= 0xf;
-       if (fmesa->ypmask != mask) {
-               fmesa->ypmask = mask;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_YPMASK, 1);
-       }
-}
-
-static void
-ffbDDStencilOpSeparate(GLcontext *ctx, GLenum face, GLenum fail,
-                       GLenum zfail, GLenum zpass)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int stencilctl;
-
-       /* We will properly update sw/hw state when stenciling is
-        * enabled.
-        */
-       if (! ctx->Stencil._Enabled)
-               return;
-
-       stencilctl = fmesa->stencilctl;
-       stencilctl &= ~(0xfff00000);
-
-       switch (fail) {
-       case GL_ZERO:           stencilctl |= (0 << 28); break;
-       case GL_KEEP:           stencilctl |= (1 << 28); break;
-       case GL_INVERT:         stencilctl |= (2 << 28); break;
-       case GL_REPLACE:        stencilctl |= (3 << 28); break;
-       case GL_INCR:           stencilctl |= (4 << 28); break;
-       case GL_DECR:           stencilctl |= (5 << 28); break;
-
-       default:
-               return;
-       };
-
-       switch (zfail) {
-       case GL_ZERO:           stencilctl |= (0 << 24); break;
-       case GL_KEEP:           stencilctl |= (1 << 24); break;
-       case GL_INVERT:         stencilctl |= (2 << 24); break;
-       case GL_REPLACE:        stencilctl |= (3 << 24); break;
-       case GL_INCR:           stencilctl |= (4 << 24); break;
-       case GL_DECR:           stencilctl |= (5 << 24); break;
-
-       default:
-               return;
-       };
-
-       switch (zpass) {
-       case GL_ZERO:           stencilctl |= (0 << 20); break;
-       case GL_KEEP:           stencilctl |= (1 << 20); break;
-       case GL_INVERT:         stencilctl |= (2 << 20); break;
-       case GL_REPLACE:        stencilctl |= (3 << 20); break;
-       case GL_INCR:           stencilctl |= (4 << 20); break;
-       case GL_DECR:           stencilctl |= (5 << 20); break;
-
-       default:
-               return;
-       };
-
-       if (fmesa->stencilctl != stencilctl) {
-               fmesa->stencilctl = stencilctl;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_STENCIL, 6);
-       }
-}
-
-static void ffbCalcViewportRegs(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       GLuint xmin, xmax, ymin, ymax, zmin, zmax;
-       unsigned int vcmin, vcmax;
-
-       xmin = ctx->Viewport.X + dPriv->x;
-       xmax = xmin + ctx->Viewport.Width;
-       ymax = dPriv->y + dPriv->h - ctx->Viewport.Y;
-       ymin = ymax - ctx->Viewport.Height;
-       if (ctx->Scissor.Enabled) {
-               GLuint sc_xmin, sc_xmax, sc_ymin, sc_ymax;
-
-               sc_xmin = ctx->Viewport.X + dPriv->x;
-               sc_xmax = sc_xmin + ctx->Viewport.Width;
-               sc_ymax = dPriv->y + dPriv->h - ctx->Viewport.Y;
-               sc_ymin = sc_ymax - ctx->Viewport.Height;
-               if (sc_xmin > xmin)
-                       xmin = sc_xmin;
-               if (sc_xmax < xmax)
-                       xmax = sc_xmax;
-               if (sc_ymin > ymin)
-                       ymin = sc_ymin;
-               if (sc_ymax < ymax)
-                       ymax = sc_ymax;
-       }
-       zmin = ((GLdouble)ctx->Viewport.Near * 0x0fffffff);
-       zmax = ((GLdouble)ctx->Viewport.Far  * 0x0fffffff);
-
-       vcmin = ((ymin & 0xffff) << 16) | (xmin & 0xffff);
-       vcmax = ((ymax & 0xffff) << 16) | (xmax & 0xffff);
-       if (fmesa->vclipmin != vcmin ||
-           fmesa->vclipmax != vcmax ||
-           fmesa->vclipzmin != zmin ||
-           fmesa->vclipzmax != zmax) {
-               fmesa->vclipmin = vcmin;
-               fmesa->vclipmax = vcmax;
-               fmesa->vclipzmin = zmin;
-               fmesa->vclipzmax = zmax;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_CLIP, (4 + (4 * 2)));
-       }
-}
-
-void ffbCalcViewport(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       const GLfloat *v = ctx->Viewport._WindowMap.m;
-       GLfloat *m = fmesa->hw_viewport;
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-
-       m[MAT_SX] =   v[MAT_SX];
-       m[MAT_TX] =   v[MAT_TX] + dPriv->x + SUBPIXEL_X;
-       m[MAT_SY] = - v[MAT_SY];
-       m[MAT_TY] = - v[MAT_TY] + dPriv->h + dPriv->y + SUBPIXEL_Y;
-       m[MAT_SZ] =   v[MAT_SZ] * ((GLdouble)1.0 / (GLdouble)0x0fffffff);
-       m[MAT_TZ] =   v[MAT_TZ] * ((GLdouble)1.0 / (GLdouble)0x0fffffff);
-
-       fmesa->depth_scale = ((GLdouble)1.0 / (GLdouble)0x0fffffff);
-
-       ffbCalcViewportRegs(ctx);
-
-       fmesa->setupnewinputs |= VERT_BIT_POS;
-}
-
-static void ffbDDViewport(GLcontext *ctx, GLint x, GLint y,
-                         GLsizei width, GLsizei height)
-{
-       ffbCalcViewport(ctx);
-}
-
-static void ffbDDDepthRange(GLcontext *ctx, GLclampd nearval, GLclampd farval)
-{
-       ffbCalcViewport(ctx);
-}
-
-static void ffbDDScissor(GLcontext *ctx, GLint cx, GLint cy,
-                 GLsizei cw, GLsizei ch)
-{
-       ffbCalcViewport(ctx);
-}
-
-static void ffbDDDrawBuffer(GLcontext *ctx, GLenum buffer)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int fbc = fmesa->fbc;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDDrawBuffer: mode(%s)\n",
-               _mesa_lookup_enum_by_nr(buffer));
-#endif
-       fbc &= ~(FFB_FBC_WB_AB | FFB_FBC_RB_MASK);
-       switch (buffer) {
-       case GL_FRONT:
-               if (fmesa->back_buffer == 0)
-                       fbc |= FFB_FBC_WB_B | FFB_FBC_RB_B;
-               else
-                       fbc |= FFB_FBC_WB_A | FFB_FBC_RB_A;
-               break;
-
-       case GL_BACK:
-               if (fmesa->back_buffer == 0)
-                       fbc |= FFB_FBC_WB_A | FFB_FBC_RB_A;
-               else
-                       fbc |= FFB_FBC_WB_B | FFB_FBC_RB_B;
-               break;
-
-       case GL_FRONT_AND_BACK:
-               fbc |= FFB_FBC_WB_AB;
-               break;
-
-       default:
-               return;
-       };
-
-       if (fbc != fmesa->fbc) {
-               fmesa->fbc = fbc;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_FBC, 1);
-       }
-}
-
-
-static void ffbDDReadBuffer(GLcontext *ctx, GLenum buffer)
-{
-   /* no-op, unless you implement h/w glRead/CopyPixels */
-}
-
-
-/*
- * Specifies buffer for sw fallbacks (spans)
- */
-#if 000
-/* XXX
- * This function is obsolete.  It's not clear how this really effected
- * span reading/writing above.  The span functions should use the
- * incoming driRenderbuffer (gl_renderbuffer) pointer to determine how
- * to read from the specified bufer.
- */
-static void ffbDDSetBuffer(GLcontext *ctx, GLframebuffer *colorBuffer,
-                          GLuint bufferBit)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int fbc = fmesa->fbc;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDSetReadBuffer: mode(%s)\n",
-               _mesa_lookup_enum_by_nr(buffer));
-#endif
-       fbc &= ~(FFB_FBC_RB_MASK);
-       switch (bufferBit) {
-       case BUFFER_BIT_FRONT_LEFT:
-               if (fmesa->back_buffer == 0)
-                       fbc |= FFB_FBC_RB_B;
-               else
-                       fbc |= FFB_FBC_RB_A;
-               break;
-
-       case BUFFER_BIT_BACK_LEFT:
-               if (fmesa->back_buffer == 0)
-                       fbc |= FFB_FBC_RB_A;
-               else
-                       fbc |= FFB_FBC_RB_B;
-               break;
-
-       default:
-               _mesa_problem(ctx, "Unexpected buffer in ffbDDSetBuffer()");
-               return;
-       };
-
-       if (fbc != fmesa->fbc) {
-               fmesa->fbc = fbc;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_FBC, 1);
-       }
-}
-#endif
-
-
-static void ffbDDClearColor(GLcontext *ctx, const GLfloat color[4])
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLubyte c[4];
-       CLAMPED_FLOAT_TO_UBYTE(c[0], color[0]);
-       CLAMPED_FLOAT_TO_UBYTE(c[1], color[1]);
-       CLAMPED_FLOAT_TO_UBYTE(c[2], color[2]);
-
-       fmesa->clear_pixel = ((c[0] << 0) |
-                             (c[1] << 8) |
-                             (c[2] << 16));
-}
-
-static void ffbDDClearDepth(GLcontext *ctx, GLclampd depth)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       fmesa->clear_depth = Z_FROM_MESA(depth * 4294967295.0f);
-}
-
-static void ffbDDClearStencil(GLcontext *ctx, GLint stencil)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       fmesa->clear_stencil = stencil & 0xf;
-}
-
-/* XXX Actually, should I be using FBC controls for this? -DaveM */
-static void ffbDDColorMask(GLcontext *ctx,
-                          GLboolean r, GLboolean g,
-                          GLboolean b, GLboolean a)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int new_pmask = 0x0;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDColorMask: r(%d) g(%d) b(%d) a(%d)\n",
-               r, g, b, a);
-#endif
-       if (r)
-               new_pmask |= 0x000000ff;
-       if (g)
-               new_pmask |= 0x0000ff00;
-       if (b)
-               new_pmask |= 0x00ff0000;
-       if (a)
-               new_pmask |= 0xff000000;
-
-       if (fmesa->pmask != new_pmask) {
-               fmesa->pmask = new_pmask;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_PMASK, 1);
-       }
-}
-
-static void ffbDDLogicOp(GLcontext *ctx, GLenum op)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int rop;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDLogicOp: op(%s)\n",
-               _mesa_lookup_enum_by_nr(op));
-#endif
-       switch (op) {
-       case GL_CLEAR: rop = FFB_ROP_ZERO; break;
-       case GL_SET: rop = FFB_ROP_ONES; break;
-       case GL_COPY: rop = FFB_ROP_NEW; break;
-       case GL_AND: rop = FFB_ROP_NEW_AND_OLD; break;
-       case GL_NAND: rop = FFB_ROP_NEW_AND_NOLD; break;
-       case GL_OR: rop = FFB_ROP_NEW_OR_OLD; break;
-       case GL_NOR: rop = FFB_ROP_NEW_OR_NOLD; break;
-       case GL_XOR: rop = FFB_ROP_NEW_XOR_OLD; break;
-       case GL_NOOP: rop = FFB_ROP_OLD; break;
-       case GL_COPY_INVERTED: rop = FFB_ROP_NNEW; break;
-       case GL_INVERT: rop = FFB_ROP_NOLD; break;
-       case GL_EQUIV: rop = FFB_ROP_NNEW_XOR_NOLD; break;
-       case GL_AND_REVERSE: rop = FFB_ROP_NEW_AND_NOLD; break;
-       case GL_AND_INVERTED: rop = FFB_ROP_NNEW_AND_OLD; break;
-       case GL_OR_REVERSE: rop = FFB_ROP_NEW_OR_NOLD; break;
-       case GL_OR_INVERTED: rop = FFB_ROP_NNEW_OR_OLD; break;
-
-       default:
-               return;
-       };
-
-       rop |= fmesa->rop & ~0xff;
-       if (rop != fmesa->rop) {
-               fmesa->rop = rop;
-               FFB_MAKE_DIRTY(fmesa, FFB_STATE_ROP, 1);
-
-               if (op == GL_COPY)
-                       FALLBACK( ctx, FFB_BADATTR_BLENDROP, GL_FALSE );
-       }
-}
-
-#if 0
-/* XXX Also need to track near/far just like 3dfx driver.
- * XXX
- * XXX Actually, that won't work, because the 3dfx chip works by
- * XXX having 1/w coordinates fed to it for each primitive, and
- * XXX it uses this to index it's 64 entry fog table.
- */
-static void ffb_fog_linear(GLcontext *ctx, ffbContextPtr fmesa)
-{
-       GLfloat c = ctx->ProjectionMatrix.m[10];
-       GLfloat d = ctx->ProjectionMatrix.m[14];
-       GLfloat tz = ctx->Viewport.WindowMap.m[MAT_TZ];
-       GLfloat szInv = 1.0F / ctx->Viewport.WindowMap.m[MAT_SZ];
-       GLfloat fogEnd = ctx->Fog.End;
-       GLfloat fogScale = 1.0F / (ctx->Fog.End - ctx->Fog.Start);
-       GLfloat ndcz;
-       GLfloat eyez;
-       GLfloat Zzero, Zone;
-       unsigned int zb, zf;
-
-       /* Compute the Z at which f reaches 0.0, this is the full
-        * saturation point.
-        *
-        * Thus compute Z (as seen by the chip during rendering),
-        * such that:
-        *
-        *      0.0 = (fogEnd - eyez) * fogScale
-        *
-        * fogScale is usually not zero, thus we are looking for:
-        *
-        *      fogEnd = eyez
-        *
-        *      fogEnd = -d / (c + ((Z - tz) * szInv))
-        *      fogEnd * (c + ((Z - tz) * szInv)) = -d
-        *      (c + ((Z - tz) * szInv)) = -d / fogEnd
-        *      (Z - tz) * szInv = (-d / fogEnd) - c
-        *      (Z - tz) = ((-d / fogEnd) - c) / szInv
-        *      Z = (((-d / fogEnd) - c) / szInv) + tz
-        */
-       Zzero = (((-d / fogEnd) - c) / szInv) + tz;
-
-       /* Compute the Z at which f reaches 1.0, this is where
-        * the incoming frag's full intensity is shown.  This
-        * equation is:
-        *
-        *      1.0 = (fogEnd - eyez)
-        *
-        * We are looking for:
-        *
-        *      1.0 + eyez = fogEnd
-        *
-        *      1.0 + (-d / (c + ((Z - tz) * szInv))) = fogEnd
-        *      -d / (c + ((Z - tz) * szInv)) = fogEnd - 1.0
-        *      -d / (FogEnd - 1.0) = (c + ((Z - tz) * szInv))
-        *      (-d / (fogEnd - 1.0)) - c = ((Z - tz) * szInv)
-        *      ((-d / (fogEnd - 1.0)) - c) / szInv = (Z - tz)
-        *      (((-d / (fogEnd - 1.0)) - c) / szInv) + tz = Z
-        */
-       Zone = (((-d / (fogEnd - 1.0)) - c) / szInv) + tz;
-
-       /* FFB's Zfront must be less than Zback, thus we may have
-        * to invert Sf/Sb to satisfy this constraint.
-        */
-       if (Zzero < Zone) {
-               sf = 0.0;
-               sb = 1.0;
-               zf = Z_FROM_MESA(Zzero);
-               zb = Z_FROM_MESA(Zone);
-       } else {
-               sf = 1.0;
-               sb = 0.0;
-               zf = Z_FROM_MESA(Zone);
-               zb = Z_FROM_MESA(Zzero);
-       }
-}
-#endif
-
-static void ffbDDFogfv(GLcontext *ctx, GLenum pname, const GLfloat *param)
-{
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDFogfv: pname(%s)\n", _mesa_lookup_enum_by_nr(pname));
-#endif
-}
-
-static void ffbDDLineStipple(GLcontext *ctx, GLint factor, GLushort pattern)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDLineStipple: factor(%d) pattern(%04x)\n",
-               factor, pattern);
-#endif
-       if (ctx->Line.StippleFlag) {
-               factor = ctx->Line.StippleFactor;
-               pattern = ctx->Line.StipplePattern;
-               if ((GLuint) factor > 15) {                     
-                       fmesa->lpat = FFB_LPAT_BAD;
-               } else {
-                       fmesa->lpat = ((factor << FFB_LPAT_SCALEVAL_SHIFT) |
-                                      (0 << FFB_LPAT_PATLEN_SHIFT) |
-                                      ((pattern & 0xffff) << FFB_LPAT_PATTERN_SHIFT));
-               }
-       } else {
-               fmesa->lpat = 0;
-       }
-}
-
-void ffbXformAreaPattern(ffbContextPtr fmesa, const GLubyte *mask)
-{
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       int i, lines, xoff;
-
-       lines = 0;
-       i = (dPriv->y + dPriv->h) & (32 - 1);
-       xoff = dPriv->x & (32 - 1);
-       while (lines++ < 32) {
-               GLuint raw =
-                       (((GLuint)mask[0] << 24) |
-                        ((GLuint)mask[1] << 16) |
-                        ((GLuint)mask[2] <<  8) |
-                        ((GLuint)mask[3] <<  0));
-
-               fmesa->pattern[i] =
-                       (raw << xoff) | (raw >> (32 - xoff));
-               i = (i - 1) & (32 - 1);
-               mask += 4;
-       }
-
-       FFB_MAKE_DIRTY(fmesa, FFB_STATE_APAT, 32);
-}
-
-static void ffbDDPolygonStipple(GLcontext *ctx, const GLubyte *mask)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDPolygonStipple: state(%d)\n",
-               ctx->Polygon.StippleFlag);
-#endif
-       ffbXformAreaPattern(fmesa, mask);
-}
-
-static void ffbDDEnable(GLcontext *ctx, GLenum cap, GLboolean state)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       unsigned int tmp;
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDEnable: %s state(%d)\n",
-               _mesa_lookup_enum_by_nr(cap), state);
-#endif
-       switch (cap) {
-       case GL_ALPHA_TEST:
-               if (state)
-                       tmp = ffbComputeAlphaFunc(ctx);
-               else
-                       tmp = FFB_XCLIP_TEST_ALWAYS;
-
-               if (tmp != fmesa->xclip) {
-                       fmesa->xclip = tmp;
-                       FFB_MAKE_DIRTY(fmesa, FFB_STATE_XCLIP, 1);
-               }
-               break;
-
-       case GL_BLEND:
-               tmp = (fmesa->ppc & ~FFB_PPC_ABE_MASK);
-               if (state) {
-                       tmp |= FFB_PPC_ABE_ENABLE;
-               } else {
-                       tmp |= FFB_PPC_ABE_DISABLE;
-               }
-               if (fmesa->ppc != tmp) {
-                       fmesa->ppc = tmp;
-                       FFB_MAKE_DIRTY(fmesa, FFB_STATE_PPC, 1);
-                       ffbDDBlendFuncSeparate(ctx, 0, 0, 0, 0 );
-               }
-               break;
-
-       case GL_DEPTH_TEST:
-               if (state)
-                       tmp = 0x0fffffff;
-               else
-                       tmp = 0x00000000;
-               if (tmp != fmesa->magnc) {
-                       unsigned int fbc = fmesa->fbc;
-                       fbc &= ~FFB_FBC_ZE_MASK;
-                       if (state)
-                               fbc |= FFB_FBC_ZE_ON;
-                       else
-                               fbc |= FFB_FBC_ZE_OFF;
-                       fmesa->fbc = fbc;
-                       ffbDDDepthFunc(ctx, ctx->Depth.Func);
-                       fmesa->magnc = tmp;
-                       FFB_MAKE_DIRTY(fmesa, (FFB_STATE_MAGNC | FFB_STATE_FBC), 2);
-               }
-               break;
-
-       case GL_SCISSOR_TEST:
-               ffbDDScissor(ctx, ctx->Scissor.X, ctx->Scissor.Y,
-                            ctx->Scissor.Width, ctx->Scissor.Height);
-               break;
-
-       case GL_STENCIL_TEST:
-               if (!(fmesa->ffb_sarea->flags & FFB_DRI_FFB2PLUS)) {
-                       FALLBACK( ctx, FFB_BADATTR_STENCIL, state );
-               }
-
-               tmp = fmesa->fbc & ~FFB_FBC_YE_MASK;
-               if (state) {
-                       ffbDDStencilFuncSeparate(ctx, GL_FRONT,
-                                        ctx->Stencil.Function[0],
-                                        ctx->Stencil.Ref[0],
-                                        ctx->Stencil.ValueMask[0]);
-                       ffbDDStencilMaskSeparate(ctx, GL_FRONT,
-                                                 ctx->Stencil.WriteMask[0]);
-                       ffbDDStencilOpSeparate(ctx, GL_FRONT,
-                                      ctx->Stencil.FailFunc[0],
-                                      ctx->Stencil.ZFailFunc[0],
-                                      ctx->Stencil.ZPassFunc[0]);
-                       tmp |= FFB_FBC_YE_MASK;
-               } else {
-                       fmesa->stencil          = 0xf0000000;
-                       fmesa->stencilctl       = 0x33300000;
-                       FFB_MAKE_DIRTY(fmesa, FFB_STATE_STENCIL, 6);
-                       tmp |= FFB_FBC_YE_OFF;
-               }
-               if (tmp != fmesa->fbc) {
-                       fmesa->fbc = tmp;
-                       FFB_MAKE_DIRTY(fmesa, FFB_STATE_FBC, 1);
-               }
-               break;
-
-       case GL_FOG:
-               /* Until I implement the fog support... */
-               FALLBACK( ctx, FFB_BADATTR_FOG, state );
-               break;
-
-       case GL_LINE_STIPPLE:
-               if (! state)
-                       fmesa->lpat = 0;
-               else
-                       ffbDDLineStipple(ctx,
-                                        ctx->Line.StippleFactor,
-                                        ctx->Line.StipplePattern);
-               break;
-
-       case GL_POLYGON_STIPPLE:
-               /* Do nothing, we interrogate the state during
-                * reduced primitive changes.  Since our caller
-                * will set NEW_POLYGON in the ctx NewState this
-                * will cause the driver rasterization functions
-                * to be reevaluated, which will cause us to force
-                * a reduced primitive change next rendering pass
-                * and it all works out.
-                */
-               break;
-
-       default:
-               break;
-       };
-}
-
-void ffbSyncHardware(ffbContextPtr fmesa)
-{
-       ffb_fbcPtr ffb = fmesa->regs;
-       unsigned int dirty;
-       int i;
-
-       FFBFifo(fmesa, fmesa->state_fifo_ents);
-
-       dirty = fmesa->state_dirty;
-       if (dirty & (FFB_STATE_FBC | FFB_STATE_PPC | FFB_STATE_DRAWOP |
-                    FFB_STATE_ROP | FFB_STATE_LPAT | FFB_STATE_WID)) {
-               if (dirty & FFB_STATE_FBC)
-                       ffb->fbc = fmesa->fbc;
-               if (dirty & FFB_STATE_PPC)
-                       ffb->ppc = fmesa->ppc;
-               if (dirty & FFB_STATE_DRAWOP)
-                       ffb->drawop = fmesa->drawop;
-               if (dirty & FFB_STATE_ROP)
-                       ffb->rop = fmesa->rop;
-               if (dirty & FFB_STATE_LPAT)
-                       ffb->rop = fmesa->lpat;
-               if (dirty & FFB_STATE_WID)
-                       ffb->wid = fmesa->wid;
-       }
-       if (dirty & (FFB_STATE_PMASK | FFB_STATE_XPMASK | FFB_STATE_YPMASK |
-                    FFB_STATE_ZPMASK | FFB_STATE_XCLIP | FFB_STATE_CMP |
-                    FFB_STATE_MATCHAB | FFB_STATE_MAGNAB | FFB_STATE_MATCHC |
-                    FFB_STATE_MAGNC)) {
-               if (dirty & FFB_STATE_PMASK)
-                       ffb->pmask = fmesa->pmask;
-               if (dirty & FFB_STATE_XPMASK)
-                       ffb->xpmask = fmesa->xpmask;
-               if (dirty & FFB_STATE_YPMASK)
-                       ffb->ypmask = fmesa->ypmask;
-               if (dirty & FFB_STATE_ZPMASK)
-                       ffb->zpmask = fmesa->zpmask;
-               if (dirty & FFB_STATE_XCLIP)
-                       ffb->xclip = fmesa->xclip;
-               if (dirty & FFB_STATE_CMP)
-                       ffb->cmp = fmesa->cmp;
-               if (dirty & FFB_STATE_MATCHAB)
-                       ffb->matchab = fmesa->matchab;
-               if (dirty & FFB_STATE_MAGNAB)
-                       ffb->magnab = fmesa->magnab;
-               if (dirty & FFB_STATE_MATCHC)
-                       ffb->matchc = fmesa->matchc;
-               if (dirty & FFB_STATE_MAGNC)
-                       ffb->magnc = fmesa->magnc;
-       }
-
-       if (dirty & FFB_STATE_DCUE) {
-               ffb->dcss = fmesa->dcss;
-               ffb->dcsf = fmesa->dcsf;
-               ffb->dcsb = fmesa->dcsb;
-               ffb->dczf = fmesa->dczf;
-               ffb->dczb = fmesa->dczb;
-               if (fmesa->ffb_sarea->flags & (FFB_DRI_FFB2 | FFB_DRI_FFB2PLUS)) {
-                       ffb->dcss1 = fmesa->dcss1;
-                       ffb->dcss2 = fmesa->dcss2;
-                       ffb->dcss3 = fmesa->dcss3;
-                       ffb->dcs2  = fmesa->dcs2;
-                       ffb->dcs3  = fmesa->dcs3;
-                       ffb->dcs4  = fmesa->dcs4;
-                       ffb->dcd2  = fmesa->dcd2;
-                       ffb->dcd3  = fmesa->dcd3;
-                       ffb->dcd4  = fmesa->dcd4;
-               }
-       }
-
-       if (dirty & FFB_STATE_BLEND) {
-               ffb->blendc  = fmesa->blendc;
-               ffb->blendc1 = fmesa->blendc1;
-               ffb->blendc2 = fmesa->blendc2;
-       }
-
-       if (dirty & FFB_STATE_CLIP) {
-               ffb->vclipmin  = fmesa->vclipmin;
-               ffb->vclipmax  = fmesa->vclipmax;
-               ffb->vclipzmin = fmesa->vclipzmin;
-               ffb->vclipzmax = fmesa->vclipzmax;
-               for (i = 0; i < 4; i++) {
-                       ffb->auxclip[i].min = fmesa->aux_clips[i].min;
-                       ffb->auxclip[i].max = fmesa->aux_clips[i].max;
-               }
-       }
-
-       if ((dirty & FFB_STATE_STENCIL) &&
-           (fmesa->ffb_sarea->flags & FFB_DRI_FFB2PLUS)) {
-               ffb->stencil    = fmesa->stencil;
-               ffb->stencilctl = fmesa->stencilctl;
-               ffb->fbc = FFB_FBC_WB_C;
-               ffb->rawstencilctl = (fmesa->stencilctl | (1 << 19));
-               ffb->fbc = fmesa->fbc;
-               ffb->consty = fmesa->consty;
-       }
-
-       if (dirty & FFB_STATE_APAT) {
-               for (i = 0; i < 32; i++)
-                       ffb->pattern[i] = fmesa->pattern[i];
-       }
-
-       fmesa->state_dirty = 0;
-       fmesa->state_fifo_ents = 0;
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void ffbDDUpdateState(GLcontext *ctx, GLuint newstate)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       /* When we are hw rendering, changing certain kinds of
-        * state does not require flushing all of our context.
-        */
-       if (fmesa->bad_fragment_attrs == 0 &&
-           (newstate & ~_NEW_COLOR) == 0)
-               return;
-
-       _swrast_InvalidateState( ctx, newstate );
-       _swsetup_InvalidateState( ctx, newstate );
-       _vbo_InvalidateState( ctx, newstate );
-       _tnl_InvalidateState( ctx, newstate );
-
-       if (newstate & _NEW_TEXTURE)
-          FALLBACK( ctx, FFB_BADATTR_TEXTURE, 
-                    (ctx->Texture._EnabledUnits != 0));
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "ffbDDUpdateState: newstate(%08x)\n", newstate);
-#endif
-
-       fmesa->new_gl_state |= newstate;
-
-       /* Force a reduced primitive change next rendering
-        * pass.
-        */
-       fmesa->raster_primitive = GL_POLYGON + 1;
-
-#if 0
-       /* When the modelview matrix changes, this changes what
-        * the eye coordinates will be so we have to recompute
-        * the depth cueing parameters.
-        *
-        * XXX DD_HAVE_HARDWARE_FOG.
-        */
-       if (ctx->Fog.Enabled && (newstate & _NEW_MODELVIEW))
-               ffb_update_fog();
-#endif
-}
-
-
-void ffbDDInitStateFuncs(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       ctx->Driver.UpdateState = ffbDDUpdateState;
-
-       ctx->Driver.Enable = ffbDDEnable;
-       ctx->Driver.AlphaFunc = ffbDDAlphaFunc;
-       ctx->Driver.BlendEquationSeparate = ffbDDBlendEquationSeparate;
-       ctx->Driver.BlendFuncSeparate = ffbDDBlendFuncSeparate;
-       ctx->Driver.DepthFunc = ffbDDDepthFunc;
-       ctx->Driver.DepthMask = ffbDDDepthMask;
-       ctx->Driver.Fogfv = ffbDDFogfv;
-       ctx->Driver.LineStipple = ffbDDLineStipple;
-       ctx->Driver.PolygonStipple = ffbDDPolygonStipple;
-       ctx->Driver.Scissor = ffbDDScissor;
-       ctx->Driver.ColorMask = ffbDDColorMask;
-       ctx->Driver.LogicOpcode = ffbDDLogicOp;
-       ctx->Driver.Viewport = ffbDDViewport;
-       ctx->Driver.DepthRange = ffbDDDepthRange;
-
-       if (fmesa->ffb_sarea->flags & FFB_DRI_FFB2PLUS) {
-               ctx->Driver.StencilFuncSeparate = ffbDDStencilFuncSeparate;
-               ctx->Driver.StencilMaskSeparate = ffbDDStencilMaskSeparate;
-               ctx->Driver.StencilOpSeparate = ffbDDStencilOpSeparate;
-       }
-
-       ctx->Driver.DrawBuffer = ffbDDDrawBuffer;
-       ctx->Driver.ReadBuffer = ffbDDReadBuffer;
-       ctx->Driver.ClearColor = ffbDDClearColor;
-       ctx->Driver.ClearDepth = ffbDDClearDepth;
-       ctx->Driver.ClearStencil = ffbDDClearStencil;
-
-       /* We will support color index modes later... -DaveM */
-        /*
-       ctx->Driver.ClearIndex = 0;
-       ctx->Driver.IndexMask = 0;
-        */
-}
-
-void ffbDDInitContextHwState(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       int fifo_count = 0;
-       int i;
-
-       fmesa->hw_locked = 0;
-
-       fmesa->bad_fragment_attrs = 0;
-       fmesa->state_dirty = FFB_STATE_ALL;
-       fmesa->new_gl_state = ~0;
-
-       fifo_count = 1;
-       fmesa->fbc = (FFB_FBC_WE_FORCEON | FFB_FBC_WM_COMBINED |
-                     FFB_FBC_SB_BOTH | FFB_FBC_ZE_MASK |
-                     FFB_FBC_YE_OFF | FFB_FBC_XE_OFF |
-                     FFB_FBC_RGBE_MASK);
-       if (ctx->Visual.doubleBufferMode) {
-               /* Buffer B is the initial back buffer. */
-               fmesa->back_buffer = 1;
-               fmesa->fbc |= FFB_FBC_WB_BC | FFB_FBC_RB_B;
-       } else {
-               fmesa->back_buffer = 0;
-               fmesa->fbc |= FFB_FBC_WB_A | FFB_FBC_RB_A;
-       }
-
-       fifo_count += 1;
-       fmesa->ppc = (FFB_PPC_ACE_DISABLE | FFB_PPC_DCE_DISABLE |
-                     FFB_PPC_ABE_DISABLE | FFB_PPC_VCE_3D |
-                     FFB_PPC_APE_DISABLE | FFB_PPC_TBE_OPAQUE |
-                     FFB_PPC_ZS_CONST | FFB_PPC_YS_CONST |
-                     FFB_PPC_XS_WID | FFB_PPC_CS_VAR);
-
-       fifo_count += 3;
-       fmesa->drawop = FFB_DRAWOP_RECTANGLE;
-
-       /* GL_COPY is the default LogicOp. */
-       fmesa->rop = (FFB_ROP_NEW << 16) | (FFB_ROP_NEW << 8) | FFB_ROP_NEW;
-
-       /* No line patterning enabled. */
-       fmesa->lpat = 0x00000000;
-
-       /* We do not know the WID value until the first context switch. */
-       fifo_count += 1;
-       fmesa->wid = ~0;
-
-       fifo_count += 5;
-
-       /* ColorMask, all enabled. */
-       fmesa->pmask  = 0xffffffff;
-
-       fmesa->xpmask = 0x000000ff;
-       fmesa->ypmask = 0x0000000f;
-       fmesa->zpmask = 0x0fffffff;
-
-       /* AlphaFunc GL_ALWAYS, AlphaRef 0 */
-       fmesa->xclip  = FFB_XCLIP_TEST_ALWAYS | 0x00;
-
-       /* This sets us up to use WID clipping (so the DRI clipping
-        * rectangle is unneeded by us).  All other match and magnitude
-        * tests are set to pass.
-        */
-       fifo_count += 5;
-       fmesa->cmp = ((FFB_CMP_MATCH_ALWAYS << 24) |    /* MATCH C  */
-                     (FFB_CMP_MAGN_ALWAYS  << 16) |    /* MAGN  C  */
-                     (FFB_CMP_MATCH_EQ     <<  8) |    /* MATCH AB */
-                     (FFB_CMP_MAGN_ALWAYS  <<  0));    /* MAGN  AB */
-       fmesa->matchab = 0xff000000;
-       fmesa->magnab  = 0x00000000;
-       fmesa->matchc  = 0x00000000;
-       fmesa->magnc   = 0x00000000;
-
-       /* Depth cue parameters, all zeros to start. */
-       fifo_count += 14;
-       fmesa->dcss  = 0x00000000;
-       fmesa->dcsf  = 0x00000000;
-       fmesa->dcsb  = 0x00000000;
-       fmesa->dczf  = 0x00000000;
-       fmesa->dczb  = 0x00000000;
-       fmesa->dcss1 = 0x00000000;
-       fmesa->dcss2 = 0x00000000;
-       fmesa->dcss3 = 0x00000000;
-       fmesa->dcs2  = 0x00000000;
-       fmesa->dcs3  = 0x00000000;
-       fmesa->dcs4  = 0x00000000;
-       fmesa->dcd2  = 0x00000000;
-       fmesa->dcd3  = 0x00000000;
-       fmesa->dcd4  = 0x00000000;
-
-       /* Alpha blending unit state. */
-       fifo_count += 3;
-       fmesa->blendc  = (1 << 0) | (0 << 2);  /* src(GL_ONE) | dst(GL_ZERO) */
-       fmesa->blendc1 = 0x00000000;
-       fmesa->blendc2 = 0x00000000;
-
-       /* ViewPort clip state. */
-       fifo_count += 4 + (4 * 2);
-       fmesa->vclipmin  = 0x00000000;
-       fmesa->vclipmax  = 0xffffffff;
-       fmesa->vclipzmin = 0x00000000;
-       fmesa->vclipzmax = 0x0fffffff;
-       for (i = 0; i < 4; i++) {
-               fmesa->aux_clips[0].min = 0x00000000;
-               fmesa->aux_clips[0].max = 0x00000000;
-       }
-
-       /* Stenciling state. */
-       fifo_count += 6;
-       fmesa->stencil    = 0xf0000000; /* Stencil MASK, Y plane */
-       fmesa->stencilctl = 0x33300000; /* All stencil tests disabled */
-       fmesa->consty     = 0x0;
-
-       /* Area pattern, used for polygon stipples. */
-       fifo_count += 32;
-       for (i = 0; i < 32; i++)
-               fmesa->pattern[i] = 0x00000000;
-
-       fmesa->state_fifo_ents = fifo_count;
-       fmesa->state_all_fifo_ents = fifo_count;
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_state.h b/src/mesa/drivers/dri/ffb/ffb_state.h
deleted file mode 100644 (file)
index 19e7208..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-#ifndef _FFB_STATE_H
-#define _FFB_STATE_H
-
-extern void ffbDDInitStateFuncs(GLcontext *);
-extern void ffbDDInitContextHwState(GLcontext *);
-
-extern void ffbCalcViewport(GLcontext *);
-extern void ffbXformAreaPattern(ffbContextPtr, const GLubyte *);
-extern void ffbSyncHardware(ffbContextPtr fmesa);
-
-#endif /* !(_FFB_STATE_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_stencil.c b/src/mesa/drivers/dri/ffb/ffb_stencil.c
deleted file mode 100644 (file)
index 10cdfbc..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/mtypes.h"
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_context.h"
-#include "ffb_stencil.h"
-#include "ffb_lock.h"
-
-#undef STENCIL_TRACE
-
-static void FFBWriteStencilSpan( GLcontext *ctx,
-                                   struct gl_renderbuffer *rb,
-                                  GLuint n, GLint x, GLint y,
-                                  const void *values, const GLubyte mask[] )
-{
-        const GLubyte *stencil = (const GLubyte *) values;
-#ifdef STENCIL_TRACE
-       fprintf(stderr, "FFBWriteStencilSpan: n(%d) x(%d) y(%d)\n",
-               (int) n, x, y);
-#endif
-       if (ctx->Depth.Mask) {
-               ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-               __DRIdrawable *dPriv = fmesa->driDrawable;
-               GLuint *zptr;
-               GLuint i;
-
-               if (!fmesa->hw_locked)
-                       LOCK_HARDWARE(fmesa);
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = (FFB_FBC_WB_C | FFB_FBC_ZE_OFF |
-                                   FFB_FBC_YE_ON | FFB_FBC_RGBE_OFF);
-               fmesa->regs->ppc = FFB_PPC_YS_VAR;
-               FFBWait(fmesa, fmesa->regs);
-
-               y = (dPriv->h - y);
-               zptr = (GLuint *)
-                       ((char *)fmesa->sfb32 +
-                        ((dPriv->x + x) << 2) +
-                        ((dPriv->y + y) << 13));
-               
-               for (i = 0; i < n; i++) {
-                       if (mask[i])
-                               *zptr = (stencil[i] & 0xf) << 28;
-                       zptr++;
-               }
-
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = fmesa->fbc;
-               fmesa->regs->ppc = fmesa->ppc;
-               fmesa->ffbScreen->rp_active = 1;
-               if (!fmesa->hw_locked)
-                       UNLOCK_HARDWARE(fmesa);
-       }
-}
-
-static void FFBWriteStencilPixels( GLcontext *ctx,
-                                     struct gl_renderbuffer *rb,
-                                    GLuint n,
-                                    const GLint x[], const GLint y[],
-                                    const void *values, const GLubyte mask[] )
-{
-        const GLubyte *stencil = (const GLubyte *) values;
-#ifdef STENCIL_TRACE
-       fprintf(stderr, "FFBWriteStencilPixels: n(%d)\n", (int) n);
-#endif
-       if (ctx->Depth.Mask) {
-               ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-               __DRIdrawable *dPriv = fmesa->driDrawable;
-               char *zbase;
-               GLuint i;
-
-               if (!fmesa->hw_locked)
-                       LOCK_HARDWARE(fmesa);
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = (FFB_FBC_WB_C | FFB_FBC_ZE_OFF |
-                                   FFB_FBC_YE_ON | FFB_FBC_RGBE_OFF);
-               fmesa->regs->ppc = FFB_PPC_YS_VAR;
-               fmesa->ffbScreen->rp_active = 1;
-               FFBWait(fmesa, fmesa->regs);
-
-               zbase = ((char *)fmesa->sfb32 +
-                        (dPriv->x << 2) + (dPriv->y << 13));
-               
-               for (i = 0; i < n; i++) {
-                       GLint y1 = (dPriv->h - y[i]);
-                       GLint x1 = x[i];
-                       GLuint *zptr;
-
-                       zptr = (GLuint *)
-                               (zbase + (x1 << 2) + (y1 << 13));
-                       if (mask[i])
-                               *zptr = (stencil[i] & 0xf) << 28;
-               }
-
-               FFBFifo(fmesa, 2);
-               fmesa->regs->fbc = fmesa->fbc;
-               fmesa->regs->ppc = fmesa->ppc;
-               fmesa->ffbScreen->rp_active = 1;
-               if (!fmesa->hw_locked)
-                       UNLOCK_HARDWARE(fmesa);
-       }
-}
-
-static void FFBReadStencilSpan( GLcontext *ctx,
-                                  struct gl_renderbuffer *rb,
-                                 GLuint n, GLint x, GLint y,
-                                 void *values)
-{
-        GLubyte *stencil = (GLubyte *) values;
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       GLuint *zptr;
-       GLuint i;
-
-#ifdef STENCIL_TRACE
-       fprintf(stderr, "FFBReadStencilSpan: n(%d) x(%d) y(%d)\n",
-               (int) n, x, y);
-#endif
-       if (!fmesa->hw_locked)
-               LOCK_HARDWARE(fmesa);
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = FFB_FBC_RB_C;
-       fmesa->ffbScreen->rp_active = 1;
-       FFBWait(fmesa, fmesa->regs);
-
-       y = (dPriv->h - y);
-       zptr = (GLuint *)
-               ((char *)fmesa->sfb32 +
-                ((dPriv->x + x) << 2) +
-                ((dPriv->y + y) << 13));
-               
-       for (i = 0; i < n; i++) {
-               stencil[i] = (*zptr >> 28) & 0xf;
-               zptr++;
-       }
-
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = fmesa->fbc;
-       fmesa->ffbScreen->rp_active = 1;
-       if (!fmesa->hw_locked)
-               UNLOCK_HARDWARE(fmesa);
-}
-
-static void FFBReadStencilPixels( GLcontext *ctx,
-                                    struct gl_renderbuffer *rb,
-                                    GLuint n, const GLint x[], const GLint y[],
-                                   void *values )
-{
-        GLubyte *stencil = (GLubyte *) values;
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       char *zbase;
-       GLuint i;
-
-#ifdef STENCIL_TRACE
-       fprintf(stderr, "FFBReadStencilPixels: n(%d)\n", (int) n);
-#endif
-       if (!fmesa->hw_locked)
-               LOCK_HARDWARE(fmesa);
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = FFB_FBC_RB_C;
-       fmesa->ffbScreen->rp_active = 1;
-       FFBWait(fmesa, fmesa->regs);
-
-       zbase = ((char *)fmesa->sfb32 +
-                (dPriv->x << 2) + (dPriv->y << 13));
-               
-       for (i = 0; i < n; i++) {
-               GLint y1 = (dPriv->h - y[i]);
-               GLint x1 = x[i];
-               GLuint *zptr;
-
-               zptr = (GLuint *)
-                       (zbase + (x1 << 2) + (y1 << 13));
-               stencil[i] = (*zptr >> 28) & 0xf;
-       }
-
-       FFBFifo(fmesa, 1);
-       fmesa->regs->fbc = fmesa->fbc;
-       fmesa->ffbScreen->rp_active = 1;
-       if (!fmesa->hw_locked)
-               UNLOCK_HARDWARE(fmesa);
-}
-
-/**
- * Plug in the Get/Put routines for the given driRenderbuffer.
- */
-void
-ffbSetStencilFunctions(driRenderbuffer *drb, const GLvisual *vis)
-{
-       assert(drb->Base.InternalFormat == GL_STENCIL_INDEX8_EXT);
-       drb->Base.GetRow        = FFBReadStencilSpan;
-       drb->Base.GetValues     = FFBReadStencilPixels;
-       drb->Base.PutRow        = FFBWriteStencilSpan;
-       /*drb->Base.PutMonoRow    = FFBWriteMonoStencilSpan;*/
-       drb->Base.PutValues     = FFBWriteStencilPixels;
-       drb->Base.PutMonoValues = NULL;
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_stencil.h b/src/mesa/drivers/dri/ffb/ffb_stencil.h
deleted file mode 100644 (file)
index 2d52998..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-#ifndef _FFB_STENCIL_H
-#define _FFB_STENCIL_H
-
-void ffbSetStencilFunctions(driRenderbuffer *drb, const GLvisual *vis);
-
-#endif /* !(_FFB_STENCIL_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_tex.c b/src/mesa/drivers/dri/ffb/ffb_tex.c
deleted file mode 100644 (file)
index 95058e9..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/glheader.h"
-#include "main/mtypes.h"
-#include "ffb_tex.h"
-
-/* No texture unit, all software. */
-void ffbDDInitTexFuncs(GLcontext *ctx)
-{
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_tex.h b/src/mesa/drivers/dri/ffb/ffb_tex.h
deleted file mode 100644 (file)
index 4032e73..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D.
- * Copyright (C) 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#ifndef _FFB_TEX_H
-#define _FFB_TEX_H
-
-extern void ffbDDInitTexFuncs(GLcontext *ctx);
-
-#endif /* !(_FFB_DD_H) */
-
diff --git a/src/mesa/drivers/dri/ffb/ffb_tris.c b/src/mesa/drivers/dri/ffb/ffb_tris.c
deleted file mode 100644 (file)
index 8bf5ae4..0000000
+++ /dev/null
@@ -1,945 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000, 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/glheader.h"
-#include "main/mtypes.h"
-#include "main/macros.h"
-#include "swrast/swrast.h"
-#include "swrast/s_context.h"
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/t_context.h"
-#include "tnl/t_pipeline.h"
-
-#include "ffb_context.h"
-#include "ffb_tris.h"
-#include "ffb_lines.h"
-#include "ffb_lock.h"
-#include "ffb_points.h"
-#include "ffb_state.h"
-#include "ffb_vb.h"
-
-#undef TRI_DEBUG
-#undef FFB_RENDER_TRACE
-#undef STATE_TRACE
-
-#ifdef TRI_DEBUG
-static void ffb_print_vertex(const ffb_vertex *v)
-{
-       fprintf(stderr, "Vertex @(%p): "
-               "X[%f] Y[%f] Z[%f]\n",
-               v, v->x, v->y, v->z);
-       fprintf(stderr, "Vertex @(%p): "
-               "A[%f] R[%f] G[%f] B[%f]\n",
-               v,
-               v->color[0].alpha,
-               v->color[0].red,
-               v->color[0].green,
-               v->color[0].blue);
-}
-#define FFB_DUMP_VERTEX(V)     ffb_print_vertex(V)
-#else
-#define FFB_DUMP_VERTEX(V)     do { } while(0)
-#endif
-
-#define FFB_ALPHA_BIT          0x01
-#define FFB_FLAT_BIT           0x02
-#define FFB_TRI_CULL_BIT       0x04
-#define MAX_FFB_RENDER_FUNCS   0x08
-
-/***********************************************************************
- *         Build low-level triangle/quad rasterize functions           *
- ***********************************************************************/
-
-#define FFB_TRI_FLAT_BIT       0x01
-#define FFB_TRI_ALPHA_BIT      0x02
-/*#define FFB_TRI_CULL_BIT     0x04*/
-
-static ffb_tri_func ffb_tri_tab[0x8];
-static ffb_quad_func ffb_quad_tab[0x8];
-
-#define IND (0)
-#define TAG(x) x
-#include "ffb_tritmp.h"
-
-#define IND (FFB_TRI_FLAT_BIT)
-#define TAG(x) x##_flat
-#include "ffb_tritmp.h"
-
-#define IND (FFB_TRI_CULL_BIT)
-#define TAG(x) x##_cull
-#include "ffb_tritmp.h"
-
-#define IND (FFB_TRI_CULL_BIT|FFB_TRI_FLAT_BIT)
-#define TAG(x) x##_cull_flat
-#include "ffb_tritmp.h"
-
-#define IND (FFB_TRI_ALPHA_BIT)
-#define TAG(x) x##_alpha
-#include "ffb_tritmp.h"
-
-#define IND (FFB_TRI_ALPHA_BIT|FFB_TRI_FLAT_BIT)
-#define TAG(x) x##_alpha_flat
-#include "ffb_tritmp.h"
-
-#define IND (FFB_TRI_ALPHA_BIT|FFB_TRI_CULL_BIT)
-#define TAG(x) x##_alpha_cull
-#include "ffb_tritmp.h"
-
-#define IND (FFB_TRI_ALPHA_BIT|FFB_TRI_CULL_BIT|FFB_TRI_FLAT_BIT)
-#define TAG(x) x##_alpha_cull_flat
-#include "ffb_tritmp.h"
-
-static void init_tri_tab(void)
-{
-       ffb_init();
-       ffb_init_flat();
-       ffb_init_cull();
-       ffb_init_cull_flat();
-       ffb_init_alpha();
-       ffb_init_alpha_flat();
-       ffb_init_alpha_cull();
-       ffb_init_alpha_cull_flat();
-}
-
-/* Build a SWvertex from a hardware vertex. */
-static void ffb_translate_vertex(GLcontext *ctx, const ffb_vertex *src,
-                                SWvertex *dst)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLfloat *m = ctx->Viewport._WindowMap.m;
-       const GLfloat sx = m[0];
-       const GLfloat sy = m[5];
-       const GLfloat sz = m[10];
-       const GLfloat tx = m[12];
-       const GLfloat ty = m[13];
-       const GLfloat tz = m[14];
-
-       dst->attrib[FRAG_ATTRIB_WPOS][0] = sx * src->x + tx;
-       dst->attrib[FRAG_ATTRIB_WPOS][1] = sy * src->y + ty;
-       dst->attrib[FRAG_ATTRIB_WPOS][2] = sz * src->z + tz;
-       dst->attrib[FRAG_ATTRIB_WPOS][3] = 1.0;
-      
-       dst->color[0] = FFB_UBYTE_FROM_COLOR(src->color[0].red);
-       dst->color[1] = FFB_UBYTE_FROM_COLOR(src->color[0].green);
-       dst->color[2] = FFB_UBYTE_FROM_COLOR(src->color[0].blue);
-       dst->color[3] = FFB_UBYTE_FROM_COLOR(src->color[0].alpha);
-}
-
-/***********************************************************************
- *          Build fallback triangle/quad rasterize functions           *
- ***********************************************************************/
-
-static void ffb_fallback_triangle(GLcontext *ctx, ffb_vertex *v0,
-                                 ffb_vertex *v1, ffb_vertex *v2)
-{
-       SWvertex v[3];
-
-       ffb_translate_vertex(ctx, v0, &v[0]);
-       ffb_translate_vertex(ctx, v1, &v[1]);
-       ffb_translate_vertex(ctx, v2, &v[2]);
-
-       _swrast_Triangle(ctx, &v[0], &v[1], &v[2]);
-}
-
-static void ffb_fallback_quad(GLcontext *ctx,
-                             ffb_vertex *v0, ffb_vertex *v1, 
-                             ffb_vertex *v2, ffb_vertex *v3)
-{
-       SWvertex v[4];
-
-       ffb_translate_vertex(ctx, v0, &v[0]);
-       ffb_translate_vertex(ctx, v1, &v[1]);
-       ffb_translate_vertex(ctx, v2, &v[2]);
-       ffb_translate_vertex(ctx, v3, &v[3]);
-
-       _swrast_Quad(ctx, &v[0], &v[1], &v[2], &v[3]);
-}
-
-void ffb_fallback_line(GLcontext *ctx, ffb_vertex *v0, ffb_vertex *v1)
-{
-       SWvertex v[2];
-
-       ffb_translate_vertex(ctx, v0, &v[0]);
-       ffb_translate_vertex(ctx, v1, &v[1]);
-
-       _swrast_Line(ctx, &v[0], &v[1]);
-}
-
-void ffb_fallback_point(GLcontext *ctx, ffb_vertex *v0)
-{
-       SWvertex v[1];
-
-       ffb_translate_vertex(ctx, v0, &v[0]);
-
-       _swrast_Point(ctx, &v[0]);
-}
-
-/***********************************************************************
- *             Rasterization functions for culled tris/quads           *
- ***********************************************************************/
-
-static void ffb_nodraw_triangle(GLcontext *ctx, ffb_vertex *v0,
-                               ffb_vertex *v1, ffb_vertex *v2)
-{
-       (void) (ctx && v0 && v1 && v2);
-}
-
-static void ffb_nodraw_quad(GLcontext *ctx,
-                           ffb_vertex *v0, ffb_vertex *v1, 
-                           ffb_vertex *v2, ffb_vertex *v3)
-{
-       (void) (ctx && v0 && v1 && v2 && v3);
-}
-
-static void ffb_update_cullsign(GLcontext *ctx)
-{
-       GLfloat backface_sign = 1;
-
-       switch (ctx->Polygon.CullFaceMode) {
-       case GL_BACK:
-               if (ctx->Polygon.FrontFace==GL_CCW)
-                       backface_sign = -1;
-               break;
-
-       case GL_FRONT:
-               if (ctx->Polygon.FrontFace!=GL_CCW)
-                       backface_sign = -1;
-               break;
-
-       default:
-               break;
-       };
-
-       FFB_CONTEXT(ctx)->backface_sign = backface_sign;
-}
-
-/***********************************************************************
- *               Choose triangle/quad rasterize functions              *
- ***********************************************************************/
-
-void ffbChooseTriangleState(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLuint flags = ctx->_TriangleCaps;
-       GLuint ind = 0;
-
-       if (flags & DD_TRI_SMOOTH) {
-               fmesa->draw_tri = ffb_fallback_triangle;
-               fmesa->draw_quad = ffb_fallback_quad;
-               return;
-       }
-
-       if (flags & DD_FLATSHADE)
-               ind |= FFB_TRI_FLAT_BIT;
-
-       if (ctx->Polygon.CullFlag) {
-               if (ctx->Polygon.CullFaceMode == GL_FRONT_AND_BACK) {
-                       fmesa->draw_tri = ffb_nodraw_triangle;
-                       fmesa->draw_quad = ffb_nodraw_quad;
-                       return;
-               }
-
-               ind |= FFB_TRI_CULL_BIT;
-               ffb_update_cullsign(ctx);
-       } else
-               FFB_CONTEXT(ctx)->backface_sign = 0;
-               
-       /* If blending or the alpha test is enabled we need to
-        * provide alpha components to the chip, else we can
-        * do without it and thus feed vertex data to the chip
-        * more efficiently.
-        */
-       if (ctx->Color.BlendEnabled || ctx->Color.AlphaEnabled)
-               ind |= FFB_TRI_ALPHA_BIT;
-
-       fmesa->draw_tri = ffb_tri_tab[ind];
-       fmesa->draw_quad = ffb_quad_tab[ind];
-}
-
-static const GLenum reduced_prim[GL_POLYGON+1] = {
-   GL_POINTS,
-   GL_LINES,
-   GL_LINES,
-   GL_LINES,
-   GL_TRIANGLES,
-   GL_TRIANGLES,
-   GL_TRIANGLES,
-   GL_TRIANGLES,
-   GL_TRIANGLES,
-   GL_TRIANGLES
-};
-
-static void ffbRenderPrimitive(GLcontext *ctx, GLenum prim);
-static void ffbRasterPrimitive(GLcontext *ctx, GLenum rprim);
-
-/***********************************************************************
- *              Build render functions from dd templates               *
- ***********************************************************************/
-
-#define FFB_OFFSET_BIT         0x01
-#define FFB_TWOSIDE_BIT        0x02
-#define FFB_UNFILLED_BIT       0x04
-#define FFB_MAX_TRIFUNC        0x08
-
-static struct {
-       tnl_triangle_func triangle;
-       tnl_quad_func quad;
-} rast_tab[FFB_MAX_TRIFUNC];
-
-#define DO_OFFSET   (IND & FFB_OFFSET_BIT)
-#define DO_UNFILLED (IND & FFB_UNFILLED_BIT)
-#define DO_TWOSIDE  (IND & FFB_TWOSIDE_BIT)
-#define DO_FLAT      0
-#define DO_QUAD      1
-#define DO_FULL_QUAD 1
-#define DO_TRI       1
-#define DO_LINE      0
-#define DO_POINTS    0
-
-#define QUAD( a, b, c, d ) fmesa->draw_quad( ctx, a, b, c, d )
-#define TRI( a, b, c )     fmesa->draw_tri( ctx, a, b, c )
-#define LINE( a, b )       fmesa->draw_line( ctx, a, b )
-#define POINT( a )         fmesa->draw_point( ctx, a )
-
-#define HAVE_BACK_COLORS  1
-#define HAVE_RGBA         1
-#define HAVE_SPEC         0
-#define HAVE_HW_FLATSHADE 1
-#define VERTEX            ffb_vertex
-#define TAB               rast_tab
-
-#define UNFILLED_TRI      unfilled_tri
-#define UNFILLED_QUAD     unfilled_quad
-#define DEPTH_SCALE       (fmesa->depth_scale)
-#define VERT_X(_v)        (_v->x)
-#define VERT_Y(_v)        (_v->y)
-#define VERT_Z(_v)       (_v->z)
-#define AREA_IS_CCW( a )  (a < fmesa->ffb_zero)
-#define GET_VERTEX(e)     (&fmesa->verts[e])
-#define INSANE_VERTICES
-#define VERT_SET_Z(v,val) ((v)->z = (val))
-#define VERT_Z_ADD(v,val) ((v)->z += (val))
-
-#define VERT_COPY_RGBA1( _v )     _v->color[0] = _v->color[1]
-#define VERT_COPY_RGBA( v0, v1 )  v0->color[0] = v1->color[0] 
-#define VERT_SAVE_RGBA( idx )     color[idx] = v[idx]->color[0]
-#define VERT_RESTORE_RGBA( idx )  v[idx]->color[0] = color[idx]   
-
-#define LOCAL_VARS(n)                          \
-   ffbContextPtr fmesa = FFB_CONTEXT(ctx);     \
-   __DRIdrawable *dPriv = fmesa->driDrawable; \
-   ffb_color color[n] = { { 0 } };             \
-   (void) color; (void) dPriv;
-
-/***********************************************************************
- *                Helpers for rendering unfilled primitives            *
- ***********************************************************************/
-
-#define RASTERIZE(x) if (fmesa->raster_primitive != reduced_prim[x]) \
-                        ffbRasterPrimitive( ctx, reduced_prim[x] )
-#define RENDER_PRIMITIVE fmesa->render_primitive
-#define TAG(x) x
-#include "tnl_dd/t_dd_unfilled.h"
-
-/***********************************************************************
- *                      Generate GL render functions                   *
- ***********************************************************************/
-
-#define IND (0)
-#define TAG(x) x
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (FFB_OFFSET_BIT)
-#define TAG(x) x##_offset
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (FFB_TWOSIDE_BIT)
-#define TAG(x) x##_twoside
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (FFB_TWOSIDE_BIT|FFB_OFFSET_BIT)
-#define TAG(x) x##_twoside_offset
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (FFB_UNFILLED_BIT)
-#define TAG(x) x##_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (FFB_OFFSET_BIT|FFB_UNFILLED_BIT)
-#define TAG(x) x##_offset_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (FFB_TWOSIDE_BIT|FFB_UNFILLED_BIT)
-#define TAG(x) x##_twoside_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (FFB_TWOSIDE_BIT|FFB_OFFSET_BIT|FFB_UNFILLED_BIT)
-#define TAG(x) x##_twoside_offset_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-static void init_rast_tab( void )
-{
-   init();
-   init_offset();
-   init_twoside();
-   init_twoside_offset();
-   init_unfilled();
-   init_offset_unfilled();
-   init_twoside_unfilled();
-   init_twoside_offset_unfilled();
-}
-
-/**********************************************************************/
-/*                   Render clipped primitives                        */
-/**********************************************************************/
-
-static void ffbRenderClippedPolygon(GLcontext *ctx, const GLuint *elts, GLuint n)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       struct vertex_buffer *VB = &tnl->vb;
-       GLuint prim = fmesa->render_primitive;
-
-       /* Render the new vertices as an unclipped polygon. */
-       {
-               GLuint *tmp = VB->Elts;
-               VB->Elts = (GLuint *)elts;
-               tnl->Driver.Render.PrimTabElts[GL_POLYGON](ctx, 0, n, PRIM_BEGIN|PRIM_END);
-               VB->Elts = tmp;
-       }
-
-       /* Restore the render primitive. */
-       if (prim != GL_POLYGON)
-               tnl->Driver.Render.PrimitiveNotify(ctx, prim);
-}
-
-static void ffbRenderClippedLine(GLcontext *ctx, GLuint ii, GLuint jj)
-{
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       tnl->Driver.Render.Line(ctx, ii, jj);
-}
-
-/**********************************************************************/
-/*               Render unclipped begin/end objects                   */
-/**********************************************************************/
-
-static void ffb_vb_noop(GLcontext *ctx, GLuint start, GLuint count, GLuint flags)
-{
-       (void)(ctx && start && count && flags);
-}
-
-#define ELT(x) x
-
-#define IND    0
-#define TAG(x) x
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT)
-#define TAG(x) x##_flat
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_ALPHA_BIT)
-#define TAG(x) x##_alpha
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT | FFB_ALPHA_BIT)
-#define TAG(x) x##_flat_alpha
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_TRI_CULL_BIT)
-#define TAG(x) x##_tricull
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT | FFB_TRI_CULL_BIT)
-#define TAG(x) x##_flat_tricull
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_ALPHA_BIT | FFB_TRI_CULL_BIT)
-#define TAG(x) x##_alpha_tricull
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT | FFB_ALPHA_BIT | FFB_TRI_CULL_BIT)
-#define TAG(x) x##_flat_alpha_tricull
-#include "ffb_rendertmp.h"
-
-#undef ELT
-#define ELT(x) elt[x]
-
-#define IND    0
-#define TAG(x) x##_elt
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT)
-#define TAG(x) x##_flat_elt
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_ALPHA_BIT)
-#define TAG(x) x##_alpha_elt
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT | FFB_ALPHA_BIT)
-#define TAG(x) x##_flat_alpha_elt
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_TRI_CULL_BIT)
-#define TAG(x) x##_tricull_elt
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT | FFB_TRI_CULL_BIT)
-#define TAG(x) x##_flat_tricull_elt
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_ALPHA_BIT | FFB_TRI_CULL_BIT)
-#define TAG(x) x##_alpha_tricull_elt
-#include "ffb_rendertmp.h"
-
-#define IND    (FFB_FLAT_BIT | FFB_ALPHA_BIT | FFB_TRI_CULL_BIT)
-#define TAG(x) x##_flat_alpha_tricull_elt
-#include "ffb_rendertmp.h"
-
-static void *render_tabs[MAX_FFB_RENDER_FUNCS];
-static void *render_tabs_elt[MAX_FFB_RENDER_FUNCS];
-
-static void init_render_tab(void)
-{
-       int i;
-
-       render_tabs[0] = render_tab;
-       render_tabs[FFB_FLAT_BIT] = render_tab_flat;
-       render_tabs[FFB_ALPHA_BIT] = render_tab_alpha;
-       render_tabs[FFB_FLAT_BIT|FFB_ALPHA_BIT] = render_tab_flat_alpha;
-       render_tabs[FFB_TRI_CULL_BIT] = render_tab_tricull;
-       render_tabs[FFB_FLAT_BIT|FFB_TRI_CULL_BIT] = render_tab_flat_tricull;
-       render_tabs[FFB_ALPHA_BIT|FFB_TRI_CULL_BIT] = render_tab_alpha_tricull;
-       render_tabs[FFB_FLAT_BIT|FFB_ALPHA_BIT|FFB_TRI_CULL_BIT] =
-               render_tab_flat_alpha_tricull;
-
-       render_tabs_elt[0] = render_tab_elt;
-       render_tabs_elt[FFB_FLAT_BIT] = render_tab_flat_elt;
-       render_tabs_elt[FFB_ALPHA_BIT] = render_tab_alpha_elt;
-       render_tabs_elt[FFB_FLAT_BIT|FFB_ALPHA_BIT] = render_tab_flat_alpha_elt;
-       render_tabs_elt[FFB_TRI_CULL_BIT] = render_tab_tricull_elt;
-       render_tabs_elt[FFB_FLAT_BIT|FFB_TRI_CULL_BIT] = render_tab_flat_tricull_elt;
-       render_tabs_elt[FFB_ALPHA_BIT|FFB_TRI_CULL_BIT] = render_tab_alpha_tricull_elt;
-       render_tabs_elt[FFB_FLAT_BIT|FFB_ALPHA_BIT|FFB_TRI_CULL_BIT] =
-               render_tab_flat_alpha_tricull_elt;
-
-       for (i = 0; i < MAX_FFB_RENDER_FUNCS; i++) {
-               tnl_render_func *rf = render_tabs[i];
-               tnl_render_func *rfe = render_tabs_elt[i];
-
-               if (i & FFB_TRI_CULL_BIT) {
-                       int from_idx = (i & ~FFB_TRI_CULL_BIT);
-                       tnl_render_func *rf_from = render_tabs[from_idx];
-                       tnl_render_func *rfe_from = render_tabs_elt[from_idx];
-                       int j;
-
-                       for (j = GL_POINTS; j < GL_TRIANGLES; j++) {
-                               rf[j] = rf_from[j];
-                               rfe[j] = rfe_from[j];
-                       }
-               }
-       }
-}
-
-/**********************************************************************/
-/*                    Choose render functions                         */
-/**********************************************************************/
-
-#ifdef FFB_RENDER_TRACE
-static void ffbPrintRenderFlags(GLuint index, GLuint render_index)
-{
-       fprintf(stderr,
-               "ffbChooseRenderState: "
-               "index(%s%s%s) "
-               "render_index(%s%s%s)\n",
-               ((index & FFB_TWOSIDE_BIT) ? "twoside " : ""),
-               ((index & FFB_OFFSET_BIT) ? "offset " : ""),
-               ((index & FFB_UNFILLED_BIT) ? "unfilled " : ""),
-               ((render_index & FFB_FLAT_BIT) ? "flat " : ""),
-               ((render_index & FFB_ALPHA_BIT) ? "alpha " : ""),
-               ((render_index & FFB_TRI_CULL_BIT) ? "tricull " : ""));
-}
-#endif
-
-void ffbChooseRenderState(GLcontext *ctx)
-{
-       GLuint flags = ctx->_TriangleCaps;
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       GLuint index = 0;
-
-       /* Per-primitive fallbacks and the selection of fmesa->draw_* are
-        * handled elsewhere.
-        */
-       if (flags & DD_TRI_LIGHT_TWOSIDE)       
-               index |= FFB_TWOSIDE_BIT;
-
-       if (flags & DD_TRI_OFFSET)            
-               index |= FFB_OFFSET_BIT;
-
-       if (flags & DD_TRI_UNFILLED)         
-               index |= FFB_UNFILLED_BIT;
-
-       tnl->Driver.Render.Triangle = rast_tab[index].triangle;
-       tnl->Driver.Render.Quad = rast_tab[index].quad;
-
-       if (index == 0) {
-               GLuint render_index = 0;
-
-               if (flags & DD_FLATSHADE)
-                       render_index |= FFB_FLAT_BIT;
-
-               if (ctx->Color.BlendEnabled || ctx->Color.AlphaEnabled)
-                       render_index |= FFB_ALPHA_BIT;
-
-               if (ctx->Polygon.CullFlag)
-                       render_index |= FFB_TRI_CULL_BIT;
-
-#ifdef FFB_RENDER_TRACE
-               ffbPrintRenderFlags(index, render_index);
-#endif
-               tnl->Driver.Render.PrimTabVerts = render_tabs[render_index];
-               tnl->Driver.Render.PrimTabElts = render_tabs_elt[render_index];
-       } else {
-#ifdef FFB_RENDER_TRACE
-               ffbPrintRenderFlags(index, 0);
-#endif
-               tnl->Driver.Render.PrimTabVerts = _tnl_render_tab_verts;
-               tnl->Driver.Render.PrimTabElts = _tnl_render_tab_elts;
-       }
-
-       tnl->Driver.Render.ClippedPolygon = ffbRenderClippedPolygon;
-       tnl->Driver.Render.ClippedLine    = ffbRenderClippedLine;
-}
-
-static void ffbRunPipeline(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       if (fmesa->bad_fragment_attrs == 0 &&
-           fmesa->new_gl_state) {
-               if (fmesa->new_gl_state & _FFB_NEW_TRIANGLE)
-                       ffbChooseTriangleState(ctx);
-               if (fmesa->new_gl_state & _FFB_NEW_LINE)
-                       ffbChooseLineState(ctx);
-               if (fmesa->new_gl_state & _FFB_NEW_POINT)
-                       ffbChoosePointState(ctx);
-               if (fmesa->new_gl_state & _FFB_NEW_RENDER)
-                       ffbChooseRenderState(ctx);
-               if (fmesa->new_gl_state & _FFB_NEW_VERTEX)
-                       ffbChooseVertexState(ctx);
-
-               fmesa->new_gl_state = 0;
-       }
-
-       _tnl_run_pipeline(ctx);
-}
-
-static void ffbRenderStart(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       LOCK_HARDWARE(fmesa);
-       fmesa->hw_locked = 1;
-
-       if (fmesa->state_dirty != 0)
-               ffbSyncHardware(fmesa);
-}
-
-static void ffbRenderFinish(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       UNLOCK_HARDWARE(fmesa);
-       fmesa->hw_locked = 0;
-}
-
-/* Even when doing full software rendering we need to
- * wrap render{start,finish} so that the hardware is kept
- * in sync (because multipass rendering changes the write
- * buffer etc.)
- */
-static void ffbSWRenderStart(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       LOCK_HARDWARE(fmesa);
-       fmesa->hw_locked = 1;
-
-       if (fmesa->state_dirty != 0)
-               ffbSyncHardware(fmesa);
-}
-
-static void ffbSWRenderFinish(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       UNLOCK_HARDWARE(fmesa);
-       fmesa->hw_locked = 0;
-}
-
-static void ffbRasterPrimitive(GLcontext *ctx, GLenum rprim)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLuint drawop, fbc, ppc;
-       int do_sw = 0;
-
-       fmesa->raster_primitive = rprim;
-
-       drawop = fmesa->drawop;
-       fbc = fmesa->fbc;
-       ppc = fmesa->ppc & ~(FFB_PPC_ZS_MASK | FFB_PPC_CS_MASK);
-
-#ifdef STATE_TRACE
-       fprintf(stderr,
-               "ffbReducedPrimitiveChange: rprim(%d) ", rprim);
-#endif
-       switch(rprim) {
-       case GL_POINTS:
-#ifdef STATE_TRACE
-               fprintf(stderr, "GL_POINTS ");
-#endif
-               if (fmesa->draw_point == ffb_fallback_point) {
-                       do_sw = 1;
-                       break;
-               }
-
-               if (ctx->Point.SmoothFlag) {
-                       ppc |= (FFB_PPC_ZS_VAR | FFB_PPC_CS_CONST);
-                       drawop = FFB_DRAWOP_AADOT;
-               } else {
-                       ppc |= (FFB_PPC_ZS_CONST | FFB_PPC_CS_CONST);
-                       drawop = FFB_DRAWOP_DOT;
-               }
-               break;
-
-       case GL_LINES:
-#ifdef STATE_TRACE
-               fprintf(stderr, "GL_LINES ");
-#endif
-               if (fmesa->draw_line == ffb_fallback_line) {
-                       do_sw = 1;
-                       break;
-               }
-
-               if (ctx->_TriangleCaps & DD_FLATSHADE) {
-                       ppc |= FFB_PPC_ZS_VAR | FFB_PPC_CS_CONST;
-               } else {
-                       ppc |= FFB_PPC_ZS_VAR | FFB_PPC_CS_VAR;
-               }
-               if (ctx->Line.SmoothFlag)
-                       drawop = FFB_DRAWOP_AALINE;
-               else
-                       drawop = FFB_DRAWOP_DDLINE;
-               break;
-
-       case GL_TRIANGLES:
-#ifdef STATE_TRACE
-               fprintf(stderr, "GL_POLYGON ");
-#endif
-               if (fmesa->draw_tri == ffb_fallback_triangle) {
-                       do_sw = 1;
-                       break;
-               }
-
-               ppc &= ~FFB_PPC_APE_MASK;
-               if (ctx->Polygon.StippleFlag)
-                       ppc |= FFB_PPC_APE_ENABLE;
-               else
-                       ppc |= FFB_PPC_APE_DISABLE;
-
-               if (ctx->_TriangleCaps & DD_FLATSHADE) {
-                       ppc |= FFB_PPC_ZS_VAR | FFB_PPC_CS_CONST;
-               } else {
-                       ppc |= FFB_PPC_ZS_VAR | FFB_PPC_CS_VAR;
-               }
-               drawop = FFB_DRAWOP_TRIANGLE;
-               break;
-
-       default:
-#ifdef STATE_TRACE
-               fprintf(stderr, "unknown %d!\n", rprim);
-#endif
-               return;
-       };
-
-#ifdef STATE_TRACE
-       fprintf(stderr, "do_sw(%d) ", do_sw);
-#endif
-       if (do_sw != 0) {
-               fbc &= ~(FFB_FBC_WB_C);
-               fbc &= ~(FFB_FBC_ZE_MASK | FFB_FBC_RGBE_MASK);
-               fbc |=   FFB_FBC_ZE_OFF  | FFB_FBC_RGBE_MASK;
-               ppc &= ~(FFB_PPC_XS_MASK | FFB_PPC_ABE_MASK |
-                        FFB_PPC_DCE_MASK | FFB_PPC_APE_MASK);
-               ppc |=  (FFB_PPC_ZS_VAR | FFB_PPC_CS_VAR | FFB_PPC_XS_WID |
-                        FFB_PPC_ABE_DISABLE | FFB_PPC_DCE_DISABLE |
-                        FFB_PPC_APE_DISABLE);
-       } else {
-               fbc |= FFB_FBC_WB_C;
-               fbc &= ~(FFB_FBC_RGBE_MASK);
-               fbc |=   FFB_FBC_RGBE_MASK;
-               ppc &= ~(FFB_PPC_ABE_MASK | FFB_PPC_XS_MASK);
-               if (ctx->Color.BlendEnabled) {
-                       if ((rprim == GL_POINTS && !ctx->Point.SmoothFlag) ||
-                           (rprim != GL_POINTS && ctx->_TriangleCaps & DD_FLATSHADE))
-                               ppc |= FFB_PPC_ABE_ENABLE | FFB_PPC_XS_CONST;
-                       else
-                               ppc |= FFB_PPC_ABE_ENABLE | FFB_PPC_XS_VAR;
-               } else {
-                       ppc |= FFB_PPC_ABE_DISABLE | FFB_PPC_XS_WID;
-               }
-       }
-#ifdef STATE_TRACE
-       fprintf(stderr, "fbc(%08x) ppc(%08x)\n", fbc, ppc);
-#endif
-
-       FFBFifo(fmesa, 4);
-       if (fmesa->drawop != drawop)
-               fmesa->regs->drawop = fmesa->drawop = drawop;
-       if (fmesa->fbc != fbc)
-               fmesa->regs->fbc = fmesa->fbc = fbc;
-       if (fmesa->ppc != ppc)
-               fmesa->regs->ppc = fmesa->ppc = ppc;
-       if (do_sw != 0) {
-               fmesa->regs->cmp =
-                       (fmesa->cmp & ~(0xff<<16)) | (0x80 << 16);
-       } else
-               fmesa->regs->cmp = fmesa->cmp;
-}
-
-static void ffbRenderPrimitive(GLcontext *ctx, GLenum prim)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLuint rprim = reduced_prim[prim];
-
-       fmesa->render_primitive = prim;
-
-       if (rprim == GL_TRIANGLES && (ctx->_TriangleCaps & DD_TRI_UNFILLED))
-               return;
-
-       if (fmesa->raster_primitive != rprim) {
-               ffbRasterPrimitive( ctx, rprim );
-       }
-}
-
-
-
-
-/**********************************************************************/
-/*           Transition to/from hardware rasterization.               */
-/**********************************************************************/
-
-static char *fallbackStrings[] = {
-       "Fog enabled",
-       "Blend function",
-       "Blend ROP",
-       "Blend equation",
-       "Stencil",
-       "Texture",
-       "LIBGL_SOFTWARE_RENDERING"
-};
-
-static char *getFallbackString(GLuint bit)
-{
-       int i = 0;
-
-       while (bit > 1) {
-               i++;
-               bit >>= 1;
-       }
-       return fallbackStrings[i];
-}
-
-void ffbFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       GLuint oldfallback = fmesa->bad_fragment_attrs;
-
-       if (mode) {
-               fmesa->bad_fragment_attrs |= bit;
-               if (oldfallback == 0) {
-/*                     FFB_FIREVERTICES(fmesa); */
-                       _swsetup_Wakeup( ctx );
-                       if (fmesa->debugFallbacks)
-                               fprintf(stderr, "FFB begin software fallback: 0x%x %s\n",
-                                       bit, getFallbackString(bit));
-               }
-       } else {
-               fmesa->bad_fragment_attrs &= ~bit;
-               if (oldfallback == bit) {
-                       _swrast_flush( ctx );
-
-                       tnl->Driver.Render.Start = ffbRenderStart;
-                       tnl->Driver.Render.PrimitiveNotify = ffbRenderPrimitive;
-                       tnl->Driver.Render.Finish = ffbRenderFinish;
-                       fmesa->new_gl_state = ~0;
-
-                       /* Just re-choose everything:
-                        */
-                       ffbChooseVertexState(ctx);
-                       ffbChooseRenderState(ctx);
-                       ffbChooseTriangleState(ctx);
-                       ffbChooseLineState(ctx);
-                       ffbChoosePointState(ctx);
-
-                       if (fmesa->debugFallbacks)
-                               fprintf(stderr, "FFB end software fallback: 0x%x %s\n",
-                                       bit, getFallbackString(bit));
-               }
-       }
-}
-
-/**********************************************************************/
-/*                            Initialization.                         */
-/**********************************************************************/
-
-void ffbDDInitRenderFuncs( GLcontext *ctx )
-{
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       SWcontext *swrast = SWRAST_CONTEXT(ctx);
-       static int firsttime = 1;
-
-       if (firsttime) {
-               init_rast_tab();
-               init_tri_tab();
-               init_render_tab();
-               firsttime = 0;
-       }
-
-       tnl->Driver.RunPipeline = ffbRunPipeline;
-       tnl->Driver.Render.Start = ffbRenderStart;
-       tnl->Driver.Render.Finish = ffbRenderFinish; 
-       tnl->Driver.Render.PrimitiveNotify = ffbRenderPrimitive;
-       tnl->Driver.Render.ResetLineStipple = _swrast_ResetLineStipple;
-       tnl->Driver.Render.PrimTabVerts = _tnl_render_tab_verts;
-       tnl->Driver.Render.PrimTabElts = _tnl_render_tab_elts;
-
-       swrast->Driver.SpanRenderStart = ffbSWRenderStart;
-       swrast->Driver.SpanRenderFinish = ffbSWRenderFinish;
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_tris.h b/src/mesa/drivers/dri/ffb/ffb_tris.h
deleted file mode 100644 (file)
index 116b8e0..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef _FFB_TRIS_H
-#define _FFB_TRIS_H
-
-extern void ffbDDInitRenderFuncs( GLcontext *ctx );
-
-
-#define _FFB_NEW_RENDER (_DD_NEW_TRI_LIGHT_TWOSIDE |   \
-                        _DD_NEW_TRI_OFFSET |           \
-                        _DD_NEW_TRI_UNFILLED)
-
-extern void ffbChooseRenderState(GLcontext *ctx);
-
-
-#define _FFB_NEW_TRIANGLE (_DD_NEW_TRI_SMOOTH |        \
-                          _DD_NEW_FLATSHADE |  \
-                          _NEW_POLYGON |       \
-                          _NEW_COLOR)
-
-extern void ffbChooseTriangleState(GLcontext *ctx);
-
-extern void ffbFallback( GLcontext *ctx, GLuint bit, GLboolean mode );
-#define FALLBACK( ctx, bit, mode ) ffbFallback( ctx, bit, mode )
-
-#endif /* !(_FFB_TRIS_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_tritmp.h b/src/mesa/drivers/dri/ffb/ffb_tritmp.h
deleted file mode 100644 (file)
index 324a871..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-
-static void TAG(ffb_triangle)( GLcontext *ctx,         
-                              ffb_vertex *v0,
-                              ffb_vertex *v1,
-                              ffb_vertex *v2 )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_fbcPtr ffb = fmesa->regs;
-#if (IND & FFB_TRI_FLAT_BIT)
-       GLuint const_fg;
-#endif
-       FFB_DELAYED_VIEWPORT_VARS;
-
-#ifdef TRI_DEBUG
-       fprintf(stderr, "FFB: ffb_triangle ["
-#if (IND & FFB_TRI_CULL_BIT)
-               " CULL"
-#endif
-#if (IND & FFB_TRI_FLAT_BIT)
-               " FLAT"
-#endif
-#if (IND & FFB_TRI_ALPHA_BIT)
-               " ALPHA"
-#endif
-               " ]\n");
-#endif
-
-#if (IND & FFB_TRI_CULL_BIT)
-       {       /* NOTE: These are not viewport transformed yet. */
-               GLfloat ex = v1->x - v0->x;
-               GLfloat ey = v1->y - v0->y;
-               GLfloat fx = v2->x - v0->x;
-               GLfloat fy = v2->y - v0->y;
-               GLfloat c = ex*fy-ey*fx;
-
-               /* Culled... */
-               if (c * fmesa->backface_sign > fmesa->ffb_zero)
-                       return;
-       }
-#endif
-
-#if (IND & FFB_TRI_FLAT_BIT)
-       const_fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( v2->color[0] );
-#ifdef TRI_DEBUG
-       fprintf(stderr, "FFB_tri: const_fg %08x (B[%f] G[%f] R[%f])\n",
-               const_fg,
-               FFB_2_30_FIXED_TO_FLOAT(v2->color[0].blue),
-               FFB_2_30_FIXED_TO_FLOAT(v2->color[0].green),
-               FFB_2_30_FIXED_TO_FLOAT(v2->color[0].red));
-#endif
-#endif
-
-
-#if (IND & FFB_TRI_FLAT_BIT)
-       FFBFifo(fmesa, 1);
-       ffb->fg = const_fg;
-#endif
-
-#if (IND & FFB_TRI_FLAT_BIT)
-       FFBFifo(fmesa, 9);
-#else
-#if (IND & FFB_TRI_ALPHA_BIT)
-       FFBFifo(fmesa, 21);
-#else
-       FFBFifo(fmesa, 18);
-#endif
-#endif
-
-       FFB_DUMP_VERTEX(v0);
-#if !(IND & FFB_TRI_FLAT_BIT)
-#if (IND & FFB_TRI_ALPHA_BIT)
-       ffb->alpha = FFB_GET_ALPHA(v0);
-#endif
-       ffb->red   = FFB_GET_RED(v0);
-       ffb->green = FFB_GET_GREEN(v0);
-       ffb->blue  = FFB_GET_BLUE(v0);
-#endif
-       ffb->z     = FFB_GET_Z(v0);
-       ffb->ryf   = FFB_GET_Y(v0);
-       ffb->rxf   = FFB_GET_X(v0);
-
-       FFB_DUMP_VERTEX(v1);
-#if !(IND & FFB_TRI_FLAT_BIT)
-#if (IND & FFB_TRI_ALPHA_BIT)
-       ffb->alpha = FFB_GET_ALPHA(v1);
-#endif
-       ffb->red   = FFB_GET_RED(v1);
-       ffb->green = FFB_GET_GREEN(v1);
-       ffb->blue  = FFB_GET_BLUE(v1);
-#endif
-       ffb->z     = FFB_GET_Z(v1);
-       ffb->y     = FFB_GET_Y(v1);
-       ffb->x     = FFB_GET_X(v1);
-
-       FFB_DUMP_VERTEX(v2);
-#if !(IND & FFB_TRI_FLAT_BIT)
-#if (IND & FFB_TRI_ALPHA_BIT)
-       ffb->alpha = FFB_GET_ALPHA(v2);
-#endif
-       ffb->red   = FFB_GET_RED(v2);
-       ffb->green = FFB_GET_GREEN(v2);
-       ffb->blue  = FFB_GET_BLUE(v2);
-#endif
-       ffb->z     = FFB_GET_Z(v2);
-       ffb->y     = FFB_GET_Y(v2);
-       ffb->x     = FFB_GET_X(v2);
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-
-static void TAG(ffb_quad)(GLcontext *ctx,                            
-                         ffb_vertex *v0,
-                         ffb_vertex *v1,
-                         ffb_vertex *v2,
-                         ffb_vertex *v3 )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_fbcPtr ffb = fmesa->regs;
-#if (IND & FFB_TRI_FLAT_BIT)
-       GLuint const_fg;
-#endif
-       FFB_DELAYED_VIEWPORT_VARS;
-
-#ifdef TRI_DEBUG
-       fprintf(stderr, "FFB: ffb_quad ["
-#if (IND & FFB_TRI_CULL_BIT)
-               " CULL"
-#endif
-#if (IND & FFB_TRI_FLAT_BIT)
-               " FLAT"
-#endif
-#if (IND & FFB_TRI_ALPHA_BIT)
-               " ALPHA"
-#endif
-               " ]\n");
-#endif /* TRI_DEBUG */
-
-#if (IND & FFB_TRI_CULL_BIT)
-       {       /* NOTE: These are not viewport transformed yet. */
-               GLfloat ex = v2->x - v0->x;
-               GLfloat ey = v2->y - v0->y;
-               GLfloat fx = v3->x - v1->x;
-               GLfloat fy = v3->y - v1->y;
-               GLfloat c = ex*fy-ey*fx;
-
-               /* Culled... */
-               if (c * fmesa->backface_sign > fmesa->ffb_zero)
-                       return;
-       }
-#endif
-
-#if (IND & FFB_TRI_FLAT_BIT)
-       const_fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( v3->color[0] );
-#ifdef TRI_DEBUG
-       fprintf(stderr, "FFB_quad: const_fg %08x (B[%f] G[%f] R[%f])\n",
-               const_fg,
-               FFB_2_30_FIXED_TO_FLOAT(v3->color[0].blue),
-               FFB_2_30_FIXED_TO_FLOAT(v3->color[0].green),
-               FFB_2_30_FIXED_TO_FLOAT(v3->color[0].red));
-#endif
-#endif
-
-
-#if (IND & FFB_TRI_FLAT_BIT)
-       FFBFifo(fmesa, 13);
-       ffb->fg = const_fg;
-#else
-#if (IND & FFB_TRI_ALPHA_BIT)
-       FFBFifo(fmesa, 28);
-#else
-       FFBFifo(fmesa, 24);
-#endif
-#endif
-
-       FFB_DUMP_VERTEX(v0);
-#if !(IND & FFB_TRI_FLAT_BIT)
-#if (IND & FFB_TRI_ALPHA_BIT)
-       ffb->alpha = FFB_GET_ALPHA(v0);
-#endif
-       ffb->red   = FFB_GET_RED(v0);
-       ffb->green = FFB_GET_GREEN(v0);
-       ffb->blue  = FFB_GET_BLUE(v0);
-#endif
-       ffb->z     = FFB_GET_Z(v0);
-       ffb->ryf   = FFB_GET_Y(v0);
-       ffb->rxf   = FFB_GET_X(v0);
-
-       FFB_DUMP_VERTEX(v1);
-#if !(IND & FFB_TRI_FLAT_BIT)
-#if (IND & FFB_TRI_ALPHA_BIT)
-       ffb->alpha = FFB_GET_ALPHA(v1);
-#endif
-       ffb->red   = FFB_GET_RED(v1);
-       ffb->green = FFB_GET_GREEN(v1);
-       ffb->blue  = FFB_GET_BLUE(v1);
-#endif
-       ffb->z     = FFB_GET_Z(v1);
-       ffb->y     = FFB_GET_Y(v1);
-       ffb->x     = FFB_GET_X(v1);
-
-       FFB_DUMP_VERTEX(v2);
-#if !(IND & FFB_TRI_FLAT_BIT)
-#if (IND & FFB_TRI_ALPHA_BIT)
-       ffb->alpha = FFB_GET_ALPHA(v2);
-#endif
-       ffb->red   = FFB_GET_RED(v2);
-       ffb->green = FFB_GET_GREEN(v2);
-       ffb->blue  = FFB_GET_BLUE(v2);
-#endif
-       ffb->z     = FFB_GET_Z(v2);
-       ffb->y     = FFB_GET_Y(v2);
-       ffb->x     = FFB_GET_X(v2);
-
-       FFB_DUMP_VERTEX(v3);
-#if !(IND & FFB_TRI_FLAT_BIT)
-#if (IND & FFB_TRI_ALPHA_BIT)
-       ffb->alpha = FFB_GET_ALPHA(v3);
-#endif
-       ffb->red   = FFB_GET_RED(v3);
-       ffb->green = FFB_GET_GREEN(v3);
-       ffb->blue  = FFB_GET_BLUE(v3);
-#endif
-       ffb->z     = FFB_GET_Z(v3);
-       ffb->dmyf  = FFB_GET_Y(v3);
-       ffb->dmxf  = FFB_GET_X(v3);
-
-       fmesa->ffbScreen->rp_active = 1;
-}
-
-static void TAG(ffb_init)(void)
-{
-       ffb_tri_tab[IND]        = TAG(ffb_triangle);
-       ffb_quad_tab[IND]       = TAG(ffb_quad);
-}
-
-#undef IND
-#undef TAG
diff --git a/src/mesa/drivers/dri/ffb/ffb_vb.c b/src/mesa/drivers/dri/ffb/ffb_vb.c
deleted file mode 100644 (file)
index a53e7c7..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000, 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "ffb_xmesa.h"
-#include "ffb_context.h"
-#include "ffb_vb.h"
-#include "main/imports.h"
-#include "tnl/t_context.h"
-
-#undef VB_DEBUG
-
-static void ffb_copy_pv_oneside(GLcontext *ctx, GLuint edst, GLuint esrc)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_vertex *dst = &fmesa->verts[edst];
-       ffb_vertex *src = &fmesa->verts[esrc];
-
-#ifdef VB_DEBUG
-       fprintf(stderr, "ffb_copy_pv_oneside: edst(%d) esrc(%d)\n", edst, esrc);
-#endif
-       dst->color[0].alpha = src->color[0].alpha;
-       dst->color[0].red   = src->color[0].red;
-       dst->color[0].green = src->color[0].green;
-       dst->color[0].blue  = src->color[0].blue;
-}
-
-static void ffb_copy_pv_twoside(GLcontext *ctx, GLuint edst, GLuint esrc)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       ffb_vertex *dst = &fmesa->verts[edst];
-       ffb_vertex *src = &fmesa->verts[esrc];
-
-#ifdef VB_DEBUG
-       fprintf(stderr, "ffb_copy_pv_twoside: edst(%d) esrc(%d)\n", edst, esrc);
-#endif
-       dst->color[0].alpha = src->color[0].alpha;
-       dst->color[0].red   = src->color[0].red;
-       dst->color[0].green = src->color[0].green;
-       dst->color[0].blue  = src->color[0].blue;
-       dst->color[1].alpha = src->color[1].alpha;
-       dst->color[1].red   = src->color[1].red;
-       dst->color[1].green = src->color[1].green;
-       dst->color[1].blue  = src->color[1].blue;
-}
-
-#define FFB_VB_RGBA_BIT                0x01
-#define FFB_VB_XYZ_BIT         0x02
-#define FFB_VB_TWOSIDE_BIT     0x04
-#define FFB_VB_MAX             0x08
-
-typedef void (*ffb_emit_func)(GLcontext *, GLuint, GLuint);
-
-static struct {
-       ffb_emit_func   emit;
-       tnl_interp_func interp;
-} setup_tab[FFB_VB_MAX];
-
-
-#define IND    (FFB_VB_XYZ_BIT)
-#define TAG(x) x##_w
-#include "ffb_vbtmp.h"
-
-#define IND    (FFB_VB_RGBA_BIT)
-#define TAG(x) x##_g
-#include "ffb_vbtmp.h"
-
-#define IND    (FFB_VB_XYZ_BIT | FFB_VB_RGBA_BIT)
-#define TAG(x) x##_wg
-#include "ffb_vbtmp.h"
-
-#define IND    (FFB_VB_TWOSIDE_BIT)
-#define TAG(x) x##_t
-#include "ffb_vbtmp.h"
-
-#define IND    (FFB_VB_XYZ_BIT | FFB_VB_TWOSIDE_BIT)
-#define TAG(x) x##_wt
-#include "ffb_vbtmp.h"
-
-#define IND    (FFB_VB_RGBA_BIT | FFB_VB_TWOSIDE_BIT)
-#define TAG(x) x##_gt
-#include "ffb_vbtmp.h"
-
-#define IND    (FFB_VB_XYZ_BIT | FFB_VB_RGBA_BIT | FFB_VB_TWOSIDE_BIT)
-#define TAG(x) x##_wgt
-#include "ffb_vbtmp.h"
-
-static void init_setup_tab( void )
-{
-       init_w();
-       init_g();
-       init_wg();
-       init_t();
-       init_wt();
-       init_gt();
-       init_wgt();
-}
-
-#ifdef VB_DEBUG
-static void ffbPrintSetupFlags(char *msg, GLuint flags)
-{
-   fprintf(stderr, "%s(%x): %s%s%s\n",
-          msg,
-          (int)flags,
-          (flags & FFB_VB_XYZ_BIT)     ? " xyz," : "", 
-          (flags & FFB_VB_RGBA_BIT)    ? " rgba," : "",
-          (flags & FFB_VB_TWOSIDE_BIT) ? " twoside," : "");
-}
-#endif
-
-static void ffbDDBuildVertices(GLcontext *ctx, GLuint start, GLuint count, 
-                              GLuint newinputs)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       newinputs |= fmesa->setupnewinputs;
-       fmesa->setupnewinputs = 0;
-
-       if (!newinputs)
-               return;
-
-       if (newinputs & VERT_BIT_POS) {
-               setup_tab[fmesa->setupindex].emit(ctx, start, count);
-       } else {
-               GLuint ind = 0;
-
-               if (newinputs & VERT_BIT_COLOR0)
-                       ind |= (FFB_VB_RGBA_BIT | FFB_VB_TWOSIDE_BIT);
-
-               ind &= fmesa->setupindex;
-
-               if (ind)
-                       setup_tab[ind].emit(ctx, start, count);
-       }
-}
-
-void ffbChooseVertexState( GLcontext *ctx )
-{
-       TNLcontext *tnl = TNL_CONTEXT(ctx);
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       int ind = FFB_VB_XYZ_BIT | FFB_VB_RGBA_BIT;
-
-       if (ctx->_TriangleCaps & DD_TRI_LIGHT_TWOSIDE)
-               ind |= FFB_VB_TWOSIDE_BIT;
-
-#ifdef VB_DEBUG
-       ffbPrintSetupFlags("ffb: full setup function", ind);
-#endif
-
-       fmesa->setupindex = ind;
-
-       tnl->Driver.Render.BuildVertices = ffbDDBuildVertices;
-       tnl->Driver.Render.Interp = setup_tab[ind].interp;
-       if (ind & FFB_VB_TWOSIDE_BIT)
-               tnl->Driver.Render.CopyPV = ffb_copy_pv_twoside;
-       else
-               tnl->Driver.Render.CopyPV = ffb_copy_pv_oneside;
-}
-
-void ffbInitVB( GLcontext *ctx )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLuint size = TNL_CONTEXT(ctx)->vb.Size;
-
-       fmesa->verts = (ffb_vertex *)_mesa_align_malloc(size * sizeof(ffb_vertex), 32);
-
-       {
-               static int firsttime = 1;
-               if (firsttime) {
-                       init_setup_tab();
-                       firsttime = 0;
-               }
-       }
-}
-
-
-void ffbFreeVB( GLcontext *ctx )
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       if (fmesa->verts) {
-               _mesa_align_free(fmesa->verts);
-               fmesa->verts = 0;
-       }
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_vb.h b/src/mesa/drivers/dri/ffb/ffb_vb.h
deleted file mode 100644 (file)
index 238b994..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#ifndef _FFB_VB_H
-#define _FFB_VB_H
-
-#include "main/mtypes.h"
-#include "main/macros.h"
-#include "tnl/t_context.h"
-#include "swrast/swrast.h"
-
-#define __FFB_2_30_FIXED_SCALE         1073741824.0f
-#define FFB_2_30_FLOAT_TO_FIXED(X)     \
-       (IROUND((X) * fmesa->ffb_2_30_fixed_scale))
-#define FFB_2_30_FIXED_TO_FLOAT(X)     \
-       (((GLfloat)(X)) * fmesa->ffb_one_over_2_30_fixed_scale)
-
-#define __FFB_16_16_FIXED_SCALE                65536.0f
-#define FFB_16_16_FLOAT_TO_FIXED(X)    \
-       (IROUND((X) * fmesa->ffb_16_16_fixed_scale))
-#define FFB_16_16_FIXED_TO_FLOAT(X)    \
-       (((GLfloat)(X)) * fmesa->ffb_one_over_16_16_fixed_scale)
-
-#define FFB_Z_FROM_FLOAT(VAL)    FFB_2_30_FLOAT_TO_FIXED(VAL)
-#define FFB_Z_TO_FLOAT(VAL)      FFB_2_30_FIXED_TO_FLOAT(VAL)
-#define FFB_XY_FROM_FLOAT(VAL)   FFB_16_16_FLOAT_TO_FIXED(VAL)
-#define FFB_XY_TO_FLOAT(VAL)     FFB_16_16_FIXED_TO_FLOAT(VAL)
-
-#define FFB_UBYTE_FROM_COLOR(VAL) ((IROUND((VAL) * fmesa->ffb_ubyte_color_scale)))
-
-#define FFB_PACK_CONST_UBYTE_ARGB_COLOR(C)             \
-        ((FFB_UBYTE_FROM_COLOR(C.alpha) << 24) |       \
-         (FFB_UBYTE_FROM_COLOR(C.blue)  << 16) |       \
-         (FFB_UBYTE_FROM_COLOR(C.green) <<  8) |       \
-         (FFB_UBYTE_FROM_COLOR(C.red)   <<  0))
-
-#define FFB_COLOR_FROM_FLOAT(VAL) FFB_2_30_FLOAT_TO_FIXED(VAL)
-
-#define _FFB_NEW_VERTEX (_DD_NEW_TRI_LIGHT_TWOSIDE)
-
-extern void ffbDDSetupInit(void);
-extern void ffbChooseVertexState(GLcontext *);
-extern void ffbInitVB( GLcontext *ctx );
-extern void ffbFreeVB( GLcontext *ctx );
-
-#endif /* !(_FFB_VB_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_vbtmp.h b/src/mesa/drivers/dri/ffb/ffb_vbtmp.h
deleted file mode 100644 (file)
index c548ef3..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-
-static void TAG(emit)(GLcontext *ctx, GLuint start, GLuint end)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-#if defined(VB_DEBUG) || (IND & (FFB_VB_XYZ_BIT | FFB_VB_RGBA_BIT))
-       struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
-#endif
-#if (IND & (FFB_VB_RGBA_BIT))
-       GLfloat (*col0)[4];
-       GLuint col0_stride;
-#if (IND & (FFB_VB_TWOSIDE_BIT))
-       GLfloat (*col1)[4];
-       GLuint col1_stride;
-#endif
-#endif
-#if (IND & FFB_VB_XYZ_BIT)
-       GLfloat (*proj)[4] = VB->NdcPtr->data;
-       GLuint proj_stride = VB->NdcPtr->stride;
-       const GLubyte *mask = VB->ClipMask;
-#endif
-       ffb_vertex *v = &fmesa->verts[start];
-       int i;
-
-#ifdef VB_DEBUG
-       fprintf(stderr, "FFB: ffb_emit ["
-#if (IND & (FFB_VB_XYZ_BIT))
-               " XYZ"
-#endif
-#if (IND & (FFB_VB_RGBA_BIT))
-               " RGBA"
-#endif
-#if (IND & (FFB_VB_TWOSIDE_BIT))
-               " TWOSIDE"
-#endif
-               "] start(%d) end(%d) import(%d)\n",
-               start, end,
-               VB->importable_data);
-#endif
-
-#if (IND & (FFB_VB_RGBA_BIT))
-       col0 = VB->AttribPtr[_TNL_ATTRIB_COLOR0]->data;
-       col0_stride = VB->AttribPtr[_TNL_ATTRIB_COLOR0]->stride;
-#if (IND & (FFB_VB_TWOSIDE_BIT))
-       col1 = VB->BackfaceColorPtr->data;
-       col1_stride = VB->BackfaceColorPtr->stride;
-#endif
-#endif
-
-        {
-               if (start) {
-#if (IND & (FFB_VB_XYZ_BIT))
-                       proj = (GLfloat (*)[4])((GLubyte *)proj + start * proj_stride);
-#endif
-#if (IND & (FFB_VB_RGBA_BIT))
-                       col0 = (GLfloat (*)[4])((GLubyte *)col0 + start * col0_stride);
-#if (IND & (FFB_VB_TWOSIDE_BIT))
-                       col1 = (GLfloat (*)[4])((GLubyte *)col1 + start * col1_stride);
-#endif
-#endif
-               }
-               for (i = start; i < end; i++, v++) {
-#if (IND & (FFB_VB_XYZ_BIT))
-                       if (mask[i] == 0) {
-                               v->x = proj[0][0];
-                               v->y = proj[0][1];
-                               v->z = proj[0][2];
-                       }
-                       proj = (GLfloat (*)[4])((GLubyte *)proj + proj_stride);
-#endif
-#if (IND & (FFB_VB_RGBA_BIT))
-                       v->color[0].alpha = CLAMP(col0[0][3], 0.0f, 1.0f);
-                       v->color[0].red   = CLAMP(col0[0][0], 0.0f, 1.0f);
-                       v->color[0].green = CLAMP(col0[0][1], 0.0f, 1.0f);
-                       v->color[0].blue  = CLAMP(col0[0][2], 0.0f, 1.0f);
-                       col0 = (GLfloat (*)[4])((GLubyte *)col0 + col0_stride);
-#if (IND & (FFB_VB_TWOSIDE_BIT))
-                       v->color[1].alpha = CLAMP(col1[0][3], 0.0f, 1.0f);
-                       v->color[1].red   = CLAMP(col1[0][0], 0.0f, 1.0f);
-                       v->color[1].green = CLAMP(col1[0][1], 0.0f, 1.0f);
-                       v->color[1].blue  = CLAMP(col1[0][2], 0.0f, 1.0f);
-                       col1 = (GLfloat (*)[4])((GLubyte *)col1 + col1_stride);
-#endif
-#endif
-               }
-       }
-}
-
-static void TAG(interp)(GLcontext *ctx, GLfloat t,
-                       GLuint edst, GLuint eout, GLuint ein,
-                       GLboolean force_boundary)
-{
-#if (IND & (FFB_VB_XYZ_BIT | FFB_VB_RGBA_BIT))
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-#endif
-#if (IND & (FFB_VB_XYZ_BIT))
-       struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
-       const GLfloat *dstclip = VB->ClipPtr->data[edst];
-       GLfloat oow = 1.0 / dstclip[3];
-#endif
-#if (IND & (FFB_VB_XYZ_BIT | FFB_VB_RGBA_BIT))
-       ffb_vertex *dst = &fmesa->verts[edst];
-#endif
-#if (IND & (FFB_VB_RGBA_BIT))
-       ffb_vertex *in = &fmesa->verts[eout];
-       ffb_vertex *out = &fmesa->verts[ein];
-#endif
-
-#ifdef VB_DEBUG
-       fprintf(stderr, "FFB: ffb_interp ["
-#if (IND & (FFB_VB_XYZ_BIT))
-               " XYZ"
-#endif
-#if (IND & (FFB_VB_RGBA_BIT))
-               " RGBA"
-#endif
-#if (IND & (FFB_VB_TWOSIDE_BIT))
-               " TWOSIDE"
-#endif
-               "] edst(%d) eout(%d) ein(%d)\n",
-               edst, eout, ein);
-#endif
-
-#if (IND & (FFB_VB_XYZ_BIT))
-       dst->x = dstclip[0] * oow;
-       dst->y = dstclip[1] * oow;
-       dst->z = dstclip[2] * oow;
-#endif
-
-#if (IND & (FFB_VB_RGBA_BIT))
-       INTERP_F(t, dst->color[0].alpha, out->color[0].alpha, in->color[0].alpha);
-       INTERP_F(t, dst->color[0].red,   out->color[0].red,   in->color[0].red);
-       INTERP_F(t, dst->color[0].green, out->color[0].green, in->color[0].green);
-       INTERP_F(t, dst->color[0].blue,  out->color[0].blue,  in->color[0].blue);
-#if (IND & (FFB_VB_TWOSIDE_BIT))
-       INTERP_F(t, dst->color[1].alpha, out->color[1].alpha, in->color[1].alpha);
-       INTERP_F(t, dst->color[1].red,   out->color[1].red,   in->color[1].red);
-       INTERP_F(t, dst->color[1].green, out->color[1].green, in->color[1].green);
-       INTERP_F(t, dst->color[1].blue,  out->color[1].blue,  in->color[1].blue);
-#endif
-#endif
-}
-
-static void TAG(init)(void)
-{
-       setup_tab[IND].emit = TAG(emit);
-       setup_tab[IND].interp = TAG(interp);
-}
-
-#undef IND
-#undef TAG
diff --git a/src/mesa/drivers/dri/ffb/ffb_vtxfmt.c b/src/mesa/drivers/dri/ffb/ffb_vtxfmt.c
deleted file mode 100644 (file)
index 90f44b0..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "main/glheader.h"
-#include "api_noop.h"
-#include "main/context.h"
-#include "light.h"
-#include "main/macros.h"
-#include "main/imports.h"
-#include "main/mtypes.h"
-#include "main/simple_list.h"
-#include "vtxfmt.h"
-#include "ffb_xmesa.h"
-#include "ffb_context.h"
-#include "ffb_vb.h"
-#include "tnl/tnl.h"
-#include "tnl/tcontext.h"
-
-#include "ffb_vtxfmt.h"
-
-#define TNL_VERTEX                     ffbTnlVertex
-
-#define INTERP_RGBA(t, out, a, b)              \
-do {                                           \
-   GLint i;                                    \
-   for ( i = 0 ; i < 4 ; i++ ) {               \
-      GLfloat fa = a[i];                       \
-      GLfloat fb = b[i];                       \
-      out[i] = LINTERP( t, fa, fb );           \
-   }                                           \
-} while (0)
-
-/* Color functions: */
-
-static INLINE void ffb_recalc_base_color(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       struct gl_light *light;
-
-       COPY_3V(fmesa->vtx_state.light.base_color, ctx->Light._BaseColor[0]);
-       foreach (light, &ctx->Light.EnabledList) {
-               ACC_3V(fmesa->vtx_state.light.base_color,
-                      light->_MatAmbient[0]);
-       }
-
-       fmesa->vtx_state.light.base_alpha = ctx->Light._BaseAlpha[0];
-}
-
-#define GET_CURRENT \
-       GET_CURRENT_CONTEXT(ctx);       \
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx)
-
-#define CURRENT_COLOR(COMP)            fmesa->vtx_state.current.color[COMP]
-#define CURRENT_SPECULAR(COMP)         fmesa->vtx_state.current.specular[COMP]
-#define COLOR_IS_FLOAT
-#define RECALC_BASE_COLOR(ctx)         ffb_recalc_base_color(ctx)
-
-#define TAG(x) ffb_##x
-#include "tnl_dd/t_dd_imm_capi.h"
-
-/* Normal functions: */
-
-struct ffb_norm_tab {
-       void (*normal3f_multi)(GLfloat x, GLfloat y, GLfloat z);
-       void (*normal3fv_multi)(const GLfloat *v);
-       void (*normal3f_single)(GLfloat x, GLfloat y, GLfloat z);
-       void (*normal3fv_single)(const GLfloat *v);
-};
-
-static struct ffb_norm_tab norm_tab[0x4];
-
-#define HAVE_HW_LIGHTING 0
-#define GET_CURRENT_VERTEX                     \
-       GET_CURRENT_CONTEXT(ctx);               \
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx); \
-       ffbTnlVertexPtr v = fmesa->imm.v0
-
-#define CURRENT_NORMAL         fmesa->vtx_state.current.normal
-#define BASE_COLOR             fmesa->vtx_state.light.base_color
-#define BASE_ALPHA             fmesa->vtx_state.light.base_alpha
-#define VERT_COLOR( COMP )     v->color[COMP]
-#define VERT_COLOR_IS_FLOAT
-
-#define IND (0)
-#define TAG(x) ffb_##x
-#define PRESERVE_NORMAL_DEFS
-#include "tnl_dd/t_dd_imm_napi.h"
-
-#define IND (NORM_RESCALE)
-#define TAG(x) ffb_##x##_rescale
-#define PRESERVE_NORMAL_DEFS
-#include "tnl_dd/t_dd_imm_napi.h"
-
-#define IND (NORM_NORMALIZE)
-#define TAG(x) ffb_##x##_normalize
-#include "tnl_dd/t_dd_imm_napi.h"
-
-static void ffb_init_norm_funcs(void)
-{
-       ffb_init_norm();
-       ffb_init_norm_rescale();
-       ffb_init_norm_normalize();
-}
-
-static void choose_normals(void)
-{
-       GET_CURRENT_CONTEXT(ctx);
-       GLuint index;
-
-       if (ctx->Light.Enabled) {
-               if (ctx->Transform.Normalize) {
-                       index = NORM_NORMALIZE;
-               } else if (!ctx->Transform.RescaleNormals &&
-                          ctx->_ModelViewInvScale != 1.0) {
-                       index = NORM_RESCALE;
-               } else {
-                       index = 0;
-               }
-
-               if (ctx->Light.EnabledList.next == ctx->Light.EnabledList.prev) {
-                       SET_Normal3f(ctx->Exec, norm_tab[index].normal3f_single);
-                       SET_Normal3fv(ctx->Exec, norm_tab[index].normal3fv_single);
-               } else {
-                       SET_Normal3f(ctx->Exec, norm_tab[index].normal3f_multi);
-                       SET_Normal3fv(ctx->Exec, norm_tab[index].normal3fv_multi);
-               }
-       } else {
-               SET_Normal3f(ctx->Exec, _mesa_noop_Normal3f);
-               SET_Normal3fv(ctx->Exec, _mesa_noop_Normal3fv);
-       }
-}
-
-static void ffb_choose_Normal3f(GLfloat x, GLfloat y, GLfloat z)
-{
-       choose_normals();
-       CALL_Normal3f(GET_DISPATCH(), (x, y, z));
-}
-
-static void ffb_choose_Normal3fv(const GLfloat *v)
-{
-       choose_normals();
-       CALL_Normal3fv(GET_DISPATCH(), (v));
-}
-
-/* Vertex functions: */
-
-#define GET_CURRENT_VERTEX                     \
-       GET_CURRENT_CONTEXT(ctx);               \
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx); \
-       ffbTnlVertexPtr v = fmesa->imm.v0
-
-#define CURRENT_VERTEX         v->obj
-#define SAVE_VERTEX            fmesa->imm.save_vertex(ctx, v)
-
-#define TAG(x) ffb_##x
-#include "tnl_dd/t_dd_imm_vapi.h"
-
-struct ffb_vert_tab {
-       void (*save_vertex)(GLcontext *ctx, ffbTnlVertexPtr v);
-       void (*interpolate_vertex)(GLfloat t,
-                                  ffbTnlVertex *O,
-                                  const ffbTnlVertex *I,
-                                  const ffbTnlVertex *J);
-};
-
-static struct ffb_vert_tab vert_tab[0xf];
-
-#define VTX_NORMAL     0x0
-#define VTX_RGBA       0x1
-
-#define LOCAL_VARS \
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx)
-
-#define CURRENT_COLOR                  fmesa->vtx_state.current.color
-#define COLOR_IS_FLOAT
-#define FLUSH_VERTEX                   fmesa->imm.flush_vertex( ctx, v );
-
-#define IND    (VTX_NORMAL)
-#define TAG(x) ffb_##x##_NORMAL
-#define PRESERVE_VERTEX_DEFS
-#include "tnl_dd/t_dd_imm_vertex.h"
-
-#define IND    (VTX_RGBA)
-#define TAG(x) ffb_##x##_RGBA
-#include "tnl_dd/t_dd_imm_vertex.h"
-
-static void ffb_init_vert_funcs( void )
-{
-       ffb_init_vert_NORMAL();
-       ffb_init_vert_RGBA();
-}
-
-#define LOCAL_VARS                                                     \
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx)
-
-#define GET_INTERP_FUNC                                                        \
-       ffb_interp_func interp = fmesa->imm.interp
-
-#define FLUSH_VERTEX                   fmesa->imm.flush_vertex
-#define IMM_VERTEX( V )                        fmesa->imm.V
-#define IMM_VERTICES( n )              fmesa->imm.vertices[n]
-
-#define EMIT_VERTEX_USES_HWREGS
-
-/* XXX Implement me XXX */
-#define EMIT_VERTEX_TRI(VTX0, VTX1, VTX2)      \
-       do { } while (0)
-#define EMIT_VERTEX_LINE(VTX0, VTX1)           \
-       do { } while (0)
-#define EMIT_VERTEX_POINT(VTX0)                        \
-       do { } while (0)
-
-#define TAG(x) ffb_##x
-#include "tnl_dd/t_dd_imm_primtmp.h"
-
-/* Bzzt: Material changes are lost on fallback. */
-static void ffb_Materialfv(GLenum face, GLenum pname,
-                          const GLfloat *params)
-{
-       GET_CURRENT_CONTEXT(ctx);
-
-       _mesa_noop_Materialfv( face, pname, params );
-       ffb_recalc_base_color( ctx );
-}
-
-/* Fallback functions: */
-
-static void ffb_do_fallback(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       struct ffb_current_state *current = &fmesa->vtx_state.current;
-
-       /* Tell tnl to restore its exec vtxfmt, rehook its driver callbacks
-        * and revive internal state that depended on those callbacks:
-        */
-       _tnl_wakeup_exec(ctx);
-
-       /* Replay enough vertices that the current primitive is continued
-        * correctly:
-        */
-       if (fmesa->imm.prim != PRIM_OUTSIDE_BEGIN_END )
-               CALL_Begin(GET_DISPATCH(), (fmesa->imm.prim));
-
-       if (ctx->Light.Enabled) {
-               /* Catch ColorMaterial */
-               CALL_Color4fv(GET_DISPATCH(), (ctx->Current.Color));
-               CALL_Normal3fv(GET_DISPATCH(), (current->normal));
-       } else {
-               CALL_Color4fv(GET_DISPATCH(), (current->color));
-       }
-}
-
-#define PRE_LOOPBACK( FUNC ) do {      \
-   GET_CURRENT_CONTEXT(ctx);           \
-   ffb_do_fallback( ctx );             \
-} while (0)
-
-#define TAG(x) ffb_fallback_##x
-#include "vtxfmt_tmp.h"
-
-static void ffb_Begin(GLenum prim)
-{
-       GET_CURRENT_CONTEXT(ctx);
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       if (prim > GL_POLYGON) {
-               _mesa_error( ctx, GL_INVALID_ENUM, "glBegin" );
-               return;
-       }
-
-       if (fmesa->imm.prim != PRIM_OUTSIDE_BEGIN_END) {
-               _mesa_error( ctx, GL_INVALID_OPERATION, "glBegin" );
-               return;
-       }
-
-       ctx->Driver.NeedFlush |= (FLUSH_STORED_VERTICES |
-                                 FLUSH_UPDATE_CURRENT);
-
-       fmesa->imm.prim = prim;
-       fmesa->imm.v0 = &fmesa->imm.vertices[0];
-       fmesa->imm.save_vertex = ffb_save_vertex_RGBA;
-       fmesa->imm.flush_vertex = ffb_flush_tab[prim];
-
-       /* XXX Lock hardware, update FBC, PPC, DRAWOP, etc. XXX */
-}
-
-static void ffb_End(void)
-{
-       GET_CURRENT_CONTEXT(ctx);
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-
-       if (fmesa->imm.prim == PRIM_OUTSIDE_BEGIN_END) {
-               _mesa_error( ctx, GL_INVALID_OPERATION, "glEnd" );
-               return;
-       }
-
-       fmesa->imm.prim = PRIM_OUTSIDE_BEGIN_END;
-
-       ctx->Driver.NeedFlush &= ~(FLUSH_STORED_VERTICES |
-                                  FLUSH_UPDATE_CURRENT);
-
-       /* XXX Unlock hardware, etc. */
-}
-
-void ffbInitTnlModule(GLcontext *ctx)
-{
-       ffbContextPtr fmesa = FFB_CONTEXT(ctx);
-       GLvertexformat *vfmt = &(fmesa->imm.vtxfmt);
-
-       /* Work in progress... */
-       return;
-
-       ffb_init_norm_funcs();
-       ffb_init_vert_funcs();
-
-       /* start by initializing to no-op functions */
-       _mesa_noop_vtxfmt_init(vfmt);
-
-       /* Handled fully in supported states: */
-       vfmt->ArrayElement              = NULL;         /* FIXME: ... */
-       vfmt->Color3f                   = ffb_choose_Color3f;
-       vfmt->Color3fv                  = ffb_choose_Color3fv;
-       vfmt->Color3ub                  = ffb_choose_Color3ub;
-       vfmt->Color3ubv                 = ffb_choose_Color3ubv;
-       vfmt->Color4f                   = ffb_choose_Color4f;
-       vfmt->Color4fv                  = ffb_choose_Color4fv;
-       vfmt->Color4ub                  = ffb_choose_Color4ub;
-       vfmt->Color4ubv                 = ffb_choose_Color4ubv;
-       vfmt->FogCoordfvEXT             = ffb_FogCoordfvEXT;
-       vfmt->FogCoordfEXT              = ffb_FogCoordfEXT;
-       vfmt->Materialfv                = ffb_Materialfv;
-       vfmt->MultiTexCoord1fARB        = ffb_fallback_MultiTexCoord1fARB;
-       vfmt->MultiTexCoord1fvARB       = ffb_fallback_MultiTexCoord1fvARB;
-       vfmt->MultiTexCoord2fARB        = ffb_fallback_MultiTexCoord2fARB;
-       vfmt->MultiTexCoord2fvARB       = ffb_fallback_MultiTexCoord2fvARB;
-       vfmt->MultiTexCoord3fARB        = ffb_fallback_MultiTexCoord3fARB;
-       vfmt->MultiTexCoord3fvARB       = ffb_fallback_MultiTexCoord3fvARB;
-       vfmt->MultiTexCoord4fARB        = ffb_fallback_MultiTexCoord4fARB;
-       vfmt->MultiTexCoord4fvARB       = ffb_fallback_MultiTexCoord4fvARB;
-       vfmt->Normal3f                  = ffb_choose_Normal3f;
-       vfmt->Normal3fv                 = ffb_choose_Normal3fv;
-       vfmt->SecondaryColor3ubEXT      = ffb_SecondaryColor3ubEXT;
-       vfmt->SecondaryColor3ubvEXT     = ffb_SecondaryColor3ubvEXT;
-       vfmt->SecondaryColor3fEXT       = ffb_SecondaryColor3fEXT;
-       vfmt->SecondaryColor3fvEXT      = ffb_SecondaryColor3fvEXT;
-       vfmt->TexCoord1f                = ffb_fallback_TexCoord1f;
-       vfmt->TexCoord1fv               = ffb_fallback_TexCoord1fv;
-       vfmt->TexCoord2f                = ffb_fallback_TexCoord2f;
-       vfmt->TexCoord2fv               = ffb_fallback_TexCoord2fv;
-       vfmt->TexCoord3f                = ffb_fallback_TexCoord3f;
-       vfmt->TexCoord3fv               = ffb_fallback_TexCoord3fv;
-       vfmt->TexCoord4f                = ffb_fallback_TexCoord4f;
-       vfmt->TexCoord4fv               = ffb_fallback_TexCoord4fv;
-
-       vfmt->Vertex2f                  = ffb_Vertex2f;
-       vfmt->Vertex2fv                 = ffb_Vertex2fv;
-       vfmt->Vertex3f                  = ffb_Vertex3f;
-       vfmt->Vertex3fv                 = ffb_Vertex3fv;
-       vfmt->Vertex4f                  = ffb_Vertex4f;
-       vfmt->Vertex4fv                 = ffb_Vertex4fv;
-
-       vfmt->Begin                     = ffb_Begin;
-       vfmt->End                       = ffb_End;
-
-       vfmt->DrawArrays = NULL;
-       vfmt->DrawElements = NULL;
-
-       /* Active but unsupported -- fallback if we receive these:
-        *
-        * All of these fallbacks can be fixed with additional code, except
-        * CallList, unless we build a play_immediate_noop() command which
-        * turns an immediate back into glBegin/glEnd commands...
-        */
-       vfmt->CallList = ffb_fallback_CallList;
-       vfmt->EvalCoord1f = ffb_fallback_EvalCoord1f;
-       vfmt->EvalCoord1fv = ffb_fallback_EvalCoord1fv;
-       vfmt->EvalCoord2f = ffb_fallback_EvalCoord2f;
-       vfmt->EvalCoord2fv = ffb_fallback_EvalCoord2fv;
-       vfmt->EvalMesh1 = ffb_fallback_EvalMesh1;
-       vfmt->EvalMesh2 = ffb_fallback_EvalMesh2;
-       vfmt->EvalPoint1 = ffb_fallback_EvalPoint1;
-       vfmt->EvalPoint2 = ffb_fallback_EvalPoint2;
-
-       vfmt->prefer_float_colors = GL_TRUE;
-
-       fmesa->imm.prim = PRIM_OUTSIDE_BEGIN_END;
-
-       /* THIS IS A HACK! */
-       _mesa_install_exec_vtxfmt( ctx, vfmt );
-}
diff --git a/src/mesa/drivers/dri/ffb/ffb_vtxfmt.h b/src/mesa/drivers/dri/ffb/ffb_vtxfmt.h
deleted file mode 100644 (file)
index 4d9125c..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-#ifndef _FFB_VTXFMT_H
-#define _FFB_VTXFMT_H
-
-extern void ffbInitTnlModule(GLcontext *);
-
-#endif /* !(_FFB_VTXFMT_H) */
diff --git a/src/mesa/drivers/dri/ffb/ffb_xmesa.c b/src/mesa/drivers/dri/ffb/ffb_xmesa.c
deleted file mode 100644 (file)
index bd1044a..0000000
+++ /dev/null
@@ -1,729 +0,0 @@
-/* 
- *
- * GLX Hardware Device Driver for Sun Creator/Creator3D
- * Copyright (C) 2000, 2001 David S. Miller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- *    David S. Miller <davem@redhat.com>
- */
-
-#include "ffb_xmesa.h"
-#include "main/context.h"
-#include "main/framebuffer.h"
-#include "main/renderbuffer.h"
-#include "main/simple_list.h"
-#include "main/imports.h"
-#include "utils.h"
-
-#include "swrast/swrast.h"
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/tnl.h"
-#include "tnl/t_pipeline.h"
-#include "vbo/vbo.h"
-#include "drivers/common/driverfuncs.h"
-
-#include "ffb_context.h"
-#include "ffb_dd.h"
-#include "ffb_span.h"
-#include "ffb_depth.h"
-#include "ffb_stencil.h"
-#include "ffb_clear.h"
-#include "ffb_vb.h"
-#include "ffb_tris.h"
-#include "ffb_lines.h"
-#include "ffb_points.h"
-#include "ffb_state.h"
-#include "ffb_lock.h"
-#include "ffb_vtxfmt.h"
-#include "ffb_bitmap.h"
-
-#include "drm_sarea.h"
-
-#include "drirenderbuffer.h"
-
-static GLboolean
-ffbInitDriver(__DRIscreen *sPriv)
-{
-       ffbScreenPrivate *ffbScreen;
-       FFBDRIPtr gDRIPriv = (FFBDRIPtr) sPriv->pDevPriv;
-       drmAddress map;
-
-       if (getenv("LIBGL_FORCE_XSERVER"))
-               return GL_FALSE;
-
-
-       if (sPriv->devPrivSize != sizeof(FFBDRIRec)) {
-               fprintf(stderr,"\nERROR!  sizeof(FFBDRIRec) does not match passed size from device driver\n");
-               return GL_FALSE;
-       }
-
-       /* Allocate the private area. */
-       ffbScreen = (ffbScreenPrivate *) MALLOC(sizeof(ffbScreenPrivate));
-       if (!ffbScreen)
-               return GL_FALSE;
-
-       /* Map FBC registers. */
-       if (drmMap(sPriv->fd,
-                  gDRIPriv->hFbcRegs,
-                  gDRIPriv->sFbcRegs,
-                  &map)) {
-               FREE(ffbScreen);
-               return GL_FALSE;
-       }
-       ffbScreen->regs = (ffb_fbcPtr) map;
-
-       /* Map ramdac registers. */
-       if (drmMap(sPriv->fd,
-                  gDRIPriv->hDacRegs,
-                  gDRIPriv->sDacRegs,
-                  &map)) {
-               drmUnmap((drmAddress)ffbScreen->regs, gDRIPriv->sFbcRegs);
-               FREE(ffbScreen);
-               return GL_FALSE;
-       }
-       ffbScreen->dac = (ffb_dacPtr) map;
-
-       /* Map "Smart" framebuffer views. */
-       if (drmMap(sPriv->fd,
-                  gDRIPriv->hSfb8r,
-                  gDRIPriv->sSfb8r,
-                  &map)) {
-               drmUnmap((drmAddress)ffbScreen->regs, gDRIPriv->sFbcRegs);
-               drmUnmap((drmAddress)ffbScreen->dac, gDRIPriv->sDacRegs);
-               FREE(ffbScreen);
-               return GL_FALSE;
-       }
-       ffbScreen->sfb8r = (volatile char *) map;
-
-       if (drmMap(sPriv->fd,
-                  gDRIPriv->hSfb32,
-                  gDRIPriv->sSfb32,
-                  &map)) {
-               drmUnmap((drmAddress)ffbScreen->regs, gDRIPriv->sFbcRegs);
-               drmUnmap((drmAddress)ffbScreen->dac, gDRIPriv->sDacRegs);
-               drmUnmap((drmAddress)ffbScreen->sfb8r, gDRIPriv->sSfb8r);
-               FREE(ffbScreen);
-               return GL_FALSE;
-       }
-       ffbScreen->sfb32 = (volatile char *) map;
-
-       if (drmMap(sPriv->fd,
-                  gDRIPriv->hSfb64,
-                  gDRIPriv->sSfb64,
-                  &map)) {
-               drmUnmap((drmAddress)ffbScreen->regs, gDRIPriv->sFbcRegs);
-               drmUnmap((drmAddress)ffbScreen->dac, gDRIPriv->sDacRegs);
-               drmUnmap((drmAddress)ffbScreen->sfb8r, gDRIPriv->sSfb8r);
-               drmUnmap((drmAddress)ffbScreen->sfb32, gDRIPriv->sSfb32);
-               FREE(ffbScreen);
-               return GL_FALSE;
-       }
-       ffbScreen->sfb64 = (volatile char *) map;
-
-       ffbScreen->fifo_cache = 0;
-       ffbScreen->rp_active = 0;
-
-       ffbScreen->sPriv = sPriv;
-       sPriv->private = (void *) ffbScreen;
-
-       ffbDDLinefuncInit();
-       ffbDDPointfuncInit();
-
-       return GL_TRUE;
-}
-
-
-static void
-ffbDestroyScreen(__DRIscreen *sPriv)
-{
-       ffbScreenPrivate *ffbScreen = sPriv->private;
-       FFBDRIPtr gDRIPriv = (FFBDRIPtr) sPriv->pDevPriv;
-
-       drmUnmap((drmAddress)ffbScreen->regs, gDRIPriv->sFbcRegs);
-       drmUnmap((drmAddress)ffbScreen->dac, gDRIPriv->sDacRegs);
-       drmUnmap((drmAddress)ffbScreen->sfb8r, gDRIPriv->sSfb8r);
-       drmUnmap((drmAddress)ffbScreen->sfb32, gDRIPriv->sSfb32);
-       drmUnmap((drmAddress)ffbScreen->sfb64, gDRIPriv->sSfb64);
-
-       FREE(ffbScreen);
-}
-
-static const struct tnl_pipeline_stage *ffb_pipeline[] = {
-   &_tnl_vertex_transform_stage, 
-   &_tnl_normal_transform_stage, 
-   &_tnl_lighting_stage,
-                               /* REMOVE: fog coord stage */
-   &_tnl_texgen_stage, 
-   &_tnl_texture_transform_stage, 
-                               /* REMOVE: point attenuation stage */
-   &_tnl_render_stage,         
-   0,
-};
-
-/* Create and initialize the Mesa and driver specific context data */
-static GLboolean
-ffbCreateContext(const __GLcontextModes *mesaVis,
-                 __DRIcontext *driContextPriv,
-                 void *sharedContextPrivate)
-{
-       ffbContextPtr fmesa;
-       GLcontext *ctx, *shareCtx;
-       __DRIscreen *sPriv;
-       ffbScreenPrivate *ffbScreen;
-       char *debug;
-       struct dd_function_table functions;
-
-        /* Allocate ffb context */
-       fmesa = (ffbContextPtr) CALLOC(sizeof(ffbContextRec));
-       if (!fmesa)
-               return GL_FALSE;
-
-       _mesa_init_driver_functions(&functions);
-
-        /* Allocate Mesa context */
-        if (sharedContextPrivate)
-           shareCtx = ((ffbContextPtr) sharedContextPrivate)->glCtx;
-        else 
-           shareCtx = NULL;
-        fmesa->glCtx = _mesa_create_context(mesaVis, shareCtx,
-                                            &functions, fmesa);
-        if (!fmesa->glCtx) {
-           FREE(fmesa);
-           return GL_FALSE;
-        }
-        driContextPriv->driverPrivate = fmesa;
-        ctx = fmesa->glCtx;
-
-       sPriv = driContextPriv->driScreenPriv;
-       ffbScreen = (ffbScreenPrivate *) sPriv->private;
-
-       /* Dri stuff. */
-       fmesa->hHWContext = driContextPriv->hHWContext;
-       fmesa->driFd = sPriv->fd;
-       fmesa->driHwLock = &sPriv->pSAREA->lock;
-
-       fmesa->ffbScreen = ffbScreen;
-       fmesa->driScreen = sPriv;
-       fmesa->ffb_sarea = FFB_DRISHARE(sPriv->pSAREA);
-
-       /* Register and framebuffer pointers. */
-       fmesa->regs = ffbScreen->regs;
-       fmesa->sfb32 = ffbScreen->sfb32;
-
-       ffbDDInitContextHwState(ctx);
-
-       /* Default clear and depth colors. */
-       {
-               GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F);
-               GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F);
-               GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F);
-
-               fmesa->clear_pixel = ((r << 0) |
-                                     (g << 8) |
-                                     (b << 16));
-       }
-       fmesa->clear_depth = Z_FROM_MESA(ctx->Depth.Clear * 4294967295.0f);
-       fmesa->clear_stencil = ctx->Stencil.Clear & 0xf;
-
-       /* No wide points. */
-       ctx->Const.MinPointSize = 1.0;
-       ctx->Const.MinPointSizeAA = 1.0;
-       ctx->Const.MaxPointSize = 1.0;
-       ctx->Const.MaxPointSizeAA = 1.0;
-
-       /* Disable wide lines as we can't antialias them correctly in
-        * hardware.
-        */
-       ctx->Const.MinLineWidth = 1.0;
-       ctx->Const.MinLineWidthAA = 1.0;
-       ctx->Const.MaxLineWidth = 1.0;
-       ctx->Const.MaxLineWidthAA = 1.0;
-       ctx->Const.LineWidthGranularity = 1.0;
-
-       ctx->Const.MaxDrawBuffers = 1;
-
-       /* Instead of having GCC emit these constants a zillion times
-        * everywhere in the driver, put them here.
-        */
-       fmesa->ffb_2_30_fixed_scale           = __FFB_2_30_FIXED_SCALE;
-       fmesa->ffb_one_over_2_30_fixed_scale  = (1.0 / __FFB_2_30_FIXED_SCALE);
-       fmesa->ffb_16_16_fixed_scale          = __FFB_16_16_FIXED_SCALE;
-       fmesa->ffb_one_over_16_16_fixed_scale = (1.0 / __FFB_16_16_FIXED_SCALE);
-       fmesa->ffb_ubyte_color_scale          = 255.0f;
-       fmesa->ffb_zero                       = 0.0f;
-
-       fmesa->debugFallbacks = GL_FALSE;
-       debug = getenv("LIBGL_DEBUG");
-       if (debug && strstr(debug, "fallbacks"))
-               fmesa->debugFallbacks = GL_TRUE;
-
-       /* Initialize the software rasterizer and helper modules. */
-       _swrast_CreateContext( ctx );
-       _vbo_CreateContext( ctx );
-       _tnl_CreateContext( ctx );
-       _swsetup_CreateContext( ctx );
-
-       /* All of this need only be done once for a new context. */
-       /* XXX these should be moved right after the
-        *  _mesa_init_driver_functions() call above.
-        */
-       ffbDDExtensionsInit(ctx);
-       ffbDDInitDriverFuncs(ctx);
-       ffbDDInitStateFuncs(ctx);
-       ffbDDInitRenderFuncs(ctx);
-       /*ffbDDInitTexFuncs(ctx); not needed */
-       ffbDDInitBitmapFuncs(ctx);
-       ffbInitVB(ctx);
-
-#if 0
-       ffbInitTnlModule(ctx);
-#endif
-
-       _tnl_destroy_pipeline(ctx);
-       _tnl_install_pipeline(ctx, ffb_pipeline);
-
-       return GL_TRUE;
-}
-
-static void
-ffbDestroyContext(__DRIcontext *driContextPriv)
-{
-       ffbContextPtr fmesa = (ffbContextPtr) driContextPriv->driverPrivate;
-
-       if (fmesa) {
-               ffbFreeVB(fmesa->glCtx);
-
-               _swsetup_DestroyContext( fmesa->glCtx );
-               _tnl_DestroyContext( fmesa->glCtx );
-               _vbo_DestroyContext( fmesa->glCtx );
-               _swrast_DestroyContext( fmesa->glCtx );
-
-                /* free the Mesa context */
-                fmesa->glCtx->DriverCtx = NULL;
-                _mesa_destroy_context(fmesa->glCtx);
-
-               FREE(fmesa);
-       }
-}
-
-/* Create and initialize the Mesa and driver specific pixmap buffer data */
-static GLboolean
-ffbCreateBuffer(__DRIscreen *driScrnPriv,
-                __DRIdrawable *driDrawPriv,
-                const __GLcontextModes *mesaVis,
-                GLboolean isPixmap )
-{
-   /* Mesa checks for pitch > 0, but ffb doesn't use pitches */
-   int bogusPitch = 1;
-   int bpp = 4; /* we've always got a 32bpp framebuffer */
-   int offset = 0; /* always at 0 for offset */
-
-   if (isPixmap) {
-      return GL_FALSE; /* not implemented */
-   } else {
-      GLboolean swStencil = (mesaVis->stencilBits > 0 && 
-                            mesaVis->depthBits != 24);
-      struct gl_framebuffer *fb = _mesa_create_framebuffer(mesaVis);
-
-      {
-         driRenderbuffer *frontRb
-            = driNewRenderbuffer(MESA_FORMAT_ARGB8888, NULL, bpp, offset, bogusPitch,
-                                 driDrawPriv);
-         ffbSetSpanFunctions(frontRb, mesaVis);
-         _mesa_add_renderbuffer(fb, BUFFER_FRONT_LEFT, &frontRb->Base);
-      }
-
-      if (mesaVis->doubleBufferMode) {
-         driRenderbuffer *backRb
-            = driNewRenderbuffer(MESA_FORMAT_ARGB8888, NULL, bpp, offset, bogusPitch,
-                                 driDrawPriv);
-         ffbSetSpanFunctions(backRb, mesaVis);
-         _mesa_add_renderbuffer(fb, BUFFER_BACK_LEFT, &backRb->Base);
-      }
-
-      if (mesaVis->depthBits == 16) {
-         driRenderbuffer *depthRb
-            = driNewRenderbuffer(MESA_FORMAT_Z16, NULL, bpp, offset,
-                                 bogusPitch, driDrawPriv);
-         ffbSetDepthFunctions(depthRb, mesaVis);
-         _mesa_add_renderbuffer(fb, BUFFER_DEPTH, &depthRb->Base);
-      }
-
-      if (mesaVis->stencilBits > 0 && !swStencil) {
-         driRenderbuffer *stencilRb
-            = driNewRenderbuffer(MESA_FORMAT_S8, NULL, bpp, offset,
-                                 bogusPitch, driDrawPriv);
-         ffbSetStencilFunctions(stencilRb, mesaVis);
-         _mesa_add_renderbuffer(fb, BUFFER_STENCIL, &stencilRb->Base);
-      }
-
-      _mesa_add_soft_renderbuffers(fb,
-                                   GL_FALSE, /* color */
-                                   GL_FALSE, /* depth */
-                                   swStencil,
-                                   mesaVis->accumRedBits > 0,
-                                   GL_FALSE, /* alpha */
-                                   GL_FALSE /* aux */);
-      driDrawPriv->driverPrivate = (void *) fb;
-
-      return (driDrawPriv->driverPrivate != NULL);
-   }
-}
-
-
-static void
-ffbDestroyBuffer(__DRIdrawable *driDrawPriv)
-{
-   _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL);
-}
-
-
-#define USE_FAST_SWAP
-
-static void
-ffbSwapBuffers( __DRIdrawable *dPriv )
-{
-       ffbContextPtr fmesa = (ffbContextPtr) dPriv->driContextPriv->driverPrivate;
-       unsigned int fbc, wid, wid_reg_val, dac_db_bit;
-       unsigned int shadow_dac_addr, active_dac_addr;
-       ffb_fbcPtr ffb;
-       ffb_dacPtr dac;
-
-       if (fmesa == NULL ||
-           fmesa->glCtx->Visual.doubleBufferMode == 0)
-               return;
-
-       /* Flush pending rendering commands */
-       _mesa_notifySwapBuffers(fmesa->glCtx);
-
-       ffb = fmesa->regs;
-       dac = fmesa->ffbScreen->dac;
-
-       fbc = fmesa->fbc;
-       wid = fmesa->wid;
-
-       /* Swap the buffer we render into and read pixels from. */
-       fmesa->back_buffer ^= 1;
-
-       /* If we are writing into both buffers, don't mess with
-        * the WB setting.
-        */
-       if ((fbc & FFB_FBC_WB_AB) != FFB_FBC_WB_AB) {
-               if ((fbc & FFB_FBC_WB_A) != 0)
-                       fbc = (fbc & ~FFB_FBC_WB_A) | FFB_FBC_WB_B;
-               else
-                       fbc = (fbc & ~FFB_FBC_WB_B) | FFB_FBC_WB_A;
-       }
-
-       /* But either way, we must flip the read buffer setting. */
-       if ((fbc & FFB_FBC_RB_A) != 0)
-               fbc = (fbc & ~FFB_FBC_RB_A) | FFB_FBC_RB_B;
-       else
-               fbc = (fbc & ~FFB_FBC_RB_B) | FFB_FBC_RB_A;
-
-       LOCK_HARDWARE(fmesa);
-
-       if (fmesa->fbc != fbc) {
-               FFBFifo(fmesa, 1);
-               ffb->fbc = fmesa->fbc = fbc;
-               fmesa->ffbScreen->rp_active = 1;
-       }
-
-       /* And swap the buffer displayed in the WID. */
-       if (fmesa->ffb_sarea->flags & FFB_DRI_PAC1) {
-               shadow_dac_addr = FFBDAC_PAC1_SPWLUT(wid);
-               active_dac_addr = FFBDAC_PAC1_APWLUT(wid);
-               dac_db_bit = FFBDAC_PAC1_WLUT_DB;
-       } else {
-               shadow_dac_addr = FFBDAC_PAC2_SPWLUT(wid);
-               active_dac_addr = FFBDAC_PAC2_APWLUT(wid);
-               dac_db_bit = FFBDAC_PAC2_WLUT_DB;
-       }
-
-       FFBWait(fmesa, ffb);
-
-       wid_reg_val = DACCFG_READ(dac, active_dac_addr);
-       if (fmesa->back_buffer == 0)
-               wid_reg_val |=  dac_db_bit;
-       else
-               wid_reg_val &= ~dac_db_bit;
-#ifdef USE_FAST_SWAP
-       DACCFG_WRITE(dac, active_dac_addr, wid_reg_val);
-#else
-       DACCFG_WRITE(dac, shadow_dac_addr, wid_reg_val);
-
-       /* Schedule the window transfer. */
-       DACCFG_WRITE(dac, FFBDAC_CFG_WTCTRL, 
-                    (FFBDAC_CFG_WTCTRL_TCMD | FFBDAC_CFG_WTCTRL_TE));
-
-       {
-               int limit = 1000000;
-               while (limit--) {
-                       unsigned int wtctrl = DACCFG_READ(dac, FFBDAC_CFG_WTCTRL);
-
-                       if ((wtctrl & FFBDAC_CFG_WTCTRL_DS) == 0)
-                               break;
-               }
-       }
-#endif
-
-       UNLOCK_HARDWARE(fmesa);
-}
-
-static void ffb_init_wid(ffbContextPtr fmesa, unsigned int wid)
-{
-       ffb_dacPtr dac = fmesa->ffbScreen->dac;
-       unsigned int wid_reg_val, dac_db_bit, active_dac_addr;
-       unsigned int shadow_dac_addr;
-
-       if (fmesa->ffb_sarea->flags & FFB_DRI_PAC1) {
-               shadow_dac_addr = FFBDAC_PAC1_SPWLUT(wid);
-               active_dac_addr = FFBDAC_PAC1_APWLUT(wid);
-               dac_db_bit = FFBDAC_PAC1_WLUT_DB;
-       } else {
-               shadow_dac_addr = FFBDAC_PAC2_SPWLUT(wid);
-               active_dac_addr = FFBDAC_PAC2_APWLUT(wid);
-               dac_db_bit = FFBDAC_PAC2_WLUT_DB;
-       }
-
-       wid_reg_val = DACCFG_READ(dac, active_dac_addr);
-       wid_reg_val &= ~dac_db_bit;
-#ifdef USE_FAST_SWAP
-       DACCFG_WRITE(dac, active_dac_addr, wid_reg_val);
-#else
-       DACCFG_WRITE(dac, shadow_dac_addr, wid_reg_val);
-
-       /* Schedule the window transfer. */
-       DACCFG_WRITE(dac, FFBDAC_CFG_WTCTRL, 
-                    (FFBDAC_CFG_WTCTRL_TCMD | FFBDAC_CFG_WTCTRL_TE));
-
-       {
-               int limit = 1000000;
-               while (limit--) {
-                       unsigned int wtctrl = DACCFG_READ(dac, FFBDAC_CFG_WTCTRL);
-
-                       if ((wtctrl & FFBDAC_CFG_WTCTRL_DS) == 0)
-                               break;
-               }
-       }
-#endif
-}
-
-/* Force the context `c' to be the current context and associate with it
-   buffer `b' */
-static GLboolean
-ffbMakeCurrent(__DRIcontext *driContextPriv,
-               __DRIdrawable *driDrawPriv,
-               __DRIdrawable *driReadPriv)
-{
-       if (driContextPriv) {
-               ffbContextPtr fmesa = (ffbContextPtr) driContextPriv->driverPrivate;
-               int first_time;
-
-               fmesa->driDrawable = driDrawPriv;
-
-               _mesa_make_current(fmesa->glCtx, 
-                           (GLframebuffer *) driDrawPriv->driverPrivate, 
-                           (GLframebuffer *) driReadPriv->driverPrivate);
-
-               first_time = 0;
-               if (fmesa->wid == ~0) {
-                       first_time = 1;
-                       if (getenv("LIBGL_SOFTWARE_RENDERING"))
-                               FALLBACK( fmesa->glCtx, FFB_BADATTR_SWONLY, GL_TRUE );
-               }
-
-               LOCK_HARDWARE(fmesa);
-               if (first_time) {
-                       fmesa->wid = fmesa->ffb_sarea->wid_table[driDrawPriv->index];
-                       ffb_init_wid(fmesa, fmesa->wid);
-               }
-
-               fmesa->state_dirty |= FFB_STATE_ALL;
-               fmesa->state_fifo_ents = fmesa->state_all_fifo_ents;
-               ffbSyncHardware(fmesa);
-               UNLOCK_HARDWARE(fmesa);
-
-               if (first_time) {
-                       /* Also, at the first switch to a new context,
-                        * we need to clear all the hw buffers.
-                        */
-                       ffbDDClear(fmesa->glCtx,
-                                  (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT |
-                                   BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL));
-               }
-       } else {
-               _mesa_make_current(NULL, NULL, NULL);
-       }
-
-       return GL_TRUE;
-}
-
-/* Force the context `c' to be unbound from its buffer */
-static GLboolean
-ffbUnbindContext(__DRIcontext *driContextPriv)
-{
-       return GL_TRUE;
-}
-
-void ffbXMesaUpdateState(ffbContextPtr fmesa)
-{
-       __DRIdrawable *dPriv = fmesa->driDrawable;
-       __DRIscreen *sPriv = fmesa->driScreen;
-       int stamp = dPriv->lastStamp;
-
-       DRI_VALIDATE_DRAWABLE_INFO(sPriv, dPriv);
-
-       if (dPriv->lastStamp != stamp) {
-               GLcontext *ctx = fmesa->glCtx;
-
-               ffbCalcViewport(ctx);
-               driUpdateFramebufferSize(ctx, dPriv);
-               if (ctx->Polygon.StippleFlag) {
-                       ffbXformAreaPattern(fmesa,
-                                           (const GLubyte *)ctx->PolygonStipple);
-               }
-       }
-}
-
-static const __DRIconfig **
-ffbFillInModes( __DRIscreen *psp,
-               unsigned pixel_bits, unsigned depth_bits,
-               unsigned stencil_bits, GLboolean have_back_buffer )
-{
-   __DRIconfig **configs;
-   __GLcontextModes *m;
-   unsigned depth_buffer_factor;
-   unsigned back_buffer_factor;
-   GLenum fb_format;
-   GLenum fb_type;
-   int i;
-
-   /* GLX_SWAP_COPY_OML is only supported because the FFB driver doesn't
-    * support pageflipping at all.
-    */
-   static const GLenum back_buffer_modes[] = {
-      GLX_NONE, GLX_SWAP_UNDEFINED_OML, GLX_SWAP_COPY_OML
-   };
-
-   uint8_t depth_bits_array[3];
-   uint8_t stencil_bits_array[3];
-   uint8_t msaa_samples_array[1];
-
-   depth_bits_array[0] = 0;
-   depth_bits_array[1] = depth_bits;
-   depth_bits_array[2] = depth_bits;
-
-   /* Just like with the accumulation buffer, always provide some modes
-    * with a stencil buffer.  It will be a sw fallback, but some apps won't
-    * care about that.
-    */
-   stencil_bits_array[0] = 0;
-   stencil_bits_array[1] = 0;
-   stencil_bits_array[2] = (stencil_bits == 0) ? 8 : stencil_bits;
-
-   msaa_samples_array[0] = 0;
-
-   depth_buffer_factor = ((depth_bits != 0) || (stencil_bits != 0)) ? 3 : 1;
-   back_buffer_factor  = (have_back_buffer) ? 3 : 1;
-
-    if ( pixel_bits == 16 ) {
-        fb_format = GL_RGB;
-        fb_type = GL_UNSIGNED_SHORT_5_6_5;
-    }
-    else {
-        fb_format = GL_BGRA;
-        fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
-    }
-
-   configs = driCreateConfigs(fb_format, fb_type,
-                             depth_bits_array, stencil_bits_array,
-                             depth_buffer_factor, back_buffer_modes,
-                             back_buffer_factor,
-                             msaa_samples_array, 1, GL_TRUE);
-   if (configs == NULL) {
-      fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__,
-              __LINE__);
-      return NULL;
-   }
-
-   /* Mark the visual as slow if there are "fake" stencil bits.
-    */
-   for (i = 0; configs[i]; i++) {
-      m = &configs[i]->modes;
-      if ((m->stencilBits != 0) && (m->stencilBits != stencil_bits)) {
-         m->visualRating = GLX_SLOW_CONFIG;
-      }
-   }
-
-   return (const __DRIconfig **) configs;
-}
-
-
-/**
- * This is the driver specific part of the createNewScreen entry point.
- * 
- * \todo maybe fold this into intelInitDriver
- *
- * \return the __GLcontextModes supported by this driver
- */
-static const __DRIconfig **
-ffbInitScreen(__DRIscreen *psp)
-{
-   static const __DRIversion ddx_expected = { 0, 1, 1 };
-   static const __DRIversion dri_expected = { 4, 0, 0 };
-   static const __DRIversion drm_expected = { 0, 0, 1 };
-
-   if ( ! driCheckDriDdxDrmVersions2( "ffb",
-                                     &psp->dri_version, & dri_expected,
-                                     &psp->ddx_version, & ddx_expected,
-                                     &psp->drm_version, & drm_expected ) )
-      return NULL;
-
-   if (!ffbInitDriver(psp))
-       return NULL;
-
-   return ffbFillInModes( psp, 32, 16, 0, GL_TRUE );
-}
-
-const struct __DriverAPIRec driDriverAPI = {
-   .InitScreen      = ffbInitScreen,
-   .DestroyScreen   = ffbDestroyScreen,
-   .CreateContext   = ffbCreateContext,
-   .DestroyContext  = ffbDestroyContext,
-   .CreateBuffer    = ffbCreateBuffer,
-   .DestroyBuffer   = ffbDestroyBuffer,
-   .SwapBuffers     = ffbSwapBuffers,
-   .MakeCurrent     = ffbMakeCurrent,
-   .UnbindContext   = ffbUnbindContext,
-   .GetSwapInfo     = NULL,
-   .GetDrawableMSC  = NULL,
-   .WaitForMSC      = NULL,
-   .WaitForSBC      = NULL,
-   .SwapBuffersMSC  = NULL
-};
-
-/* This is the table of extensions that the loader will dlsym() for. */
-PUBLIC const __DRIextension *__driDriverExtensions[] = {
-    &driCoreExtension.base,
-    &driLegacyExtension.base,
-    NULL
-};
diff --git a/src/mesa/drivers/dri/ffb/ffb_xmesa.h b/src/mesa/drivers/dri/ffb/ffb_xmesa.h
deleted file mode 100644 (file)
index 2b1740d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef _FFB_XMESA_H_
-#define _FFB_XMESA_H_
-
-#include <sys/time.h>
-#include "dri_util.h"
-#include "main/mtypes.h"
-#include "ffb_drishare.h"
-#include "ffb_regs.h"
-#include "ffb_dac.h"
-#include "ffb_fifo.h"
-
-typedef struct {
-       __DRIscreen             *sPriv;
-       ffb_fbcPtr                      regs;
-       ffb_dacPtr                      dac;
-       volatile char                   *sfb8r;
-       volatile char                   *sfb32;
-       volatile char                   *sfb64;
-
-       int                             fifo_cache;
-       int                             rp_active;
-} ffbScreenPrivate;
-
-#endif /* !(_FFB_XMESA_H) */
diff --git a/src/mesa/drivers/dri/ffb/server/ffb_dac.h b/src/mesa/drivers/dri/ffb/server/ffb_dac.h
deleted file mode 100644 (file)
index ac4a75b..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Acceleration for the Creator and Creator3D framebuffer - DAC register layout.
- *
- * Copyright (C) 2000 David S. Miller (davem@redhat.com)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID MILLER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef _FFB_DAC_H
-#define _FFB_DAC_H
-
-#define Bool int
-
-/* FFB utilizes two different ramdac chips:
- *
- *     1) BT9068 "Pacifica1", used in all FFB1 and
- *        FFB2 boards.
- *
- *     2) BT498(a) "Pacifica2", used in FFB2+ and
- *        AFB boards.
- *
- * They are mostly equivalent, except in a few key areas:
- *
- *     1) WID register layout
- *     2) Number of CLUT tables
- *     3) Presence of Window Address Mask register
- *     4) Method of GAMMA correction support
- */
-
-/* NOTE: All addresses described in this file are DAC
- *       indirect addresses.
- */
-
-/* DAC color values are in the following format. */
-#define FFBDAC_COLOR_BLUE      0x00ff0000
-#define FFBDAC_COLOR_BLUE_SHFT 16
-#define FFBDAC_COLOR_GREEN     0x0000ff00
-#define FFBDAC_COLOR_GREEN_SHFT        8
-#define FFBDAC_COLOR_RED       0x000000ff
-#define FFBDAC_COLOR_RED_SHFT  0
-
-/* Cursor DAC register addresses. */
-#define FFBDAC_CUR_BITMAP_P0   0x000 /* Plane 0 cursor bitmap  */
-#define FFBDAC_CUR_BITMAP_P1   0x080 /* Plane 1 cursor bitmap  */
-#define FFBDAC_CUR_CTRL                0x100 /* Cursor control         */
-#define FFBDAC_CUR_COLOR0      0x101 /* Cursor Color 0         */
-#define FFBDAC_CUR_COLOR1      0x102 /* Cursor Color 1 (bg)    */
-#define FFBDAC_CUR_COLOR2      0x103 /* Cursor Color 2 (fg)    */
-#define FFBDAC_CUR_POS         0x104 /* Active cursor position */
-
-/* Cursor control register.
- * WARNING: Be careful, reverse logic on these bits.
- */
-#define FFBDAC_CUR_CTRL_P0     0x00000001      /* Plane0 display disable       */
-#define FFBDAC_CUR_CTRL_P1     0x00000002      /* Plane1 display disable       */
-
-/* Active cursor position register */
-#define FFBDAC_CUR_POS_Y_SIGN  0x80000000      /* Sign of Y position           */
-#define FFBDAC_CUR_POS_Y       0x0fff0000      /* Y position                   */
-#define FFBDAC_CUR_POS_X_SIGN  0x00008000      /* Sign of X position           */
-#define FFBDAC_CUR_POS_X       0x00000fff      /* X position                   */
-
-/* Configuration and Palette DAC register addresses. */
-#define FFBDAC_CFG_PPLLCTRL    0x0000 /* Pixel PLL Control             */
-#define FFBDAC_CFG_GPLLCTRL    0x0001 /* General Purpose PLL Control   */
-#define FFBDAC_CFG_PFCTRL      0x1000 /* Pixel Format Control          */
-#define FFBDAC_CFG_UCTRL       0x1001 /* User Control                  */
-#define FFBDAC_CFG_CLUP_BASE   0x2000 /* Color Lookup Palette          */
-#define FFBDAC_CFG_CLUP(entry) (FFBDAC_CFG_CLUP_BASE + ((entry) * 0x100))
-#define FFBDAC_PAC2_SOVWLUT0   0x3100 /* Shadow Overlay Window Lookup 0*/
-#define FFBDAC_PAC2_SOVWLUT1   0x3101 /* Shadow Overlay Window Lookup 1*/
-#define FFBDAC_PAC2_SOVWLUT2   0x3102 /* Shadow Overlay Window Lookup 2*/
-#define FFBDAC_PAC2_SOVWLUT3   0x3103 /* Shadow Overlay Window Lookup 3*/
-#define FFBDAC_PAC2_AOVWLUT0   0x3210 /* Active Overlay Window Lookup 0*/
-#define FFBDAC_PAC2_AOVWLUT1   0x3211 /* Active Overlay Window Lookup 1*/
-#define FFBDAC_PAC2_AOVWLUT2   0x3212 /* Active Overlay Window Lookup 2*/
-#define FFBDAC_PAC2_AOVWLUT3   0x3213 /* Active Overlay Window Lookup 3*/
-#define FFBDAC_CFG_WTCTRL      0x3150 /* Window Transfer Control       */
-#define FFBDAC_CFG_TMCTRL      0x3151 /* Transparent Mask Control      */
-#define FFBDAC_CFG_TCOLORKEY   0x3152 /* Transparent Color Key         */
-#define FFBDAC_CFG_WAMASK      0x3153 /* Window Address Mask (PAC2 only) */
-#define FFBDAC_PAC1_SPWLUT_BASE        0x3100 /* Shadow Primary Window Lookups */
-#define FFBDAC_PAC1_SPWLUT(entry) (FFBDAC_PAC1_SPWLUT_BASE + (entry))
-#define FFBDAC_PAC1_APWLUT_BASE        0x3120 /* Active Primary Window Lookups */
-#define FFBDAC_PAC1_APWLUT(entry) (FFBDAC_PAC1_APWLUT_BASE + (entry))
-#define FFBDAC_PAC2_SPWLUT_BASE        0x3200 /* Shadow Primary Window Lookups */
-#define FFBDAC_PAC2_SPWLUT(entry) (FFBDAC_PAC2_SPWLUT_BASE + (entry))
-#define FFBDAC_PAC2_APWLUT_BASE        0x3240 /* Active Primary Window Lookups */
-#define FFBDAC_PAC2_APWLUT(entry) (FFBDAC_PAC2_APWLUT_BASE + (entry))
-#define FFBDAC_CFG_SANAL       0x5000 /* Signature Analysis Control    */
-#define FFBDAC_CFG_DACCTRL     0x5001 /* DAC Control                   */
-#define FFBDAC_CFG_TGEN                0x6000 /* Timing Generator Control      */
-#define FFBDAC_CFG_VBNP                0x6001 /* Vertical Blank Negation Point */
-#define FFBDAC_CFG_VBAP                0x6002 /* Vertical Blank Assertion Point*/
-#define FFBDAC_CFG_VSNP                0x6003 /* Vertical Sync Negation Point  */
-#define FFBDAC_CFG_VSAP                0x6004 /* Vertical Sync Assertion Point */
-#define FFBDAC_CFG_HSNP                0x6005 /* Horz Serration Negation Point */
-#define FFBDAC_CFG_HBNP                0x6006 /* Horz Blank Negation Point     */
-#define FFBDAC_CFG_HBAP                0x6007 /* Horz Blank Assertion Point    */
-#define FFBDAC_CFG_HSYNCNP     0x6008 /* Horz Sync Negation Point      */
-#define FFBDAC_CFG_HSYNCAP     0x6009 /* Horz Sync Assertion Point     */
-#define FFBDAC_CFG_HSCENNP     0x600A /* Horz SCEN Negation Point      */
-#define FFBDAC_CFG_HSCENAP     0x600B /* Horz SCEN Assertion Point     */
-#define FFBDAC_CFG_EPNP                0x600C /* Eql'zing Pulse Negation Point */
-#define FFBDAC_CFG_EINP                0x600D /* Eql'zing Intvl Negation Point */
-#define FFBDAC_CFG_EIAP                0x600E /* Eql'zing Intvl Assertion Point*/
-#define FFBDAC_CFG_TGVC                0x600F /* Timing Generator Vert Counter */
-#define FFBDAC_CFG_TGHC                0x6010 /* Timing Generator Horz Counter */
-#define FFBDAC_CFG_DID         0x8000 /* Device Identification         */
-#define FFBDAC_CFG_MPDATA      0x8001 /* Monitor Port Data             */
-#define FFBDAC_CFG_MPSENSE     0x8002 /* Monitor Port Sense            */
-
-/* Pixel PLL Control Register */
-#define FFBDAC_CFG_PPLLCTRL_M  0x0000007f      /* PLL VCO Multiplicand          */
-#define FFBDAC_CFG_PPLLCTRL_D  0x00000780      /* PLL VCO Divisor               */
-#define FFBDAC_CFG_PPLLCTRL_PFD        0x00001800      /* Post VCO Frequency Divider    */
-#define FFBDAC_CFG_PPLLCTRL_EN 0x00004000      /* Enable PLL as pixel clock src */
-
-/* General Purpose PLL Control Register */
-#define FFBDAC_CFG_GPLLCTRL_M  0x0000007f      /* PLL VCO Multiplicand          */
-#define FFBDAC_CFG_GPLLCTRL_D  0x00000780      /* PLL VCO Divisor               */
-#define FFBDAC_CFG_GPLLCTRL_PFD        0x00001800      /* Post VCO Frequency Divider    */
-#define FFBDAC_CFG_GPLLCTRL_EN 0x00004000      /* Enable PLL as Gen. Purpose clk*/
-
-/* Pixel Format Control Register */
-#define FFBDAC_CFG_PFCTRL_2_1  0x00000000      /* 2:1 pixel interleave format   */
-#define FFBDAC_CFG_PFCTRL_4_1  0x00000001      /* 4:1 pixel interleave format   */
-#define FFBDAC_CFG_PFCTRL_42_1 0x00000002      /* 4/2:1 pixel interleave format */
-#define FFBDAC_CFG_PFCTRL_82_1 0x00000003      /* 8/2:1 pixel interleave format */
-
-/* User Control Register */
-#define FFBDAC_UCTRL_IPDISAB   0x00000001      /* Disable input pullup resistors*/
-#define FFBDAC_UCTRL_ABLANK    0x00000002      /* Asynchronous Blank            */
-#define FFBDAC_UCTRL_DBENAB    0x00000004      /* Double-Buffer Enable          */
-#define FFBDAC_UCTRL_OVENAB    0x00000008      /* Overlay Enable                */
-#define FFBDAC_UCTRL_WMODE     0x00000030      /* Window Mode                   */
-#define FFBDAC_UCTRL_WM_COMB   0x00000000      /* Window Mode = Combined        */
-#define FFBDAC_UCTRL_WM_S4     0x00000010      /* Window Mode = Seperate_4      */
-#define FFBDAC_UCTRL_WM_S8     0x00000020      /* Window Mode = Seperate_8      */
-#define FFBDAC_UCTRL_WM_RESV   0x00000030      /* Window Mode = reserved        */
-#define FFBDAC_UCTRL_MANREV    0x00000f00      /* 4-bit Manufacturing Revision  */
-
-/* Overlay Window Lookup Registers (PAC2 only) */
-#define FFBDAC_CFG_OVWLUT_PSEL 0x0000000f      /* Palette Section, Seperate_4   */
-#define FFBDAC_CFG_OVWLUT_PTBL 0x00000030      /* Palette Table                 */
-#define FFBDAC_CFG_OVWLUT_LKUP 0x00000100      /* 1 = Use palette, 0 = Bypass   */
-#define FFBDAC_CFG_OVWLUT_OTYP 0x00000c00      /* Overlay Type                  */
-#define FFBDAC_CFG_OVWLUT_O_N  0x00000000      /* Overlay Type - None           */
-#define FFBDAC_CFG_OVWLUT_O_T  0x00000400      /* Overlay Type - Transparent    */
-#define FFBDAC_CFG_OVWLUT_O_O  0x00000800      /* Overlay Type - Opaque         */
-#define FFBDAC_CFG_OVWLUT_O_R  0x00000c00      /* Overlay Type - Reserved       */
-#define FFBDAC_CFG_OVWLUT_PCS  0x00003000      /* Psuedocolor Src               */
-#define FFBDAC_CFG_OVWLUT_P_XO 0x00000000      /* Psuedocolor Src - XO[7:0]     */
-#define FFBDAC_CFG_OVWLUT_P_R  0x00001000      /* Psuedocolor Src - R[7:0]      */
-#define FFBDAC_CFG_OVWLUT_P_G  0x00002000      /* Psuedocolor Src - G[7:0]      */
-#define FFBDAC_CFG_OVWLUT_P_B  0x00003000      /* Psuedocolor Src - B[7:0]      */
-
-/* Window Transfer Control Register */
-#define FFBDAC_CFG_WTCTRL_DS   0x00000001      /* Device Status, 1 = Busy       */
-#define FFBDAC_CFG_WTCTRL_TCMD 0x00000002      /* Transfer Command
-                                                * 1 = Transfer, 0 = No Action
-                                                */
-#define FFBDAC_CFG_WTCTRL_TE   0x00000004      /* Transfer Event
-                                                * 1 = Next Frame, 0 = Next Field
-                                                */
-#define FFBDAC_CFG_WTCTRL_DRD  0x00000008      /* Drawing Data
-                                                * 1 = Local Drawing Active
-                                                * 0 = Local Drawing Idle
-                                                */
-#define FFBDAC_CFG_WTCTRL_DRS  0x00000010      /* Drawing Status
-                                                * 1 = Network Drawing Active
-                                                * 0 = Network Drawing Idle
-                                                */
-
-/* Transparent Mask Control Register */
-#define FFBDAC_CFG_TMCTRL_OMSK 0x000000ff      /* Overlay Mask                  */
-
-/* Transparent Color Key Register */
-#define FFBDAC_CFG_TCOLORKEY_K 0x000000ff      /* Overlay Color Key             */
-
-/* Window Address Mask Register (PAC2 only) */
-#define FFBDAC_CFG_WAMASK_PMSK 0x0000003f      /* PWLUT select PMASK            */
-#define FFBDAC_CFG_WAMASK_OMSK 0x00000300      /* OWLUT control OMASK           */
-
-/* (non-Overlay) Window Lookup Table Registers, PAC1 format */
-#define FFBDAC_PAC1_WLUT_DB    0x00000020      /* 0 = Buffer A, 1 = Buffer B    */
-#define FFBDAC_PAC1_WLUT_C     0x0000001c      /* C: Color Model Selection      */
-#define FFBDAC_PAC1_WLUT_C_8P  0x00000000      /* C: 8bpp Pseudocolor           */
-#define FFBDAC_PAC1_WLUT_C_8LG 0x00000004      /* C: 8bpp Linear Grey           */
-#define FFBDAC_PAC1_WLUT_C_8NG 0x00000008      /* C: 8bpp Non-Linear Grey       */
-#define FFBDAC_PAC1_WLUT_C_24D 0x00000010      /* C: 24bpp Directcolor          */
-#define FFBDAC_PAC1_WLUT_C_24LT        0x00000014      /* C: 24bpp Linear Truecolor     */
-#define FFBDAC_PAC1_WLUT_C_24NT        0x00000018      /* C: 24bpp Non-Linear Truecolor */
-#define FFBDAC_PAC1_WLUT_PCS   0x00000003      /* Pseudocolor Src               */
-#define FFBDAC_PAC1_WLUT_P_XO  0x00000000      /* Pseudocolor Src - XO[7:0]     */
-#define FFBDAC_PAC1_WLUT_P_R   0x00000001      /* Pseudocolor Src - R[7:0]      */
-#define FFBDAC_PAC1_WLUT_P_G   0x00000002      /* Pseudocolor Src - G[7:0]      */
-#define FFBDAC_PAC1_WLUT_P_B   0x00000003      /* Pseudocolor Src - B[7:0]      */
-
-/* (non-Overlay) Window Lookup Table Registers, PAC2 format */
-#define FFBDAC_PAC2_WLUT_PTBL  0x00000030      /* Palette Table Entry           */
-#define FFBDAC_PAC2_WLUT_LKUP  0x00000100      /* 1 = Use palette, 0 = Bypass   */
-#define FFBDAC_PAC2_WLUT_PCS   0x00003000      /* Pseudocolor Src               */
-#define FFBDAC_PAC2_WLUT_P_XO  0x00000000      /* Pseudocolor Src - XO[7:0]     */
-#define FFBDAC_PAC2_WLUT_P_R   0x00001000      /* Pseudocolor Src - R[7:0]      */
-#define FFBDAC_PAC2_WLUT_P_G   0x00002000      /* Pseudocolor Src - G[7:0]      */
-#define FFBDAC_PAC2_WLUT_P_B   0x00003000      /* Pseudocolor Src - B[7:0]      */
-#define FFBDAC_PAC2_WLUT_DEPTH 0x00004000      /* 0 = Pseudocolor, 1 = Truecolor*/
-#define FFBDAC_PAC2_WLUT_DB    0x00008000      /* 0 = Buffer A, 1 = Buffer B    */
-
-/* Signature Analysis Control Register */
-#define FFBDAC_CFG_SANAL_SRR   0x000000ff      /* DAC Seed/Result for Red       */
-#define FFBDAC_CFG_SANAL_SRG   0x0000ff00      /* DAC Seed/Result for Green     */
-#define FFBDAC_CFG_SANAL_SRB   0x00ff0000      /* DAC Seed/Result for Blue      */
-#define FFBDAC_CFG_SANAL_RQST  0x01000000      /* Signature Capture Request     */
-#define FFBDAC_CFG_SANAL_BSY   0x02000000      /* Signature Analysis Busy       */
-#define FFBDAC_CFG_SANAL_DSM   0x04000000      /* Data Strobe Mode
-                                                * 0 = Signature Analysis Mode
-                                                * 1 = Data Strobe Mode
-                                                */
-
-/* DAC Control Register */
-#define FFBDAC_CFG_DACCTRL_O2  0x00000003      /* Operand 2 Select
-                                                * 00 = Normal Operation
-                                                * 01 = Select 145mv Reference
-                                                * 10 = Select Blue DAC Output
-                                                * 11 = Reserved
-                                                */
-#define FFBDAC_CFG_DACCTRL_O1  0x0000000c      /* Operand 1 Select
-                                                * 00 = Normal Operation
-                                                * 01 = Select Green DAC Output
-                                                * 10 = Select Red DAC Output
-                                                * 11 = Reserved
-                                                */
-#define FFBDAC_CFG_DACCTRL_CR  0x00000010      /* Comparator Result
-                                                * 0 = operand1 < operand2
-                                                * 1 = operand1 > operand2
-                                                */
-#define FFBDAC_CFG_DACCTRL_SGE 0x00000020      /* Sync-on-Green Enable          */
-#define FFBDAC_CFG_DACCTRL_PE  0x00000040      /* Pedestal Enable               */
-#define FFBDAC_CFG_DACCTRL_VPD 0x00000080      /* VSYNC* Pin Disable            */
-#define FFBDAC_CFG_DACCTRL_SPB 0x00000100      /* Sync Polarity Bit
-                                                * 0 = VSYNC* and CSYNC* active low
-                                                * 1 = VSYNC* and CSYNC* active high
-                                                */
-
-/* Timing Generator Control Register */
-#define FFBDAC_CFG_TGEN_VIDE   0x00000001      /* Video Enable                  */
-#define FFBDAC_CFG_TGEN_TGE    0x00000002      /* Timing Generator Enable       */
-#define FFBDAC_CFG_TGEN_HSD    0x00000004      /* HSYNC* Disabled               */
-#define FFBDAC_CFG_TGEN_VSD    0x00000008      /* VSYNC* Disabled               */
-#define FFBDAC_CFG_TGEN_EQD    0x00000010      /* Equalization Disabled         */
-#define FFBDAC_CFG_TGEN_MM     0x00000020      /* 0 = Slave, 1 = Master         */
-#define FFBDAC_CFG_TGEN_IM     0x00000040      /* 1 = Interlaced Mode           */
-
-/* Device Identification Register, should be 0xA236E1AD for FFB bt497/bt498 */
-#define FFBDAC_CFG_DID_ONE     0x00000001      /* Always set                    */
-#define FFBDAC_CFG_DID_MANUF   0x00000ffe      /* Manufacturer ID               */
-#define FFBDAC_CFG_DID_PNUM    0x0ffff000      /* Device Part Number            */
-#define FFBDAC_CFG_DID_REV     0xf0000000      /* Device Revision               */
-
-/* Monitor Port Data Register */
-#define FFBDAC_CFG_MPDATA_SCL  0x00000001      /* SCL Data                      */
-#define FFBDAC_CFG_MPDATA_SDA  0x00000002      /* SDA Data                      */
-
-/* Monitor Port Sense Register */
-#define FFBDAC_CFG_MPSENSE_SCL 0x00000001      /* SCL Sense                     */
-#define FFBDAC_CFG_MPSENSE_SDA 0x00000002      /* SDA Sense                     */
-
-/* DAC register access shorthands. */
-#define DACCUR_READ(DAC, ADDR)         ((DAC)->cur = (ADDR), (DAC)->curdata)
-#define DACCUR_WRITE(DAC, ADDR, VAL)   ((DAC)->cur = (ADDR), (DAC)->curdata = (VAL))
-#define DACCFG_READ(DAC, ADDR)         ((DAC)->cfg = (ADDR), (DAC)->cfgdata)
-#define DACCFG_WRITE(DAC, ADDR, VAL)   ((DAC)->cfg = (ADDR), (DAC)->cfgdata = (VAL))
-
-typedef struct ffb_dac_hwstate {
-       unsigned int ppllctrl;
-       unsigned int gpllctrl;
-       unsigned int pfctrl;
-       unsigned int uctrl;
-       unsigned int clut[256 * 4];     /* One 256 entry clut on PAC1, 4 on PAC2 */
-       unsigned int ovluts[4];         /* Overlay WLUTS, PAC2 only */
-       unsigned int wtctrl;
-       unsigned int tmctrl;
-       unsigned int tcolorkey;
-       unsigned int wamask;
-       unsigned int pwluts[64];
-       unsigned int dacctrl;
-       unsigned int tgen;
-       unsigned int vbnp;
-       unsigned int vbap;
-       unsigned int vsnp;
-       unsigned int vsap;
-       unsigned int hsnp;
-       unsigned int hbnp;
-       unsigned int hbap;
-       unsigned int hsyncnp;
-       unsigned int hsyncap;
-       unsigned int hscennp;
-       unsigned int hscenap;
-       unsigned int epnp;
-       unsigned int einp;
-       unsigned int eiap;
-} ffb_dac_hwstate_t;
-
-typedef struct {
-       Bool            InUse;
-
-       /* The following fields are undefined unless InUse is TRUE. */
-       int             refcount;
-       Bool            canshare;
-       unsigned int    wlut_regval;
-       int             buffer;         /* 0 = Buffer A, 1 = Buffer B   */
-       int             depth;          /* 8 or 32 bpp                  */
-       int             greyscale;      /* 1 = greyscale, 0 = color     */
-       int             linear;         /* 1 = linear, 0 = non-linear   */
-       int             direct;         /* 1 = 24bpp directcolor        */
-       int             channel;        /* 0 = X, 1 = R, 2 = G, 3 = B   */
-       int             palette;        /* Only PAC2 has multiple CLUTs */
-} ffb_wid_info_t;
-
-#define FFB_MAX_PWIDS  64
-typedef struct {
-       int             num_wids;
-       int             wid_shift;      /* To get X channel value       */
-       ffb_wid_info_t  wid_pool[FFB_MAX_PWIDS];
-} ffb_wid_pool_t;
-
-typedef struct ffb_dac_info {
-       unsigned int flags;
-#define FFB_DAC_PAC1   0x00000001      /* Pacifica1 DAC, BT9068        */
-#define FFB_DAC_PAC2   0x00000002      /* Pacifica2 DAC, BT498         */
-#define FFB_DAC_ICURCTL        0x00000004      /* Inverted CUR_CTRL bits       */
-
-       unsigned int kernel_wid;
-
-       /* These registers need to be modified when changing DAC
-        * timing state, so at init time we capture their values.
-        */
-       unsigned int ffbcfg0;
-       unsigned int ffbcfg2;
-       unsigned int ffb_passin_ctrl;   /* FFB2+/AFB only */
-
-       ffb_dac_hwstate_t       kern_dac_state;
-       ffb_dac_hwstate_t       x_dac_state;
-
-       ffb_wid_pool_t          wid_table;
-} ffb_dac_info_t;
-
-#endif /* _FFB_DAC_H */
diff --git a/src/mesa/drivers/dri/ffb/server/ffb_drishare.h b/src/mesa/drivers/dri/ffb/server/ffb_drishare.h
deleted file mode 100644 (file)
index 69fefa3..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef _FFB_DRISHARE_H
-#define _FFB_DRISHARE_H
-
-typedef struct ffb_dri_state {
-       int             flags;
-#define FFB_DRI_FFB2           0x00000001
-#define FFB_DRI_FFB2PLUS       0x00000002
-#define FFB_DRI_PAC1           0x00000004
-#define FFB_DRI_PAC2           0x00000008
-
-       /* Indexed by DRI drawable id. */
-#define FFB_DRI_NWIDS  64
-       unsigned int    wid_table[FFB_DRI_NWIDS];
-} ffb_dri_state_t;
-
-#define FFB_DRISHARE(SAREA)    \
-       ((ffb_dri_state_t *) (((char *)(SAREA)) + sizeof(drm_sarea_t)))
-
-typedef struct {
-       drm_handle_t    hFbcRegs;
-       drmSize         sFbcRegs;
-
-       drm_handle_t    hDacRegs;
-       drmSize         sDacRegs;
-
-       drm_handle_t    hSfb8r;
-       drmSize         sSfb8r;
-
-       drm_handle_t    hSfb32;
-       drmSize         sSfb32;
-
-       drm_handle_t    hSfb64;
-       drmSize         sSfb64;
-
-       /* Fastfill/Pagefill parameters. */
-       unsigned char   disable_pagefill;
-       int             fastfill_small_area;
-       int             pagefill_small_area;
-       int             fastfill_height;
-       int             fastfill_width;
-       int             pagefill_height;
-       int             pagefill_width;
-       short           Pf_AlignTab[0x800];
-} FFBDRIRec, *FFBDRIPtr;
-
-#endif /* !(_FFB_DRISHARE_H) */
diff --git a/src/mesa/drivers/dri/ffb/server/ffb_regs.h b/src/mesa/drivers/dri/ffb/server/ffb_regs.h
deleted file mode 100644 (file)
index bda5840..0000000
+++ /dev/null
@@ -1,508 +0,0 @@
-/*
- * Acceleration for the Creator and Creator3D framebuffer - register layout.
- *
- * Copyright (C) 1998,1999,2000 Jakub Jelinek (jakub@redhat.com)
- * Copyright (C) 1998 Michal Rehacek (majkl@iname.com)
- * Copyright (C) 1999 David S. Miller (davem@redhat.com)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * JAKUB JELINEK, MICHAL REHACEK, OR DAVID MILLER BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef FFBREGS_H
-#define FFBREGS_H
-
-/* Auxilliary clips. */
-typedef struct  {
-       volatile unsigned int min;
-       volatile unsigned int max;
-} ffb_auxclip, *ffb_auxclipPtr;
-
-/* FFB register set. */
-typedef struct _ffb_fbc {
-       /* Next vertex registers, on the right we list which drawops
-        * use said register and the logical name the register has in
-        * that context.
-        */                                     /* DESCRIPTION          DRAWOP(NAME)    */
-/*0x00*/unsigned int           pad1[3];        /* Reserved                             */
-/*0x0c*/volatile unsigned int  alpha;          /* ALPHA Transparency                   */
-/*0x10*/volatile unsigned int  red;            /* RED                                  */
-/*0x14*/volatile unsigned int  green;          /* GREEN                                */
-/*0x18*/volatile unsigned int  blue;           /* BLUE                                 */
-/*0x1c*/volatile unsigned int  z;              /* DEPTH                                */
-/*0x20*/volatile unsigned int  y;              /* Y                    triangle(DOYF)  */
-                                               /*                      aadot(DYF)      */
-                                               /*                      ddline(DYF)     */
-                                               /*                      aaline(DYF)     */
-/*0x24*/volatile unsigned int  x;              /* X                    triangle(DOXF)  */
-                                               /*                      aadot(DXF)      */
-                                               /*                      ddline(DXF)     */
-                                               /*                      aaline(DXF)     */
-/*0x28*/unsigned int           pad2[2];        /* Reserved                             */
-/*0x30*/volatile unsigned int  ryf;            /* Y (alias to DOYF)    ddline(RYF)     */
-                                               /*                      aaline(RYF)     */
-                                               /*                      triangle(RYF)   */
-/*0x34*/volatile unsigned int  rxf;            /* X                    ddline(RXF)     */
-                                               /*                      aaline(RXF)     */
-                                               /*                      triangle(RXF)   */
-/*0x38*/unsigned int           pad3[2];        /* Reserved                             */
-/*0x40*/volatile unsigned int  dmyf;           /* Y (alias to DOYF)    triangle(DMYF)  */
-/*0x44*/volatile unsigned int  dmxf;           /* X                    triangle(DMXF)  */
-/*0x48*/unsigned int           pad4[2];        /* Reserved                             */
-/*0x50*/volatile unsigned int  ebyi;           /* Y (alias to RYI)     polygon(EBYI)   */
-/*0x54*/volatile unsigned int  ebxi;           /* X                    polygon(EBXI)   */
-/*0x58*/unsigned int           pad5[2];        /* Reserved                             */
-/*0x60*/volatile unsigned int  by;             /* Y                    brline(RYI)     */
-                                               /*                      fastfill(OP)    */
-                                               /*                      polygon(YI)     */
-                                               /*                      rectangle(YI)   */
-                                               /*                      bcopy(SRCY)     */
-                                               /*                      vscroll(SRCY)   */
-/*0x64*/volatile unsigned int  bx;             /* X                    brline(RXI)     */
-                                               /*                      polygon(XI)     */
-                                               /*                      rectangle(XI)   */
-                                               /*                      bcopy(SRCX)     */
-                                               /*                      vscroll(SRCX)   */
-                                               /*                      fastfill(GO)    */
-/*0x68*/volatile unsigned int  dy;             /* destination Y        fastfill(DSTY)  */
-                                               /*                      bcopy(DSRY)     */
-                                               /*                      vscroll(DSRY)   */
-/*0x6c*/volatile unsigned int  dx;             /* destination X        fastfill(DSTX)  */
-                                               /*                      bcopy(DSTX)     */
-                                               /*                      vscroll(DSTX)   */
-/*0x70*/volatile unsigned int  bh;             /* Y (alias to RYI)     brline(DYI)     */
-                                               /*                      dot(DYI)        */
-                                               /*                      polygon(ETYI)   */
-                                               /* Height               fastfill(H)     */
-                                               /*                      bcopy(H)        */
-                                               /*                      vscroll(H)      */
-                                               /* Y count              fastfill(NY)    */
-/*0x74*/volatile unsigned int  bw;             /* X                    dot(DXI)        */
-                                               /*                      brline(DXI)     */
-                                               /*                      polygon(ETXI)   */
-                                               /*                      fastfill(W)     */
-                                               /*                      bcopy(W)        */
-                                               /*                      vscroll(W)      */
-                                               /*                      fastfill(NX)    */
-/*0x78*/unsigned int           pad6[2];        /* Reserved                             */
-/*0x80*/unsigned int           pad7[32];       /* Reserved                             */
-       
-       /* Setup Unit's vertex state register */
-/*100*/        volatile unsigned int   suvtx;
-/*104*/        unsigned int            pad8[63];       /* Reserved                             */
-       
-       /* Frame Buffer Control Registers */
-/*200*/        volatile unsigned int   ppc;            /* Pixel Processor Control              */
-/*204*/        volatile unsigned int   wid;            /* Current WID                          */
-/*208*/        volatile unsigned int   fg;             /* FG data                              */
-/*20c*/        volatile unsigned int   bg;             /* BG data                              */
-/*210*/        volatile unsigned int   consty;         /* Constant Y                           */
-/*214*/        volatile unsigned int   constz;         /* Constant Z                           */
-/*218*/        volatile unsigned int   xclip;          /* X Clip                               */
-/*21c*/        volatile unsigned int   dcss;           /* Depth Cue Scale Slope                */
-/*220*/        volatile unsigned int   vclipmin;       /* Viewclip XY Min Bounds               */
-/*224*/        volatile unsigned int   vclipmax;       /* Viewclip XY Max Bounds               */
-/*228*/        volatile unsigned int   vclipzmin;      /* Viewclip Z Min Bounds                */
-/*22c*/        volatile unsigned int   vclipzmax;      /* Viewclip Z Max Bounds                */
-/*230*/        volatile unsigned int   dcsf;           /* Depth Cue Scale Front Bound          */
-/*234*/        volatile unsigned int   dcsb;           /* Depth Cue Scale Back Bound           */
-/*238*/        volatile unsigned int   dczf;           /* Depth Cue Z Front                    */
-/*23c*/        volatile unsigned int   dczb;           /* Depth Cue Z Back                     */
-/*240*/        unsigned int            pad9;           /* Reserved                             */
-/*244*/        volatile unsigned int   blendc;         /* Alpha Blend Control                  */
-/*248*/        volatile unsigned int   blendc1;        /* Alpha Blend Color 1                  */
-/*24c*/        volatile unsigned int   blendc2;        /* Alpha Blend Color 2                  */
-/*250*/        volatile unsigned int   fbramitc;       /* FB RAM Interleave Test Control       */
-/*254*/        volatile unsigned int   fbc;            /* Frame Buffer Control                 */
-/*258*/        volatile unsigned int   rop;            /* Raster OPeration                     */
-/*25c*/        volatile unsigned int   cmp;            /* Frame Buffer Compare                 */
-/*260*/        volatile unsigned int   matchab;        /* Buffer AB Match Mask                 */
-/*264*/        volatile unsigned int   matchc;         /* Buffer C(YZ) Match Mask              */
-/*268*/        volatile unsigned int   magnab;         /* Buffer AB Magnitude Mask             */
-/*26c*/        volatile unsigned int   magnc;          /* Buffer C(YZ) Magnitude Mask          */
-/*270*/        volatile unsigned int   fbcfg0;         /* Frame Buffer Config 0                */
-/*274*/        volatile unsigned int   fbcfg1;         /* Frame Buffer Config 1                */
-/*278*/        volatile unsigned int   fbcfg2;         /* Frame Buffer Config 2                */
-/*27c*/        volatile unsigned int   fbcfg3;         /* Frame Buffer Config 3                */
-/*280*/        volatile unsigned int   ppcfg;          /* Pixel Processor Config               */
-/*284*/        volatile unsigned int   pick;           /* Picking Control                      */
-/*288*/        volatile unsigned int   fillmode;       /* FillMode                             */
-/*28c*/        volatile unsigned int   fbramwac;       /* FB RAM Write Address Control         */
-/*290*/        volatile unsigned int   pmask;          /* RGB PlaneMask                        */
-/*294*/        volatile unsigned int   xpmask;         /* X PlaneMask                          */
-/*298*/        volatile unsigned int   ypmask;         /* Y PlaneMask                          */
-/*29c*/        volatile unsigned int   zpmask;         /* Z PlaneMask                          */
-/*2a0*/        ffb_auxclip             auxclip[4];     /* Auxilliary Viewport Clip             */
-       
-       /* New 3dRAM III support regs */
-/*2c0*/        volatile unsigned int   rawblend2;
-/*2c4*/        volatile unsigned int   rawpreblend;
-/*2c8*/        volatile unsigned int   rawstencil;
-/*2cc*/        volatile unsigned int   rawstencilctl;
-/*2d0*/        volatile unsigned int   threedram1;
-/*2d4*/        volatile unsigned int   threedram2;
-/*2d8*/        volatile unsigned int   passin;
-/*2dc*/        volatile unsigned int   rawclrdepth;
-/*2e0*/        volatile unsigned int   rawpmask;
-/*2e4*/        volatile unsigned int   rawcsrc;
-/*2e8*/        volatile unsigned int   rawmatch;
-/*2ec*/        volatile unsigned int   rawmagn;
-/*2f0*/        volatile unsigned int   rawropblend;
-/*2f4*/        volatile unsigned int   rawcmp;
-/*2f8*/        volatile unsigned int   rawwac;
-/*2fc*/        volatile unsigned int   fbramid;
-       
-/*300*/        volatile unsigned int   drawop;         /* Draw OPeration                       */
-/*304*/        unsigned int            pad10[2];       /* Reserved                             */
-/*30c*/        volatile unsigned int   lpat;           /* Line Pattern control                 */
-/*310*/        unsigned int            pad11;          /* Reserved                             */
-/*314*/        volatile unsigned int   fontxy;         /* XY Font coordinate                   */
-/*318*/        volatile unsigned int   fontw;          /* Font Width                           */
-/*31c*/        volatile unsigned int   fontinc;        /* Font Increment                       */
-/*320*/        volatile unsigned int   font;           /* Font bits                            */
-/*324*/        unsigned int            pad12[3];       /* Reserved                             */
-/*330*/        volatile unsigned int   blend2;
-/*334*/        volatile unsigned int   preblend;
-/*338*/        volatile unsigned int   stencil;
-/*33c*/        volatile unsigned int   stencilctl;
-
-/*340*/        unsigned int            pad13[4];       /* Reserved                             */
-/*350*/        volatile unsigned int   dcss1;          /* Depth Cue Scale Slope 1              */
-/*354*/        volatile unsigned int   dcss2;          /* Depth Cue Scale Slope 2              */
-/*358*/        volatile unsigned int   dcss3;          /* Depth Cue Scale Slope 3              */
-/*35c*/        volatile unsigned int   widpmask;
-/*360*/        volatile unsigned int   dcs2;
-/*364*/        volatile unsigned int   dcs3;
-/*368*/        volatile unsigned int   dcs4;
-/*36c*/        unsigned int            pad14;          /* Reserved                             */
-/*370*/        volatile unsigned int   dcd2;
-/*374*/        volatile unsigned int   dcd3;
-/*378*/        volatile unsigned int   dcd4;
-/*37c*/        unsigned int            pad15;          /* Reserved                             */
-/*380*/        volatile unsigned int   pattern[32];    /* area Pattern                         */
-/*400*/        unsigned int            pad16[8];       /* Reserved                             */
-/*420*/        volatile unsigned int   reset;          /* chip RESET                           */
-/*424*/        unsigned int            pad17[247];     /* Reserved                             */
-/*800*/        volatile unsigned int   devid;          /* Device ID                            */
-/*804*/        unsigned int            pad18[63];      /* Reserved                             */
-/*900*/        volatile unsigned int   ucsr;           /* User Control & Status Register       */
-/*904*/        unsigned int            pad19[31];      /* Reserved                             */
-/*980*/        volatile unsigned int   mer;            /* Mode Enable Register                 */
-/*984*/        unsigned int            pad20[1439];    /* Reserved                             */
-} ffb_fbc, *ffb_fbcPtr;
-
-/* Draw operations */
-#define FFB_DRAWOP_DOT         0x00
-#define FFB_DRAWOP_AADOT       0x01
-#define FFB_DRAWOP_BRLINECAP   0x02
-#define FFB_DRAWOP_BRLINEOPEN  0x03
-#define FFB_DRAWOP_DDLINE      0x04
-#define FFB_DRAWOP_AALINE      0x05
-#define FFB_DRAWOP_TRIANGLE    0x06
-#define FFB_DRAWOP_POLYGON     0x07
-#define FFB_DRAWOP_RECTANGLE   0x08
-#define FFB_DRAWOP_FASTFILL    0x09
-#define FFB_DRAWOP_BCOPY       0x0a    /* Not implemented in any FFB, VIS is faster            */
-#define FFB_DRAWOP_VSCROLL     0x0b    /* Up to 12x faster than BCOPY, 3-4x faster than VIS    */
-
-/* FastFill operation codes. */
-#define FFB_FASTFILL_PAGE      0x01
-#define FFB_FASTFILL_BLOCK     0x02
-#define FFB_FASTFILL_COLOR_BLK 0x03
-#define FFB_FASTFILL_BLOCK_X   0x04
-
-/* Spanfill Unit Line Pattern */
-#define FFB_LPAT_SCALEPTR      0xf0000000
-#define FFB_LPAT_SCALEPTR_SHIFT        28
-#define FFB_LPAT_PATPTR                0x0f000000
-#define FFB_LPAT_PATPTR_SHIFT  24
-#define FFB_LPAT_SCALEVAL      0x00f00000
-#define FFB_LPAT_SCALEVAL_SHIFT        20
-#define FFB_LPAT_PATLEN                0x000f0000
-#define FFB_LPAT_PATLEN_SHIFT  16
-#define FFB_LPAT_PATTERN       0x0000ffff
-#define FFB_LPAT_PATTERN_SHIFT 0
-
-/* Pixel processor control */
-/* Force WID */
-#define FFB_PPC_FW_DISABLE     0x800000
-#define FFB_PPC_FW_ENABLE      0xc00000
-#define FFB_PPC_FW_MASK                0xc00000
-/* Auxiliary clip */
-#define FFB_PPC_ACE_DISABLE    0x040000
-#define FFB_PPC_ACE_AUX_SUB    0x080000
-#define FFB_PPC_ACE_AUX_ADD    0x0c0000
-#define FFB_PPC_ACE_MASK       0x0c0000
-/* Depth cue */
-#define FFB_PPC_DCE_DISABLE    0x020000
-#define FFB_PPC_DCE_ENABLE     0x030000
-#define FFB_PPC_DCE_MASK       0x030000
-/* Alpha blend */
-#define FFB_PPC_ABE_DISABLE    0x008000
-#define FFB_PPC_ABE_ENABLE     0x00c000
-#define FFB_PPC_ABE_MASK       0x00c000
-/* View clip */
-#define FFB_PPC_VCE_DISABLE    0x001000
-#define FFB_PPC_VCE_2D         0x002000
-#define FFB_PPC_VCE_3D         0x003000
-#define FFB_PPC_VCE_MASK       0x003000
-/* Area pattern */
-#define FFB_PPC_APE_DISABLE    0x000800
-#define FFB_PPC_APE_ENABLE     0x000c00
-#define FFB_PPC_APE_MASK       0x000c00
-/* Transparent background */
-#define FFB_PPC_TBE_OPAQUE     0x000200
-#define FFB_PPC_TBE_TRANSPARENT        0x000300
-#define FFB_PPC_TBE_MASK       0x000300
-/* Z source */
-#define FFB_PPC_ZS_VAR         0x000080
-#define FFB_PPC_ZS_CONST       0x0000c0
-#define FFB_PPC_ZS_MASK                0x0000c0
-/* Y source */
-#define FFB_PPC_YS_VAR         0x000020
-#define FFB_PPC_YS_CONST       0x000030
-#define FFB_PPC_YS_MASK                0x000030
-/* X source */
-#define FFB_PPC_XS_WID         0x000004
-#define FFB_PPC_XS_VAR         0x000008
-#define FFB_PPC_XS_CONST       0x00000c
-#define FFB_PPC_XS_MASK                0x00000c
-/* Color (BGR) source */
-#define FFB_PPC_CS_VAR         0x000002
-#define FFB_PPC_CS_CONST       0x000003
-#define FFB_PPC_CS_MASK                0x000003
-
-/* X Clip */
-#define FFB_XCLIP_XREF         0x000000ff
-#define FFB_XCLIP_TEST_MASK    0x00070000
-#define FFB_XCLIP_TEST_ALWAYS  0x00000000
-#define FFB_XCLIP_TEST_GT      0x00010000
-#define FFB_XCLIP_TEST_EQ      0x00020000
-#define FFB_XCLIP_TEST_GE      0x00030000
-#define FFB_XCLIP_TEST_NEVER   0x00040000
-#define FFB_XCLIP_TEST_LE      0x00050000
-#define FFB_XCLIP_TEST_NE      0x00060000
-#define FFB_XCLIP_TEST_LT      0x00070000
-
-/* FB Control register */
-/* Write buffer dest */
-#define FFB_FBC_WB_A           0x20000000
-#define FFB_FBC_WB_B           0x40000000
-#define FFB_FBC_WB_AB          0x60000000
-#define FFB_FBC_WB_C           0x80000000
-#define FFB_FBC_WB_AC          0xa0000000
-#define FFB_FBC_WB_BC          0xc0000000
-#define FFB_FBC_WB_ABC         0xe0000000
-#define FFB_FBC_WB_MASK                0xe0000000
-/* Write enable */
-#define FFB_FBC_WE_FORCEOFF    0x00100000
-#define FFB_FBC_WE_FORCEON     0x00200000
-#define FFB_FBC_WE_USE_WMASK   0x00300000
-#define FFB_FBC_WE_MASK                0x00300000
-/* Write group mode */
-#define FFB_FBC_WM_RSVD                0x00040000
-#define FFB_FBC_WM_COMBINED    0x00080000
-#define FFB_FBC_WM_SEPARATE    0x000c0000
-#define FFB_FBC_WM_MASK                0x000c0000
-/* Read buffer src */
-#define FFB_FBC_RB_A           0x00004000
-#define FFB_FBC_RB_B           0x00008000
-#define FFB_FBC_RB_C           0x0000c000
-#define FFB_FBC_RB_MASK                0x0000c000
-/* Stereo buf dest */
-#define FFB_FBC_SB_LEFT                0x00001000
-#define FFB_FBC_SB_RIGHT       0x00002000
-#define FFB_FBC_SB_BOTH                0x00003000
-#define FFB_FBC_SB_MASK                0x00003000
-/* Z plane group enable */
-#define FFB_FBC_ZE_OFF         0x00000400
-#define FFB_FBC_ZE_ON          0x00000800
-#define FFB_FBC_ZE_MASK                0x00000c00
-/* Y plane group enable */
-#define FFB_FBC_YE_OFF         0x00000100
-#define FFB_FBC_YE_ON          0x00000200
-#define FFB_FBC_YE_MASK                0x00000300
-/* X plane group enable */
-#define FFB_FBC_XE_OFF         0x00000040
-#define FFB_FBC_XE_ON          0x00000080
-#define FFB_FBC_XE_MASK                0x000000c0
-/* B plane group enable */
-#define FFB_FBC_BE_OFF         0x00000010
-#define FFB_FBC_BE_ON          0x00000020
-#define FFB_FBC_BE_MASK                0x00000030
-/* G plane group enable */
-#define FFB_FBC_GE_OFF         0x00000004
-#define FFB_FBC_GE_ON          0x00000008
-#define FFB_FBC_GE_MASK                0x0000000c
-/* R plane group enable */
-#define FFB_FBC_RE_OFF         0x00000001
-#define FFB_FBC_RE_ON          0x00000002
-#define FFB_FBC_RE_MASK                0x00000003
-/* Combined */
-#define FFB_FBC_RGBE_OFF       0x00000015
-#define FFB_FBC_RGBE_ON                0x0000002a
-#define FFB_FBC_RGBE_MASK      0x0000003f
-
-/* Raster OP */
-#define FFB_ROP_YZ_MASK                0x008f0000
-#define FFB_ROP_X_MASK         0x00008f00
-#define FFB_ROP_RGB_MASK       0x0000008f
-
-/* Now the rops themselves which get shifted into the
- * above fields.
- */
-#define FFB_ROP_EDIT_BIT       0x80
-#define FFB_ROP_ZERO           0x80
-#define FFB_ROP_NEW_AND_OLD    0x81
-#define FFB_ROP_NEW_AND_NOLD   0x82
-#define FFB_ROP_NEW            0x83
-#define FFB_ROP_NNEW_AND_OLD   0x84
-#define FFB_ROP_OLD            0x85
-#define FFB_ROP_NEW_XOR_OLD    0x86
-#define FFB_ROP_NEW_OR_OLD     0x87
-#define FFB_ROP_NNEW_AND_NOLD  0x88
-#define FFB_ROP_NNEW_XOR_NOLD  0x89
-#define FFB_ROP_NOLD           0x8a
-#define FFB_ROP_NEW_OR_NOLD    0x8b
-#define FFB_ROP_NNEW           0x8c
-#define FFB_ROP_NNEW_OR_OLD    0x8d
-#define FFB_ROP_NNEW_OR_NOLD   0x8e
-#define FFB_ROP_ONES           0x8f
-
-/* FB Compare */
-#define FFB_CMP_MATCHC_MASK    0x8f000000
-#define FFB_CMP_MAGNC_MASK     0x00870000
-#define FFB_CMP_MATCHAB_MASK   0x0000ff00
-#define FFB_CMP_MAGNAB_MASK    0x000000ff
-
-/* Compare Match codes */
-#define FFB_CMP_MATCH_EDIT_BIT 0x80
-#define FFB_CMP_MATCH_ALWAYS   0x80
-#define FFB_CMP_MATCH_NEVER    0x81
-#define FFB_CMP_MATCH_EQ       0x82
-#define FFB_CMP_MATCH_NE       0x83
-#define FFB_CMP_MATCH_A_ALWAYS 0xc0
-#define FFB_CMP_MATCH_B_ALWAYS 0xa0
-
-/* Compare Magnitude codes */
-#define FFB_CMP_MAGN_EDIT_BIT  0x80
-#define FFB_CMP_MAGN_ALWAYS    0x80
-#define FFB_CMP_MAGN_GT                0x81
-#define FFB_CMP_MAGN_EQ                0x82
-#define FFB_CMP_MAGN_GE                0x83
-#define FFB_CMP_MAGN_NEVER     0x84
-#define FFB_CMP_MAGN_LE                0x85
-#define FFB_CMP_MAGN_NE                0x86
-#define FFB_CMP_MAGN_LT                0x87
-#define FFB_CMP_MAGN_A_ALWAYS  0xc0
-#define FFB_CMP_MAGN_B_ALWAYS  0xa0
-
-/* User Control and Status */
-#define FFB_UCSR_FIFO_MASK     0x00000fff
-#define FFB_UCSR_PICK_NO_HIT   0x00020000
-#define FFB_UCSR_PICK_HIT      0x00030000
-#define FFB_UCSR_PICK_DISABLE  0x00080000
-#define FFB_UCSR_PICK_ENABLE   0x000c0000
-#define FFB_UCSR_FB_BUSY       0x01000000
-#define FFB_UCSR_RP_BUSY       0x02000000
-#define FFB_UCSR_ALL_BUSY      (FFB_UCSR_RP_BUSY|FFB_UCSR_FB_BUSY)
-#define FFB_UCSR_READ_ERR      0x40000000
-#define FFB_UCSR_FIFO_OVFL     0x80000000
-#define FFB_UCSR_ALL_ERRORS    (FFB_UCSR_READ_ERR|FFB_UCSR_FIFO_OVFL)
-
-/* Mode Enable Register */
-#define FFB_MER_EIRA           0x00000080 /* Enable read-ahead, increasing */
-#define FFB_MER_EDRA           0x000000c0 /* Enable read-ahead, decreasing */
-#define FFB_MER_DRA            0x00000040 /* No read-ahead */
-
-/* FBram Config 0 */
-#define FFB_FBCFG0_RFTIME      0xff800000
-#define FFB_FBCFG0_XMAX                0x007c0000
-#define FFB_FBCFG0_YMAX                0x0003ffc0
-#define FFB_FBCFG0_RES_MASK    0x00000030
-#define FFB_FBCFG0_RES_HIGH    0x00000030 /* 1920x1360 */
-#define FFB_FBCFG0_RES_STD     0x00000020 /* 1280x1024 */
-#define FFB_FBCFG0_RES_STEREO  0x00000010 /* 960x580 */
-#define FFB_FBCFG0_RES_PRTRAIT 0x00000000 /* 1280x2048 */
-#define FFB_FBCFG0_ITRLACE     0x00000000
-#define FFB_FBCFG0_SEQUENTIAL  0x00000008
-#define FFB_FBCFG0_DRENA       0x00000004
-#define FFB_FBCFG0_BPMODE      0x00000002
-#define FFB_FBCFG0_RFRSH_RST   0x00000001
-
-typedef struct _ffb_dac {
-       volatile unsigned int   cfg;
-       volatile unsigned int   cfgdata;
-       volatile unsigned int   cur;
-       volatile unsigned int   curdata;
-} ffb_dac, *ffb_dacPtr;
-
-/* Writing 2 32-bit registers at a time using 64-bit stores. -DaveM */
-#if defined(__GNUC__) && defined(USE_VIS)
-/* 64-bit register writing support.
- * Note: "lo" means "low address".
- */
-#define FFB_WRITE64_COMMON(__regp, __lo32, __hi32, REG0, REG1) \
-do {   __extension__ register unsigned int __r0 __asm__(""#REG0); \
-       __extension__ register unsigned int __r1 __asm__(""#REG1); \
-       __r0 = (__lo32); \
-       __r1 = (__hi32); \
-       __asm__ __volatile__ ("sllx\t%0, 32, %%g1\n\t" \
-                             "srl\t%1, 0, %1\n\t" \
-                             "or\t%%g1, %1, %%g1\n\t" \
-                             "stx\t%%g1, %2" \
-        : : "r" (__r0), "r" (__r1), "m" (*(__regp)) : "g1"); \
-} while(0)
-
-#define FFB_WRITE64P(__regp, __srcp) \
-do {   __asm__ __volatile__ ("ldx\t%0, %%g2;" \
-                             "stx\t%%g2, %1" \
-        : : "m" (*(__srcp)), "m" (*(__regp)) \
-         : "g2"); \
-} while(0)                           
-
-#define FFB_WRITE64(__regp, __lo32, __hi32) \
-       FFB_WRITE64_COMMON(__regp, __lo32, __hi32, g2, g3)
-#define FFB_WRITE64_2(__regp, __lo32, __hi32) \
-       FFB_WRITE64_COMMON(__regp, __lo32, __hi32, g4, g5)
-#define FFB_WRITE64_3(__regp, __lo32, __hi32) \
-       FFB_WRITE64_COMMON(__regp, __lo32, __hi32, o4, o5)
-
-#else /* Do not use 64-bit writes. */
-
-#define FFB_WRITE64(__regp, __lo32, __hi32) \
-do {   volatile unsigned int *__p = (__regp); \
-       *__p = (__lo32); \
-       *(__p + 1) = (__hi32); \
-} while(0)
-
-#define FFB_WRITE64P(__regp, __srcp) \
-do {   volatile unsigned int *__p = (__regp); \
-       unsigned int *__q = (__srcp); \
-       *__p = *__q; \
-       *(__p + 1) = *(__q + 1); \
-} while(0)
-
-#define FFB_WRITE64_2(__regp, __lo32, __hi32) \
-       FFB_WRITE64(__regp, __lo32, __hi32)
-#define FFB_WRITE64_3(__regp, __lo32, __hi32) \
-       FFB_WRITE64(__regp, __lo32, __hi32)
-#endif
-
-#endif /* FFBREGS_H */
diff --git a/src/mesa/drivers/dri/gamma/Makefile b/src/mesa/drivers/dri/gamma/Makefile
deleted file mode 100644 (file)
index 09df157..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# src/mesa/drivers/dri/gamma/Makefile
-
-TOP = ../../../../..
-include $(TOP)/configs/current
-
-LIBNAME = gamma_dri.so
-
-# Not yet
-# MINIGLX_SOURCES = server/gamma_dri.c 
-
-DRIVER_SOURCES = \
-       gamma_context.c \
-       gamma_dd.c \
-       gamma_inithw.c \
-       gamma_lock.c \
-       gamma_render.c \
-       gamma_screen.c \
-       gamma_span.c \
-       gamma_state.c \
-       gamma_tex.c \
-       gamma_texmem.c \
-       gamma_texstate.c \
-       gamma_tris.c \
-       gamma_vb.c \
-       gamma_xmesa.c
-
-C_SOURCES = \
-       $(COMMON_SOURCES) \
-       $(DRIVER_SOURCES)
-
-ASM_SOURCES = 
-
-include ../Makefile.template
-
diff --git a/src/mesa/drivers/dri/gamma/gamma_client.h b/src/mesa/drivers/dri/gamma/gamma_client.h
deleted file mode 100644 (file)
index 6dcf2e9..0000000
+++ /dev/null
@@ -1,6184 +0,0 @@
-/* Automaticallly generated -- do not edit */
-#ifndef _GLINT_CLIENT_H_
-#define _GLINT_CLIENT_H_
-/* **********************************************************************/
-/* START OF glint_extra.h INCLUSION                                     */
-/* **********************************************************************/
-
-/* glint_extra.h
- * Created: Fri Apr  2 23:32:05 1999 by faith@precisioninsight.com
- * Revised: Fri Apr  2 23:33:00 1999 by faith@precisioninsight.com
- *
- * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * 
- * 
- */
-
-#define AreaStippleEnable          0x00001
-#define LineStippleEnable          0x00002
-#define GResetLineStipple          0x00004
-#define FastFillEnable             0x00008
-#define PrimitiveLine              0x00000
-#define PrimitiveTrapezoid         0x00040
-#define PrimitivePoint             0x00080
-#define PrimitiveRectangle         0x000C0
-#define AntialiasEnable            0x00100
-#define AntialiasingQuality        0x00200
-#define UsePointTable              0x00400
-#define SyncOnBitMask              0x00800
-#define SyncOnHostData             0x01000
-#define TextureEnable              0x02000
-#define FogEnable                  0x04000
-#define CoverageEnable             0x08000
-#define SubPixelCorrectionEnable   0x10000
-#define SpanOperation              0x40000
-
-
-/* **********************************************************************/
-/* END OF glint_extra.h INCLUSION                                       */
-/* **********************************************************************/
-
-
-#define GlintResetStatus                              0x0000
-#define GlintResetStatusReg                                0
-#define GlintResetStatusOff                           0x0000
-#define GlintResetStatusSec                           0x0000
-#define GlintResetStatusSecReg                        2
-#define GlintResetStatusSecOff                        0x0000
-
-#define GlintIntEnable                                0x0008
-#define GlintIntEnableReg                                  0
-#define GlintIntEnableOff                             0x0008
-#define GlintIntEnableSec                             0x0008
-#define GlintIntEnableSecReg                          2
-#define GlintIntEnableSecOff                          0x0008
-
-#define GlintIntFlags                                 0x0010
-#define GlintIntFlagsReg                                   0
-#define GlintIntFlagsOff                              0x0010
-#define GlintIntFlagsSec                              0x0010
-#define GlintIntFlagsSecReg                           2
-#define GlintIntFlagsSecOff                           0x0010
-
-#define GlintInFIFOSpace                              0x0018
-#define GlintInFIFOSpaceReg                                0
-#define GlintInFIFOSpaceOff                           0x0018
-#define GlintInFIFOSpaceSec                           0x0018
-#define GlintInFIFOSpaceSecReg                        2
-#define GlintInFIFOSpaceSecOff                        0x0018
-
-#define GlintOutFIFOWords                             0x0020
-#define GlintOutFIFOWordsReg                               0
-#define GlintOutFIFOWordsOff                          0x0020
-#define GlintOutFIFOWordsSec                          0x0020
-#define GlintOutFIFOWordsSecReg                       2
-#define GlintOutFIFOWordsSecOff                       0x0020
-
-#define GlintDMAAddress                               0x0028
-#define GlintDMAAddressReg                                 0
-#define GlintDMAAddressOff                            0x0028
-#define GlintDMAAddressSec                            0x0028
-#define GlintDMAAddressSecReg                         2
-#define GlintDMAAddressSecOff                         0x0028
-
-#define GlintDMACount                                 0x0030
-#define GlintDMACountReg                                   0
-#define GlintDMACountOff                              0x0030
-#define GlintDMACountSec                              0x0030
-#define GlintDMACountSecReg                           2
-#define GlintDMACountSecOff                           0x0030
-
-#define GlintErrorFlags                               0x0038
-#define GlintErrorFlagsReg                                 0
-#define GlintErrorFlagsOff                            0x0038
-#define GlintErrorFlagsSec                            0x0038
-#define GlintErrorFlagsSecReg                         2
-#define GlintErrorFlagsSecOff                         0x0038
-
-#define GlintVClkCtl                                  0x0040
-#define GlintVClkCtlReg                                    0
-#define GlintVClkCtlOff                               0x0040
-#define GlintVClkCtlSec                               0x0040
-#define GlintVClkCtlSecReg                            2
-#define GlintVClkCtlSecOff                            0x0040
-
-#define GlintTestRegister                             0x0048
-#define GlintTestRegisterReg                               0
-#define GlintTestRegisterOff                          0x0048
-#define GlintTestRegisterSec                          0x0048
-#define GlintTestRegisterSecReg                       2
-#define GlintTestRegisterSecOff                       0x0048
-
-#define GlintAperture0                                0x0050
-#define GlintAperture0Reg                                  0
-#define GlintAperture0Off                             0x0050
-#define GlintAperture0Sec                             0x0050
-#define GlintAperture0SecReg                          2
-#define GlintAperture0SecOff                          0x0050
-
-#define GlintAperture1                                0x0058
-#define GlintAperture1Reg                                  0
-#define GlintAperture1Off                             0x0058
-#define GlintAperture1Sec                             0x0058
-#define GlintAperture1SecReg                          2
-#define GlintAperture1SecOff                          0x0058
-
-#define GlintDMAControl                               0x0060
-#define GlintDMAControlReg                                 0
-#define GlintDMAControlOff                            0x0060
-#define GlintDMAControlSec                            0x0060
-#define GlintDMAControlSecReg                         2
-#define GlintDMAControlSecOff                         0x0060
-
-#define GlintFIFODis                                  0x0068
-#define GlintFIFODisReg                                    0
-#define GlintFIFODisOff                               0x0068
-#define GlintFIFODisSec                               0x0068
-#define GlintFIFODisSecReg                            2
-#define GlintFIFODisSecOff                            0x0068
-
-#define GlintLBMemoryCtl                              0x1000
-#define GlintLBMemoryCtlReg                                1
-#define GlintLBMemoryCtlOff                           0x0000
-#define GlintLBMemoryCtlSec                           0x1000
-#define GlintLBMemoryCtlSecReg                        3
-#define GlintLBMemoryCtlSecOff                        0x0000
-
-#define GlintLBMemoryEDO                              0x1008
-#define GlintLBMemoryEDOReg                                1
-#define GlintLBMemoryEDOOff                           0x0008
-#define GlintLBMemoryEDOSec                           0x1008
-#define GlintLBMemoryEDOSecReg                        3
-#define GlintLBMemoryEDOSecOff                        0x0008
-
-#define GlintFBMemoryCtl                              0x1800
-#define GlintFBMemoryCtlReg                                1
-#define GlintFBMemoryCtlOff                           0x0800
-#define GlintFBMemoryCtlSec                           0x1800
-#define GlintFBMemoryCtlSecReg                        3
-#define GlintFBMemoryCtlSecOff                        0x0800
-
-#define GlintFBModeSel                                0x1808
-#define GlintFBModeSelReg                                  1
-#define GlintFBModeSelOff                             0x0808
-#define GlintFBModeSelSec                             0x1808
-#define GlintFBModeSelSecReg                          3
-#define GlintFBModeSelSecOff                          0x0808
-
-#define GlintFBGCWrMask                               0x1810
-#define GlintFBGCWrMaskReg                                 1
-#define GlintFBGCWrMaskOff                            0x0810
-#define GlintFBGCWrMaskSec                            0x1810
-#define GlintFBGCWrMaskSecReg                         3
-#define GlintFBGCWrMaskSecOff                         0x0810
-
-#define GlintFBGCColorLower                           0x1818
-#define GlintFBGCColorLowerReg                             1
-#define GlintFBGCColorLowerOff                        0x0818
-#define GlintFBGCColorLowerSec                        0x1818
-#define GlintFBGCColorLowerSecReg                     3
-#define GlintFBGCColorLowerSecOff                     0x0818
-
-#define GlintFBTXMemCtl                               0x1820
-#define GlintFBTXMemCtlReg                                 1
-#define GlintFBTXMemCtlOff                            0x0820
-#define GlintFBTXMemCtlSec                            0x1820
-#define GlintFBTXMemCtlSecReg                         3
-#define GlintFBTXMemCtlSecOff                         0x0820
-
-#define GlintFBWrMask                                 0x1830
-#define GlintFBWrMaskReg                                   1
-#define GlintFBWrMaskOff                              0x0830
-#define GlintFBWrMaskSec                              0x1830
-#define GlintFBWrMaskSecReg                           3
-#define GlintFBWrMaskSecOff                           0x0830
-
-#define GlintFBGCColorUpper                           0x1838
-#define GlintFBGCColorUpperReg                             1
-#define GlintFBGCColorUpperOff                        0x0838
-#define GlintFBGCColorUpperSec                        0x1838
-#define GlintFBGCColorUpperSecReg                     3
-#define GlintFBGCColorUpperSecOff                     0x0838
-
-#define GlintVTGHLimit                                0x3000
-#define GlintVTGHLimitReg                                  1
-#define GlintVTGHLimitOff                             0x2000
-#define GlintVTGHLimitSec                             0x3000
-#define GlintVTGHLimitSecReg                          3
-#define GlintVTGHLimitSecOff                          0x2000
-
-#define GlintVTGHSyncStart                            0x3008
-#define GlintVTGHSyncStartReg                              1
-#define GlintVTGHSyncStartOff                         0x2008
-#define GlintVTGHSyncStartSec                         0x3008
-#define GlintVTGHSyncStartSecReg                      3
-#define GlintVTGHSyncStartSecOff                      0x2008
-
-#define GlintVTGHSyncEnd                              0x3010
-#define GlintVTGHSyncEndReg                                1
-#define GlintVTGHSyncEndOff                           0x2010
-#define GlintVTGHSyncEndSec                           0x3010
-#define GlintVTGHSyncEndSecReg                        3
-#define GlintVTGHSyncEndSecOff                        0x2010
-
-#define GlintVTGHBlankEnd                             0x3018
-#define GlintVTGHBlankEndReg                               1
-#define GlintVTGHBlankEndOff                          0x2018
-#define GlintVTGHBlankEndSec                          0x3018
-#define GlintVTGHBlankEndSecReg                       3
-#define GlintVTGHBlankEndSecOff                       0x2018
-
-#define GlintVTGVLimit                                0x3020
-#define GlintVTGVLimitReg                                  1
-#define GlintVTGVLimitOff                             0x2020
-#define GlintVTGVLimitSec                             0x3020
-#define GlintVTGVLimitSecReg                          3
-#define GlintVTGVLimitSecOff                          0x2020
-
-#define GlintVTGVSyncStart                            0x3028
-#define GlintVTGVSyncStartReg                              1
-#define GlintVTGVSyncStartOff                         0x2028
-#define GlintVTGVSyncStartSec                         0x3028
-#define GlintVTGVSyncStartSecReg                      3
-#define GlintVTGVSyncStartSecOff                      0x2028
-
-#define GlintVTGVSyncEnd                              0x3030
-#define GlintVTGVSyncEndReg                                1
-#define GlintVTGVSyncEndOff                           0x2030
-#define GlintVTGVSyncEndSec                           0x3030
-#define GlintVTGVSyncEndSecReg                        3
-#define GlintVTGVSyncEndSecOff                        0x2030
-
-#define GlintVTGVBlankEnd                             0x3038
-#define GlintVTGVBlankEndReg                               1
-#define GlintVTGVBlankEndOff                          0x2038
-#define GlintVTGVBlankEndSec                          0x3038
-#define GlintVTGVBlankEndSecReg                       3
-#define GlintVTGVBlankEndSecOff                       0x2038
-
-#define GlintVTGHGateStart                            0x3040
-#define GlintVTGHGateStartReg                              1
-#define GlintVTGHGateStartOff                         0x2040
-#define GlintVTGHGateStartSec                         0x3040
-#define GlintVTGHGateStartSecReg                      3
-#define GlintVTGHGateStartSecOff                      0x2040
-
-#define GlintVTGHGateEnd                              0x3048
-#define GlintVTGHGateEndReg                                1
-#define GlintVTGHGateEndOff                           0x2048
-#define GlintVTGHGateEndSec                           0x3048
-#define GlintVTGHGateEndSecReg                        3
-#define GlintVTGHGateEndSecOff                        0x2048
-
-#define GlintVTGVGateStart                            0x3050
-#define GlintVTGVGateStartReg                              1
-#define GlintVTGVGateStartOff                         0x2050
-#define GlintVTGVGateStartSec                         0x3050
-#define GlintVTGVGateStartSecReg                      3
-#define GlintVTGVGateStartSecOff                      0x2050
-
-#define GlintVTGVGateEnd                              0x3058
-#define GlintVTGVGateEndReg                                1
-#define GlintVTGVGateEndOff                           0x2058
-#define GlintVTGVGateEndSec                           0x3058
-#define GlintVTGVGateEndSecReg                        3
-#define GlintVTGVGateEndSecOff                        0x2058
-
-#define GlintVTGPolarity                              0x3060
-#define GlintVTGPolarityReg                                1
-#define GlintVTGPolarityOff                           0x2060
-#define GlintVTGPolaritySec                           0x3060
-#define GlintVTGPolaritySecReg                        3
-#define GlintVTGPolaritySecOff                        0x2060
-
-#define GlintVTGFrameRowAddr                          0x3068
-#define GlintVTGFrameRowAddrReg                            1
-#define GlintVTGFrameRowAddrOff                       0x2068
-#define GlintVTGFrameRowAddrSec                       0x3068
-#define GlintVTGFrameRowAddrSecReg                    3
-#define GlintVTGFrameRowAddrSecOff                    0x2068
-
-#define GlintVTGVLineNumber                           0x3070
-#define GlintVTGVLineNumberReg                             1
-#define GlintVTGVLineNumberOff                        0x2070
-#define GlintVTGVLineNumberSec                        0x3070
-#define GlintVTGVLineNumberSecReg                     3
-#define GlintVTGVLineNumberSecOff                     0x2070
-
-#define GlintVTGSerialClk                             0x3078
-#define GlintVTGSerialClkReg                               1
-#define GlintVTGSerialClkOff                          0x2078
-#define GlintVTGSerialClkSec                          0x3078
-#define GlintVTGSerialClkSecReg                       3
-#define GlintVTGSerialClkSecOff                       0x2078
-
-#define GlintVTGModeCtl                               0x3080
-#define GlintVTGModeCtlReg                                 1
-#define GlintVTGModeCtlOff                            0x2080
-#define GlintVTGModeCtlSec                            0x3080
-#define GlintVTGModeCtlSecReg                         3
-#define GlintVTGModeCtlSecOff                         0x2080
-
-#define GlintOutputFIFO                               0x2000
-#define GlintOutputFIFOReg                                 1
-#define GlintOutputFIFOOff                            0x1000
-#define GlintOutputFIFOSec                            0x2000
-#define GlintOutputFIFOSecReg                         3
-#define GlintOutputFIFOSecOff                         0x1000
-
-#define GlintGInFIFOSpace                             0x0018
-#define GlintGInFIFOSpaceReg                               0
-#define GlintGInFIFOSpaceOff                          0x0018
-
-#define GlintGDMAAddress                              0x0028
-#define GlintGDMAAddressReg                                0
-#define GlintGDMAAddressOff                           0x0028
-
-#define GlintGDMACount                                0x0030
-#define GlintGDMACountReg                                  0
-#define GlintGDMACountOff                             0x0030
-
-#define GlintGDMAControl                              0x0060
-#define GlintGDMAControlReg                                0
-#define GlintGDMAControlOff                           0x0060
-
-#define GlintGOutDMA                                  0x0080
-#define GlintGOutDMAReg                                    0
-#define GlintGOutDMAOff                               0x0080
-
-#define GlintGOutDMACount                             0x0088
-#define GlintGOutDMACountReg                               0
-#define GlintGOutDMACountOff                          0x0088
-
-#define GlintGResetStatus                             0x0800
-#define GlintGResetStatusReg                               0
-#define GlintGResetStatusOff                          0x0800
-
-#define GlintGIntEnable                               0x0808
-#define GlintGIntEnableReg                                 0
-#define GlintGIntEnableOff                            0x0808
-
-#define GlintGIntFlags                                0x0810
-#define GlintGIntFlagsReg                                  0
-#define GlintGIntFlagsOff                             0x0810
-
-#define GlintGErrorFlags                              0x0838
-#define GlintGErrorFlagsReg                                0
-#define GlintGErrorFlagsOff                           0x0838
-
-#define GlintGTestRegister                            0x0848
-#define GlintGTestRegisterReg                              0
-#define GlintGTestRegisterOff                         0x0848
-
-#define GlintGFIFODis                                 0x0868
-#define GlintGFIFODisReg                                   0
-#define GlintGFIFODisOff                              0x0868
-
-#define GlintGChipConfig                              0x0870
-#define GlintGChipConfigReg                                0
-#define GlintGChipConfigOff                           0x0870
-
-#define GlintGCSRAperture                             0x0878
-#define GlintGCSRApertureReg                               0
-#define GlintGCSRApertureOff                          0x0878
-
-#define GlintGPageTableAddr                           0x0c00
-#define GlintGPageTableAddrReg                             0
-#define GlintGPageTableAddrOff                        0x0c00
-
-#define GlintGPageTableLength                         0x0c08
-#define GlintGPageTableLengthReg                           0
-#define GlintGPageTableLengthOff                      0x0c08
-
-#define GlintGDelayTimer                              0x0c38
-#define GlintGDelayTimerReg                                0
-#define GlintGDelayTimerOff                           0x0c38
-
-#define GlintGCommandMode                             0x0c40
-#define GlintGCommandModeReg                               0
-#define GlintGCommandModeOff                          0x0c40
-
-#define GlintGCommandIntEnable                        0x0c48
-#define GlintGCommandIntEnableReg                          0
-#define GlintGCommandIntEnableOff                     0x0c48
-
-#define GlintGCommandIntFlags                         0x0c50
-#define GlintGCommandIntFlagsReg                           0
-#define GlintGCommandIntFlagsOff                      0x0c50
-
-#define GlintGCommandErrorFlags                       0x0c58
-#define GlintGCommandErrorFlagsReg                         0
-#define GlintGCommandErrorFlagsOff                    0x0c58
-
-#define GlintGCommandStatus                           0x0c60
-#define GlintGCommandStatusReg                             0
-#define GlintGCommandStatusOff                        0x0c60
-
-#define GlintGCommandFaultingAddr                     0x0c68
-#define GlintGCommandFaultingAddrReg                       0
-#define GlintGCommandFaultingAddrOff                  0x0c68
-
-#define GlintGVertexFaultingAddr                      0x0c70
-#define GlintGVertexFaultingAddrReg                        0
-#define GlintGVertexFaultingAddrOff                   0x0c70
-
-#define GlintGWriteFaultingAddr                       0x0c88
-#define GlintGWriteFaultingAddrReg                         0
-#define GlintGWriteFaultingAddrOff                    0x0c88
-
-#define GlintGFeedbackSelectCount                     0x0c98
-#define GlintGFeedbackSelectCountReg                       0
-#define GlintGFeedbackSelectCountOff                  0x0c98
-
-#define GlintGGammaProcessorMode                      0x0cb8
-#define GlintGGammaProcessorModeReg                        0
-#define GlintGGammaProcessorModeOff                   0x0cb8
-
-#define GlintGVGAShadow                               0x0d00
-#define GlintGVGAShadowReg                                 0
-#define GlintGVGAShadowOff                            0x0d00
-
-#define GlintGMultGLINTAperture                       0x0d08
-#define GlintGMultGLINTApertureReg                         0
-#define GlintGMultGLINTApertureOff                    0x0d08
-
-#define GlintGMultGLINT1                              0x0d10
-#define GlintGMultGLINT1Reg                                0
-#define GlintGMultGLINT1Off                           0x0d10
-
-#define GlintGMultGLINT2                              0x0d18
-#define GlintGMultGLINT2Reg                                0
-#define GlintGMultGLINT2Off                           0x0d18
-
-#define GlintStartXDom                                0x8000
-#define GlintStartXDomTag                             0x0000
-#define GlintStartXDomReg                                  1
-#define GlintStartXDomOff                             0x7000
-#define GlintStartXDomSec                             0x8000
-#define GlintStartXDomSecReg                          3
-#define GlintStartXDomSecOff                          0x7000
-
-#define GlintdXDom                                    0x8008
-#define GlintdXDomTag                                 0x0001
-#define GlintdXDomReg                                      1
-#define GlintdXDomOff                                 0x7008
-#define GlintdXDomSec                                 0x8008
-#define GlintdXDomSecReg                              3
-#define GlintdXDomSecOff                              0x7008
-
-#define GlintStartXSub                                0x8010
-#define GlintStartXSubTag                             0x0002
-#define GlintStartXSubReg                                  1
-#define GlintStartXSubOff                             0x7010
-#define GlintStartXSubSec                             0x8010
-#define GlintStartXSubSecReg                          3
-#define GlintStartXSubSecOff                          0x7010
-
-#define GlintdXSub                                    0x8018
-#define GlintdXSubTag                                 0x0003
-#define GlintdXSubReg                                      1
-#define GlintdXSubOff                                 0x7018
-#define GlintdXSubSec                                 0x8018
-#define GlintdXSubSecReg                              3
-#define GlintdXSubSecOff                              0x7018
-
-#define GlintStartY                                   0x8020
-#define GlintStartYTag                                0x0004
-#define GlintStartYReg                                     1
-#define GlintStartYOff                                0x7020
-#define GlintStartYSec                                0x8020
-#define GlintStartYSecReg                             3
-#define GlintStartYSecOff                             0x7020
-
-#define GlintdY                                       0x8028
-#define GlintdYTag                                    0x0005
-#define GlintdYReg                                         1
-#define GlintdYOff                                    0x7028
-#define GlintdYSec                                    0x8028
-#define GlintdYSecReg                                 3
-#define GlintdYSecOff                                 0x7028
-
-#define GlintGLINTCount                               0x8030
-#define GlintGLINTCountTag                            0x0006
-#define GlintGLINTCountReg                                 1
-#define GlintGLINTCountOff                            0x7030
-#define GlintGLINTCountSec                            0x8030
-#define GlintGLINTCountSecReg                         3
-#define GlintGLINTCountSecOff                         0x7030
-
-#define GlintRender                                   0x8038
-#define GlintRenderTag                                0x0007
-#define GlintRenderReg                                     1
-#define GlintRenderOff                                0x7038
-#define GlintRenderSec                                0x8038
-#define GlintRenderSecReg                             3
-#define GlintRenderSecOff                             0x7038
-
-#define GlintContinueNewLine                          0x8040
-#define GlintContinueNewLineTag                       0x0008
-#define GlintContinueNewLineReg                            1
-#define GlintContinueNewLineOff                       0x7040
-#define GlintContinueNewLineSec                       0x8040
-#define GlintContinueNewLineSecReg                    3
-#define GlintContinueNewLineSecOff                    0x7040
-
-#define GlintContinueNewDom                           0x8048
-#define GlintContinueNewDomTag                        0x0009
-#define GlintContinueNewDomReg                             1
-#define GlintContinueNewDomOff                        0x7048
-#define GlintContinueNewDomSec                        0x8048
-#define GlintContinueNewDomSecReg                     3
-#define GlintContinueNewDomSecOff                     0x7048
-
-#define GlintContinueNewSub                           0x8050
-#define GlintContinueNewSubTag                        0x000a
-#define GlintContinueNewSubReg                             1
-#define GlintContinueNewSubOff                        0x7050
-#define GlintContinueNewSubSec                        0x8050
-#define GlintContinueNewSubSecReg                     3
-#define GlintContinueNewSubSecOff                     0x7050
-
-#define GlintContinue                                 0x8058
-#define GlintContinueTag                              0x000b
-#define GlintContinueReg                                   1
-#define GlintContinueOff                              0x7058
-#define GlintContinueSec                              0x8058
-#define GlintContinueSecReg                           3
-#define GlintContinueSecOff                           0x7058
-
-#define GlintFlushSpan                                0x8060
-#define GlintFlushSpanTag                             0x000c
-#define GlintFlushSpanReg                                  1
-#define GlintFlushSpanOff                             0x7060
-#define GlintFlushSpanSec                             0x8060
-#define GlintFlushSpanSecReg                          3
-#define GlintFlushSpanSecOff                          0x7060
-
-#define GlintBitMaskPattern                           0x8068
-#define GlintBitMaskPatternTag                        0x000d
-#define GlintBitMaskPatternReg                             1
-#define GlintBitMaskPatternOff                        0x7068
-#define GlintBitMaskPatternSec                        0x8068
-#define GlintBitMaskPatternSecReg                     3
-#define GlintBitMaskPatternSecOff                     0x7068
-
-#define GlintPointTable0                              0x8080
-#define GlintPointTable0Tag                           0x0010
-#define GlintPointTable0Reg                                1
-#define GlintPointTable0Off                           0x7080
-#define GlintPointTable0Sec                           0x8080
-#define GlintPointTable0SecReg                        3
-#define GlintPointTable0SecOff                        0x7080
-
-#define GlintPointTable1                              0x8088
-#define GlintPointTable1Tag                           0x0011
-#define GlintPointTable1Reg                                1
-#define GlintPointTable1Off                           0x7088
-#define GlintPointTable1Sec                           0x8088
-#define GlintPointTable1SecReg                        3
-#define GlintPointTable1SecOff                        0x7088
-
-#define GlintPointTable2                              0x8090
-#define GlintPointTable2Tag                           0x0012
-#define GlintPointTable2Reg                                1
-#define GlintPointTable2Off                           0x7090
-#define GlintPointTable2Sec                           0x8090
-#define GlintPointTable2SecReg                        3
-#define GlintPointTable2SecOff                        0x7090
-
-#define GlintPointTable3                              0x8098
-#define GlintPointTable3Tag                           0x0013
-#define GlintPointTable3Reg                                1
-#define GlintPointTable3Off                           0x7098
-#define GlintPointTable3Sec                           0x8098
-#define GlintPointTable3SecReg                        3
-#define GlintPointTable3SecOff                        0x7098
-
-#define GlintRasterizerMode                           0x80a0
-#define GlintRasterizerModeTag                        0x0014
-#define GlintRasterizerModeReg                             1
-#define GlintRasterizerModeOff                        0x70a0
-#define GlintRasterizerModeSec                        0x80a0
-#define GlintRasterizerModeSecReg                     3
-#define GlintRasterizerModeSecOff                     0x70a0
-
-#define GlintYLimits                                  0x80a8
-#define GlintYLimitsTag                               0x0015
-#define GlintYLimitsReg                                    1
-#define GlintYLimitsOff                               0x70a8
-#define GlintYLimitsSec                               0x80a8
-#define GlintYLimitsSecReg                            3
-#define GlintYLimitsSecOff                            0x70a8
-
-#define GlintScanLineOwnership                        0x80b0
-#define GlintScanLineOwnershipTag                     0x0016
-#define GlintScanLineOwnershipReg                          1
-#define GlintScanLineOwnershipOff                     0x70b0
-#define GlintScanLineOwnershipSec                     0x80b0
-#define GlintScanLineOwnershipSecReg                  3
-#define GlintScanLineOwnershipSecOff                  0x70b0
-
-#define GlintWaitForCompletion                        0x80b8
-#define GlintWaitForCompletionTag                     0x0017
-#define GlintWaitForCompletionReg                          1
-#define GlintWaitForCompletionOff                     0x70b8
-#define GlintWaitForCompletionSec                     0x80b8
-#define GlintWaitForCompletionSecReg                  3
-#define GlintWaitForCompletionSecOff                  0x70b8
-
-#define GlintPixelSize                                0x80c0
-#define GlintPixelSizeTag                             0x0018
-#define GlintPixelSizeReg                                  1
-#define GlintPixelSizeOff                             0x70c0
-#define GlintPixelSizeSec                             0x80c0
-#define GlintPixelSizeSecReg                          3
-#define GlintPixelSizeSecOff                          0x70c0
-
-#define GlintScissorMode                              0x8180
-#define GlintScissorModeTag                           0x0030
-#define GlintScissorModeReg                                1
-#define GlintScissorModeOff                           0x7180
-#define GlintScissorModeSec                           0x8180
-#define GlintScissorModeSecReg                        3
-#define GlintScissorModeSecOff                        0x7180
-
-#define GlintScissorMinXY                             0x8188
-#define GlintScissorMinXYTag                          0x0031
-#define GlintScissorMinXYReg                               1
-#define GlintScissorMinXYOff                          0x7188
-#define GlintScissorMinXYSec                          0x8188
-#define GlintScissorMinXYSecReg                       3
-#define GlintScissorMinXYSecOff                       0x7188
-
-#define GlintScissorMaxXY                             0x8190
-#define GlintScissorMaxXYTag                          0x0032
-#define GlintScissorMaxXYReg                               1
-#define GlintScissorMaxXYOff                          0x7190
-#define GlintScissorMaxXYSec                          0x8190
-#define GlintScissorMaxXYSecReg                       3
-#define GlintScissorMaxXYSecOff                       0x7190
-
-#define GlintScreenSize                               0x8198
-#define GlintScreenSizeTag                            0x0033
-#define GlintScreenSizeReg                                 1
-#define GlintScreenSizeOff                            0x7198
-#define GlintScreenSizeSec                            0x8198
-#define GlintScreenSizeSecReg                         3
-#define GlintScreenSizeSecOff                         0x7198
-
-#define GlintAreaStippleMode                          0x81a0
-#define GlintAreaStippleModeTag                       0x0034
-#define GlintAreaStippleModeReg                            1
-#define GlintAreaStippleModeOff                       0x71a0
-#define GlintAreaStippleModeSec                       0x81a0
-#define GlintAreaStippleModeSecReg                    3
-#define GlintAreaStippleModeSecOff                    0x71a0
-
-#define GlintLineStippleMode                          0x81a8
-#define GlintLineStippleModeTag                       0x0035
-#define GlintLineStippleModeReg                            1
-#define GlintLineStippleModeOff                       0x71a8
-#define GlintLineStippleModeSec                       0x81a8
-#define GlintLineStippleModeSecReg                    3
-#define GlintLineStippleModeSecOff                    0x71a8
-
-#define GlintLoadLineStippleCounters                  0x81b0
-#define GlintLoadLineStippleCountersTag               0x0036
-#define GlintLoadLineStippleCountersReg                    1
-#define GlintLoadLineStippleCountersOff               0x71b0
-#define GlintLoadLineStippleCountersSec               0x81b0
-#define GlintLoadLineStippleCountersSecReg            3
-#define GlintLoadLineStippleCountersSecOff            0x71b0
-
-#define GlintUpdateLineStippleCounters                0x81b8
-#define GlintUpdateLineStippleCountersTag             0x0037
-#define GlintUpdateLineStippleCountersReg                  1
-#define GlintUpdateLineStippleCountersOff             0x71b8
-#define GlintUpdateLineStippleCountersSec             0x81b8
-#define GlintUpdateLineStippleCountersSecReg          3
-#define GlintUpdateLineStippleCountersSecOff          0x71b8
-
-#define GlintSaveLineStippleState                     0x81c0
-#define GlintSaveLineStippleStateTag                  0x0038
-#define GlintSaveLineStippleStateReg                       1
-#define GlintSaveLineStippleStateOff                  0x71c0
-#define GlintSaveLineStippleStateSec                  0x81c0
-#define GlintSaveLineStippleStateSecReg               3
-#define GlintSaveLineStippleStateSecOff               0x71c0
-
-#define GlintWindowOrigin                             0x81c8
-#define GlintWindowOriginTag                          0x0039
-#define GlintWindowOriginReg                               1
-#define GlintWindowOriginOff                          0x71c8
-#define GlintWindowOriginSec                          0x81c8
-#define GlintWindowOriginSecReg                       3
-#define GlintWindowOriginSecOff                       0x71c8
-
-#define GlintAreaStipplePattern0                      0x8200
-#define GlintAreaStipplePattern0Tag                   0x0040
-#define GlintAreaStipplePattern0Reg                        1
-#define GlintAreaStipplePattern0Off                   0x7200
-#define GlintAreaStipplePattern0Sec                   0x8200
-#define GlintAreaStipplePattern0SecReg                3
-#define GlintAreaStipplePattern0SecOff                0x7200
-
-#define GlintAreaStipplePattern1                      0x8208
-#define GlintAreaStipplePattern1Tag                   0x0041
-#define GlintAreaStipplePattern1Reg                        1
-#define GlintAreaStipplePattern1Off                   0x7208
-#define GlintAreaStipplePattern1Sec                   0x8208
-#define GlintAreaStipplePattern1SecReg                3
-#define GlintAreaStipplePattern1SecOff                0x7208
-
-#define GlintAreaStipplePattern2                      0x8210
-#define GlintAreaStipplePattern2Tag                   0x0042
-#define GlintAreaStipplePattern2Reg                        1
-#define GlintAreaStipplePattern2Off                   0x7210
-#define GlintAreaStipplePattern2Sec                   0x8210
-#define GlintAreaStipplePattern2SecReg                3
-#define GlintAreaStipplePattern2SecOff                0x7210
-
-#define GlintAreaStipplePattern3                      0x8218
-#define GlintAreaStipplePattern3Tag                   0x0043
-#define GlintAreaStipplePattern3Reg                        1
-#define GlintAreaStipplePattern3Off                   0x7218
-#define GlintAreaStipplePattern3Sec                   0x8218
-#define GlintAreaStipplePattern3SecReg                3
-#define GlintAreaStipplePattern3SecOff                0x7218
-
-#define GlintAreaStipplePattern4                      0x8220
-#define GlintAreaStipplePattern4Tag                   0x0044
-#define GlintAreaStipplePattern4Reg                        1
-#define GlintAreaStipplePattern4Off                   0x7220
-#define GlintAreaStipplePattern4Sec                   0x8220
-#define GlintAreaStipplePattern4SecReg                3
-#define GlintAreaStipplePattern4SecOff                0x7220
-
-#define GlintAreaStipplePattern5                      0x8228
-#define GlintAreaStipplePattern5Tag                   0x0045
-#define GlintAreaStipplePattern5Reg                        1
-#define GlintAreaStipplePattern5Off                   0x7228
-#define GlintAreaStipplePattern5Sec                   0x8228
-#define GlintAreaStipplePattern5SecReg                3
-#define GlintAreaStipplePattern5SecOff                0x7228
-
-#define GlintAreaStipplePattern6                      0x8230
-#define GlintAreaStipplePattern6Tag                   0x0046
-#define GlintAreaStipplePattern6Reg                        1
-#define GlintAreaStipplePattern6Off                   0x7230
-#define GlintAreaStipplePattern6Sec                   0x8230
-#define GlintAreaStipplePattern6SecReg                3
-#define GlintAreaStipplePattern6SecOff                0x7230
-
-#define GlintAreaStipplePattern7                      0x8238
-#define GlintAreaStipplePattern7Tag                   0x0047
-#define GlintAreaStipplePattern7Reg                        1
-#define GlintAreaStipplePattern7Off                   0x7238
-#define GlintAreaStipplePattern7Sec                   0x8238
-#define GlintAreaStipplePattern7SecReg                3
-#define GlintAreaStipplePattern7SecOff                0x7238
-
-#define GlintAreaStipplePattern8                      0x8240
-#define GlintAreaStipplePattern8Tag                   0x0048
-#define GlintAreaStipplePattern8Reg                        1
-#define GlintAreaStipplePattern8Off                   0x7240
-#define GlintAreaStipplePattern8Sec                   0x8240
-#define GlintAreaStipplePattern8SecReg                3
-#define GlintAreaStipplePattern8SecOff                0x7240
-
-#define GlintAreaStipplePattern9                      0x8248
-#define GlintAreaStipplePattern9Tag                   0x0049
-#define GlintAreaStipplePattern9Reg                        1
-#define GlintAreaStipplePattern9Off                   0x7248
-#define GlintAreaStipplePattern9Sec                   0x8248
-#define GlintAreaStipplePattern9SecReg                3
-#define GlintAreaStipplePattern9SecOff                0x7248
-
-#define GlintAreaStipplePattern10                     0x8250
-#define GlintAreaStipplePattern10Tag                  0x004a
-#define GlintAreaStipplePattern10Reg                       1
-#define GlintAreaStipplePattern10Off                  0x7250
-#define GlintAreaStipplePattern10Sec                  0x8250
-#define GlintAreaStipplePattern10SecReg               3
-#define GlintAreaStipplePattern10SecOff               0x7250
-
-#define GlintAreaStipplePattern11                     0x8258
-#define GlintAreaStipplePattern11Tag                  0x004b
-#define GlintAreaStipplePattern11Reg                       1
-#define GlintAreaStipplePattern11Off                  0x7258
-#define GlintAreaStipplePattern11Sec                  0x8258
-#define GlintAreaStipplePattern11SecReg               3
-#define GlintAreaStipplePattern11SecOff               0x7258
-
-#define GlintAreaStipplePattern12                     0x8260
-#define GlintAreaStipplePattern12Tag                  0x004c
-#define GlintAreaStipplePattern12Reg                       1
-#define GlintAreaStipplePattern12Off                  0x7260
-#define GlintAreaStipplePattern12Sec                  0x8260
-#define GlintAreaStipplePattern12SecReg               3
-#define GlintAreaStipplePattern12SecOff               0x7260
-
-#define GlintAreaStipplePattern13                     0x8268
-#define GlintAreaStipplePattern13Tag                  0x004d
-#define GlintAreaStipplePattern13Reg                       1
-#define GlintAreaStipplePattern13Off                  0x7268
-#define GlintAreaStipplePattern13Sec                  0x8268
-#define GlintAreaStipplePattern13SecReg               3
-#define GlintAreaStipplePattern13SecOff               0x7268
-
-#define GlintAreaStipplePattern14                     0x8270
-#define GlintAreaStipplePattern14Tag                  0x004e
-#define GlintAreaStipplePattern14Reg                       1
-#define GlintAreaStipplePattern14Off                  0x7270
-#define GlintAreaStipplePattern14Sec                  0x8270
-#define GlintAreaStipplePattern14SecReg               3
-#define GlintAreaStipplePattern14SecOff               0x7270
-
-#define GlintAreaStipplePattern15                     0x8278
-#define GlintAreaStipplePattern15Tag                  0x004f
-#define GlintAreaStipplePattern15Reg                       1
-#define GlintAreaStipplePattern15Off                  0x7278
-#define GlintAreaStipplePattern15Sec                  0x8278
-#define GlintAreaStipplePattern15SecReg               3
-#define GlintAreaStipplePattern15SecOff               0x7278
-
-#define GlintAreaStipplePattern16                     0x8280
-#define GlintAreaStipplePattern16Tag                  0x0050
-#define GlintAreaStipplePattern16Reg                       1
-#define GlintAreaStipplePattern16Off                  0x7280
-#define GlintAreaStipplePattern16Sec                  0x8280
-#define GlintAreaStipplePattern16SecReg               3
-#define GlintAreaStipplePattern16SecOff               0x7280
-
-#define GlintAreaStipplePattern17                     0x8288
-#define GlintAreaStipplePattern17Tag                  0x0051
-#define GlintAreaStipplePattern17Reg                       1
-#define GlintAreaStipplePattern17Off                  0x7288
-#define GlintAreaStipplePattern17Sec                  0x8288
-#define GlintAreaStipplePattern17SecReg               3
-#define GlintAreaStipplePattern17SecOff               0x7288
-
-#define GlintAreaStipplePattern18                     0x8290
-#define GlintAreaStipplePattern18Tag                  0x0052
-#define GlintAreaStipplePattern18Reg                       1
-#define GlintAreaStipplePattern18Off                  0x7290
-#define GlintAreaStipplePattern18Sec                  0x8290
-#define GlintAreaStipplePattern18SecReg               3
-#define GlintAreaStipplePattern18SecOff               0x7290
-
-#define GlintAreaStipplePattern19                     0x8298
-#define GlintAreaStipplePattern19Tag                  0x0053
-#define GlintAreaStipplePattern19Reg                       1
-#define GlintAreaStipplePattern19Off                  0x7298
-#define GlintAreaStipplePattern19Sec                  0x8298
-#define GlintAreaStipplePattern19SecReg               3
-#define GlintAreaStipplePattern19SecOff               0x7298
-
-#define GlintAreaStipplePattern20                     0x82a0
-#define GlintAreaStipplePattern20Tag                  0x0054
-#define GlintAreaStipplePattern20Reg                       1
-#define GlintAreaStipplePattern20Off                  0x72a0
-#define GlintAreaStipplePattern20Sec                  0x82a0
-#define GlintAreaStipplePattern20SecReg               3
-#define GlintAreaStipplePattern20SecOff               0x72a0
-
-#define GlintAreaStipplePattern21                     0x82a8
-#define GlintAreaStipplePattern21Tag                  0x0055
-#define GlintAreaStipplePattern21Reg                       1
-#define GlintAreaStipplePattern21Off                  0x72a8
-#define GlintAreaStipplePattern21Sec                  0x82a8
-#define GlintAreaStipplePattern21SecReg               3
-#define GlintAreaStipplePattern21SecOff               0x72a8
-
-#define GlintAreaStipplePattern22                     0x82b0
-#define GlintAreaStipplePattern22Tag                  0x0056
-#define GlintAreaStipplePattern22Reg                       1
-#define GlintAreaStipplePattern22Off                  0x72b0
-#define GlintAreaStipplePattern22Sec                  0x82b0
-#define GlintAreaStipplePattern22SecReg               3
-#define GlintAreaStipplePattern22SecOff               0x72b0
-
-#define GlintAreaStipplePattern23                     0x82b8
-#define GlintAreaStipplePattern23Tag                  0x0057
-#define GlintAreaStipplePattern23Reg                       1
-#define GlintAreaStipplePattern23Off                  0x72b8
-#define GlintAreaStipplePattern23Sec                  0x82b8
-#define GlintAreaStipplePattern23SecReg               3
-#define GlintAreaStipplePattern23SecOff               0x72b8
-
-#define GlintAreaStipplePattern24                     0x82c0
-#define GlintAreaStipplePattern24Tag                  0x0058
-#define GlintAreaStipplePattern24Reg                       1
-#define GlintAreaStipplePattern24Off                  0x72c0
-#define GlintAreaStipplePattern24Sec                  0x82c0
-#define GlintAreaStipplePattern24SecReg               3
-#define GlintAreaStipplePattern24SecOff               0x72c0
-
-#define GlintAreaStipplePattern25                     0x82c8
-#define GlintAreaStipplePattern25Tag                  0x0059
-#define GlintAreaStipplePattern25Reg                       1
-#define GlintAreaStipplePattern25Off                  0x72c8
-#define GlintAreaStipplePattern25Sec                  0x82c8
-#define GlintAreaStipplePattern25SecReg               3
-#define GlintAreaStipplePattern25SecOff               0x72c8
-
-#define GlintAreaStipplePattern26                     0x82d0
-#define GlintAreaStipplePattern26Tag                  0x005a
-#define GlintAreaStipplePattern26Reg                       1
-#define GlintAreaStipplePattern26Off                  0x72d0
-#define GlintAreaStipplePattern26Sec                  0x82d0
-#define GlintAreaStipplePattern26SecReg               3
-#define GlintAreaStipplePattern26SecOff               0x72d0
-
-#define GlintAreaStipplePattern27                     0x82d8
-#define GlintAreaStipplePattern27Tag                  0x005b
-#define GlintAreaStipplePattern27Reg                       1
-#define GlintAreaStipplePattern27Off                  0x72d8
-#define GlintAreaStipplePattern27Sec                  0x82d8
-#define GlintAreaStipplePattern27SecReg               3
-#define GlintAreaStipplePattern27SecOff               0x72d8
-
-#define GlintAreaStipplePattern28                     0x82e0
-#define GlintAreaStipplePattern28Tag                  0x005c
-#define GlintAreaStipplePattern28Reg                       1
-#define GlintAreaStipplePattern28Off                  0x72e0
-#define GlintAreaStipplePattern28Sec                  0x82e0
-#define GlintAreaStipplePattern28SecReg               3
-#define GlintAreaStipplePattern28SecOff               0x72e0
-
-#define GlintAreaStipplePattern29                     0x82e8
-#define GlintAreaStipplePattern29Tag                  0x005d
-#define GlintAreaStipplePattern29Reg                       1
-#define GlintAreaStipplePattern29Off                  0x72e8
-#define GlintAreaStipplePattern29Sec                  0x82e8
-#define GlintAreaStipplePattern29SecReg               3
-#define GlintAreaStipplePattern29SecOff               0x72e8
-
-#define GlintAreaStipplePattern30                     0x82f0
-#define GlintAreaStipplePattern30Tag                  0x005e
-#define GlintAreaStipplePattern30Reg                       1
-#define GlintAreaStipplePattern30Off                  0x72f0
-#define GlintAreaStipplePattern30Sec                  0x82f0
-#define GlintAreaStipplePattern30SecReg               3
-#define GlintAreaStipplePattern30SecOff               0x72f0
-
-#define GlintAreaStipplePattern31                     0x82f8
-#define GlintAreaStipplePattern31Tag                  0x005f
-#define GlintAreaStipplePattern31Reg                       1
-#define GlintAreaStipplePattern31Off                  0x72f8
-#define GlintAreaStipplePattern31Sec                  0x82f8
-#define GlintAreaStipplePattern31SecReg               3
-#define GlintAreaStipplePattern31SecOff               0x72f8
-
-#define GlintRouterMode                               0x8840
-#define GlintRouterModeTag                            0x0108
-#define GlintRouterModeReg                                 1
-#define GlintRouterModeOff                            0x7840
-#define GlintRouterModeSec                            0x8840
-#define GlintRouterModeSecReg                         3
-#define GlintRouterModeSecOff                         0x7840
-
-#define GlintTextureAddressMode                       0x8380
-#define GlintTextureAddressModeTag                    0x0070
-#define GlintTextureAddressModeReg                         1
-#define GlintTextureAddressModeOff                    0x7380
-#define GlintTextureAddressModeSec                    0x8380
-#define GlintTextureAddressModeSecReg                 3
-#define GlintTextureAddressModeSecOff                 0x7380
-
-#define GlintSStart                                   0x8388
-#define GlintSStartTag                                0x0071
-#define GlintSStartReg                                     1
-#define GlintSStartOff                                0x7388
-#define GlintSStartSec                                0x8388
-#define GlintSStartSecReg                             3
-#define GlintSStartSecOff                             0x7388
-
-#define GlintdSdx                                     0x8390
-#define GlintdSdxTag                                  0x0072
-#define GlintdSdxReg                                       1
-#define GlintdSdxOff                                  0x7390
-#define GlintdSdxSec                                  0x8390
-#define GlintdSdxSecReg                               3
-#define GlintdSdxSecOff                               0x7390
-
-#define GlintdSdyDom                                  0x8398
-#define GlintdSdyDomTag                               0x0073
-#define GlintdSdyDomReg                                    1
-#define GlintdSdyDomOff                               0x7398
-#define GlintdSdyDomSec                               0x8398
-#define GlintdSdyDomSecReg                            3
-#define GlintdSdyDomSecOff                            0x7398
-
-#define GlintTStart                                   0x83a0
-#define GlintTStartTag                                0x0074
-#define GlintTStartReg                                     1
-#define GlintTStartOff                                0x73a0
-#define GlintTStartSec                                0x83a0
-#define GlintTStartSecReg                             3
-#define GlintTStartSecOff                             0x73a0
-
-#define GlintdTdx                                     0x83a8
-#define GlintdTdxTag                                  0x0075
-#define GlintdTdxReg                                       1
-#define GlintdTdxOff                                  0x73a8
-#define GlintdTdxSec                                  0x83a8
-#define GlintdTdxSecReg                               3
-#define GlintdTdxSecOff                               0x73a8
-
-#define GlintdTdyDom                                  0x83b0
-#define GlintdTdyDomTag                               0x0076
-#define GlintdTdyDomReg                                    1
-#define GlintdTdyDomOff                               0x73b0
-#define GlintdTdyDomSec                               0x83b0
-#define GlintdTdyDomSecReg                            3
-#define GlintdTdyDomSecOff                            0x73b0
-
-#define GlintQStart                                   0x83b8
-#define GlintQStartTag                                0x0077
-#define GlintQStartReg                                     1
-#define GlintQStartOff                                0x73b8
-#define GlintQStartSec                                0x83b8
-#define GlintQStartSecReg                             3
-#define GlintQStartSecOff                             0x73b8
-
-#define GlintdQdx                                     0x83c0
-#define GlintdQdxTag                                  0x0078
-#define GlintdQdxReg                                       1
-#define GlintdQdxOff                                  0x73c0
-#define GlintdQdxSec                                  0x83c0
-#define GlintdQdxSecReg                               3
-#define GlintdQdxSecOff                               0x73c0
-
-#define GlintdQdyDom                                  0x83c8
-#define GlintdQdyDomTag                               0x0079
-#define GlintdQdyDomReg                                    1
-#define GlintdQdyDomOff                               0x73c8
-#define GlintdQdyDomSec                               0x83c8
-#define GlintdQdyDomSecReg                            3
-#define GlintdQdyDomSecOff                            0x73c8
-
-#define GlintLOD                                      0x83d0
-#define GlintLODTag                                   0x007a
-#define GlintLODReg                                        1
-#define GlintLODOff                                   0x73d0
-#define GlintLODSec                                   0x83d0
-#define GlintLODSecReg                                3
-#define GlintLODSecOff                                0x73d0
-
-#define GlintdSdy                                     0x83d8
-#define GlintdSdyTag                                  0x007b
-#define GlintdSdyReg                                       1
-#define GlintdSdyOff                                  0x73d8
-#define GlintdSdySec                                  0x83d8
-#define GlintdSdySecReg                               3
-#define GlintdSdySecOff                               0x73d8
-
-#define GlintdTdy                                     0x83e0
-#define GlintdTdyTag                                  0x007c
-#define GlintdTdyReg                                       1
-#define GlintdTdyOff                                  0x73e0
-#define GlintdTdySec                                  0x83e0
-#define GlintdTdySecReg                               3
-#define GlintdTdySecOff                               0x73e0
-
-#define GlintdQdy                                     0x83e8
-#define GlintdQdyTag                                  0x007d
-#define GlintdQdyReg                                       1
-#define GlintdQdyOff                                  0x73e8
-#define GlintdQdySec                                  0x83e8
-#define GlintdQdySecReg                               3
-#define GlintdQdySecOff                               0x73e8
-
-#define GlintTextureReadMode                          0x8480
-#define GlintTextureReadModeTag                       0x0090
-#define GlintTextureReadModeReg                            1
-#define GlintTextureReadModeOff                       0x7480
-#define GlintTextureReadModeSec                       0x8480
-#define GlintTextureReadModeSecReg                    3
-#define GlintTextureReadModeSecOff                    0x7480
-
-#define GlintTextureFormat                            0x8488
-#define GlintTextureFormatTag                         0x0091
-#define GlintTextureFormatReg                              1
-#define GlintTextureFormatOff                         0x7488
-#define GlintTextureFormatSec                         0x8488
-#define GlintTextureFormatSecReg                      3
-#define GlintTextureFormatSecOff                      0x7488
-
-#define GlintTextureCacheControl                      0x8490
-#define GlintTextureCacheControlTag                   0x0092
-#define GlintTextureCacheControlReg                        1
-#define GlintTextureCacheControlOff                   0x7490
-#define GlintTextureCacheControlSec                   0x8490
-#define GlintTextureCacheControlSecReg                3
-#define GlintTextureCacheControlSecOff                0x7490
-
-#define GlintGLINTBorderColor                         0x84a8
-#define GlintGLINTBorderColorTag                      0x0095
-#define GlintGLINTBorderColorReg                           1
-#define GlintGLINTBorderColorOff                      0x74a8
-#define GlintGLINTBorderColorSec                      0x84a8
-#define GlintGLINTBorderColorSecReg                   3
-#define GlintGLINTBorderColorSecOff                   0x74a8
-
-#define GlintTexelLUTIndex                            0x84c0
-#define GlintTexelLUTIndexTag                         0x0098
-#define GlintTexelLUTIndexReg                              1
-#define GlintTexelLUTIndexOff                         0x74c0
-#define GlintTexelLUTIndexSec                         0x84c0
-#define GlintTexelLUTIndexSecReg                      3
-#define GlintTexelLUTIndexSecOff                      0x74c0
-
-#define GlintTexelLUTData                             0x84c8
-#define GlintTexelLUTDataTag                          0x0099
-#define GlintTexelLUTDataReg                               1
-#define GlintTexelLUTDataOff                          0x74c8
-#define GlintTexelLUTDataSec                          0x84c8
-#define GlintTexelLUTDataSecReg                       3
-#define GlintTexelLUTDataSecOff                       0x74c8
-
-#define GlintTexelLUTAddress                          0x84d0
-#define GlintTexelLUTAddressTag                       0x009a
-#define GlintTexelLUTAddressReg                            1
-#define GlintTexelLUTAddressOff                       0x74d0
-#define GlintTexelLUTAddressSec                       0x84d0
-#define GlintTexelLUTAddressSecReg                    3
-#define GlintTexelLUTAddressSecOff                    0x74d0
-
-#define GlintTexelLUTTransfer                         0x84d8
-#define GlintTexelLUTTransferTag                      0x009b
-#define GlintTexelLUTTransferReg                           1
-#define GlintTexelLUTTransferOff                      0x74d8
-#define GlintTexelLUTTransferSec                      0x84d8
-#define GlintTexelLUTTransferSecReg                   3
-#define GlintTexelLUTTransferSecOff                   0x74d8
-
-#define GlintTextureFilterMode                        0x84e0
-#define GlintTextureFilterModeTag                     0x009c
-#define GlintTextureFilterModeReg                          1
-#define GlintTextureFilterModeOff                     0x74e0
-#define GlintTextureFilterModeSec                     0x84e0
-#define GlintTextureFilterModeSecReg                  3
-#define GlintTextureFilterModeSecOff                  0x74e0
-
-#define GlintTextureChromaUpper                       0x84e8
-#define GlintTextureChromaUpperTag                    0x009d
-#define GlintTextureChromaUpperReg                         1
-#define GlintTextureChromaUpperOff                    0x74e8
-#define GlintTextureChromaUpperSec                    0x84e8
-#define GlintTextureChromaUpperSecReg                 3
-#define GlintTextureChromaUpperSecOff                 0x74e8
-
-#define GlintTextureChromaLower                       0x84f0
-#define GlintTextureChromaLowerTag                    0x009e
-#define GlintTextureChromaLowerReg                         1
-#define GlintTextureChromaLowerOff                    0x74f0
-#define GlintTextureChromaLowerSec                    0x84f0
-#define GlintTextureChromaLowerSecReg                 3
-#define GlintTextureChromaLowerSecOff                 0x74f0
-
-#define GlintTxBaseAddr0                              0x8500
-#define GlintTxBaseAddr0Tag                           0x00a0
-#define GlintTxBaseAddr0Reg                                1
-#define GlintTxBaseAddr0Off                           0x7500
-#define GlintTxBaseAddr0Sec                           0x8500
-#define GlintTxBaseAddr0SecReg                        3
-#define GlintTxBaseAddr0SecOff                        0x7500
-
-#define GlintTxBaseAddr1                              0x8508
-#define GlintTxBaseAddr1Tag                           0x00a1
-#define GlintTxBaseAddr1Reg                                1
-#define GlintTxBaseAddr1Off                           0x7508
-#define GlintTxBaseAddr1Sec                           0x8508
-#define GlintTxBaseAddr1SecReg                        3
-#define GlintTxBaseAddr1SecOff                        0x7508
-
-#define GlintTxBaseAddr2                              0x8510
-#define GlintTxBaseAddr2Tag                           0x00a2
-#define GlintTxBaseAddr2Reg                                1
-#define GlintTxBaseAddr2Off                           0x7510
-#define GlintTxBaseAddr2Sec                           0x8510
-#define GlintTxBaseAddr2SecReg                        3
-#define GlintTxBaseAddr2SecOff                        0x7510
-
-#define GlintTxBaseAddr3                              0x8518
-#define GlintTxBaseAddr3Tag                           0x00a3
-#define GlintTxBaseAddr3Reg                                1
-#define GlintTxBaseAddr3Off                           0x7518
-#define GlintTxBaseAddr3Sec                           0x8518
-#define GlintTxBaseAddr3SecReg                        3
-#define GlintTxBaseAddr3SecOff                        0x7518
-
-#define GlintTxBaseAddr4                              0x8520
-#define GlintTxBaseAddr4Tag                           0x00a4
-#define GlintTxBaseAddr4Reg                                1
-#define GlintTxBaseAddr4Off                           0x7520
-#define GlintTxBaseAddr4Sec                           0x8520
-#define GlintTxBaseAddr4SecReg                        3
-#define GlintTxBaseAddr4SecOff                        0x7520
-
-#define GlintTxBaseAddr5                              0x8528
-#define GlintTxBaseAddr5Tag                           0x00a5
-#define GlintTxBaseAddr5Reg                                1
-#define GlintTxBaseAddr5Off                           0x7528
-#define GlintTxBaseAddr5Sec                           0x8528
-#define GlintTxBaseAddr5SecReg                        3
-#define GlintTxBaseAddr5SecOff                        0x7528
-
-#define GlintTxBaseAddr6                              0x8530
-#define GlintTxBaseAddr6Tag                           0x00a6
-#define GlintTxBaseAddr6Reg                                1
-#define GlintTxBaseAddr6Off                           0x7530
-#define GlintTxBaseAddr6Sec                           0x8530
-#define GlintTxBaseAddr6SecReg                        3
-#define GlintTxBaseAddr6SecOff                        0x7530
-
-#define GlintTxBaseAddr7                              0x8538
-#define GlintTxBaseAddr7Tag                           0x00a7
-#define GlintTxBaseAddr7Reg                                1
-#define GlintTxBaseAddr7Off                           0x7538
-#define GlintTxBaseAddr7Sec                           0x8538
-#define GlintTxBaseAddr7SecReg                        3
-#define GlintTxBaseAddr7SecOff                        0x7538
-
-#define GlintTxBaseAddr8                              0x8540
-#define GlintTxBaseAddr8Tag                           0x00a8
-#define GlintTxBaseAddr8Reg                                1
-#define GlintTxBaseAddr8Off                           0x7540
-#define GlintTxBaseAddr8Sec                           0x8540
-#define GlintTxBaseAddr8SecReg                        3
-#define GlintTxBaseAddr8SecOff                        0x7540
-
-#define GlintTxBaseAddr9                              0x8548
-#define GlintTxBaseAddr9Tag                           0x00a9
-#define GlintTxBaseAddr9Reg                                1
-#define GlintTxBaseAddr9Off                           0x7548
-#define GlintTxBaseAddr9Sec                           0x8548
-#define GlintTxBaseAddr9SecReg                        3
-#define GlintTxBaseAddr9SecOff                        0x7548
-
-#define GlintTxBaseAddr10                             0x8550
-#define GlintTxBaseAddr10Tag                          0x00aa
-#define GlintTxBaseAddr10Reg                               1
-#define GlintTxBaseAddr10Off                          0x7550
-#define GlintTxBaseAddr10Sec                          0x8550
-#define GlintTxBaseAddr10SecReg                       3
-#define GlintTxBaseAddr10SecOff                       0x7550
-
-#define GlintTxBaseAddr11                             0x8558
-#define GlintTxBaseAddr11Tag                          0x00ab
-#define GlintTxBaseAddr11Reg                               1
-#define GlintTxBaseAddr11Off                          0x7558
-#define GlintTxBaseAddr11Sec                          0x8558
-#define GlintTxBaseAddr11SecReg                       3
-#define GlintTxBaseAddr11SecOff                       0x7558
-
-#define GlintTxBaseAddr12                             0x8560
-#define GlintTxBaseAddr12Tag                          0x00ac
-#define GlintTxBaseAddr12Reg                               1
-#define GlintTxBaseAddr12Off                          0x7560
-#define GlintTxBaseAddr12Sec                          0x8560
-#define GlintTxBaseAddr12SecReg                       3
-#define GlintTxBaseAddr12SecOff                       0x7560
-
-#define GlintTexelLUT0                                0x8e80
-#define GlintTexelLUT0Tag                             0x01d0
-#define GlintTexelLUT0Reg                                  1
-#define GlintTexelLUT0Off                             0x7e80
-#define GlintTexelLUT0Sec                             0x8e80
-#define GlintTexelLUT0SecReg                          3
-#define GlintTexelLUT0SecOff                          0x7e80
-
-#define GlintTexelLUT1                                0x8e88
-#define GlintTexelLUT1Tag                             0x01d1
-#define GlintTexelLUT1Reg                                  1
-#define GlintTexelLUT1Off                             0x7e88
-#define GlintTexelLUT1Sec                             0x8e88
-#define GlintTexelLUT1SecReg                          3
-#define GlintTexelLUT1SecOff                          0x7e88
-
-#define GlintTexelLUT2                                0x8e90
-#define GlintTexelLUT2Tag                             0x01d2
-#define GlintTexelLUT2Reg                                  1
-#define GlintTexelLUT2Off                             0x7e90
-#define GlintTexelLUT2Sec                             0x8e90
-#define GlintTexelLUT2SecReg                          3
-#define GlintTexelLUT2SecOff                          0x7e90
-
-#define GlintTexelLUT3                                0x8e98
-#define GlintTexelLUT3Tag                             0x01d3
-#define GlintTexelLUT3Reg                                  1
-#define GlintTexelLUT3Off                             0x7e98
-#define GlintTexelLUT3Sec                             0x8e98
-#define GlintTexelLUT3SecReg                          3
-#define GlintTexelLUT3SecOff                          0x7e98
-
-#define GlintTexelLUT4                                0x8ea0
-#define GlintTexelLUT4Tag                             0x01d4
-#define GlintTexelLUT4Reg                                  1
-#define GlintTexelLUT4Off                             0x7ea0
-#define GlintTexelLUT4Sec                             0x8ea0
-#define GlintTexelLUT4SecReg                          3
-#define GlintTexelLUT4SecOff                          0x7ea0
-
-#define GlintTexelLUT5                                0x8ea8
-#define GlintTexelLUT5Tag                             0x01d5
-#define GlintTexelLUT5Reg                                  1
-#define GlintTexelLUT5Off                             0x7ea8
-#define GlintTexelLUT5Sec                             0x8ea8
-#define GlintTexelLUT5SecReg                          3
-#define GlintTexelLUT5SecOff                          0x7ea8
-
-#define GlintTexelLUT6                                0x8eb0
-#define GlintTexelLUT6Tag                             0x01d6
-#define GlintTexelLUT6Reg                                  1
-#define GlintTexelLUT6Off                             0x7eb0
-#define GlintTexelLUT6Sec                             0x8eb0
-#define GlintTexelLUT6SecReg                          3
-#define GlintTexelLUT6SecOff                          0x7eb0
-
-#define GlintTexelLUT7                                0x8eb8
-#define GlintTexelLUT7Tag                             0x01d7
-#define GlintTexelLUT7Reg                                  1
-#define GlintTexelLUT7Off                             0x7eb8
-#define GlintTexelLUT7Sec                             0x8eb8
-#define GlintTexelLUT7SecReg                          3
-#define GlintTexelLUT7SecOff                          0x7eb8
-
-#define GlintTexelLUT8                                0x8ec0
-#define GlintTexelLUT8Tag                             0x01d8
-#define GlintTexelLUT8Reg                                  1
-#define GlintTexelLUT8Off                             0x7ec0
-#define GlintTexelLUT8Sec                             0x8ec0
-#define GlintTexelLUT8SecReg                          3
-#define GlintTexelLUT8SecOff                          0x7ec0
-
-#define GlintTexelLUT9                                0x8ec8
-#define GlintTexelLUT9Tag                             0x01d9
-#define GlintTexelLUT9Reg                                  1
-#define GlintTexelLUT9Off                             0x7ec8
-#define GlintTexelLUT9Sec                             0x8ec8
-#define GlintTexelLUT9SecReg                          3
-#define GlintTexelLUT9SecOff                          0x7ec8
-
-#define GlintTexelLUT10                               0x8ed0
-#define GlintTexelLUT10Tag                            0x01da
-#define GlintTexelLUT10Reg                                 1
-#define GlintTexelLUT10Off                            0x7ed0
-#define GlintTexelLUT10Sec                            0x8ed0
-#define GlintTexelLUT10SecReg                         3
-#define GlintTexelLUT10SecOff                         0x7ed0
-
-#define GlintTexelLUT11                               0x8ed8
-#define GlintTexelLUT11Tag                            0x01db
-#define GlintTexelLUT11Reg                                 1
-#define GlintTexelLUT11Off                            0x7ed8
-#define GlintTexelLUT11Sec                            0x8ed8
-#define GlintTexelLUT11SecReg                         3
-#define GlintTexelLUT11SecOff                         0x7ed8
-
-#define GlintTexelLUT12                               0x8ee0
-#define GlintTexelLUT12Tag                            0x01dc
-#define GlintTexelLUT12Reg                                 1
-#define GlintTexelLUT12Off                            0x7ee0
-#define GlintTexelLUT12Sec                            0x8ee0
-#define GlintTexelLUT12SecReg                         3
-#define GlintTexelLUT12SecOff                         0x7ee0
-
-#define GlintTexelLUT13                               0x8ee8
-#define GlintTexelLUT13Tag                            0x01dd
-#define GlintTexelLUT13Reg                                 1
-#define GlintTexelLUT13Off                            0x7ee8
-#define GlintTexelLUT13Sec                            0x8ee8
-#define GlintTexelLUT13SecReg                         3
-#define GlintTexelLUT13SecOff                         0x7ee8
-
-#define GlintTexelLUT14                               0x8ef0
-#define GlintTexelLUT14Tag                            0x01de
-#define GlintTexelLUT14Reg                                 1
-#define GlintTexelLUT14Off                            0x7ef0
-#define GlintTexelLUT14Sec                            0x8ef0
-#define GlintTexelLUT14SecReg                         3
-#define GlintTexelLUT14SecOff                         0x7ef0
-
-#define GlintTexelLUT15                               0x8ef8
-#define GlintTexelLUT15Tag                            0x01df
-#define GlintTexelLUT15Reg                                 1
-#define GlintTexelLUT15Off                            0x7ef8
-#define GlintTexelLUT15Sec                            0x8ef8
-#define GlintTexelLUT15SecReg                         3
-#define GlintTexelLUT15SecOff                         0x7ef8
-
-#define GlintTexel0                                   0x8600
-#define GlintTexel0Tag                                0x00c0
-#define GlintTexel0Reg                                     1
-#define GlintTexel0Off                                0x7600
-#define GlintTexel0Sec                                0x8600
-#define GlintTexel0SecReg                             3
-#define GlintTexel0SecOff                             0x7600
-
-#define GlintTexel1                                   0x8608
-#define GlintTexel1Tag                                0x00c1
-#define GlintTexel1Reg                                     1
-#define GlintTexel1Off                                0x7608
-#define GlintTexel1Sec                                0x8608
-#define GlintTexel1SecReg                             3
-#define GlintTexel1SecOff                             0x7608
-
-#define GlintTexel2                                   0x8610
-#define GlintTexel2Tag                                0x00c2
-#define GlintTexel2Reg                                     1
-#define GlintTexel2Off                                0x7610
-#define GlintTexel2Sec                                0x8610
-#define GlintTexel2SecReg                             3
-#define GlintTexel2SecOff                             0x7610
-
-#define GlintTexel3                                   0x8618
-#define GlintTexel3Tag                                0x00c3
-#define GlintTexel3Reg                                     1
-#define GlintTexel3Off                                0x7618
-#define GlintTexel3Sec                                0x8618
-#define GlintTexel3SecReg                             3
-#define GlintTexel3SecOff                             0x7618
-
-#define GlintTexel4                                   0x8620
-#define GlintTexel4Tag                                0x00c4
-#define GlintTexel4Reg                                     1
-#define GlintTexel4Off                                0x7620
-#define GlintTexel4Sec                                0x8620
-#define GlintTexel4SecReg                             3
-#define GlintTexel4SecOff                             0x7620
-
-#define GlintTexel5                                   0x8628
-#define GlintTexel5Tag                                0x00c5
-#define GlintTexel5Reg                                     1
-#define GlintTexel5Off                                0x7628
-#define GlintTexel5Sec                                0x8628
-#define GlintTexel5SecReg                             3
-#define GlintTexel5SecOff                             0x7628
-
-#define GlintTexel6                                   0x8630
-#define GlintTexel6Tag                                0x00c6
-#define GlintTexel6Reg                                     1
-#define GlintTexel6Off                                0x7630
-#define GlintTexel6Sec                                0x8630
-#define GlintTexel6SecReg                             3
-#define GlintTexel6SecOff                             0x7630
-
-#define GlintTexel7                                   0x8638
-#define GlintTexel7Tag                                0x00c7
-#define GlintTexel7Reg                                     1
-#define GlintTexel7Off                                0x7638
-#define GlintTexel7Sec                                0x8638
-#define GlintTexel7SecReg                             3
-#define GlintTexel7SecOff                             0x7638
-
-#define GlintInterp0                                  0x8640
-#define GlintInterp0Tag                               0x00c8
-#define GlintInterp0Reg                                    1
-#define GlintInterp0Off                               0x7640
-#define GlintInterp0Sec                               0x8640
-#define GlintInterp0SecReg                            3
-#define GlintInterp0SecOff                            0x7640
-
-#define GlintInterp1                                  0x8648
-#define GlintInterp1Tag                               0x00c9
-#define GlintInterp1Reg                                    1
-#define GlintInterp1Off                               0x7648
-#define GlintInterp1Sec                               0x8648
-#define GlintInterp1SecReg                            3
-#define GlintInterp1SecOff                            0x7648
-
-#define GlintInterp2                                  0x8650
-#define GlintInterp2Tag                               0x00ca
-#define GlintInterp2Reg                                    1
-#define GlintInterp2Off                               0x7650
-#define GlintInterp2Sec                               0x8650
-#define GlintInterp2SecReg                            3
-#define GlintInterp2SecOff                            0x7650
-
-#define GlintInterp3                                  0x8658
-#define GlintInterp3Tag                               0x00cb
-#define GlintInterp3Reg                                    1
-#define GlintInterp3Off                               0x7658
-#define GlintInterp3Sec                               0x8658
-#define GlintInterp3SecReg                            3
-#define GlintInterp3SecOff                            0x7658
-
-#define GlintInterp4                                  0x8660
-#define GlintInterp4Tag                               0x00cc
-#define GlintInterp4Reg                                    1
-#define GlintInterp4Off                               0x7660
-#define GlintInterp4Sec                               0x8660
-#define GlintInterp4SecReg                            3
-#define GlintInterp4SecOff                            0x7660
-
-#define GlintTextureFilter                            0x8668
-#define GlintTextureFilterTag                         0x00cd
-#define GlintTextureFilterReg                              1
-#define GlintTextureFilterOff                         0x7668
-#define GlintTextureFilterSec                         0x8668
-#define GlintTextureFilterSecReg                      3
-#define GlintTextureFilterSecOff                      0x7668
-
-#define GlintTextureColorMode                         0x8680
-#define GlintTextureColorModeTag                      0x00d0
-#define GlintTextureColorModeReg                           1
-#define GlintTextureColorModeOff                      0x7680
-#define GlintTextureColorModeSec                      0x8680
-#define GlintTextureColorModeSecReg                   3
-#define GlintTextureColorModeSecOff                   0x7680
-
-#define GlintTextureEnvColor                          0x8688
-#define GlintTextureEnvColorTag                       0x00d1
-#define GlintTextureEnvColorReg                            1
-#define GlintTextureEnvColorOff                       0x7688
-#define GlintTextureEnvColorSec                       0x8688
-#define GlintTextureEnvColorSecReg                    3
-#define GlintTextureEnvColorSecOff                    0x7688
-
-#define GlintFogMode                                  0x8690
-#define GlintFogModeTag                               0x00d2
-#define GlintFogModeReg                                    1
-#define GlintFogModeOff                               0x7690
-#define GlintFogModeSec                               0x8690
-#define GlintFogModeSecReg                            3
-#define GlintFogModeSecOff                            0x7690
-
-#define GlintFogColor                                 0x8698
-#define GlintFogColorTag                              0x00d3
-#define GlintFogColorReg                                   1
-#define GlintFogColorOff                              0x7698
-#define GlintFogColorSec                              0x8698
-#define GlintFogColorSecReg                           3
-#define GlintFogColorSecOff                           0x7698
-
-#define GlintFStart                                   0x86a0
-#define GlintFStartTag                                0x00d4
-#define GlintFStartReg                                     1
-#define GlintFStartOff                                0x76a0
-#define GlintFStartSec                                0x86a0
-#define GlintFStartSecReg                             3
-#define GlintFStartSecOff                             0x76a0
-
-#define GlintdFdx                                     0x86a8
-#define GlintdFdxTag                                  0x00d5
-#define GlintdFdxReg                                       1
-#define GlintdFdxOff                                  0x76a8
-#define GlintdFdxSec                                  0x86a8
-#define GlintdFdxSecReg                               3
-#define GlintdFdxSecOff                               0x76a8
-
-#define GlintdFdyDom                                  0x86b0
-#define GlintdFdyDomTag                               0x00d6
-#define GlintdFdyDomReg                                    1
-#define GlintdFdyDomOff                               0x76b0
-#define GlintdFdyDomSec                               0x86b0
-#define GlintdFdyDomSecReg                            3
-#define GlintdFdyDomSecOff                            0x76b0
-
-#define GlintKsStart                                  0x86c8
-#define GlintKsStartTag                               0x00d9
-#define GlintKsStartReg                                    1
-#define GlintKsStartOff                               0x76c8
-#define GlintKsStartSec                               0x86c8
-#define GlintKsStartSecReg                            3
-#define GlintKsStartSecOff                            0x76c8
-
-#define GlintdKsdx                                    0x86d0
-#define GlintdKsdxTag                                 0x00da
-#define GlintdKsdxReg                                      1
-#define GlintdKsdxOff                                 0x76d0
-#define GlintdKsdxSec                                 0x86d0
-#define GlintdKsdxSecReg                              3
-#define GlintdKsdxSecOff                              0x76d0
-
-#define GlintdKsdyDom                                 0x86d8
-#define GlintdKsdyDomTag                              0x00db
-#define GlintdKsdyDomReg                                   1
-#define GlintdKsdyDomOff                              0x76d8
-#define GlintdKsdyDomSec                              0x86d8
-#define GlintdKsdyDomSecReg                           3
-#define GlintdKsdyDomSecOff                           0x76d8
-
-#define GlintKdStart                                  0x86e0
-#define GlintKdStartTag                               0x00dc
-#define GlintKdStartReg                                    1
-#define GlintKdStartOff                               0x76e0
-#define GlintKdStartSec                               0x86e0
-#define GlintKdStartSecReg                            3
-#define GlintKdStartSecOff                            0x76e0
-
-#define GlintdKdStart                                 0x86e8
-#define GlintdKdStartTag                              0x00dd
-#define GlintdKdStartReg                                   1
-#define GlintdKdStartOff                              0x76e8
-#define GlintdKdStartSec                              0x86e8
-#define GlintdKdStartSecReg                           3
-#define GlintdKdStartSecOff                           0x76e8
-
-#define GlintdKddyDom                                 0x86f0
-#define GlintdKddyDomTag                              0x00de
-#define GlintdKddyDomReg                                   1
-#define GlintdKddyDomOff                              0x76f0
-#define GlintdKddyDomSec                              0x86f0
-#define GlintdKddyDomSecReg                           3
-#define GlintdKddyDomSecOff                           0x76f0
-
-#define GlintRStart                                   0x8780
-#define GlintRStartTag                                0x00f0
-#define GlintRStartReg                                     1
-#define GlintRStartOff                                0x7780
-#define GlintRStartSec                                0x8780
-#define GlintRStartSecReg                             3
-#define GlintRStartSecOff                             0x7780
-
-#define GlintdRdx                                     0x8788
-#define GlintdRdxTag                                  0x00f1
-#define GlintdRdxReg                                       1
-#define GlintdRdxOff                                  0x7788
-#define GlintdRdxSec                                  0x8788
-#define GlintdRdxSecReg                               3
-#define GlintdRdxSecOff                               0x7788
-
-#define GlintdRdyDom                                  0x8790
-#define GlintdRdyDomTag                               0x00f2
-#define GlintdRdyDomReg                                    1
-#define GlintdRdyDomOff                               0x7790
-#define GlintdRdyDomSec                               0x8790
-#define GlintdRdyDomSecReg                            3
-#define GlintdRdyDomSecOff                            0x7790
-
-#define GlintGStart                                   0x8798
-#define GlintGStartTag                                0x00f3
-#define GlintGStartReg                                     1
-#define GlintGStartOff                                0x7798
-#define GlintGStartSec                                0x8798
-#define GlintGStartSecReg                             3
-#define GlintGStartSecOff                             0x7798
-
-#define GlintdGdx                                     0x87a0
-#define GlintdGdxTag                                  0x00f4
-#define GlintdGdxReg                                       1
-#define GlintdGdxOff                                  0x77a0
-#define GlintdGdxSec                                  0x87a0
-#define GlintdGdxSecReg                               3
-#define GlintdGdxSecOff                               0x77a0
-
-#define GlintdGdyDom                                  0x87a8
-#define GlintdGdyDomTag                               0x00f5
-#define GlintdGdyDomReg                                    1
-#define GlintdGdyDomOff                               0x77a8
-#define GlintdGdyDomSec                               0x87a8
-#define GlintdGdyDomSecReg                            3
-#define GlintdGdyDomSecOff                            0x77a8
-
-#define GlintBStart                                   0x87b0
-#define GlintBStartTag                                0x00f6
-#define GlintBStartReg                                     1
-#define GlintBStartOff                                0x77b0
-#define GlintBStartSec                                0x87b0
-#define GlintBStartSecReg                             3
-#define GlintBStartSecOff                             0x77b0
-
-#define GlintdBdx                                     0x87b8
-#define GlintdBdxTag                                  0x00f7
-#define GlintdBdxReg                                       1
-#define GlintdBdxOff                                  0x77b8
-#define GlintdBdxSec                                  0x87b8
-#define GlintdBdxSecReg                               3
-#define GlintdBdxSecOff                               0x77b8
-
-#define GlintdBdyDom                                  0x87c0
-#define GlintdBdyDomTag                               0x00f8
-#define GlintdBdyDomReg                                    1
-#define GlintdBdyDomOff                               0x77c0
-#define GlintdBdyDomSec                               0x87c0
-#define GlintdBdyDomSecReg                            3
-#define GlintdBdyDomSecOff                            0x77c0
-
-#define GlintAStart                                   0x87c8
-#define GlintAStartTag                                0x00f9
-#define GlintAStartReg                                     1
-#define GlintAStartOff                                0x77c8
-#define GlintAStartSec                                0x87c8
-#define GlintAStartSecReg                             3
-#define GlintAStartSecOff                             0x77c8
-
-#define GlintdAdx                                     0x87d0
-#define GlintdAdxTag                                  0x00fa
-#define GlintdAdxReg                                       1
-#define GlintdAdxOff                                  0x77d0
-#define GlintdAdxSec                                  0x87d0
-#define GlintdAdxSecReg                               3
-#define GlintdAdxSecOff                               0x77d0
-
-#define GlintdAdyDom                                  0x87d8
-#define GlintdAdyDomTag                               0x00fb
-#define GlintdAdyDomReg                                    1
-#define GlintdAdyDomOff                               0x77d8
-#define GlintdAdyDomSec                               0x87d8
-#define GlintdAdyDomSecReg                            3
-#define GlintdAdyDomSecOff                            0x77d8
-
-#define GlintColorDDAMode                             0x87e0
-#define GlintColorDDAModeTag                          0x00fc
-#define GlintColorDDAModeReg                               1
-#define GlintColorDDAModeOff                          0x77e0
-#define GlintColorDDAModeSec                          0x87e0
-#define GlintColorDDAModeSecReg                       3
-#define GlintColorDDAModeSecOff                       0x77e0
-
-#define GlintConstantColor                            0x87e8
-#define GlintConstantColorTag                         0x00fd
-#define GlintConstantColorReg                              1
-#define GlintConstantColorOff                         0x77e8
-#define GlintConstantColorSec                         0x87e8
-#define GlintConstantColorSecReg                      3
-#define GlintConstantColorSecOff                      0x77e8
-
-#define GlintGLINTColor                               0x87f0
-#define GlintGLINTColorTag                            0x00fe
-#define GlintGLINTColorReg                                 1
-#define GlintGLINTColorOff                            0x77f0
-#define GlintGLINTColorSec                            0x87f0
-#define GlintGLINTColorSecReg                         3
-#define GlintGLINTColorSecOff                         0x77f0
-
-#define GlintAlphaTestMode                            0x8800
-#define GlintAlphaTestModeTag                         0x0100
-#define GlintAlphaTestModeReg                              1
-#define GlintAlphaTestModeOff                         0x7800
-#define GlintAlphaTestModeSec                         0x8800
-#define GlintAlphaTestModeSecReg                      3
-#define GlintAlphaTestModeSecOff                      0x7800
-
-#define GlintAntialiasMode                            0x8808
-#define GlintAntialiasModeTag                         0x0101
-#define GlintAntialiasModeReg                              1
-#define GlintAntialiasModeOff                         0x7808
-#define GlintAntialiasModeSec                         0x8808
-#define GlintAntialiasModeSecReg                      3
-#define GlintAntialiasModeSecOff                      0x7808
-
-#define GlintAlphaBlendMode                           0x8810
-#define GlintAlphaBlendModeTag                        0x0102
-#define GlintAlphaBlendModeReg                             1
-#define GlintAlphaBlendModeOff                        0x7810
-#define GlintAlphaBlendModeSec                        0x8810
-#define GlintAlphaBlendModeSecReg                     3
-#define GlintAlphaBlendModeSecOff                     0x7810
-
-#define GlintChromaUpper                              0x8f08
-#define GlintChromaUpperTag                           0x01e1
-#define GlintChromaUpperReg                                1
-#define GlintChromaUpperOff                           0x7f08
-#define GlintChromaUpperSec                           0x8f08
-#define GlintChromaUpperSecReg                        3
-#define GlintChromaUpperSecOff                        0x7f08
-
-#define GlintChromaLower                              0x8f10
-#define GlintChromaLowerTag                           0x01e2
-#define GlintChromaLowerReg                                1
-#define GlintChromaLowerOff                           0x7f10
-#define GlintChromaLowerSec                           0x8f10
-#define GlintChromaLowerSecReg                        3
-#define GlintChromaLowerSecOff                        0x7f10
-
-#define GlintChromaTestMode                           0x8f18
-#define GlintChromaTestModeTag                        0x01e3
-#define GlintChromaTestModeReg                             1
-#define GlintChromaTestModeOff                        0x7f18
-#define GlintChromaTestModeSec                        0x8f18
-#define GlintChromaTestModeSecReg                     3
-#define GlintChromaTestModeSecOff                     0x7f18
-
-#define GlintDitherMode                               0x8818
-#define GlintDitherModeTag                            0x0103
-#define GlintDitherModeReg                                 1
-#define GlintDitherModeOff                            0x7818
-#define GlintDitherModeSec                            0x8818
-#define GlintDitherModeSecReg                         3
-#define GlintDitherModeSecOff                         0x7818
-
-#define GlintFBSoftwareWriteMask                      0x8820
-#define GlintFBSoftwareWriteMaskTag                   0x0104
-#define GlintFBSoftwareWriteMaskReg                        1
-#define GlintFBSoftwareWriteMaskOff                   0x7820
-#define GlintFBSoftwareWriteMaskSec                   0x8820
-#define GlintFBSoftwareWriteMaskSecReg                3
-#define GlintFBSoftwareWriteMaskSecOff                0x7820
-
-#define GlintLogicalOpMode                            0x8828
-#define GlintLogicalOpModeTag                         0x0105
-#define GlintLogicalOpModeReg                              1
-#define GlintLogicalOpModeOff                         0x7828
-#define GlintLogicalOpModeSec                         0x8828
-#define GlintLogicalOpModeSecReg                      3
-#define GlintLogicalOpModeSecOff                      0x7828
-
-#define GlintFBWriteData                              0x8830
-#define GlintFBWriteDataTag                           0x0106
-#define GlintFBWriteDataReg                                1
-#define GlintFBWriteDataOff                           0x7830
-#define GlintFBWriteDataSec                           0x8830
-#define GlintFBWriteDataSecReg                        3
-#define GlintFBWriteDataSecOff                        0x7830
-
-#define GlintLBReadMode                               0x8880
-#define GlintLBReadModeTag                            0x0110
-#define GlintLBReadModeReg                                 1
-#define GlintLBReadModeOff                            0x7880
-#define GlintLBReadModeSec                            0x8880
-#define GlintLBReadModeSecReg                         3
-#define GlintLBReadModeSecOff                         0x7880
-
-#define GlintLBReadFormat                             0x8888
-#define GlintLBReadFormatTag                          0x0111
-#define GlintLBReadFormatReg                               1
-#define GlintLBReadFormatOff                          0x7888
-#define GlintLBReadFormatSec                          0x8888
-#define GlintLBReadFormatSecReg                       3
-#define GlintLBReadFormatSecOff                       0x7888
-
-#define GlintLBSourceOffset                           0x8890
-#define GlintLBSourceOffsetTag                        0x0112
-#define GlintLBSourceOffsetReg                             1
-#define GlintLBSourceOffsetOff                        0x7890
-#define GlintLBSourceOffsetSec                        0x8890
-#define GlintLBSourceOffsetSecReg                     3
-#define GlintLBSourceOffsetSecOff                     0x7890
-
-#define GlintLBStencil                                0x88a8
-#define GlintLBStencilTag                             0x0115
-#define GlintLBStencilReg                                  1
-#define GlintLBStencilOff                             0x78a8
-#define GlintLBStencilSec                             0x88a8
-#define GlintLBStencilSecReg                          3
-#define GlintLBStencilSecOff                          0x78a8
-
-#define GlintLBDepth                                  0x88b0
-#define GlintLBDepthTag                               0x0116
-#define GlintLBDepthReg                                    1
-#define GlintLBDepthOff                               0x78b0
-#define GlintLBDepthSec                               0x88b0
-#define GlintLBDepthSecReg                            3
-#define GlintLBDepthSecOff                            0x78b0
-
-#define GlintLBWindowBase                             0x88b8
-#define GlintLBWindowBaseTag                          0x0117
-#define GlintLBWindowBaseReg                               1
-#define GlintLBWindowBaseOff                          0x78b8
-#define GlintLBWindowBaseSec                          0x88b8
-#define GlintLBWindowBaseSecReg                       3
-#define GlintLBWindowBaseSecOff                       0x78b8
-
-#define GlintLBWriteMode                              0x88c0
-#define GlintLBWriteModeTag                           0x0118
-#define GlintLBWriteModeReg                                1
-#define GlintLBWriteModeOff                           0x78c0
-#define GlintLBWriteModeSec                           0x88c0
-#define GlintLBWriteModeSecReg                        3
-#define GlintLBWriteModeSecOff                        0x78c0
-
-#define GlintLBWriteFormat                            0x88c8
-#define GlintLBWriteFormatTag                         0x0119
-#define GlintLBWriteFormatReg                              1
-#define GlintLBWriteFormatOff                         0x78c8
-#define GlintLBWriteFormatSec                         0x88c8
-#define GlintLBWriteFormatSecReg                      3
-#define GlintLBWriteFormatSecOff                      0x78c8
-
-#define GlintTextureData                              0x88e8
-#define GlintTextureDataTag                           0x011d
-#define GlintTextureDataReg                                1
-#define GlintTextureDataOff                           0x78e8
-#define GlintTextureDataSec                           0x88e8
-#define GlintTextureDataSecReg                        3
-#define GlintTextureDataSecOff                        0x78e8
-
-#define GlintTextureDownloadOffset                    0x88f0
-#define GlintTextureDownloadOffsetTag                 0x011e
-#define GlintTextureDownloadOffsetReg                      1
-#define GlintTextureDownloadOffsetOff                 0x78f0
-#define GlintTextureDownloadOffsetSec                 0x88f0
-#define GlintTextureDownloadOffsetSecReg              3
-#define GlintTextureDownloadOffsetSecOff              0x78f0
-
-#define GlintLBWindowOffset                           0x88f8
-#define GlintLBWindowOffsetTag                        0x011f
-#define GlintLBWindowOffsetReg                             1
-#define GlintLBWindowOffsetOff                        0x78f8
-#define GlintLBWindowOffsetSec                        0x88f8
-#define GlintLBWindowOffsetSecReg                     3
-#define GlintLBWindowOffsetSecOff                     0x78f8
-
-#define GlintGLINTWindow                              0x8980
-#define GlintGLINTWindowTag                           0x0130
-#define GlintGLINTWindowReg                                1
-#define GlintGLINTWindowOff                           0x7980
-#define GlintGLINTWindowSec                           0x8980
-#define GlintGLINTWindowSecReg                        3
-#define GlintGLINTWindowSecOff                        0x7980
-
-#define GlintStencilMode                              0x8988
-#define GlintStencilModeTag                           0x0131
-#define GlintStencilModeReg                                1
-#define GlintStencilModeOff                           0x7988
-#define GlintStencilModeSec                           0x8988
-#define GlintStencilModeSecReg                        3
-#define GlintStencilModeSecOff                        0x7988
-
-#define GlintStencilData                              0x8990
-#define GlintStencilDataTag                           0x0132
-#define GlintStencilDataReg                                1
-#define GlintStencilDataOff                           0x7990
-#define GlintStencilDataSec                           0x8990
-#define GlintStencilDataSecReg                        3
-#define GlintStencilDataSecOff                        0x7990
-
-#define GlintGLINTStencil                             0x8998
-#define GlintGLINTStencilTag                          0x0133
-#define GlintGLINTStencilReg                               1
-#define GlintGLINTStencilOff                          0x7998
-#define GlintGLINTStencilSec                          0x8998
-#define GlintGLINTStencilSecReg                       3
-#define GlintGLINTStencilSecOff                       0x7998
-
-#define GlintDepthMode                                0x89a0
-#define GlintDepthModeTag                             0x0134
-#define GlintDepthModeReg                                  1
-#define GlintDepthModeOff                             0x79a0
-#define GlintDepthModeSec                             0x89a0
-#define GlintDepthModeSecReg                          3
-#define GlintDepthModeSecOff                          0x79a0
-
-#define GlintGLINTDepth                               0x89a8
-#define GlintGLINTDepthTag                            0x0135
-#define GlintGLINTDepthReg                                 1
-#define GlintGLINTDepthOff                            0x79a8
-#define GlintGLINTDepthSec                            0x89a8
-#define GlintGLINTDepthSecReg                         3
-#define GlintGLINTDepthSecOff                         0x79a8
-
-#define GlintZStartU                                  0x89b0
-#define GlintZStartUTag                               0x0136
-#define GlintZStartUReg                                    1
-#define GlintZStartUOff                               0x79b0
-#define GlintZStartUSec                               0x89b0
-#define GlintZStartUSecReg                            3
-#define GlintZStartUSecOff                            0x79b0
-
-#define GlintZStartL                                  0x89b8
-#define GlintZStartLTag                               0x0137
-#define GlintZStartLReg                                    1
-#define GlintZStartLOff                               0x79b8
-#define GlintZStartLSec                               0x89b8
-#define GlintZStartLSecReg                            3
-#define GlintZStartLSecOff                            0x79b8
-
-#define GlintdZdxU                                    0x89c0
-#define GlintdZdxUTag                                 0x0138
-#define GlintdZdxUReg                                      1
-#define GlintdZdxUOff                                 0x79c0
-#define GlintdZdxUSec                                 0x89c0
-#define GlintdZdxUSecReg                              3
-#define GlintdZdxUSecOff                              0x79c0
-
-#define GlintdZdxL                                    0x89c8
-#define GlintdZdxLTag                                 0x0139
-#define GlintdZdxLReg                                      1
-#define GlintdZdxLOff                                 0x79c8
-#define GlintdZdxLSec                                 0x89c8
-#define GlintdZdxLSecReg                              3
-#define GlintdZdxLSecOff                              0x79c8
-
-#define GlintdZdyDomU                                 0x89d0
-#define GlintdZdyDomUTag                              0x013a
-#define GlintdZdyDomUReg                                   1
-#define GlintdZdyDomUOff                              0x79d0
-#define GlintdZdyDomUSec                              0x89d0
-#define GlintdZdyDomUSecReg                           3
-#define GlintdZdyDomUSecOff                           0x79d0
-
-#define GlintdZdyDomL                                 0x89d8
-#define GlintdZdyDomLTag                              0x013b
-#define GlintdZdyDomLReg                                   1
-#define GlintdZdyDomLOff                              0x79d8
-#define GlintdZdyDomLSec                              0x89d8
-#define GlintdZdyDomLSecReg                           3
-#define GlintdZdyDomLSecOff                           0x79d8
-
-#define GlintFastClearDepth                           0x89e0
-#define GlintFastClearDepthTag                        0x013c
-#define GlintFastClearDepthReg                             1
-#define GlintFastClearDepthOff                        0x79e0
-#define GlintFastClearDepthSec                        0x89e0
-#define GlintFastClearDepthSecReg                     3
-#define GlintFastClearDepthSecOff                     0x79e0
-
-#define GlintFBReadMode                               0x8a80
-#define GlintFBReadModeTag                            0x0150
-#define GlintFBReadModeReg                                 1
-#define GlintFBReadModeOff                            0x7a80
-#define GlintFBReadModeSec                            0x8a80
-#define GlintFBReadModeSecReg                         3
-#define GlintFBReadModeSecOff                         0x7a80
-
-#define GlintFBSourceOffset                           0x8a88
-#define GlintFBSourceOffsetTag                        0x0151
-#define GlintFBSourceOffsetReg                             1
-#define GlintFBSourceOffsetOff                        0x7a88
-#define GlintFBSourceOffsetSec                        0x8a88
-#define GlintFBSourceOffsetSecReg                     3
-#define GlintFBSourceOffsetSecOff                     0x7a88
-
-#define GlintFBPixelOffset                            0x8a90
-#define GlintFBPixelOffsetTag                         0x0152
-#define GlintFBPixelOffsetReg                              1
-#define GlintFBPixelOffsetOff                         0x7a90
-#define GlintFBPixelOffsetSec                         0x8a90
-#define GlintFBPixelOffsetSecReg                      3
-#define GlintFBPixelOffsetSecOff                      0x7a90
-
-#define GlintFBColor                                  0x8a98
-#define GlintFBColorTag                               0x0153
-#define GlintFBColorReg                                    1
-#define GlintFBColorOff                               0x7a98
-#define GlintFBColorSec                               0x8a98
-#define GlintFBColorSecReg                            3
-#define GlintFBColorSecOff                            0x7a98
-
-#define GlintFBData                                   0x8aa0
-#define GlintFBDataTag                                0x0154
-#define GlintFBDataReg                                     1
-#define GlintFBDataOff                                0x7aa0
-#define GlintFBDataSec                                0x8aa0
-#define GlintFBDataSecReg                             3
-#define GlintFBDataSecOff                             0x7aa0
-
-#define GlintFBSourceData                             0x8aa8
-#define GlintFBSourceDataTag                          0x0155
-#define GlintFBSourceDataReg                               1
-#define GlintFBSourceDataOff                          0x7aa8
-#define GlintFBSourceDataSec                          0x8aa8
-#define GlintFBSourceDataSecReg                       3
-#define GlintFBSourceDataSecOff                       0x7aa8
-
-#define GlintFBWindowBase                             0x8ab0
-#define GlintFBWindowBaseTag                          0x0156
-#define GlintFBWindowBaseReg                               1
-#define GlintFBWindowBaseOff                          0x7ab0
-#define GlintFBWindowBaseSec                          0x8ab0
-#define GlintFBWindowBaseSecReg                       3
-#define GlintFBWindowBaseSecOff                       0x7ab0
-
-#define GlintFBWriteMode                              0x8ab8
-#define GlintFBWriteModeTag                           0x0157
-#define GlintFBWriteModeReg                                1
-#define GlintFBWriteModeOff                           0x7ab8
-#define GlintFBWriteModeSec                           0x8ab8
-#define GlintFBWriteModeSecReg                        3
-#define GlintFBWriteModeSecOff                        0x7ab8
-
-#define GlintFBHardwareWriteMask                      0x8ac0
-#define GlintFBHardwareWriteMaskTag                   0x0158
-#define GlintFBHardwareWriteMaskReg                        1
-#define GlintFBHardwareWriteMaskOff                   0x7ac0
-#define GlintFBHardwareWriteMaskSec                   0x8ac0
-#define GlintFBHardwareWriteMaskSecReg                3
-#define GlintFBHardwareWriteMaskSecOff                0x7ac0
-
-#define GlintFBBlockColor                             0x8ac8
-#define GlintFBBlockColorTag                          0x0159
-#define GlintFBBlockColorReg                               1
-#define GlintFBBlockColorOff                          0x7ac8
-#define GlintFBBlockColorSec                          0x8ac8
-#define GlintFBBlockColorSecReg                       3
-#define GlintFBBlockColorSecOff                       0x7ac8
-
-#define GlintPatternRamMode                           0x8af8
-#define GlintPatternRamModeTag                        0x015f
-#define GlintPatternRamModeReg                             1
-#define GlintPatternRamModeOff                        0x7af8
-#define GlintPatternRamModeSec                        0x8af8
-#define GlintPatternRamModeSecReg                     3
-#define GlintPatternRamModeSecOff                     0x7af8
-
-#define GlintPatternRamData0                          0x8b00
-#define GlintPatternRamData0Tag                       0x0160
-#define GlintPatternRamData0Reg                            1
-#define GlintPatternRamData0Off                       0x7b00
-#define GlintPatternRamData0Sec                       0x8b00
-#define GlintPatternRamData0SecReg                    3
-#define GlintPatternRamData0SecOff                    0x7b00
-
-#define GlintPatternRamData1                          0x8b08
-#define GlintPatternRamData1Tag                       0x0161
-#define GlintPatternRamData1Reg                            1
-#define GlintPatternRamData1Off                       0x7b08
-#define GlintPatternRamData1Sec                       0x8b08
-#define GlintPatternRamData1SecReg                    3
-#define GlintPatternRamData1SecOff                    0x7b08
-
-#define GlintPatternRamData2                          0x8b10
-#define GlintPatternRamData2Tag                       0x0162
-#define GlintPatternRamData2Reg                            1
-#define GlintPatternRamData2Off                       0x7b10
-#define GlintPatternRamData2Sec                       0x8b10
-#define GlintPatternRamData2SecReg                    3
-#define GlintPatternRamData2SecOff                    0x7b10
-
-#define GlintPatternRamData3                          0x8b18
-#define GlintPatternRamData3Tag                       0x0163
-#define GlintPatternRamData3Reg                            1
-#define GlintPatternRamData3Off                       0x7b18
-#define GlintPatternRamData3Sec                       0x8b18
-#define GlintPatternRamData3SecReg                    3
-#define GlintPatternRamData3SecOff                    0x7b18
-
-#define GlintPatternRamData4                          0x8b20
-#define GlintPatternRamData4Tag                       0x0164
-#define GlintPatternRamData4Reg                            1
-#define GlintPatternRamData4Off                       0x7b20
-#define GlintPatternRamData4Sec                       0x8b20
-#define GlintPatternRamData4SecReg                    3
-#define GlintPatternRamData4SecOff                    0x7b20
-
-#define GlintPatternRamData5                          0x8b28
-#define GlintPatternRamData5Tag                       0x0165
-#define GlintPatternRamData5Reg                            1
-#define GlintPatternRamData5Off                       0x7b28
-#define GlintPatternRamData5Sec                       0x8b28
-#define GlintPatternRamData5SecReg                    3
-#define GlintPatternRamData5SecOff                    0x7b28
-
-#define GlintPatternRamData6                          0x8b30
-#define GlintPatternRamData6Tag                       0x0166
-#define GlintPatternRamData6Reg                            1
-#define GlintPatternRamData6Off                       0x7b30
-#define GlintPatternRamData6Sec                       0x8b30
-#define GlintPatternRamData6SecReg                    3
-#define GlintPatternRamData6SecOff                    0x7b30
-
-#define GlintPatternRamData7                          0x8b38
-#define GlintPatternRamData7Tag                       0x0167
-#define GlintPatternRamData7Reg                            1
-#define GlintPatternRamData7Off                       0x7b38
-#define GlintPatternRamData7Sec                       0x8b38
-#define GlintPatternRamData7SecReg                    3
-#define GlintPatternRamData7SecOff                    0x7b38
-
-#define GlintPatternRamData8                          0x8b40
-#define GlintPatternRamData8Tag                       0x0168
-#define GlintPatternRamData8Reg                            1
-#define GlintPatternRamData8Off                       0x7b40
-#define GlintPatternRamData8Sec                       0x8b40
-#define GlintPatternRamData8SecReg                    3
-#define GlintPatternRamData8SecOff                    0x7b40
-
-#define GlintPatternRamData9                          0x8b48
-#define GlintPatternRamData9Tag                       0x0169
-#define GlintPatternRamData9Reg                            1
-#define GlintPatternRamData9Off                       0x7b48
-#define GlintPatternRamData9Sec                       0x8b48
-#define GlintPatternRamData9SecReg                    3
-#define GlintPatternRamData9SecOff                    0x7b48
-
-#define GlintPatternRamData10                         0x8b50
-#define GlintPatternRamData10Tag                      0x016a
-#define GlintPatternRamData10Reg                           1
-#define GlintPatternRamData10Off                      0x7b50
-#define GlintPatternRamData10Sec                      0x8b50
-#define GlintPatternRamData10SecReg                   3
-#define GlintPatternRamData10SecOff                   0x7b50
-
-#define GlintPatternRamData11                         0x8b58
-#define GlintPatternRamData11Tag                      0x016b
-#define GlintPatternRamData11Reg                           1
-#define GlintPatternRamData11Off                      0x7b58
-#define GlintPatternRamData11Sec                      0x8b58
-#define GlintPatternRamData11SecReg                   3
-#define GlintPatternRamData11SecOff                   0x7b58
-
-#define GlintPatternRamData12                         0x8b60
-#define GlintPatternRamData12Tag                      0x016c
-#define GlintPatternRamData12Reg                           1
-#define GlintPatternRamData12Off                      0x7b60
-#define GlintPatternRamData12Sec                      0x8b60
-#define GlintPatternRamData12SecReg                   3
-#define GlintPatternRamData12SecOff                   0x7b60
-
-#define GlintPatternRamData13                         0x8b68
-#define GlintPatternRamData13Tag                      0x016d
-#define GlintPatternRamData13Reg                           1
-#define GlintPatternRamData13Off                      0x7b68
-#define GlintPatternRamData13Sec                      0x8b68
-#define GlintPatternRamData13SecReg                   3
-#define GlintPatternRamData13SecOff                   0x7b68
-
-#define GlintPatternRamData14                         0x8b70
-#define GlintPatternRamData14Tag                      0x016e
-#define GlintPatternRamData14Reg                           1
-#define GlintPatternRamData14Off                      0x7b70
-#define GlintPatternRamData14Sec                      0x8b70
-#define GlintPatternRamData14SecReg                   3
-#define GlintPatternRamData14SecOff                   0x7b70
-
-#define GlintPatternRamData15                         0x8b78
-#define GlintPatternRamData15Tag                      0x016f
-#define GlintPatternRamData15Reg                           1
-#define GlintPatternRamData15Off                      0x7b78
-#define GlintPatternRamData15Sec                      0x8b78
-#define GlintPatternRamData15SecReg                   3
-#define GlintPatternRamData15SecOff                   0x7b78
-
-#define GlintPatternRamData16                         0x8b80
-#define GlintPatternRamData16Tag                      0x0170
-#define GlintPatternRamData16Reg                           1
-#define GlintPatternRamData16Off                      0x7b80
-#define GlintPatternRamData16Sec                      0x8b80
-#define GlintPatternRamData16SecReg                   3
-#define GlintPatternRamData16SecOff                   0x7b80
-
-#define GlintPatternRamData17                         0x8b88
-#define GlintPatternRamData17Tag                      0x0171
-#define GlintPatternRamData17Reg                           1
-#define GlintPatternRamData17Off                      0x7b88
-#define GlintPatternRamData17Sec                      0x8b88
-#define GlintPatternRamData17SecReg                   3
-#define GlintPatternRamData17SecOff                   0x7b88
-
-#define GlintPatternRamData18                         0x8b90
-#define GlintPatternRamData18Tag                      0x0172
-#define GlintPatternRamData18Reg                           1
-#define GlintPatternRamData18Off                      0x7b90
-#define GlintPatternRamData18Sec                      0x8b90
-#define GlintPatternRamData18SecReg                   3
-#define GlintPatternRamData18SecOff                   0x7b90
-
-#define GlintPatternRamData19                         0x8b98
-#define GlintPatternRamData19Tag                      0x0173
-#define GlintPatternRamData19Reg                           1
-#define GlintPatternRamData19Off                      0x7b98
-#define GlintPatternRamData19Sec                      0x8b98
-#define GlintPatternRamData19SecReg                   3
-#define GlintPatternRamData19SecOff                   0x7b98
-
-#define GlintPatternRamData20                         0x8ba0
-#define GlintPatternRamData20Tag                      0x0174
-#define GlintPatternRamData20Reg                           1
-#define GlintPatternRamData20Off                      0x7ba0
-#define GlintPatternRamData20Sec                      0x8ba0
-#define GlintPatternRamData20SecReg                   3
-#define GlintPatternRamData20SecOff                   0x7ba0
-
-#define GlintPatternRamData21                         0x8ba8
-#define GlintPatternRamData21Tag                      0x0175
-#define GlintPatternRamData21Reg                           1
-#define GlintPatternRamData21Off                      0x7ba8
-#define GlintPatternRamData21Sec                      0x8ba8
-#define GlintPatternRamData21SecReg                   3
-#define GlintPatternRamData21SecOff                   0x7ba8
-
-#define GlintPatternRamData22                         0x8bb0
-#define GlintPatternRamData22Tag                      0x0176
-#define GlintPatternRamData22Reg                           1
-#define GlintPatternRamData22Off                      0x7bb0
-#define GlintPatternRamData22Sec                      0x8bb0
-#define GlintPatternRamData22SecReg                   3
-#define GlintPatternRamData22SecOff                   0x7bb0
-
-#define GlintPatternRamData23                         0x8bb8
-#define GlintPatternRamData23Tag                      0x0177
-#define GlintPatternRamData23Reg                           1
-#define GlintPatternRamData23Off                      0x7bb8
-#define GlintPatternRamData23Sec                      0x8bb8
-#define GlintPatternRamData23SecReg                   3
-#define GlintPatternRamData23SecOff                   0x7bb8
-
-#define GlintPatternRamData24                         0x8bc0
-#define GlintPatternRamData24Tag                      0x0178
-#define GlintPatternRamData24Reg                           1
-#define GlintPatternRamData24Off                      0x7bc0
-#define GlintPatternRamData24Sec                      0x8bc0
-#define GlintPatternRamData24SecReg                   3
-#define GlintPatternRamData24SecOff                   0x7bc0
-
-#define GlintPatternRamData25                         0x8bc8
-#define GlintPatternRamData25Tag                      0x0179
-#define GlintPatternRamData25Reg                           1
-#define GlintPatternRamData25Off                      0x7bc8
-#define GlintPatternRamData25Sec                      0x8bc8
-#define GlintPatternRamData25SecReg                   3
-#define GlintPatternRamData25SecOff                   0x7bc8
-
-#define GlintPatternRamData26                         0x8bd0
-#define GlintPatternRamData26Tag                      0x017a
-#define GlintPatternRamData26Reg                           1
-#define GlintPatternRamData26Off                      0x7bd0
-#define GlintPatternRamData26Sec                      0x8bd0
-#define GlintPatternRamData26SecReg                   3
-#define GlintPatternRamData26SecOff                   0x7bd0
-
-#define GlintPatternRamData27                         0x8bd8
-#define GlintPatternRamData27Tag                      0x017b
-#define GlintPatternRamData27Reg                           1
-#define GlintPatternRamData27Off                      0x7bd8
-#define GlintPatternRamData27Sec                      0x8bd8
-#define GlintPatternRamData27SecReg                   3
-#define GlintPatternRamData27SecOff                   0x7bd8
-
-#define GlintPatternRamData28                         0x8be0
-#define GlintPatternRamData28Tag                      0x017c
-#define GlintPatternRamData28Reg                           1
-#define GlintPatternRamData28Off                      0x7be0
-#define GlintPatternRamData28Sec                      0x8be0
-#define GlintPatternRamData28SecReg                   3
-#define GlintPatternRamData28SecOff                   0x7be0
-
-#define GlintPatternRamData29                         0x8be8
-#define GlintPatternRamData29Tag                      0x017d
-#define GlintPatternRamData29Reg                           1
-#define GlintPatternRamData29Off                      0x7be8
-#define GlintPatternRamData29Sec                      0x8be8
-#define GlintPatternRamData29SecReg                   3
-#define GlintPatternRamData29SecOff                   0x7be8
-
-#define GlintPatternRamData30                         0x8bf0
-#define GlintPatternRamData30Tag                      0x017e
-#define GlintPatternRamData30Reg                           1
-#define GlintPatternRamData30Off                      0x7bf0
-#define GlintPatternRamData30Sec                      0x8bf0
-#define GlintPatternRamData30SecReg                   3
-#define GlintPatternRamData30SecOff                   0x7bf0
-
-#define GlintPatternRamData31                         0x8bf8
-#define GlintPatternRamData31Tag                      0x017f
-#define GlintPatternRamData31Reg                           1
-#define GlintPatternRamData31Off                      0x7bf8
-#define GlintPatternRamData31Sec                      0x8bf8
-#define GlintPatternRamData31SecReg                   3
-#define GlintPatternRamData31SecOff                   0x7bf8
-
-#define GlintFBBlockColorU                            0x8c68
-#define GlintFBBlockColorUTag                         0x018d
-#define GlintFBBlockColorUReg                              1
-#define GlintFBBlockColorUOff                         0x7c68
-#define GlintFBBlockColorUSec                         0x8c68
-#define GlintFBBlockColorUSecReg                      3
-#define GlintFBBlockColorUSecOff                      0x7c68
-
-#define GlintFBBlockColorL                            0x8c70
-#define GlintFBBlockColorLTag                         0x018e
-#define GlintFBBlockColorLReg                              1
-#define GlintFBBlockColorLOff                         0x7c70
-#define GlintFBBlockColorLSec                         0x8c70
-#define GlintFBBlockColorLSecReg                      3
-#define GlintFBBlockColorLSecOff                      0x7c70
-
-#define GlintSuspendUntilFrameBlank                   0x8c78
-#define GlintSuspendUntilFrameBlankTag                0x018f
-#define GlintSuspendUntilFrameBlankReg                     1
-#define GlintSuspendUntilFrameBlankOff                0x7c78
-#define GlintSuspendUntilFrameBlankSec                0x8c78
-#define GlintSuspendUntilFrameBlankSecReg             3
-#define GlintSuspendUntilFrameBlankSecOff             0x7c78
-
-#define GlintFilterMode                               0x8c00
-#define GlintFilterModeTag                            0x0180
-#define GlintFilterModeReg                                 1
-#define GlintFilterModeOff                            0x7c00
-#define GlintFilterModeSec                            0x8c00
-#define GlintFilterModeSecReg                         3
-#define GlintFilterModeSecOff                         0x7c00
-
-#define GlintStatisticMode                            0x8c08
-#define GlintStatisticModeTag                         0x0181
-#define GlintStatisticModeReg                              1
-#define GlintStatisticModeOff                         0x7c08
-#define GlintStatisticModeSec                         0x8c08
-#define GlintStatisticModeSecReg                      3
-#define GlintStatisticModeSecOff                      0x7c08
-
-#define GlintMinRegion                                0x8c10
-#define GlintMinRegionTag                             0x0182
-#define GlintMinRegionReg                                  1
-#define GlintMinRegionOff                             0x7c10
-#define GlintMinRegionSec                             0x8c10
-#define GlintMinRegionSecReg                          3
-#define GlintMinRegionSecOff                          0x7c10
-
-#define GlintMaxRegion                                0x8c18
-#define GlintMaxRegionTag                             0x0183
-#define GlintMaxRegionReg                                  1
-#define GlintMaxRegionOff                             0x7c18
-#define GlintMaxRegionSec                             0x8c18
-#define GlintMaxRegionSecReg                          3
-#define GlintMaxRegionSecOff                          0x7c18
-
-#define GlintResetPickResult                          0x8c20
-#define GlintResetPickResultTag                       0x0184
-#define GlintResetPickResultReg                            1
-#define GlintResetPickResultOff                       0x7c20
-#define GlintResetPickResultSec                       0x8c20
-#define GlintResetPickResultSecReg                    3
-#define GlintResetPickResultSecOff                    0x7c20
-
-#define GlintMitHitRegion                             0x8c28
-#define GlintMitHitRegionTag                          0x0185
-#define GlintMitHitRegionReg                               1
-#define GlintMitHitRegionOff                          0x7c28
-#define GlintMitHitRegionSec                          0x8c28
-#define GlintMitHitRegionSecReg                       3
-#define GlintMitHitRegionSecOff                       0x7c28
-
-#define GlintMaxHitRegion                             0x8c30
-#define GlintMaxHitRegionTag                          0x0186
-#define GlintMaxHitRegionReg                               1
-#define GlintMaxHitRegionOff                          0x7c30
-#define GlintMaxHitRegionSec                          0x8c30
-#define GlintMaxHitRegionSecReg                       3
-#define GlintMaxHitRegionSecOff                       0x7c30
-
-#define GlintPickResult                               0x8c38
-#define GlintPickResultTag                            0x0187
-#define GlintPickResultReg                                 1
-#define GlintPickResultOff                            0x7c38
-#define GlintPickResultSec                            0x8c38
-#define GlintPickResultSecReg                         3
-#define GlintPickResultSecOff                         0x7c38
-
-#define GlintGLINTSync                                0x8c40
-#define GlintGLINTSyncTag                             0x0188
-#define GlintGLINTSyncReg                                  1
-#define GlintGLINTSyncOff                             0x7c40
-#define GlintGLINTSyncSec                             0x8c40
-#define GlintGLINTSyncSecReg                          3
-#define GlintGLINTSyncSecOff                          0x7c40
-
-#define GlintKsRStart                                 0x8c80
-#define GlintKsRStartTag                              0x0190
-#define GlintKsRStartReg                                   1
-#define GlintKsRStartOff                              0x7c80
-#define GlintKsRStartSec                              0x8c80
-#define GlintKsRStartSecReg                           3
-#define GlintKsRStartSecOff                           0x7c80
-
-#define GlintdKsRdx                                   0x8c88
-#define GlintdKsRdxTag                                0x0191
-#define GlintdKsRdxReg                                     1
-#define GlintdKsRdxOff                                0x7c88
-#define GlintdKsRdxSec                                0x8c88
-#define GlintdKsRdxSecReg                             3
-#define GlintdKsRdxSecOff                             0x7c88
-
-#define GlintdKsRdyDom                                0x8c90
-#define GlintdKsRdyDomTag                             0x0192
-#define GlintdKsRdyDomReg                                  1
-#define GlintdKsRdyDomOff                             0x7c90
-#define GlintdKsRdyDomSec                             0x8c90
-#define GlintdKsRdyDomSecReg                          3
-#define GlintdKsRdyDomSecOff                          0x7c90
-
-#define GlintKsGStart                                 0x8c98
-#define GlintKsGStartTag                              0x0193
-#define GlintKsGStartReg                                   1
-#define GlintKsGStartOff                              0x7c98
-#define GlintKsGStartSec                              0x8c98
-#define GlintKsGStartSecReg                           3
-#define GlintKsGStartSecOff                           0x7c98
-
-#define GlintdKsGdx                                   0x8ca0
-#define GlintdKsGdxTag                                0x0194
-#define GlintdKsGdxReg                                     1
-#define GlintdKsGdxOff                                0x7ca0
-#define GlintdKsGdxSec                                0x8ca0
-#define GlintdKsGdxSecReg                             3
-#define GlintdKsGdxSecOff                             0x7ca0
-
-#define GlintdKsGdyDom                                0x8ca8
-#define GlintdKsGdyDomTag                             0x0195
-#define GlintdKsGdyDomReg                                  1
-#define GlintdKsGdyDomOff                             0x7ca8
-#define GlintdKsGdyDomSec                             0x8ca8
-#define GlintdKsGdyDomSecReg                          3
-#define GlintdKsGdyDomSecOff                          0x7ca8
-
-#define GlintKsBStart                                 0x8cb0
-#define GlintKsBStartTag                              0x0196
-#define GlintKsBStartReg                                   1
-#define GlintKsBStartOff                              0x7cb0
-#define GlintKsBStartSec                              0x8cb0
-#define GlintKsBStartSecReg                           3
-#define GlintKsBStartSecOff                           0x7cb0
-
-#define GlintdKsBdx                                   0x8cb8
-#define GlintdKsBdxTag                                0x0197
-#define GlintdKsBdxReg                                     1
-#define GlintdKsBdxOff                                0x7cb8
-#define GlintdKsBdxSec                                0x8cb8
-#define GlintdKsBdxSecReg                             3
-#define GlintdKsBdxSecOff                             0x7cb8
-
-#define GlintdKsBdyDom                                0x8cc0
-#define GlintdKsBdyDomTag                             0x0198
-#define GlintdKsBdyDomReg                                  1
-#define GlintdKsBdyDomOff                             0x7cc0
-#define GlintdKsBdyDomSec                             0x8cc0
-#define GlintdKsBdyDomSecReg                          3
-#define GlintdKsBdyDomSecOff                          0x7cc0
-
-#define GlintKdRStart                                 0x8d00
-#define GlintKdRStartTag                              0x01a0
-#define GlintKdRStartReg                                   1
-#define GlintKdRStartOff                              0x7d00
-#define GlintKdRStartSec                              0x8d00
-#define GlintKdRStartSecReg                           3
-#define GlintKdRStartSecOff                           0x7d00
-
-#define GlintdKdRdx                                   0x8d08
-#define GlintdKdRdxTag                                0x01a1
-#define GlintdKdRdxReg                                     1
-#define GlintdKdRdxOff                                0x7d08
-#define GlintdKdRdxSec                                0x8d08
-#define GlintdKdRdxSecReg                             3
-#define GlintdKdRdxSecOff                             0x7d08
-
-#define GlintdKdRdyDom                                0x8d10
-#define GlintdKdRdyDomTag                             0x01a2
-#define GlintdKdRdyDomReg                                  1
-#define GlintdKdRdyDomOff                             0x7d10
-#define GlintdKdRdyDomSec                             0x8d10
-#define GlintdKdRdyDomSecReg                          3
-#define GlintdKdRdyDomSecOff                          0x7d10
-
-#define GlintKdGStart                                 0x8d18
-#define GlintKdGStartTag                              0x01a3
-#define GlintKdGStartReg                                   1
-#define GlintKdGStartOff                              0x7d18
-#define GlintKdGStartSec                              0x8d18
-#define GlintKdGStartSecReg                           3
-#define GlintKdGStartSecOff                           0x7d18
-
-#define GlintdKdGdx                                   0x8d20
-#define GlintdKdGdxTag                                0x01a4
-#define GlintdKdGdxReg                                     1
-#define GlintdKdGdxOff                                0x7d20
-#define GlintdKdGdxSec                                0x8d20
-#define GlintdKdGdxSecReg                             3
-#define GlintdKdGdxSecOff                             0x7d20
-
-#define GlintdKdGdyDom                                0x8d28
-#define GlintdKdGdyDomTag                             0x01a5
-#define GlintdKdGdyDomReg                                  1
-#define GlintdKdGdyDomOff                             0x7d28
-#define GlintdKdGdyDomSec                             0x8d28
-#define GlintdKdGdyDomSecReg                          3
-#define GlintdKdGdyDomSecOff                          0x7d28
-
-#define GlintKdBStart                                 0x8d30
-#define GlintKdBStartTag                              0x01a6
-#define GlintKdBStartReg                                   1
-#define GlintKdBStartOff                              0x7d30
-#define GlintKdBStartSec                              0x8d30
-#define GlintKdBStartSecReg                           3
-#define GlintKdBStartSecOff                           0x7d30
-
-#define GlintdKdBdx                                   0x8d38
-#define GlintdKdBdxTag                                0x01a7
-#define GlintdKdBdxReg                                     1
-#define GlintdKdBdxOff                                0x7d38
-#define GlintdKdBdxSec                                0x8d38
-#define GlintdKdBdxSecReg                             3
-#define GlintdKdBdxSecOff                             0x7d38
-
-#define GlintdKdBdyDom                                0x8d40
-#define GlintdKdBdyDomTag                             0x01a8
-#define GlintdKdBdyDomReg                                  1
-#define GlintdKdBdyDomOff                             0x7d40
-#define GlintdKdBdyDomSec                             0x8d40
-#define GlintdKdBdyDomSecReg                          3
-#define GlintdKdBdyDomSecOff                          0x7d40
-
-#define GlintContextDump                              0x8dc0
-#define GlintContextDumpTag                           0x01b8
-#define GlintContextDumpReg                                1
-#define GlintContextDumpOff                           0x7dc0
-
-#define GlintContextRestore                           0x8dc8
-#define GlintContextRestoreTag                        0x01b9
-#define GlintContextRestoreReg                             1
-#define GlintContextRestoreOff                        0x7dc8
-
-#define GlintContextData                              0x8dd0
-#define GlintContextDataTag                           0x01ba
-#define GlintContextDataReg                                1
-#define GlintContextDataOff                           0x7dd0
-
-#define GlintFeedbackToken                            0x8f80
-#define GlintFeedbackTokenTag                         0x01f0
-#define GlintFeedbackTokenReg                              1
-#define GlintFeedbackTokenOff                         0x7f80
-
-#define GlintFeedbackX                                0x8f88
-#define GlintFeedbackXTag                             0x01f1
-#define GlintFeedbackXReg                                  1
-#define GlintFeedbackXOff                             0x7f88
-
-#define GlintFeedbackY                                0x8f90
-#define GlintFeedbackYTag                             0x01f2
-#define GlintFeedbackYReg                                  1
-#define GlintFeedbackYOff                             0x7f90
-
-#define GlintFeedbackZ                                0x8f98
-#define GlintFeedbackZTag                             0x01f3
-#define GlintFeedbackZReg                                  1
-#define GlintFeedbackZOff                             0x7f98
-
-#define GlintFeedbackW                                0x8fa0
-#define GlintFeedbackWTag                             0x01f4
-#define GlintFeedbackWReg                                  1
-#define GlintFeedbackWOff                             0x7fa0
-
-#define GlintFeedbackRed                              0x8fa8
-#define GlintFeedbackRedTag                           0x01f5
-#define GlintFeedbackRedReg                                1
-#define GlintFeedbackRedOff                           0x7fa8
-
-#define GlintFeedbackGreen                            0x8fb0
-#define GlintFeedbackGreenTag                         0x01f6
-#define GlintFeedbackGreenReg                              1
-#define GlintFeedbackGreenOff                         0x7fb0
-
-#define GlintFeedbackBlue                             0x8fb8
-#define GlintFeedbackBlueTag                          0x01f7
-#define GlintFeedbackBlueReg                               1
-#define GlintFeedbackBlueOff                          0x7fb8
-
-#define GlintFeedbackAlpha                            0x8fc0
-#define GlintFeedbackAlphaTag                         0x01f8
-#define GlintFeedbackAlphaReg                              1
-#define GlintFeedbackAlphaOff                         0x7fc0
-
-#define GlintFeedbackS                                0x8fc8
-#define GlintFeedbackSTag                             0x01f9
-#define GlintFeedbackSReg                                  1
-#define GlintFeedbackSOff                             0x7fc8
-
-#define GlintFeedbackT                                0x8fd0
-#define GlintFeedbackTTag                             0x01fa
-#define GlintFeedbackTReg                                  1
-#define GlintFeedbackTOff                             0x7fd0
-
-#define GlintFeedbackR                                0x8fd8
-#define GlintFeedbackRTag                             0x01fb
-#define GlintFeedbackRReg                                  1
-#define GlintFeedbackROff                             0x7fd8
-
-#define GlintFeedbackQ                                0x8fe0
-#define GlintFeedbackQTag                             0x01fc
-#define GlintFeedbackQReg                                  1
-#define GlintFeedbackQOff                             0x7fe0
-
-#define GlintSelectRecord                             0x8fe8
-#define GlintSelectRecordTag                          0x01fd
-#define GlintSelectRecordReg                               1
-#define GlintSelectRecordOff                          0x7fe8
-
-#define GlintPassThrough                              0x8ff0
-#define GlintPassThroughTag                           0x01fe
-#define GlintPassThroughReg                                1
-#define GlintPassThroughOff                           0x7ff0
-
-#define GlintEndOfFeedback                            0x8ff8
-#define GlintEndOfFeedbackTag                         0x01ff
-#define GlintEndOfFeedbackReg                              1
-#define GlintEndOfFeedbackOff                         0x7ff8
-
-#define GlintV0FixedS                                 0x9000
-#define GlintV0FixedSTag                              0x0200
-#define GlintV0FixedSReg                                   1
-#define GlintV0FixedSOff                              0x8000
-
-#define GlintV0FixedT                                 0x9008
-#define GlintV0FixedTTag                              0x0201
-#define GlintV0FixedTReg                                   1
-#define GlintV0FixedTOff                              0x8008
-
-#define GlintV0FixedQ                                 0x9010
-#define GlintV0FixedQTag                              0x0202
-#define GlintV0FixedQReg                                   1
-#define GlintV0FixedQOff                              0x8010
-
-#define GlintV0FixedKs                                0x9018
-#define GlintV0FixedKsTag                             0x0203
-#define GlintV0FixedKsReg                                  1
-#define GlintV0FixedKsOff                             0x8018
-
-#define GlintV0FixedKd                                0x9020
-#define GlintV0FixedKdTag                             0x0204
-#define GlintV0FixedKdReg                                  1
-#define GlintV0FixedKdOff                             0x8020
-
-#define GlintV0FixedR                                 0x9028
-#define GlintV0FixedRTag                              0x0205
-#define GlintV0FixedRReg                                   1
-#define GlintV0FixedROff                              0x8028
-
-#define GlintV0FixedG                                 0x9030
-#define GlintV0FixedGTag                              0x0206
-#define GlintV0FixedGReg                                   1
-#define GlintV0FixedGOff                              0x8030
-
-#define GlintV0FixedB                                 0x9038
-#define GlintV0FixedBTag                              0x0207
-#define GlintV0FixedBReg                                   1
-#define GlintV0FixedBOff                              0x8038
-
-#define GlintV0FixedA                                 0x9040
-#define GlintV0FixedATag                              0x0208
-#define GlintV0FixedAReg                                   1
-#define GlintV0FixedAOff                              0x8040
-
-#define GlintV0FixedF                                 0x9048
-#define GlintV0FixedFTag                              0x0209
-#define GlintV0FixedFReg                                   1
-#define GlintV0FixedFOff                              0x8048
-
-#define GlintV0FixedX                                 0x9050
-#define GlintV0FixedXTag                              0x020a
-#define GlintV0FixedXReg                                   1
-#define GlintV0FixedXOff                              0x8050
-
-#define GlintV0FixedY                                 0x9058
-#define GlintV0FixedYTag                              0x020b
-#define GlintV0FixedYReg                                   1
-#define GlintV0FixedYOff                              0x8058
-
-#define GlintV0FixedZ                                 0x9060
-#define GlintV0FixedZTag                              0x020c
-#define GlintV0FixedZReg                                   1
-#define GlintV0FixedZOff                              0x8060
-
-#define GlintV1FixedS                                 0x9080
-#define GlintV1FixedSTag                              0x0210
-#define GlintV1FixedSReg                                   1
-#define GlintV1FixedSOff                              0x8080
-
-#define GlintV1FixedT                                 0x9088
-#define GlintV1FixedTTag                              0x0211
-#define GlintV1FixedTReg                                   1
-#define GlintV1FixedTOff                              0x8088
-
-#define GlintV1FixedQ                                 0x9090
-#define GlintV1FixedQTag                              0x0212
-#define GlintV1FixedQReg                                   1
-#define GlintV1FixedQOff                              0x8090
-
-#define GlintV1FixedKs                                0x9098
-#define GlintV1FixedKsTag                             0x0213
-#define GlintV1FixedKsReg                                  1
-#define GlintV1FixedKsOff                             0x8098
-
-#define GlintV1FixedKd                                0x90a0
-#define GlintV1FixedKdTag                             0x0214
-#define GlintV1FixedKdReg                                  1
-#define GlintV1FixedKdOff                             0x80a0
-
-#define GlintV1FixedR                                 0x90a8
-#define GlintV1FixedRTag                              0x0215
-#define GlintV1FixedRReg                                   1
-#define GlintV1FixedROff                              0x80a8
-
-#define GlintV1FixedG                                 0x90b0
-#define GlintV1FixedGTag                              0x0216
-#define GlintV1FixedGReg                                   1
-#define GlintV1FixedGOff                              0x80b0
-
-#define GlintV1FixedB                                 0x90b8
-#define GlintV1FixedBTag                              0x0217
-#define GlintV1FixedBReg                                   1
-#define GlintV1FixedBOff                              0x80b8
-
-#define GlintV1FixedA                                 0x90c0
-#define GlintV1FixedATag                              0x0218
-#define GlintV1FixedAReg                                   1
-#define GlintV1FixedAOff                              0x80c0
-
-#define GlintV1FixedF                                 0x90c8
-#define GlintV1FixedFTag                              0x0219
-#define GlintV1FixedFReg                                   1
-#define GlintV1FixedFOff                              0x80c8
-
-#define GlintV1FixedX                                 0x90d0
-#define GlintV1FixedXTag                              0x021a
-#define GlintV1FixedXReg                                   1
-#define GlintV1FixedXOff                              0x80d0
-
-#define GlintV1FixedY                                 0x90d8
-#define GlintV1FixedYTag                              0x021b
-#define GlintV1FixedYReg                                   1
-#define GlintV1FixedYOff                              0x80d8
-
-#define GlintV1FixedZ                                 0x90e0
-#define GlintV1FixedZTag                              0x021c
-#define GlintV1FixedZReg                                   1
-#define GlintV1FixedZOff                              0x80e0
-
-#define GlintV2FixedS                                 0x9100
-#define GlintV2FixedSTag                              0x0220
-#define GlintV2FixedSReg                                   1
-#define GlintV2FixedSOff                              0x8100
-
-#define GlintV2FixedT                                 0x9108
-#define GlintV2FixedTTag                              0x0221
-#define GlintV2FixedTReg                                   1
-#define GlintV2FixedTOff                              0x8108
-
-#define GlintV2FixedQ                                 0x9110
-#define GlintV2FixedQTag                              0x0222
-#define GlintV2FixedQReg                                   1
-#define GlintV2FixedQOff                              0x8110
-
-#define GlintV2FixedKs                                0x9118
-#define GlintV2FixedKsTag                             0x0223
-#define GlintV2FixedKsReg                                  1
-#define GlintV2FixedKsOff                             0x8118
-
-#define GlintV2FixedKd                                0x9120
-#define GlintV2FixedKdTag                             0x0224
-#define GlintV2FixedKdReg                                  1
-#define GlintV2FixedKdOff                             0x8120
-
-#define GlintV2FixedR                                 0x9128
-#define GlintV2FixedRTag                              0x0225
-#define GlintV2FixedRReg                                   1
-#define GlintV2FixedROff                              0x8128
-
-#define GlintV2FixedG                                 0x9130
-#define GlintV2FixedGTag                              0x0226
-#define GlintV2FixedGReg                                   1
-#define GlintV2FixedGOff                              0x8130
-
-#define GlintV2FixedB                                 0x9138
-#define GlintV2FixedBTag                              0x0227
-#define GlintV2FixedBReg                                   1
-#define GlintV2FixedBOff                              0x8138
-
-#define GlintV2FixedA                                 0x9140
-#define GlintV2FixedATag                              0x0228
-#define GlintV2FixedAReg                                   1
-#define GlintV2FixedAOff                              0x8140
-
-#define GlintV2FixedF                                 0x9148
-#define GlintV2FixedFTag                              0x0229
-#define GlintV2FixedFReg                                   1
-#define GlintV2FixedFOff                              0x8148
-
-#define GlintV2FixedX                                 0x9150
-#define GlintV2FixedXTag                              0x022a
-#define GlintV2FixedXReg                                   1
-#define GlintV2FixedXOff                              0x8150
-
-#define GlintV2FixedY                                 0x9158
-#define GlintV2FixedYTag                              0x022b
-#define GlintV2FixedYReg                                   1
-#define GlintV2FixedYOff                              0x8158
-
-#define GlintV2FixedZ                                 0x9160
-#define GlintV2FixedZTag                              0x022c
-#define GlintV2FixedZReg                                   1
-#define GlintV2FixedZOff                              0x8160
-
-#define GlintV0FloatS                                 0x9180
-#define GlintV0FloatSTag                              0x0230
-#define GlintV0FloatSReg                                   1
-#define GlintV0FloatSOff                              0x8180
-
-#define GlintV0FloatT                                 0x9188
-#define GlintV0FloatTTag                              0x0231
-#define GlintV0FloatTReg                                   1
-#define GlintV0FloatTOff                              0x8188
-
-#define GlintV0FloatQ                                 0x9190
-#define GlintV0FloatQTag                              0x0232
-#define GlintV0FloatQReg                                   1
-#define GlintV0FloatQOff                              0x8190
-
-#define GlintV0FloatKs                                0x9198
-#define GlintV0FloatKsTag                             0x0233
-#define GlintV0FloatKsReg                                  1
-#define GlintV0FloatKsOff                             0x8198
-
-#define GlintV0FloatKd                                0x91a0
-#define GlintV0FloatKdTag                             0x0234
-#define GlintV0FloatKdReg                                  1
-#define GlintV0FloatKdOff                             0x81a0
-
-#define GlintV0FloatR                                 0x91a8
-#define GlintV0FloatRTag                              0x0235
-#define GlintV0FloatRReg                                   1
-#define GlintV0FloatROff                              0x81a8
-
-#define GlintV0FloatG                                 0x91b0
-#define GlintV0FloatGTag                              0x0236
-#define GlintV0FloatGReg                                   1
-#define GlintV0FloatGOff                              0x81b0
-
-#define GlintV0FloatB                                 0x91b8
-#define GlintV0FloatBTag                              0x0237
-#define GlintV0FloatBReg                                   1
-#define GlintV0FloatBOff                              0x81b8
-
-#define GlintV0FloatA                                 0x91c0
-#define GlintV0FloatATag                              0x0238
-#define GlintV0FloatAReg                                   1
-#define GlintV0FloatAOff                              0x81c0
-
-#define GlintV0FloatF                                 0x91c8
-#define GlintV0FloatFTag                              0x0239
-#define GlintV0FloatFReg                                   1
-#define GlintV0FloatFOff                              0x81c8
-
-#define GlintV0FloatX                                 0x91d0
-#define GlintV0FloatXTag                              0x023a
-#define GlintV0FloatXReg                                   1
-#define GlintV0FloatXOff                              0x81d0
-
-#define GlintV0FloatY                                 0x91d8
-#define GlintV0FloatYTag                              0x023b
-#define GlintV0FloatYReg                                   1
-#define GlintV0FloatYOff                              0x81d8
-
-#define GlintV0FloatZ                                 0x91e0
-#define GlintV0FloatZTag                              0x023c
-#define GlintV0FloatZReg                                   1
-#define GlintV0FloatZOff                              0x81e0
-
-#define GlintV1FloatS                                 0x9200
-#define GlintV1FloatSTag                              0x0240
-#define GlintV1FloatSReg                                   1
-#define GlintV1FloatSOff                              0x8200
-
-#define GlintV1FloatT                                 0x9208
-#define GlintV1FloatTTag                              0x0241
-#define GlintV1FloatTReg                                   1
-#define GlintV1FloatTOff                              0x8208
-
-#define GlintV1FloatQ                                 0x9210
-#define GlintV1FloatQTag                              0x0242
-#define GlintV1FloatQReg                                   1
-#define GlintV1FloatQOff                              0x8210
-
-#define GlintV1FloatKs                                0x9218
-#define GlintV1FloatKsTag                             0x0243
-#define GlintV1FloatKsReg                                  1
-#define GlintV1FloatKsOff                             0x8218
-
-#define GlintV1FloatKd                                0x9220
-#define GlintV1FloatKdTag                             0x0244
-#define GlintV1FloatKdReg                                  1
-#define GlintV1FloatKdOff                             0x8220
-
-#define GlintV1FloatR                                 0x9228
-#define GlintV1FloatRTag                              0x0245
-#define GlintV1FloatRReg                                   1
-#define GlintV1FloatROff                              0x8228
-
-#define GlintV1FloatG                                 0x9230
-#define GlintV1FloatGTag                              0x0246
-#define GlintV1FloatGReg                                   1
-#define GlintV1FloatGOff                              0x8230
-
-#define GlintV1FloatB                                 0x9238
-#define GlintV1FloatBTag                              0x0247
-#define GlintV1FloatBReg                                   1
-#define GlintV1FloatBOff                              0x8238
-
-#define GlintV1FloatA                                 0x9240
-#define GlintV1FloatATag                              0x0248
-#define GlintV1FloatAReg                                   1
-#define GlintV1FloatAOff                              0x8240
-
-#define GlintV1FloatF                                 0x9248
-#define GlintV1FloatFTag                              0x0249
-#define GlintV1FloatFReg                                   1
-#define GlintV1FloatFOff                              0x8248
-
-#define GlintV1FloatX                                 0x9250
-#define GlintV1FloatXTag                              0x024a
-#define GlintV1FloatXReg                                   1
-#define GlintV1FloatXOff                              0x8250
-
-#define GlintV1FloatY                                 0x9258
-#define GlintV1FloatYTag                              0x024b
-#define GlintV1FloatYReg                                   1
-#define GlintV1FloatYOff                              0x8258
-
-#define GlintV1FloatZ                                 0x9260
-#define GlintV1FloatZTag                              0x024c
-#define GlintV1FloatZReg                                   1
-#define GlintV1FloatZOff                              0x8260
-
-#define GlintV2FloatS                                 0x9280
-#define GlintV2FloatSTag                              0x0250
-#define GlintV2FloatSReg                                   1
-#define GlintV2FloatSOff                              0x8280
-
-#define GlintV2FloatT                                 0x9288
-#define GlintV2FloatTTag                              0x0251
-#define GlintV2FloatTReg                                   1
-#define GlintV2FloatTOff                              0x8288
-
-#define GlintV2FloatQ                                 0x9290
-#define GlintV2FloatQTag                              0x0252
-#define GlintV2FloatQReg                                   1
-#define GlintV2FloatQOff                              0x8290
-
-#define GlintV2FloatKs                                0x9298
-#define GlintV2FloatKsTag                             0x0253
-#define GlintV2FloatKsReg                                  1
-#define GlintV2FloatKsOff                             0x8298
-
-#define GlintV2FloatKd                                0x92a0
-#define GlintV2FloatKdTag                             0x0254
-#define GlintV2FloatKdReg                                  1
-#define GlintV2FloatKdOff                             0x82a0
-
-#define GlintV2FloatR                                 0x92a8
-#define GlintV2FloatRTag                              0x0255
-#define GlintV2FloatRReg                                   1
-#define GlintV2FloatROff                              0x82a8
-
-#define GlintV2FloatG                                 0x92b0
-#define GlintV2FloatGTag                              0x0256
-#define GlintV2FloatGReg                                   1
-#define GlintV2FloatGOff                              0x82b0
-
-#define GlintV2FloatB                                 0x92b8
-#define GlintV2FloatBTag                              0x0257
-#define GlintV2FloatBReg                                   1
-#define GlintV2FloatBOff                              0x82b8
-
-#define GlintV2FloatA                                 0x92c0
-#define GlintV2FloatATag                              0x0258
-#define GlintV2FloatAReg                                   1
-#define GlintV2FloatAOff                              0x82c0
-
-#define GlintV2FloatF                                 0x92c8
-#define GlintV2FloatFTag                              0x0259
-#define GlintV2FloatFReg                                   1
-#define GlintV2FloatFOff                              0x82c8
-
-#define GlintV2FloatX                                 0x92d0
-#define GlintV2FloatXTag                              0x025a
-#define GlintV2FloatXReg                                   1
-#define GlintV2FloatXOff                              0x82d0
-
-#define GlintV2FloatY                                 0x92d8
-#define GlintV2FloatYTag                              0x025b
-#define GlintV2FloatYReg                                   1
-#define GlintV2FloatYOff                              0x82d8
-
-#define GlintV2FloatZ                                 0x92e0
-#define GlintV2FloatZTag                              0x025c
-#define GlintV2FloatZReg                                   1
-#define GlintV2FloatZOff                              0x82e0
-
-#define GlintDeltaMode                                0x9300
-#define GlintDeltaModeTag                             0x0260
-#define GlintDeltaModeReg                                  1
-#define GlintDeltaModeOff                             0x8300
-
-#define GlintDrawTriangle                             0x9308
-#define GlintDrawTriangleTag                          0x0261
-#define GlintDrawTriangleReg                               1
-#define GlintDrawTriangleOff                          0x8308
-
-#define GlintRepeatTriangle                           0x9310
-#define GlintRepeatTriangleTag                        0x0262
-#define GlintRepeatTriangleReg                             1
-#define GlintRepeatTriangleOff                        0x8310
-
-#define GlintDrawLine01                               0x9318
-#define GlintDrawLine01Tag                            0x0263
-#define GlintDrawLine01Reg                                 1
-#define GlintDrawLine01Off                            0x8318
-
-#define GlintDrawLine10                               0x9320
-#define GlintDrawLine10Tag                            0x0264
-#define GlintDrawLine10Reg                                 1
-#define GlintDrawLine10Off                            0x8320
-
-#define GlintRepeatLine                               0x9328
-#define GlintRepeatLineTag                            0x0265
-#define GlintRepeatLineReg                                 1
-#define GlintRepeatLineOff                            0x8328
-
-#define GlintEpilogueTag                              0x9368
-#define GlintEpilogueTagTag                           0x026d
-#define GlintEpilogueTagReg                                1
-#define GlintEpilogueTagOff                           0x8368
-
-#define GlintEpilogueData                             0x9370
-#define GlintEpilogueDataTag                          0x026e
-#define GlintEpilogueDataReg                               1
-#define GlintEpilogueDataOff                          0x8370
-
-#define GlintBroadcastMask                            0x9378
-#define GlintBroadcastMaskTag                         0x026f
-#define GlintBroadcastMaskReg                              1
-#define GlintBroadcastMaskOff                         0x8378
-
-#define GlintXBias                                    0x9480
-#define GlintXBiasTag                                 0x0290
-#define GlintXBiasReg                                      1
-#define GlintXBiasOff                                 0x8480
-
-#define GlintYBias                                    0x9488
-#define GlintYBiasTag                                 0x0291
-#define GlintYBiasReg                                      1
-#define GlintYBiasOff                                 0x8488
-
-#define GlintPointMode                                0x9490
-#define GlintPointModeTag                             0x0292
-#define GlintPointModeReg                                  1
-#define GlintPointModeOff                             0x8490
-
-#define GlintPointSize                                0x9498
-#define GlintPointSizeTag                             0x0293
-#define GlintPointSizeReg                                  1
-#define GlintPointSizeOff                             0x8498
-
-#define GlintAApointSize                              0x94a0
-#define GlintAApointSizeTag                           0x0294
-#define GlintAApointSizeReg                                1
-#define GlintAApointSizeOff                           0x84a0
-
-#define GlintLineMode                                 0x94a8
-#define GlintLineModeTag                              0x0295
-#define GlintLineModeReg                                   1
-#define GlintLineModeOff                              0x84a8
-
-#define GlintLineWidth                                0x94b0
-#define GlintLineWidthTag                             0x0296
-#define GlintLineWidthReg                                  1
-#define GlintLineWidthOff                             0x84b0
-
-#define GlintLineWidthOffset                          0x94b8
-#define GlintLineWidthOffsetTag                       0x0297
-#define GlintLineWidthOffsetReg                            1
-#define GlintLineWidthOffsetOff                       0x84b8
-
-#define GlintAAlineWidth                              0x94c0
-#define GlintAAlineWidthTag                           0x0298
-#define GlintAAlineWidthReg                                1
-#define GlintAAlineWidthOff                           0x84c0
-
-#define GlintTriangleMode                             0x94c8
-#define GlintTriangleModeTag                          0x0299
-#define GlintTriangleModeReg                               1
-#define GlintTriangleModeOff                          0x84c8
-
-#define GlintRectangleMode                            0x94d0
-#define GlintRectangleModeTag                         0x029a
-#define GlintRectangleModeReg                              1
-#define GlintRectangleModeOff                         0x84d0
-
-#define GlintRectangleWidth                           0x94d8
-#define GlintRectangleWidthTag                        0x029b
-#define GlintRectangleWidthReg                             1
-#define GlintRectangleWidthOff                        0x84d8
-
-#define GlintRectangleHeight                          0x94e0
-#define GlintRectangleHeightTag                       0x029c
-#define GlintRectangleHeightReg                            1
-#define GlintRectangleHeightOff                       0x84e0
-
-#define GlintRectangle2DMode                          0x94e8
-#define GlintRectangle2DModeTag                       0x029d
-#define GlintRectangle2DModeReg                            1
-#define GlintRectangle2DModeOff                       0x84e8
-
-#define GlintRectangle2DControl                       0x94f0
-#define GlintRectangle2DControlTag                    0x029e
-#define GlintRectangle2DControlReg                         1
-#define GlintRectangle2DControlOff                    0x84f0
-
-#define GlintTransformMode                            0x9508
-#define GlintTransformModeTag                         0x02a1
-#define GlintTransformModeReg                              1
-#define GlintTransformModeOff                         0x8508
-
-#define GlintGeometryMode                             0x9510
-#define GlintGeometryModeTag                          0x02a2
-#define GlintGeometryModeReg                               1
-#define GlintGeometryModeOff                          0x8510
-
-#define GlintNormalizeMode                            0x9518
-#define GlintNormalizeModeTag                         0x02a3
-#define GlintNormalizeModeReg                              1
-#define GlintNormalizeModeOff                         0x8518
-
-#define GlintLightingMode                             0x9520
-#define GlintLightingModeTag                          0x02a4
-#define GlintLightingModeReg                               1
-#define GlintLightingModeOff                          0x8520
-
-#define GlintColorMaterialMode                        0x9528
-#define GlintColorMaterialModeTag                     0x02a5
-#define GlintColorMaterialModeReg                          1
-#define GlintColorMaterialModeOff                     0x8528
-
-#define GlintMaterialMode                             0x9530
-#define GlintMaterialModeTag                          0x02a6
-#define GlintMaterialModeReg                               1
-#define GlintMaterialModeOff                          0x8530
-
-#define GlintSelectResult                             0x9580
-#define GlintSelectResultTag                          0x02b0
-#define GlintSelectResultReg                               1
-#define GlintSelectResultOff                          0x8580
-
-#define GlintBegin                                    0x9590
-#define GlintBeginTag                                 0x02b2
-#define GlintBeginReg                                      1
-#define GlintBeginOff                                 0x8590
-
-#define GlintEnd                                      0x9598
-#define GlintEndTag                                   0x02b3
-#define GlintEndReg                                        1
-#define GlintEndOff                                   0x8598
-
-#define GlintEdgeFlag                                 0x95a0
-#define GlintEdgeFlagTag                              0x02b4
-#define GlintEdgeFlagReg                                   1
-#define GlintEdgeFlagOff                              0x85a0
-
-#define GlintObjectIDvalue                            0x95a8
-#define GlintObjectIDvalueTag                         0x02b5
-#define GlintObjectIDvalueReg                              1
-#define GlintObjectIDvalueOff                         0x85a8
-
-#define GlintIncrementObjectID                        0x95b0
-#define GlintIncrementObjectIDTag                     0x02b6
-#define GlintIncrementObjectIDReg                          1
-#define GlintIncrementObjectIDOff                     0x85b0
-
-#define GlintTransformCurrent                         0x95b8
-#define GlintTransformCurrentTag                      0x02b7
-#define GlintTransformCurrentReg                           1
-#define GlintTransformCurrentOff                      0x85b8
-
-#define GlintSaveCurrent                              0x95c8
-#define GlintSaveCurrentTag                           0x02b9
-#define GlintSaveCurrentReg                                1
-#define GlintSaveCurrentOff                           0x85c8
-
-#define GlintRestoreCurrent                           0x95d0
-#define GlintRestoreCurrentTag                        0x02ba
-#define GlintRestoreCurrentReg                             1
-#define GlintRestoreCurrentOff                        0x85d0
-
-#define GlintInitNames                                0x95d8
-#define GlintInitNamesTag                             0x02bb
-#define GlintInitNamesReg                                  1
-#define GlintInitNamesOff                             0x85d8
-
-#define GlintPushName                                 0x95e0
-#define GlintPushNameTag                              0x02bc
-#define GlintPushNameReg                                   1
-#define GlintPushNameOff                              0x85e0
-
-#define GlintPopName                                  0x95e8
-#define GlintPopNameTag                               0x02bd
-#define GlintPopNameReg                                    1
-#define GlintPopNameOff                               0x85e8
-
-#define GlintLoadName                                 0x95f0
-#define GlintLoadNameTag                              0x02be
-#define GlintLoadNameReg                                   1
-#define GlintLoadNameOff                              0x85f0
-
-#define GlintGeomRectangle                            0x96a0
-#define GlintGeomRectangleTag                         0x02d4
-#define GlintGeomRectangleReg                              1
-#define GlintGeomRectangleOff                         0x86a0
-
-#define GlintDrawRectangle2D                          0x97a0
-#define GlintDrawRectangle2DTag                       0x02f4
-#define GlintDrawRectangle2DReg                            1
-#define GlintDrawRectangle2DOff                       0x87a0
-
-#define GlintNz                                       0x9800
-#define GlintNzTag                                    0x0300
-#define GlintNzReg                                         1
-#define GlintNzOff                                    0x8800
-
-#define GlintNy                                       0x9808
-#define GlintNyTag                                    0x0301
-#define GlintNyReg                                         1
-#define GlintNyOff                                    0x8808
-
-#define GlintNx                                       0x9810
-#define GlintNxTag                                    0x0302
-#define GlintNxReg                                         1
-#define GlintNxOff                                    0x8810
-
-#define GlintCa                                       0x9818
-#define GlintCaTag                                    0x0303
-#define GlintCaReg                                         1
-#define GlintCaOff                                    0x8818
-
-#define GlintCb                                       0x9820
-#define GlintCbTag                                    0x0304
-#define GlintCbReg                                         1
-#define GlintCbOff                                    0x8820
-
-#define GlintCg                                       0x9828
-#define GlintCgTag                                    0x0305
-#define GlintCgReg                                         1
-#define GlintCgOff                                    0x8828
-
-#define GlintCr3                                      0x9830
-#define GlintCr3Tag                                   0x0306
-#define GlintCr3Reg                                        1
-#define GlintCr3Off                                   0x8830
-
-#define GlintCr4                                      0x9838
-#define GlintCr4Tag                                   0x0307
-#define GlintCr4Reg                                        1
-#define GlintCr4Off                                   0x8838
-
-#define GlintTt2                                      0x9840
-#define GlintTt2Tag                                   0x0308
-#define GlintTt2Reg                                        1
-#define GlintTt2Off                                   0x8840
-
-#define GlintTs2                                      0x9848
-#define GlintTs2Tag                                   0x0309
-#define GlintTs2Reg                                        1
-#define GlintTs2Off                                   0x8848
-
-#define GlintVw                                       0x9850
-#define GlintVwTag                                    0x030a
-#define GlintVwReg                                         1
-#define GlintVwOff                                    0x8850
-
-#define GlintVz                                       0x9858
-#define GlintVzTag                                    0x030b
-#define GlintVzReg                                         1
-#define GlintVzOff                                    0x8858
-
-#define GlintVy                                       0x9860
-#define GlintVyTag                                    0x030c
-#define GlintVyReg                                         1
-#define GlintVyOff                                    0x8860
-
-#define GlintVx2                                      0x9868
-#define GlintVx2Tag                                   0x030d
-#define GlintVx2Reg                                        1
-#define GlintVx2Off                                   0x8868
-
-#define GlintVx3                                      0x9870
-#define GlintVx3Tag                                   0x030e
-#define GlintVx3Reg                                        1
-#define GlintVx3Off                                   0x8870
-
-#define GlintVx4                                      0x9878
-#define GlintVx4Tag                                   0x030f
-#define GlintVx4Reg                                        1
-#define GlintVx4Off                                   0x8878
-
-#define GlintFNz                                      0x9880
-#define GlintFNzTag                                   0x0310
-#define GlintFNzReg                                        1
-#define GlintFNzOff                                   0x8880
-
-#define GlintFNy                                      0x9888
-#define GlintFNyTag                                   0x0311
-#define GlintFNyReg                                        1
-#define GlintFNyOff                                   0x8888
-
-#define GlintFNx                                      0x9890
-#define GlintFNxTag                                   0x0312
-#define GlintFNxReg                                        1
-#define GlintFNxOff                                   0x8890
-
-#define GlintPackedColor3                             0x9898
-#define GlintPackedColor3Tag                          0x0313
-#define GlintPackedColor3Reg                               1
-#define GlintPackedColor3Off                          0x8898
-
-#define GlintPackedColor4                             0x98a0
-#define GlintPackedColor4Tag                          0x0314
-#define GlintPackedColor4Reg                               1
-#define GlintPackedColor4Off                          0x88a0
-
-#define GlintTq4                                      0x98a8
-#define GlintTq4Tag                                   0x0315
-#define GlintTq4Reg                                        1
-#define GlintTq4Off                                   0x88a8
-
-#define GlintTr4                                      0x98b0
-#define GlintTr4Tag                                   0x0316
-#define GlintTr4Reg                                        1
-#define GlintTr4Off                                   0x88b0
-
-#define GlintTt4                                      0x98b8
-#define GlintTt4Tag                                   0x0317
-#define GlintTt4Reg                                        1
-#define GlintTt4Off                                   0x88b8
-
-#define GlintTs4                                      0x98c0
-#define GlintTs4Tag                                   0x0318
-#define GlintTs4Reg                                        1
-#define GlintTs4Off                                   0x88c0
-
-#define GlintRPw                                      0x98c8
-#define GlintRPwTag                                   0x0319
-#define GlintRPwReg                                        1
-#define GlintRPwOff                                   0x88c8
-
-#define GlintRPz                                      0x98d0
-#define GlintRPzTag                                   0x031a
-#define GlintRPzReg                                        1
-#define GlintRPzOff                                   0x88d0
-
-#define GlintRPy                                      0x98d8
-#define GlintRPyTag                                   0x031b
-#define GlintRPyReg                                        1
-#define GlintRPyOff                                   0x88d8
-
-#define GlintRPx2                                     0x98e0
-#define GlintRPx2Tag                                  0x031c
-#define GlintRPx2Reg                                       1
-#define GlintRPx2Off                                  0x88e0
-
-#define GlintRPx3                                     0x98e8
-#define GlintRPx3Tag                                  0x031d
-#define GlintRPx3Reg                                       1
-#define GlintRPx3Off                                  0x88e8
-
-#define GlintRPx4                                     0x98f0
-#define GlintRPx4Tag                                  0x031e
-#define GlintRPx4Reg                                       1
-#define GlintRPx4Off                                  0x88f0
-
-#define GlintTs1                                      0x98f8
-#define GlintTs1Tag                                   0x031f
-#define GlintTs1Reg                                        1
-#define GlintTs1Off                                   0x88f8
-
-#define GlintModelViewMatrix0                         0x9900
-#define GlintModelViewMatrix0Tag                      0x0320
-#define GlintModelViewMatrix0Reg                           1
-#define GlintModelViewMatrix0Off                      0x8900
-
-#define GlintModelViewMatrix1                         0x9908
-#define GlintModelViewMatrix1Tag                      0x0321
-#define GlintModelViewMatrix1Reg                           1
-#define GlintModelViewMatrix1Off                      0x8908
-
-#define GlintModelViewMatrix2                         0x9910
-#define GlintModelViewMatrix2Tag                      0x0322
-#define GlintModelViewMatrix2Reg                           1
-#define GlintModelViewMatrix2Off                      0x8910
-
-#define GlintModelViewMatrix3                         0x9918
-#define GlintModelViewMatrix3Tag                      0x0323
-#define GlintModelViewMatrix3Reg                           1
-#define GlintModelViewMatrix3Off                      0x8918
-
-#define GlintModelViewMatrix4                         0x9920
-#define GlintModelViewMatrix4Tag                      0x0324
-#define GlintModelViewMatrix4Reg                           1
-#define GlintModelViewMatrix4Off                      0x8920
-
-#define GlintModelViewMatrix5                         0x9928
-#define GlintModelViewMatrix5Tag                      0x0325
-#define GlintModelViewMatrix5Reg                           1
-#define GlintModelViewMatrix5Off                      0x8928
-
-#define GlintModelViewMatrix6                         0x9930
-#define GlintModelViewMatrix6Tag                      0x0326
-#define GlintModelViewMatrix6Reg                           1
-#define GlintModelViewMatrix6Off                      0x8930
-
-#define GlintModelViewMatrix7                         0x9938
-#define GlintModelViewMatrix7Tag                      0x0327
-#define GlintModelViewMatrix7Reg                           1
-#define GlintModelViewMatrix7Off                      0x8938
-
-#define GlintModelViewMatrix8                         0x9940
-#define GlintModelViewMatrix8Tag                      0x0328
-#define GlintModelViewMatrix8Reg                           1
-#define GlintModelViewMatrix8Off                      0x8940
-
-#define GlintModelViewMatrix9                         0x9948
-#define GlintModelViewMatrix9Tag                      0x0329
-#define GlintModelViewMatrix9Reg                           1
-#define GlintModelViewMatrix9Off                      0x8948
-
-#define GlintModelViewMatrix10                        0x9950
-#define GlintModelViewMatrix10Tag                     0x032a
-#define GlintModelViewMatrix10Reg                          1
-#define GlintModelViewMatrix10Off                     0x8950
-
-#define GlintModelViewMatrix11                        0x9958
-#define GlintModelViewMatrix11Tag                     0x032b
-#define GlintModelViewMatrix11Reg                          1
-#define GlintModelViewMatrix11Off                     0x8958
-
-#define GlintModelViewMatrix12                        0x9960
-#define GlintModelViewMatrix12Tag                     0x032c
-#define GlintModelViewMatrix12Reg                          1
-#define GlintModelViewMatrix12Off                     0x8960
-
-#define GlintModelViewMatrix13                        0x9968
-#define GlintModelViewMatrix13Tag                     0x032d
-#define GlintModelViewMatrix13Reg                          1
-#define GlintModelViewMatrix13Off                     0x8968
-
-#define GlintModelViewMatrix14                        0x9970
-#define GlintModelViewMatrix14Tag                     0x032e
-#define GlintModelViewMatrix14Reg                          1
-#define GlintModelViewMatrix14Off                     0x8970
-
-#define GlintModelViewMatrix15                        0x9978
-#define GlintModelViewMatrix15Tag                     0x032f
-#define GlintModelViewMatrix15Reg                          1
-#define GlintModelViewMatrix15Off                     0x8978
-
-#define GlintModelViewProjectionMatrix0               0x9980
-#define GlintModelViewProjectionMatrix0Tag            0x0330
-#define GlintModelViewProjectionMatrix0Reg                 1
-#define GlintModelViewProjectionMatrix0Off            0x8980
-
-#define GlintModelViewProjectionMatrix1               0x9988
-#define GlintModelViewProjectionMatrix1Tag            0x0331
-#define GlintModelViewProjectionMatrix1Reg                 1
-#define GlintModelViewProjectionMatrix1Off            0x8988
-
-#define GlintModelViewProjectionMatrix2               0x9990
-#define GlintModelViewProjectionMatrix2Tag            0x0332
-#define GlintModelViewProjectionMatrix2Reg                 1
-#define GlintModelViewProjectionMatrix2Off            0x8990
-
-#define GlintModelViewProjectionMatrix3               0x9998
-#define GlintModelViewProjectionMatrix3Tag            0x0333
-#define GlintModelViewProjectionMatrix3Reg                 1
-#define GlintModelViewProjectionMatrix3Off            0x8998
-
-#define GlintModelViewProjectionMatrix4               0x99a0
-#define GlintModelViewProjectionMatrix4Tag            0x0334
-#define GlintModelViewProjectionMatrix4Reg                 1
-#define GlintModelViewProjectionMatrix4Off            0x89a0
-
-#define GlintModelViewProjectionMatrix5               0x99a8
-#define GlintModelViewProjectionMatrix5Tag            0x0335
-#define GlintModelViewProjectionMatrix5Reg                 1
-#define GlintModelViewProjectionMatrix5Off            0x89a8
-
-#define GlintModelViewProjectionMatrix6               0x99b0
-#define GlintModelViewProjectionMatrix6Tag            0x0336
-#define GlintModelViewProjectionMatrix6Reg                 1
-#define GlintModelViewProjectionMatrix6Off            0x89b0
-
-#define GlintModelViewProjectionMatrix7               0x99b8
-#define GlintModelViewProjectionMatrix7Tag            0x0337
-#define GlintModelViewProjectionMatrix7Reg                 1
-#define GlintModelViewProjectionMatrix7Off            0x89b8
-
-#define GlintModelViewProjectionMatrix8               0x99c0
-#define GlintModelViewProjectionMatrix8Tag            0x0338
-#define GlintModelViewProjectionMatrix8Reg                 1
-#define GlintModelViewProjectionMatrix8Off            0x89c0
-
-#define GlintModelViewProjectionMatrix9               0x99c8
-#define GlintModelViewProjectionMatrix9Tag            0x0339
-#define GlintModelViewProjectionMatrix9Reg                 1
-#define GlintModelViewProjectionMatrix9Off            0x89c8
-
-#define GlintModelViewProjectionMatrix10              0x99d0
-#define GlintModelViewProjectionMatrix10Tag           0x033a
-#define GlintModelViewProjectionMatrix10Reg                1
-#define GlintModelViewProjectionMatrix10Off           0x89d0
-
-#define GlintModelViewProjectionMatrix11              0x99d8
-#define GlintModelViewProjectionMatrix11Tag           0x033b
-#define GlintModelViewProjectionMatrix11Reg                1
-#define GlintModelViewProjectionMatrix11Off           0x89d8
-
-#define GlintModelViewProjectionMatrix12              0x99e0
-#define GlintModelViewProjectionMatrix12Tag           0x033c
-#define GlintModelViewProjectionMatrix12Reg                1
-#define GlintModelViewProjectionMatrix12Off           0x89e0
-
-#define GlintModelViewProjectionMatrix13              0x99e8
-#define GlintModelViewProjectionMatrix13Tag           0x033d
-#define GlintModelViewProjectionMatrix13Reg                1
-#define GlintModelViewProjectionMatrix13Off           0x89e8
-
-#define GlintModelViewProjectionMatrix14              0x99f0
-#define GlintModelViewProjectionMatrix14Tag           0x033e
-#define GlintModelViewProjectionMatrix14Reg                1
-#define GlintModelViewProjectionMatrix14Off           0x89f0
-
-#define GlintModelViewProjectionMatrix15              0x99f8
-#define GlintModelViewProjectionMatrix15Tag           0x033f
-#define GlintModelViewProjectionMatrix15Reg                1
-#define GlintModelViewProjectionMatrix15Off           0x89f8
-
-#define GlintNormalMatrix0                            0x9a00
-#define GlintNormalMatrix0Tag                         0x0340
-#define GlintNormalMatrix0Reg                              1
-#define GlintNormalMatrix0Off                         0x8a00
-
-#define GlintNormalMatrix1                            0x9a08
-#define GlintNormalMatrix1Tag                         0x0341
-#define GlintNormalMatrix1Reg                              1
-#define GlintNormalMatrix1Off                         0x8a08
-
-#define GlintNormalMatrix2                            0x9a10
-#define GlintNormalMatrix2Tag                         0x0342
-#define GlintNormalMatrix2Reg                              1
-#define GlintNormalMatrix2Off                         0x8a10
-
-#define GlintNormalMatrix3                            0x9a18
-#define GlintNormalMatrix3Tag                         0x0343
-#define GlintNormalMatrix3Reg                              1
-#define GlintNormalMatrix3Off                         0x8a18
-
-#define GlintNormalMatrix4                            0x9a20
-#define GlintNormalMatrix4Tag                         0x0344
-#define GlintNormalMatrix4Reg                              1
-#define GlintNormalMatrix4Off                         0x8a20
-
-#define GlintNormalMatrix5                            0x9a28
-#define GlintNormalMatrix5Tag                         0x0345
-#define GlintNormalMatrix5Reg                              1
-#define GlintNormalMatrix5Off                         0x8a28
-
-#define GlintNormalMatrix6                            0x9a30
-#define GlintNormalMatrix6Tag                         0x0346
-#define GlintNormalMatrix6Reg                              1
-#define GlintNormalMatrix6Off                         0x8a30
-
-#define GlintNormalMatrix7                            0x9a38
-#define GlintNormalMatrix7Tag                         0x0347
-#define GlintNormalMatrix7Reg                              1
-#define GlintNormalMatrix7Off                         0x8a38
-
-#define GlintNormalMatrix8                            0x9a40
-#define GlintNormalMatrix8Tag                         0x0348
-#define GlintNormalMatrix8Reg                              1
-#define GlintNormalMatrix8Off                         0x8a40
-
-#define GlintTextureMatrix0                           0x9a80
-#define GlintTextureMatrix0Tag                        0x0350
-#define GlintTextureMatrix0Reg                             1
-#define GlintTextureMatrix0Off                        0x8a80
-
-#define GlintTextureMatrix1                           0x9a88
-#define GlintTextureMatrix1Tag                        0x0351
-#define GlintTextureMatrix1Reg                             1
-#define GlintTextureMatrix1Off                        0x8a88
-
-#define GlintTextureMatrix2                           0x9a90
-#define GlintTextureMatrix2Tag                        0x0352
-#define GlintTextureMatrix2Reg                             1
-#define GlintTextureMatrix2Off                        0x8a90
-
-#define GlintTextureMatrix3                           0x9a98
-#define GlintTextureMatrix3Tag                        0x0353
-#define GlintTextureMatrix3Reg                             1
-#define GlintTextureMatrix3Off                        0x8a98
-
-#define GlintTextureMatrix4                           0x9aa0
-#define GlintTextureMatrix4Tag                        0x0354
-#define GlintTextureMatrix4Reg                             1
-#define GlintTextureMatrix4Off                        0x8aa0
-
-#define GlintTextureMatrix5                           0x9aa8
-#define GlintTextureMatrix5Tag                        0x0355
-#define GlintTextureMatrix5Reg                             1
-#define GlintTextureMatrix5Off                        0x8aa8
-
-#define GlintTextureMatrix6                           0x9ab0
-#define GlintTextureMatrix6Tag                        0x0356
-#define GlintTextureMatrix6Reg                             1
-#define GlintTextureMatrix6Off                        0x8ab0
-
-#define GlintTextureMatrix7                           0x9ab8
-#define GlintTextureMatrix7Tag                        0x0357
-#define GlintTextureMatrix7Reg                             1
-#define GlintTextureMatrix7Off                        0x8ab8
-
-#define GlintTextureMatrix8                           0x9ac0
-#define GlintTextureMatrix8Tag                        0x0358
-#define GlintTextureMatrix8Reg                             1
-#define GlintTextureMatrix8Off                        0x8ac0
-
-#define GlintTextureMatrix9                           0x9ac8
-#define GlintTextureMatrix9Tag                        0x0359
-#define GlintTextureMatrix9Reg                             1
-#define GlintTextureMatrix9Off                        0x8ac8
-
-#define GlintTextureMatrix10                          0x9ad0
-#define GlintTextureMatrix10Tag                       0x035a
-#define GlintTextureMatrix10Reg                            1
-#define GlintTextureMatrix10Off                       0x8ad0
-
-#define GlintTextureMatrix11                          0x9ad8
-#define GlintTextureMatrix11Tag                       0x035b
-#define GlintTextureMatrix11Reg                            1
-#define GlintTextureMatrix11Off                       0x8ad8
-
-#define GlintTextureMatrix12                          0x9ae0
-#define GlintTextureMatrix12Tag                       0x035c
-#define GlintTextureMatrix12Reg                            1
-#define GlintTextureMatrix12Off                       0x8ae0
-
-#define GlintTextureMatrix13                          0x9ae8
-#define GlintTextureMatrix13Tag                       0x035d
-#define GlintTextureMatrix13Reg                            1
-#define GlintTextureMatrix13Off                       0x8ae8
-
-#define GlintTextureMatrix14                          0x9af0
-#define GlintTextureMatrix14Tag                       0x035e
-#define GlintTextureMatrix14Reg                            1
-#define GlintTextureMatrix14Off                       0x8af0
-
-#define GlintTextureMatrix15                          0x9af8
-#define GlintTextureMatrix15Tag                       0x035f
-#define GlintTextureMatrix15Reg                            1
-#define GlintTextureMatrix15Off                       0x8af8
-
-#define GlintTexGen0                                  0x9b00
-#define GlintTexGen0Tag                               0x0360
-#define GlintTexGen0Reg                                    1
-#define GlintTexGen0Off                               0x8b00
-
-#define GlintTexGen1                                  0x9b08
-#define GlintTexGen1Tag                               0x0361
-#define GlintTexGen1Reg                                    1
-#define GlintTexGen1Off                               0x8b08
-
-#define GlintTexGen2                                  0x9b10
-#define GlintTexGen2Tag                               0x0362
-#define GlintTexGen2Reg                                    1
-#define GlintTexGen2Off                               0x8b10
-
-#define GlintTexGen3                                  0x9b18
-#define GlintTexGen3Tag                               0x0363
-#define GlintTexGen3Reg                                    1
-#define GlintTexGen3Off                               0x8b18
-
-#define GlintTexGen4                                  0x9b20
-#define GlintTexGen4Tag                               0x0364
-#define GlintTexGen4Reg                                    1
-#define GlintTexGen4Off                               0x8b20
-
-#define GlintTexGen5                                  0x9b28
-#define GlintTexGen5Tag                               0x0365
-#define GlintTexGen5Reg                                    1
-#define GlintTexGen5Off                               0x8b28
-
-#define GlintTexGen6                                  0x9b30
-#define GlintTexGen6Tag                               0x0366
-#define GlintTexGen6Reg                                    1
-#define GlintTexGen6Off                               0x8b30
-
-#define GlintTexGen7                                  0x9b38
-#define GlintTexGen7Tag                               0x0367
-#define GlintTexGen7Reg                                    1
-#define GlintTexGen7Off                               0x8b38
-
-#define GlintTexGen8                                  0x9b40
-#define GlintTexGen8Tag                               0x0368
-#define GlintTexGen8Reg                                    1
-#define GlintTexGen8Off                               0x8b40
-
-#define GlintTexGen9                                  0x9b48
-#define GlintTexGen9Tag                               0x0369
-#define GlintTexGen9Reg                                    1
-#define GlintTexGen9Off                               0x8b48
-
-#define GlintTexGen10                                 0x9b50
-#define GlintTexGen10Tag                              0x036a
-#define GlintTexGen10Reg                                   1
-#define GlintTexGen10Off                              0x8b50
-
-#define GlintTexGen11                                 0x9b58
-#define GlintTexGen11Tag                              0x036b
-#define GlintTexGen11Reg                                   1
-#define GlintTexGen11Off                              0x8b58
-
-#define GlintTexGen12                                 0x9b60
-#define GlintTexGen12Tag                              0x036c
-#define GlintTexGen12Reg                                   1
-#define GlintTexGen12Off                              0x8b60
-
-#define GlintTexGen13                                 0x9b68
-#define GlintTexGen13Tag                              0x036d
-#define GlintTexGen13Reg                                   1
-#define GlintTexGen13Off                              0x8b68
-
-#define GlintTexGen14                                 0x9b70
-#define GlintTexGen14Tag                              0x036e
-#define GlintTexGen14Reg                                   1
-#define GlintTexGen14Off                              0x8b70
-
-#define GlintTexGen15                                 0x9b78
-#define GlintTexGen15Tag                              0x036f
-#define GlintTexGen15Reg                                   1
-#define GlintTexGen15Off                              0x8b78
-
-#define GlintViewPortScaleX                           0x9b80
-#define GlintViewPortScaleXTag                        0x0370
-#define GlintViewPortScaleXReg                             1
-#define GlintViewPortScaleXOff                        0x8b80
-
-#define GlintViewPortScaleY                           0x9b88
-#define GlintViewPortScaleYTag                        0x0371
-#define GlintViewPortScaleYReg                             1
-#define GlintViewPortScaleYOff                        0x8b88
-
-#define GlintViewPortScaleZ                           0x9b90
-#define GlintViewPortScaleZTag                        0x0372
-#define GlintViewPortScaleZReg                             1
-#define GlintViewPortScaleZOff                        0x8b90
-
-#define GlintViewPortOffsetX                          0x9b98
-#define GlintViewPortOffsetXTag                       0x0373
-#define GlintViewPortOffsetXReg                            1
-#define GlintViewPortOffsetXOff                       0x8b98
-
-#define GlintViewPortOffsetY                          0x9ba0
-#define GlintViewPortOffsetYTag                       0x0374
-#define GlintViewPortOffsetYReg                            1
-#define GlintViewPortOffsetYOff                       0x8ba0
-
-#define GlintViewPortOffsetZ                          0x9ba8
-#define GlintViewPortOffsetZTag                       0x0375
-#define GlintViewPortOffsetZReg                            1
-#define GlintViewPortOffsetZOff                       0x8ba8
-
-#define GlintFogDensity                               0x9bb0
-#define GlintFogDensityTag                            0x0376
-#define GlintFogDensityReg                                 1
-#define GlintFogDensityOff                            0x8bb0
-
-#define GlintFogScale                                 0x9bb8
-#define GlintFogScaleTag                              0x0377
-#define GlintFogScaleReg                                   1
-#define GlintFogScaleOff                              0x8bb8
-
-#define GlintFogEnd                                   0x9bc0
-#define GlintFogEndTag                                0x0378
-#define GlintFogEndReg                                     1
-#define GlintFogEndOff                                0x8bc0
-
-#define GlintPolygonOffsetFactor                      0x9bc8
-#define GlintPolygonOffsetFactorTag                   0x0379
-#define GlintPolygonOffsetFactorReg                        1
-#define GlintPolygonOffsetFactorOff                   0x8bc8
-
-#define GlintPolygonOffsetBias                        0x9bd0
-#define GlintPolygonOffsetBiasTag                     0x037a
-#define GlintPolygonOffsetBiasReg                          1
-#define GlintPolygonOffsetBiasOff                     0x8bd0
-
-#define GlintLineClipLengthThreshold                  0x9bd8
-#define GlintLineClipLengthThresholdTag               0x037b
-#define GlintLineClipLengthThresholdReg                    1
-#define GlintLineClipLengthThresholdOff               0x8bd8
-
-#define GlintTriangleClipAreaThreshold                0x9be0
-#define GlintTriangleClipAreaThresholdTag             0x037c
-#define GlintTriangleClipAreaThresholdReg                  1
-#define GlintTriangleClipAreaThresholdOff             0x8be0
-
-#define GlintRasterPosXIncrement                      0x9be8
-#define GlintRasterPosXIncrementTag                   0x037d
-#define GlintRasterPosXIncrementReg                        1
-#define GlintRasterPosXIncrementOff                   0x8be8
-
-#define GlintRasterPosYIncrement                      0x9bf0
-#define GlintRasterPosYIncrementTag                   0x037e
-#define GlintRasterPosYIncrementReg                        1
-#define GlintRasterPosYIncrementOff                   0x8bf0
-
-#define GlintUserClip0X                               0x9c00
-#define GlintUserClip0XTag                            0x0380
-#define GlintUserClip0XReg                                 1
-#define GlintUserClip0XOff                            0x8c00
-
-#define GlintUserClip0Y                               0x9c08
-#define GlintUserClip0YTag                            0x0381
-#define GlintUserClip0YReg                                 1
-#define GlintUserClip0YOff                            0x8c08
-
-#define GlintUserClip0Z                               0x9c10
-#define GlintUserClip0ZTag                            0x0382
-#define GlintUserClip0ZReg                                 1
-#define GlintUserClip0ZOff                            0x8c10
-
-#define GlintUserClip0W                               0x9c18
-#define GlintUserClip0WTag                            0x0383
-#define GlintUserClip0WReg                                 1
-#define GlintUserClip0WOff                            0x8c18
-
-#define GlintUserClip1X                               0x9c20
-#define GlintUserClip1XTag                            0x0384
-#define GlintUserClip1XReg                                 1
-#define GlintUserClip1XOff                            0x8c20
-
-#define GlintUserClip1Y                               0x9c28
-#define GlintUserClip1YTag                            0x0385
-#define GlintUserClip1YReg                                 1
-#define GlintUserClip1YOff                            0x8c28
-
-#define GlintUserClip1Z                               0x9c30
-#define GlintUserClip1ZTag                            0x0386
-#define GlintUserClip1ZReg                                 1
-#define GlintUserClip1ZOff                            0x8c30
-
-#define GlintUserClip1W                               0x9c38
-#define GlintUserClip1WTag                            0x0387
-#define GlintUserClip1WReg                                 1
-#define GlintUserClip1WOff                            0x8c38
-
-#define GlintUserClip2X                               0x9c40
-#define GlintUserClip2XTag                            0x0388
-#define GlintUserClip2XReg                                 1
-#define GlintUserClip2XOff                            0x8c40
-
-#define GlintUserClip2Y                               0x9c48
-#define GlintUserClip2YTag                            0x0389
-#define GlintUserClip2YReg                                 1
-#define GlintUserClip2YOff                            0x8c48
-
-#define GlintUserClip2Z                               0x9c50
-#define GlintUserClip2ZTag                            0x038a
-#define GlintUserClip2ZReg                                 1
-#define GlintUserClip2ZOff                            0x8c50
-
-#define GlintUserClip2W                               0x9c58
-#define GlintUserClip2WTag                            0x038b
-#define GlintUserClip2WReg                                 1
-#define GlintUserClip2WOff                            0x8c58
-
-#define GlintUserClip3X                               0x9c60
-#define GlintUserClip3XTag                            0x038c
-#define GlintUserClip3XReg                                 1
-#define GlintUserClip3XOff                            0x8c60
-
-#define GlintUserClip3Y                               0x9c68
-#define GlintUserClip3YTag                            0x038d
-#define GlintUserClip3YReg                                 1
-#define GlintUserClip3YOff                            0x8c68
-
-#define GlintUserClip3Z                               0x9c70
-#define GlintUserClip3ZTag                            0x038e
-#define GlintUserClip3ZReg                                 1
-#define GlintUserClip3ZOff                            0x8c70
-
-#define GlintUserClip3W                               0x9c78
-#define GlintUserClip3WTag                            0x038f
-#define GlintUserClip3WReg                                 1
-#define GlintUserClip3WOff                            0x8c78
-
-#define GlintUserClip4X                               0x9c80
-#define GlintUserClip4XTag                            0x0390
-#define GlintUserClip4XReg                                 1
-#define GlintUserClip4XOff                            0x8c80
-
-#define GlintUserClip4Y                               0x9c88
-#define GlintUserClip4YTag                            0x0391
-#define GlintUserClip4YReg                                 1
-#define GlintUserClip4YOff                            0x8c88
-
-#define GlintUserClip4Z                               0x9c90
-#define GlintUserClip4ZTag                            0x0392
-#define GlintUserClip4ZReg                                 1
-#define GlintUserClip4ZOff                            0x8c90
-
-#define GlintUserClip4W                               0x9c98
-#define GlintUserClip4WTag                            0x0393
-#define GlintUserClip4WReg                                 1
-#define GlintUserClip4WOff                            0x8c98
-
-#define GlintUserClip5X                               0x9ca0
-#define GlintUserClip5XTag                            0x0394
-#define GlintUserClip5XReg                                 1
-#define GlintUserClip5XOff                            0x8ca0
-
-#define GlintUserClip5Y                               0x9ca8
-#define GlintUserClip5YTag                            0x0395
-#define GlintUserClip5YReg                                 1
-#define GlintUserClip5YOff                            0x8ca8
-
-#define GlintUserClip5Z                               0x9cb0
-#define GlintUserClip5ZTag                            0x0396
-#define GlintUserClip5ZReg                                 1
-#define GlintUserClip5ZOff                            0x8cb0
-
-#define GlintUserClip5W                               0x9cb8
-#define GlintUserClip5WTag                            0x0397
-#define GlintUserClip5WReg                                 1
-#define GlintUserClip5WOff                            0x8cb8
-
-#define GlintRasterPosXOffset                         0x9ce8
-#define GlintRasterPosXOffsetTag                      0x039d
-#define GlintRasterPosXOffsetReg                           1
-#define GlintRasterPosXOffsetOff                      0x8ce8
-
-#define GlintRasterPosYOffset                         0x9cf0
-#define GlintRasterPosYOffsetTag                      0x039e
-#define GlintRasterPosYOffsetReg                           1
-#define GlintRasterPosYOffsetOff                      0x8cf0
-
-#define GlintAttenuationCutOff                        0x9cf8
-#define GlintAttenuationCutOffTag                     0x039f
-#define GlintAttenuationCutOffReg                          1
-#define GlintAttenuationCutOffOff                     0x8cf8
-
-#define GlintLight0Mode                               0x9d00
-#define GlintLight0ModeTag                            0x03a0
-#define GlintLight0ModeReg                                 1
-#define GlintLight0ModeOff                            0x8d00
-
-#define GlintLight0AmbientIntensityRed                0x9d08
-#define GlintLight0AmbientIntensityRedTag             0x03a1
-#define GlintLight0AmbientIntensityRedReg                  1
-#define GlintLight0AmbientIntensityRedOff             0x8d08
-
-#define GlintLight0AmbientIntensityGreen              0x9d10
-#define GlintLight0AmbientIntensityGreenTag           0x03a2
-#define GlintLight0AmbientIntensityGreenReg                1
-#define GlintLight0AmbientIntensityGreenOff           0x8d10
-
-#define GlintLight0AmbientIntensityBlue               0x9d18
-#define GlintLight0AmbientIntensityBlueTag            0x03a3
-#define GlintLight0AmbientIntensityBlueReg                 1
-#define GlintLight0AmbientIntensityBlueOff            0x8d18
-
-#define GlintLight0DiffuseIntensityRed                0x9d20
-#define GlintLight0DiffuseIntensityRedTag             0x03a4
-#define GlintLight0DiffuseIntensityRedReg                  1
-#define GlintLight0DiffuseIntensityRedOff             0x8d20
-
-#define GlintLight0DiffuseIntensityGreen              0x9d28
-#define GlintLight0DiffuseIntensityGreenTag           0x03a5
-#define GlintLight0DiffuseIntensityGreenReg                1
-#define GlintLight0DiffuseIntensityGreenOff           0x8d28
-
-#define GlintLight0DiffuseIntensityBlue               0x9d30
-#define GlintLight0DiffuseIntensityBlueTag            0x03a6
-#define GlintLight0DiffuseIntensityBlueReg                 1
-#define GlintLight0DiffuseIntensityBlueOff            0x8d30
-
-#define GlintLight0SpecularIntensityRed               0x9d38
-#define GlintLight0SpecularIntensityRedTag            0x03a7
-#define GlintLight0SpecularIntensityRedReg                 1
-#define GlintLight0SpecularIntensityRedOff            0x8d38
-
-#define GlintLight0SpecularIntensityGreen             0x9d40
-#define GlintLight0SpecularIntensityGreenTag          0x03a8
-#define GlintLight0SpecularIntensityGreenReg               1
-#define GlintLight0SpecularIntensityGreenOff          0x8d40
-
-#define GlintLight0SpecularIntensityBlue              0x9d48
-#define GlintLight0SpecularIntensityBlueTag           0x03a9
-#define GlintLight0SpecularIntensityBlueReg                1
-#define GlintLight0SpecularIntensityBlueOff           0x8d48
-
-#define GlintLight0PositionX                          0x9d50
-#define GlintLight0PositionXTag                       0x03aa
-#define GlintLight0PositionXReg                            1
-#define GlintLight0PositionXOff                       0x8d50
-
-#define GlintLight0PositionY                          0x9d58
-#define GlintLight0PositionYTag                       0x03ab
-#define GlintLight0PositionYReg                            1
-#define GlintLight0PositionYOff                       0x8d58
-
-#define GlintLight0PositionZ                          0x9d60
-#define GlintLight0PositionZTag                       0x03ac
-#define GlintLight0PositionZReg                            1
-#define GlintLight0PositionZOff                       0x8d60
-
-#define GlintLight0PositionW                          0x9d68
-#define GlintLight0PositionWTag                       0x03ad
-#define GlintLight0PositionWReg                            1
-#define GlintLight0PositionWOff                       0x8d68
-
-#define GlintLight0SpotlightDirectionX                0x9d70
-#define GlintLight0SpotlightDirectionXTag             0x03ae
-#define GlintLight0SpotlightDirectionXReg                  1
-#define GlintLight0SpotlightDirectionXOff             0x8d70
-
-#define GlintLight0SpotlightDirectionY                0x9d78
-#define GlintLight0SpotlightDirectionYTag             0x03af
-#define GlintLight0SpotlightDirectionYReg                  1
-#define GlintLight0SpotlightDirectionYOff             0x8d78
-
-#define GlintLight0SpotlightDirectionZ                0x9d80
-#define GlintLight0SpotlightDirectionZTag             0x03b0
-#define GlintLight0SpotlightDirectionZReg                  1
-#define GlintLight0SpotlightDirectionZOff             0x8d80
-
-#define GlintLight0SpotlightExponent                  0x9d88
-#define GlintLight0SpotlightExponentTag               0x03b1
-#define GlintLight0SpotlightExponentReg                    1
-#define GlintLight0SpotlightExponentOff               0x8d88
-
-#define GlintLight0CosSpotlightCutoffAngle            0x9d90
-#define GlintLight0CosSpotlightCutoffAngleTag         0x03b2
-#define GlintLight0CosSpotlightCutoffAngleReg              1
-#define GlintLight0CosSpotlightCutoffAngleOff         0x8d90
-
-#define GlintLight0ConstantAttenuation                0x9d98
-#define GlintLight0ConstantAttenuationTag             0x03b3
-#define GlintLight0ConstantAttenuationReg                  1
-#define GlintLight0ConstantAttenuationOff             0x8d98
-
-#define GlintLight0LinearAttenuation                  0x9da0
-#define GlintLight0LinearAttenuationTag               0x03b4
-#define GlintLight0LinearAttenuationReg                    1
-#define GlintLight0LinearAttenuationOff               0x8da0
-
-#define GlintLight0QuadraticAttenuation               0x9da8
-#define GlintLight0QuadraticAttenuationTag            0x03b5
-#define GlintLight0QuadraticAttenuationReg                 1
-#define GlintLight0QuadraticAttenuationOff            0x8da8
-
-#define GlintLight1Mode                               0x9db0
-#define GlintLight1ModeTag                            0x03b6
-#define GlintLight1ModeReg                                 1
-#define GlintLight1ModeOff                            0x8db0
-
-#define GlintLight1AmbientIntensityRed                0x9db8
-#define GlintLight1AmbientIntensityRedTag             0x03b7
-#define GlintLight1AmbientIntensityRedReg                  1
-#define GlintLight1AmbientIntensityRedOff             0x8db8
-
-#define GlintLight1AmbientIntensityGreen              0x9dc0
-#define GlintLight1AmbientIntensityGreenTag           0x03b8
-#define GlintLight1AmbientIntensityGreenReg                1
-#define GlintLight1AmbientIntensityGreenOff           0x8dc0
-
-#define GlintLight1AmbientIntensityBlue               0x9dc8
-#define GlintLight1AmbientIntensityBlueTag            0x03b9
-#define GlintLight1AmbientIntensityBlueReg                 1
-#define GlintLight1AmbientIntensityBlueOff            0x8dc8
-
-#define GlintLight1DiffuseIntensityRed                0x9dd0
-#define GlintLight1DiffuseIntensityRedTag             0x03ba
-#define GlintLight1DiffuseIntensityRedReg                  1
-#define GlintLight1DiffuseIntensityRedOff             0x8dd0
-
-#define GlintLight1DiffuseIntensityGreen              0x9dd8
-#define GlintLight1DiffuseIntensityGreenTag           0x03bb
-#define GlintLight1DiffuseIntensityGreenReg                1
-#define GlintLight1DiffuseIntensityGreenOff           0x8dd8
-
-#define GlintLight1DiffuseIntensityBlue               0x9de0
-#define GlintLight1DiffuseIntensityBlueTag            0x03bc
-#define GlintLight1DiffuseIntensityBlueReg                 1
-#define GlintLight1DiffuseIntensityBlueOff            0x8de0
-
-#define GlintLight1SpecularIntensityRed               0x9de8
-#define GlintLight1SpecularIntensityRedTag            0x03bd
-#define GlintLight1SpecularIntensityRedReg                 1
-#define GlintLight1SpecularIntensityRedOff            0x8de8
-
-#define GlintLight1SpecularIntensityGreen             0x9df0
-#define GlintLight1SpecularIntensityGreenTag          0x03be
-#define GlintLight1SpecularIntensityGreenReg               1
-#define GlintLight1SpecularIntensityGreenOff          0x8df0
-
-#define GlintLight1SpecularIntensityBlue              0x9df8
-#define GlintLight1SpecularIntensityBlueTag           0x03bf
-#define GlintLight1SpecularIntensityBlueReg                1
-#define GlintLight1SpecularIntensityBlueOff           0x8df8
-
-#define GlintLight1PositionX                          0x9e00
-#define GlintLight1PositionXTag                       0x03c0
-#define GlintLight1PositionXReg                            1
-#define GlintLight1PositionXOff                       0x8e00
-
-#define GlintLight1PositionY                          0x9e08
-#define GlintLight1PositionYTag                       0x03c1
-#define GlintLight1PositionYReg                            1
-#define GlintLight1PositionYOff                       0x8e08
-
-#define GlintLight1PositionZ                          0x9e10
-#define GlintLight1PositionZTag                       0x03c2
-#define GlintLight1PositionZReg                            1
-#define GlintLight1PositionZOff                       0x8e10
-
-#define GlintLight1PositionW                          0x9e18
-#define GlintLight1PositionWTag                       0x03c3
-#define GlintLight1PositionWReg                            1
-#define GlintLight1PositionWOff                       0x8e18
-
-#define GlintLight1SpotlightDirectionX                0x9e20
-#define GlintLight1SpotlightDirectionXTag             0x03c4
-#define GlintLight1SpotlightDirectionXReg                  1
-#define GlintLight1SpotlightDirectionXOff             0x8e20
-
-#define GlintLight1SpotlightDirectionY                0x9e28
-#define GlintLight1SpotlightDirectionYTag             0x03c5
-#define GlintLight1SpotlightDirectionYReg                  1
-#define GlintLight1SpotlightDirectionYOff             0x8e28
-
-#define GlintLight1SpotlightDirectionZ                0x9e30
-#define GlintLight1SpotlightDirectionZTag             0x03c6
-#define GlintLight1SpotlightDirectionZReg                  1
-#define GlintLight1SpotlightDirectionZOff             0x8e30
-
-#define GlintLight1SpotlightExponent                  0x9e38
-#define GlintLight1SpotlightExponentTag               0x03c7
-#define GlintLight1SpotlightExponentReg                    1
-#define GlintLight1SpotlightExponentOff               0x8e38
-
-#define GlintLight1CosSpotlightCutoffAngle            0x9e40
-#define GlintLight1CosSpotlightCutoffAngleTag         0x03c8
-#define GlintLight1CosSpotlightCutoffAngleReg              1
-#define GlintLight1CosSpotlightCutoffAngleOff         0x8e40
-
-#define GlintLight1ConstantAttenuation                0x9e48
-#define GlintLight1ConstantAttenuationTag             0x03c9
-#define GlintLight1ConstantAttenuationReg                  1
-#define GlintLight1ConstantAttenuationOff             0x8e48
-
-#define GlintLight1LinearAttenuation                  0x9e50
-#define GlintLight1LinearAttenuationTag               0x03ca
-#define GlintLight1LinearAttenuationReg                    1
-#define GlintLight1LinearAttenuationOff               0x8e50
-
-#define GlintLight1QuadraticAttenuation               0x9e58
-#define GlintLight1QuadraticAttenuationTag            0x03cb
-#define GlintLight1QuadraticAttenuationReg                 1
-#define GlintLight1QuadraticAttenuationOff            0x8e58
-
-#define GlintLight2Mode                               0x9e60
-#define GlintLight2ModeTag                            0x03cc
-#define GlintLight2ModeReg                                 1
-#define GlintLight2ModeOff                            0x8e60
-
-#define GlintLight2AmbientIntensityRed                0x9e68
-#define GlintLight2AmbientIntensityRedTag             0x03cd
-#define GlintLight2AmbientIntensityRedReg                  1
-#define GlintLight2AmbientIntensityRedOff             0x8e68
-
-#define GlintLight2AmbientIntensityGreen              0x9e70
-#define GlintLight2AmbientIntensityGreenTag           0x03ce
-#define GlintLight2AmbientIntensityGreenReg                1
-#define GlintLight2AmbientIntensityGreenOff           0x8e70
-
-#define GlintLight2AmbientIntensityBlue               0x9e78
-#define GlintLight2AmbientIntensityBlueTag            0x03cf
-#define GlintLight2AmbientIntensityBlueReg                 1
-#define GlintLight2AmbientIntensityBlueOff            0x8e78
-
-#define GlintLight2DiffuseIntensityRed                0x9e80
-#define GlintLight2DiffuseIntensityRedTag             0x03d0
-#define GlintLight2DiffuseIntensityRedReg                  1
-#define GlintLight2DiffuseIntensityRedOff             0x8e80
-
-#define GlintLight2DiffuseIntensityGreen              0x9e88
-#define GlintLight2DiffuseIntensityGreenTag           0x03d1
-#define GlintLight2DiffuseIntensityGreenReg                1
-#define GlintLight2DiffuseIntensityGreenOff           0x8e88
-
-#define GlintLight2DiffuseIntensityBlue               0x9e90
-#define GlintLight2DiffuseIntensityBlueTag            0x03d2
-#define GlintLight2DiffuseIntensityBlueReg                 1
-#define GlintLight2DiffuseIntensityBlueOff            0x8e90
-
-#define GlintLight2SpecularIntensityRed               0x9e98
-#define GlintLight2SpecularIntensityRedTag            0x03d3
-#define GlintLight2SpecularIntensityRedReg                 1
-#define GlintLight2SpecularIntensityRedOff            0x8e98
-
-#define GlintLight2SpecularIntensityGreen             0x9ea0
-#define GlintLight2SpecularIntensityGreenTag          0x03d4
-#define GlintLight2SpecularIntensityGreenReg               1
-#define GlintLight2SpecularIntensityGreenOff          0x8ea0
-
-#define GlintLight2SpecularIntensityBlue              0x9ea8
-#define GlintLight2SpecularIntensityBlueTag           0x03d5
-#define GlintLight2SpecularIntensityBlueReg                1
-#define GlintLight2SpecularIntensityBlueOff           0x8ea8
-
-#define GlintLight2PositionX                          0x9eb0
-#define GlintLight2PositionXTag                       0x03d6
-#define GlintLight2PositionXReg                            1
-#define GlintLight2PositionXOff                       0x8eb0
-
-#define GlintLight2PositionY                          0x9eb8
-#define GlintLight2PositionYTag                       0x03d7
-#define GlintLight2PositionYReg                            1
-#define GlintLight2PositionYOff                       0x8eb8
-
-#define GlintLight2PositionZ                          0x9ec0
-#define GlintLight2PositionZTag                       0x03d8
-#define GlintLight2PositionZReg                            1
-#define GlintLight2PositionZOff                       0x8ec0
-
-#define GlintLight2PositionW                          0x9ec8
-#define GlintLight2PositionWTag                       0x03d9
-#define GlintLight2PositionWReg                            1
-#define GlintLight2PositionWOff                       0x8ec8
-
-#define GlintLight2SpotlightDirectionX                0x9ed0
-#define GlintLight2SpotlightDirectionXTag             0x03da
-#define GlintLight2SpotlightDirectionXReg                  1
-#define GlintLight2SpotlightDirectionXOff             0x8ed0
-
-#define GlintLight2SpotlightDirectionY                0x9ed8
-#define GlintLight2SpotlightDirectionYTag             0x03db
-#define GlintLight2SpotlightDirectionYReg                  1
-#define GlintLight2SpotlightDirectionYOff             0x8ed8
-
-#define GlintLight2SpotlightDirectionZ                0x9ee0
-#define GlintLight2SpotlightDirectionZTag             0x03dc
-#define GlintLight2SpotlightDirectionZReg                  1
-#define GlintLight2SpotlightDirectionZOff             0x8ee0
-
-#define GlintLight2SpotlightExponent                  0x9ee8
-#define GlintLight2SpotlightExponentTag               0x03dd
-#define GlintLight2SpotlightExponentReg                    1
-#define GlintLight2SpotlightExponentOff               0x8ee8
-
-#define GlintLight2CosSpotlightCutoffAngle            0x9ef0
-#define GlintLight2CosSpotlightCutoffAngleTag         0x03de
-#define GlintLight2CosSpotlightCutoffAngleReg              1
-#define GlintLight2CosSpotlightCutoffAngleOff         0x8ef0
-
-#define GlintLight2ConstantAttenuation                0x9ef8
-#define GlintLight2ConstantAttenuationTag             0x03df
-#define GlintLight2ConstantAttenuationReg                  1
-#define GlintLight2ConstantAttenuationOff             0x8ef8
-
-#define GlintLight2LinearAttenuation                  0x9f00
-#define GlintLight2LinearAttenuationTag               0x03e0
-#define GlintLight2LinearAttenuationReg                    1
-#define GlintLight2LinearAttenuationOff               0x8f00
-
-#define GlintLight2QuadraticAttenuation               0x9f08
-#define GlintLight2QuadraticAttenuationTag            0x03e1
-#define GlintLight2QuadraticAttenuationReg                 1
-#define GlintLight2QuadraticAttenuationOff            0x8f08
-
-#define GlintLight3Mode                               0x9f10
-#define GlintLight3ModeTag                            0x03e2
-#define GlintLight3ModeReg                                 1
-#define GlintLight3ModeOff                            0x8f10
-
-#define GlintLight3AmbientIntensityRed                0x9f18
-#define GlintLight3AmbientIntensityRedTag             0x03e3
-#define GlintLight3AmbientIntensityRedReg                  1
-#define GlintLight3AmbientIntensityRedOff             0x8f18
-
-#define GlintLight3AmbientIntensityGreen              0x9f20
-#define GlintLight3AmbientIntensityGreenTag           0x03e4
-#define GlintLight3AmbientIntensityGreenReg                1
-#define GlintLight3AmbientIntensityGreenOff           0x8f20
-
-#define GlintLight3AmbientIntensityBlue               0x9f28
-#define GlintLight3AmbientIntensityBlueTag            0x03e5
-#define GlintLight3AmbientIntensityBlueReg                 1
-#define GlintLight3AmbientIntensityBlueOff            0x8f28
-
-#define GlintLight3DiffuseIntensityRed                0x9f30
-#define GlintLight3DiffuseIntensityRedTag             0x03e6
-#define GlintLight3DiffuseIntensityRedReg                  1
-#define GlintLight3DiffuseIntensityRedOff             0x8f30
-
-#define GlintLight3DiffuseIntensityGreen              0x9f38
-#define GlintLight3DiffuseIntensityGreenTag           0x03e7
-#define GlintLight3DiffuseIntensityGreenReg                1
-#define GlintLight3DiffuseIntensityGreenOff           0x8f38
-
-#define GlintLight3DiffuseIntensityBlue               0x9f40
-#define GlintLight3DiffuseIntensityBlueTag            0x03e8
-#define GlintLight3DiffuseIntensityBlueReg                 1
-#define GlintLight3DiffuseIntensityBlueOff            0x8f40
-
-#define GlintLight3SpecularIntensityRed               0x9f48
-#define GlintLight3SpecularIntensityRedTag            0x03e9
-#define GlintLight3SpecularIntensityRedReg                 1
-#define GlintLight3SpecularIntensityRedOff            0x8f48
-
-#define GlintLight3SpecularIntensityGreen             0x9f50
-#define GlintLight3SpecularIntensityGreenTag          0x03ea
-#define GlintLight3SpecularIntensityGreenReg               1
-#define GlintLight3SpecularIntensityGreenOff          0x8f50
-
-#define GlintLight3SpecularIntensityBlue              0x9f58
-#define GlintLight3SpecularIntensityBlueTag           0x03eb
-#define GlintLight3SpecularIntensityBlueReg                1
-#define GlintLight3SpecularIntensityBlueOff           0x8f58
-
-#define GlintLight3PositionX                          0x9f60
-#define GlintLight3PositionXTag                       0x03ec
-#define GlintLight3PositionXReg                            1
-#define GlintLight3PositionXOff                       0x8f60
-
-#define GlintLight3PositionY                          0x9f68
-#define GlintLight3PositionYTag                       0x03ed
-#define GlintLight3PositionYReg                            1
-#define GlintLight3PositionYOff                       0x8f68
-
-#define GlintLight3PositionZ                          0x9f70
-#define GlintLight3PositionZTag                       0x03ee
-#define GlintLight3PositionZReg                            1
-#define GlintLight3PositionZOff                       0x8f70
-
-#define GlintLight3PositionW                          0x9f78
-#define GlintLight3PositionWTag                       0x03ef
-#define GlintLight3PositionWReg                            1
-#define GlintLight3PositionWOff                       0x8f78
-
-#define GlintLight3SpotlightDirectionX                0x9f80
-#define GlintLight3SpotlightDirectionXTag             0x03f0
-#define GlintLight3SpotlightDirectionXReg                  1
-#define GlintLight3SpotlightDirectionXOff             0x8f80
-
-#define GlintLight3SpotlightDirectionY                0x9f88
-#define GlintLight3SpotlightDirectionYTag             0x03f1
-#define GlintLight3SpotlightDirectionYReg                  1
-#define GlintLight3SpotlightDirectionYOff             0x8f88
-
-#define GlintLight3SpotlightDirectionZ                0x9f90
-#define GlintLight3SpotlightDirectionZTag             0x03f2
-#define GlintLight3SpotlightDirectionZReg                  1
-#define GlintLight3SpotlightDirectionZOff             0x8f90
-
-#define GlintLight3SpotlightExponent                  0x9f98
-#define GlintLight3SpotlightExponentTag               0x03f3
-#define GlintLight3SpotlightExponentReg                    1
-#define GlintLight3SpotlightExponentOff               0x8f98
-
-#define GlintLight3CosSpotlightCutoffAngle            0x9fa0
-#define GlintLight3CosSpotlightCutoffAngleTag         0x03f4
-#define GlintLight3CosSpotlightCutoffAngleReg              1
-#define GlintLight3CosSpotlightCutoffAngleOff         0x8fa0
-
-#define GlintLight3ConstantAttenuation                0x9fa8
-#define GlintLight3ConstantAttenuationTag             0x03f5
-#define GlintLight3ConstantAttenuationReg                  1
-#define GlintLight3ConstantAttenuationOff             0x8fa8
-
-#define GlintLight3LinearAttenuation                  0x9fb0
-#define GlintLight3LinearAttenuationTag               0x03f6
-#define GlintLight3LinearAttenuationReg                    1
-#define GlintLight3LinearAttenuationOff               0x8fb0
-
-#define GlintLight3QuadraticAttenuation               0x9fb8
-#define GlintLight3QuadraticAttenuationTag            0x03f7
-#define GlintLight3QuadraticAttenuationReg                 1
-#define GlintLight3QuadraticAttenuationOff            0x8fb8
-
-#define GlintLight4Mode                               0x9fc0
-#define GlintLight4ModeTag                            0x03f8
-#define GlintLight4ModeReg                                 1
-#define GlintLight4ModeOff                            0x8fc0
-
-#define GlintLight4AmbientIntensityRed                0x9fc8
-#define GlintLight4AmbientIntensityRedTag             0x03f9
-#define GlintLight4AmbientIntensityRedReg                  1
-#define GlintLight4AmbientIntensityRedOff             0x8fc8
-
-#define GlintLight4AmbientIntensityGreen              0x9fd0
-#define GlintLight4AmbientIntensityGreenTag           0x03fa
-#define GlintLight4AmbientIntensityGreenReg                1
-#define GlintLight4AmbientIntensityGreenOff           0x8fd0
-
-#define GlintLight4AmbientIntensityBlue               0x9fd8
-#define GlintLight4AmbientIntensityBlueTag            0x03fb
-#define GlintLight4AmbientIntensityBlueReg                 1
-#define GlintLight4AmbientIntensityBlueOff            0x8fd8
-
-#define GlintLight4DiffuseIntensityRed                0x9fe0
-#define GlintLight4DiffuseIntensityRedTag             0x03fc
-#define GlintLight4DiffuseIntensityRedReg                  1
-#define GlintLight4DiffuseIntensityRedOff             0x8fe0
-
-#define GlintLight4DiffuseIntensityGreen              0x9fe8
-#define GlintLight4DiffuseIntensityGreenTag           0x03fd
-#define GlintLight4DiffuseIntensityGreenReg                1
-#define GlintLight4DiffuseIntensityGreenOff           0x8fe8
-
-#define GlintLight4DiffuseIntensityBlue               0x9ff0
-#define GlintLight4DiffuseIntensityBlueTag            0x03fe
-#define GlintLight4DiffuseIntensityBlueReg                 1
-#define GlintLight4DiffuseIntensityBlueOff            0x8ff0
-
-#define GlintLight4SpecularIntensityRed               0x9ff8
-#define GlintLight4SpecularIntensityRedTag            0x03ff
-#define GlintLight4SpecularIntensityRedReg                 1
-#define GlintLight4SpecularIntensityRedOff            0x8ff8
-
-#define GlintLight4SpecularIntensityGreen             0xa000
-#define GlintLight4SpecularIntensityGreenTag          0x0400
-#define GlintLight4SpecularIntensityGreenReg               1
-#define GlintLight4SpecularIntensityGreenOff          0x9000
-
-#define GlintLight4SpecularIntensityBlue              0xa008
-#define GlintLight4SpecularIntensityBlueTag           0x0401
-#define GlintLight4SpecularIntensityBlueReg                1
-#define GlintLight4SpecularIntensityBlueOff           0x9008
-
-#define GlintLight4PositionX                          0xa010
-#define GlintLight4PositionXTag                       0x0402
-#define GlintLight4PositionXReg                            1
-#define GlintLight4PositionXOff                       0x9010
-
-#define GlintLight4PositionY                          0xa018
-#define GlintLight4PositionYTag                       0x0403
-#define GlintLight4PositionYReg                            1
-#define GlintLight4PositionYOff                       0x9018
-
-#define GlintLight4PositionZ                          0xa020
-#define GlintLight4PositionZTag                       0x0404
-#define GlintLight4PositionZReg                            1
-#define GlintLight4PositionZOff                       0x9020
-
-#define GlintLight4PositionW                          0xa028
-#define GlintLight4PositionWTag                       0x0405
-#define GlintLight4PositionWReg                            1
-#define GlintLight4PositionWOff                       0x9028
-
-#define GlintLight4SpotlightDirectionX                0xa030
-#define GlintLight4SpotlightDirectionXTag             0x0406
-#define GlintLight4SpotlightDirectionXReg                  1
-#define GlintLight4SpotlightDirectionXOff             0x9030
-
-#define GlintLight4SpotlightDirectionY                0xa038
-#define GlintLight4SpotlightDirectionYTag             0x0407
-#define GlintLight4SpotlightDirectionYReg                  1
-#define GlintLight4SpotlightDirectionYOff             0x9038
-
-#define GlintLight4SpotlightDirectionZ                0xa040
-#define GlintLight4SpotlightDirectionZTag             0x0408
-#define GlintLight4SpotlightDirectionZReg                  1
-#define GlintLight4SpotlightDirectionZOff             0x9040
-
-#define GlintLight4SpotlightExponent                  0xa048
-#define GlintLight4SpotlightExponentTag               0x0409
-#define GlintLight4SpotlightExponentReg                    1
-#define GlintLight4SpotlightExponentOff               0x9048
-
-#define GlintLight4CosSpotlightCutoffAngle            0xa050
-#define GlintLight4CosSpotlightCutoffAngleTag         0x040a
-#define GlintLight4CosSpotlightCutoffAngleReg              1
-#define GlintLight4CosSpotlightCutoffAngleOff         0x9050
-
-#define GlintLight4ConstantAttenuation                0xa058
-#define GlintLight4ConstantAttenuationTag             0x040b
-#define GlintLight4ConstantAttenuationReg                  1
-#define GlintLight4ConstantAttenuationOff             0x9058
-
-#define GlintLight4LinearAttenuation                  0xa060
-#define GlintLight4LinearAttenuationTag               0x040c
-#define GlintLight4LinearAttenuationReg                    1
-#define GlintLight4LinearAttenuationOff               0x9060
-
-#define GlintLight4QuadraticAttenuation               0xa068
-#define GlintLight4QuadraticAttenuationTag            0x040d
-#define GlintLight4QuadraticAttenuationReg                 1
-#define GlintLight4QuadraticAttenuationOff            0x9068
-
-#define GlintLight5Mode                               0xa070
-#define GlintLight5ModeTag                            0x040e
-#define GlintLight5ModeReg                                 1
-#define GlintLight5ModeOff                            0x9070
-
-#define GlintLight5AmbientIntensityRed                0xa078
-#define GlintLight5AmbientIntensityRedTag             0x040f
-#define GlintLight5AmbientIntensityRedReg                  1
-#define GlintLight5AmbientIntensityRedOff             0x9078
-
-#define GlintLight5AmbientIntensityGreen              0xa080
-#define GlintLight5AmbientIntensityGreenTag           0x0410
-#define GlintLight5AmbientIntensityGreenReg                1
-#define GlintLight5AmbientIntensityGreenOff           0x9080
-
-#define GlintLight5AmbientIntensityBlue               0xa088
-#define GlintLight5AmbientIntensityBlueTag            0x0411
-#define GlintLight5AmbientIntensityBlueReg                 1
-#define GlintLight5AmbientIntensityBlueOff            0x9088
-
-#define GlintLight5DiffuseIntensityRed                0xa090
-#define GlintLight5DiffuseIntensityRedTag             0x0412
-#define GlintLight5DiffuseIntensityRedReg                  1
-#define GlintLight5DiffuseIntensityRedOff             0x9090
-
-#define GlintLight5DiffuseIntensityGreen              0xa098
-#define GlintLight5DiffuseIntensityGreenTag           0x0413
-#define GlintLight5DiffuseIntensityGreenReg                1
-#define GlintLight5DiffuseIntensityGreenOff           0x9098
-
-#define GlintLight5DiffuseIntensityBlue               0xa0a0
-#define GlintLight5DiffuseIntensityBlueTag            0x0414
-#define GlintLight5DiffuseIntensityBlueReg                 1
-#define GlintLight5DiffuseIntensityBlueOff            0x90a0
-
-#define GlintLight5SpecularIntensityRed               0xa0a8
-#define GlintLight5SpecularIntensityRedTag            0x0415
-#define GlintLight5SpecularIntensityRedReg                 1
-#define GlintLight5SpecularIntensityRedOff            0x90a8
-
-#define GlintLight5SpecularIntensityGreen             0xa0b0
-#define GlintLight5SpecularIntensityGreenTag          0x0416
-#define GlintLight5SpecularIntensityGreenReg               1
-#define GlintLight5SpecularIntensityGreenOff          0x90b0
-
-#define GlintLight5SpecularIntensityBlue              0xa0b8
-#define GlintLight5SpecularIntensityBlueTag           0x0417
-#define GlintLight5SpecularIntensityBlueReg                1
-#define GlintLight5SpecularIntensityBlueOff           0x90b8
-
-#define GlintLight5PositionX                          0xa0c0
-#define GlintLight5PositionXTag                       0x0418
-#define GlintLight5PositionXReg                            1
-#define GlintLight5PositionXOff                       0x90c0
-
-#define GlintLight5PositionY                          0xa0c8
-#define GlintLight5PositionYTag                       0x0419
-#define GlintLight5PositionYReg                            1
-#define GlintLight5PositionYOff                       0x90c8
-
-#define GlintLight5PositionZ                          0xa0d0
-#define GlintLight5PositionZTag                       0x041a
-#define GlintLight5PositionZReg                            1
-#define GlintLight5PositionZOff                       0x90d0
-
-#define GlintLight5PositionW                          0xa0d8
-#define GlintLight5PositionWTag                       0x041b
-#define GlintLight5PositionWReg                            1
-#define GlintLight5PositionWOff                       0x90d8
-
-#define GlintLight5SpotlightDirectionX                0xa0e0
-#define GlintLight5SpotlightDirectionXTag             0x041c
-#define GlintLight5SpotlightDirectionXReg                  1
-#define GlintLight5SpotlightDirectionXOff             0x90e0
-
-#define GlintLight5SpotlightDirectionY                0xa0e8
-#define GlintLight5SpotlightDirectionYTag             0x041d
-#define GlintLight5SpotlightDirectionYReg                  1
-#define GlintLight5SpotlightDirectionYOff             0x90e8
-
-#define GlintLight5SpotlightDirectionZ                0xa0f0
-#define GlintLight5SpotlightDirectionZTag             0x041e
-#define GlintLight5SpotlightDirectionZReg                  1
-#define GlintLight5SpotlightDirectionZOff             0x90f0
-
-#define GlintLight5SpotlightExponent                  0xa0f8
-#define GlintLight5SpotlightExponentTag               0x041f
-#define GlintLight5SpotlightExponentReg                    1
-#define GlintLight5SpotlightExponentOff               0x90f8
-
-#define GlintLight5CosSpotlightCutoffAngle            0xa100
-#define GlintLight5CosSpotlightCutoffAngleTag         0x0420
-#define GlintLight5CosSpotlightCutoffAngleReg              1
-#define GlintLight5CosSpotlightCutoffAngleOff         0x9100
-
-#define GlintLight5ConstantAttenuation                0xa108
-#define GlintLight5ConstantAttenuationTag             0x0421
-#define GlintLight5ConstantAttenuationReg                  1
-#define GlintLight5ConstantAttenuationOff             0x9108
-
-#define GlintLight5LinearAttenuation                  0xa110
-#define GlintLight5LinearAttenuationTag               0x0422
-#define GlintLight5LinearAttenuationReg                    1
-#define GlintLight5LinearAttenuationOff               0x9110
-
-#define GlintLight5QuadraticAttenuation               0xa118
-#define GlintLight5QuadraticAttenuationTag            0x0423
-#define GlintLight5QuadraticAttenuationReg                 1
-#define GlintLight5QuadraticAttenuationOff            0x9118
-
-#define GlintLight6Mode                               0xa120
-#define GlintLight6ModeTag                            0x0424
-#define GlintLight6ModeReg                                 1
-#define GlintLight6ModeOff                            0x9120
-
-#define GlintLight6AmbientIntensityRed                0xa128
-#define GlintLight6AmbientIntensityRedTag             0x0425
-#define GlintLight6AmbientIntensityRedReg                  1
-#define GlintLight6AmbientIntensityRedOff             0x9128
-
-#define GlintLight6AmbientIntensityGreen              0xa130
-#define GlintLight6AmbientIntensityGreenTag           0x0426
-#define GlintLight6AmbientIntensityGreenReg                1
-#define GlintLight6AmbientIntensityGreenOff           0x9130
-
-#define GlintLight6AmbientIntensityBlue               0xa138
-#define GlintLight6AmbientIntensityBlueTag            0x0427
-#define GlintLight6AmbientIntensityBlueReg                 1
-#define GlintLight6AmbientIntensityBlueOff            0x9138
-
-#define GlintLight6DiffuseIntensityRed                0xa140
-#define GlintLight6DiffuseIntensityRedTag             0x0428
-#define GlintLight6DiffuseIntensityRedReg                  1
-#define GlintLight6DiffuseIntensityRedOff             0x9140
-
-#define GlintLight6DiffuseIntensityGreen              0xa148
-#define GlintLight6DiffuseIntensityGreenTag           0x0429
-#define GlintLight6DiffuseIntensityGreenReg                1
-#define GlintLight6DiffuseIntensityGreenOff           0x9148
-
-#define GlintLight6DiffuseIntensityBlue               0xa150
-#define GlintLight6DiffuseIntensityBlueTag            0x042a
-#define GlintLight6DiffuseIntensityBlueReg                 1
-#define GlintLight6DiffuseIntensityBlueOff            0x9150
-
-#define GlintLight6SpecularIntensityRed               0xa158
-#define GlintLight6SpecularIntensityRedTag            0x042b
-#define GlintLight6SpecularIntensityRedReg                 1
-#define GlintLight6SpecularIntensityRedOff            0x9158
-
-#define GlintLight6SpecularIntensityGreen             0xa160
-#define GlintLight6SpecularIntensityGreenTag          0x042c
-#define GlintLight6SpecularIntensityGreenReg               1
-#define GlintLight6SpecularIntensityGreenOff          0x9160
-
-#define GlintLight6SpecularIntensityBlue              0xa168
-#define GlintLight6SpecularIntensityBlueTag           0x042d
-#define GlintLight6SpecularIntensityBlueReg                1
-#define GlintLight6SpecularIntensityBlueOff           0x9168
-
-#define GlintLight6PositionX                          0xa170
-#define GlintLight6PositionXTag                       0x042e
-#define GlintLight6PositionXReg                            1
-#define GlintLight6PositionXOff                       0x9170
-
-#define GlintLight6PositionY                          0xa178
-#define GlintLight6PositionYTag                       0x042f
-#define GlintLight6PositionYReg                            1
-#define GlintLight6PositionYOff                       0x9178
-
-#define GlintLight6PositionZ                          0xa180
-#define GlintLight6PositionZTag                       0x0430
-#define GlintLight6PositionZReg                            1
-#define GlintLight6PositionZOff                       0x9180
-
-#define GlintLight6PositionW                          0xa188
-#define GlintLight6PositionWTag                       0x0431
-#define GlintLight6PositionWReg                            1
-#define GlintLight6PositionWOff                       0x9188
-
-#define GlintLight6SpotlightDirectionX                0xa190
-#define GlintLight6SpotlightDirectionXTag             0x0432
-#define GlintLight6SpotlightDirectionXReg                  1
-#define GlintLight6SpotlightDirectionXOff             0x9190
-
-#define GlintLight6SpotlightDirectionY                0xa198
-#define GlintLight6SpotlightDirectionYTag             0x0433
-#define GlintLight6SpotlightDirectionYReg                  1
-#define GlintLight6SpotlightDirectionYOff             0x9198
-
-#define GlintLight6SpotlightDirectionZ                0xa1a0
-#define GlintLight6SpotlightDirectionZTag             0x0434
-#define GlintLight6SpotlightDirectionZReg                  1
-#define GlintLight6SpotlightDirectionZOff             0x91a0
-
-#define GlintLight6SpotlightExponent                  0xa1a8
-#define GlintLight6SpotlightExponentTag               0x0435
-#define GlintLight6SpotlightExponentReg                    1
-#define GlintLight6SpotlightExponentOff               0x91a8
-
-#define GlintLight6CosSpotlightCutoffAngle            0xa1b0
-#define GlintLight6CosSpotlightCutoffAngleTag         0x0436
-#define GlintLight6CosSpotlightCutoffAngleReg              1
-#define GlintLight6CosSpotlightCutoffAngleOff         0x91b0
-
-#define GlintLight6ConstantAttenuation                0xa1b8
-#define GlintLight6ConstantAttenuationTag             0x0437
-#define GlintLight6ConstantAttenuationReg                  1
-#define GlintLight6ConstantAttenuationOff             0x91b8
-
-#define GlintLight6LinearAttenuation                  0xa1c0
-#define GlintLight6LinearAttenuationTag               0x0438
-#define GlintLight6LinearAttenuationReg                    1
-#define GlintLight6LinearAttenuationOff               0x91c0
-
-#define GlintLight6QuadraticAttenuation               0xa1c8
-#define GlintLight6QuadraticAttenuationTag            0x0439
-#define GlintLight6QuadraticAttenuationReg                 1
-#define GlintLight6QuadraticAttenuationOff            0x91c8
-
-#define GlintLight7Mode                               0xa1d0
-#define GlintLight7ModeTag                            0x043a
-#define GlintLight7ModeReg                                 1
-#define GlintLight7ModeOff                            0x91d0
-
-#define GlintLight7AmbientIntensityRed                0xa1d8
-#define GlintLight7AmbientIntensityRedTag             0x043b
-#define GlintLight7AmbientIntensityRedReg                  1
-#define GlintLight7AmbientIntensityRedOff             0x91d8
-
-#define GlintLight7AmbientIntensityGreen              0xa1e0
-#define GlintLight7AmbientIntensityGreenTag           0x043c
-#define GlintLight7AmbientIntensityGreenReg                1
-#define GlintLight7AmbientIntensityGreenOff           0x91e0
-
-#define GlintLight7AmbientIntensityBlue               0xa1e8
-#define GlintLight7AmbientIntensityBlueTag            0x043d
-#define GlintLight7AmbientIntensityBlueReg                 1
-#define GlintLight7AmbientIntensityBlueOff            0x91e8
-
-#define GlintLight7DiffuseIntensityRed                0xa1f0
-#define GlintLight7DiffuseIntensityRedTag             0x043e
-#define GlintLight7DiffuseIntensityRedReg                  1
-#define GlintLight7DiffuseIntensityRedOff             0x91f0
-
-#define GlintLight7DiffuseIntensityGreen              0xa1f8
-#define GlintLight7DiffuseIntensityGreenTag           0x043f
-#define GlintLight7DiffuseIntensityGreenReg                1
-#define GlintLight7DiffuseIntensityGreenOff           0x91f8
-
-#define GlintLight7DiffuseIntensityBlue               0xa200
-#define GlintLight7DiffuseIntensityBlueTag            0x0440
-#define GlintLight7DiffuseIntensityBlueReg                 1
-#define GlintLight7DiffuseIntensityBlueOff            0x9200
-
-#define GlintLight7SpecularIntensityRed               0xa208
-#define GlintLight7SpecularIntensityRedTag            0x0441
-#define GlintLight7SpecularIntensityRedReg                 1
-#define GlintLight7SpecularIntensityRedOff            0x9208
-
-#define GlintLight7SpecularIntensityGreen             0xa210
-#define GlintLight7SpecularIntensityGreenTag          0x0442
-#define GlintLight7SpecularIntensityGreenReg               1
-#define GlintLight7SpecularIntensityGreenOff          0x9210
-
-#define GlintLight7SpecularIntensityBlue              0xa218
-#define GlintLight7SpecularIntensityBlueTag           0x0443
-#define GlintLight7SpecularIntensityBlueReg                1
-#define GlintLight7SpecularIntensityBlueOff           0x9218
-
-#define GlintLight7PositionX                          0xa220
-#define GlintLight7PositionXTag                       0x0444
-#define GlintLight7PositionXReg                            1
-#define GlintLight7PositionXOff                       0x9220
-
-#define GlintLight7PositionY                          0xa228
-#define GlintLight7PositionYTag                       0x0445
-#define GlintLight7PositionYReg                            1
-#define GlintLight7PositionYOff                       0x9228
-
-#define GlintLight7PositionZ                          0xa230
-#define GlintLight7PositionZTag                       0x0446
-#define GlintLight7PositionZReg                            1
-#define GlintLight7PositionZOff                       0x9230
-
-#define GlintLight7PositionW                          0xa238
-#define GlintLight7PositionWTag                       0x0447
-#define GlintLight7PositionWReg                            1
-#define GlintLight7PositionWOff                       0x9238
-
-#define GlintLight7SpotlightDirectionX                0xa240
-#define GlintLight7SpotlightDirectionXTag             0x0448
-#define GlintLight7SpotlightDirectionXReg                  1
-#define GlintLight7SpotlightDirectionXOff             0x9240
-
-#define GlintLight7SpotlightDirectionY                0xa248
-#define GlintLight7SpotlightDirectionYTag             0x0449
-#define GlintLight7SpotlightDirectionYReg                  1
-#define GlintLight7SpotlightDirectionYOff             0x9248
-
-#define GlintLight7SpotlightDirectionZ                0xa250
-#define GlintLight7SpotlightDirectionZTag             0x044a
-#define GlintLight7SpotlightDirectionZReg                  1
-#define GlintLight7SpotlightDirectionZOff             0x9250
-
-#define GlintLight7SpotlightExponent                  0xa258
-#define GlintLight7SpotlightExponentTag               0x044b
-#define GlintLight7SpotlightExponentReg                    1
-#define GlintLight7SpotlightExponentOff               0x9258
-
-#define GlintLight7CosSpotlightCutoffAngle            0xa260
-#define GlintLight7CosSpotlightCutoffAngleTag         0x044c
-#define GlintLight7CosSpotlightCutoffAngleReg              1
-#define GlintLight7CosSpotlightCutoffAngleOff         0x9260
-
-#define GlintLight7ConstantAttenuation                0xa268
-#define GlintLight7ConstantAttenuationTag             0x044d
-#define GlintLight7ConstantAttenuationReg                  1
-#define GlintLight7ConstantAttenuationOff             0x9268
-
-#define GlintLight7LinearAttenuation                  0xa270
-#define GlintLight7LinearAttenuationTag               0x044e
-#define GlintLight7LinearAttenuationReg                    1
-#define GlintLight7LinearAttenuationOff               0x9270
-
-#define GlintLight7QuadraticAttenuation               0xa278
-#define GlintLight7QuadraticAttenuationTag            0x044f
-#define GlintLight7QuadraticAttenuationReg                 1
-#define GlintLight7QuadraticAttenuationOff            0x9278
-
-#define GlintLight8Mode                               0xa280
-#define GlintLight8ModeTag                            0x0450
-#define GlintLight8ModeReg                                 1
-#define GlintLight8ModeOff                            0x9280
-
-#define GlintLight8AmbientIntensityRed                0xa288
-#define GlintLight8AmbientIntensityRedTag             0x0451
-#define GlintLight8AmbientIntensityRedReg                  1
-#define GlintLight8AmbientIntensityRedOff             0x9288
-
-#define GlintLight8AmbientIntensityGreen              0xa290
-#define GlintLight8AmbientIntensityGreenTag           0x0452
-#define GlintLight8AmbientIntensityGreenReg                1
-#define GlintLight8AmbientIntensityGreenOff           0x9290
-
-#define GlintLight8AmbientIntensityBlue               0xa298
-#define GlintLight8AmbientIntensityBlueTag            0x0453
-#define GlintLight8AmbientIntensityBlueReg                 1
-#define GlintLight8AmbientIntensityBlueOff            0x9298
-
-#define GlintLight8DiffuseIntensityRed                0xa2a0
-#define GlintLight8DiffuseIntensityRedTag             0x0454
-#define GlintLight8DiffuseIntensityRedReg                  1
-#define GlintLight8DiffuseIntensityRedOff             0x92a0
-
-#define GlintLight8DiffuseIntensityGreen              0xa2a8
-#define GlintLight8DiffuseIntensityGreenTag           0x0455
-#define GlintLight8DiffuseIntensityGreenReg                1
-#define GlintLight8DiffuseIntensityGreenOff           0x92a8
-
-#define GlintLight8DiffuseIntensityBlue               0xa2b0
-#define GlintLight8DiffuseIntensityBlueTag            0x0456
-#define GlintLight8DiffuseIntensityBlueReg                 1
-#define GlintLight8DiffuseIntensityBlueOff            0x92b0
-
-#define GlintLight8SpecularIntensityRed               0xa2b8
-#define GlintLight8SpecularIntensityRedTag            0x0457
-#define GlintLight8SpecularIntensityRedReg                 1
-#define GlintLight8SpecularIntensityRedOff            0x92b8
-
-#define GlintLight8SpecularIntensityGreen             0xa2c0
-#define GlintLight8SpecularIntensityGreenTag          0x0458
-#define GlintLight8SpecularIntensityGreenReg               1
-#define GlintLight8SpecularIntensityGreenOff          0x92c0
-
-#define GlintLight8SpecularIntensityBlue              0xa2c8
-#define GlintLight8SpecularIntensityBlueTag           0x0459
-#define GlintLight8SpecularIntensityBlueReg                1
-#define GlintLight8SpecularIntensityBlueOff           0x92c8
-
-#define GlintLight8PositionX                          0xa2d0
-#define GlintLight8PositionXTag                       0x045a
-#define GlintLight8PositionXReg                            1
-#define GlintLight8PositionXOff                       0x92d0
-
-#define GlintLight8PositionY                          0xa2d8
-#define GlintLight8PositionYTag                       0x045b
-#define GlintLight8PositionYReg                            1
-#define GlintLight8PositionYOff                       0x92d8
-
-#define GlintLight8PositionZ                          0xa2e0
-#define GlintLight8PositionZTag                       0x045c
-#define GlintLight8PositionZReg                            1
-#define GlintLight8PositionZOff                       0x92e0
-
-#define GlintLight8PositionW                          0xa2e8
-#define GlintLight8PositionWTag                       0x045d
-#define GlintLight8PositionWReg                            1
-#define GlintLight8PositionWOff                       0x92e8
-
-#define GlintLight8SpotlightDirectionX                0xa2f0
-#define GlintLight8SpotlightDirectionXTag             0x045e
-#define GlintLight8SpotlightDirectionXReg                  1
-#define GlintLight8SpotlightDirectionXOff             0x92f0
-
-#define GlintLight8SpotlightDirectionY                0xa2f8
-#define GlintLight8SpotlightDirectionYTag             0x045f
-#define GlintLight8SpotlightDirectionYReg                  1
-#define GlintLight8SpotlightDirectionYOff             0x92f8
-
-#define GlintLight8SpotlightDirectionZ                0xa300
-#define GlintLight8SpotlightDirectionZTag             0x0460
-#define GlintLight8SpotlightDirectionZReg                  1
-#define GlintLight8SpotlightDirectionZOff             0x9300
-
-#define GlintLight8SpotlightExponent                  0xa308
-#define GlintLight8SpotlightExponentTag               0x0461
-#define GlintLight8SpotlightExponentReg                    1
-#define GlintLight8SpotlightExponentOff               0x9308
-
-#define GlintLight8CosSpotlightCutoffAngle            0xa310
-#define GlintLight8CosSpotlightCutoffAngleTag         0x0462
-#define GlintLight8CosSpotlightCutoffAngleReg              1
-#define GlintLight8CosSpotlightCutoffAngleOff         0x9310
-
-#define GlintLight8ConstantAttenuation                0xa318
-#define GlintLight8ConstantAttenuationTag             0x0463
-#define GlintLight8ConstantAttenuationReg                  1
-#define GlintLight8ConstantAttenuationOff             0x9318
-
-#define GlintLight8LinearAttenuation                  0xa320
-#define GlintLight8LinearAttenuationTag               0x0464
-#define GlintLight8LinearAttenuationReg                    1
-#define GlintLight8LinearAttenuationOff               0x9320
-
-#define GlintLight8QuadraticAttenuation               0xa328
-#define GlintLight8QuadraticAttenuationTag            0x0465
-#define GlintLight8QuadraticAttenuationReg                 1
-#define GlintLight8QuadraticAttenuationOff            0x9328
-
-#define GlintLight9Mode                               0xa330
-#define GlintLight9ModeTag                            0x0466
-#define GlintLight9ModeReg                                 1
-#define GlintLight9ModeOff                            0x9330
-
-#define GlintLight9AmbientIntensityRed                0xa338
-#define GlintLight9AmbientIntensityRedTag             0x0467
-#define GlintLight9AmbientIntensityRedReg                  1
-#define GlintLight9AmbientIntensityRedOff             0x9338
-
-#define GlintLight9AmbientIntensityGreen              0xa340
-#define GlintLight9AmbientIntensityGreenTag           0x0468
-#define GlintLight9AmbientIntensityGreenReg                1
-#define GlintLight9AmbientIntensityGreenOff           0x9340
-
-#define GlintLight9AmbientIntensityBlue               0xa348
-#define GlintLight9AmbientIntensityBlueTag            0x0469
-#define GlintLight9AmbientIntensityBlueReg                 1
-#define GlintLight9AmbientIntensityBlueOff            0x9348
-
-#define GlintLight9DiffuseIntensityRed                0xa350
-#define GlintLight9DiffuseIntensityRedTag             0x046a
-#define GlintLight9DiffuseIntensityRedReg                  1
-#define GlintLight9DiffuseIntensityRedOff             0x9350
-
-#define GlintLight9DiffuseIntensityGreen              0xa358
-#define GlintLight9DiffuseIntensityGreenTag           0x046b
-#define GlintLight9DiffuseIntensityGreenReg                1
-#define GlintLight9DiffuseIntensityGreenOff           0x9358
-
-#define GlintLight9DiffuseIntensityBlue               0xa360
-#define GlintLight9DiffuseIntensityBlueTag            0x046c
-#define GlintLight9DiffuseIntensityBlueReg                 1
-#define GlintLight9DiffuseIntensityBlueOff            0x9360
-
-#define GlintLight9SpecularIntensityRed               0xa368
-#define GlintLight9SpecularIntensityRedTag            0x046d
-#define GlintLight9SpecularIntensityRedReg                 1
-#define GlintLight9SpecularIntensityRedOff            0x9368
-
-#define GlintLight9SpecularIntensityGreen             0xa370
-#define GlintLight9SpecularIntensityGreenTag          0x046e
-#define GlintLight9SpecularIntensityGreenReg               1
-#define GlintLight9SpecularIntensityGreenOff          0x9370
-
-#define GlintLight9SpecularIntensityBlue              0xa378
-#define GlintLight9SpecularIntensityBlueTag           0x046f
-#define GlintLight9SpecularIntensityBlueReg                1
-#define GlintLight9SpecularIntensityBlueOff           0x9378
-
-#define GlintLight9PositionX                          0xa380
-#define GlintLight9PositionXTag                       0x0470
-#define GlintLight9PositionXReg                            1
-#define GlintLight9PositionXOff                       0x9380
-
-#define GlintLight9PositionY                          0xa388
-#define GlintLight9PositionYTag                       0x0471
-#define GlintLight9PositionYReg                            1
-#define GlintLight9PositionYOff                       0x9388
-
-#define GlintLight9PositionZ                          0xa390
-#define GlintLight9PositionZTag                       0x0472
-#define GlintLight9PositionZReg                            1
-#define GlintLight9PositionZOff                       0x9390
-
-#define GlintLight9PositionW                          0xa398
-#define GlintLight9PositionWTag                       0x0473
-#define GlintLight9PositionWReg                            1
-#define GlintLight9PositionWOff                       0x9398
-
-#define GlintLight9SpotlightDirectionX                0xa3a0
-#define GlintLight9SpotlightDirectionXTag             0x0474
-#define GlintLight9SpotlightDirectionXReg                  1
-#define GlintLight9SpotlightDirectionXOff             0x93a0
-
-#define GlintLight9SpotlightDirectionY                0xa3a8
-#define GlintLight9SpotlightDirectionYTag             0x0475
-#define GlintLight9SpotlightDirectionYReg                  1
-#define GlintLight9SpotlightDirectionYOff             0x93a8
-
-#define GlintLight9SpotlightDirectionZ                0xa3b0
-#define GlintLight9SpotlightDirectionZTag             0x0476
-#define GlintLight9SpotlightDirectionZReg                  1
-#define GlintLight9SpotlightDirectionZOff             0x93b0
-
-#define GlintLight9SpotlightExponent                  0xa3b8
-#define GlintLight9SpotlightExponentTag               0x0477
-#define GlintLight9SpotlightExponentReg                    1
-#define GlintLight9SpotlightExponentOff               0x93b8
-
-#define GlintLight9CosSpotlightCutoffAngle            0xa3c0
-#define GlintLight9CosSpotlightCutoffAngleTag         0x0478
-#define GlintLight9CosSpotlightCutoffAngleReg              1
-#define GlintLight9CosSpotlightCutoffAngleOff         0x93c0
-
-#define GlintLight9ConstantAttenuation                0xa3c8
-#define GlintLight9ConstantAttenuationTag             0x0479
-#define GlintLight9ConstantAttenuationReg                  1
-#define GlintLight9ConstantAttenuationOff             0x93c8
-
-#define GlintLight9LinearAttenuation                  0xa3d0
-#define GlintLight9LinearAttenuationTag               0x047a
-#define GlintLight9LinearAttenuationReg                    1
-#define GlintLight9LinearAttenuationOff               0x93d0
-
-#define GlintLight9QuadraticAttenuation               0xa3d8
-#define GlintLight9QuadraticAttenuationTag            0x047b
-#define GlintLight9QuadraticAttenuationReg                 1
-#define GlintLight9QuadraticAttenuationOff            0x93d8
-
-#define GlintLight10Mode                              0xa3e0
-#define GlintLight10ModeTag                           0x047c
-#define GlintLight10ModeReg                                1
-#define GlintLight10ModeOff                           0x93e0
-
-#define GlintLight10AmbientIntensityRed               0xa3e8
-#define GlintLight10AmbientIntensityRedTag            0x047d
-#define GlintLight10AmbientIntensityRedReg                 1
-#define GlintLight10AmbientIntensityRedOff            0x93e8
-
-#define GlintLight10AmbientIntensityGreen             0xa3f0
-#define GlintLight10AmbientIntensityGreenTag          0x047e
-#define GlintLight10AmbientIntensityGreenReg               1
-#define GlintLight10AmbientIntensityGreenOff          0x93f0
-
-#define GlintLight10AmbientIntensityBlue              0xa3f8
-#define GlintLight10AmbientIntensityBlueTag           0x047f
-#define GlintLight10AmbientIntensityBlueReg                1
-#define GlintLight10AmbientIntensityBlueOff           0x93f8
-
-#define GlintLight10DiffuseIntensityRed               0xa400
-#define GlintLight10DiffuseIntensityRedTag            0x0480
-#define GlintLight10DiffuseIntensityRedReg                 1
-#define GlintLight10DiffuseIntensityRedOff            0x9400
-
-#define GlintLight10DiffuseIntensityGreen             0xa408
-#define GlintLight10DiffuseIntensityGreenTag          0x0481
-#define GlintLight10DiffuseIntensityGreenReg               1
-#define GlintLight10DiffuseIntensityGreenOff          0x9408
-
-#define GlintLight10DiffuseIntensityBlue              0xa410
-#define GlintLight10DiffuseIntensityBlueTag           0x0482
-#define GlintLight10DiffuseIntensityBlueReg                1
-#define GlintLight10DiffuseIntensityBlueOff           0x9410
-
-#define GlintLight10SpecularIntensityRed              0xa418
-#define GlintLight10SpecularIntensityRedTag           0x0483
-#define GlintLight10SpecularIntensityRedReg                1
-#define GlintLight10SpecularIntensityRedOff           0x9418
-
-#define GlintLight10SpecularIntensityGreen            0xa420
-#define GlintLight10SpecularIntensityGreenTag         0x0484
-#define GlintLight10SpecularIntensityGreenReg              1
-#define GlintLight10SpecularIntensityGreenOff         0x9420
-
-#define GlintLight10SpecularIntensityBlue             0xa428
-#define GlintLight10SpecularIntensityBlueTag          0x0485
-#define GlintLight10SpecularIntensityBlueReg               1
-#define GlintLight10SpecularIntensityBlueOff          0x9428
-
-#define GlintLight10PositionX                         0xa430
-#define GlintLight10PositionXTag                      0x0486
-#define GlintLight10PositionXReg                           1
-#define GlintLight10PositionXOff                      0x9430
-
-#define GlintLight10PositionY                         0xa438
-#define GlintLight10PositionYTag                      0x0487
-#define GlintLight10PositionYReg                           1
-#define GlintLight10PositionYOff                      0x9438
-
-#define GlintLight10PositionZ                         0xa440
-#define GlintLight10PositionZTag                      0x0488
-#define GlintLight10PositionZReg                           1
-#define GlintLight10PositionZOff                      0x9440
-
-#define GlintLight10PositionW                         0xa448
-#define GlintLight10PositionWTag                      0x0489
-#define GlintLight10PositionWReg                           1
-#define GlintLight10PositionWOff                      0x9448
-
-#define GlintLight10SpotlightDirectionX               0xa450
-#define GlintLight10SpotlightDirectionXTag            0x048a
-#define GlintLight10SpotlightDirectionXReg                 1
-#define GlintLight10SpotlightDirectionXOff            0x9450
-
-#define GlintLight10SpotlightDirectionY               0xa458
-#define GlintLight10SpotlightDirectionYTag            0x048b
-#define GlintLight10SpotlightDirectionYReg                 1
-#define GlintLight10SpotlightDirectionYOff            0x9458
-
-#define GlintLight10SpotlightDirectionZ               0xa460
-#define GlintLight10SpotlightDirectionZTag            0x048c
-#define GlintLight10SpotlightDirectionZReg                 1
-#define GlintLight10SpotlightDirectionZOff            0x9460
-
-#define GlintLight10SpotlightExponent                 0xa468
-#define GlintLight10SpotlightExponentTag              0x048d
-#define GlintLight10SpotlightExponentReg                   1
-#define GlintLight10SpotlightExponentOff              0x9468
-
-#define GlintLight10CosSpotlightCutoffAngle           0xa470
-#define GlintLight10CosSpotlightCutoffAngleTag        0x048e
-#define GlintLight10CosSpotlightCutoffAngleReg             1
-#define GlintLight10CosSpotlightCutoffAngleOff        0x9470
-
-#define GlintLight10ConstantAttenuation               0xa478
-#define GlintLight10ConstantAttenuationTag            0x048f
-#define GlintLight10ConstantAttenuationReg                 1
-#define GlintLight10ConstantAttenuationOff            0x9478
-
-#define GlintLight10LinearAttenuation                 0xa480
-#define GlintLight10LinearAttenuationTag              0x0490
-#define GlintLight10LinearAttenuationReg                   1
-#define GlintLight10LinearAttenuationOff              0x9480
-
-#define GlintLight10QuadraticAttenuation              0xa488
-#define GlintLight10QuadraticAttenuationTag           0x0491
-#define GlintLight10QuadraticAttenuationReg                1
-#define GlintLight10QuadraticAttenuationOff           0x9488
-
-#define GlintLight11Mode                              0xa490
-#define GlintLight11ModeTag                           0x0492
-#define GlintLight11ModeReg                                1
-#define GlintLight11ModeOff                           0x9490
-
-#define GlintLight11AmbientIntensiveRed               0xa498
-#define GlintLight11AmbientIntensiveRedTag            0x0493
-#define GlintLight11AmbientIntensiveRedReg                 1
-#define GlintLight11AmbientIntensiveRedOff            0x9498
-
-#define GlintLight11AmbientIntensityGreen             0xa4a0
-#define GlintLight11AmbientIntensityGreenTag          0x0494
-#define GlintLight11AmbientIntensityGreenReg               1
-#define GlintLight11AmbientIntensityGreenOff          0x94a0
-
-#define GlintLight11AmbientIntensityBlue              0xa4a8
-#define GlintLight11AmbientIntensityBlueTag           0x0495
-#define GlintLight11AmbientIntensityBlueReg                1
-#define GlintLight11AmbientIntensityBlueOff           0x94a8
-
-#define GlintLight11DiffuseIntensityRed               0xa4b0
-#define GlintLight11DiffuseIntensityRedTag            0x0496
-#define GlintLight11DiffuseIntensityRedReg                 1
-#define GlintLight11DiffuseIntensityRedOff            0x94b0
-
-#define GlintLight11DiffuseIntensityGreen             0xa4b8
-#define GlintLight11DiffuseIntensityGreenTag          0x0497
-#define GlintLight11DiffuseIntensityGreenReg               1
-#define GlintLight11DiffuseIntensityGreenOff          0x94b8
-
-#define GlintLight11DiffuseIntensityBlue              0xa4c0
-#define GlintLight11DiffuseIntensityBlueTag           0x0498
-#define GlintLight11DiffuseIntensityBlueReg                1
-#define GlintLight11DiffuseIntensityBlueOff           0x94c0
-
-#define GlintLight11SpecularIntensityRed              0xa4c8
-#define GlintLight11SpecularIntensityRedTag           0x0499
-#define GlintLight11SpecularIntensityRedReg                1
-#define GlintLight11SpecularIntensityRedOff           0x94c8
-
-#define GlintLight11SpecularIntensityGreen            0xa4d0
-#define GlintLight11SpecularIntensityGreenTag         0x049a
-#define GlintLight11SpecularIntensityGreenReg              1
-#define GlintLight11SpecularIntensityGreenOff         0x94d0
-
-#define GlintLight11SpecularIntensityBlue             0xa4d8
-#define GlintLight11SpecularIntensityBlueTag          0x049b
-#define GlintLight11SpecularIntensityBlueReg               1
-#define GlintLight11SpecularIntensityBlueOff          0x94d8
-
-#define GlintLight11PositionX                         0xa4e0
-#define GlintLight11PositionXTag                      0x049c
-#define GlintLight11PositionXReg                           1
-#define GlintLight11PositionXOff                      0x94e0
-
-#define GlintLight11PositionY                         0xa4e8
-#define GlintLight11PositionYTag                      0x049d
-#define GlintLight11PositionYReg                           1
-#define GlintLight11PositionYOff                      0x94e8
-
-#define GlintLight11PositionZ                         0xa4f0
-#define GlintLight11PositionZTag                      0x049e
-#define GlintLight11PositionZReg                           1
-#define GlintLight11PositionZOff                      0x94f0
-
-#define GlintLight11PositionW                         0xa4f8
-#define GlintLight11PositionWTag                      0x049f
-#define GlintLight11PositionWReg                           1
-#define GlintLight11PositionWOff                      0x94f8
-
-#define GlintLight11SpotlightDirectionX               0xa500
-#define GlintLight11SpotlightDirectionXTag            0x04a0
-#define GlintLight11SpotlightDirectionXReg                 1
-#define GlintLight11SpotlightDirectionXOff            0x9500
-
-#define GlintLight11SpotlightDirectionY               0xa508
-#define GlintLight11SpotlightDirectionYTag            0x04a1
-#define GlintLight11SpotlightDirectionYReg                 1
-#define GlintLight11SpotlightDirectionYOff            0x9508
-
-#define GlintLight11SpotlightDirectionZ               0xa510
-#define GlintLight11SpotlightDirectionZTag            0x04a2
-#define GlintLight11SpotlightDirectionZReg                 1
-#define GlintLight11SpotlightDirectionZOff            0x9510
-
-#define GlintLight11SpotlightExponent                 0xa518
-#define GlintLight11SpotlightExponentTag              0x04a3
-#define GlintLight11SpotlightExponentReg                   1
-#define GlintLight11SpotlightExponentOff              0x9518
-
-#define GlintLight11CosSpotlightCutoffAngle           0xa520
-#define GlintLight11CosSpotlightCutoffAngleTag        0x04a4
-#define GlintLight11CosSpotlightCutoffAngleReg             1
-#define GlintLight11CosSpotlightCutoffAngleOff        0x9520
-
-#define GlintLight11ConstantAttenuation               0xa528
-#define GlintLight11ConstantAttenuationTag            0x04a5
-#define GlintLight11ConstantAttenuationReg                 1
-#define GlintLight11ConstantAttenuationOff            0x9528
-
-#define GlintLight11LinearAttenuation                 0xa530
-#define GlintLight11LinearAttenuationTag              0x04a6
-#define GlintLight11LinearAttenuationReg                   1
-#define GlintLight11LinearAttenuationOff              0x9530
-
-#define GlintLight11QuadraticAttenuation              0xa538
-#define GlintLight11QuadraticAttenuationTag           0x04a7
-#define GlintLight11QuadraticAttenuationReg                1
-#define GlintLight11QuadraticAttenuationOff           0x9538
-
-#define GlintLight12Mode                              0xa540
-#define GlintLight12ModeTag                           0x04a8
-#define GlintLight12ModeReg                                1
-#define GlintLight12ModeOff                           0x9540
-
-#define GlintLight12AmbientIntensityRed               0xa548
-#define GlintLight12AmbientIntensityRedTag            0x04a9
-#define GlintLight12AmbientIntensityRedReg                 1
-#define GlintLight12AmbientIntensityRedOff            0x9548
-
-#define GlintLight12AmbientIntensityGreen             0xa550
-#define GlintLight12AmbientIntensityGreenTag          0x04aa
-#define GlintLight12AmbientIntensityGreenReg               1
-#define GlintLight12AmbientIntensityGreenOff          0x9550
-
-#define GlintLight12AmbientIntensityBlue              0xa558
-#define GlintLight12AmbientIntensityBlueTag           0x04ab
-#define GlintLight12AmbientIntensityBlueReg                1
-#define GlintLight12AmbientIntensityBlueOff           0x9558
-
-#define GlintLight12DiffuseIntensityRed               0xa560
-#define GlintLight12DiffuseIntensityRedTag            0x04ac
-#define GlintLight12DiffuseIntensityRedReg                 1
-#define GlintLight12DiffuseIntensityRedOff            0x9560
-
-#define GlintLight12DiffuseIntensityGreen             0xa568
-#define GlintLight12DiffuseIntensityGreenTag          0x04ad
-#define GlintLight12DiffuseIntensityGreenReg               1
-#define GlintLight12DiffuseIntensityGreenOff          0x9568
-
-#define GlintLight12DiffuseIntensityBlue              0xa570
-#define GlintLight12DiffuseIntensityBlueTag           0x04ae
-#define GlintLight12DiffuseIntensityBlueReg                1
-#define GlintLight12DiffuseIntensityBlueOff           0x9570
-
-#define GlintLight12SpecularIntensityRed              0xa578
-#define GlintLight12SpecularIntensityRedTag           0x04af
-#define GlintLight12SpecularIntensityRedReg                1
-#define GlintLight12SpecularIntensityRedOff           0x9578
-
-#define GlintLight12SpecularIntensityGreen            0xa580
-#define GlintLight12SpecularIntensityGreenTag         0x04b0
-#define GlintLight12SpecularIntensityGreenReg              1
-#define GlintLight12SpecularIntensityGreenOff         0x9580
-
-#define GlintLight12SpecularIntensityBlue             0xa588
-#define GlintLight12SpecularIntensityBlueTag          0x04b1
-#define GlintLight12SpecularIntensityBlueReg               1
-#define GlintLight12SpecularIntensityBlueOff          0x9588
-
-#define GlintLight12PositionX                         0xa590
-#define GlintLight12PositionXTag                      0x04b2
-#define GlintLight12PositionXReg                           1
-#define GlintLight12PositionXOff                      0x9590
-
-#define GlintLight12PositionY                         0xa598
-#define GlintLight12PositionYTag                      0x04b3
-#define GlintLight12PositionYReg                           1
-#define GlintLight12PositionYOff                      0x9598
-
-#define GlintLight12PositionZ                         0xa5a0
-#define GlintLight12PositionZTag                      0x04b4
-#define GlintLight12PositionZReg                           1
-#define GlintLight12PositionZOff                      0x95a0
-
-#define GlintLight12PositionW                         0xa5a8
-#define GlintLight12PositionWTag                      0x04b5
-#define GlintLight12PositionWReg                           1
-#define GlintLight12PositionWOff                      0x95a8
-
-#define GlintLight12SpotlightDirectionX               0xa5b0
-#define GlintLight12SpotlightDirectionXTag            0x04b6
-#define GlintLight12SpotlightDirectionXReg                 1
-#define GlintLight12SpotlightDirectionXOff            0x95b0
-
-#define GlintLight12SpotlightDirectionY               0xa5b8
-#define GlintLight12SpotlightDirectionYTag            0x04b7
-#define GlintLight12SpotlightDirectionYReg                 1
-#define GlintLight12SpotlightDirectionYOff            0x95b8
-
-#define GlintLight12SpotlightDirectionZ               0xa5c0
-#define GlintLight12SpotlightDirectionZTag            0x04b8
-#define GlintLight12SpotlightDirectionZReg                 1
-#define GlintLight12SpotlightDirectionZOff            0x95c0
-
-#define GlintLight12SpotlightExponent                 0xa5c8
-#define GlintLight12SpotlightExponentTag              0x04b9
-#define GlintLight12SpotlightExponentReg                   1
-#define GlintLight12SpotlightExponentOff              0x95c8
-
-#define GlintLight12CosSpotlightCutoffAngle           0xa5d0
-#define GlintLight12CosSpotlightCutoffAngleTag        0x04ba
-#define GlintLight12CosSpotlightCutoffAngleReg             1
-#define GlintLight12CosSpotlightCutoffAngleOff        0x95d0
-
-#define GlintLight12ConstantAttenuation               0xa5d8
-#define GlintLight12ConstantAttenuationTag            0x04bb
-#define GlintLight12ConstantAttenuationReg                 1
-#define GlintLight12ConstantAttenuationOff            0x95d8
-
-#define GlintLight12LinearAttenuation                 0xa5e0
-#define GlintLight12LinearAttenuationTag              0x04bc
-#define GlintLight12LinearAttenuationReg                   1
-#define GlintLight12LinearAttenuationOff              0x95e0
-
-#define GlintLight12QuadraticAttenuation              0xa5e8
-#define GlintLight12QuadraticAttenuationTag           0x04bd
-#define GlintLight12QuadraticAttenuationReg                1
-#define GlintLight12QuadraticAttenuationOff           0x95e8
-
-#define GlintLight13Mode                              0xa5f0
-#define GlintLight13ModeTag                           0x04be
-#define GlintLight13ModeReg                                1
-#define GlintLight13ModeOff                           0x95f0
-
-#define GlintLight13AmbientIntensityRed               0xa5f8
-#define GlintLight13AmbientIntensityRedTag            0x04bf
-#define GlintLight13AmbientIntensityRedReg                 1
-#define GlintLight13AmbientIntensityRedOff            0x95f8
-
-#define GlintLight13AmbientIntensityGreen             0xa600
-#define GlintLight13AmbientIntensityGreenTag          0x04c0
-#define GlintLight13AmbientIntensityGreenReg               1
-#define GlintLight13AmbientIntensityGreenOff          0x9600
-
-#define GlintLight13AmbientIntensityBlue              0xa608
-#define GlintLight13AmbientIntensityBlueTag           0x04c1
-#define GlintLight13AmbientIntensityBlueReg                1
-#define GlintLight13AmbientIntensityBlueOff           0x9608
-
-#define GlintLight13DiffuseIntensityRed               0xa610
-#define GlintLight13DiffuseIntensityRedTag            0x04c2
-#define GlintLight13DiffuseIntensityRedReg                 1
-#define GlintLight13DiffuseIntensityRedOff            0x9610
-
-#define GlintLight13DiffuseIntensityGreen             0xa618
-#define GlintLight13DiffuseIntensityGreenTag          0x04c3
-#define GlintLight13DiffuseIntensityGreenReg               1
-#define GlintLight13DiffuseIntensityGreenOff          0x9618
-
-#define GlintLight13DiffuseIntensityBlue              0xa620
-#define GlintLight13DiffuseIntensityBlueTag           0x04c4
-#define GlintLight13DiffuseIntensityBlueReg                1
-#define GlintLight13DiffuseIntensityBlueOff           0x9620
-
-#define GlintLight13SpecularIntensityRed              0xa628
-#define GlintLight13SpecularIntensityRedTag           0x04c5
-#define GlintLight13SpecularIntensityRedReg                1
-#define GlintLight13SpecularIntensityRedOff           0x9628
-
-#define GlintLight13SpecularIntensityGreen            0xa630
-#define GlintLight13SpecularIntensityGreenTag         0x04c6
-#define GlintLight13SpecularIntensityGreenReg              1
-#define GlintLight13SpecularIntensityGreenOff         0x9630
-
-#define GlintLight13SpecularIntensityBlue             0xa638
-#define GlintLight13SpecularIntensityBlueTag          0x04c7
-#define GlintLight13SpecularIntensityBlueReg               1
-#define GlintLight13SpecularIntensityBlueOff          0x9638
-
-#define GlintLight13PositionX                         0xa640
-#define GlintLight13PositionXTag                      0x04c8
-#define GlintLight13PositionXReg                           1
-#define GlintLight13PositionXOff                      0x9640
-
-#define GlintLight13PositionY                         0xa648
-#define GlintLight13PositionYTag                      0x04c9
-#define GlintLight13PositionYReg                           1
-#define GlintLight13PositionYOff                      0x9648
-
-#define GlintLight13PositionZ                         0xa650
-#define GlintLight13PositionZTag                      0x04ca
-#define GlintLight13PositionZReg                           1
-#define GlintLight13PositionZOff                      0x9650
-
-#define GlintLight13PositionW                         0xa658
-#define GlintLight13PositionWTag                      0x04cb
-#define GlintLight13PositionWReg                           1
-#define GlintLight13PositionWOff                      0x9658
-
-#define GlintLight13SpotlightDirectionX               0xa660
-#define GlintLight13SpotlightDirectionXTag            0x04cc
-#define GlintLight13SpotlightDirectionXReg                 1
-#define GlintLight13SpotlightDirectionXOff            0x9660
-
-#define GlintLight13SpotlightDirectionY               0xa668
-#define GlintLight13SpotlightDirectionYTag            0x04cd
-#define GlintLight13SpotlightDirectionYReg                 1
-#define GlintLight13SpotlightDirectionYOff            0x9668
-
-#define GlintLight13SpotlightDirectionZ               0xa670
-#define GlintLight13SpotlightDirectionZTag            0x04ce
-#define GlintLight13SpotlightDirectionZReg                 1
-#define GlintLight13SpotlightDirectionZOff            0x9670
-
-#define GlintLight13SpotlightExponent                 0xa678
-#define GlintLight13SpotlightExponentTag              0x04cf
-#define GlintLight13SpotlightExponentReg                   1
-#define GlintLight13SpotlightExponentOff              0x9678
-
-#define GlintLight13CosSpotlightCutoffAngle           0xa680
-#define GlintLight13CosSpotlightCutoffAngleTag        0x04d0
-#define GlintLight13CosSpotlightCutoffAngleReg             1
-#define GlintLight13CosSpotlightCutoffAngleOff        0x9680
-
-#define GlintLight13ConstantAttenuation               0xa688
-#define GlintLight13ConstantAttenuationTag            0x04d1
-#define GlintLight13ConstantAttenuationReg                 1
-#define GlintLight13ConstantAttenuationOff            0x9688
-
-#define GlintLight13LinearAttenuation                 0xa690
-#define GlintLight13LinearAttenuationTag              0x04d2
-#define GlintLight13LinearAttenuationReg                   1
-#define GlintLight13LinearAttenuationOff              0x9690
-
-#define GlintLight13QuadraticAttenuation              0xa698
-#define GlintLight13QuadraticAttenuationTag           0x04d3
-#define GlintLight13QuadraticAttenuationReg                1
-#define GlintLight13QuadraticAttenuationOff           0x9698
-
-#define GlintLight14Mode                              0xa6a0
-#define GlintLight14ModeTag                           0x04d4
-#define GlintLight14ModeReg                                1
-#define GlintLight14ModeOff                           0x96a0
-
-#define GlintLight14AmbientIntensityRed               0xa6a8
-#define GlintLight14AmbientIntensityRedTag            0x04d5
-#define GlintLight14AmbientIntensityRedReg                 1
-#define GlintLight14AmbientIntensityRedOff            0x96a8
-
-#define GlintLight14AmbientIntensityGreen             0xa6b0
-#define GlintLight14AmbientIntensityGreenTag          0x04d6
-#define GlintLight14AmbientIntensityGreenReg               1
-#define GlintLight14AmbientIntensityGreenOff          0x96b0
-
-#define GlintLight14AmbientIntensityBlue              0xa6b8
-#define GlintLight14AmbientIntensityBlueTag           0x04d7
-#define GlintLight14AmbientIntensityBlueReg                1
-#define GlintLight14AmbientIntensityBlueOff           0x96b8
-
-#define GlintLight14DiffuseIntensityRed               0xa6c0
-#define GlintLight14DiffuseIntensityRedTag            0x04d8
-#define GlintLight14DiffuseIntensityRedReg                 1
-#define GlintLight14DiffuseIntensityRedOff            0x96c0
-
-#define GlintLight14DiffuseIntensityGreen             0xa6c8
-#define GlintLight14DiffuseIntensityGreenTag          0x04d9
-#define GlintLight14DiffuseIntensityGreenReg               1
-#define GlintLight14DiffuseIntensityGreenOff          0x96c8
-
-#define GlintLight14DiffuseIntensityBlue              0xa6d0
-#define GlintLight14DiffuseIntensityBlueTag           0x04da
-#define GlintLight14DiffuseIntensityBlueReg                1
-#define GlintLight14DiffuseIntensityBlueOff           0x96d0
-
-#define GlintLight14SpecularIntensityRed              0xa6d8
-#define GlintLight14SpecularIntensityRedTag           0x04db
-#define GlintLight14SpecularIntensityRedReg                1
-#define GlintLight14SpecularIntensityRedOff           0x96d8
-
-#define GlintLight14SpecularIntensityGreen            0xa6e0
-#define GlintLight14SpecularIntensityGreenTag         0x04dc
-#define GlintLight14SpecularIntensityGreenReg              1
-#define GlintLight14SpecularIntensityGreenOff         0x96e0
-
-#define GlintLight14SpecularIntensityBlue             0xa6e8
-#define GlintLight14SpecularIntensityBlueTag          0x04dd
-#define GlintLight14SpecularIntensityBlueReg               1
-#define GlintLight14SpecularIntensityBlueOff          0x96e8
-
-#define GlintLight14PositionX                         0xa6f0
-#define GlintLight14PositionXTag                      0x04de
-#define GlintLight14PositionXReg                           1
-#define GlintLight14PositionXOff                      0x96f0
-
-#define GlintLight14PositionY                         0xa6f8
-#define GlintLight14PositionYTag                      0x04df
-#define GlintLight14PositionYReg                           1
-#define GlintLight14PositionYOff                      0x96f8
-
-#define GlintLight14PositionZ                         0xa700
-#define GlintLight14PositionZTag                      0x04e0
-#define GlintLight14PositionZReg                           1
-#define GlintLight14PositionZOff                      0x9700
-
-#define GlintLight14PositionW                         0xa708
-#define GlintLight14PositionWTag                      0x04e1
-#define GlintLight14PositionWReg                           1
-#define GlintLight14PositionWOff                      0x9708
-
-#define GlintLight14SpotlightDirectionX               0xa710
-#define GlintLight14SpotlightDirectionXTag            0x04e2
-#define GlintLight14SpotlightDirectionXReg                 1
-#define GlintLight14SpotlightDirectionXOff            0x9710
-
-#define GlintLight14SpotlightDirectionY               0xa718
-#define GlintLight14SpotlightDirectionYTag            0x04e3
-#define GlintLight14SpotlightDirectionYReg                 1
-#define GlintLight14SpotlightDirectionYOff            0x9718
-
-#define GlintLight14SpotlightDirectionZ               0xa720
-#define GlintLight14SpotlightDirectionZTag            0x04e4
-#define GlintLight14SpotlightDirectionZReg                 1
-#define GlintLight14SpotlightDirectionZOff            0x9720
-
-#define GlintLight14SpotlightExponent                 0xa728
-#define GlintLight14SpotlightExponentTag              0x04e5
-#define GlintLight14SpotlightExponentReg                   1
-#define GlintLight14SpotlightExponentOff              0x9728
-
-#define GlintLight14CosSpotlightCutoffAngle           0xa730
-#define GlintLight14CosSpotlightCutoffAngleTag        0x04e6
-#define GlintLight14CosSpotlightCutoffAngleReg             1
-#define GlintLight14CosSpotlightCutoffAngleOff        0x9730
-
-#define GlintLight14ConstantAttenuation               0xa738
-#define GlintLight14ConstantAttenuationTag            0x04e7
-#define GlintLight14ConstantAttenuationReg                 1
-#define GlintLight14ConstantAttenuationOff            0x9738
-
-#define GlintLight14LinearAttenuation                 0xa740
-#define GlintLight14LinearAttenuationTag              0x04e8
-#define GlintLight14LinearAttenuationReg                   1
-#define GlintLight14LinearAttenuationOff              0x9740
-
-#define GlintLight14QuadraticAttenuation              0xa748
-#define GlintLight14QuadraticAttenuationTag           0x04e9
-#define GlintLight14QuadraticAttenuationReg                1
-#define GlintLight14QuadraticAttenuationOff           0x9748
-
-#define GlintLight15Mode                              0xa750
-#define GlintLight15ModeTag                           0x04ea
-#define GlintLight15ModeReg                                1
-#define GlintLight15ModeOff                           0x9750
-
-#define GlintLight15AmbientIntensityRed               0xa758
-#define GlintLight15AmbientIntensityRedTag            0x04eb
-#define GlintLight15AmbientIntensityRedReg                 1
-#define GlintLight15AmbientIntensityRedOff            0x9758
-
-#define GlintLight15AmbientIntensityGreen             0xa760
-#define GlintLight15AmbientIntensityGreenTag          0x04ec
-#define GlintLight15AmbientIntensityGreenReg               1
-#define GlintLight15AmbientIntensityGreenOff          0x9760
-
-#define GlintLight15AmbientIntensityBlue              0xa768
-#define GlintLight15AmbientIntensityBlueTag           0x04ed
-#define GlintLight15AmbientIntensityBlueReg                1
-#define GlintLight15AmbientIntensityBlueOff           0x9768
-
-#define GlintLight15DiffuseIntensityRed               0xa770
-#define GlintLight15DiffuseIntensityRedTag            0x04ee
-#define GlintLight15DiffuseIntensityRedReg                 1
-#define GlintLight15DiffuseIntensityRedOff            0x9770
-
-#define GlintLight15DiffuseIntensityGreen             0xa778
-#define GlintLight15DiffuseIntensityGreenTag          0x04ef
-#define GlintLight15DiffuseIntensityGreenReg               1
-#define GlintLight15DiffuseIntensityGreenOff          0x9778
-
-#define GlintLight15DiffuseIntensityBlue              0xa780
-#define GlintLight15DiffuseIntensityBlueTag           0x04f0
-#define GlintLight15DiffuseIntensityBlueReg                1
-#define GlintLight15DiffuseIntensityBlueOff           0x9780
-
-#define GlintLight15SpecularIntensityRed              0xa788
-#define GlintLight15SpecularIntensityRedTag           0x04f1
-#define GlintLight15SpecularIntensityRedReg                1
-#define GlintLight15SpecularIntensityRedOff           0x9788
-
-#define GlintLight15SpecularIntensityGreen            0xa790
-#define GlintLight15SpecularIntensityGreenTag         0x04f2
-#define GlintLight15SpecularIntensityGreenReg              1
-#define GlintLight15SpecularIntensityGreenOff         0x9790
-
-#define GlintLight15SpecularIntensityBlue             0xa798
-#define GlintLight15SpecularIntensityBlueTag          0x04f3
-#define GlintLight15SpecularIntensityBlueReg               1
-#define GlintLight15SpecularIntensityBlueOff          0x9798
-
-#define GlintLight15PositionX                         0xa7a0
-#define GlintLight15PositionXTag                      0x04f4
-#define GlintLight15PositionXReg                           1
-#define GlintLight15PositionXOff                      0x97a0
-
-#define GlintLight15PositionY                         0xa7a8
-#define GlintLight15PositionYTag                      0x04f5
-#define GlintLight15PositionYReg                           1
-#define GlintLight15PositionYOff                      0x97a8
-
-#define GlintLight15PositionZ                         0xa7b0
-#define GlintLight15PositionZTag                      0x04f6
-#define GlintLight15PositionZReg                           1
-#define GlintLight15PositionZOff                      0x97b0
-
-#define GlintLight15PositionW                         0xa7b8
-#define GlintLight15PositionWTag                      0x04f7
-#define GlintLight15PositionWReg                           1
-#define GlintLight15PositionWOff                      0x97b8
-
-#define GlintLight15SpotlightDirectionX               0xa7c0
-#define GlintLight15SpotlightDirectionXTag            0x04f8
-#define GlintLight15SpotlightDirectionXReg                 1
-#define GlintLight15SpotlightDirectionXOff            0x97c0
-
-#define GlintLight15SpotlightDirectionY               0xa7c8
-#define GlintLight15SpotlightDirectionYTag            0x04f9
-#define GlintLight15SpotlightDirectionYReg                 1
-#define GlintLight15SpotlightDirectionYOff            0x97c8
-
-#define GlintLight15SpotlightDirectionZ               0xa7d0
-#define GlintLight15SpotlightDirectionZTag            0x04fa
-#define GlintLight15SpotlightDirectionZReg                 1
-#define GlintLight15SpotlightDirectionZOff            0x97d0
-
-#define GlintLight15SpotlightExponent                 0xa7d8
-#define GlintLight15SpotlightExponentTag              0x04fb
-#define GlintLight15SpotlightExponentReg                   1
-#define GlintLight15SpotlightExponentOff              0x97d8
-
-#define GlintLight15CosSpotlightCutoffAngle           0xa7e0
-#define GlintLight15CosSpotlightCutoffAngleTag        0x04fc
-#define GlintLight15CosSpotlightCutoffAngleReg             1
-#define GlintLight15CosSpotlightCutoffAngleOff        0x97e0
-
-#define GlintLight15ConstantAttenuation               0xa7e8
-#define GlintLight15ConstantAttenuationTag            0x04fd
-#define GlintLight15ConstantAttenuationReg                 1
-#define GlintLight15ConstantAttenuationOff            0x97e8
-
-#define GlintLight15LinearAttenuation                 0xa7f0
-#define GlintLight15LinearAttenuationTag              0x04fe
-#define GlintLight15LinearAttenuationReg                   1
-#define GlintLight15LinearAttenuationOff              0x97f0
-
-#define GlintLight15QuadraticAttenuation              0xa7f8
-#define GlintLight15QuadraticAttenuationTag           0x04ff
-#define GlintLight15QuadraticAttenuationReg                1
-#define GlintLight15QuadraticAttenuationOff           0x97f8
-
-#define GlintSceneAmbientColorRed                     0xa800
-#define GlintSceneAmbientColorRedTag                  0x0500
-#define GlintSceneAmbientColorRedReg                       1
-#define GlintSceneAmbientColorRedOff                  0x9800
-
-#define GlintSceneAmbientColorGreen                   0xa808
-#define GlintSceneAmbientColorGreenTag                0x0501
-#define GlintSceneAmbientColorGreenReg                     1
-#define GlintSceneAmbientColorGreenOff                0x9808
-
-#define GlintSceneAmbientColorBlue                    0xa810
-#define GlintSceneAmbientColorBlueTag                 0x0502
-#define GlintSceneAmbientColorBlueReg                      1
-#define GlintSceneAmbientColorBlueOff                 0x9810
-
-#define GlintFrontAmbientColorRed                     0xa880
-#define GlintFrontAmbientColorRedTag                  0x0510
-#define GlintFrontAmbientColorRedReg                       1
-#define GlintFrontAmbientColorRedOff                  0x9880
-
-#define GlintFrontAmbientColorGreen                   0xa888
-#define GlintFrontAmbientColorGreenTag                0x0511
-#define GlintFrontAmbientColorGreenReg                     1
-#define GlintFrontAmbientColorGreenOff                0x9888
-
-#define GlintFrontAmbientColorBlue                    0xa890
-#define GlintFrontAmbientColorBlueTag                 0x0512
-#define GlintFrontAmbientColorBlueReg                      1
-#define GlintFrontAmbientColorBlueOff                 0x9890
-
-#define GlintFrontDiffuseColorRed                     0xa898
-#define GlintFrontDiffuseColorRedTag                  0x0513
-#define GlintFrontDiffuseColorRedReg                       1
-#define GlintFrontDiffuseColorRedOff                  0x9898
-
-#define GlintFrontDiffuseColorGreen                   0xa8a0
-#define GlintFrontDiffuseColorGreenTag                0x0514
-#define GlintFrontDiffuseColorGreenReg                     1
-#define GlintFrontDiffuseColorGreenOff                0x98a0
-
-#define GlintFrontDiffuseColorBlue                    0xa8a8
-#define GlintFrontDiffuseColorBlueTag                 0x0515
-#define GlintFrontDiffuseColorBlueReg                      1
-#define GlintFrontDiffuseColorBlueOff                 0x98a8
-
-#define GlintFrontAlpha                               0xa8b0
-#define GlintFrontAlphaTag                            0x0516
-#define GlintFrontAlphaReg                                 1
-#define GlintFrontAlphaOff                            0x98b0
-
-#define GlintFrontSpecularColorRed                    0xa8b8
-#define GlintFrontSpecularColorRedTag                 0x0517
-#define GlintFrontSpecularColorRedReg                      1
-#define GlintFrontSpecularColorRedOff                 0x98b8
-
-#define GlintFrontSpecularColorGreen                  0xa8c0
-#define GlintFrontSpecularColorGreenTag               0x0518
-#define GlintFrontSpecularColorGreenReg                    1
-#define GlintFrontSpecularColorGreenOff               0x98c0
-
-#define GlintFrontSpecularColorBlue                   0xa8c8
-#define GlintFrontSpecularColorBlueTag                0x0519
-#define GlintFrontSpecularColorBlueReg                     1
-#define GlintFrontSpecularColorBlueOff                0x98c8
-
-#define GlintFrontEmissiveColorRed                    0xa8d0
-#define GlintFrontEmissiveColorRedTag                 0x051a
-#define GlintFrontEmissiveColorRedReg                      1
-#define GlintFrontEmissiveColorRedOff                 0x98d0
-
-#define GlintFrontEmissiveColorGreen                  0xa8d8
-#define GlintFrontEmissiveColorGreenTag               0x051b
-#define GlintFrontEmissiveColorGreenReg                    1
-#define GlintFrontEmissiveColorGreenOff               0x98d8
-
-#define GlintFrontEmissiveColorBlue                   0xa8e0
-#define GlintFrontEmissiveColorBlueTag                0x051c
-#define GlintFrontEmissiveColorBlueReg                     1
-#define GlintFrontEmissiveColorBlueOff                0x98e0
-
-#define GlintFrontSpecularExponent                    0xa8e8
-#define GlintFrontSpecularExponentTag                 0x051d
-#define GlintFrontSpecularExponentReg                      1
-#define GlintFrontSpecularExponentOff                 0x98e8
-
-#define GlintBackAmbientColorRed                      0xa900
-#define GlintBackAmbientColorRedTag                   0x0520
-#define GlintBackAmbientColorRedReg                        1
-#define GlintBackAmbientColorRedOff                   0x9900
-
-#define GlintBackAmbientColorGreen                    0xa908
-#define GlintBackAmbientColorGreenTag                 0x0521
-#define GlintBackAmbientColorGreenReg                      1
-#define GlintBackAmbientColorGreenOff                 0x9908
-
-#define GlintBackAmbientColorBlue                     0xa910
-#define GlintBackAmbientColorBlueTag                  0x0522
-#define GlintBackAmbientColorBlueReg                       1
-#define GlintBackAmbientColorBlueOff                  0x9910
-
-#define GlintBackDiffuseColorRed                      0xa918
-#define GlintBackDiffuseColorRedTag                   0x0523
-#define GlintBackDiffuseColorRedReg                        1
-#define GlintBackDiffuseColorRedOff                   0x9918
-
-#define GlintBackDiffuseColorGreen                    0xa920
-#define GlintBackDiffuseColorGreenTag                 0x0524
-#define GlintBackDiffuseColorGreenReg                      1
-#define GlintBackDiffuseColorGreenOff                 0x9920
-
-#define GlintBackDiffuseColorBlue                     0xa928
-#define GlintBackDiffuseColorBlueTag                  0x0525
-#define GlintBackDiffuseColorBlueReg                       1
-#define GlintBackDiffuseColorBlueOff                  0x9928
-
-#define GlintBackAlpha                                0xa930
-#define GlintBackAlphaTag                             0x0526
-#define GlintBackAlphaReg                                  1
-#define GlintBackAlphaOff                             0x9930
-
-#define GlintBackSpecularColorRed                     0xa938
-#define GlintBackSpecularColorRedTag                  0x0527
-#define GlintBackSpecularColorRedReg                       1
-#define GlintBackSpecularColorRedOff                  0x9938
-
-#define GlintBackSpecularColorGreen                   0xa940
-#define GlintBackSpecularColorGreenTag                0x0528
-#define GlintBackSpecularColorGreenReg                     1
-#define GlintBackSpecularColorGreenOff                0x9940
-
-#define GlintBackSpecularColorBlue                    0xa948
-#define GlintBackSpecularColorBlueTag                 0x0529
-#define GlintBackSpecularColorBlueReg                      1
-#define GlintBackSpecularColorBlueOff                 0x9948
-
-#define GlintBackEmissiveColorRed                     0xa950
-#define GlintBackEmissiveColorRedTag                  0x052a
-#define GlintBackEmissiveColorRedReg                       1
-#define GlintBackEmissiveColorRedOff                  0x9950
-
-#define GlintBackEmissiveColorGreen                   0xa958
-#define GlintBackEmissiveColorGreenTag                0x052b
-#define GlintBackEmissiveColorGreenReg                     1
-#define GlintBackEmissiveColorGreenOff                0x9958
-
-#define GlintBackEmissiveColorBlue                    0xa960
-#define GlintBackEmissiveColorBlueTag                 0x052c
-#define GlintBackEmissiveColorBlueReg                      1
-#define GlintBackEmissiveColorBlueOff                 0x9960
-
-#define GlintBackSpecularExponent                     0xa968
-#define GlintBackSpecularExponentTag                  0x052d
-#define GlintBackSpecularExponentReg                       1
-#define GlintBackSpecularExponentOff                  0x9968
-
-#define GlintDMAAddr                                  0xa980
-#define GlintDMAAddrTag                               0x0530
-#define GlintDMAAddrReg                                    1
-#define GlintDMAAddrOff                               0x9980
-
-#define GlintGammaDMACount                            0xa988
-#define GlintGammaDMACountTag                         0x0531
-#define GlintGammaDMACountReg                              1
-#define GlintGammaDMACountOff                         0x9988
-
-#define GlintCommandInterrupt                         0xa990
-#define GlintCommandInterruptTag                      0x0532
-#define GlintCommandInterruptReg                           1
-#define GlintCommandInterruptOff                      0x9990
-
-#define GlintDMACall                                  0xa998
-#define GlintDMACallTag                               0x0533
-#define GlintDMACallReg                                    1
-#define GlintDMACallOff                               0x9998
-
-#define GlintDMAReturn                                0xa9a0
-#define GlintDMAReturnTag                             0x0534
-#define GlintDMAReturnReg                                  1
-#define GlintDMAReturnOff                             0x99a0
-
-#define GlintDMARectangularRead                       0xa9a8
-#define GlintDMARectangularReadTag                    0x0535
-#define GlintDMARectangularReadReg                         1
-#define GlintDMARectangularReadOff                    0x99a8
-
-#define GlintDMARectangleReadAddress                  0xa9b0
-#define GlintDMARectangleReadAddressTag               0x0536
-#define GlintDMARectangleReadAddressReg                    1
-#define GlintDMARectangleReadAddressOff               0x99b0
-
-#define GlintDMARectangleReadLinePitch                0xa9b8
-#define GlintDMARectangleReadLinePitchTag             0x0537
-#define GlintDMARectangleReadLinePitchReg                  1
-#define GlintDMARectangleReadLinePitchOff             0x99b8
-
-#define GlintDMARectangleReadTarget                   0xa9c0
-#define GlintDMARectangleReadTargetTag                0x0538
-#define GlintDMARectangleReadTargetReg                     1
-#define GlintDMARectangleReadTargetOff                0x99c0
-
-#define GlintDMARectangleWrite                        0xa9c8
-#define GlintDMARectangleWriteTag                     0x0539
-#define GlintDMARectangleWriteReg                          1
-#define GlintDMARectangleWriteOff                     0x99c8
-
-#define GlintDMARectangleWriteAddress                 0xa9d0
-#define GlintDMARectangleWriteAddressTag              0x053a
-#define GlintDMARectangleWriteAddressReg                   1
-#define GlintDMARectangleWriteAddressOff              0x99d0
-
-#define GlintDMARectangleWriteLinePitch               0xa9d8
-#define GlintDMARectangleWriteLinePitchTag            0x053b
-#define GlintDMARectangleWriteLinePitchReg                 1
-#define GlintDMARectangleWriteLinePitchOff            0x99d8
-
-#define GlintDMAOutputAddress                         0xa9e0
-#define GlintDMAOutputAddressTag                      0x053c
-#define GlintDMAOutputAddressReg                           1
-#define GlintDMAOutputAddressOff                      0x99e0
-
-#define GlintDMAOutputCount                           0xa9e8
-#define GlintDMAOutputCountTag                        0x053d
-#define GlintDMAOutputCountReg                             1
-#define GlintDMAOutputCountOff                        0x99e8
-
-#define GlintDMAReadGLINTSource                       0xa9f0
-#define GlintDMAReadGLINTSourceTag                    0x053e
-#define GlintDMAReadGLINTSourceReg                         1
-#define GlintDMAReadGLINTSourceOff                    0x99f0
-
-#define GlintDMAFeedback                              0xaa10
-#define GlintDMAFeedbackTag                           0x0542
-#define GlintDMAFeedbackReg                                1
-#define GlintDMAFeedbackOff                           0x9a10
-
-#define GlintTransformModeAnd                         0xaa80
-#define GlintTransformModeAndTag                      0x0550
-#define GlintTransformModeAndReg                           1
-#define GlintTransformModeAndOff                      0x9a80
-
-#define GlintTransformModeOr                          0xaa88
-#define GlintTransformModeOrTag                       0x0551
-#define GlintTransformModeOrReg                            1
-#define GlintTransformModeOrOff                       0x9a88
-
-#define GlintGeometryModeAnd                          0xaa90
-#define GlintGeometryModeAndTag                       0x0552
-#define GlintGeometryModeAndReg                            1
-#define GlintGeometryModeAndOff                       0x9a90
-
-#define GlintGeometryModeOr                           0xaa98
-#define GlintGeometryModeOrTag                        0x0553
-#define GlintGeometryModeOrReg                             1
-#define GlintGeometryModeOrOff                        0x9a98
-
-#define GlintNormalizeModeAnd                         0xaaa0
-#define GlintNormalizeModeAndTag                      0x0554
-#define GlintNormalizeModeAndReg                           1
-#define GlintNormalizeModeAndOff                      0x9aa0
-
-#define GlintNormalizeModeOr                          0xaaa8
-#define GlintNormalizeModeOrTag                       0x0555
-#define GlintNormalizeModeOrReg                            1
-#define GlintNormalizeModeOrOff                       0x9aa8
-
-#define GlintLightingModeAnd                          0xaab0
-#define GlintLightingModeAndTag                       0x0556
-#define GlintLightingModeAndReg                            1
-#define GlintLightingModeAndOff                       0x9ab0
-
-#define GlintLightingModeOr                           0xaab8
-#define GlintLightingModeOrTag                        0x0557
-#define GlintLightingModeOrReg                             1
-#define GlintLightingModeOrOff                        0x9ab8
-
-#define GlintColorMaterialModeAnd                     0xaac0
-#define GlintColorMaterialModeAndTag                  0x0558
-#define GlintColorMaterialModeAndReg                       1
-#define GlintColorMaterialModeAndOff                  0x9ac0
-
-#define GlintColorMaterialModeOr                      0xaac8
-#define GlintColorMaterialModeOrTag                   0x0559
-#define GlintColorMaterialModeOrReg                        1
-#define GlintColorMaterialModeOrOff                   0x9ac8
-
-#define GlintDeltaModeAnd                             0xaad0
-#define GlintDeltaModeAndTag                          0x055a
-#define GlintDeltaModeAndReg                               1
-#define GlintDeltaModeAndOff                          0x9ad0
-
-#define GlintDeltaModeOr                              0xaad8
-#define GlintDeltaModeOrTag                           0x055b
-#define GlintDeltaModeOrReg                                1
-#define GlintDeltaModeOrOff                           0x9ad8
-
-#define GlintPointModeAnd                             0xaae0
-#define GlintPointModeAndTag                          0x055c
-#define GlintPointModeAndReg                               1
-#define GlintPointModeAndOff                          0x9ae0
-
-#define GlintPointModeOr                              0xaae8
-#define GlintPointModeOrTag                           0x055d
-#define GlintPointModeOrReg                                1
-#define GlintPointModeOrOff                           0x9ae8
-
-#define GlintLineModeAnd                              0xaaf0
-#define GlintLineModeAndTag                           0x055e
-#define GlintLineModeAndReg                                1
-#define GlintLineModeAndOff                           0x9af0
-
-#define GlintLineModeOr                               0xaaf8
-#define GlintLineModeOrTag                            0x055f
-#define GlintLineModeOrReg                                 1
-#define GlintLineModeOrOff                            0x9af8
-
-#define GlintTriangleModeAnd                          0xab00
-#define GlintTriangleModeAndTag                       0x0560
-#define GlintTriangleModeAndReg                            1
-#define GlintTriangleModeAndOff                       0x9b00
-
-#define GlintTriangleModeOr                           0xab08
-#define GlintTriangleModeOrTag                        0x0561
-#define GlintTriangleModeOrReg                             1
-#define GlintTriangleModeOrOff                        0x9b08
-
-#define GlintMaterialModeAnd                          0xab10
-#define GlintMaterialModeAndTag                       0x0562
-#define GlintMaterialModeAndReg                            1
-#define GlintMaterialModeAndOff                       0x9b10
-
-#define GlintMaterialModeOr                           0xab18
-#define GlintMaterialModeOrTag                        0x0563
-#define GlintMaterialModeOrReg                             1
-#define GlintMaterialModeOrOff                        0x9b18
-
-#define GlintWindowAnd                                0xab80
-#define GlintWindowAndTag                             0x0570
-#define GlintWindowAndReg                                  1
-#define GlintWindowAndOff                             0x9b80
-
-#define GlintWindowOr                                 0xab88
-#define GlintWindowOrTag                              0x0571
-#define GlintWindowOrReg                                   1
-#define GlintWindowOrOff                              0x9b88
-
-#define GlintLBReadModeAnd                            0xab90
-#define GlintLBReadModeAndTag                         0x0572
-#define GlintLBReadModeAndReg                              1
-#define GlintLBReadModeAndOff                         0x9b90
-
-#define GlintLBReadModeOr                             0xab98
-#define GlintLBReadModeOrTag                          0x0573
-#define GlintLBReadModeOrReg                               1
-#define GlintLBReadModeOrOff                          0x9b98
-#endif
diff --git a/src/mesa/drivers/dri/gamma/gamma_context.c b/src/mesa/drivers/dri/gamma/gamma_context.c
deleted file mode 100644 (file)
index 5e666c5..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *
- * 3DLabs Gamma driver.
- *
- */
-#include "gamma_context.h"
-
-#include "swrast/swrast.h"
-#include "swrast_setup/swrast_setup.h"
-#include "vbo/vbo.h"
-
-#include "tnl/tnl.h"
-#include "tnl/t_pipeline.h"
-
-#include "drivers/common/driverfuncs.h"
-
-#include "main/context.h"
-#include "main/simple_list.h"
-#include "main/imports.h"
-#include "main/matrix.h"
-#include "main/extensions.h"
-#if defined(USE_X86_ASM)
-#include "x86/common_x86_asm.h"
-#endif
-#include "main/simple_list.h"
-#include "main/mm.h"
-
-
-#include "gamma_vb.h"
-#include "gamma_tris.h"
-#include "gamma_macros.h"
-
-extern const struct tnl_pipeline_stage _gamma_render_stage;
-
-static const struct tnl_pipeline_stage *gamma_pipeline[] = {
-   &_tnl_vertex_transform_stage,
-   &_tnl_normal_transform_stage,
-   &_tnl_lighting_stage,
-   &_tnl_fog_coordinate_stage,
-   &_tnl_texgen_stage,
-   &_tnl_texture_transform_stage,
-                               /* REMOVE: point attenuation stage */
-#if 1
-   &_gamma_render_stage,       /* ADD: unclipped rastersetup-to-dma */
-#endif
-   &_tnl_render_stage,
-   0,
-};
-
-GLboolean gammaCreateContext( const __GLcontextModes *glVisual,
-                            __DRIcontext *driContextPriv,
-                            void *sharedContextPrivate)
-{
-   GLcontext *ctx, *shareCtx;
-   __DRIscreen *sPriv = driContextPriv->driScreenPriv;
-   gammaContextPtr gmesa;
-   gammaScreenPtr gammascrn;
-   GLINTSAREADRIPtr saPriv=(GLINTSAREADRIPtr)(((char*)sPriv->pSAREA)+
-                                                sizeof(drm_sarea_t));
-   struct dd_function_table functions;
-
-   gmesa = (gammaContextPtr) CALLOC( sizeof(*gmesa) );
-   if (!gmesa)
-      return GL_FALSE;
-
-   /* Init default driver functions then plug in our gamma-specific functions
-    * (the texture functions are especially important)
-    */
-   _mesa_init_driver_functions( &functions );
-   gammaDDInitTextureFuncs( &functions );
-
-   /* Allocate the Mesa context */
-   if (sharedContextPrivate)
-      shareCtx = ((gammaContextPtr) sharedContextPrivate)->glCtx;
-   else
-      shareCtx = NULL;
-
-   gmesa->glCtx = _mesa_create_context(glVisual, shareCtx,
-                                       &functions, (void *) gmesa);
-   if (!gmesa->glCtx) {
-      FREE(gmesa);
-      return GL_FALSE;
-   }
-
-   gmesa->driContext = driContextPriv;
-   gmesa->driScreen = sPriv;
-   gmesa->driDrawable = NULL; /* Set by XMesaMakeCurrent */
-
-   gmesa->hHWContext = driContextPriv->hHWContext;
-   gmesa->driHwLock = &sPriv->pSAREA->lock;
-   gmesa->driFd = sPriv->fd;
-   gmesa->sarea = saPriv;
-
-   gammascrn = gmesa->gammaScreen = (gammaScreenPtr)(sPriv->private);
-
-   ctx = gmesa->glCtx;
-
-   ctx->Const.MaxTextureLevels = GAMMA_TEX_MAXLEVELS;
-   ctx->Const.MaxTextureUnits = 1; /* Permedia 3 */
-   ctx->Const.MaxTextureImageUnits = 1;
-   ctx->Const.MaxTextureCoordUnits = 1;
-
-   ctx->Const.MinLineWidth = 0.0;
-   ctx->Const.MaxLineWidth = 255.0;
-
-   ctx->Const.MinLineWidthAA = 0.0;
-   ctx->Const.MaxLineWidthAA = 65536.0;
-
-   ctx->Const.MinPointSize = 0.0;
-   ctx->Const.MaxPointSize = 255.0;
-
-   ctx->Const.MinPointSizeAA = 0.5; /* 4x4 quality mode */
-   ctx->Const.MaxPointSizeAA = 16.0; 
-   ctx->Const.PointSizeGranularity = 0.25;
-
-   ctx->Const.MaxDrawBuffers = 1;
-
-   gmesa->texHeap = mmInit( 0, gmesa->gammaScreen->textureSize );
-
-   make_empty_list(&gmesa->TexObjList);
-   make_empty_list(&gmesa->SwappedOut);
-
-   gmesa->CurrentTexObj[0] = 0;
-   gmesa->CurrentTexObj[1] = 0; /* Permedia 3, second texture */
-
-   gmesa->RenderIndex = ~0;
-
-
-   /* Initialize the software rasterizer and helper modules.
-    */
-   _swrast_CreateContext( ctx );
-   _vbo_CreateContext( ctx );
-   _tnl_CreateContext( ctx );
-   _swsetup_CreateContext( ctx );
-
-   /* Install the customized pipeline:
-    */
-   _tnl_destroy_pipeline( ctx );
-   _tnl_install_pipeline( ctx, gamma_pipeline );
-
-   /* Configure swrast & TNL to match hardware characteristics:
-    */
-   _swrast_allow_pixel_fog( ctx, GL_FALSE );
-   _swrast_allow_vertex_fog( ctx, GL_TRUE );
-   _tnl_allow_pixel_fog( ctx, GL_FALSE );
-   _tnl_allow_vertex_fog( ctx, GL_TRUE );
-
-   gammaInitVB( ctx );
-   gammaDDInitExtensions( ctx );
-   /* XXX these should really go right after _mesa_init_driver_functions() */
-   gammaDDInitDriverFuncs( ctx );
-   gammaDDInitStateFuncs( ctx );
-   gammaDDInitSpanFuncs( ctx );
-   gammaDDInitTriFuncs( ctx );
-   gammaDDInitState( gmesa );
-
-   gammaInitTextureObjects( ctx );
-
-   driContextPriv->driverPrivate = (void *)gmesa;
-
-   GET_FIRST_DMA(gmesa->driFd, gmesa->hHWContext,
-                 1, &gmesa->bufIndex, &gmesa->bufSize,
-                 &gmesa->buf, &gmesa->bufCount, gammascrn);
-
-#ifdef DO_VALIDATE
-    GET_FIRST_DMA(gmesa->driFd, gmesa->hHWContext,
-                 1, &gmesa->WCbufIndex, &gmesa->WCbufSize,
-                 &gmesa->WCbuf, &gmesa->WCbufCount, gammascrn);
-#endif
-
-    switch (glVisual->depthBits) {
-    case 16:
-       gmesa->DeltaMode = DM_Depth16;
-       gmesa->depth_scale = 1.0f / 0xffff;
-       break;
-    case 24:
-       gmesa->DeltaMode = DM_Depth24;
-       gmesa->depth_scale = 1.0f / 0xffffff;
-       break;
-    case 32:
-       gmesa->DeltaMode = DM_Depth32;
-       gmesa->depth_scale = 1.0f / 0xffffffff;
-       break;
-    default:
-       break;
-    }
-
-    gmesa->DepthSize = glVisual->depthBits;
-    gmesa->Flags  = GAMMA_FRONT_BUFFER;
-    gmesa->Flags |= (glVisual->doubleBufferMode ? GAMMA_BACK_BUFFER : 0);
-    gmesa->Flags |= (gmesa->DepthSize > 0 ? GAMMA_DEPTH_BUFFER : 0);
-
-    gmesa->EnabledFlags = GAMMA_FRONT_BUFFER;
-    gmesa->EnabledFlags |= (glVisual->doubleBufferMode ? GAMMA_BACK_BUFFER : 0);
-
-
-    if (gmesa->Flags & GAMMA_BACK_BUFFER) {
-        gmesa->readOffset = gmesa->drawOffset = gmesa->driScreen->fbHeight * gmesa->driScreen->fbWidth * gmesa->gammaScreen->cpp;
-    } else {
-       gmesa->readOffset = gmesa->drawOffset = 0;
-    }
-
-    gammaInitHW( gmesa );
-
-    driContextPriv->driverPrivate = (void *)gmesa;
-
-    return GL_TRUE;
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_context.h b/src/mesa/drivers/dri/gamma/gamma_context.h
deleted file mode 100644 (file)
index b03dfa6..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *
- */
-
-#ifndef _GAMMA_CONTEXT_H_
-#define _GAMMA_CONTEXT_H_
-
-#include "dri_util.h"
-#include "drm.h"
-#include "drm_sarea.h"
-#include "main/colormac.h"
-#include "gamma_regs.h"
-#include "gamma_screen.h"
-#include "main/macros.h"
-#include "main/mtypes.h"
-#include "glint_dri.h"
-#include "main/mm.h"
-
-typedef union {
-    unsigned int i;
-    float        f;
-} dmaBufRec, *dmaBuf;
-
-/* Flags for context */
-#define GAMMA_FRONT_BUFFER    0x00000001
-#define GAMMA_BACK_BUFFER     0x00000002
-#define GAMMA_DEPTH_BUFFER    0x00000004
-#define GAMMA_STENCIL_BUFFER  0x00000008
-#define GAMMA_ACCUM_BUFFER    0x00000010
-
-#define GAMMA_MAX_TEXTURE_SIZE    2048
-
-/* These are the minimum requirements and should probably be increased */
-#define MAX_MODELVIEW_STACK    16
-#define MAX_PROJECTION_STACK    2
-#define MAX_TEXTURE_STACK       2
-
-extern void      gammaDDUpdateHWState(GLcontext *ctx);
-extern gammaScreenPtr    gammaCreateScreen(__DRIscreen *sPriv);
-extern void      gammaDestroyScreen(__DRIscreen *sPriv);
-extern GLboolean gammaCreateContext( const __GLcontextModes *glVisual,
-                                     __DRIcontext *driContextPriv,
-                                     void *sharedContextPrivate);
-
-#define GAMMA_UPLOAD_ALL       0xffffffff
-#define GAMMA_UPLOAD_CLIPRECTS 0x00000002
-#define GAMMA_UPLOAD_ALPHA     0x00000004
-#define GAMMA_UPLOAD_BLEND     0x00000008
-#define GAMMA_UPLOAD_DEPTH     0x00000010
-#define GAMMA_UPLOAD_VIEWPORT  0x00000020
-#define GAMMA_UPLOAD_SHADE     0x00000040
-#define GAMMA_UPLOAD_CLIP      0x00000080
-#define GAMMA_UPLOAD_MASKS     0x00000100
-#define GAMMA_UPLOAD_WINDOW    0x00000200 /* defunct */
-#define GAMMA_UPLOAD_GEOMETRY  0x00000400
-#define GAMMA_UPLOAD_POLYGON   0x00000800
-#define GAMMA_UPLOAD_DITHER    0x00001000
-#define GAMMA_UPLOAD_LOGICOP   0x00002000
-#define GAMMA_UPLOAD_FOG       0x00004000
-#define GAMMA_UPLOAD_LIGHT     0x00008000
-#define GAMMA_UPLOAD_CONTEXT   0x00010000
-#define GAMMA_UPLOAD_TEX0      0x00020000
-#define GAMMA_UPLOAD_STIPPLE   0x00040000
-#define GAMMA_UPLOAD_TRANSFORM 0x00080000
-#define GAMMA_UPLOAD_LINEMODE  0x00100000
-#define GAMMA_UPLOAD_POINTMODE 0x00200000
-#define GAMMA_UPLOAD_TRIMODE   0x00400000
-
-#define GAMMA_NEW_CLIP         0x00000001
-#define GAMMA_NEW_WINDOW       0x00000002
-#define GAMMA_NEW_CONTEXT      0x00000004
-#define GAMMA_NEW_TEXTURE      0x00000008 /* defunct */
-#define GAMMA_NEW_ALPHA                0x00000010
-#define GAMMA_NEW_DEPTH                0x00000020
-#define GAMMA_NEW_MASKS                0x00000040
-#define GAMMA_NEW_POLYGON      0x00000080
-#define GAMMA_NEW_CULL         0x00000100
-#define GAMMA_NEW_LOGICOP      0x00000200
-#define GAMMA_NEW_FOG          0x00000400
-#define GAMMA_NEW_LIGHT                0x00000800
-#define GAMMA_NEW_STIPPLE      0x00001000
-#define GAMMA_NEW_ALL          0xffffffff
-
-#define GAMMA_FALLBACK_TRI     0x00000001
-#define GAMMA_FALLBACK_TEXTURE 0x00000002
-
-#define FLUSH_BATCH(gmesa) do {                                                \
-       /*FLUSH_DMA_BUFFER(gmesa);*/                                    \
-} while(0)
-
-struct gamma_context;
-typedef struct gamma_context gammaContextRec;
-typedef struct gamma_context *gammaContextPtr;
-typedef struct gamma_texture_object_t *gammaTextureObjectPtr;
-
-#define VALID_GAMMA_TEXTURE_OBJECT(tobj)  (tobj) 
-
-#define GAMMA_TEX_MAXLEVELS 12  /* 2K x 2K */
-
-/* For shared texture space managment, these texture objects may also
- * be used as proxies for regions of texture memory containing other
- * client's textures.  Such proxy textures (not to be confused with GL
- * proxy textures) are subject to the same LRU aging we use for our
- * own private textures, and thus we have a mechanism where we can
- * fairly decide between kicking out our own textures and those of
- * other clients.
- *
- * Non-local texture objects have a valid MemBlock to describe the
- * region managed by the other client, and can be identified by
- * 't->globj == 0' 
- */
-struct gamma_texture_object_t {
-   struct gamma_texture_object_t *next, *prev;
-
-   GLuint age;   
-   struct gl_texture_object *globj;
-     
-   int Pitch;
-   int Height;
-   int texelBytes;
-   int totalSize;
-   int bound;
-
-   struct mem_block *MemBlock;   
-   char * BufAddr;
-   
-   GLuint min_level;
-   GLuint max_level;
-   GLuint dirty_images;
-
-   GLint firstLevel, lastLevel;  /* upload tObj->Image[0][first .. lastLevel] */
-
-   struct { 
-      const struct gl_texture_image *image;
-      int offset;              /* into BufAddr */
-      int height;
-      int internalFormat;
-   } image[GAMMA_TEX_MAXLEVELS];
-
-   uint32_t TextureBaseAddr[GAMMA_TEX_MAXLEVELS];
-   uint32_t TextureAddressMode;
-   uint32_t TextureColorMode;
-   uint32_t TextureFilterMode;
-   uint32_t TextureFormat;
-   uint32_t TextureReadMode;
-   uint32_t TextureBorderColor;
-};             
-
-#define GAMMA_NO_PALETTE        0x0
-#define GAMMA_USE_PALETTE       0x1
-#define GAMMA_UPDATE_PALETTE    0x2
-#define GAMMA_FALLBACK_PALETTE  0x4
-
-void gammaUpdateTextureState( GLcontext *ctx );
-
-void gammaDestroyTexObj( gammaContextPtr gmesa, gammaTextureObjectPtr t );
-void gammaSwapOutTexObj( gammaContextPtr gmesa, gammaTextureObjectPtr t );
-void gammaUploadTexImages( gammaContextPtr gmesa, gammaTextureObjectPtr t );
-
-void gammaResetGlobalLRU( gammaContextPtr gmesa );
-void gammaUpdateTexLRU( gammaContextPtr gmesa, gammaTextureObjectPtr t );
-void gammaTexturesGone( gammaContextPtr gmesa, 
-                      GLuint start, GLuint end, 
-                      GLuint in_use ); 
-
-void gammaEmitHwState( gammaContextPtr gmesa );
-void gammaDDInitExtensions( GLcontext *ctx );
-void gammaDDInitDriverFuncs( GLcontext *ctx );
-void gammaDDInitSpanFuncs( GLcontext *ctx );
-void gammaDDInitState( gammaContextPtr gmesa );
-void gammaInitHW( gammaContextPtr gmesa );
-void gammaDDInitStateFuncs( GLcontext *ctx );
-void gammaDDInitTextureFuncs( struct dd_function_table *table );
-void gammaInitTextureObjects( GLcontext *ctx );
-void gammaDDInitTriFuncs( GLcontext *ctx );
-
-void gammaUpdateWindow( GLcontext *ctx );
-void gammaUpdateViewportOffset( GLcontext *ctx );
-
-void gammaPrintLocalLRU( gammaContextPtr gmesa );
-void gammaPrintGlobalLRU( gammaContextPtr gmesa );
-
-extern void gammaFallback( gammaContextPtr gmesa, GLuint bit, GLboolean mode );
-#define FALLBACK( imesa, bit, mode ) gammaFallback( imesa, bit, mode )
-
-/* Use the templated vertex formats.  Only one of these is used in gamma.
- */
-#define TAG(x) gamma##x
-#include "tnl_dd/t_dd_vertex.h"
-#undef TAG
-
-typedef void (*gamma_quad_func)( gammaContextPtr, 
-                                const gammaVertex *, 
-                                const gammaVertex *,
-                                const gammaVertex *,
-                                const gammaVertex * );
-typedef void (*gamma_tri_func)( gammaContextPtr, 
-                               const gammaVertex *, 
-                               const gammaVertex *,
-                               const gammaVertex * );
-typedef void (*gamma_line_func)( gammaContextPtr, 
-                                const gammaVertex *, 
-                                const gammaVertex * );
-typedef void (*gamma_point_func)( gammaContextPtr, 
-                                 const gammaVertex * );
-
-
-struct gamma_context {
-       GLcontext               *glCtx;         /* Mesa context */
-
-       __DRIcontext    *driContext;
-       __DRIscreen     *driScreen;
-       __DRIdrawable   *driDrawable;
-
-       GLuint                  new_gl_state;
-       GLuint                  new_state;
-       GLuint                  dirty;
-
-       GLINTSAREADRIPtr        sarea; 
-
-       /* Mirrors of some DRI state
-        */
-       drm_context_t hHWContext;
-       drm_hw_lock_t *driHwLock;
-       int driFd;
-
-       GLuint numClipRects;               /* Cliprects for the draw buffer */
-       drm_clip_rect_t *pClipRects;
-
-       dmaBuf              buf;           /* DMA buffer for regular cmds */
-       int                 bufIndex;
-       int                 bufSize;
-       int                 bufCount;
-
-       dmaBuf              WCbuf;         /* DMA buffer for window changed cmds */
-       int                 WCbufIndex;
-       int                 WCbufSize;
-       int                 WCbufCount;
-
-       gammaScreenPtr gammaScreen;             /* Screen private DRI data */
-
-       int                     drawOffset;
-       int                     readOffset;
-
-       gamma_point_func    draw_point;
-       gamma_line_func     draw_line;
-       gamma_tri_func      draw_tri;
-       gamma_quad_func     draw_quad;
-
-       GLuint Fallback;
-       GLuint RenderIndex;
-       GLuint SetupNewInputs;
-       GLuint SetupIndex;
-
-       GLuint vertex_format;
-       GLuint vertex_size;
-       GLuint vertex_stride_shift;
-       GLubyte *verts;
-
-       GLfloat hw_viewport[16];
-       GLuint hw_primitive;
-       GLenum render_primitive;
-
-       GLfloat depth_scale;
-
-       gammaTextureObjectPtr CurrentTexObj[2];
-       struct gamma_texture_object_t TexObjList;
-       struct gamma_texture_object_t SwappedOut; 
-       GLenum TexEnvImageFmt[2];
-
-       struct mem_block *texHeap;
-
-       unsigned int lastSwap;
-       int texAge;
-       int ctxAge;
-       int dirtyAge;
-       unsigned int lastStamp;
-   
-
-       uint32_t                ClearColor;
-       uint32_t                Color;
-       uint32_t                DitherMode;
-       uint32_t                ClearDepth;
-       uint32_t                FogMode;
-       uint32_t                AreaStippleMode;
-       uint32_t                LBReadFormat;
-       uint32_t                LBWriteFormat;
-       uint32_t                LineMode;
-       uint32_t                PointMode;
-       uint32_t                TriangleMode;
-       uint32_t                AntialiasMode;
-       GLfloat                 ViewportScaleX;
-       GLfloat                 ViewportScaleY;
-       GLfloat                 ViewportScaleZ;
-       GLfloat                 ViewportOffsetX;
-       GLfloat                 ViewportOffsetY;
-       GLfloat                 ViewportOffsetZ;
-    int                 MatrixMode;
-    int                 DepthMode;
-    int                        TransformMode;
-    int                 LBReadMode;
-    int                 FBReadMode;
-    int                 FBWindowBase;
-    int                 LBWindowBase;
-    int                 ColorDDAMode;
-    int                 GeometryMode;
-    int                 AlphaTestMode;
-    int                 AlphaBlendMode;
-    int                 AB_FBReadMode;
-    int                 AB_FBReadMode_Save;
-    int                 DeltaMode;
-    int                        ColorMaterialMode;
-    int                        FBHardwareWriteMask;
-    int                        MaterialMode;
-    int                        NormalizeMode;
-    int                        LightingMode;
-    int                        Light0Mode;
-    int                        Light1Mode;
-    int                        Light2Mode;
-    int                        Light3Mode;
-    int                        Light4Mode;
-    int                        Light5Mode;
-    int                        Light6Mode;
-    int                        Light7Mode;
-    int                        Light8Mode;
-    int                        Light9Mode;
-    int                        Light10Mode;
-    int                        Light11Mode;
-    int                        Light12Mode;
-    int                        Light13Mode;
-    int                        Light14Mode;
-    int                        Light15Mode;
-    int                        LogicalOpMode;
-    int                        ScissorMode;
-    int                        ScissorMaxXY;
-    int                        ScissorMinXY;
-    int                 Window; /* GID part probably should be in draw priv */
-    int                 WindowOrigin;
-    int                 x, y, w, h; /* Probably should be in drawable priv */
-    int                 FrameCount; /* Probably should be in drawable priv */
-    int                 NotClipped; /* Probably should be in drawable priv */
-    int                 WindowChanged; /* Probably should be in drawabl... */
-    int                 Flags;
-    int                 EnabledFlags;
-    int                 DepthSize;
-    int                 Begin;
-    GLenum              ErrorValue;
-    int                 Texture1DEnabled;
-    int                 Texture2DEnabled;
-
-    float               ModelView[16];
-    float               Proj[16];
-    float               ModelViewProj[16];
-    float               Texture[16];
-
-    float               ModelViewStack[(MAX_MODELVIEW_STACK-1)*16];
-    int                 ModelViewCount;
-    float               ProjStack[(MAX_PROJECTION_STACK-1)*16];
-    int                 ProjCount;
-    float               TextureStack[(MAX_TEXTURE_STACK-1)*16];
-    int                 TextureCount;
-};
-
-static INLINE GLuint gammaPackColor( GLuint cpp,
-                                       GLubyte r, GLubyte g,
-                                       GLubyte b, GLubyte a )
-{
-   switch ( cpp ) {
-   case 2:
-      return PACK_COLOR_565( r, g, b );
-   case 4:
-      return PACK_COLOR_8888( a, r, g, b );
-   default:
-      return 0;
-   }
-}
-
-#define GAMMA_CONTEXT(ctx)             ((gammaContextPtr)(ctx->DriverCtx))
-
-#endif /* _GAMMA_CONTEXT_H_ */
diff --git a/src/mesa/drivers/dri/gamma/gamma_dd.c b/src/mesa/drivers/dri/gamma/gamma_dd.c
deleted file mode 100644 (file)
index 389d223..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *
- */
-
-#include "gamma_context.h"
-#include "gamma_vb.h"
-#include "gamma_lock.h"
-#include "gamma_macros.h"
-#if defined(USE_X86_ASM)
-#include "x86/common_x86_asm.h"
-#endif
-
-#include "main/context.h"
-#include "swrast/swrast.h"
-
-#define GAMMA_DATE     "20021125"
-
-
-/* Return the width and height of the current color buffer.
- */
-static void gammaDDGetBufferSize( GLframebuffer *buffer,
-                                GLuint *width, GLuint *height )
-{
-   GET_CURRENT_CONTEXT(ctx);
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   GAMMAHW_LOCK( gmesa );
-   *width  = gmesa->driDrawable->w;
-   *height = gmesa->driDrawable->h;
-   GAMMAHW_UNLOCK( gmesa );
-}
-
-
-/* Return various strings for glGetString().
- */
-static const GLubyte *gammaDDGetString( GLcontext *ctx, GLenum name )
-{
-   static char buffer[128];
-
-   switch ( name ) {
-   case GL_VENDOR:
-      return (GLubyte *)"VA Linux Systems, Inc.";
-
-   case GL_RENDERER:
-      sprintf( buffer, "Mesa DRI Gamma " GAMMA_DATE );
-
-      /* Append any CPU-specific information.
-       */
-#ifdef USE_X86_ASM
-      if ( _mesa_x86_cpu_features ) {
-        strncat( buffer, " x86", 4 );
-      }
-#ifdef USE_MMX_ASM
-      if ( cpu_has_mmx ) {
-        strncat( buffer, "/MMX", 4 );
-      }
-#endif
-#ifdef USE_3DNOW_ASM
-      if ( cpu_has_3dnow ) {
-        strncat( buffer, "/3DNow!", 7 );
-      }
-#endif
-#ifdef USE_SSE_ASM
-      if ( cpu_has_xmm ) {
-        strncat( buffer, "/SSE", 4 );
-      }
-#endif
-#endif
-      return (GLubyte *)buffer;
-
-   default:
-      return NULL;
-   }
-}
-
-/* Enable the extensions supported by this driver.
- */
-void gammaDDInitExtensions( GLcontext *ctx )
-{
-   /* None... */
-}
-
-/* Initialize the driver's misc functions.
- */
-void gammaDDInitDriverFuncs( GLcontext *ctx )
-{
-   ctx->Driver.GetBufferSize = gammaDDGetBufferSize;
-   ctx->Driver.GetString = gammaDDGetString;
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_inithw.c b/src/mesa/drivers/dri/gamma/gamma_inithw.c
deleted file mode 100644 (file)
index 735acb7..0000000
+++ /dev/null
@@ -1,551 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *           Kevin E. Martin <martin@valinux.com>
- *
- */
-
-#include "gamma_context.h"
-#include "gamma_macros.h"
-#include "glint_dri.h"
-
-void gammaInitHW( gammaContextPtr gmesa )
-{
-    GLINTDRIPtr gDRIPriv = (GLINTDRIPtr)gmesa->driScreen->pDevPriv;
-    int i;
-
-    if (gDRIPriv->numMultiDevices == 2) {
-       /* Set up each MX's ScanLineOwnership for OpenGL */
-       CHECK_DMA_BUFFER(gmesa, 5);
-       WRITE(gmesa->buf, BroadcastMask, 1);
-       WRITE(gmesa->buf, ScanLineOwnership, 5); /* Use bottom left as [0,0] */
-       WRITE(gmesa->buf, BroadcastMask, 2);
-       WRITE(gmesa->buf, ScanLineOwnership, 1); /* Use bottom left as [0,0] */
-       /* Broadcast to both MX's */
-       WRITE(gmesa->buf, BroadcastMask, 3);
-       FLUSH_DMA_BUFFER(gmesa); 
-    }
-
-    gmesa->AlphaBlendMode = (AlphaBlendModeDisable |
-                            AB_Src_One |
-                            AB_Dst_Zero |
-                            AB_NoAlphaBufferPresent |
-                            AB_ColorFmt_8888 |
-                            AB_ColorOrder_RGB |
-                            AB_OpenGLType |
-                            AB_AlphaDst_FBData |
-                            AB_ColorConversionScale |
-                            AB_AlphaConversionScale);
-
-    gmesa->DitherMode = DitherModeEnable | DM_ColorOrder_RGB;
-
-    switch (gmesa->gammaScreen->cpp) {
-       case 2:
-               gmesa->DitherMode |= DM_ColorFmt_5555;
-               gmesa->AlphaBlendMode |= AB_ColorFmt_5555;
-               CHECK_DMA_BUFFER(gmesa, 1);
-               WRITE(gmesa->buf, PixelSize, 1);
-               break;
-       case 4:
-               gmesa->DitherMode |= DM_ColorFmt_8888;
-               gmesa->AlphaBlendMode |= AB_ColorFmt_8888;
-               WRITE(gmesa->buf, PixelSize, 0);
-               break;
-    }
-
-    /* FIXME for stencil, gid, etc */
-    switch (gmesa->DepthSize) {
-       case 16:
-               gmesa->LBReadFormat = 
-                        (LBRF_DepthWidth16    | 
-                          LBRF_StencilWidth8   |
-                          LBRF_StencilPos16    |
-                          LBRF_FrameCount8     |
-                          LBRF_FrameCountPos24 |
-                          LBRF_GIDWidth4       |
-                          LBRF_GIDPos32         );
-               gmesa->LBWriteFormat = 
-                        (LBRF_DepthWidth16    | 
-                          LBRF_StencilWidth8   |
-                          LBRF_StencilPos16    |
-                          LBRF_FrameCount8     |
-                          LBRF_FrameCountPos24 |
-                          LBRF_GIDWidth4       |
-                          LBRF_GIDPos32         );
-               break;
-       case 24:
-               gmesa->LBReadFormat = 
-                        (LBRF_DepthWidth24    | 
-                          LBRF_StencilWidth8   |
-                          LBRF_StencilPos24    |
-                          LBRF_FrameCount8     |
-                          LBRF_FrameCountPos32 |
-                          LBRF_GIDWidth4       |
-                          LBRF_GIDPos36         );
-               gmesa->LBWriteFormat = 
-                        (LBRF_DepthWidth24    | 
-                          LBRF_StencilWidth8   |
-                          LBRF_StencilPos24    |
-                          LBRF_FrameCount8     |
-                          LBRF_FrameCountPos32 |
-                          LBRF_GIDWidth4       |
-                          LBRF_GIDPos36         );
-               break;
-       case 32:
-               gmesa->LBReadFormat = 
-                        (LBRF_DepthWidth32    | 
-                          LBRF_StencilWidth8   |
-                          LBRF_StencilPos32    |
-                          LBRF_FrameCount8     |
-                          LBRF_FrameCountPos40 |
-                          LBRF_GIDWidth4       |
-                          LBRF_GIDPos44         );
-               gmesa->LBWriteFormat = 
-                        (LBRF_DepthWidth32    | 
-                          LBRF_StencilWidth8   |
-                          LBRF_StencilPos32    |
-                          LBRF_FrameCount8     |
-                          LBRF_FrameCountPos40 |
-                          LBRF_GIDWidth4       |
-                          LBRF_GIDPos44         );
-               break;
-    }
-
-    gmesa->FBHardwareWriteMask = 0xffffffff;
-    gmesa->FogMode = FogModeDisable;
-    gmesa->ClearDepth = 0xffffffff;
-    gmesa->AreaStippleMode = AreaStippleModeDisable;
-    gmesa->x = 0;
-    gmesa->y = 0;
-    gmesa->w = 0;
-    gmesa->h = 0;
-    gmesa->FrameCount = 0;
-    gmesa->MatrixMode = GL_MODELVIEW;
-    gmesa->ModelViewCount = 0;
-    gmesa->ProjCount = 0;
-    gmesa->TextureCount = 0;
-    gmesa->PointMode = PM_AntialiasQuality_4x4;
-    gmesa->LineMode = LM_AntialiasQuality_4x4;
-    gmesa->TriangleMode = TM_AntialiasQuality_4x4;
-    gmesa->AntialiasMode = AntialiasModeDisable;
-
-    for (i = 0; i < 16; i++)
-       if (i % 5 == 0)
-           gmesa->ModelView[i] =
-               gmesa->Proj[i] =
-               gmesa->ModelViewProj[i] =
-               gmesa->Texture[i] = 1.0;
-       else
-           gmesa->ModelView[i] =
-               gmesa->Proj[i] =
-               gmesa->ModelViewProj[i] =
-               gmesa->Texture[i] = 0.0;
-
-    gmesa->LBReadMode = (LBReadSrcDisable |
-                        LBReadDstDisable |
-                        LBDataTypeDefault |
-                        LBWindowOriginBot | 
-                        gDRIPriv->pprod);
-    gmesa->FBReadMode = (FBReadSrcDisable |
-                        FBReadDstDisable |
-                        FBDataTypeDefault |
-                        FBWindowOriginBot |  
-                        gDRIPriv->pprod);
-    if (gDRIPriv->numMultiDevices == 2) {
-       gmesa->LBReadMode |= LBScanLineInt2;
-       gmesa->FBReadMode |= FBScanLineInt2;
-        gmesa->LBWindowBase = gmesa->driScreen->fbWidth *
-                            (gmesa->driScreen->fbHeight/2 - 1);
-       gmesa->FBWindowBase = gmesa->driScreen->fbWidth * 
-                            (gmesa->driScreen->fbHeight/2 - 1);
-    } else {
-        gmesa->LBWindowBase = gmesa->driScreen->fbWidth *
-                            (gmesa->driScreen->fbHeight - 1);
-       gmesa->FBWindowBase = gmesa->driScreen->fbWidth * 
-                            (gmesa->driScreen->fbHeight - 1);
-    }
-
-    gmesa->Begin = (B_AreaStippleDisable |
-                   B_LineStippleDisable |
-                   B_AntiAliasDisable |
-                   B_TextureDisable |
-                   B_FogDisable |
-                   B_SubPixelCorrectEnable |
-                   B_PrimType_Null);
-
-    gmesa->ColorDDAMode = (ColorDDAEnable |
-                          ColorDDAGouraud);
-
-    gmesa->GeometryMode = (GM_TextureDisable |
-                          GM_FogDisable |
-                          GM_FogExp |
-                          GM_FrontPolyFill |
-                          GM_BackPolyFill |
-                          GM_FrontFaceCCW |
-                          GM_PolyCullDisable |
-                          GM_PolyCullBack |
-                          GM_ClipShortLinesDisable |
-                          GM_ClipSmallTrisDisable |
-                          GM_RenderMode |
-                          GM_Feedback2D |
-                          GM_CullFaceNormDisable |
-                          GM_AutoFaceNormDisable |
-                          GM_GouraudShading |
-                          GM_UserClipNone |
-                          GM_PolyOffsetPointDisable |
-                          GM_PolyOffsetLineDisable |
-                          GM_PolyOffsetFillDisable |
-                          GM_InvertFaceNormCullDisable);
-
-    gmesa->AlphaTestMode = (AlphaTestModeDisable |
-                           AT_Always);
-
-    gmesa->AB_FBReadMode_Save = gmesa->AB_FBReadMode = 0;
-
-    gmesa->Window = (WindowEnable  | /* For GID testing */
-                    W_PassIfEqual |
-                    (0 << 5)); /* GID part is set from draw priv (below) */
-
-    gmesa->NotClipped = GL_FALSE;
-    gmesa->WindowChanged = GL_TRUE;
-
-    gmesa->Texture1DEnabled = GL_FALSE;
-    gmesa->Texture2DEnabled = GL_FALSE;
-
-    gmesa->DepthMode |= (DepthModeDisable |
-                       DM_WriteMask |
-                       DM_Less);
-
-    gmesa->DeltaMode |= (DM_SubPixlCorrectionEnable |
-                       DM_SmoothShadingEnable |
-                       DM_Target500TXMX);
-
-    gmesa->LightingMode = LightingModeDisable | LightingModeSpecularEnable;
-    gmesa->Light0Mode = LNM_Off;
-    gmesa->Light1Mode = LNM_Off;
-    gmesa->Light2Mode = LNM_Off;
-    gmesa->Light3Mode = LNM_Off;
-    gmesa->Light4Mode = LNM_Off;
-    gmesa->Light5Mode = LNM_Off;
-    gmesa->Light6Mode = LNM_Off;
-    gmesa->Light7Mode = LNM_Off;
-    gmesa->Light8Mode = LNM_Off;
-    gmesa->Light9Mode = LNM_Off;
-    gmesa->Light10Mode = LNM_Off;
-    gmesa->Light11Mode = LNM_Off;
-    gmesa->Light12Mode = LNM_Off;
-    gmesa->Light13Mode = LNM_Off;
-    gmesa->Light14Mode = LNM_Off;
-    gmesa->Light15Mode = LNM_Off;
-
-    gmesa->LogicalOpMode = LogicalOpModeDisable;
-
-    gmesa->MaterialMode = MaterialModeDisable;
-
-    gmesa->ScissorMode = UserScissorDisable | ScreenScissorDisable;
-
-    gmesa->TransformMode = XM_UseModelViewProjMatrix |
-                                   XM_TexGenModeS_None |
-                                   XM_TexGenModeT_None |
-                                   XM_TexGenModeR_None |
-                                   XM_TexGenModeQ_None;
-
-    CHECK_DMA_BUFFER(gmesa, 20);
-    WRITE(gmesa->buf, LineStippleMode, 0);
-    WRITE(gmesa->buf, RouterMode, 0);
-    WRITE(gmesa->buf, TextureAddressMode, 0);
-    WRITE(gmesa->buf, TextureReadMode, 0);
-    WRITE(gmesa->buf, TextureFilterMode, 0);
-    WRITE(gmesa->buf, TextureColorMode, 0);
-    WRITE(gmesa->buf, StencilMode, 0);
-    WRITE(gmesa->buf, PatternRamMode, 0);
-    WRITE(gmesa->buf, ChromaTestMode, 0);
-    WRITE(gmesa->buf, StatisticMode, 0);
-    WRITE(gmesa->buf, AreaStippleMode, gmesa->AreaStippleMode);
-    WRITE(gmesa->buf, ScissorMode, gmesa->ScissorMode);
-    WRITE(gmesa->buf, FogMode, gmesa->FogMode);
-    WRITE(gmesa->buf, AntialiasMode, gmesa->AntialiasMode);
-    WRITE(gmesa->buf, LogicalOpMode, gmesa->LogicalOpMode);
-    WRITE(gmesa->buf, TriangleMode, gmesa->TriangleMode);
-    WRITE(gmesa->buf, PointMode, gmesa->PointMode);
-    WRITE(gmesa->buf, LineMode, gmesa->LineMode);
-    WRITE(gmesa->buf, LBWriteFormat, gmesa->LBWriteFormat);
-    WRITE(gmesa->buf, LBReadFormat,  gmesa->LBReadFormat);
-
-    /* Framebuffer initialization */
-    CHECK_DMA_BUFFER(gmesa, 10);
-    WRITE(gmesa->buf, FBSourceData, 0);
-    WRITE(gmesa->buf, FBReadMode, gmesa->FBReadMode);
-    if (gmesa->EnabledFlags & GAMMA_BACK_BUFFER) {
-       if (gDRIPriv->numMultiDevices == 2) {
-           WRITE(gmesa->buf, FBPixelOffset,
-             (gmesa->driScreen->fbHeight/2)*gmesa->driScreen->fbWidth);
-       } else {
-           WRITE(gmesa->buf, FBPixelOffset,
-             gmesa->driScreen->fbHeight*gmesa->driScreen->fbWidth);
-       }
-    } else
-       WRITE(gmesa->buf, FBPixelOffset, 0);
-    WRITE(gmesa->buf, FBSourceOffset, 0);
-    WRITE(gmesa->buf, FBHardwareWriteMask, 0xffffffff);
-    WRITE(gmesa->buf, FBSoftwareWriteMask, 0xffffffff);
-    WRITE(gmesa->buf, FBWriteMode, FBWriteModeEnable);
-    WRITE(gmesa->buf, FBWindowBase, gmesa->FBWindowBase);
-    WRITE(gmesa->buf, ScreenSize, ((gmesa->driScreen->fbHeight << 16) |
-                                (gmesa->driScreen->fbWidth)));
-    WRITE(gmesa->buf, WindowOrigin, 0x00000000);
-
-    /* Localbuffer initialization */
-    CHECK_DMA_BUFFER(gmesa, 5);
-    WRITE(gmesa->buf, LBReadMode, gmesa->LBReadMode);
-    WRITE(gmesa->buf, LBSourceOffset, 0);
-    WRITE(gmesa->buf, LBWriteMode, LBWriteModeEnable);
-    WRITE(gmesa->buf, LBWindowOffset, 0);
-    WRITE(gmesa->buf, LBWindowBase, gmesa->LBWindowBase);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, Rectangle2DControl, 1);
-
-    CHECK_DMA_BUFFER(gmesa, 11);
-    WRITE(gmesa->buf, DepthMode, gmesa->DepthMode);
-    WRITE(gmesa->buf, ColorDDAMode, gmesa->ColorDDAMode);
-    WRITE(gmesa->buf, FBBlockColor, 0x00000000);
-    WRITE(gmesa->buf, ConstantColor, 0x00000000);
-    WRITE(gmesa->buf, AlphaTestMode, gmesa->AlphaTestMode);
-    WRITE(gmesa->buf, AlphaBlendMode, gmesa->AlphaBlendMode);
-    WRITE(gmesa->buf, DitherMode, gmesa->DitherMode);
-    if (gDRIPriv->numMultiDevices == 2)
-       WRITE(gmesa->buf, RasterizerMode, RM_MultiGLINT | RM_BiasCoordNearHalf);
-    else
-       WRITE(gmesa->buf, RasterizerMode, RM_BiasCoordNearHalf);
-    WRITE(gmesa->buf, GLINTWindow, gmesa->Window);
-    WRITE(gmesa->buf, FastClearDepth, gmesa->ClearDepth);
-    WRITE(gmesa->buf, GLINTDepth, gmesa->ClearDepth);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, EdgeFlag, EdgeFlagEnable);
-
-    CHECK_DMA_BUFFER(gmesa, 16);
-    WRITEF(gmesa->buf, ModelViewMatrix0,  1.0);
-    WRITEF(gmesa->buf, ModelViewMatrix1,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix2,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix3,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix4,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix5,  1.0);
-    WRITEF(gmesa->buf, ModelViewMatrix6,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix7,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix8,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix9,  0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix10, 1.0);
-    WRITEF(gmesa->buf, ModelViewMatrix11, 0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix12, 0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix13, 0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix14, 0.0);
-    WRITEF(gmesa->buf, ModelViewMatrix15, 1.0);
-
-    CHECK_DMA_BUFFER(gmesa, 16);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix0,  1.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix1,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix2,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix3,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix4,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix5,  1.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix6,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix7,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix8,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix9,  0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix10, 1.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix11, 0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix12, 0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix13, 0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix14, 0.0);
-    WRITEF(gmesa->buf, ModelViewProjectionMatrix15, 1.0);
-
-    CHECK_DMA_BUFFER(gmesa, 16);
-    WRITEF(gmesa->buf, TextureMatrix0,  1.0);
-    WRITEF(gmesa->buf, TextureMatrix1,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix2,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix3,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix4,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix5,  1.0);
-    WRITEF(gmesa->buf, TextureMatrix6,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix7,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix8,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix9,  0.0);
-    WRITEF(gmesa->buf, TextureMatrix10, 1.0);
-    WRITEF(gmesa->buf, TextureMatrix11, 0.0);
-    WRITEF(gmesa->buf, TextureMatrix12, 0.0);
-    WRITEF(gmesa->buf, TextureMatrix13, 0.0);
-    WRITEF(gmesa->buf, TextureMatrix14, 0.0);
-    WRITEF(gmesa->buf, TextureMatrix15, 1.0);
-
-    CHECK_DMA_BUFFER(gmesa, 16);
-    WRITEF(gmesa->buf, TexGen0,  0.0);
-    WRITEF(gmesa->buf, TexGen1,  0.0);
-    WRITEF(gmesa->buf, TexGen2,  0.0);
-    WRITEF(gmesa->buf, TexGen3,  0.0);
-    WRITEF(gmesa->buf, TexGen4,  0.0);
-    WRITEF(gmesa->buf, TexGen5,  0.0);
-    WRITEF(gmesa->buf, TexGen6,  0.0);
-    WRITEF(gmesa->buf, TexGen7,  0.0);
-    WRITEF(gmesa->buf, TexGen8,  0.0);
-    WRITEF(gmesa->buf, TexGen9,  0.0);
-    WRITEF(gmesa->buf, TexGen10, 0.0);
-    WRITEF(gmesa->buf, TexGen11, 0.0);
-    WRITEF(gmesa->buf, TexGen12, 0.0);
-    WRITEF(gmesa->buf, TexGen13, 0.0);
-    WRITEF(gmesa->buf, TexGen14, 0.0);
-    WRITEF(gmesa->buf, TexGen15, 0.0);
-
-    CHECK_DMA_BUFFER(gmesa, 9);
-    WRITEF(gmesa->buf, NormalMatrix0, 1.0);
-    WRITEF(gmesa->buf, NormalMatrix1, 0.0);
-    WRITEF(gmesa->buf, NormalMatrix2, 0.0);
-    WRITEF(gmesa->buf, NormalMatrix3, 0.0);
-    WRITEF(gmesa->buf, NormalMatrix4, 1.0);
-    WRITEF(gmesa->buf, NormalMatrix5, 0.0);
-    WRITEF(gmesa->buf, NormalMatrix6, 0.0);
-    WRITEF(gmesa->buf, NormalMatrix7, 0.0);
-    WRITEF(gmesa->buf, NormalMatrix8, 1.0);
-
-    CHECK_DMA_BUFFER(gmesa, 3);
-    WRITEF(gmesa->buf, FogDensity, 0.0);
-    WRITEF(gmesa->buf, FogEnd,     0.0);
-    WRITEF(gmesa->buf, FogScale,   0.0);
-
-    CHECK_DMA_BUFFER(gmesa, 2);
-    WRITEF(gmesa->buf, LineClipLengthThreshold,   0.0);
-    WRITEF(gmesa->buf, TriangleClipAreaThreshold, 0.0);
-
-    CHECK_DMA_BUFFER(gmesa, 5);
-    WRITE(gmesa->buf, GeometryMode, gmesa->GeometryMode);
-    WRITE(gmesa->buf, NormalizeMode, NormalizeModeDisable);
-    WRITE(gmesa->buf, LightingMode, gmesa->LightingMode);
-    WRITE(gmesa->buf, ColorMaterialMode, ColorMaterialModeDisable);
-    WRITE(gmesa->buf, MaterialMode, MaterialModeDisable);
-
-    CHECK_DMA_BUFFER(gmesa, 2);
-    WRITE(gmesa->buf, FrontSpecularExponent, 0); /* fixed point */
-    WRITE(gmesa->buf, BackSpecularExponent,  0); /* fixed point */
-
-    CHECK_DMA_BUFFER(gmesa, 29);
-    WRITEF(gmesa->buf, FrontAmbientColorRed,    0.2);
-    WRITEF(gmesa->buf, FrontAmbientColorGreen,  0.2);
-    WRITEF(gmesa->buf, FrontAmbientColorBlue,   0.2);
-    WRITEF(gmesa->buf, BackAmbientColorRed,     0.2);
-    WRITEF(gmesa->buf, BackAmbientColorGreen,   0.2);
-    WRITEF(gmesa->buf, BackAmbientColorBlue,    0.2);
-    WRITEF(gmesa->buf, FrontDiffuseColorRed,    0.8);
-    WRITEF(gmesa->buf, FrontDiffuseColorGreen,  0.8);
-    WRITEF(gmesa->buf, FrontDiffuseColorBlue,   0.8);
-    WRITEF(gmesa->buf, BackDiffuseColorRed,     0.8);
-    WRITEF(gmesa->buf, BackDiffuseColorGreen,   0.8);
-    WRITEF(gmesa->buf, BackDiffuseColorBlue,    0.8);
-    WRITEF(gmesa->buf, FrontSpecularColorRed,   0.0);
-    WRITEF(gmesa->buf, FrontSpecularColorGreen, 0.0);
-    WRITEF(gmesa->buf, FrontSpecularColorBlue,  0.0);
-    WRITEF(gmesa->buf, BackSpecularColorRed,    0.0);
-    WRITEF(gmesa->buf, BackSpecularColorGreen,  0.0);
-    WRITEF(gmesa->buf, BackSpecularColorBlue,   0.0);
-    WRITEF(gmesa->buf, FrontEmissiveColorRed,   0.0);
-    WRITEF(gmesa->buf, FrontEmissiveColorGreen, 0.0);
-    WRITEF(gmesa->buf, FrontEmissiveColorBlue,  0.0);
-    WRITEF(gmesa->buf, BackEmissiveColorRed,    0.0);
-    WRITEF(gmesa->buf, BackEmissiveColorGreen,  0.0);
-    WRITEF(gmesa->buf, BackEmissiveColorBlue,   0.0);
-    WRITEF(gmesa->buf, SceneAmbientColorRed,    0.2);
-    WRITEF(gmesa->buf, SceneAmbientColorGreen,  0.2);
-    WRITEF(gmesa->buf, SceneAmbientColorBlue,   0.2);
-    WRITEF(gmesa->buf, FrontAlpha,              1.0);
-    WRITEF(gmesa->buf, BackAlpha,               1.0);
-
-    CHECK_DMA_BUFFER(gmesa, 7);
-    WRITE(gmesa->buf, PointSize, 1);
-    WRITEF(gmesa->buf, AApointSize, 1.0);
-    WRITE(gmesa->buf, LineWidth, 1);
-    WRITEF(gmesa->buf, AAlineWidth, 1.0);
-    WRITE(gmesa->buf, LineWidthOffset, 0);
-    WRITE(gmesa->buf, TransformMode, gmesa->TransformMode);
-    WRITE(gmesa->buf, DeltaMode, gmesa->DeltaMode);
-
-    CHECK_DMA_BUFFER(gmesa, 16);
-    WRITE(gmesa->buf, Light0Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light1Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light2Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light3Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light4Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light5Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light6Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light7Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light8Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light9Mode,  LNM_Off);
-    WRITE(gmesa->buf, Light10Mode, LNM_Off);
-    WRITE(gmesa->buf, Light11Mode, LNM_Off);
-    WRITE(gmesa->buf, Light12Mode, LNM_Off);
-    WRITE(gmesa->buf, Light13Mode, LNM_Off);
-    WRITE(gmesa->buf, Light14Mode, LNM_Off);
-    WRITE(gmesa->buf, Light15Mode, LNM_Off);
-
-    CHECK_DMA_BUFFER(gmesa, 22);
-    WRITEF(gmesa->buf, Light0AmbientIntensityBlue, 0.0);
-    WRITEF(gmesa->buf, Light0AmbientIntensityGreen, 0.0);
-    WRITEF(gmesa->buf, Light0AmbientIntensityRed, 0.0);
-    WRITEF(gmesa->buf, Light0DiffuseIntensityBlue, 1.0);
-    WRITEF(gmesa->buf, Light0DiffuseIntensityGreen, 1.0);
-    WRITEF(gmesa->buf, Light0DiffuseIntensityRed, 1.0);
-    WRITEF(gmesa->buf, Light0SpecularIntensityBlue, 1.0);
-    WRITEF(gmesa->buf, Light0SpecularIntensityGreen, 1.0);
-    WRITEF(gmesa->buf, Light0SpecularIntensityRed, 1.0);
-    WRITEF(gmesa->buf, Light0SpotlightDirectionZ, 0.0);
-    WRITEF(gmesa->buf, Light0SpotlightDirectionY, 0.0);
-    WRITEF(gmesa->buf, Light0SpotlightDirectionX, -1.0);
-    WRITEF(gmesa->buf, Light0SpotlightExponent, 0.0);
-    WRITEF(gmesa->buf, Light0PositionZ, 0.0);
-    WRITEF(gmesa->buf, Light0PositionY, 0.0);
-    WRITEF(gmesa->buf, Light0PositionX, 1.0);
-    WRITEF(gmesa->buf, Light0PositionW, 0.0);
-    WRITEF(gmesa->buf, Light0CosSpotlightCutoffAngle, -1.0);
-    WRITEF(gmesa->buf, Light0ConstantAttenuation, 1.0);
-    WRITEF(gmesa->buf, Light0LinearAttenuation,   0.0);
-    WRITEF(gmesa->buf, Light0QuadraticAttenuation,0.0);
-
-    CHECK_DMA_BUFFER(gmesa, 2);
-    WRITEF(gmesa->buf, XBias, 0.0);
-    WRITEF(gmesa->buf, YBias, 0.0);
-
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, ViewPortScaleX, gmesa->driScreen->fbWidth/4);
-    WRITEF(gmesa->buf, ViewPortScaleY, gmesa->driScreen->fbHeight/4);
-    WRITEF(gmesa->buf, ViewPortScaleZ, 1.0f);
-    WRITEF(gmesa->buf, ViewPortOffsetX, gmesa->x);
-    WRITEF(gmesa->buf, ViewPortOffsetY, gmesa->y);
-    WRITEF(gmesa->buf, ViewPortOffsetZ, 0.0f);
-
-    CHECK_DMA_BUFFER(gmesa, 3);
-    WRITEF(gmesa->buf, Nz, 1.0);
-    WRITEF(gmesa->buf, Ny, 0.0);
-    WRITEF(gmesa->buf, Nx, 0.0);
-
-    /* Send the initialization commands to the HW */
-    FLUSH_DMA_BUFFER(gmesa);
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_lock.c b/src/mesa/drivers/dri/gamma/gamma_lock.c
deleted file mode 100644 (file)
index c58b59a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-
-#include "gamma_context.h"
-#include "gamma_lock.h"
-#include "drirenderbuffer.h"
-
-#ifdef DEBUG_LOCKING
-char *prevLockFile = NULL;
-int prevLockLine = 0;
-#endif
-
-
-/* Update the hardware state.  This is called if another context has
- * grabbed the hardware lock, which includes the X server.  This
- * function also updates the driver's window state after the X server
- * moves, resizes or restacks a window -- the change will be reflected
- * in the drawable position and clip rects.  Since the X server grabs
- * the hardware lock when it changes the window state, this routine will
- * automatically be called after such a change.
- */
-void gammaGetLock( gammaContextPtr gmesa, GLuint flags )
-{
-   __DRIdrawable *dPriv = gmesa->driDrawable;
-   __DRIscreen *sPriv = gmesa->driScreen;
-
-   drmGetLock( gmesa->driFd, gmesa->hHWContext, flags );
-
-   /* The window might have moved, so we might need to get new clip
-    * rects.
-    *
-    * NOTE: This releases and regrabs the hw lock to allow the X server
-    * to respond to the DRI protocol request for new drawable info.
-    * Since the hardware state depends on having the latest drawable
-    * clip rects, all state checking must be done _after_ this call.
-    */
-   DRI_VALIDATE_DRAWABLE_INFO( sPriv, dPriv );
-
-   if ( gmesa->lastStamp != dPriv->lastStamp ) {
-      driUpdateFramebufferSize(gmesa->glCtx, dPriv);
-      gmesa->lastStamp = dPriv->lastStamp;
-      gmesa->new_state |= GAMMA_NEW_WINDOW | GAMMA_NEW_CLIP;
-   }
-
-   gmesa->numClipRects = dPriv->numClipRects;
-   gmesa->pClipRects = dPriv->pClipRects;
-
-#if 0
-   gmesa->dirty = ~0;
-
-   if ( sarea->ctxOwner != gmesa->hHWContext ) {
-      sarea->ctxOwner = gmesa->hHWContext;
-      gmesa->dirty = GAMMA_UPLOAD_ALL;
-   }
-
-   for ( i = 0 ; i < gmesa->lastTexHeap ; i++ ) {
-      if ( sarea->texAge[i] != gmesa->lastTexAge[i] ) {
-        gammaAgeTextures( gmesa, i );
-      }
-   }
-#endif
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_lock.h b/src/mesa/drivers/dri/gamma/gamma_lock.h
deleted file mode 100644 (file)
index 2d11732..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef __GAMMA_LOCK_H__
-#define __GAMMA_LOCK_H__
-
-extern void gammaGetLock( gammaContextPtr gmesa, GLuint flags );
-
-/* Turn DEBUG_LOCKING on to find locking conflicts.
- */
-#define DEBUG_LOCKING  0
-
-#if DEBUG_LOCKING
-extern char *prevLockFile;
-extern int prevLockLine;
-
-#define DEBUG_LOCK()                                                   \
-   do {                                                                        \
-      prevLockFile = (__FILE__);                                       \
-      prevLockLine = (__LINE__);                                       \
-   } while (0)
-
-#define DEBUG_RESET()                                                  \
-   do {                                                                        \
-      prevLockFile = 0;                                                        \
-      prevLockLine = 0;                                                        \
-   } while (0)
-
-#define DEBUG_CHECK_LOCK()                                             \
-   do {                                                                        \
-      if ( prevLockFile ) {                                            \
-        fprintf( stderr,                                               \
-                 "LOCK SET!\n\tPrevious %s:%d\n\tCurrent: %s:%d\n",    \
-                 prevLockFile, prevLockLine, __FILE__, __LINE__ );     \
-        exit( 1 );                                                     \
-      }                                                                        \
-   } while (0)
-
-#else
-
-#define DEBUG_LOCK()
-#define DEBUG_RESET()
-#define DEBUG_CHECK_LOCK()
-
-#endif
-
-/*
- * !!! We may want to separate locks from locks with validation.  This
- * could be used to improve performance for those things commands that
- * do not do any drawing !!!
- */
-
-/* Lock the hardware and validate our state.
- */
-#define LOCK_HARDWARE( gmesa )                                         \
-   do {                                                                        \
-      char __ret = 0;                                                  \
-      DEBUG_CHECK_LOCK();                                              \
-      DRM_CAS( gmesa->driHwLock, gmesa->hHWContext,                    \
-              (DRM_LOCK_HELD | gmesa->hHWContext), __ret );            \
-      if ( __ret )                                                     \
-        gammaGetLock( gmesa, 0 );                                      \
-      DEBUG_LOCK();                                                    \
-   } while (0)
-
-/* Unlock the hardware.
- */
-#define UNLOCK_HARDWARE( gmesa )                                       \
-   do {                                                                        \
-      DRM_UNLOCK( gmesa->driFd,                                                \
-                 gmesa->driHwLock,                                     \
-                 gmesa->hHWContext );                                  \
-      DEBUG_RESET();                                                   \
-   } while (0)
-
-#define GAMMAHW_LOCK( gmesa )                                          \
-   DRM_UNLOCK(gmesa->driFd, gmesa->driHwLock, gmesa->hHWContext);      \
-   DRM_SPINLOCK(&gmesa->driScreen->pSAREA->drawable_lock,              \
-                gmesa->driScreen->drawLockID);                         \
-   VALIDATE_DRAWABLE_INFO_NO_LOCK(gmesa);
-
-#define GAMMAHW_UNLOCK( gmesa )                                                \
-    DRM_SPINUNLOCK(&gmesa->driScreen->pSAREA->drawable_lock,           \
-                  gmesa->driScreen->drawLockID);                       \
-    VALIDATE_DRAWABLE_INFO_NO_LOCK_POST(gmesa);
-
-#endif /* __GAMMA_LOCK_H__ */
diff --git a/src/mesa/drivers/dri/gamma/gamma_macros.h b/src/mesa/drivers/dri/gamma/gamma_macros.h
deleted file mode 100644 (file)
index d962dcd..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Authors:
- *   Kevin E. Martin <kevin@precisioninsight.com>
- *
- */
-
-#ifndef _GAMMA_MACROS_H_
-#define _GAMMA_MACROS_H_
-
-#define DEBUG_DRMDMA
-#define DEBUG_ERRORS
-#define DEBUG_COMMANDS_NOT
-#define DEBUG_VERBOSE_NOT
-#define DEBUG_VERBOSE_EXTRA_NOT
-
-#define RANDOMIZE_COLORS_NOT
-#define TURN_OFF_CLEARS_NOT
-#define CULL_ALL_PRIMS_NOT
-#define TURN_OFF_DEPTH_NOT
-#define TURN_OFF_BLEND_NOT
-#define FAST_CLEAR_4_NOT
-#define FORCE_DEPTH32_NOT
-#define DONT_SEND_DMA_NOT
-#define TURN_OFF_FCP_NOT
-#define TURN_OFF_TEXTURES_NOT
-#define DO_VALIDATE
-
-#define GAMMA_DMA_BUFFER_SIZE 4096
-
-#if 0
-#define GAMMA_DMA_SEND_FLAGS    DRM_DMA_PRIORITY
-#define GAMMA_DMA_SEND_FLAGS    DRM_DMA_BLOCK
-#else
-/* MUST use non-blocking dma flags for drawable lock routines */
-#define GAMMA_DMA_SEND_FLAGS    0
-#endif
-
-#if 0
-#define GAMMA_DMA_GET_FLAGS     \
-    (DRM_DMA_SMALLER_OK | DRM_DMA_LARGER_OK | DRM_DMA_WAIT)
-#else
-#define GAMMA_DMA_GET_FLAGS     DRM_DMA_WAIT
-#endif
-
-#if defined(DEBUG_DRMDMA) || defined(DEBUG_COMMANDS) || defined(DEBUG_VERBOSE)
-#include <stdio.h>
-#endif
-
-/* Note: The argument to DEBUG_GLCMDS() _must_ be enclosed in parenthesis */
-#ifdef DEBUG_VERBOSE
-#define DEBUG_GLCMDS(s) printf s
-#else
-#define DEBUG_GLCMDS(s)
-#endif
-
-/* Note: The argument to DEBUG_DMACMDS() _must_ be enclosed in parenthesis */
-#ifdef DEBUG_DRMDMA
-#define DEBUG_DMACMDS(s) printf s
-#else
-#define DEBUG_DMACMDS(s)
-#endif
-
-/* Note: The argument to DEBUG_WRITE() _must_ be enclosed in parenthesis */
-#ifdef DEBUG_COMMANDS
-#define DEBUG_WRITE(s) printf s
-#else
-#define DEBUG_WRITE(s)
-#endif
-
-/* Note: The argument to DEBUG_ERROR() _must_ be enclosed in parenthesis */
-#ifdef DEBUG_ERRORS
-#define DEBUG_ERROR(s) printf s
-#else
-#define DEBUG_ERROR(s)
-#endif
-
-#define WRITEV(buf,val1,val2,val3,val4)                               \
-do {                                                                  \
-    buf++->i = 0x9C008300;                        \
-    buf++->f = val1;                                                   \
-    buf++->f = val2;                                                   \
-    buf++->f = val3;                                                   \
-    buf++->f = val4;                                                   \
-} while (0)
-
-#define WRITE(buf,reg,val)                                            \
-do {                                                                  \
-    buf++->i = Glint##reg##Tag;                                       \
-    buf++->i = val;                                                   \
-    DEBUG_WRITE(("WRITE(buf, %s, 0x%08x);\n", #reg, (int)val));       \
-} while (0)
-
-#define WRITEF(buf,reg,val)                                           \
-do {                                                                  \
-    buf++->i = Glint##reg##Tag;                                       \
-    buf++->f = val;                                                   \
-    DEBUG_WRITE(("WRITEF(buf, %s, %f);\n", #reg, (float)val));        \
-} while (0)
-
-#define CHECK_WC_DMA_BUFFER(gcp,n)                                    \
-do {                                                                  \
-    (gcp)->WCbufCount += (n<<1);                                      \
-} while (0)
-
-#define CHECK_DMA_BUFFER(gcp,n)                                   \
-do {                                                                  \
-    if ((gcp)->bufCount+(n<<1) >= (gcp)->bufSize)                     \
-       PROCESS_DMA_BUFFER(gcp);                                  \
-    (gcp)->bufCount += (n<<1);                                        \
-} while (0)
-
-#define CHECK_DMA_BUFFER2(gcp,n)                                   \
-do {                                                                  \
-    if ((gcp)->bufCount+n >= (gcp)->bufSize)                     \
-       PROCESS_DMA_BUFFER(gcp);                                  \
-    (gcp)->bufCount += n;                                        \
-} while (0)
-
-#define FLUSH_DMA_BUFFER(gcp)                                     \
-do {                                                                  \
-   if (gcp->bufCount)                                                \
-       PROCESS_DMA_BUFFER(gcp);                                  \
-} while (0)
-
-#ifdef DONT_SEND_DMA
-#define GET_DMA(fd, hHWCtx, n, idx, size)
-#define SEND_DMA(fd, hHWCtx,n, idx, cnt)
-#else
-#define GET_DMA(fd, hHWCtx, n, idx, size)                                  \
-do {                                                                       \
-    drmDMAReq dma;                                                         \
-    int retcode, i;                                                        \
-                                                                           \
-    dma.context       = (hHWCtx);                                          \
-    dma.send_count    = 0;                                                 \
-    dma.send_list     = NULL;                                              \
-    dma.send_sizes    = NULL;                                              \
-    dma.flags         = GAMMA_DMA_GET_FLAGS;                               \
-    dma.request_count = (n);                                               \
-    dma.request_size  = GAMMA_DMA_BUFFER_SIZE;                             \
-    dma.request_list  = (idx);                                             \
-    dma.request_sizes = (size);                                            \
-                                                                           \
-    do {                                                                   \
-       if ((retcode = drmDMA((fd), &dma))) {                              \
-           DEBUG_DMACMDS(("drmDMA returned %d\n", retcode));              \
-       }                                                                  \
-    } while (!(dma).granted_count);                                        \
-                                                                           \
-    for (i = 0; i < (n); i++) {                                            \
-       (size)[i] >>= 2; /* Convert from bytes to words */                 \
-    }                                                                      \
-} while (0)
-
-#define SEND_DMA(fd, hHWCtx, n, idx, cnt)                                  \
-do {                                                                       \
-    drmDMAReq dma;                                                         \
-    int retcode, i;                                                        \
-                                                                           \
-    for (i = 0; i < (n); i++) {                                            \
-       (cnt)[i] <<= 2; /* Convert from words to bytes */                  \
-    }                                                                      \
-                                                                           \
-    dma.context       = (hHWCtx);                                          \
-    dma.send_count    = 1;                                                 \
-    dma.send_list     = (idx);                                             \
-    dma.send_sizes    = (cnt);                                             \
-    dma.flags         = GAMMA_DMA_SEND_FLAGS;                              \
-    dma.request_count = 0;                                                 \
-    dma.request_size  = 0;                                                 \
-    dma.request_list  = NULL;                                              \
-    dma.request_sizes = NULL;                                              \
-                                                                           \
-    if ((retcode = drmDMA((fd), &dma))) {                                  \
-       DEBUG_DMACMDS(("drmDMA returned %d\n", retcode));                  \
-    }                                                                      \
-                                                                           \
-    for (i = 0; i < (n); i++) {                                            \
-       (cnt)[i] = 0;                                                      \
-    }                                                                      \
-} while (0)
-#endif
-
-#define GET_FIRST_DMA(fd, hHWCtx, n, idx, size, buf, cnt, gPriv)           \
-do {                                                                       \
-    int i;                                                                 \
-                                                                           \
-    GET_DMA(fd, hHWCtx, n, idx, size);                                     \
-                                                                           \
-    for (i = 0; i < (n); i++) {                                            \
-       (buf)[i] = (dmaBuf)(gPriv)->bufs->list[(idx)[i]].address;          \
-       (cnt)[i] = 0;                                                      \
-    }                                                                      \
-} while (0)
-
-#define PROCESS_DMA_BUFFER_TOP_HALF(gcp)                                   \
-do {                                                                       \
-    SEND_DMA((gcp)->driFd,                        \
-            (gcp)->hHWContext, 1, &(gcp)->bufIndex, &(gcp)->bufCount);    \
-} while (0)
-
-#define PROCESS_DMA_BUFFER_BOTTOM_HALF(gcp)                                \
-do {                                                                       \
-    GET_DMA((gcp)->driFd,                         \
-           (gcp)->hHWContext, 1, &(gcp)->bufIndex, &(gcp)->bufSize);      \
-                                                                           \
-    (gcp)->buf =                                                           \
-       (dmaBuf)(gcp)->gammaScreen->bufs->list[(gcp)->bufIndex].address; \
-} while (0)
-
-#define PROCESS_DMA_BUFFER(gcp)                                        \
-do {                                                                       \
-    VALIDATE_DRAWABLE_INFO(gcp);                             \
-    PROCESS_DMA_BUFFER_TOP_HALF(gcp);                                      \
-    PROCESS_DMA_BUFFER_BOTTOM_HALF(gcp);                                   \
-} while (0)
-
-#ifdef DO_VALIDATE
-#define VALIDATE_DRAWABLE_INFO_NO_LOCK(gcp)                                \
-do {                                                                       \
-    /*__DRIscreen *psp = gcp->driScreen;*/                          \
-    __DRIdrawable *pdp = gcp->driDrawable;                          \
-                                                                           \
-    if (*(pdp->pStamp) != pdp->lastStamp) {                                \
-       int old_index = pdp->index;                                        \
-       while (*(pdp->pStamp) != pdp->lastStamp) {                         \
-           DRI_VALIDATE_DRAWABLE_INFO_ONCE(pdp);                          \
-        }                                                                  \
-       if (pdp->index != old_index) {                                     \
-           gcp->Window &= ~W_GIDMask;                                     \
-           gcp->Window |= (pdp->index << 5);                              \
-           CHECK_WC_DMA_BUFFER(gcp, 1);                                   \
-           WRITE(gcp->WCbuf, GLINTWindow, gcp->Window|(gcp->FrameCount<<9));\
-       }                                                                  \
-                                                                          \
-       gammaUpdateViewportOffset( gcp->glCtx);                            \
-                                                                           \
-       if (pdp->numClipRects == 1 &&                                      \
-           pdp->pClipRects->x1 ==  pdp->x &&                              \
-           pdp->pClipRects->x2 == (pdp->x+pdp->w) &&                      \
-           pdp->pClipRects->y1 ==  pdp->y &&                              \
-           pdp->pClipRects->y2 == (pdp->y+pdp->h)) {                      \
-           CHECK_WC_DMA_BUFFER(gcp, 1);                                   \
-           WRITE(gcp->WCbuf, Rectangle2DControl, 0);                     \
-           gcp->NotClipped = GL_TRUE;                                     \
-       } else {                                                           \
-           CHECK_WC_DMA_BUFFER(gcp, 1);                                   \
-           WRITE(gcp->WCbuf, Rectangle2DControl, 1);                     \
-           gcp->NotClipped = GL_FALSE;                                    \
-       }                                                                  \
-       gcp->WindowChanged = GL_TRUE;                                      \
-                                                                           \
-       if (gcp->WCbufCount) {                                             \
-           SEND_DMA((gcp)->gammaScreen->driScreen->fd,                \
-                    (gcp)->hHWContext, 1, &(gcp)->WCbufIndex,             \
-                    &(gcp)->WCbufCount);                                  \
-           (gcp)->WCbufIndex = -1;                                        \
-       }                                                                  \
-    }                                                                      \
-} while (0)
-
-#define VALIDATE_DRAWABLE_INFO_NO_LOCK_POST(gcp)                       \
-do {                                                                       \
-    if ((gcp)->WCbufIndex < 0) {                                           \
-       GET_DMA((gcp)->gammaScreen->driScreen->fd,                     \
-               (gcp)->hHWContext, 1, &(gcp)->WCbufIndex,                  \
-               &(gcp)->WCbufSize);                                        \
-                                                                           \
-       (gcp)->WCbuf =                                                     \
-           (dmaBuf)(gcp)->gammaScreen->bufs->                           \
-               list[(gcp)->WCbufIndex].address;                           \
-    }                                                                      \
-} while (0)
-
-#define VALIDATE_DRAWABLE_INFO(gcp)                                    \
-do {                                                                       \
-    __DRIscreen *psp = gcp->driScreen;                          \
-if (gcp->driDrawable) { \
-    DRM_SPINLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);            \
-    VALIDATE_DRAWABLE_INFO_NO_LOCK(gcp);                               \
-    DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);          \
-    VALIDATE_DRAWABLE_INFO_NO_LOCK_POST(gcp);                          \
-} \
-} while (0)
-#else
-#define VALIDATE_DRAWABLE_INFO(gcp)
-#endif
-
-#define CALC_LOG2(l2,s)                       \
-do {                                          \
-    int __s = s;                              \
-    l2 = 0;                                   \
-    while (__s > 1) { ++l2; __s >>= 1; }      \
-} while (0)
-
-#endif /* _GAMMA_MACROS_H_ */
diff --git a/src/mesa/drivers/dri/gamma/gamma_regs.h b/src/mesa/drivers/dri/gamma/gamma_regs.h
deleted file mode 100644 (file)
index 9e1c735..0000000
+++ /dev/null
@@ -1,658 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Authors:
- *   Kevin E. Martin <kevin@precisioninsight.com>
- *
- */
-
-#ifndef _GAMMA_REGS_H_
-#define _GAMMA_REGS_H_
-
-#include "gamma_client.h"
-
-/**************** MX FLAGS ****************/
-/* FBReadMode */
-#define FBReadSrcDisable              0x00000000
-#define FBReadSrcEnable               0x00000200
-#define FBReadDstDisable              0x00000000
-#define FBReadDstEnable               0x00000400
-#define FBDataTypeDefault             0x00000000
-#define FBDataTypeColor               0x00008000
-#define FBWindowOriginTop             0x00000000
-#define FBWindowOriginBot             0x00010000
-#define FBScanLineInt1                0x00000000
-#define FBScanLineInt2                0x00800000
-#define FBScanLineInt4                0x01000000
-#define FBScanLineInt8                0x01800000
-#define FBSrcAddrConst                0x00000000
-#define FBSrcAddrIndex                0x10000000
-#define FBSrcAddrCoord                0x20000000
-
-/* LBReadMode */
-#define LBPartialProdMask             0x000001ff
-#define LBReadSrcDisable              0x00000000
-#define LBReadSrcEnable               0x00000200
-#define LBReadDstDisable              0x00000000
-#define LBReadDstEnable               0x00000400
-#define LBDataTypeDefault             0x00000000
-#define LBDataTypeStencil             0x00010000
-#define LBDataTypeDepth               0x00020000
-#define LBWindowOriginTop             0x00000000
-#define LBWindowOriginBot             0x00040000
-#define LBScanLineInt1                0x00000000
-#define LBScanLineInt2                0x00100000
-#define LBScanLineInt4                0x00200000
-#define LBScanLineInt8                0x00300000
-
-/* ColorDDAMode */
-#define ColorDDADisable               0x00000000
-#define ColorDDAEnable                0x00000001
-#define ColorDDAFlat                  0x00000000
-#define ColorDDAGouraud               0x00000002
-#define ColorDDAShadingMask           0x00000002
-
-/* AlphaTestMode */
-#define AlphaTestModeDisable          0x00000000
-#define AlphaTestModeEnable           0x00000001
-#define AT_Never                      0x00000000
-#define AT_Less                       0x00000002
-#define AT_Equal                      0x00000004
-#define AT_LessEqual                  0x00000006
-#define AT_Greater                    0x00000008
-#define AT_NotEqual                   0x0000000a
-#define AT_GreaterEqual               0x0000000c
-#define AT_Always                     0x0000000e
-#define AT_CompareMask                0x0000000e
-#define AT_RefValueMask               0x00000ff0
-
-/* AlphaBlendMode */
-#define AlphaBlendModeDisable         0x00000000
-#define AlphaBlendModeEnable          0x00000001
-#define AB_Src_Zero                   0x00000000
-#define AB_Src_One                    0x00000002
-#define AB_Src_DstColor               0x00000004
-#define AB_Src_OneMinusDstColor       0x00000006
-#define AB_Src_SrcAlpha               0x00000008
-#define AB_Src_OneMinusSrcAlpha       0x0000000a
-#define AB_Src_DstAlpha               0x0000000c
-#define AB_Src_OneMinusDstAlpha       0x0000000e
-#define AB_Src_SrcAlphaSaturate       0x00000010
-#define AB_SrcBlendMask               0x0000001e
-#define AB_Dst_Zero                   0x00000000
-#define AB_Dst_One                    0x00000020
-#define AB_Dst_SrcColor               0x00000040
-#define AB_Dst_OneMinusSrcColor       0x00000060
-#define AB_Dst_SrcAlpha               0x00000080
-#define AB_Dst_OneMinusSrcAlpha       0x000000a0
-#define AB_Dst_DstAlpha               0x000000c0
-#define AB_Dst_OneMinusDstAlpha       0x000000e0
-#define AB_DstBlendMask               0x000000e0
-#define AB_ColorFmt_8888              0x00000000
-#define AB_ColorFmt_5555              0x00000100
-#define AB_ColorFmt_4444              0x00000200
-#define AB_ColorFmt_4444Front         0x00000300
-#define AB_ColorFmt_4444Back          0x00000400
-#define AB_ColorFmt_332Front          0x00000500
-#define AB_ColorFmt_332Back           0x00000600
-#define AB_ColorFmt_121Front          0x00000700
-#define AB_ColorFmt_121Back           0x00000800
-#define AB_ColorFmt_555Back           0x00000d00
-#define AB_ColorFmt_CI8               0x00000e00
-#define AB_ColorFmt_CI4               0x00000f00
-#define AB_AlphaBufferPresent         0x00000000
-#define AB_NoAlphaBufferPresent       0x00001000
-#define AB_ColorOrder_BGR             0x00000000
-#define AB_ColorOrder_RGB             0x00002000
-#define AB_OpenGLType                 0x00000000
-#define AB_QuickDraw3DType            0x00004000
-#define AB_AlphaDst_FBData            0x00000000
-#define AB_AlphaDst_FBSourceData      0x00008000
-#define AB_ColorConversionScale       0x00000000
-#define AB_ColorConversionShift       0x00010000
-#define AB_AlphaConversionScale       0x00000000
-#define AB_AlphaConversionShift       0x00020000
-
-/* AntialiasMode */
-#define AntialiasModeDisable          0x00000000
-#define AntialiasModeEnable           0x00000001
-
-/* AreaStippleMode */
-#define AreaStippleModeDisable        0x00000000
-#define AreaStippleModeEnable         0x00000001
-#define ASM_X32                       0x00000008
-#define ASM_Y32                       0x00000040
-
-/* DepthMode */
-#define DepthModeDisable              0x00000000
-#define DepthModeEnable               0x00000001
-#define DM_WriteMask                  0x00000002
-#define DM_SourceFragment             0x00000000
-#define DM_SourceLBData               0x00000004
-#define DM_SourceDepthRegister        0x00000008
-#define DM_SourceLBSourceData         0x0000000c
-#define DM_SourceMask                 0x0000000c
-#define DM_Never                      0x00000000
-#define DM_Less                       0x00000010
-#define DM_Equal                      0x00000020
-#define DM_LessEqual                  0x00000030
-#define DM_Greater                    0x00000040
-#define DM_NotEqual                   0x00000050
-#define DM_GreaterEqual               0x00000060
-#define DM_Always                     0x00000070
-#define DM_CompareMask                0x00000070
-
-/* FBWriteMode */
-#define FBWriteModeDisable            0x00000000
-#define FBWriteModeEnable             0x00000001
-#define FBW_UploadColorData           0x00000008
-
-/* FogMode */
-#define FogModeDisable                0x00000000
-#define FogModeEnable                 0x00000001
-
-/* LBWriteMode */
-#define LBWriteModeDisable            0x00000000
-#define LBWriteModeEnable             0x00000001
-#define LBW_UploadNone                0x00000000
-#define LBW_UploadDepth               0x00000002
-#define LBW_UploadStencil             0x00000004
-
-/* LBRead/Write Format */
-#define LBRF_DepthWidth15   0x03  /* only permedia */
-#define LBRF_DepthWidth16   0x00
-#define LBRF_DepthWidth24   0x01
-#define LBRF_DepthWidth32   0x02
-#define LBRF_StencilWidth0  (0 << 2)
-#define LBRF_StencilWidth4  (1 << 2)
-#define LBRF_StencilWidth8  (2 << 2)
-#define LBRF_StencilPos16   (0 << 4)
-#define LBRF_StencilPos20   (1 << 4)
-#define LBRF_StencilPos24   (2 << 4)
-#define LBRF_StencilPos28   (3 << 4)
-#define LBRF_StencilPos32   (4 << 4)
-#define LBRF_FrameCount0    (0 << 7)
-#define LBRF_FrameCount4    (1 << 7)
-#define LBRF_FrameCount8    (2 << 7)
-#define LBRF_FrameCountPos16  (0 << 9)
-#define LBRF_FrameCountPos20  (1 << 9)
-#define LBRF_FrameCountPos24  (2 << 9)
-#define LBRF_FrameCountPos28  (3 << 9)
-#define LBRF_FrameCountPos32  (4 << 9)
-#define LBRF_FrameCountPos36  (5 << 9)
-#define LBRF_FrameCountPos40  (6 << 9)
-#define LBRF_GIDWidth0 (0 << 12)
-#define LBRF_GIDWidth4 (1 << 12)
-#define LBRF_GIDPos16  (0 << 13)
-#define LBRF_GIDPos20  (1 << 13)
-#define LBRF_GIDPos24  (2 << 13)
-#define LBRF_GIDPos28  (3 << 13)
-#define LBRF_GIDPos32  (4 << 13)
-#define LBRF_GIDPos36  (5 << 13)
-#define LBRF_GIDPos40  (6 << 13)
-#define LBRF_GIDPos44  (7 << 13)
-#define LBRF_GIDPos48  (8 << 13)
-#define LBRF_Compact32  (1 << 17)
-
-/* StencilMode */
-#define StencilDisable                0x00000000
-#define StencilEnable                 0x00000001
-
-/* RouterMode */
-#define R_Order_TextureDepth          0x00000000
-#define R_Order_DepthTexture          0x00000001
-
-/* ScissorMode */
-#define UserScissorDisable            0x00000000
-#define UserScissorEnable             0x00000001
-#define ScreenScissorDisable          0x00000000
-#define ScreenScissorEnable           0x00000002
-
-/* DitherMode */
-#define DitherModeDisable             0x00000000
-#define DitherModeEnable              0x00000001
-#define DM_DitherDisable              0x00000000
-#define DM_DitherEnable               0x00000002
-#define DM_ColorFmt_8888              0x00000000
-#define DM_ColorFmt_5555              0x00000004
-#define DM_ColorFmt_4444              0x00000008
-#define DM_ColorFmt_4444Front         0x0000000c
-#define DM_ColorFmt_4444Back          0x00000010
-#define DM_ColorFmt_332Front          0x00000014
-#define DM_ColorFmt_332Back           0x00000018
-#define DM_ColorFmt_121Front          0x0000001c
-#define DM_ColorFmt_121Back           0x00000020
-#define DM_ColorFmt_555Back           0x00000024
-#define DM_ColorFmt_CI8               0x00000028
-#define DM_ColorFmt_CI4               0x0000002c
-#define DM_XOffsetMask                0x000000c0
-#define DM_YOffsetMask                0x00000300
-#define DM_ColorOrder_BGR             0x00000000
-#define DM_ColorOrder_RGB             0x00000400
-#define DM_AlphaDitherDefault         0x00000000
-#define DM_AlphaDitherNone            0x00004000
-#define DM_Truncate                   0x00000000
-#define DM_Round                      0x00008000
-
-/* RasterizerMode */
-#define RM_MirrorBitMask              0x00000001
-#define RM_InvertBitMask              0x00000002
-#define RM_FractionAdjNo              0x00000000
-#define RM_FractionAdjZero            0x00000004
-#define RM_FractionAdjHalf            0x00000008
-#define RM_FractionAdjNearHalf        0x0000000c
-#define RM_BiasCoordZero              0x00000000
-#define RM_BiasCoordHalf              0x00000010
-#define RM_BiasCoordNearHalf          0x00000020
-#define RM_BitMaskByteSwap_ABCD       0x00000000
-#define RM_BitMaskByteSwap_BADC       0x00000080
-#define RM_BitMaskByteSwap_CDAB       0x00000100
-#define RM_BitMaskByteSwap_DCBA       0x00000180
-#define RM_BitMaskPacked              0x00000000
-#define RM_BitMaskEveryScanline       0x00000200
-#define RM_BitMaskOffsetMask          0x00007c00
-#define RM_HostDataByteSwap_ABCD      0x00000000
-#define RM_HostDataByteSwap_BADC      0x00008000
-#define RM_HostDataByteSwap_CDAB      0x00010000
-#define RM_HostDataByteSwap_DCBA      0x00018000
-#define RM_SingleGLINT                0x00000000
-#define RM_MultiGLINT                 0x00020000
-#define RM_YLimitsEnable              0x00040000
-
-/* Window */
-#define WindowDisable                 0x00000000
-#define WindowEnable                  0x00000001
-#define W_AlwaysPass                  0x00000000
-#define W_NeverPass                   0x00000002
-#define W_PassIfEqual                 0x00000004
-#define W_PassIfNotEqual              0x00000006
-#define W_CompareMask                 0x00000006
-#define W_ForceLBUpdate               0x00000008
-#define W_LBUpdateFromSource          0x00000000
-#define W_LBUpdateFromRegisters       0x00000010
-#define W_GIDMask                     0x000001e0
-#define W_FrameCountMask              0x0001fe00
-#define W_StencilFCP                  0x00020000
-#define W_DepthFCP                    0x00040000
-#define W_OverrideWriteFiltering      0x00080000
-
-/* TextureAddressMode */
-#define TextureAddressModeDisable     0x00000000
-#define TextureAddressModeEnable      0x00000001
-#define TAM_SWrap_Clamp               0x00000000
-#define TAM_SWrap_Repeat              0x00000002
-#define TAM_SWrap_Mirror              0x00000004
-#define TAM_SWrap_Mask                0x00000006
-#define TAM_TWrap_Clamp               0x00000000
-#define TAM_TWrap_Repeat              0x00000008
-#define TAM_TWrap_Mirror              0x00000010
-#define TAM_TWrap_Mask                0x00000018
-#define TAM_Operation_2D              0x00000000
-#define TAM_Operation_3D              0x00000020
-#define TAM_InhibitDDAInit            0x00000040
-#define TAM_LODDisable                0x00000000
-#define TAM_LODEnable                 0x00000080
-#define TAM_DY_Disable                0x00000000
-#define TAM_DY_Enable                 0x00000100
-#define TAM_WidthMask                 0x00001e00
-#define TAM_HeightMask                0x0001e000
-#define TAM_TexMapType_1D             0x00000000
-#define TAM_TexMapType_2D             0x00020000
-#define TAM_TexMapType_Mask           0x00020000
-
-/* TextureReadMode */
-#define TextureReadModeDisable        0x00000000
-#define TextureReadModeEnable         0x00000001
-#define TRM_WidthMask                 0x0000001e
-#define TRM_HeightMask                0x000001e0
-#define TRM_Depth1                    0x00000000
-#define TRM_Depth2                    0x00000200
-#define TRM_Depth4                    0x00000400
-#define TRM_Depth8                    0x00000600
-#define TRM_Depth16                   0x00000800
-#define TRM_Depth32                   0x00000a00
-#define TRM_DepthMask                 0x00000e00
-#define TRM_Border                    0x00001000
-#define TRM_Patch                     0x00002000
-#define TRM_Mag_Nearest               0x00000000
-#define TRM_Mag_Linear                0x00004000
-#define TRM_Mag_Mask                  0x00004000
-#define TRM_Min_Nearest               0x00000000
-#define TRM_Min_Linear                0x00008000
-#define TRM_Min_NearestMMNearest      0x00010000
-#define TRM_Min_NearestMMLinear       0x00018000
-#define TRM_Min_LinearMMNearest       0x00020000
-#define TRM_Min_LinearMMLinear        0x00028000
-#define TRM_Min_Mask                  0x00038000
-#define TRM_UWrap_Clamp               0x00000000
-#define TRM_UWrap_Repeat              0x00040000
-#define TRM_UWrap_Mirror              0x00080000
-#define TRM_UWrap_Mask                0x000c0000
-#define TRM_VWrap_Clamp               0x00000000
-#define TRM_VWrap_Repeat              0x00100000
-#define TRM_VWrap_Mirror              0x00200000
-#define TRM_VWrap_Mask                0x00300000
-#define TRM_TexMapType_1D             0x00000000
-#define TRM_TexMapType_2D             0x00400000
-#define TRM_TexMapType_Mask           0x00400000
-#define TRM_MipMapDisable             0x00000000
-#define TRM_MipMapEnable              0x00800000
-#define TRM_PrimaryCacheDisable       0x00000000
-#define TRM_PrimaryCacheEnable        0x01000000
-#define TRM_FBSourceAddr_None         0x00000000
-#define TRM_FBSourceAddr_Index        0x02000000
-#define TRM_FBSourceAddr_Coord        0x04000000
-#define TRM_BorderClamp               0x08000000
-
-/* TextureColorMode */
-#define TextureColorModeDisable       0x00000000
-#define TextureColorModeEnable        0x00000001
-#define TCM_Modulate                  0x00000000
-#define TCM_Decal                     0x00000002
-#define TCM_Blend                     0x00000004
-#define TCM_Replace                   0x00000006
-#define TCM_ApplicationMask           0x0000000e
-#define TCM_OpenGLType                0x00000000
-#define TCM_QuickDraw3DType           0x00000010
-#define TCM_KdDDA_Disable             0x00000000
-#define TCM_KdDDA_Enable              0x00000020
-#define TCM_KsDDA_Disable             0x00000000
-#define TCM_KsDDA_Enable              0x00000040
-#define TCM_BaseFormat_Alpha          0x00000000
-#define TCM_BaseFormat_Lum            0x00000080
-#define TCM_BaseFormat_LumAlpha       0x00000100
-#define TCM_BaseFormat_Intensity      0x00000180
-#define TCM_BaseFormat_RGB            0x00000200
-#define TCM_BaseFormat_RGBA           0x00000280
-#define TCM_BaseFormatMask            0x00000380
-#define TCM_LoadMode_None             0x00000000
-#define TCM_LoadMode_Ks               0x00000400
-#define TCM_LoadMode_Kd               0x00000800
-
-/* TextureCacheControl */
-#define TCC_Invalidate                0x00000001
-#define TCC_Disable                   0x00000000
-#define TCC_Enable                    0x00000002
-
-/* TextureFilterMode */
-#define TextureFilterModeDisable      0x00000000
-#define TextureFilterModeEnable       0x00000001
-#define TFM_AlphaMapEnable            0x00000002
-#define TFM_AlphaMapSense             0x00000004
-
-/* TextureFormat */
-#define TF_LittleEndian               0x00000000
-#define TF_BigEndian                  0x00000001
-#define TF_16Bit_565                  0x00000000
-#define TF_16Bit_555                  0x00000002
-#define TF_ColorOrder_BGR             0x00000000
-#define TF_ColorOrder_RGB             0x00000004
-#define TF_Compnents_1                0x00000000
-#define TF_Compnents_2                0x00000008
-#define TF_Compnents_3                0x00000010
-#define TF_Compnents_4                0x00000018
-#define TF_CompnentsMask              0x00000018
-#define TF_OutputFmt_Texel            0x00000000
-#define TF_OutputFmt_Color            0x00000020
-#define TF_OutputFmt_BitMask          0x00000040
-#define TF_OutputFmtMask              0x00000060
-#define TF_MirrorEnable               0x00000080
-#define TF_InvertEnable               0x00000100
-#define TF_ByteSwapEnable             0x00000200
-#define TF_LUTOffsetMask              0x0003fc00
-#define TF_OneCompFmt_Lum             0x00000000
-#define TF_OneCompFmt_Alpha           0x00040000
-#define TF_OneCompFmt_Intensity        0x00080000
-#define TF_OneCompFmt_Mask            0x000c0000
-/**************** MX FLAGS ****************/
-
-/************** GAMMA FLAGS ***************/
-/* GeometryMode */
-#define GM_TextureDisable             0x00000000
-#define GM_TextureEnable              0x00000001
-#define GM_FogDisable                 0x00000000
-#define GM_FogEnable                  0x00000002
-#define GM_FogLinear                  0x00000000
-#define GM_FogExp                     0x00000004
-#define GM_FogExpSquared              0x00000008
-#define GM_FogMask                    0x0000000C
-#define GM_FrontPolyPoint             0x00000000
-#define GM_FrontPolyLine              0x00000010
-#define GM_FrontPolyFill              0x00000020
-#define GM_BackPolyPoint              0x00000000
-#define GM_BackPolyLine               0x00000040
-#define GM_BackPolyFill               0x00000080
-#define GM_FB_PolyMask                0x000000F0
-#define GM_FrontFaceCW                0x00000000
-#define GM_FrontFaceCCW               0x00000100
-#define GM_FFMask                     0x00000100
-#define GM_PolyCullDisable            0x00000000
-#define GM_PolyCullEnable             0x00000200
-#define GM_PolyCullFront              0x00000000
-#define GM_PolyCullBack               0x00000400
-#define GM_PolyCullBoth               0x00000800
-#define GM_PolyCullMask               0x00000c00
-#define GM_ClipShortLinesDisable      0x00000000
-#define GM_ClipShortLinesEnable       0x00001000
-#define GM_ClipSmallTrisDisable       0x00000000
-#define GM_ClipSmallTrisEnable        0x00002000
-#define GM_RenderMode                 0x00000000
-#define GM_SelectMode                 0x00004000
-#define GM_FeedbackMode               0x00008000
-#define GM_Feedback2D                 0x00000000
-#define GM_Feedback3D                 0x00010000
-#define GM_Feedback3DColor            0x00020000
-#define GM_Feedback3DColorTexture     0x00030000
-#define GM_Feedback4DColorTexture     0x00040000
-#define GM_CullFaceNormDisable        0x00000000
-#define GM_CullFaceNormEnable         0x00080000
-#define GM_AutoFaceNormDisable        0x00000000
-#define GM_AutoFaceNormEnable         0x00100000
-#define GM_GouraudShading             0x00000000
-#define GM_FlatShading                0x00200000
-#define GM_ShadingMask                0x00200000
-#define GM_UserClipNone               0x00000000
-#define GM_UserClip0                  0x00400000
-#define GM_UserClip1                  0x00800000
-#define GM_UserClip2                  0x01000000
-#define GM_UserClip3                  0x02000000
-#define GM_UserClip4                  0x04000000
-#define GM_UserClip5                  0x08000000
-#define GM_PolyOffsetPointDisable     0x00000000
-#define GM_PolyOffsetPointEnable      0x10000000
-#define GM_PolyOffsetLineDisable      0x00000000
-#define GM_PolyOffsetLineEnable       0x20000000
-#define GM_PolyOffsetFillDisable      0x00000000
-#define GM_PolyOffsetFillEnable       0x40000000
-#define GM_InvertFaceNormCullDisable  0x00000000
-#define GM_InvertFaceNormCullEnable   0x80000000
-
-/* Begin */
-#define B_AreaStippleDisable          0x00000000
-#define B_AreaStippleEnable           0x00000001
-#define B_LineStippleDisable          0x00000000
-#define B_LineStippleEnable           0x00000002
-#define B_AntiAliasDisable            0x00000000
-#define B_AntiAliasEnable             0x00000100
-#define B_TextureDisable              0x00000000
-#define B_TextureEnable               0x00002000
-#define B_FogDisable                  0x00000000
-#define B_FogEnable                   0x00004000
-#define B_SubPixelCorrectDisable      0x00000000
-#define B_SubPixelCorrectEnable       0x00010000
-#define B_PrimType_Null               0x00000000
-#define B_PrimType_Points             0x10000000
-#define B_PrimType_Lines              0x20000000
-#define B_PrimType_LineLoop           0x30000000
-#define B_PrimType_LineStrip          0x40000000
-#define B_PrimType_Triangles          0x50000000
-#define B_PrimType_TriangleStrip      0x60000000
-#define B_PrimType_TriangleFan        0x70000000
-#define B_PrimType_Quads              0x80000000
-#define B_PrimType_QuadStrip          0x90000000
-#define B_PrimType_Polygon            0xa0000000
-#define B_PrimType_Mask               0xf0000000
-
-/* EdgeFlag */
-#define EdgeFlagDisable               0x00000000
-#define EdgeFlagEnable                0x00000001
-
-/* NormalizeMode */
-#define NormalizeModeDisable          0x00000000
-#define NormalizeModeEnable           0x00000001
-#define FaceNormalDisable             0x00000000
-#define FaceNormalEnable              0x00000002
-#define InvertAutoFaceNormal          0x00000004
-
-/* LightingMode */
-#define LightingModeDisable           0x00000000
-#define LightingModeEnable            0x00000001
-#define LightingModeTwoSides          0x00000004
-#define LightingModeLocalViewer       0x00000008
-#define LightingModeSpecularEnable    0x00008000
-
-/* Light0Mode */
-#define Light0ModeDisable             0x00000000
-#define Light0ModeEnable              0x00000001
-#define Light0ModeSpotLight           0x00000002
-#define Light0ModeAttenuation         0x00000004
-#define Light0ModeLocal               0x00000008
-
-/* Light0Mode */
-#define Light1ModeDisable             0x00000000
-#define Light1ModeEnable              0x00000001
-#define Light1ModeSpotLight           0x00000002
-#define Light1ModeAttenuation         0x00000004
-#define Light1ModeLocal               0x00000008
-
-/* ColorMaterialMode */
-#define ColorMaterialModeDisable      0x00000000
-#define ColorMaterialModeEnable       0x00000001
-#define ColorMaterialModeFront        0x00000000
-#define ColorMaterialModeBack         0x00000002
-#define ColorMaterialModeFrontAndBack 0x00000004
-#define ColorMaterialModeEmission     0x00000000
-#define ColorMaterialModeAmbient      0x00000008
-#define ColorMaterialModeDiffuse      0x00000010
-#define ColorMaterialModeSpecular     0x00000018
-#define ColorMaterialModeAmbAndDiff   0x00000020
-#define ColorMaterialModeMask         0x0000003e
-
-/* MaterialMode */
-#define MaterialModeDisable           0x00000000
-#define MaterialModeEnable            0x00000001
-#define MaterialModeTwoSides          0x00000080
-
-/* DeltaMode */
-#define DM_Target300SX                0x00000000
-#define DM_Target500TXMX              0x00000001
-#define DM_Depth16                    0x00000004
-#define DM_Depth24                    0x00000008
-#define DM_Depth32                    0x0000000c
-#define DM_FogEnable                  0x00000010
-#define DM_TextureEnable              0x00000020
-#define DM_SmoothShadingEnable        0x00000040
-#define DM_DepthEnable                0x00000080
-#define DM_SpecularEnable             0x00000100
-#define DM_DiffuseEnable              0x00000200
-#define DM_SubPixlCorrectionEnable    0x00000400
-#define DM_DiamondExit                0x00000800
-#define DM_NoDraw                     0x00001000
-#define DM_ClampEnable                0x00002000
-#define DM_TextureParameterAsGiven    0x00000000
-#define DM_TextureParameterClamped    0x00004000
-#define DM_TextureParameterNormalized 0x00008000
-#define DM_BiasCoords                 0x00080000
-#define DM_ColorDiffuse               0x00100000
-#define DM_ColorSpecular              0x00200000
-#define DM_FlatShadingMethod          0x00400000
-
-/* PointMode */
-#define PM_AntialiasDisable           0x00000000
-#define PM_AntialiasEnable            0x00000001
-#define PM_AntialiasQuality_4x4       0x00000000
-#define PM_AntialiasQuality_8x8       0x00000002
-
-/* LogicalOpMode */
-#define LogicalOpModeDisable          0x00000000
-#define LogicalOpModeEnable           0x00000001
-#define LogicalOpModeMask             0x0000001e
-
-/* LineMode */
-#define LM_StippleDisable             0x00000000
-#define LM_StippleEnable              0x00000001
-#define LM_RepeatFactorMask           0x000003fe
-#define LM_StippleMask                0x03fffc00
-#define LM_MirrorDisable              0x00000000
-#define LM_MirrorEnable               0x04000000
-#define LM_AntialiasDisable           0x00000000
-#define LM_AntialiasEnable            0x08000000
-#define LM_AntialiasQuality_4x4       0x00000000
-#define LM_AntialiasQuality_8x8       0x10000000
-
-/* TriangleMode */
-#define TM_AntialiasDisable           0x00000000
-#define TM_AntialiasEnable            0x00000001
-#define TM_AntialiasQuality_4x4       0x00000000
-#define TM_AntialiasQuality_8x8       0x00000002
-#define TM_UseTriPacketInterface      0x00000004
-
-/* TransformMode */
-#define XM_UseModelViewMatrix         0x00000001
-#define XM_UseModelViewProjMatrix     0x00000002
-#define XM_XformNormals               0x00000004
-#define XM_XformFaceNormals           0x00000008
-#define XM_XformTexture               0x00000010
-#define XM_XMask                      0x00000013
-#define XM_TexGenModeS_None           0x00000000
-#define XM_TexGenModeS_ObjLinear      0x00000020
-#define XM_TexGenModeS_EyeLinear      0x00000040
-#define XM_TexGenModeS_SphereMap      0x00000060
-#define XM_TexGenModeT_None           0x00000000
-#define XM_TexGenModeT_ObjLinear      0x00000080
-#define XM_TexGenModeT_EyeLinear      0x00000100
-#define XM_TexGenModeT_SphereMap      0x00000180
-#define XM_TexGenModeR_None           0x00000000
-#define XM_TexGenModeR_ObjLinear      0x00000200
-#define XM_TexGenModeR_EyeLinear      0x00000400
-#define XM_TexGenModeR_SphereMap      0x00000600
-#define XM_TexGenModeQ_None           0x00000000
-#define XM_TexGenModeQ_ObjLinear      0x00000800
-#define XM_TexGenModeQ_EyeLinear      0x00001000
-#define XM_TexGenModeQQSphereMap      0x00001800
-#define XM_TexGenS                    0x00002000
-#define XM_TexGenT                    0x00004000
-#define XM_TexGenR                    0x00008000
-#define XM_TexGenQ                    0x00010000
-
-/* LightNMode */
-#define LNM_Off                       0x00000000
-#define LNM_On                        0x00000001
-/************** GAMMA FLAGS ***************/
-
-#endif /* _GAMMA_REGS_H_ */
diff --git a/src/mesa/drivers/dri/gamma/gamma_render.c b/src/mesa/drivers/dri/gamma/gamma_render.c
deleted file mode 100644 (file)
index 3c2fa50..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *
- * 3DLabs Gamma driver.
- *
- */
-
-#include "main/glheader.h"
-#include "main/context.h"
-#include "main/macros.h"
-#include "main/imports.h"
-#include "main/mtypes.h"
-
-#include "tnl/t_context.h"
-
-#include "gamma_context.h"
-#include "gamma_macros.h"
-#include "gamma_tris.h"
-#include "gamma_vb.h"
-
-
-/* !! Should template this eventually !! */
-
-static void gamma_emit( GLcontext *ctx, GLuint start, GLuint end)
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
-   GLfloat (*coord)[4];
-   GLuint coord_stride;
-   GLfloat (*col)[4];
-   GLuint col_stride;
-   int i;
-   GLuint tc0_stride = 0;
-   GLfloat (*tc0)[4] = 0;
-   GLuint tc0_size = 0;
-
-   col = VB->AttribPtr[_TNL_ATTRIB_COLOR0]->data;
-   col_stride = VB->AttribPtr[_TNL_ATTRIB_COLOR0]->stride;
-
-   if (ctx->Texture.Unit[0]._ReallyEnabled) {
-      tc0_stride = VB->AttribPtr[_TNL_ATTRIB_TEX0]->stride;
-      tc0 = VB->AttribPtr[_TNL_ATTRIB_TEX0]->data;
-      tc0_size = VB->AttribPtr[_TNL_ATTRIB_TEX0]->size;
-      coord = VB->ClipPtr->data;
-      coord_stride = VB->ClipPtr->stride;
-   } else {
-      coord = VB->NdcPtr->data;
-      coord_stride = VB->NdcPtr->stride;
-   }
-
-   if (ctx->Texture.Unit[0]._ReallyEnabled && tc0_size == 4) {
-      for (i=start; i < end; i++) {
-           CHECK_DMA_BUFFER(gmesa, 9);
-           WRITEF(gmesa->buf, Tq4, tc0[i][3]);
-           WRITEF(gmesa->buf, Tr4, tc0[i][2]);
-           WRITEF(gmesa->buf, Tt4, tc0[i][0]);
-           WRITEF(gmesa->buf, Ts4, tc0[i][1]);
-           WRITE(gmesa->buf, PackedColor4, *(uint32_t*)col[i]);
-           WRITEF(gmesa->buf, Vw, coord[i][3]);
-           WRITEF(gmesa->buf, Vz, coord[i][2]);
-           WRITEF(gmesa->buf, Vy, coord[i][1]);
-           WRITEF(gmesa->buf, Vx4, coord[i][0]);
-      }
-   } else if (ctx->Texture.Unit[0]._ReallyEnabled && tc0_size == 2) {
-      for (i=start; i < end; i++) {
-           CHECK_DMA_BUFFER(gmesa, 7);
-           WRITEF(gmesa->buf, Tt2, tc0[i][0]);
-           WRITEF(gmesa->buf, Ts2, tc0[i][1]);
-           WRITE(gmesa->buf, PackedColor4, *(uint32_t*)col[i]);
-           WRITEF(gmesa->buf, Vw, coord[i][3]);
-           WRITEF(gmesa->buf, Vz, coord[i][2]);
-           WRITEF(gmesa->buf, Vy, coord[i][1]);
-           WRITEF(gmesa->buf, Vx4, coord[i][0]);
-      }
-   } else {
-      for (i=start; i < end; i++) {
-           CHECK_DMA_BUFFER(gmesa, 4);
-           WRITE(gmesa->buf, PackedColor4, *(uint32_t*)col[i]);
-           WRITEF(gmesa->buf, Vz, coord[i][2]);
-           WRITEF(gmesa->buf, Vy, coord[i][1]);
-           WRITEF(gmesa->buf, Vx3, coord[i][0]);
-      }
-   }
-}
-
-#define HAVE_POINTS      1
-#define HAVE_LINES       1
-#define HAVE_LINE_STRIPS 1
-#define HAVE_TRIANGLES   1
-#define HAVE_TRI_STRIPS  1
-#define HAVE_TRI_STRIP_1 0
-#define HAVE_TRI_FANS    1
-#define HAVE_QUADS       1
-#define HAVE_QUAD_STRIPS 1
-#define HAVE_POLYGONS    1
-
-#define HAVE_ELTS        0
-
-
-static const GLuint hw_prim[GL_POLYGON+1] = {
-   B_PrimType_Points,
-   B_PrimType_Lines,
-   B_PrimType_LineLoop,
-   B_PrimType_LineStrip,
-   B_PrimType_Triangles,
-   B_PrimType_TriangleStrip,
-   B_PrimType_TriangleFan,
-   B_PrimType_Quads,
-   B_PrimType_QuadStrip,
-   B_PrimType_Polygon
-};
-
-static INLINE void gammaStartPrimitive( gammaContextPtr gmesa, GLenum prim )
-{
-   CHECK_DMA_BUFFER(gmesa, 1);
-   WRITE(gmesa->buf, Begin, gmesa->Begin | hw_prim[prim]);
-}
-
-static INLINE void gammaEndPrimitive( gammaContextPtr gmesa )
-{
-   GLcontext *ctx = gmesa->glCtx;
-
-   if ( ctx->Line.SmoothFlag || 
-        ctx->Polygon.SmoothFlag || 
-        ctx->Point.SmoothFlag ) {
-      CHECK_DMA_BUFFER(gmesa, 1);
-      WRITE(gmesa->buf, FlushSpan, 0);
-   }
-
-   CHECK_DMA_BUFFER(gmesa, 1);
-   WRITE(gmesa->buf, End, 0);
-}
-
-#define LOCAL_VARS gammaContextPtr gmesa = GAMMA_CONTEXT(ctx)
-#define INIT( prim ) gammaStartPrimitive( gmesa, prim )
-#define FLUSH() gammaEndPrimitive( gmesa )
-#define GET_CURRENT_VB_MAX_VERTS() \
-  (gmesa->bufSize - gmesa->bufCount) / 2
-#define GET_SUBSEQUENT_VB_MAX_VERTS() \
-  GAMMA_DMA_BUFFER_SIZE / 2
-
-#define ALLOC_VERTS( nr ) (void *)0    /* todo: explicit alloc */
-#define EMIT_VERTS( ctx, j, nr, buf ) (gamma_emit(ctx, j, (j)+(nr)), (void *)0)
-
-#define TAG(x) gamma_##x
-#include "tnl_dd/t_dd_dmatmp.h"
-
-
-/**********************************************************************/
-/*                          Render pipeline stage                     */
-/**********************************************************************/
-
-
-static GLboolean gamma_run_render( GLcontext *ctx,
-                                 struct tnl_pipeline_stage *stage )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   struct vertex_buffer *VB = &tnl->vb;
-   GLuint i;
-   tnl_render_func *tab;
-
-                               /* GH: THIS IS A HACK!!! */
-   if (VB->ClipOrMask || gmesa->RenderIndex != 0)
-      return GL_TRUE;          /* don't handle clipping here */
-
-   /* We don't do elts */
-   if (VB->Elts || !gamma_validate_render( ctx, VB ))
-      return GL_TRUE;
-
-   tab = TAG(render_tab_verts);
-
-   tnl->Driver.Render.Start( ctx );
-
-   for (i = 0 ; i < VB->PrimitiveCount ; i++)
-   {
-      GLuint prim = _tnl_translate_prim(&VB->Primitive[i]);
-      GLuint start = VB->Primitive[i].start;
-      GLuint length = VB->Primitive[i].count;
-
-      if (!length)
-        continue;
-
-      tab[prim & PRIM_MODE_MASK]( ctx, start, start + length, prim);
-   }
-
-   tnl->Driver.Render.Finish( ctx );
-
-   return GL_FALSE;            /* finished the pipe */
-}
-
-
-const struct tnl_pipeline_stage _gamma_render_stage =
-{
-   "gamma render",
-   NULL,
-   NULL,
-   NULL,
-   NULL,
-   gamma_run_render            /* run */
-};
diff --git a/src/mesa/drivers/dri/gamma/gamma_screen.c b/src/mesa/drivers/dri/gamma/gamma_screen.c
deleted file mode 100644 (file)
index 47862f1..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *
- */
-
-#include "gamma_context.h"
-#include "gamma_vb.h"
-#include "glint_dri.h"
-
-#include "main/imports.h"
-
-gammaScreenPtr gammaCreateScreen( __DRIscreen *sPriv )
-{
-   gammaScreenPtr gammaScreen;
-   GLINTDRIPtr gDRIPriv = (GLINTDRIPtr)sPriv->pDevPriv;
-   int i;
-
-   if (sPriv->devPrivSize != sizeof(GLINTDRIRec)) {
-      fprintf(stderr,"\nERROR!  sizeof(GLINTDRIRec) does not match passed size from device driver\n");
-      return GL_FALSE;
-   }
-
-#if 0
-   /* Check the DRI externsion version */
-   if ( sPriv->driMajor != 3 || sPriv->driMinor != 1 ) {
-      __driUtilMessage( "Gamma DRI driver expected DRI version 4.0.x "
-                        "but got version %d.%d.%d",
-                        sPriv->driMajor, sPriv->driMinor, sPriv->driPatch );
-      return NULL;
-   }
-
-   /* Check that the DDX driver version is compatible */
-   if ( sPriv->ddxMajor != 4 ||
-       sPriv->ddxMinor != 0 ||
-       sPriv->ddxPatch < 0 ) {
-      __driUtilMessage( "r128 DRI driver expected DDX driver version 4.0.x but got version %d.%d.%d", sPriv->ddxMajor, sPriv->ddxMinor, sPriv->ddxPatch );
-      return GL_FALSE;
-   }
-
-   /* Check that the DRM driver version is compatible */
-   if ( sPriv->drmMajor != 2 ||
-       sPriv->drmMinor != 1 ||
-       sPriv->drmPatch < 0 ) {
-      __driUtilMessage( "r128 DRI driver expected DRM driver version 2.1.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch );
-      return GL_FALSE;
-   }
-#endif
-
-    /* Allocate the private area */
-    gammaScreen = (gammaScreenPtr) CALLOC( sizeof(*gammaScreen) );
-    if ( !gammaScreen ) return NULL;
-
-    gammaScreen->regionCount  = 4;     /* Magic number.  Can we fix this? */
-    
-    gammaScreen->regions = CALLOC(gammaScreen->regionCount * 
-                                                       sizeof(gammaRegion));
-
-    gammaScreen->regions[0].handle = gDRIPriv->registers0.handle;
-    gammaScreen->regions[0].size   = gDRIPriv->registers0.size;
-    gammaScreen->regions[1].handle = gDRIPriv->registers1.handle;
-    gammaScreen->regions[1].size   = gDRIPriv->registers1.size;
-    gammaScreen->regions[2].handle = gDRIPriv->registers2.handle;
-    gammaScreen->regions[2].size   = gDRIPriv->registers2.size;
-    gammaScreen->regions[3].handle = gDRIPriv->registers3.handle;
-    gammaScreen->regions[3].size   = gDRIPriv->registers3.size;
-    
-    /* Next, map all the regions */
-    for (i = 0; i < gammaScreen->regionCount; i++) {
-       if (drmMap(sPriv->fd,
-                  gammaScreen->regions[i].handle,
-                  gammaScreen->regions[i].size,
-                  &gammaScreen->regions[i].map)) {
-           while (--i > 0) {
-               (void)drmUnmap(gammaScreen->regions[i].map, 
-                              gammaScreen->regions[i].size);
-           }
-           return GL_FALSE;
-       }
-    }
-
-    /* Get the list of dma buffers */
-    gammaScreen->bufs = drmMapBufs(sPriv->fd);
-
-    if (!gammaScreen->bufs) {
-       while (gammaScreen->regionCount > 0) {
-           (void)drmUnmap(gammaScreen->regions[gammaScreen->regionCount].map,
-                          gammaScreen->regions[gammaScreen->regionCount].size);
-           gammaScreen->regionCount--;
-       }
-       return GL_FALSE;
-    }
-
-   gammaScreen->textureSize    = gDRIPriv->textureSize;
-   gammaScreen->logTextureGranularity = gDRIPriv->logTextureGranularity;
-   gammaScreen->cpp = gDRIPriv->cpp;
-   gammaScreen->frontOffset    = gDRIPriv->frontOffset;
-   gammaScreen->frontPitch     = gDRIPriv->frontPitch;
-   gammaScreen->backOffset     = gDRIPriv->backOffset;
-   gammaScreen->backPitch      = gDRIPriv->backPitch;
-   gammaScreen->backX          = gDRIPriv->backX;
-   gammaScreen->backY          = gDRIPriv->backY;
-   gammaScreen->depthOffset    = gDRIPriv->depthOffset;
-   gammaScreen->depthPitch     = gDRIPriv->depthPitch;
-
-   gammaScreen->driScreen = sPriv;
-
-   return gammaScreen;
-}
-
-/* Destroy the device specific screen private data struct.
- */
-void gammaDestroyScreen( __DRIscreen *sPriv )
-{
-    gammaScreenPtr gammaScreen = (gammaScreenPtr)sPriv->private;
-
-    /* First, unmap the dma buffers */
-    drmUnmapBufs( gammaScreen->bufs );
-
-    /* Next, unmap all the regions */
-    while (gammaScreen->regionCount > 0) {
-       (void)drmUnmap(gammaScreen->regions[gammaScreen->regionCount].map,
-                      gammaScreen->regions[gammaScreen->regionCount].size);
-       gammaScreen->regionCount--;
-    }
-    FREE(gammaScreen->regions);
-    FREE(gammaScreen);
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_screen.h b/src/mesa/drivers/dri/gamma/gamma_screen.h
deleted file mode 100644 (file)
index c716ea8..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-typedef struct _gammaRegion {
-    drm_handle_t  handle;
-    drmSize    size;
-    drmAddress map;
-} gammaRegion, *gammaRegionPtr;
-
-typedef struct {
-
-    int           regionCount;       /* Count of register regions */
-    gammaRegion  *regions;           /* Vector of mapped region info */
-
-    drmBufMapPtr  bufs;              /* Map of DMA buffers */
-
-    __DRIscreen *driScreen; /* Back pointer to DRI screen */
-
-    int                cpp;
-    int                frontPitch;
-    int                frontOffset;
-
-    int                backPitch;
-    int                backOffset;
-    int                backX;
-    int                backY;
-
-    int                depthOffset;
-    int                depthPitch;
-
-    int                textureSize;
-    int                logTextureGranularity;
-} gammaScreenRec, *gammaScreenPtr;
diff --git a/src/mesa/drivers/dri/gamma/gamma_span.c b/src/mesa/drivers/dri/gamma/gamma_span.c
deleted file mode 100644 (file)
index 00160f7..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-
-#include "gamma_context.h"
-#include "gamma_lock.h"
-#include "gamma_macros.h"
-#include "main/colormac.h"
-
-#include "swrast/swrast.h"
-
-#define DBG 0
-
-#define LOCAL_VARS                                                     \
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);                         \
-   gammaScreenPtr gammascrn = gmesa->gammaScreen;                      \
-   __DRIscreen *sPriv = gmesa->driScreen;                      \
-   __DRIdrawable *dPriv = gmesa->driDrawable;                  \
-   GLuint pitch = sPriv->fbWidth * gammascrn->cpp;             \
-   GLuint height = dPriv->h;                                           \
-   char *buf = (char *)(sPriv->pFB +                                   \
-                       gmesa->drawOffset +                             \
-                       (dPriv->x * gammascrn->cpp) +                   \
-                       (dPriv->y * pitch));                            \
-   GLuint p;                                                           \
-   (void) buf; (void) p
-
-/* FIXME! Depth/Stencil read/writes don't work ! */
-#define LOCAL_DEPTH_VARS                               \
-   gammaScreenPtr gammascrn = gmesa->gammaScreen;      \
-   __DRIdrawable *dPriv = gmesa->driDrawable;  \
-   __DRIscreen *sPriv = gmesa->driScreen;      \
-   GLuint pitch = gammascrn->depthPitch;               \
-   GLuint height = dPriv->h;                           \
-   char *buf = (char *)(sPriv->pFB +                   \
-                       gammascrn->depthOffset +        \
-                       dPriv->x * gammascrn->cpp +     \
-                       dPriv->y * pitch)
-
-#define LOCAL_STENCIL_VARS     LOCAL_DEPTH_VARS
-
-#define Y_FLIP( _y )           (height - _y - 1)
-
-#define HW_LOCK()                                                      \
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);                         \
-   FLUSH_DMA_BUFFER(gmesa);                                            \
-   gammaGetLock( gmesa, DRM_LOCK_FLUSH | DRM_LOCK_QUIESCENT );         \
-   GAMMAHW_LOCK( gmesa );
-
-#define HW_UNLOCK() GAMMAHW_UNLOCK( gmesa )
-
-
-
-/* ================================================================
- * Color buffer
- */
-
-/* 16 bit, RGB565 color spanline and pixel functions
- */
-#define INIT_MONO_PIXEL(p, color) \
-  p = PACK_COLOR_565( color[0], color[1], color[2] )
-
-#define WRITE_RGBA( _x, _y, r, g, b, a )                               \
-   *(GLushort *)(buf + _x*2 + _y*pitch) = ((((int)r & 0xf8) << 8) |    \
-                                          (((int)g & 0xfc) << 3) |     \
-                                          (((int)b & 0xf8) >> 3))
-
-#define WRITE_PIXEL( _x, _y, p )                                       \
-   *(GLushort *)(buf + _x*2 + _y*pitch) = p
-
-#define READ_RGBA( rgba, _x, _y )                                      \
-   do {                                                                        \
-      GLushort p = *(GLushort *)(buf + _x*2 + _y*pitch);               \
-      rgba[0] = (p >> 8) & 0xf8;                                       \
-      rgba[1] = (p >> 3) & 0xfc;                                       \
-      rgba[2] = (p << 3) & 0xf8;                                       \
-      rgba[3] = 0xff;                                                  \
-      if ( rgba[0] & 0x08 ) rgba[0] |= 0x07;                           \
-      if ( rgba[1] & 0x04 ) rgba[1] |= 0x03;                           \
-      if ( rgba[2] & 0x08 ) rgba[2] |= 0x07;                           \
-   } while (0)
-
-#define TAG(x) gamma##x##_RGB565
-#include "spantmp.h"
-
-
-/* 32 bit, ARGB8888 color spanline and pixel functions
- */
-
-#undef INIT_MONO_PIXEL
-#define INIT_MONO_PIXEL(p, color) \
-  p = PACK_COLOR_8888( color[3], color[0], color[1], color[2] )
-
-#define WRITE_RGBA( _x, _y, r, g, b, a )                               \
-   *(GLuint *)(buf + _x*4 + _y*pitch) = ((b <<  0) |                   \
-                                        (g <<  8) |                    \
-                                        (r << 16) |                    \
-                                        (a << 24) )
-
-#define WRITE_PIXEL( _x, _y, p )                                       \
-   *(GLuint *)(buf + _x*4 + _y*pitch) = p
-
-#define READ_RGBA( rgba, _x, _y )                                      \
-do {                                                                   \
-   GLuint p = *(GLuint *)(buf + _x*4 + _y*pitch);                      \
-   rgba[0] = (p >> 16) & 0xff;                                         \
-   rgba[1] = (p >>  8) & 0xff;                                         \
-   rgba[2] = (p >>  0) & 0xff;                                         \
-   rgba[3] = (p >> 24) & 0xff;                                         \
-} while (0)
-
-#define TAG(x) gamma##x##_ARGB8888
-#include "spantmp.h"
-
-
-/* 16 bit depthbuffer functions.
- */
-#define VALUE_TYPE GLushort
-
-#define WRITE_DEPTH( _x, _y, d )       \
-   *(GLushort *)(buf + (_x)*2 + (_y)*pitch) = d;
-
-#define READ_DEPTH( d, _x, _y )                \
-   d = *(GLushort *)(buf + (_x)*2 + (_y)*pitch);       
-
-#define TAG(x) gamma##x##_16
-#include "depthtmp.h"
-
-
-#if 0 /* Unused */
-/* 32 bit depthbuffer functions.
- */
-#define VALUE_TYPE GLuint
-
-#define WRITE_DEPTH( _x, _y, d )       \
-   *(GLuint *)(buf + (_x)*4 + (_y)*pitch) = d;
-
-#define READ_DEPTH( d, _x, _y )                \
-   d = *(GLuint *)(buf + (_x)*4 + (_y)*pitch); 
-
-#define TAG(x) gamma##x##_32
-#include "depthtmp.h"
-#endif
-
-
-/* 24/8 bit interleaved depth/stencil functions
- */
-#define VALUE_TYPE GLuint
-
-#define WRITE_DEPTH( _x, _y, d ) {                     \
-   GLuint tmp = *(GLuint *)(buf + (_x)*4 + (_y)*pitch);        \
-   tmp &= 0xff;                                                \
-   tmp |= (d) & 0xffffff00;                            \
-   *(GLuint *)(buf + (_x)*4 + (_y)*pitch) = tmp;               \
-}
-
-#define READ_DEPTH( d, _x, _y )                \
-   d = *(GLuint *)(buf + (_x)*4 + (_y)*pitch) & ~0xff; 
-
-
-#define TAG(x) gamma##x##_24_8
-#include "depthtmp.h"
-
-#if 0
-#define WRITE_STENCIL( _x, _y, d ) {                   \
-   GLuint tmp = *(GLuint *)(buf + _x*4 + _y*pitch);    \
-   tmp &= 0xffffff00;                                  \
-   tmp |= d & 0xff;                                    \
-   *(GLuint *)(buf + _x*4 + _y*pitch) = tmp;           \
-}
-
-#define READ_STENCIL( d, _x, _y )              \
-   d = *(GLuint *)(buf + _x*4 + _y*pitch) & 0xff;      
-
-#define TAG(x) gamma##x##_24_8
-#include "stenciltmp.h"
-
-static void gammaReadRGBASpan8888( const GLcontext *ctx,
-                              GLuint n, GLint x, GLint y,
-                              GLubyte rgba[][4])
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   gammaScreenPtr gammascrn = gmesa->gammaScreen;
-   uint32_t dwords1, dwords2, i = 0;
-   char *src = (char *)rgba[0];
-   GLuint read = n * gammascrn->cpp; /* Number of bytes we are expecting */
-   uint32_t data;
-
-   FLUSH_DMA_BUFFER(gmesa);
-   CHECK_DMA_BUFFER(gmesa, 16);
-   WRITE(gmesa->buf, LBReadMode, gmesa->LBReadMode & ~(LBReadSrcEnable | LBReadDstEnable));
-   WRITE(gmesa->buf, ColorDDAMode, ColorDDAEnable);
-   WRITE(gmesa->buf, LBWriteMode, LBWriteModeDisable);
-   WRITE(gmesa->buf, FBReadMode, (gmesa->FBReadMode & ~FBReadSrcEnable) | FBReadDstEnable | FBDataTypeColor);
-   WRITE(gmesa->buf, FilterMode, 0x200); /* Pass FBColorData */
-   WRITE(gmesa->buf, FBWriteMode, FBW_UploadColorData | FBWriteModeDisable);
-   WRITE(gmesa->buf, StartXSub, (x+n)<<16);
-   WRITE(gmesa->buf, StartXDom, x<<16);
-   WRITE(gmesa->buf, StartY, y<<16);
-   WRITE(gmesa->buf, GLINTCount, 1);
-   WRITE(gmesa->buf, dXDom, 0<<16);
-   WRITE(gmesa->buf, dXSub, 0<<16);
-   WRITE(gmesa->buf, dY, 1<<16);
-   WRITE(gmesa->buf, Render, PrimitiveTrapezoid);
-   FLUSH_DMA_BUFFER(gmesa);
-
-moredata:
-
-   dwords1 = *(volatile uint32_t*)(void *)(((uint8_t*)gammascrn->regions[0].map) + (GlintOutFIFOWords));
-   dwords2 = *(volatile uint32_t*)(void *)(((uint8_t*)gammascrn->regions[2].map) + (GlintOutFIFOWords));
-
-   if (dwords1) {
-       memcpy(src, (char*)gammascrn->regions[1].map + 0x1000, dwords1 << 2);
-       src += dwords1 << 2;
-       read -= dwords1 << 2;
-   }
-   if (dwords2) {
-       memcpy(src, (char*)gammascrn->regions[3].map + 0x1000, dwords2 << 2);
-       src += dwords2 << 2;
-       read -= dwords2 << 2;
-   }
-
-   if (read)
-       goto moredata;
-
-done:
-
-   CHECK_DMA_BUFFER(gmesa, 6);
-   WRITE(gmesa->buf, ColorDDAMode, gmesa->ColorDDAMode);
-   WRITE(gmesa->buf, LBWriteMode, LBWriteModeEnable);
-   WRITE(gmesa->buf, LBReadMode, gmesa->LBReadMode);
-   WRITE(gmesa->buf, FBReadMode, gmesa->FBReadMode);
-   WRITE(gmesa->buf, FBWriteMode, FBWriteModeEnable);
-   WRITE(gmesa->buf, FilterMode, 0x400);
-}
-#endif
-
-static void gammaSetBuffer( GLcontext *ctx,
-                            GLframebuffer *colorBuffer,
-                            GLuint bufferBit )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   switch ( bufferBit ) {
-   case BUFFER_BIT_FRONT_LEFT:
-      gmesa->readOffset = 0;
-      break;
-   case BUFFER_BIT_BACK_LEFT:
-      gmesa->readOffset = gmesa->driScreen->fbHeight * gmesa->driScreen->fbWidth * gmesa->gammaScreen->cpp; 
-      break;
-   default:
-      _mesa_problem(ctx, "Unexpected buffer 0x%x in gammaSetBuffer()", bufferBit);
-   }
-}
-
-
-void gammaDDInitSpanFuncs( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx);
-
-   swdd->SetBuffer = gammaSetBuffer;
-
-   switch ( gmesa->gammaScreen->cpp ) {
-   case 2:
-      swdd->WriteRGBASpan      = gammaWriteRGBASpan_RGB565;
-      swdd->WriteRGBSpan       = gammaWriteRGBSpan_RGB565;
-      swdd->WriteMonoRGBASpan  = gammaWriteMonoRGBASpan_RGB565;
-      swdd->WriteRGBAPixels    = gammaWriteRGBAPixels_RGB565;
-      swdd->WriteMonoRGBAPixels        = gammaWriteMonoRGBAPixels_RGB565;
-      swdd->ReadRGBASpan       = gammaReadRGBASpan_RGB565;
-      swdd->ReadRGBAPixels      = gammaReadRGBAPixels_RGB565;
-      break;
-
-   case 4:
-      swdd->WriteRGBASpan      = gammaWriteRGBASpan_ARGB8888;
-      swdd->WriteRGBSpan       = gammaWriteRGBSpan_ARGB8888;
-      swdd->WriteMonoRGBASpan   = gammaWriteMonoRGBASpan_ARGB8888;
-      swdd->WriteRGBAPixels     = gammaWriteRGBAPixels_ARGB8888;
-      swdd->WriteMonoRGBAPixels = gammaWriteMonoRGBAPixels_ARGB8888;
-#if 1
-      swdd->ReadRGBASpan       = gammaReadRGBASpan_ARGB8888;
-#else
-      swdd->ReadRGBASpan       = gammaReadRGBASpan8888;
-#endif
-      swdd->ReadRGBAPixels      = gammaReadRGBAPixels_ARGB8888;
-      break;
-
-   default:
-      break;
-   }
-
-   switch ( gmesa->glCtx->Visual.depthBits ) {
-   case 16:
-      swdd->ReadDepthSpan      = gammaReadDepthSpan_16;
-      swdd->WriteDepthSpan     = gammaWriteDepthSpan_16;
-      swdd->ReadDepthPixels    = gammaReadDepthPixels_16;
-      swdd->WriteDepthPixels   = gammaWriteDepthPixels_16;
-      break;
-
-   case 24:
-      swdd->ReadDepthSpan      = gammaReadDepthSpan_24_8;
-      swdd->WriteDepthSpan     = gammaWriteDepthSpan_24_8;
-      swdd->ReadDepthPixels    = gammaReadDepthPixels_24_8;
-      swdd->WriteDepthPixels   = gammaWriteDepthPixels_24_8;
-
-#if 0
-      swdd->ReadStencilSpan    = gammaReadStencilSpan_24_8;
-      swdd->WriteStencilSpan   = gammaWriteStencilSpan_24_8;
-      swdd->ReadStencilPixels  = gammaReadStencilPixels_24_8;
-      swdd->WriteStencilPixels = gammaWriteStencilPixels_24_8;
-#endif
-      break;
-
-   default:
-      break;
-   }
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_state.c b/src/mesa/drivers/dri/gamma/gamma_state.c
deleted file mode 100644 (file)
index c628457..0000000
+++ /dev/null
@@ -1,1721 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *
- * 3DLabs Gamma driver
- */
-
-#include "gamma_context.h"
-#include "gamma_macros.h"
-#include "main/macros.h"
-#include "glint_dri.h"
-#include "main/colormac.h"
-#include "swrast/swrast.h"
-#include "swrast_setup/swrast_setup.h"
-#include "vbo/vbo.h"
-#include "tnl/tnl.h"
-
-#define ENABLELIGHTING 0
-
-/* =============================================================
- * Alpha blending
- */
-
-static void gammaUpdateAlphaMode( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   uint32_t a = gmesa->AlphaTestMode;
-   uint32_t b = gmesa->AlphaBlendMode;
-   uint32_t f = gmesa->AB_FBReadMode_Save = 0;
-   GLubyte refByte = (GLint) (ctx->Color.AlphaRef * 255.0);
-
-   a &= ~(AT_CompareMask | AT_RefValueMask);
-   b &= ~(AB_SrcBlendMask | AB_DstBlendMask);
-
-   a |= refByte << 4;
-
-   switch ( ctx->Color.AlphaFunc ) {
-      case GL_NEVER:
-        a |= AT_Never;
-        break;
-      case GL_LESS:
-        a |= AT_Less;
-         break;
-      case GL_EQUAL:
-        a |= AT_Equal;
-        break;
-      case GL_LEQUAL:
-        a |= AT_LessEqual;
-        break;
-      case GL_GEQUAL:
-        a |= AT_GreaterEqual;
-        break;
-      case GL_GREATER:
-        a |= AT_Greater;
-        break;
-      case GL_NOTEQUAL:
-        a |= AT_NotEqual;
-        break;
-      case GL_ALWAYS:
-        a |= AT_Always;
-        break;
-   }
-
-   if ( ctx->Color.AlphaEnabled ) {
-      f |= FBReadDstEnable;
-      a |= AlphaTestModeEnable;
-   } else {
-      a &= ~AlphaTestModeEnable;
-   }
-
-   switch ( ctx->Color.BlendSrcRGB ) {
-      case GL_ZERO:
-        b |= AB_Src_Zero; 
-        break;
-      case GL_ONE:
-        b |= AB_Src_One;
-        break;
-      case GL_DST_COLOR:
-        b |= AB_Src_DstColor;
-        break;
-      case GL_ONE_MINUS_DST_COLOR:
-        b |= AB_Src_OneMinusDstColor;
-        break;
-      case GL_SRC_ALPHA:
-        b |= AB_Src_SrcAlpha;
-        break;
-      case GL_ONE_MINUS_SRC_ALPHA:
-        b |= AB_Src_OneMinusSrcAlpha;
-        break;
-      case GL_DST_ALPHA:
-        b |= AB_Src_DstAlpha;
-         f |= FBReadSrcEnable;
-        break;
-      case GL_ONE_MINUS_DST_ALPHA:
-        b |= AB_Src_OneMinusDstAlpha;
-         f |= FBReadSrcEnable;
-        break;
-      case GL_SRC_ALPHA_SATURATE:
-        b |= AB_Src_SrcAlphaSaturate;
-        break;
-   }
-
-   switch ( ctx->Color.BlendDstRGB ) {
-      case GL_ZERO:
-        b |= AB_Dst_Zero;
-        break;
-      case GL_ONE:
-        b |= AB_Dst_One;
-        break;
-      case GL_SRC_COLOR:
-        b |= AB_Dst_SrcColor;
-        break;
-      case GL_ONE_MINUS_SRC_COLOR:
-        b |= AB_Dst_OneMinusSrcColor;
-        break;
-      case GL_SRC_ALPHA:
-        b |= AB_Dst_SrcAlpha;
-        break;
-      case GL_ONE_MINUS_SRC_ALPHA:
-        b |= AB_Dst_OneMinusSrcAlpha;
-        break;
-      case GL_DST_ALPHA:
-        b |= AB_Dst_DstAlpha;
-         f |= FBReadSrcEnable;
-        break;
-      case GL_ONE_MINUS_DST_ALPHA:
-        b |= AB_Dst_OneMinusDstAlpha;
-         f |= FBReadSrcEnable;
-        break;
-   }
-
-   if ( ctx->Color.BlendEnabled ) {
-      f |= FBReadDstEnable;
-      b |= AlphaBlendModeEnable;
-   } else {
-      b &= ~AlphaBlendModeEnable;
-   }
-
-   if ( gmesa->AlphaTestMode != a ) {
-      gmesa->AlphaTestMode = a;
-      gmesa->dirty |= GAMMA_UPLOAD_ALPHA;
-   }
-   if ( gmesa->AlphaBlendMode != b) {
-      gmesa->AlphaBlendMode = b;
-      gmesa->dirty |= GAMMA_UPLOAD_BLEND;
-   }
-   gmesa->AB_FBReadMode_Save = f;
-}
-
-static void gammaDDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   (void) ref;
-
-   FLUSH_BATCH( gmesa );
-
-   gmesa->new_state |= GAMMA_NEW_ALPHA;
-}
-
-static void gammaDDBlendEquationSeparate( GLcontext *ctx, 
-                                         GLenum modeRGB, GLenum modeA )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   assert( modeRGB == modeA );
-   FLUSH_BATCH( gmesa );
-
-   gmesa->new_state |= GAMMA_NEW_ALPHA;
-}
-
-static void gammaDDBlendFuncSeparate( GLcontext *ctx,
-                                    GLenum sfactorRGB, GLenum dfactorRGB,
-                                    GLenum sfactorA, GLenum dfactorA )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-
-   gmesa->new_state |= GAMMA_NEW_ALPHA;
-}
-
-
-/* ================================================================
- * Buffer clear
- */
-
-static void gammaDDClear( GLcontext *ctx, GLbitfield mask )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   GLINTDRIPtr gDRIPriv = (GLINTDRIPtr)gmesa->driScreen->pDevPriv;
-   GLuint temp = 0;
-
-   FLUSH_BATCH( gmesa );
-
-   /* Update and emit any new state.  We need to do this here to catch
-    * changes to the masks.
-    * FIXME: Just update the masks?
-    */
-   if ( gmesa->new_state )
-      gammaDDUpdateHWState( ctx );
-
-#ifdef DO_VALIDATE
-    /* Flush any partially filled buffers */
-    FLUSH_DMA_BUFFER(gmesa);
-
-    DRM_SPINLOCK(&gmesa->driScreen->pSAREA->drawable_lock,
-                gmesa->driScreen->drawLockID);
-    VALIDATE_DRAWABLE_INFO_NO_LOCK(gmesa);
-#endif
-
-    if (mask & BUFFER_BIT_DEPTH) {
-        /* Turn off writes the FB */
-        CHECK_DMA_BUFFER(gmesa, 1);
-        WRITE(gmesa->buf, FBWriteMode, FBWriteModeDisable);
-
-        mask &= ~BUFFER_BIT_DEPTH;
-
-        /*
-         * Turn Rectangle2DControl off when the window is not clipped
-         * (i.e., the GID tests are not necessary).  This dramatically
-         * increases the performance of the depth clears.
-         */
-        if (!gmesa->NotClipped) {
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITE(gmesa->buf, Rectangle2DControl, 1);
-        }
-
-        temp = (gmesa->LBReadMode & LBPartialProdMask) | LBWindowOriginBot;
-        if (gDRIPriv->numMultiDevices == 2) temp |= LBScanLineInt2;
-        
-        CHECK_DMA_BUFFER(gmesa, 5);
-        WRITE(gmesa->buf, LBReadMode, temp);
-        WRITE(gmesa->buf, DeltaMode, DM_DepthEnable);
-        WRITE(gmesa->buf, DepthMode, (DepthModeEnable |
-                                       DM_Always |
-                                       DM_SourceDepthRegister |
-                                       DM_WriteMask));
-        WRITE(gmesa->buf, GLINTDepth, gmesa->ClearDepth);
-
-        /* Increment the frame count */
-        gmesa->FrameCount++;
-#ifdef FAST_CLEAR_4
-        gmesa->FrameCount &= 0x0f;
-#else
-        gmesa->FrameCount &= 0xff;
-#endif
-
-        /* Force FCP to be written */
-        WRITE(gmesa->buf, GLINTWindow, (WindowEnable |
-                                         W_PassIfEqual |
-                                         (gmesa->Window & W_GIDMask) |
-                                         W_DepthFCP |
-                                         W_LBUpdateFromRegisters |
-                                         W_OverrideWriteFiltering |
-                                         (gmesa->FrameCount << 9)));
-
-       /* Clear part of the depth and FCP buffers */
-       {
-           int y = gmesa->driScreen->fbHeight - gmesa->driDrawable->y - gmesa->driDrawable->h;
-           int x = gmesa->driDrawable->x;
-           int w = gmesa->driDrawable->w;
-           int h = gmesa->driDrawable->h;
-#ifndef TURN_OFF_FCP
-           float hsub = h;
-
-           if (gmesa->WindowChanged) {
-               gmesa->WindowChanged = GL_FALSE;
-           } else {
-#ifdef FAST_CLEAR_4
-               hsub /= 16;
-#else
-               hsub /= 256;
-#endif
-
-               /* Handle the case where the height < # of FCPs */
-               if (hsub < 1.0) {
-                   if (gmesa->FrameCount > h)
-                       gmesa->FrameCount = 0;
-                   h = 1;
-                   y += gmesa->FrameCount;
-               } else {
-                   h = (gmesa->FrameCount+1)*hsub;
-                   h -= (int)(gmesa->FrameCount*hsub);
-                   y += gmesa->FrameCount*hsub;
-               }
-           }
-#endif
-           if (h && w) {
-#if 0
-               CHECK_DMA_BUFFER(gmesa, 2);
-               WRITE(gmesa->buf, Rectangle2DMode, ((h & 0xfff)<<12) |
-                                                  (w & 0xfff) );
-               WRITE(gmesa->buf, DrawRectangle2D, ((y & 0xffff)<<16) |
-                                                  (x & 0xffff) );
-#else
-               CHECK_DMA_BUFFER(gmesa, 8);
-               WRITE(gmesa->buf, StartXDom,   x<<16);
-               WRITE(gmesa->buf, StartY,      y<<16);
-               WRITE(gmesa->buf, StartXSub,   (x+w)<<16);
-               WRITE(gmesa->buf, GLINTCount,  h);
-               WRITE(gmesa->buf, dY,          1<<16);
-               WRITE(gmesa->buf, dXDom,       0<<16);
-               WRITE(gmesa->buf, dXSub,       0<<16);
-               WRITE(gmesa->buf, Render,      0x00000040); /* NOT_DONE */
-#endif
-           }
-       }
-
-       CHECK_DMA_BUFFER(gmesa, 6);
-       WRITE(gmesa->buf, DepthMode, gmesa->DepthMode);
-       WRITE(gmesa->buf, DeltaMode, gmesa->DeltaMode);
-       WRITE(gmesa->buf, LBReadMode, gmesa->LBReadMode);
-       WRITE(gmesa->buf, GLINTWindow, gmesa->Window);
-       WRITE(gmesa->buf, FastClearDepth, gmesa->ClearDepth);
-       WRITE(gmesa->buf, FBWriteMode, FBWriteModeEnable);
-
-       /* Turn on Depth FCP */
-       if (gmesa->Window & W_DepthFCP) {
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITE(gmesa->buf, WindowOr, (gmesa->FrameCount << 9));
-       }
-
-       /* Turn off GID clipping if window is not clipped */
-       if (gmesa->NotClipped) {
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITE(gmesa->buf, Rectangle2DControl, 0);
-       }
-    }
-
-    if (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT)) {
-       int y = gmesa->driScreen->fbHeight - gmesa->driDrawable->y - gmesa->driDrawable->h;
-       int x = gmesa->driDrawable->x;
-       int w = gmesa->driDrawable->w;
-       int h = gmesa->driDrawable->h;
-
-       mask &= ~(BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT);
-
-       if (x < 0) { w -= -x; x = 0; }
-
-       /* Turn on GID clipping if window is clipped */
-       if (!gmesa->NotClipped) {
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITE(gmesa->buf, Rectangle2DControl, 1);
-       }
-
-        CHECK_DMA_BUFFER(gmesa, 18);
-        WRITE(gmesa->buf, FBBlockColor, gmesa->ClearColor);
-        WRITE(gmesa->buf, ColorDDAMode, ColorDDADisable);
-       WRITE(gmesa->buf, FBWriteMode, FBWriteModeEnable);
-       WRITE(gmesa->buf, DepthMode, 0);
-       WRITE(gmesa->buf, DeltaMode, 0);
-       WRITE(gmesa->buf, AlphaBlendMode, 0);
-#if 1
-       WRITE(gmesa->buf, dY,          1<<16);
-       WRITE(gmesa->buf, dXDom,       0<<16);
-       WRITE(gmesa->buf, dXSub,       0<<16);
-       WRITE(gmesa->buf, StartXSub,   (x+w)<<16);
-       WRITE(gmesa->buf, GLINTCount,  h);
-       WRITE(gmesa->buf, StartXDom,   x<<16);
-       WRITE(gmesa->buf, StartY,      y<<16);
-       WRITE(gmesa->buf, Render,      0x00000048); /* NOT_DONE */
-#else
-       WRITE(gmesa->buf, Rectangle2DMode, (((h & 0xfff)<<12) |
-                                             (w & 0xfff)));
-       WRITE(gmesa->buf, DrawRectangle2D, (((y & 0xffff)<<16) |
-                                             (x & 0xffff)));
-#endif
-       WRITE(gmesa->buf, DepthMode, gmesa->DepthMode);
-       WRITE(gmesa->buf, DeltaMode, gmesa->DeltaMode);
-       WRITE(gmesa->buf, AlphaBlendMode, gmesa->AlphaBlendMode);
-       WRITE(gmesa->buf, ColorDDAMode, gmesa->ColorDDAMode);
-
-       /* Turn off GID clipping if window is clipped */
-       if (gmesa->NotClipped) {
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITE(gmesa->buf, Rectangle2DControl, 0);
-       }
-    }
-
-#ifdef DO_VALIDATE
-    PROCESS_DMA_BUFFER_TOP_HALF(gmesa);
-
-    DRM_SPINUNLOCK(&gmesa->driScreen->pSAREA->drawable_lock,
-                  gmesa->driScreen->drawLockID);
-    VALIDATE_DRAWABLE_INFO_NO_LOCK_POST(gmesa);
-
-    PROCESS_DMA_BUFFER_BOTTOM_HALF(gmesa);
-#endif
-
-   if ( mask )
-      _swrast_Clear( ctx, mask );
-}
-
-/* =============================================================
- * Depth testing
- */
-
-static void gammaUpdateZMode( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   uint32_t z = gmesa->DepthMode;
-   uint32_t delta = gmesa->DeltaMode;
-   uint32_t window = gmesa->Window;
-   uint32_t lbread = gmesa->LBReadMode;
-
-   z &= ~DM_CompareMask;
-
-   switch ( ctx->Depth.Func ) {
-      case GL_NEVER:
-        z |= DM_Never;
-        break;
-      case GL_ALWAYS:
-        z |= DM_Always;
-        break;
-      case GL_LESS:
-        z |= DM_Less;
-        break;
-      case GL_LEQUAL:
-        z |= DM_LessEqual;
-        break;
-      case GL_EQUAL:
-        z |= DM_Equal;
-        break;
-      case GL_GEQUAL:
-        z |= DM_GreaterEqual;
-        break;
-      case GL_GREATER:
-        z |= DM_Greater;
-        break;
-      case GL_NOTEQUAL:
-        z |= DM_NotEqual;
-        break;
-   }
-
-   if ( ctx->Depth.Test ) {
-      z      |= DepthModeEnable;
-      delta  |= DM_DepthEnable;
-      window |= W_DepthFCP;
-      lbread |= LBReadDstEnable;
-   } else {
-      z      &= ~DepthModeEnable;
-      delta  &= ~DM_DepthEnable;
-      window &= ~W_DepthFCP;
-      lbread &= ~LBReadDstEnable;
-   }
-
-   if ( ctx->Depth.Mask ) {
-      z |= DM_WriteMask;
-   } else {
-      z &= ~DM_WriteMask;
-   }
-
-#if 0
-   if ( gmesa->DepthMode != z ){
-#endif
-      gmesa->DepthMode = z;
-      gmesa->DeltaMode = delta;
-      gmesa->Window = window;
-      gmesa->LBReadMode = lbread;
-      gmesa->dirty |= GAMMA_UPLOAD_DEPTH;
-#if 0
-   }
-#endif
-}
-
-static void gammaDDDepthFunc( GLcontext *ctx, GLenum func )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_DEPTH;
-}
-
-static void gammaDDDepthMask( GLcontext *ctx, GLboolean flag )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_DEPTH;
-}
-
-static void gammaDDClearDepth( GLcontext *ctx, GLclampd d )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   switch ( gmesa->DepthSize ) {
-   case 16:
-      gmesa->ClearDepth = d * 0x0000ffff;
-      break;
-   case 24:
-      gmesa->ClearDepth = d * 0x00ffffff;
-      break;
-   case 32:
-      gmesa->ClearDepth = d * 0xffffffff;
-      break;
-   }
-}
-
-static void gammaDDFinish( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_DMA_BUFFER(gmesa);
-}
-
-static void gammaDDFlush( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_DMA_BUFFER(gmesa);
-}
-
-/* =============================================================
- * Fog
- */
-
-static void gammaUpdateFogAttrib( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   uint32_t f = gmesa->FogMode;
-   uint32_t g = gmesa->GeometryMode;
-   uint32_t d = gmesa->DeltaMode;
-
-   if (ctx->Fog.Enabled) {
-      f |= FogModeEnable;
-      g |= GM_FogEnable;
-      d |= DM_FogEnable;
-   } else {
-      f &= ~FogModeEnable;
-      g &= ~GM_FogEnable;
-      d &= ~DM_FogEnable;
-   }
-
-   g &= ~GM_FogMask;
-
-   switch (ctx->Fog.Mode) {
-      case GL_LINEAR:
-         g |= GM_FogLinear;
-         break;
-      case GL_EXP:
-         g |= GM_FogExp;
-         break;
-      case GL_EXP2:
-         g |= GM_FogExpSquared;
-         break;
-   }
-
-   if ( gmesa->FogMode != f ) {
-      gmesa->FogMode = f;
-      gmesa->dirty |= GAMMA_UPLOAD_FOG;
-   }
-   if ( gmesa->GeometryMode != g ) {
-      gmesa->GeometryMode = g;
-      gmesa->dirty |= GAMMA_UPLOAD_GEOMETRY;
-   }
-
-   if ( gmesa->DeltaMode != d ) {
-      gmesa->DeltaMode = d;
-      gmesa->dirty |= GAMMA_UPLOAD_DEPTH;
-   }
-}
-
-#if 0
-static void gammaDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_FOG;
-}
-#endif
-
-/* =============================================================
- * Lines
- */
-static void gammaDDLineWidth( GLcontext *ctx, GLfloat width )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   CHECK_DMA_BUFFER(gmesa, 3);
-   WRITE(gmesa->buf, LineWidth, (GLuint)width);
-   WRITEF(gmesa->buf, AAlineWidth, width);
-   WRITE(gmesa->buf, LineWidthOffset, (GLuint)(width-1)/2);
-}
-
-static void gammaDDLineStipple( GLcontext *ctx, GLint factor, GLushort pattern )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   gmesa->LineMode &= ~(LM_StippleMask | LM_RepeatFactorMask);
-   gmesa->LineMode |= ((GLuint)(factor - 1) << 1) | ((GLuint)pattern << 10); 
-
-   gmesa->dirty |= GAMMA_UPLOAD_LINEMODE;
-}
-
-
-
-/* =============================================================
- * Points
- */
-static void gammaDDPointSize( GLcontext *ctx, GLfloat size )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   CHECK_DMA_BUFFER(gmesa, 2);
-   WRITE(gmesa->buf, PointSize, (GLuint)size);
-   WRITEF(gmesa->buf, AApointSize, size);
-}
-
-/* =============================================================
- * Polygon 
- */
-
-static void gammaUpdatePolygon( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   uint32_t g = gmesa->GeometryMode;
-
-   g &= ~(GM_PolyOffsetFillEnable | GM_PolyOffsetPointEnable |
-          GM_PolyOffsetLineEnable);
-
-   if (ctx->Polygon.OffsetFill) g |= GM_PolyOffsetFillEnable;
-   if (ctx->Polygon.OffsetPoint) g |= GM_PolyOffsetPointEnable;
-   if (ctx->Polygon.OffsetLine) g |= GM_PolyOffsetLineEnable;
-
-   g &= ~GM_FB_PolyMask;
-
-   switch (ctx->Polygon.FrontMode) {
-      case GL_FILL:
-         g |= GM_FrontPolyFill;
-         break;
-      case GL_LINE:
-         g |= GM_FrontPolyLine;
-         break;
-      case GL_POINT:
-         g |= GM_FrontPolyPoint;
-         break;
-   }
-
-   switch (ctx->Polygon.BackMode) {
-      case GL_FILL:
-         g |= GM_BackPolyFill;
-         break;
-      case GL_LINE:
-         g |= GM_BackPolyLine;
-         break;
-      case GL_POINT:
-         g |= GM_BackPolyPoint;
-         break;
-   }
-
-   if ( gmesa->GeometryMode != g ) {
-      gmesa->GeometryMode = g;
-      gmesa->dirty |= GAMMA_UPLOAD_GEOMETRY;
-   }
-
-   gmesa->dirty |= GAMMA_UPLOAD_POLYGON;
-}
-
-static void gammaDDPolygonMode( GLcontext *ctx, GLenum face, GLenum mode)
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-
-   gmesa->new_state |= GAMMA_NEW_POLYGON;
-}
-
-static void gammaUpdateStipple( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-
-   if (ctx->Polygon.StippleFlag) {
-      gmesa->AreaStippleMode |= AreaStippleModeEnable/* | ASM_X32 | ASM_Y32*/;
-   } else {
-      gmesa->AreaStippleMode &= ~AreaStippleModeEnable;
-   }
-
-   gmesa->dirty |= GAMMA_UPLOAD_STIPPLE;
-}
-
-static void gammaDDPolygonStipple( GLcontext *ctx, const GLubyte *mask)
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_STIPPLE;
-}
-
-/* =============================================================
- * Clipping
- */
-
-static void gammaUpdateClipping( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   GLint x1, y1, x2, y2;
-
-   if ( gmesa->driDrawable ) {
-      x1 = gmesa->driDrawable->x + ctx->Scissor.X;
-      y1 = gmesa->driScreen->fbHeight -
-       (gmesa->driDrawable->y +
-        gmesa->driDrawable->h) + ctx->Scissor.Y;
-      x2 = x1 + ctx->Scissor.Width;
-      y2 = y1 + ctx->Scissor.Height;
-
-      gmesa->ScissorMinXY = x1 | (y1 << 16);
-      gmesa->ScissorMaxXY = x2 | (y2 << 16);
-      if (ctx->Scissor.Enabled) 
-         gmesa->ScissorMode |= UserScissorEnable;
-      else
-         gmesa->ScissorMode &= ~UserScissorEnable;
-
-      gmesa->dirty |= GAMMA_UPLOAD_CLIP;
-   }
-}
-
-static void gammaDDScissor( GLcontext *ctx,
-                          GLint x, GLint y, GLsizei w, GLsizei h )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_CLIP;
-}
-
-/* =============================================================
- * Culling
- */
-
-static void gammaUpdateCull( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   uint32_t g = gmesa->GeometryMode;
-
-   g &= ~(GM_PolyCullMask | GM_FFMask);
-
-   if (ctx->Polygon.FrontFace == GL_CCW) {
-      g |= GM_FrontFaceCCW;
-   } else {
-      g |= GM_FrontFaceCW;
-   }
-
-   switch ( ctx->Polygon.CullFaceMode ) {
-      case GL_FRONT:
-        g |= GM_PolyCullFront;
-        break;
-      case GL_BACK:
-        g |= GM_PolyCullBack;
-        break;
-      case GL_FRONT_AND_BACK:
-        g |= GM_PolyCullBoth;
-        break;
-   }
-
-   if ( ctx->Polygon.CullFlag ) {
-      g |= GM_PolyCullEnable;
-   } else {
-      g &= ~GM_PolyCullEnable;
-   }
-
-   if ( gmesa->GeometryMode != g ) {
-      gmesa->GeometryMode = g;
-      gmesa->dirty |= GAMMA_UPLOAD_GEOMETRY;
-   }
-}
-
-static void gammaDDCullFace( GLcontext *ctx, GLenum mode )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_CULL;
-}
-
-static void gammaDDFrontFace( GLcontext *ctx, GLenum mode )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_CULL;
-}
-
-/* =============================================================
- * Masks
- */
-
-static void gammaUpdateMasks( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-
-   GLuint mask = gammaPackColor( gmesa->gammaScreen->cpp,
-                               ctx->Color.ColorMask[0][RCOMP],
-                               ctx->Color.ColorMask[0][GCOMP],
-                               ctx->Color.ColorMask[0][BCOMP],
-                               ctx->Color.ColorMask[0][ACOMP] );
-
-   if (gmesa->gammaScreen->cpp == 2) mask |= mask << 16;
-
-   if ( gmesa->FBHardwareWriteMask != mask ) {
-      gmesa->FBHardwareWriteMask = mask;
-      gmesa->dirty |= GAMMA_UPLOAD_MASKS;
-   }
-}
-
-static void gammaDDColorMask( GLcontext *ctx, GLboolean r, GLboolean g,
-                             GLboolean b, GLboolean a)
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-   gmesa->new_state |= GAMMA_NEW_MASKS;
-}
-
-/* =============================================================
- * Rendering attributes
- *
- * We really don't want to recalculate all this every time we bind a
- * texture.  These things shouldn't change all that often, so it makes
- * sense to break them out of the core texture state update routines.
- */
-
-#if ENABLELIGHTING
-static void gammaDDLightfv(GLcontext *ctx, GLenum light, GLenum pname, 
-                               const GLfloat *params, GLint nParams)
-{
-    gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-    GLfloat l,x,y,z,w;
-
-    switch(light) {
-    case GL_LIGHT0:
-       switch (pname) {
-       case GL_AMBIENT:
-           CHECK_DMA_BUFFER(gmesa, 3);
-           /* We don't do alpha */
-           WRITEF(gmesa->buf, Light0AmbientIntensityBlue, params[2]);
-           WRITEF(gmesa->buf, Light0AmbientIntensityGreen, params[1]);
-           WRITEF(gmesa->buf, Light0AmbientIntensityRed, params[0]);
-           break;
-       case GL_DIFFUSE:
-           CHECK_DMA_BUFFER(gmesa, 3);
-           /* We don't do alpha */
-           WRITEF(gmesa->buf, Light0DiffuseIntensityBlue, params[2]);
-           WRITEF(gmesa->buf, Light0DiffuseIntensityGreen, params[1]);
-           WRITEF(gmesa->buf, Light0DiffuseIntensityRed, params[0]);
-           break;
-       case GL_SPECULAR:
-           CHECK_DMA_BUFFER(gmesa, 3);
-           /* We don't do alpha */
-           WRITEF(gmesa->buf, Light0SpecularIntensityBlue, params[2]);
-           WRITEF(gmesa->buf, Light0SpecularIntensityGreen, params[1]);
-           WRITEF(gmesa->buf, Light0SpecularIntensityRed, params[0]);
-           break;
-       case GL_POSITION:
-           /* Normalize <x,y,z> */
-           x = params[0]; y = params[1]; z = params[2]; w = params[3];
-           l = sqrt(x*x + y*y + z*z + w*w);
-           w /= l;
-           x /= l;
-           y /= l;
-           z /= l;
-           if (params[3] != 0.0) {
-               gmesa->Light0Mode |= Light0ModeAttenuation;
-               gmesa->Light0Mode |= Light0ModeLocal;
-           } else {
-               gmesa->Light0Mode &= ~Light0ModeAttenuation;
-               gmesa->Light0Mode &= ~Light0ModeLocal;
-           }
-           CHECK_DMA_BUFFER(gmesa, 5);
-           WRITE(gmesa->buf, Light0Mode, gmesa->Light0Mode);
-           WRITEF(gmesa->buf, Light0PositionW, w);
-           WRITEF(gmesa->buf, Light0PositionZ, z);
-           WRITEF(gmesa->buf, Light0PositionY, y);
-           WRITEF(gmesa->buf, Light0PositionX, x);
-           break;
-       case GL_SPOT_DIRECTION:
-           CHECK_DMA_BUFFER(gmesa, 3);
-           /* WRITEF(gmesa->buf, Light0SpotlightDirectionW, params[3]); */
-           WRITEF(gmesa->buf, Light0SpotlightDirectionZ, params[2]);
-           WRITEF(gmesa->buf, Light0SpotlightDirectionY, params[1]);
-           WRITEF(gmesa->buf, Light0SpotlightDirectionX, params[0]);
-           break;
-       case GL_SPOT_EXPONENT:
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITEF(gmesa->buf, Light0SpotlightExponent, params[0]);
-           break;
-       case GL_SPOT_CUTOFF:
-           if (params[0] != 180.0) 
-               gmesa->Light0Mode |= Light0ModeSpotLight;
-           else
-               gmesa->Light0Mode &= ~Light0ModeSpotLight;
-           CHECK_DMA_BUFFER(gmesa, 2);
-           WRITE(gmesa->buf, Light0Mode, gmesa->Light0Mode);
-           WRITEF(gmesa->buf, Light0CosSpotlightCutoffAngle, cos(params[0]*DEG2RAD));
-           break;
-       case GL_CONSTANT_ATTENUATION:
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITEF(gmesa->buf, Light0ConstantAttenuation, params[0]);
-           break;
-       case GL_LINEAR_ATTENUATION:
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITEF(gmesa->buf, Light0LinearAttenuation, params[0]);
-           break;
-       case GL_QUADRATIC_ATTENUATION:
-           CHECK_DMA_BUFFER(gmesa, 1);
-           WRITEF(gmesa->buf, Light0QuadraticAttenuation, params[0]);
-           break;
-       }
-       break;
-    }
-}
-
-static void gammaDDLightModelfv( GLcontext *ctx, GLenum pname,
-                               const GLfloat *params )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   switch (pname) {
-   case GL_LIGHT_MODEL_AMBIENT:
-       CHECK_DMA_BUFFER(gmesa, 3);
-       /* We don't do alpha */
-       WRITEF(gmesa->buf, SceneAmbientColorBlue, params[2]);
-       WRITEF(gmesa->buf, SceneAmbientColorGreen, params[1]);
-       WRITEF(gmesa->buf, SceneAmbientColorRed, params[0]);
-       break;
-    case GL_LIGHT_MODEL_LOCAL_VIEWER:
-       if (params[0] != 0.0)
-           gmesa->LightingMode |= LightingModeLocalViewer;
-       else
-           gmesa->LightingMode &= ~LightingModeLocalViewer;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, LightingMode, gmesa->LightingMode);
-       break;
-    case GL_LIGHT_MODEL_TWO_SIDE:
-       if (params[0] == 1.0f) {
-           gmesa->LightingMode |= LightingModeTwoSides;
-           gmesa->MaterialMode |= MaterialModeTwoSides;
-       } else {
-           gmesa->LightingMode &= ~LightingModeTwoSides;
-           gmesa->MaterialMode &= ~MaterialModeTwoSides;
-       }
-       CHECK_DMA_BUFFER(gmesa, 2);
-       WRITE(gmesa->buf, LightingMode, gmesa->LightingMode);
-       WRITE(gmesa->buf, MaterialMode, gmesa->MaterialMode);
-       break;
-    }
-}
-#endif
-
-static void gammaDDShadeModel( GLcontext *ctx, GLenum mode )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   uint32_t g = gmesa->GeometryMode;
-   uint32_t c = gmesa->ColorDDAMode;
-
-   g &= ~GM_ShadingMask;
-   c &= ~ColorDDAShadingMask;
-
-   switch ( mode ) {
-   case GL_FLAT:
-      g |= GM_FlatShading;
-      c |= ColorDDAFlat;
-      break;
-   case GL_SMOOTH:
-      g |= GM_GouraudShading;
-      c |= ColorDDAGouraud;
-      break;
-   default:
-      return;
-   }
-
-   if ( gmesa->ColorDDAMode != c ) {
-      FLUSH_BATCH( gmesa );
-      gmesa->ColorDDAMode = c;
-
-      gmesa->dirty |= GAMMA_UPLOAD_SHADE;
-   }
-
-   if ( gmesa->GeometryMode != g ) {
-      FLUSH_BATCH( gmesa );
-      gmesa->GeometryMode = g;
-
-      gmesa->dirty |= GAMMA_UPLOAD_GEOMETRY;
-   }
-}
-
-/* =============================================================
- * Miscellaneous
- */
-
-static void gammaDDClearColor( GLcontext *ctx, const GLfloat color[4])
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   GLubyte c[4];
-   UNCLAMPED_FLOAT_TO_UBYTE(c[0], color[0]);
-   UNCLAMPED_FLOAT_TO_UBYTE(c[1], color[1]);
-   UNCLAMPED_FLOAT_TO_UBYTE(c[2], color[2]);
-   UNCLAMPED_FLOAT_TO_UBYTE(c[3], color[3]);
-
-   gmesa->ClearColor = gammaPackColor( gmesa->gammaScreen->cpp,
-                                       c[0], c[1], c[2], c[3] );
-
-   if (gmesa->gammaScreen->cpp == 2) gmesa->ClearColor |= gmesa->ClearColor<<16;
-}
-
-
-static void gammaDDLogicalOpcode( GLcontext *ctx, GLenum opcode )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-
-   if ( ctx->Color.ColorLogicOpEnabled ) {
-      gmesa->LogicalOpMode = opcode << 1 | LogicalOpModeEnable;
-   } else {
-      gmesa->LogicalOpMode = LogicalOpModeDisable;
-   }
-
-   gmesa->dirty |= GAMMA_UPLOAD_LOGICOP;
-}
-
-static void gammaDDDrawBuffer( GLcontext *ctx, GLenum mode )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   FLUSH_BATCH( gmesa );
-
-   switch ( mode ) {
-   case GL_FRONT_LEFT:
-      gmesa->drawOffset = gmesa->readOffset = 0;
-      break;
-   case GL_BACK_LEFT:
-      gmesa->drawOffset = gmesa->readOffset = gmesa->driScreen->fbHeight * gmesa->driScreen->fbWidth * gmesa->gammaScreen->cpp; 
-      break;
-   }
-}
-
-static void gammaDDReadBuffer( GLcontext *ctx, GLenum mode )
-{
-   /* XXX anything? */
-}
-
-/* =============================================================
- * Window position and viewport transformation
- */
-
-void gammaUpdateWindow( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   __DRIdrawable *dPriv = gmesa->driDrawable;
-   GLfloat xoffset = (GLfloat)dPriv->x;
-   GLfloat yoffset = gmesa->driScreen->fbHeight - (GLfloat)dPriv->y - dPriv->h;
-   const GLfloat *v = ctx->Viewport._WindowMap.m;
-
-   GLfloat sx = v[MAT_SX];
-   GLfloat tx = v[MAT_TX] + xoffset;
-   GLfloat sy = v[MAT_SY];
-   GLfloat ty = v[MAT_TY] + yoffset;
-   GLfloat sz = v[MAT_SZ] * gmesa->depth_scale;
-   GLfloat tz = v[MAT_TZ] * gmesa->depth_scale;
-
-   gmesa->dirty |= GAMMA_UPLOAD_VIEWPORT;
-
-   gmesa->ViewportScaleX = sx;
-   gmesa->ViewportScaleY = sy;
-   gmesa->ViewportScaleZ = sz;
-   gmesa->ViewportOffsetX = tx;
-   gmesa->ViewportOffsetY = ty;
-   gmesa->ViewportOffsetZ = tz;
-}
-
-
-
-static void gammaDDViewport( GLcontext *ctx, GLint x, GLint y,
-                           GLsizei width, GLsizei height )
-{
-   gammaUpdateWindow( ctx );
-}
-
-static void gammaDDDepthRange( GLcontext *ctx, GLclampd nearval,
-                             GLclampd farval )
-{
-   gammaUpdateWindow( ctx );
-}
-
-void gammaUpdateViewportOffset( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   __DRIdrawable *dPriv = gmesa->driDrawable;
-   GLfloat xoffset = (GLfloat)dPriv->x;
-   GLfloat yoffset = gmesa->driScreen->fbHeight - (GLfloat)dPriv->y - dPriv->h;
-   const GLfloat *v = ctx->Viewport._WindowMap.m;
-
-   GLfloat tx = v[MAT_TX] + xoffset;
-   GLfloat ty = v[MAT_TY] + yoffset;
-
-   if ( gmesa->ViewportOffsetX != tx ||
-        gmesa->ViewportOffsetY != ty )
-   {
-      gmesa->ViewportOffsetX = tx;
-      gmesa->ViewportOffsetY = ty;
-
-      gmesa->new_state |= GAMMA_NEW_WINDOW;
-   }
-
-   gmesa->new_state |= GAMMA_NEW_CLIP;
-}
-
-#if 0
-/* 
- * Matrix 
- */
-
-static void gammaLoadHWMatrix(GLcontext *ctx)
-{
-    gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-    const GLfloat *m;
-
-    gmesa->TransformMode &= ~XM_XformTexture;
-
-    switch (ctx->Transform.MatrixMode) {
-    case GL_MODELVIEW:
-       gmesa->TransformMode |= XM_UseModelViewMatrix;
-        m = ctx->ModelviewMatrixStack.Top->m;
-       CHECK_DMA_BUFFER(gmesa, 16);
-       WRITEF(gmesa->buf, ModelViewMatrix0,  m[0]);
-       WRITEF(gmesa->buf, ModelViewMatrix1,  m[1]);
-       WRITEF(gmesa->buf, ModelViewMatrix2,  m[2]);
-       WRITEF(gmesa->buf, ModelViewMatrix3,  m[3]);
-       WRITEF(gmesa->buf, ModelViewMatrix4,  m[4]);
-       WRITEF(gmesa->buf, ModelViewMatrix5,  m[5]);
-       WRITEF(gmesa->buf, ModelViewMatrix6,  m[6]);
-       WRITEF(gmesa->buf, ModelViewMatrix7,  m[7]);
-       WRITEF(gmesa->buf, ModelViewMatrix8,  m[8]);
-       WRITEF(gmesa->buf, ModelViewMatrix9,  m[9]);
-       WRITEF(gmesa->buf, ModelViewMatrix10, m[10]);
-       WRITEF(gmesa->buf, ModelViewMatrix11, m[11]);
-       WRITEF(gmesa->buf, ModelViewMatrix12, m[12]);
-       WRITEF(gmesa->buf, ModelViewMatrix13, m[13]);
-       WRITEF(gmesa->buf, ModelViewMatrix14, m[14]);
-       WRITEF(gmesa->buf, ModelViewMatrix15, m[15]);
-       break;
-    case GL_PROJECTION:
-        m = ctx->ProjectionMatrixStack.Top->m;
-       CHECK_DMA_BUFFER(gmesa, 16);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix0, m[0]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix1, m[1]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix2, m[2]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix3, m[3]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix4, m[4]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix5, m[5]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix6, m[6]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix7, m[7]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix8, m[8]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix9, m[9]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix10, m[10]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix11, m[11]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix12, m[12]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix13, m[13]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix14, m[14]);
-       WRITEF(gmesa->buf, ModelViewProjectionMatrix15, m[15]);
-       break;
-    case GL_TEXTURE:
-        m = ctx->TextureMatrixStack[0].Top->m;
-       CHECK_DMA_BUFFER(gmesa, 16);
-       gmesa->TransformMode |= XM_XformTexture;
-       WRITEF(gmesa->buf, TextureMatrix0,  m[0]);
-       WRITEF(gmesa->buf, TextureMatrix1,  m[1]);
-       WRITEF(gmesa->buf, TextureMatrix2,  m[2]);
-       WRITEF(gmesa->buf, TextureMatrix3,  m[3]);
-       WRITEF(gmesa->buf, TextureMatrix4,  m[4]);
-       WRITEF(gmesa->buf, TextureMatrix5,  m[5]);
-       WRITEF(gmesa->buf, TextureMatrix6,  m[6]);
-       WRITEF(gmesa->buf, TextureMatrix7,  m[7]);
-       WRITEF(gmesa->buf, TextureMatrix8,  m[8]);
-       WRITEF(gmesa->buf, TextureMatrix9,  m[9]);
-       WRITEF(gmesa->buf, TextureMatrix10,  m[10]);
-       WRITEF(gmesa->buf, TextureMatrix11,  m[11]);
-       WRITEF(gmesa->buf, TextureMatrix12,  m[12]);
-       WRITEF(gmesa->buf, TextureMatrix13,  m[13]);
-       WRITEF(gmesa->buf, TextureMatrix14,  m[14]);
-       WRITEF(gmesa->buf, TextureMatrix15,  m[15]);
-       break;
-
-    default:
-       /* ERROR!!! -- how did this happen? */
-       break;
-    }
-
-    gmesa->dirty |= GAMMA_UPLOAD_TRANSFORM;
-}
-#endif
-
-/* =============================================================
- * State enable/disable
- */
-
-static void gammaDDEnable( GLcontext *ctx, GLenum cap, GLboolean state )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   switch ( cap ) {
-   case GL_ALPHA_TEST:
-   case GL_BLEND:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_ALPHA;
-      break;
-
-   case GL_CULL_FACE:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_CULL;
-      break;
-
-   case GL_DEPTH_TEST:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_DEPTH;
-      break;
-
-   case GL_DITHER:
-      do {
-        uint32_t d = gmesa->DitherMode;
-        FLUSH_BATCH( gmesa );
-
-        if ( state ) {
-           d |=  DM_DitherEnable;
-        } else {
-           d &= ~DM_DitherEnable;
-        }
-
-        if ( gmesa->DitherMode != d ) {
-           gmesa->DitherMode = d;
-           gmesa->dirty |= GAMMA_UPLOAD_DITHER;
-        }
-      } while (0);
-      break;
-
-#if 0
-   case GL_FOG:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_FOG;
-      break;
-#endif
-
-   case GL_INDEX_LOGIC_OP:
-   case GL_COLOR_LOGIC_OP:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_LOGICOP;
-      break;
-
-#if ENABLELIGHTING
-   case GL_LIGHTING:
-      do {
-        uint32_t l = gmesa->LightingMode;
-        FLUSH_BATCH( gmesa );
-
-        if ( state ) {
-           l |=  LightingModeEnable;
-        } else {
-           l &= ~LightingModeEnable;
-        }
-
-        if ( gmesa->LightingMode != l ) {
-           gmesa->LightingMode = l;
-           gmesa->dirty |= GAMMA_UPLOAD_LIGHT;
-        }
-      } while (0);
-      break;
-
-   case GL_COLOR_MATERIAL:
-      do {
-        uint32_t m = gmesa->MaterialMode;
-        FLUSH_BATCH( gmesa );
-
-        if ( state ) {
-           m |=  MaterialModeEnable;
-        } else {
-           m &= ~MaterialModeEnable;
-        }
-
-        if ( gmesa->MaterialMode != m ) {
-           gmesa->MaterialMode = m;
-           gmesa->dirty |= GAMMA_UPLOAD_LIGHT;
-        }
-      } while (0);
-      break;
-#endif
-
-   case GL_LINE_SMOOTH:
-      FLUSH_BATCH( gmesa );
-      if ( state ) {
-         gmesa->AntialiasMode |= AntialiasModeEnable;
-         gmesa->LineMode |= LM_AntialiasEnable;
-      } else {
-         gmesa->AntialiasMode &= ~AntialiasModeEnable;
-         gmesa->LineMode &= ~LM_AntialiasEnable;
-      }
-      gmesa->dirty |= GAMMA_UPLOAD_LINEMODE;
-      break;
-
-   case GL_POINT_SMOOTH:
-      FLUSH_BATCH( gmesa );
-      if ( state ) {
-         gmesa->AntialiasMode |= AntialiasModeEnable;
-         gmesa->PointMode |= PM_AntialiasEnable;
-      } else {
-         gmesa->AntialiasMode &= ~AntialiasModeEnable;
-         gmesa->PointMode &= ~PM_AntialiasEnable;
-      }
-      gmesa->dirty |= GAMMA_UPLOAD_POINTMODE;
-      break;
-
-   case GL_POLYGON_SMOOTH:
-      FLUSH_BATCH( gmesa );
-      if ( state ) {
-         gmesa->AntialiasMode |= AntialiasModeEnable;
-         gmesa->TriangleMode |= TM_AntialiasEnable;
-      } else {
-         gmesa->AntialiasMode &= ~AntialiasModeEnable;
-         gmesa->TriangleMode &= ~TM_AntialiasEnable;
-      }
-      gmesa->dirty |= GAMMA_UPLOAD_TRIMODE;
-      break;
-
-   case GL_SCISSOR_TEST:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_CLIP;
-      break;
-
-   case GL_POLYGON_OFFSET_FILL:
-   case GL_POLYGON_OFFSET_POINT:
-   case GL_POLYGON_OFFSET_LINE:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_POLYGON;
-      break;
-
-   case GL_LINE_STIPPLE:
-      FLUSH_BATCH( gmesa );
-      if ( state )
-         gmesa->LineMode |= LM_StippleEnable;
-      else
-         gmesa->LineMode &= ~LM_StippleEnable;
-      gmesa->dirty |= GAMMA_UPLOAD_LINEMODE;
-      break;
-
-   case GL_POLYGON_STIPPLE:
-      FLUSH_BATCH( gmesa );
-      gmesa->new_state |= GAMMA_NEW_STIPPLE;
-      break;
-
-   default:
-      return;
-   }
-}
-
-/* =============================================================
- * State initialization, management
- */
-
-
-/*
- * Load the current context's state into the hardware.
- *
- * NOTE: Be VERY careful about ensuring the context state is marked for
- * upload, the only place it shouldn't be uploaded is when the setup
- * state has changed in ReducedPrimitiveChange as this comes right after
- * a state update.
- *
- * Blits of any type should always upload the context and masks after
- * they are done.
- */
-void gammaEmitHwState( gammaContextPtr gmesa )
-{
-    if (!gmesa->driDrawable) return;
-
-    if (!gmesa->dirty) return;
-
-#ifdef DO_VALIDATE
-    /* Flush any partially filled buffers */
-    FLUSH_DMA_BUFFER(gmesa);
-
-    DRM_SPINLOCK(&gmesa->driScreen->pSAREA->drawable_lock,
-                gmesa->driScreen->drawLockID);
-    VALIDATE_DRAWABLE_INFO_NO_LOCK(gmesa);
-#endif
-
-    if (gmesa->dirty & GAMMA_UPLOAD_VIEWPORT) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_VIEWPORT;
-       CHECK_DMA_BUFFER(gmesa, 6);
-       WRITEF(gmesa->buf, ViewPortOffsetX, gmesa->ViewportOffsetX);
-       WRITEF(gmesa->buf, ViewPortOffsetY, gmesa->ViewportOffsetY);
-       WRITEF(gmesa->buf, ViewPortOffsetZ, gmesa->ViewportOffsetZ);
-       WRITEF(gmesa->buf, ViewPortScaleX, gmesa->ViewportScaleX);
-       WRITEF(gmesa->buf, ViewPortScaleY, gmesa->ViewportScaleY);
-       WRITEF(gmesa->buf, ViewPortScaleZ, gmesa->ViewportScaleZ);
-    }
-    if ( (gmesa->dirty & GAMMA_UPLOAD_POINTMODE) ||
-        (gmesa->dirty & GAMMA_UPLOAD_LINEMODE) ||
-        (gmesa->dirty & GAMMA_UPLOAD_TRIMODE) ) {
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, AntialiasMode, gmesa->AntialiasMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_POINTMODE) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_POINTMODE;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, PointMode, gmesa->PointMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_LINEMODE) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_LINEMODE;
-       CHECK_DMA_BUFFER(gmesa, 2);
-       WRITE(gmesa->buf, LineMode, gmesa->LineMode);
-       WRITE(gmesa->buf, LineStippleMode, gmesa->LineMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_TRIMODE) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_TRIMODE;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TriangleMode, gmesa->TriangleMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_FOG) {
-       GLchan c[3], col;
-       UNCLAMPED_FLOAT_TO_RGB_CHAN( c, gmesa->glCtx->Fog.Color );
-       col = gammaPackColor(4, c[0], c[1], c[2], 0);
-       gmesa->dirty &= ~GAMMA_UPLOAD_FOG;
-       CHECK_DMA_BUFFER(gmesa, 5);
-#if 0
-       WRITE(gmesa->buf, FogMode, gmesa->FogMode);
-       WRITE(gmesa->buf, FogColor, col);
-       WRITEF(gmesa->buf, FStart, gmesa->glCtx->Fog.Start);
-#endif
-       WRITEF(gmesa->buf, FogEnd, gmesa->glCtx->Fog.End);
-       WRITEF(gmesa->buf, FogDensity, gmesa->glCtx->Fog.Density);
-       WRITEF(gmesa->buf, FogScale, 
-               1.0f/(gmesa->glCtx->Fog.End - gmesa->glCtx->Fog.Start));
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_DITHER) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_DITHER;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, DitherMode, gmesa->DitherMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_LOGICOP) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_LOGICOP;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, LogicalOpMode, gmesa->LogicalOpMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_CLIP) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_CLIP;
-       CHECK_DMA_BUFFER(gmesa, 3);
-       WRITE(gmesa->buf, ScissorMinXY, gmesa->ScissorMinXY);
-       WRITE(gmesa->buf, ScissorMaxXY, gmesa->ScissorMaxXY);
-       WRITE(gmesa->buf, ScissorMode, gmesa->ScissorMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_MASKS) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_MASKS;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, FBHardwareWriteMask, gmesa->FBHardwareWriteMask);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_ALPHA) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_ALPHA;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, AlphaTestMode, gmesa->AlphaTestMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_BLEND) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_BLEND;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, AlphaBlendMode, gmesa->AlphaBlendMode);
-    } 
-    CHECK_DMA_BUFFER(gmesa, 1);
-    if (gmesa->glCtx->Color.BlendEnabled || gmesa->glCtx->Color.AlphaEnabled) {
-       WRITE(gmesa->buf, FBReadMode, gmesa->FBReadMode | gmesa->AB_FBReadMode_Save);
-    } else {
-       WRITE(gmesa->buf, FBReadMode, gmesa->FBReadMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_LIGHT) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_LIGHT;
-       CHECK_DMA_BUFFER(gmesa, 2);
-       WRITE(gmesa->buf, LightingMode, gmesa->LightingMode);
-       WRITE(gmesa->buf, MaterialMode, gmesa->MaterialMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_SHADE) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_SHADE;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, ColorDDAMode, gmesa->ColorDDAMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_POLYGON) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_POLYGON;
-       CHECK_DMA_BUFFER(gmesa, 2);
-       WRITEF(gmesa->buf, PolygonOffsetBias, gmesa->glCtx->Polygon.OffsetUnits);
-       WRITEF(gmesa->buf, PolygonOffsetFactor, gmesa->glCtx->Polygon.OffsetFactor);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_STIPPLE) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_STIPPLE;
-       CHECK_DMA_BUFFER(gmesa, 33);
-       WRITE(gmesa->buf, AreaStippleMode, gmesa->AreaStippleMode);
-       WRITE(gmesa->buf, AreaStipplePattern0, gmesa->glCtx->PolygonStipple[0]);
-       WRITE(gmesa->buf, AreaStipplePattern1, gmesa->glCtx->PolygonStipple[1]);
-       WRITE(gmesa->buf, AreaStipplePattern2, gmesa->glCtx->PolygonStipple[2]);
-       WRITE(gmesa->buf, AreaStipplePattern3, gmesa->glCtx->PolygonStipple[3]);
-       WRITE(gmesa->buf, AreaStipplePattern4, gmesa->glCtx->PolygonStipple[4]);
-       WRITE(gmesa->buf, AreaStipplePattern5, gmesa->glCtx->PolygonStipple[5]);
-       WRITE(gmesa->buf, AreaStipplePattern6, gmesa->glCtx->PolygonStipple[6]);
-       WRITE(gmesa->buf, AreaStipplePattern7, gmesa->glCtx->PolygonStipple[7]);
-       WRITE(gmesa->buf, AreaStipplePattern8, gmesa->glCtx->PolygonStipple[8]);
-       WRITE(gmesa->buf, AreaStipplePattern9, gmesa->glCtx->PolygonStipple[9]);
-       WRITE(gmesa->buf, AreaStipplePattern10, gmesa->glCtx->PolygonStipple[10]);
-       WRITE(gmesa->buf, AreaStipplePattern11, gmesa->glCtx->PolygonStipple[11]);
-       WRITE(gmesa->buf, AreaStipplePattern12, gmesa->glCtx->PolygonStipple[12]);
-       WRITE(gmesa->buf, AreaStipplePattern13, gmesa->glCtx->PolygonStipple[13]);
-       WRITE(gmesa->buf, AreaStipplePattern14, gmesa->glCtx->PolygonStipple[14]);
-       WRITE(gmesa->buf, AreaStipplePattern15, gmesa->glCtx->PolygonStipple[15]);
-       WRITE(gmesa->buf, AreaStipplePattern16, gmesa->glCtx->PolygonStipple[16]);
-       WRITE(gmesa->buf, AreaStipplePattern17, gmesa->glCtx->PolygonStipple[17]);
-       WRITE(gmesa->buf, AreaStipplePattern18, gmesa->glCtx->PolygonStipple[18]);
-       WRITE(gmesa->buf, AreaStipplePattern19, gmesa->glCtx->PolygonStipple[19]);
-       WRITE(gmesa->buf, AreaStipplePattern20, gmesa->glCtx->PolygonStipple[20]);
-       WRITE(gmesa->buf, AreaStipplePattern21, gmesa->glCtx->PolygonStipple[21]);
-       WRITE(gmesa->buf, AreaStipplePattern22, gmesa->glCtx->PolygonStipple[22]);
-       WRITE(gmesa->buf, AreaStipplePattern23, gmesa->glCtx->PolygonStipple[23]);
-       WRITE(gmesa->buf, AreaStipplePattern24, gmesa->glCtx->PolygonStipple[24]);
-       WRITE(gmesa->buf, AreaStipplePattern25, gmesa->glCtx->PolygonStipple[25]);
-       WRITE(gmesa->buf, AreaStipplePattern26, gmesa->glCtx->PolygonStipple[26]);
-       WRITE(gmesa->buf, AreaStipplePattern27, gmesa->glCtx->PolygonStipple[27]);
-       WRITE(gmesa->buf, AreaStipplePattern28, gmesa->glCtx->PolygonStipple[28]);
-       WRITE(gmesa->buf, AreaStipplePattern29, gmesa->glCtx->PolygonStipple[29]);
-       WRITE(gmesa->buf, AreaStipplePattern30, gmesa->glCtx->PolygonStipple[30]);
-       WRITE(gmesa->buf, AreaStipplePattern31, gmesa->glCtx->PolygonStipple[31]);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_DEPTH) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_DEPTH;
-       CHECK_DMA_BUFFER(gmesa, 4);
-       WRITE(gmesa->buf, DepthMode,  gmesa->DepthMode);
-       WRITE(gmesa->buf, DeltaMode,  gmesa->DeltaMode);
-       WRITE(gmesa->buf, GLINTWindow,gmesa->Window | (gmesa->FrameCount << 9));
-       WRITE(gmesa->buf, LBReadMode, gmesa->LBReadMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_GEOMETRY) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_GEOMETRY;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, GeometryMode, gmesa->GeometryMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_TRANSFORM) {
-       gmesa->dirty &= ~GAMMA_UPLOAD_TRANSFORM;
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TransformMode, gmesa->TransformMode);
-    }
-    if (gmesa->dirty & GAMMA_UPLOAD_TEX0) {
-       gammaTextureObjectPtr curTex = gmesa->CurrentTexObj[0];
-       gmesa->dirty &= ~GAMMA_UPLOAD_TEX0;
-       if (curTex) {
-       CHECK_DMA_BUFFER(gmesa, 21);
-       WRITE(gmesa->buf, GeometryMode, gmesa->GeometryMode | GM_TextureEnable);
-       WRITE(gmesa->buf, DeltaMode, gmesa->DeltaMode | DM_TextureEnable);
-       WRITE(gmesa->buf, TextureAddressMode, curTex->TextureAddressMode);
-       WRITE(gmesa->buf, TextureReadMode, curTex->TextureReadMode);
-       WRITE(gmesa->buf, TextureColorMode, curTex->TextureColorMode);
-       WRITE(gmesa->buf, TextureFilterMode, curTex->TextureFilterMode);
-       WRITE(gmesa->buf, TextureFormat, curTex->TextureFormat);
-       WRITE(gmesa->buf, GLINTBorderColor, curTex->TextureBorderColor);
-       WRITE(gmesa->buf, TxBaseAddr0, curTex->TextureBaseAddr[0]);
-       WRITE(gmesa->buf, TxBaseAddr1, curTex->TextureBaseAddr[1]);
-       WRITE(gmesa->buf, TxBaseAddr2, curTex->TextureBaseAddr[2]);
-       WRITE(gmesa->buf, TxBaseAddr3, curTex->TextureBaseAddr[3]);
-       WRITE(gmesa->buf, TxBaseAddr4, curTex->TextureBaseAddr[4]);
-       WRITE(gmesa->buf, TxBaseAddr5, curTex->TextureBaseAddr[5]);
-       WRITE(gmesa->buf, TxBaseAddr6, curTex->TextureBaseAddr[6]);
-       WRITE(gmesa->buf, TxBaseAddr7, curTex->TextureBaseAddr[7]);
-       WRITE(gmesa->buf, TxBaseAddr8, curTex->TextureBaseAddr[8]);
-       WRITE(gmesa->buf, TxBaseAddr9, curTex->TextureBaseAddr[9]);
-       WRITE(gmesa->buf, TxBaseAddr10, curTex->TextureBaseAddr[10]);
-       WRITE(gmesa->buf, TxBaseAddr11, curTex->TextureBaseAddr[11]);
-       WRITE(gmesa->buf, TextureCacheControl, (TCC_Enable | TCC_Invalidate));
-       } else {
-       CHECK_DMA_BUFFER(gmesa, 6);
-       WRITE(gmesa->buf, GeometryMode, gmesa->GeometryMode);
-       WRITE(gmesa->buf, DeltaMode, gmesa->DeltaMode);
-       WRITE(gmesa->buf, TextureAddressMode, TextureAddressModeDisable);
-       WRITE(gmesa->buf, TextureReadMode, TextureReadModeDisable);
-       WRITE(gmesa->buf, TextureFilterMode, TextureFilterModeDisable);
-       WRITE(gmesa->buf, TextureColorMode, TextureColorModeDisable);
-       }
-    }
-#ifdef DO_VALIDATE
-    PROCESS_DMA_BUFFER_TOP_HALF(gmesa);
-
-    DRM_SPINUNLOCK(&gmesa->driScreen->pSAREA->drawable_lock,
-                  gmesa->driScreen->drawLockID);
-    VALIDATE_DRAWABLE_INFO_NO_LOCK_POST(gmesa);
-
-    PROCESS_DMA_BUFFER_BOTTOM_HALF(gmesa);
-#endif
-}
-
-void gammaDDUpdateHWState( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   int new_state = gmesa->new_state;
-
-   if ( new_state )
-   {
-      FLUSH_BATCH( gmesa );
-
-      gmesa->new_state = 0;
-
-      /* Update the various parts of the context's state.
-       */
-      if ( new_state & GAMMA_NEW_ALPHA )
-        gammaUpdateAlphaMode( ctx );
-
-      if ( new_state & GAMMA_NEW_DEPTH )
-        gammaUpdateZMode( ctx );
-
-      if ( new_state & GAMMA_NEW_FOG )
-        gammaUpdateFogAttrib( ctx );
-
-      if ( new_state & GAMMA_NEW_CLIP )
-        gammaUpdateClipping( ctx );
-
-      if ( new_state & GAMMA_NEW_POLYGON )
-        gammaUpdatePolygon( ctx );
-
-      if ( new_state & GAMMA_NEW_CULL )
-        gammaUpdateCull( ctx );
-
-      if ( new_state & GAMMA_NEW_MASKS )
-        gammaUpdateMasks( ctx );
-
-      if ( new_state & GAMMA_NEW_WINDOW )
-        gammaUpdateWindow( ctx );
-
-      if ( new_state & GAMMA_NEW_STIPPLE )
-        gammaUpdateStipple( ctx );
-   }
-
-   /* HACK ! */
-
-   gammaEmitHwState( gmesa );
-}
-
-
-static void gammaDDUpdateState( GLcontext *ctx, GLuint new_state )
-{
-   _swrast_InvalidateState( ctx, new_state );
-   _swsetup_InvalidateState( ctx, new_state );
-   _vbo_InvalidateState( ctx, new_state );
-   _tnl_InvalidateState( ctx, new_state );
-   GAMMA_CONTEXT(ctx)->new_gl_state |= new_state;
-}
-
-
-/* Initialize the context's hardware state.
- */
-void gammaDDInitState( gammaContextPtr gmesa )
-{
-   gmesa->new_state = 0;
-}
-
-/* Initialize the driver's state functions.
- */
-void gammaDDInitStateFuncs( GLcontext *ctx )
-{
-   ctx->Driver.UpdateState             = gammaDDUpdateState;
-
-   ctx->Driver.Clear                   = gammaDDClear;
-   ctx->Driver.ClearIndex              = NULL;
-   ctx->Driver.ClearColor              = gammaDDClearColor;
-   ctx->Driver.DrawBuffer              = gammaDDDrawBuffer;
-   ctx->Driver.ReadBuffer              = gammaDDReadBuffer;
-
-   ctx->Driver.IndexMask               = NULL;
-   ctx->Driver.ColorMask               = gammaDDColorMask;
-
-   ctx->Driver.AlphaFunc               = gammaDDAlphaFunc;
-   ctx->Driver.BlendEquationSeparate   = gammaDDBlendEquationSeparate;
-   ctx->Driver.BlendFuncSeparate       = gammaDDBlendFuncSeparate;
-   ctx->Driver.ClearDepth              = gammaDDClearDepth;
-   ctx->Driver.CullFace                        = gammaDDCullFace;
-   ctx->Driver.FrontFace               = gammaDDFrontFace;
-   ctx->Driver.DepthFunc               = gammaDDDepthFunc;
-   ctx->Driver.DepthMask               = gammaDDDepthMask;
-   ctx->Driver.DepthRange              = gammaDDDepthRange;
-   ctx->Driver.Enable                  = gammaDDEnable;
-   ctx->Driver.Finish                  = gammaDDFinish;
-   ctx->Driver.Flush                   = gammaDDFlush;
-#if 0
-   ctx->Driver.Fogfv                   = gammaDDFogfv;
-#endif
-   ctx->Driver.Hint                    = NULL;
-   ctx->Driver.LineWidth               = gammaDDLineWidth;
-   ctx->Driver.LineStipple             = gammaDDLineStipple;
-#if ENABLELIGHTING
-   ctx->Driver.Lightfv                 = gammaDDLightfv; 
-   ctx->Driver.LightModelfv            = gammaDDLightModelfv;
-#endif
-   ctx->Driver.LogicOpcode             = gammaDDLogicalOpcode;
-   ctx->Driver.PointSize               = gammaDDPointSize;
-   ctx->Driver.PolygonMode             = gammaDDPolygonMode;
-   ctx->Driver.PolygonStipple          = gammaDDPolygonStipple;
-   ctx->Driver.Scissor                 = gammaDDScissor;
-   ctx->Driver.ShadeModel              = gammaDDShadeModel;
-   ctx->Driver.Viewport                        = gammaDDViewport;
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_tex.c b/src/mesa/drivers/dri/gamma/gamma_tex.c
deleted file mode 100644 (file)
index bef8cf2..0000000
+++ /dev/null
@@ -1,434 +0,0 @@
-
-#include "main/glheader.h"
-#include "main/mtypes.h"
-#include "main/colormac.h"
-#include "main/imports.h"
-#include "main/simple_list.h"
-#include "main/enums.h"
-#include "main/mm.h"
-#include "main/texstore.h"
-#include "main/teximage.h"
-#include "main/texobj.h"
-
-#include "swrast/swrast.h"
-
-#include "gamma_context.h"
-
-
-/*
- * Compute the 'S2.4' lod bias factor from the floating point OpenGL bias.
- */
-#if 0
-static GLuint gammaComputeLodBias(GLfloat bias)
-{
-   return bias;
-}
-#endif
-
-static void gammaSetTexWrapping(gammaTextureObjectPtr t, 
-                              GLenum wraps, GLenum wrapt)
-{
-   uint32_t t1 = t->TextureAddressMode;
-   uint32_t t2 = t->TextureReadMode;
-
-   t1 &= ~(TAM_SWrap_Mask | TAM_TWrap_Mask);
-   t2 &= ~(TRM_UWrap_Mask | TRM_VWrap_Mask);
-   
-   if (wraps != GL_CLAMP) {
-      t1 |= TAM_SWrap_Repeat;
-      t2 |= TRM_UWrap_Repeat;
-   }
-
-   if (wrapt != GL_CLAMP) {
-      t1 |= TAM_TWrap_Repeat;
-      t2 |= TRM_VWrap_Repeat;
-   }
-
-   t->TextureAddressMode = t1;
-   t->TextureReadMode = t2;
-}
-
-
-static void gammaSetTexFilter(gammaContextPtr gmesa, 
-                            gammaTextureObjectPtr t, 
-                            GLenum minf, GLenum magf,
-                             GLfloat bias)
-{
-   uint32_t t1 = t->TextureAddressMode;
-   uint32_t t2 = t->TextureReadMode;
-
-   t2 &= ~(TRM_Mag_Mask | TRM_Min_Mask);
-
-   switch (minf) {
-   case GL_NEAREST:
-      t1 &= ~TAM_LODEnable;
-      t2 &= ~TRM_MipMapEnable;
-      t2 |= TRM_Min_Nearest;
-      break;
-   case GL_LINEAR:
-      t1 &= ~TAM_LODEnable;
-      t2 &= ~TRM_MipMapEnable;
-      t2 |= TRM_Min_Linear;
-      break;
-   case GL_NEAREST_MIPMAP_NEAREST:
-      t2 |= TRM_Min_NearestMMNearest;
-      break;
-   case GL_LINEAR_MIPMAP_NEAREST:
-      t2 |= TRM_Min_LinearMMNearest;
-      break;
-   case GL_NEAREST_MIPMAP_LINEAR:
-      t2 |= TRM_Min_NearestMMLinear;
-      break;
-   case GL_LINEAR_MIPMAP_LINEAR:
-      t2 |= TRM_Min_LinearMMLinear;
-      break;
-   default:
-      break;
-   }
-
-   switch (magf) {
-   case GL_NEAREST:
-      t2 |= TRM_Mag_Nearest;
-      break;
-   case GL_LINEAR:
-      t2 |= TRM_Mag_Linear;
-      break;
-   default:
-      break;
-   }  
-
-   t->TextureAddressMode = t1;
-   t->TextureReadMode = t2;
-}
-
-
-static void gammaSetTexBorderColor(gammaContextPtr gmesa,
-                                 gammaTextureObjectPtr t, 
-                                  const GLfloat color[4])
-{
-   GLubyte c[4];
-   CLAMPED_FLOAT_TO_UBYTE(c[0], color[0]);
-   CLAMPED_FLOAT_TO_UBYTE(c[1], color[1]);
-   CLAMPED_FLOAT_TO_UBYTE(c[2], color[2]);
-   CLAMPED_FLOAT_TO_UBYTE(c[3], color[3]);
-   t->TextureBorderColor = PACK_COLOR_8888(c[0], c[1], c[2], c[3]);
-}
-
-
-static void gammaTexParameter( GLcontext *ctx, GLenum target,
-                             struct gl_texture_object *tObj,
-                             GLenum pname, const GLfloat *params )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr) tObj->DriverData;
-   if (!t)
-      return;
-
-   /* Can't do the update now as we don't know whether to flush
-    * vertices or not.  Setting gmesa->new_state means that
-    * gammaUpdateTextureState() will be called before any triangles are
-    * rendered.  If a statechange has occurred, it will be detected at
-    * that point, and buffered vertices flushed.  
-    */
-   switch (pname) {
-   case GL_TEXTURE_MIN_FILTER:
-   case GL_TEXTURE_MAG_FILTER:
-      {
-         GLfloat bias = ctx->Texture.Unit[ctx->Texture.CurrentUnit].LodBias;
-         gammaSetTexFilter( gmesa, t, tObj->MinFilter, tObj->MagFilter, bias );
-      }
-      break;
-
-   case GL_TEXTURE_WRAP_S:
-   case GL_TEXTURE_WRAP_T:
-      gammaSetTexWrapping( t, tObj->WrapS, tObj->WrapT );
-      break;
-  
-   case GL_TEXTURE_BORDER_COLOR:
-      gammaSetTexBorderColor( gmesa, t, tObj->BorderColor.f );
-      break;
-
-   case GL_TEXTURE_BASE_LEVEL:
-   case GL_TEXTURE_MAX_LEVEL:
-   case GL_TEXTURE_MIN_LOD:
-   case GL_TEXTURE_MAX_LOD:
-      /* This isn't the most efficient solution but there doesn't appear to
-       * be a nice alternative for Radeon.  Since there's no LOD clamping,
-       * we just have to rely on loading the right subset of mipmap levels
-       * to simulate a clamped LOD.
-       */
-      gammaSwapOutTexObj( gmesa, t );
-      break;
-
-   default:
-      return;
-   }
-
-   if (t == gmesa->CurrentTexObj[0])
-      gmesa->dirty |= GAMMA_UPLOAD_TEX0;
-
-#if 0
-   if (t == gmesa->CurrentTexObj[1]) {
-      gmesa->dirty |= GAMMA_UPLOAD_TEX1;
-   }
-#endif
-}
-
-
-static void gammaTexEnv( GLcontext *ctx, GLenum target, 
-                       GLenum pname, const GLfloat *param )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT( ctx );
-   GLuint unit = ctx->Texture.CurrentUnit;
-
-   /* Only one env color.  Need a fallback if env colors are different
-    * and texture setup references env color in both units.  
-    */
-   switch (pname) {
-   case GL_TEXTURE_ENV_COLOR: {
-      struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
-      GLfloat *fc = texUnit->EnvColor;
-      GLuint r, g, b, a, col;
-      CLAMPED_FLOAT_TO_UBYTE(r, fc[0]);
-      CLAMPED_FLOAT_TO_UBYTE(g, fc[1]);
-      CLAMPED_FLOAT_TO_UBYTE(b, fc[2]);
-      CLAMPED_FLOAT_TO_UBYTE(a, fc[3]);
-
-      col = ((a << 24) | 
-            (r << 16) | 
-            (g <<  8) | 
-            (b <<  0));
-
-      break;
-   }
-   case GL_TEXTURE_ENV_MODE:
-      gmesa->TexEnvImageFmt[unit] = 0; /* force recalc of env state */
-      break;
-
-   case GL_TEXTURE_LOD_BIAS_EXT:
-#if 0  /* ?!?!?! */
-      {
-         struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current;
-         gammaTextureObjectPtr t = (gammaTextureObjectPtr) tObj->DriverData;
-         (void) t;
-        /* XXX Looks like there's something missing here */
-      }
-#endif
-      break;
-
-   default:
-      break;
-   }
-} 
-
-#if 0
-static void gammaTexImage1D( GLcontext *ctx, GLenum target, GLint level,
-                           GLint internalFormat,
-                           GLint width, GLint border,
-                           GLenum format, GLenum type, 
-                           const GLvoid *pixels,
-                           const struct gl_pixelstore_attrib *pack,
-                           struct gl_texture_object *texObj,
-                           struct gl_texture_image *texImage )
-{
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr) texObj->DriverData;
-   if (t) {
-      gammaSwapOutTexObj( GAMMA_CONTEXT(ctx), t );
-   }
-   _mesa_store_teximage1d( ctx, target, level, internalFormat,
-                          width, border, format, type,
-                          pixels, pack, texObj, texImage );
-}
-#endif
-
-#if 0
-static void gammaTexSubImage1D( GLcontext *ctx, 
-                              GLenum target,
-                              GLint level,     
-                              GLint xoffset,
-                              GLsizei width,
-                              GLenum format, GLenum type,
-                              const GLvoid *pixels,
-                              const struct gl_pixelstore_attrib *pack,
-                              struct gl_texture_object *texObj,
-                              struct gl_texture_image *texImage )
-{
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr) texObj->DriverData;
-   if (t) {
-      gammaSwapOutTexObj( GAMMA_CONTEXT(ctx), t );
-   }
-   _mesa_store_texsubimage1d(ctx, target, level, xoffset, width, 
-                            format, type, pixels, pack, texObj,
-                            texImage);
-}
-#endif
-
-static void gammaTexImage2D( GLcontext *ctx, GLenum target, GLint level,
-                           GLint internalFormat,
-                           GLint width, GLint height, GLint border,
-                           GLenum format, GLenum type, const GLvoid *pixels,
-                           const struct gl_pixelstore_attrib *packing,
-                           struct gl_texture_object *texObj,
-                           struct gl_texture_image *texImage )
-{
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr) texObj->DriverData;
-   if (t) {
-      gammaSwapOutTexObj( GAMMA_CONTEXT(ctx), t );
-   }
-   _mesa_store_teximage2d( ctx, target, level, internalFormat,
-                          width, height, border, format, type,
-                          pixels, packing, texObj, texImage );
-}
-
-static void gammaTexSubImage2D( GLcontext *ctx, 
-                              GLenum target,
-                              GLint level,     
-                              GLint xoffset, GLint yoffset,
-                              GLsizei width, GLsizei height,
-                              GLenum format, GLenum type,
-                              const GLvoid *pixels,
-                              const struct gl_pixelstore_attrib *packing,
-                              struct gl_texture_object *texObj,
-                              struct gl_texture_image *texImage )
-{
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr) texObj->DriverData;
-   if (t) {
-      gammaSwapOutTexObj( GAMMA_CONTEXT(ctx), t );
-   }
-   _mesa_store_texsubimage2d(ctx, target, level, xoffset, yoffset, width, 
-                            height, format, type, pixels, packing, texObj,
-                            texImage);
-}
-
-static void gammaBindTexture( GLcontext *ctx, GLenum target,
-                            struct gl_texture_object *tObj )
-{
-      gammaContextPtr gmesa = GAMMA_CONTEXT( ctx );
-      gammaTextureObjectPtr t = (gammaTextureObjectPtr) tObj->DriverData;
-
-      if (!t) {
-         GLfloat bias = ctx->Texture.Unit[ctx->Texture.CurrentUnit].LodBias;
-        t = CALLOC_STRUCT(gamma_texture_object_t);
-
-        /* Initialize non-image-dependent parts of the state:
-         */
-        t->globj = tObj;
-
-        t->TextureAddressMode = TextureAddressModeEnable | TAM_Operation_3D |
-                          TAM_DY_Enable | TAM_LODEnable;
-         t->TextureReadMode = TextureReadModeEnable | TRM_PrimaryCacheEnable |
-                       TRM_MipMapEnable | TRM_BorderClamp | TRM_Border;
-         t->TextureColorMode = TextureColorModeEnable;
-         t->TextureFilterMode = TextureFilterModeEnable;
-
-         if (target == GL_TEXTURE_2D) {
-            t->TextureAddressMode |= TAM_TexMapType_2D;
-            t->TextureReadMode |= TRM_TexMapType_2D;
-         }
-         else if (target == GL_TEXTURE_1D) {
-            t->TextureAddressMode |= TAM_TexMapType_1D;
-            t->TextureReadMode |= TRM_TexMapType_1D;
-         }
-
-         t->TextureColorMode = TextureColorModeEnable;
-
-         t->TextureFilterMode = TextureFilterModeEnable;
-
-#ifdef MESA_LITTLE_ENDIAN
-         t->TextureFormat = (TF_LittleEndian |
-#else
-         t->TextureFormat = (TF_BigEndian |
-#endif
-                       TF_ColorOrder_RGB |
-                       TF_OutputFmt_Texel);
-
-        t->dirty_images = ~0;
-
-        tObj->DriverData = t;
-        make_empty_list( t );
-
-        gammaSetTexWrapping( t, tObj->WrapS, tObj->WrapT );
-        gammaSetTexFilter( gmesa, t, tObj->MinFilter, tObj->MagFilter, bias );
-        gammaSetTexBorderColor( gmesa, t, tObj->BorderColor.f );
-      }
-}
-
-static void gammaDeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj )
-{
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr)tObj->DriverData;
-
-   if (t) {
-      gammaContextPtr gmesa = GAMMA_CONTEXT( ctx );
-#if 0
-      if (gmesa)
-         GAMMA_FIREVERTICES( gmesa );
-#endif
-      gammaDestroyTexObj( gmesa, t );
-      tObj->DriverData = 0;
-   }
-   /* Free mipmap images and the texture object itself */
-   _mesa_delete_texture_object(ctx, tObj);
-}
-
-static GLboolean gammaIsTextureResident( GLcontext *ctx, 
-                                       struct gl_texture_object *tObj )
-{
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr)tObj->DriverData;
-   return t && t->MemBlock;
-}
-
-#ifdef UNUSED
-/**
- * Allocate a new texture object.
- * Called via ctx->Driver.NewTextureObject.
- * Note: this function will be called during context creation to
- * allocate the default texture objects.
- * Note: we could use containment here to 'derive' the driver-specific
- * texture object from the core mesa gl_texture_object.  Not done at this time.
- */
-static struct gl_texture_object *
-gammaNewTextureObject( GLcontext *ctx, GLuint name, GLenum target )
-{
-   struct gl_texture_object *obj;
-   obj = _mesa_new_texture_object(ctx, name, target);
-   return obj;
-}
-#endif
-
-void gammaInitTextureObjects( GLcontext *ctx )
-{
-   struct gl_texture_object *texObj;
-   GLuint tmp = ctx->Texture.CurrentUnit;
-
-   ctx->Texture.CurrentUnit = 0;
-
-   texObj = ctx->Texture.Unit[0].CurrentTex[TEXTURE_1D_INDEX];
-   gammaBindTexture( ctx, GL_TEXTURE_1D, texObj );
-
-   texObj = ctx->Texture.Unit[0].CurrentTex[TEXTURE_2D_INDEX];
-   gammaBindTexture( ctx, GL_TEXTURE_2D, texObj );
-
-#if 0
-   ctx->Texture.CurrentUnit = 1;
-
-   texObj = ctx->Texture.Unit[1].CurrentTex[TEXTURE_1D_INDEX];
-   gammaBindTexture( ctx, GL_TEXTURE_1D, texObj );
-
-   texObj = ctx->Texture.Unit[1].CurrentTex[TEXTURE_2D_INDEX];
-   gammaBindTexture( ctx, GL_TEXTURE_2D, texObj );
-#endif
-
-   ctx->Texture.CurrentUnit = tmp;
-}
-
-
-void gammaDDInitTextureFuncs( struct dd_function_table *functions )
-{
-   functions->TexEnv = gammaTexEnv;
-   functions->TexImage2D = gammaTexImage2D;
-   functions->TexSubImage2D = gammaTexSubImage2D;
-   functions->BindTexture = gammaBindTexture;
-   functions->DeleteTexture = gammaDeleteTexture;
-   functions->TexParameter = gammaTexParameter;
-   functions->IsTextureResident = gammaIsTextureResident;
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_texmem.c b/src/mesa/drivers/dri/gamma/gamma_texmem.c
deleted file mode 100644 (file)
index 45a0c01..0000000
+++ /dev/null
@@ -1,535 +0,0 @@
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "main/glheader.h"
-#include "main/colormac.h"
-#include "main/macros.h"
-#include "main/mtypes.h"
-#include "main/simple_list.h"
-#include "main/enums.h"
-
-#include "main/mm.h"
-#include "glint_dri.h"
-#include "gamma_context.h"
-#include "gamma_lock.h"
-#include "gamma_macros.h"
-
-void gammaDestroyTexObj(gammaContextPtr gmesa, gammaTextureObjectPtr t)
-{
-   if (!t) return;
-
-   /* This is sad - need to sync *in case* we upload a texture
-    * to this newly free memory...
-    */
-   if (t->MemBlock) {
-      mmFreeMem(t->MemBlock);
-      t->MemBlock = 0;
-
-      if (gmesa && t->age > gmesa->dirtyAge)
-        gmesa->dirtyAge = t->age;
-   }
-
-   if (t->globj)
-      t->globj->DriverData = 0;
-
-   if (gmesa) {
-      if (gmesa->CurrentTexObj[0] == t) {
-         gmesa->CurrentTexObj[0] = 0;
-         gmesa->dirty &= ~GAMMA_UPLOAD_TEX0;
-      }
-
-#if 0
-      if (gmesa->CurrentTexObj[1] == t) {
-         gmesa->CurrentTexObj[1] = 0;
-         gmesa->dirty &= ~GAMMA_UPLOAD_TEX1;
-      }
-#endif
-   }
-
-   remove_from_list(t);
-   free(t);
-}
-
-
-void gammaSwapOutTexObj(gammaContextPtr gmesa, gammaTextureObjectPtr t)
-{
-/*     fprintf(stderr, "%s\n", __FUNCTION__); */
-
-   if (t->MemBlock) {
-      mmFreeMem(t->MemBlock);
-      t->MemBlock = 0;
-
-      if (t->age > gmesa->dirtyAge)
-        gmesa->dirtyAge = t->age;
-   }
-
-   t->dirty_images = ~0;
-   move_to_tail(&(gmesa->SwappedOut), t);
-}
-
-
-
-/* Upload an image from mesa's internal copy.
- */
-static void gammaUploadTexLevel( gammaContextPtr gmesa, gammaTextureObjectPtr t, int level )
-{
-   const struct gl_texture_image *image = t->image[level].image;
-   int i,j;
-   int l2d;
-#if 0
-   int offset = 0;
-#endif
-   int words, depthLog2;
-
-   /* fprintf(stderr, "%s\n", __FUNCTION__);  */
-
-   l2d = 5; /* 32bits per texel == 1<<5 */
-
-   if (level == 0) {
-      t->TextureAddressMode &= ~(TAM_WidthMask | TAM_HeightMask);
-      t->TextureAddressMode |= (image->WidthLog2 << 9) | 
-                              (image->HeightLog2 << 13);
-      t->TextureReadMode &= ~(TRM_WidthMask | TRM_HeightMask | 
-                             TRM_DepthMask | TRM_Border |
-                             TRM_Patch);
-      t->TextureReadMode |= (image->WidthLog2 << 1) | 
-                           (image->HeightLog2 << 5) | 
-                           (l2d << 9);
-      t->TextureFormat &= ~(TF_CompnentsMask | TF_OneCompFmt_Mask);
-   }
-
-   t->TextureBaseAddr[level] = /* ??? */
-       (unsigned long)(t->image[level].offset + t->BufAddr) << 5;
-
-   CALC_LOG2(depthLog2, 1<<l2d);
-   words = (image->Width * image->Height) >> (5-depthLog2);
-
-   CHECK_DMA_BUFFER(gmesa, 3);
-   WRITE(gmesa->buf, LBWindowBase, t->TextureBaseAddr[level] >> 5);
-   WRITE(gmesa->buf, TextureCacheControl, (TCC_Enable | TCC_Invalidate));
-   WRITE(gmesa->buf, WaitForCompletion, 0);
-   FLUSH_DMA_BUFFER(gmesa);
-
-   switch (t->image[level].internalFormat) {
-   case GL_RGB:
-   case 3:
-   {
-      GLubyte  *src = (GLubyte *)image->Data;
-
-      if (level == 0)
-         t->TextureFormat |= TF_Compnents_3;
-      
-#if 0 /* This is the texture download code we SHOULD be using */
-      /* In the routines below, but this causes an DMA overrun - WHY ? */
-      while (offset < words) {
-         int count = gmesa->bufSize;
-        int i;
-        count -= 3;
-         if (count > words-offset) count = words-offset;
-
-        gmesa->buf->i = GlintTextureDownloadOffsetTag;
-        gmesa->buf++;
-        gmesa->buf->i = offset;
-        gmesa->buf++;
-         gmesa->buf->i = (GlintTextureDataTag | ((count-1) << 16));
-        gmesa->buf++;
-
-        for (i = 0; i < count; i++) {
-               gmesa->buf->i = PACK_COLOR_565(src[0],src[1],src[2]);
-               gmesa->buf++;
-               src += 3;
-        }
-
-        gmesa->bufCount = count+3; /* texture data + 3 values */
-        offset += count;
-
-         FLUSH_DMA_BUFFER(gmesa);
-      }   
-#else
-       /* The UGLY way, and SLOW !, but the above sometimes causes
-        * a DMA overrun error ??? FIXME ! */
-
-      CHECK_DMA_BUFFER(gmesa, 1);
-      WRITE(gmesa->buf, TextureDownloadOffset, 0);
-      for (i = 0; i < words; i++) {
-       unsigned int data;
-       data = PACK_COLOR_565(src[0],src[1],src[2]);
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TextureData, data);
-       src += 3;
-      }
-      FLUSH_DMA_BUFFER(gmesa);
-#endif
-   }
-   break;
-
-   case GL_RGBA:
-   case 4:
-   {
-      GLubyte  *src = (GLubyte *)image->Data;
-
-      if (level == 0)
-         t->TextureFormat |= TF_Compnents_4;
-
-       /* The UGLY way, and SLOW !, but the above sometimes causes
-        * a DMA overrun error ??? FIXME ! */
-      CHECK_DMA_BUFFER(gmesa, 1);
-      WRITE(gmesa->buf, TextureDownloadOffset, 0);
-      for (i = 0; i < words; i++) {
-       unsigned int data;
-       data = PACK_COLOR_8888(src[0],src[1],src[2],src[3]);
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TextureData, data);
-       src += 4;
-      }
-      FLUSH_DMA_BUFFER(gmesa);
-   }
-   break;
-
-   case GL_LUMINANCE:
-   {
-      GLubyte  *src = (GLubyte *)image->Data;
-
-      if (level == 0)
-         t->TextureFormat |= TF_Compnents_1 | TF_OneCompFmt_Lum;
-
-       /* The UGLY way, and SLOW !, but the above sometimes causes
-        * a DMA overrun error ??? FIXME ! */
-      CHECK_DMA_BUFFER(gmesa, 1);
-      WRITE(gmesa->buf, TextureDownloadOffset, 0);
-      for (i = 0; i < words; i++) {
-       unsigned int data;
-       data = PACK_COLOR_888(src[0],src[0],src[0]);
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TextureData, data);
-       src ++;
-      }
-      FLUSH_DMA_BUFFER(gmesa);
-   }
-   break;
-
-   case GL_INTENSITY:
-   {
-      GLubyte  *src = (GLubyte *)image->Data;
-
-      if (level == 0)
-         t->TextureFormat |= TF_Compnents_1 | TF_OneCompFmt_Intensity;
-
-       /* The UGLY way, and SLOW !, but the above sometimes causes
-        * a DMA overrun error ??? FIXME ! */
-      CHECK_DMA_BUFFER(gmesa, 1);
-      WRITE(gmesa->buf, TextureDownloadOffset, 0);
-      for (i = 0; i < words; i++) {
-       unsigned int data;
-       data = PACK_COLOR_8888(src[0],src[0],src[0],src[0]);
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TextureData, data);
-       src ++;
-      }
-      FLUSH_DMA_BUFFER(gmesa);
-   }
-   break;
-
-   case GL_LUMINANCE_ALPHA:
-   {
-      GLubyte  *src = (GLubyte *)image->Data;
-
-      if (level == 0)
-         t->TextureFormat |= TF_Compnents_2;
-
-       /* The UGLY way, and SLOW !, but the above sometimes causes
-        * a DMA overrun error ??? FIXME ! */
-      CHECK_DMA_BUFFER(gmesa, 1);
-      WRITE(gmesa->buf, TextureDownloadOffset, 0);
-      for (i = 0; i < words; i++) {
-       unsigned int data;
-       data = PACK_COLOR_8888(src[0],src[0],src[0],src[1]);
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TextureData, data);
-       src += 2;
-      }
-      FLUSH_DMA_BUFFER(gmesa);
-   }
-   break;
-
-   case GL_ALPHA:
-   {
-      GLubyte  *src = (GLubyte *)image->Data;
-
-      if (level == 0)
-         t->TextureFormat |= TF_Compnents_1 | TF_OneCompFmt_Alpha;
-
-       /* The UGLY way, and SLOW !, but the above sometimes causes
-        * a DMA overrun error ??? FIXME ! */
-      CHECK_DMA_BUFFER(gmesa, 1);
-      WRITE(gmesa->buf, TextureDownloadOffset, 0);
-      for (i = 0; i < words; i++) {
-       unsigned int data;
-       data = PACK_COLOR_8888(255,255,255,src[0]);
-       CHECK_DMA_BUFFER(gmesa, 1);
-       WRITE(gmesa->buf, TextureData, data);
-       src += 1;
-      }
-      FLUSH_DMA_BUFFER(gmesa);
-   }
-   break;
-
-   /* TODO: Translate color indices *now*:
-    */
-   case GL_COLOR_INDEX:
-      {
-        GLubyte *dst = (GLubyte *)(t->BufAddr + t->image[level].offset);
-        GLubyte *src = (GLubyte *)image->Data;
-
-        for (j = 0 ; j < image->Height ; j++, dst += t->Pitch) {
-           for (i = 0 ; i < image->Width ; i++) {
-              dst[i] = src[0];
-              src += 1;
-           }
-        }
-      }
-   break;
-
-   default:
-      fprintf(stderr, "Not supported texture format %s\n",
-              _mesa_lookup_enum_by_nr(image->Format));
-   }
-
-   CHECK_DMA_BUFFER(gmesa, 2);
-   WRITE(gmesa->buf, WaitForCompletion, 0);
-   WRITE(gmesa->buf, LBWindowBase, gmesa->LBWindowBase);
-}
-
-void gammaPrintLocalLRU( gammaContextPtr gmesa )
-{
-   gammaTextureObjectPtr t;
-   int sz = 1 << (gmesa->gammaScreen->logTextureGranularity);
-
-   foreach( t, &gmesa->TexObjList ) {
-      if (!t->globj)
-        fprintf(stderr, "Placeholder %d at %x sz %x\n",
-                t->MemBlock->ofs / sz,
-                t->MemBlock->ofs,
-                t->MemBlock->size);
-      else
-        fprintf(stderr, "Texture at %x sz %x\n",
-                t->MemBlock->ofs,
-                t->MemBlock->size);
-
-   }
-}
-
-void gammaPrintGlobalLRU( gammaContextPtr gmesa )
-{
-   int i, j;
-   GAMMATextureRegionPtr list = gmesa->sarea->texList;
-
-   for (i = 0, j = GAMMA_NR_TEX_REGIONS ; i < GAMMA_NR_TEX_REGIONS ; i++) {
-      fprintf(stderr, "list[%d] age %d next %d prev %d\n",
-             j, list[j].age, list[j].next, list[j].prev);
-      j = list[j].next;
-      if (j == GAMMA_NR_TEX_REGIONS) break;
-   }
-
-   if (j != GAMMA_NR_TEX_REGIONS)
-      fprintf(stderr, "Loop detected in global LRU\n");
-}
-
-
-void gammaResetGlobalLRU( gammaContextPtr gmesa )
-{
-   GAMMATextureRegionPtr list = gmesa->sarea->texList;
-   int sz = 1 << gmesa->gammaScreen->logTextureGranularity;
-   int i;
-
-   /* (Re)initialize the global circular LRU list.  The last element
-    * in the array (GAMMA_NR_TEX_REGIONS) is the sentinal.  Keeping it
-    * at the end of the array allows it to be addressed rationally
-    * when looking up objects at a particular location in texture
-    * memory.
-    */
-   for (i = 0 ; (i+1) * sz <= gmesa->gammaScreen->textureSize ; i++) {
-      list[i].prev = i-1;
-      list[i].next = i+1;
-      list[i].age = 0;
-   }
-
-   i--;
-   list[0].prev = GAMMA_NR_TEX_REGIONS;
-   list[i].prev = i-1;
-   list[i].next = GAMMA_NR_TEX_REGIONS;
-   list[GAMMA_NR_TEX_REGIONS].prev = i;
-   list[GAMMA_NR_TEX_REGIONS].next = 0;
-   gmesa->sarea->texAge = 0;
-}
-
-
-void gammaUpdateTexLRU( gammaContextPtr gmesa, gammaTextureObjectPtr t )
-{
-   int i;
-   int logsz = gmesa->gammaScreen->logTextureGranularity;
-   int start = t->MemBlock->ofs >> logsz;
-   int end = (t->MemBlock->ofs + t->MemBlock->size - 1) >> logsz;
-   GAMMATextureRegionPtr list = gmesa->sarea->texList;
-
-   gmesa->texAge = ++gmesa->sarea->texAge;
-
-   /* Update our local LRU
-    */
-   move_to_head( &(gmesa->TexObjList), t );
-
-   /* Update the global LRU
-    */
-   for (i = start ; i <= end ; i++) {
-
-      list[i].in_use = 1;
-      list[i].age = gmesa->texAge;
-
-      /* remove_from_list(i)
-       */
-      list[(unsigned)list[i].next].prev = list[i].prev;
-      list[(unsigned)list[i].prev].next = list[i].next;
-
-      /* insert_at_head(list, i)
-       */
-      list[i].prev = GAMMA_NR_TEX_REGIONS;
-      list[i].next = list[GAMMA_NR_TEX_REGIONS].next;
-      list[(unsigned)list[GAMMA_NR_TEX_REGIONS].next].prev = i;
-      list[GAMMA_NR_TEX_REGIONS].next = i;
-   }
-}
-
-
-/* Called for every shared texture region which has increased in age
- * since we last held the lock.
- *
- * Figures out which of our textures have been ejected by other clients,
- * and pushes a placeholder texture onto the LRU list to represent
- * the other client's textures.
- */
-void gammaTexturesGone( gammaContextPtr gmesa,
-                      GLuint offset,
-                      GLuint size,
-                      GLuint in_use )
-{
-   gammaTextureObjectPtr t, tmp;
-
-   foreach_s ( t, tmp, &gmesa->TexObjList ) {
-
-      if (t->MemBlock->ofs >= offset + size ||
-         t->MemBlock->ofs + t->MemBlock->size <= offset)
-        continue;
-
-      /* It overlaps - kick it off.  Need to hold onto the currently bound
-       * objects, however.
-       */
-      gammaSwapOutTexObj( gmesa, t );
-   }
-
-   if (in_use) {
-      t = (gammaTextureObjectPtr) calloc(1,sizeof(*t));
-      if (!t) return;
-
-      t->MemBlock = mmAllocMem( gmesa->texHeap, size, 0, offset);
-      insert_at_head( &gmesa->TexObjList, t );
-   }
-
-   /* Reload any lost textures referenced by current vertex buffer.
-    */
-#if 0
-   if (gmesa->vertex_buffer) {
-      int i, j;
-
-      fprintf(stderr, "\n\nreload tex\n");
-
-      for (i = 0 ; i < gmesa->statenr ; i++) {
-        for (j = 0 ; j < 2 ; j++) {
-           gammaTextureObjectPtr t = gmesa->state_tex[j][i];
-           if (t) {
-              if (t->MemBlock == 0)
-                 gammaUploadTexImages( gmesa, t );
-           }
-        }
-      }
-
-      /* Hard to do this with the lock held:
-       */
-/*        GAMMA_FIREVERTICES( gmesa ); */
-   }
-#endif
-}
-
-
-
-
-
-/* This is called with the lock held.  May have to eject our own and/or
- * other client's texture objects to make room for the upload.
- */
-void gammaUploadTexImages( gammaContextPtr gmesa, gammaTextureObjectPtr t )
-{
-   int i;
-   int ofs;
-   int numLevels;
-
-   /* /fprintf(stderr, "%s\n", __FUNCTION__); */
-#if 0
-   LOCK_HARDWARE( gmesa );
-#endif
-
-   /* Do we need to eject LRU texture objects?
-    */
-   if (!t->MemBlock) {
-      while (1)
-      {
-        t->MemBlock = mmAllocMem( gmesa->texHeap, t->totalSize, 12, 0 );
-        if (t->MemBlock)
-           break;
-
-        if (gmesa->TexObjList.prev == gmesa->CurrentTexObj[0] ||
-            gmesa->TexObjList.prev == gmesa->CurrentTexObj[1]) {
-           fprintf(stderr, "Hit bound texture in upload\n");
-           gammaPrintLocalLRU( gmesa );
-           return;
-        }
-
-        if (gmesa->TexObjList.prev == &(gmesa->TexObjList)) {
-           fprintf(stderr, "Failed to upload texture, sz %d\n", t->totalSize);
-           mmDumpMemInfo( gmesa->texHeap );
-           return;
-        }
-
-        gammaSwapOutTexObj( gmesa, gmesa->TexObjList.prev );
-      }
-
-      ofs = t->MemBlock->ofs;
-      t->BufAddr = (char *)(unsigned long)(gmesa->LBWindowBase + ofs); /* ??? */
-
-      if (t == gmesa->CurrentTexObj[0])
-        gmesa->dirty |= GAMMA_UPLOAD_TEX0;
-
-#if 0
-      if (t == gmesa->CurrentTexObj[1])
-        gmesa->dirty |= GAMMA_UPLOAD_TEX1;
-#endif
-
-      gammaUpdateTexLRU( gmesa, t );
-   }
-
-#if 0
-   if (gmesa->dirtyAge >= GET_DISPATCH_AGE(gmesa))
-      gammaWaitAgeLocked( gmesa, gmesa->dirtyAge );
-#endif
-
-   numLevels = t->lastLevel - t->firstLevel + 1;
-   for (i = 0 ; i < numLevels ; i++)
-      if (t->dirty_images & (1<<i))
-        gammaUploadTexLevel( gmesa, t, i );
-
-   t->dirty_images = 0;
-
-#if 0
-   UNLOCK_HARDWARE( gmesa );
-#endif
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_texstate.c b/src/mesa/drivers/dri/gamma/gamma_texstate.c
deleted file mode 100644 (file)
index 46f3913..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "main/glheader.h"
-#include "main/macros.h"
-#include "main/mtypes.h"
-#include "main/simple_list.h"
-#include "main/enums.h"
-
-#include "main/mm.h"
-#include "gamma_context.h"
-
-static void gammaSetTexImages( gammaContextPtr gmesa, 
-                             struct gl_texture_object *tObj )
-{
-   GLuint height, width, pitch, i, log_pitch;
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr) tObj->DriverData;
-   const struct gl_texture_image *baseImage = tObj->Image[0][tObj->BaseLevel];
-   GLint firstLevel, lastLevel, numLevels;
-   GLint log2Width, log2Height;
-
-   /* fprintf(stderr, "%s\n", __FUNCTION__);  */
-
-   t->texelBytes = 2;
-
-   /* Compute which mipmap levels we really want to send to the hardware.
-    * This depends on the base image size, GL_TEXTURE_MIN_LOD,
-    * GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, and GL_TEXTURE_MAX_LEVEL.
-    * Yes, this looks overly complicated, but it's all needed.
-    */
-   if (tObj->MinFilter == GL_LINEAR || tObj->MinFilter == GL_NEAREST) {
-      firstLevel = lastLevel = tObj->BaseLevel;
-   }
-   else {
-      firstLevel = tObj->BaseLevel + (GLint) (tObj->MinLod + 0.5);
-      firstLevel = MAX2(firstLevel, tObj->BaseLevel);
-      lastLevel = tObj->BaseLevel + (GLint) (tObj->MaxLod + 0.5);
-      lastLevel = MAX2(lastLevel, tObj->BaseLevel);
-      lastLevel = MIN2(lastLevel, tObj->BaseLevel + baseImage->MaxLog2);
-      lastLevel = MIN2(lastLevel, tObj->MaxLevel);
-      lastLevel = MAX2(firstLevel, lastLevel); /* need at least one level */
-   }
-
-   /* save these values */
-   t->firstLevel = firstLevel;
-   t->lastLevel = lastLevel;
-
-   numLevels = lastLevel - firstLevel + 1;
-
-   log2Width = tObj->Image[0][firstLevel]->WidthLog2;
-   log2Height = tObj->Image[0][firstLevel]->HeightLog2;
-
-
-   /* Figure out the amount of memory required to hold all the mipmap
-    * levels.  Choose the smallest pitch to accomodate the largest
-    * mipmap:
-    */
-   width = tObj->Image[0][firstLevel]->Width * t->texelBytes;
-   for (pitch = 32, log_pitch=2 ; pitch < width ; pitch *= 2 )
-      log_pitch++;
-   
-   /* All images must be loaded at this pitch.  Count the number of
-    * lines required:
-    */
-   for ( height = i = 0 ; i < numLevels ; i++ ) {
-      t->image[i].image = tObj->Image[0][firstLevel + i];
-      t->image[i].offset = height * pitch;
-      t->image[i].internalFormat = baseImage->Format;
-      height += t->image[i].image->Height;
-      t->TextureBaseAddr[i] = /* ??? */
-       (unsigned long)(t->image[i].offset + t->BufAddr) << 5;
-
-   }
-
-   t->Pitch = pitch;
-   t->totalSize = height*pitch;
-   t->max_level = i-1;
-   gmesa->dirty |= GAMMA_UPLOAD_TEX0 /* | GAMMA_UPLOAD_TEX1*/;   
-
-   gammaUploadTexImages( gmesa, t );
-}
-
-static void gammaUpdateTexEnv( GLcontext *ctx, GLuint unit )
-{
-   const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
-   const struct gl_texture_object *tObj = texUnit->_Current;
-   const GLuint format = tObj->Image[0][tObj->BaseLevel]->Format;
-   gammaTextureObjectPtr t = (gammaTextureObjectPtr)tObj->DriverData;
-   GLuint tc;
-
-   /* fprintf(stderr, "%s\n", __FUNCTION__);  */
-
-   tc = t->TextureColorMode & ~(TCM_BaseFormatMask | TCM_ApplicationMask);
-
-   switch (format) {
-   case GL_RGB:
-      tc |= TCM_BaseFormat_RGB;
-      break;
-   case GL_LUMINANCE:
-      tc |= TCM_BaseFormat_Lum;
-      break;
-   case GL_ALPHA:
-      tc |= TCM_BaseFormat_Alpha;
-      break;
-   case GL_LUMINANCE_ALPHA:
-      tc |= TCM_BaseFormat_LumAlpha;
-      break;
-   case GL_INTENSITY:
-      tc |= TCM_BaseFormat_Intensity;
-      break;
-   case GL_RGBA:
-      tc |= TCM_BaseFormat_RGBA;
-      break;
-   case GL_COLOR_INDEX:
-      break;
-   }
-
-   switch (texUnit->EnvMode) {
-   case GL_REPLACE:
-      tc |= TCM_Replace;
-      break;
-   case GL_MODULATE:
-      tc |= TCM_Modulate;
-      break;
-   case GL_ADD:
-      /* do nothing ???*/
-      break;
-   case GL_DECAL:
-      tc |= TCM_Decal;
-      break;
-   case GL_BLEND:
-      tc |= TCM_Blend;
-      break;
-   default:
-      fprintf(stderr, "unknown tex env mode");
-      return;
-   }
-
-   t->TextureColorMode = tc;
-}
-
-
-
-
-static void gammaUpdateTexUnit( GLcontext *ctx, GLuint unit )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
-
-   /* fprintf(stderr, "%s\n", __FUNCTION__);  */
-
-   if (texUnit->_ReallyEnabled == TEXTURE_2D_BIT) 
-   {
-      struct gl_texture_object *tObj = texUnit->_Current;
-      gammaTextureObjectPtr t = (gammaTextureObjectPtr)tObj->DriverData;
-
-      /* Upload teximages (not pipelined)
-       */
-      if (t->dirty_images) {
-        gammaSetTexImages( gmesa, tObj );
-        if (!t->MemBlock) {
-           FALLBACK( gmesa, GAMMA_FALLBACK_TEXTURE, GL_TRUE );
-           return;
-        }
-      }
-
-#if 0
-      if (tObj->Image[0][tObj->BaseLevel]->Border > 0) {
-         FALLBACK( gmesa, GAMMA_FALLBACK_TEXTURE, GL_TRUE );
-         return;
-      }
-#endif
-
-      /* Update state if this is a different texture object to last
-       * time.
-       */
-      if (gmesa->CurrentTexObj[unit] != t) {
-        gmesa->dirty |= GAMMA_UPLOAD_TEX0 /* << unit */;
-        gmesa->CurrentTexObj[unit] = t;
-        gammaUpdateTexLRU( gmesa, t ); /* done too often */
-      }
-      
-      /* Update texture environment if texture object image format or 
-       * texture environment state has changed.
-       */
-      if (tObj->Image[0][tObj->BaseLevel]->Format != gmesa->TexEnvImageFmt[unit]) {
-        gmesa->TexEnvImageFmt[unit] = tObj->Image[0][tObj->BaseLevel]->Format;
-        gammaUpdateTexEnv( ctx, unit );
-      }
-   }
-   else if (texUnit->_ReallyEnabled) {
-      FALLBACK( gmesa, GAMMA_FALLBACK_TEXTURE, GL_TRUE );
-   }
-   else /*if (gmesa->CurrentTexObj[unit])*/ {
-      gmesa->CurrentTexObj[unit] = 0;
-      gmesa->TexEnvImageFmt[unit] = 0; 
-      gmesa->dirty &= ~(GAMMA_UPLOAD_TEX0<<unit); 
-   }
-}
-
-
-void gammaUpdateTextureState( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   /* fprintf(stderr, "%s\n", __FUNCTION__);  */
-   FALLBACK( gmesa, GAMMA_FALLBACK_TEXTURE, GL_FALSE );
-   gammaUpdateTexUnit( ctx, 0 );
-#if 0
-   gammaUpdateTexUnit( ctx, 1 );
-#endif
-}
-
-
-
diff --git a/src/mesa/drivers/dri/gamma/gamma_tris.c b/src/mesa/drivers/dri/gamma/gamma_tris.c
deleted file mode 100644 (file)
index babe964..0000000
+++ /dev/null
@@ -1,660 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *           Keith Whitwell, <keith@tungstengraphics.com>
- *
- * 3DLabs Gamma driver.
- */
-
-#include "gamma_context.h"
-#include "gamma_macros.h"
-#include "gamma_vb.h"
-#include "gamma_tris.h"
-
-#include "main/glheader.h"
-#include "main/mtypes.h"
-#include "main/macros.h"
-#include "main/colormac.h"
-
-#include "swrast/swrast.h"
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/tnl.h"
-#include "tnl/t_context.h"
-#include "tnl/t_pipeline.h"
-
-
-/***********************************************************************
- *                   Build hardware rasterization functions            *
- ***********************************************************************/
-
-#define GAMMA_RAST_ALPHA_BIT   0x01
-#define GAMMA_RAST_TEX_BIT     0x02
-#define GAMMA_RAST_FLAT_BIT    0x04
-
-static gamma_point_func gamma_point_tab[0x8];
-static gamma_line_func gamma_line_tab[0x8];
-static gamma_tri_func gamma_tri_tab[0x8];
-static gamma_quad_func gamma_quad_tab[0x8];
-
-#define IND (0)
-#define TAG(x) x
-#include "gamma_tritmp.h"
-
-#define IND (GAMMA_RAST_ALPHA_BIT)
-#define TAG(x) x##_alpha
-#include "gamma_tritmp.h"
-
-#define IND (GAMMA_RAST_TEX_BIT)
-#define TAG(x) x##_tex
-#include "gamma_tritmp.h"
-
-#define IND (GAMMA_RAST_ALPHA_BIT|GAMMA_RAST_TEX_BIT)
-#define TAG(x) x##_alpha_tex
-#include "gamma_tritmp.h"
-
-#define IND (GAMMA_RAST_FLAT_BIT)
-#define TAG(x) x##_flat
-#include "gamma_tritmp.h"
-
-#define IND (GAMMA_RAST_ALPHA_BIT|GAMMA_RAST_FLAT_BIT)
-#define TAG(x) x##_alpha_flat
-#include "gamma_tritmp.h"
-
-#define IND (GAMMA_RAST_TEX_BIT|GAMMA_RAST_FLAT_BIT)
-#define TAG(x) x##_tex_flat
-#include "gamma_tritmp.h"
-
-#define IND (GAMMA_RAST_ALPHA_BIT|GAMMA_RAST_TEX_BIT|GAMMA_RAST_FLAT_BIT)
-#define TAG(x) x##_alpha_tex_flat
-#include "gamma_tritmp.h"
-
-
-static void init_rast_tab( void )
-{
-   gamma_init();
-   gamma_init_alpha();
-   gamma_init_tex();
-   gamma_init_alpha_tex();
-   gamma_init_flat();
-   gamma_init_alpha_flat();
-   gamma_init_tex_flat();
-   gamma_init_alpha_tex_flat();
-}
-
-/***********************************************************************
- *                    Rasterization fallback helpers                   *
- ***********************************************************************/
-
-
-/* This code is hit only when a mix of accelerated and unaccelerated
- * primitives are being drawn, and only for the unaccelerated
- * primitives.  
- */
-static void 
-gamma_fallback_quad( gammaContextPtr gmesa, 
-                   const gammaVertex *v0, 
-                   const gammaVertex *v1, 
-                   const gammaVertex *v2, 
-                   const gammaVertex *v3 )
-{
-   GLcontext *ctx = gmesa->glCtx;
-   SWvertex v[4];
-   gamma_translate_vertex( ctx, v0, &v[0] );
-   gamma_translate_vertex( ctx, v1, &v[1] );
-   gamma_translate_vertex( ctx, v2, &v[2] );
-   gamma_translate_vertex( ctx, v3, &v[3] );
-   _swrast_Quad( ctx, &v[0], &v[1], &v[2], &v[3] );
-}
-
-static void 
-gamma_fallback_tri( gammaContextPtr gmesa, 
-                   const gammaVertex *v0, 
-                   const gammaVertex *v1, 
-                   const gammaVertex *v2 )
-{
-   GLcontext *ctx = gmesa->glCtx;
-   SWvertex v[3];
-   gamma_translate_vertex( ctx, v0, &v[0] );
-   gamma_translate_vertex( ctx, v1, &v[1] );
-   gamma_translate_vertex( ctx, v2, &v[2] );
-   _swrast_Triangle( ctx, &v[0], &v[1], &v[2] );
-}
-
-static void 
-gamma_fallback_line( gammaContextPtr gmesa,
-                    const gammaVertex *v0,
-                    const gammaVertex *v1 )
-{
-   GLcontext *ctx = gmesa->glCtx;
-   SWvertex v[2];
-   gamma_translate_vertex( ctx, v0, &v[0] );
-   gamma_translate_vertex( ctx, v1, &v[1] );
-   _swrast_Line( ctx, &v[0], &v[1] );
-}
-
-
-#if 0
-static void 
-gamma_fallback_point( gammaContextPtr gmesa, 
-                     const gammaVertex *v0 )
-{
-   GLcontext *ctx = gmesa->glCtx;
-   SWvertex v[1];
-   gamma_translate_vertex( ctx, v0, &v[0] );
-   _swrast_Point( ctx, &v[0] );
-}
-#endif
-
-
-/***********************************************************************
- *                    Choose rasterization functions                   *
- ***********************************************************************/
-
-#define _GAMMA_NEW_RASTER_STATE (_NEW_FOG | \
-                                _NEW_TEXTURE | \
-                                _DD_NEW_TRI_SMOOTH | \
-                                _DD_NEW_LINE_SMOOTH | \
-                                _DD_NEW_POINT_SMOOTH | \
-                                _DD_NEW_TRI_STIPPLE | \
-                                _DD_NEW_LINE_STIPPLE)
-
-#define LINE_FALLBACK (0)
-#define TRI_FALLBACK (0)
-
-static void gammaChooseRasterState(GLcontext *ctx)
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   GLuint flags = ctx->_TriangleCaps;
-   GLuint ind = 0;
-
-   if ( ctx->Line.SmoothFlag || 
-        ctx->Polygon.SmoothFlag || 
-        ctx->Point.SmoothFlag )
-      gmesa->Begin |= B_AntiAliasEnable;
-   else
-      gmesa->Begin &= ~B_AntiAliasEnable;
-
-   if ( ctx->Texture.Unit[0]._ReallyEnabled ) {
-      ind |= GAMMA_RAST_TEX_BIT;
-      gmesa->Begin |= B_TextureEnable;
-   } else
-      gmesa->Begin &= ~B_TextureEnable;
-
-   if (flags & DD_LINE_STIPPLE)
-      gmesa->Begin |= B_LineStippleEnable;
-   else
-      gmesa->Begin &= ~B_LineStippleEnable;
-   
-   if (flags & DD_TRI_STIPPLE)
-      gmesa->Begin |= B_AreaStippleEnable;
-   else
-      gmesa->Begin &= ~B_AreaStippleEnable;
-
-   if (ctx->Fog.Enabled) 
-      gmesa->Begin |= B_FogEnable;
-   else
-      gmesa->Begin &= ~B_FogEnable;
-
-   if (ctx->Color.BlendEnabled || ctx->Color.AlphaEnabled)
-      ind |= GAMMA_RAST_ALPHA_BIT;
-
-   if ( flags & DD_FLATSHADE )
-      ind |= GAMMA_RAST_FLAT_BIT;
-
-   gmesa->draw_line = gamma_line_tab[ind];
-   gmesa->draw_tri = gamma_tri_tab[ind];
-   gmesa->draw_quad = gamma_quad_tab[ind];
-   gmesa->draw_point = gamma_point_tab[ind];
-
-   /* Hook in fallbacks for specific primitives.  CURRENTLY DISABLED
-    */
-   if (flags & LINE_FALLBACK) 
-      gmesa->draw_line = gamma_fallback_line;
-        
-   if (flags & TRI_FALLBACK) {
-      gmesa->draw_tri = gamma_fallback_tri;
-      gmesa->draw_quad = gamma_fallback_quad;
-   }
-}
-
-
-
-
-/***********************************************************************
- *          Macros for t_dd_tritmp.h to draw basic primitives          *
- ***********************************************************************/
-
-#define TRI( a, b, c )                         \
-do {                                           \
-   gmesa->draw_tri( gmesa, a, b, c );  \
-} while (0)
-
-#define QUAD( a, b, c, d )                     \
-do {                                           \
-   gmesa->draw_quad( gmesa, a, b, c, d );      \
-} while (0)
-
-#define LINE( v0, v1 )                         \
-do {                                           \
-   gmesa->draw_line( gmesa, v0, v1 );  \
-} while (0)
-
-#define POINT( v0 )                            \
-do {                                           \
-   gmesa->draw_point( gmesa, v0 );             \
-} while (0)
-
-
-/***********************************************************************
- *              Build render functions from dd templates               *
- ***********************************************************************/
-
-#define GAMMA_OFFSET_BIT       0x01
-#define GAMMA_TWOSIDE_BIT      0x02
-#define GAMMA_UNFILLED_BIT     0x04
-#define GAMMA_FALLBACK_BIT     0x08
-#define GAMMA_MAX_TRIFUNC      0x10
-
-
-static struct {
-   tnl_points_func             points;
-   tnl_line_func               line;
-   tnl_triangle_func   triangle;
-   tnl_quad_func               quad;
-} rast_tab[GAMMA_MAX_TRIFUNC];
-
-
-#define DO_FALLBACK (IND & GAMMA_FALLBACK_BIT)
-#define DO_OFFSET    0 /* (IND & GAMMA_OFFSET_BIT) */
-#define DO_UNFILLED  0 /* (IND & GAMMA_UNFILLED_BIT) */
-#define DO_TWOSIDE  (IND & GAMMA_TWOSIDE_BIT)
-#define DO_FLAT      0
-#define DO_TRI       1
-#define DO_QUAD      1
-#define DO_LINE      1
-#define DO_POINTS    1
-#define DO_FULL_QUAD 1
-
-#define HAVE_RGBA         1
-#define HAVE_SPEC         0
-#define HAVE_BACK_COLORS  0
-#define HAVE_HW_FLATSHADE 1
-#define VERTEX            gammaVertex
-#define TAB               rast_tab
-
-#define DEPTH_SCALE 1.0
-#define UNFILLED_TRI unfilled_tri
-#define UNFILLED_QUAD unfilled_quad
-#define VERT_X(_v) _v->v.x
-#define VERT_Y(_v) _v->v.y
-#define VERT_Z(_v) _v->v.z
-#define AREA_IS_CCW( a ) (a > 0)
-#define GET_VERTEX(e) (gmesa->verts + (e * gmesa->vertex_size * sizeof(int)))
-
-#define VERT_SET_RGBA( v, c )                                          \
-do {                                                           \
-   UNCLAMPED_FLOAT_TO_UBYTE(v->ub4[4][0], (c)[0]);             \
-   UNCLAMPED_FLOAT_TO_UBYTE(v->ub4[4][1], (c)[1]);             \
-   UNCLAMPED_FLOAT_TO_UBYTE(v->ub4[4][2], (c)[2]);             \
-   UNCLAMPED_FLOAT_TO_UBYTE(v->ub4[4][3], (c)[3]);             \
-} while (0)
-#define VERT_COPY_RGBA( v0, v1 ) v0->ui[4] = v1->ui[4]
-#define VERT_SAVE_RGBA( idx )    color[idx] = v[idx]->ui[4]
-#define VERT_RESTORE_RGBA( idx ) v[idx]->ui[4] = color[idx]   
-
-#define LOCAL_VARS(n)                                  \
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx); \
-   GLuint color[n] = { 0 };                    \
-   (void) color;
-
-
-/***********************************************************************
- *                Helpers for rendering unfilled primitives            *
- ***********************************************************************/
-
-static const GLuint hw_prim[GL_POLYGON+1] = {
-   B_PrimType_Points,
-   B_PrimType_Lines,
-   B_PrimType_Lines,
-   B_PrimType_Lines,
-   B_PrimType_Triangles,
-   B_PrimType_Triangles,
-   B_PrimType_Triangles,
-   B_PrimType_Triangles,
-   B_PrimType_Triangles,
-   B_PrimType_Triangles
-};
-
-static void gammaResetLineStipple( GLcontext *ctx );
-static void gammaRasterPrimitive( GLcontext *ctx, GLuint hwprim );
-static void gammaRenderPrimitive( GLcontext *ctx, GLenum prim );
-
-#define RASTERIZE(x) if (gmesa->hw_primitive != hw_prim[x]) \
-                        gammaRasterPrimitive( ctx, hw_prim[x] )
-#define RENDER_PRIMITIVE gmesa->render_primitive
-#define TAG(x) x
-#define IND GAMMA_FALLBACK_BIT
-#include "tnl_dd/t_dd_unfilled.h"
-#undef IND
-
-/***********************************************************************
- *                      Generate GL render functions                   *
- ***********************************************************************/
-
-#define IND (0)
-#define TAG(x) x
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (GAMMA_OFFSET_BIT)
-#define TAG(x) x##_offset
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (GAMMA_TWOSIDE_BIT)
-#define TAG(x) x##_twoside
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (GAMMA_TWOSIDE_BIT|GAMMA_OFFSET_BIT)
-#define TAG(x) x##_twoside_offset
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (GAMMA_UNFILLED_BIT)
-#define TAG(x) x##_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (GAMMA_OFFSET_BIT|GAMMA_UNFILLED_BIT)
-#define TAG(x) x##_offset_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (GAMMA_TWOSIDE_BIT|GAMMA_UNFILLED_BIT)
-#define TAG(x) x##_twoside_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-#define IND (GAMMA_TWOSIDE_BIT|GAMMA_OFFSET_BIT|GAMMA_UNFILLED_BIT)
-#define TAG(x) x##_twoside_offset_unfilled
-#include "tnl_dd/t_dd_tritmp.h"
-
-
-
-static void init_render_tab( void )
-{
-   init();
-   init_offset();
-   init_twoside();
-   init_twoside_offset();
-   init_unfilled();
-   init_offset_unfilled();
-   init_twoside_unfilled();
-   init_twoside_offset_unfilled();
-}
-
-
-/**********************************************************************/
-/*               Render unclipped begin/end objects                   */
-/**********************************************************************/
-
-#define VERT(x) (gammaVertex *)(gammaverts + (x * size * sizeof(int)))
-#define RENDER_POINTS( start, count )          \
-   for ( ; start < count ; start++)            \
-      gmesa->draw_point( gmesa, VERT(start) )
-#define RENDER_LINE( v0, v1 ) \
-   gmesa->draw_line( gmesa, VERT(v0), VERT(v1) )
-#define RENDER_TRI( v0, v1, v2 )  \
-   gmesa->draw_tri( gmesa, VERT(v0), VERT(v1), VERT(v2) )
-#define RENDER_QUAD( v0, v1, v2, v3 ) \
-   gmesa->draw_quad( gmesa, VERT(v0), VERT(v1), VERT(v2), VERT(v3) )
-#define INIT(x) gammaRenderPrimitive( ctx, x );
-#undef LOCAL_VARS
-#define LOCAL_VARS                                             \
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);         \
-   const GLuint size = gmesa->vertex_size;             \
-   const char *gammaverts = (char *)gmesa->verts;              \
-   const GLboolean stipple = ctx->Line.StippleFlag;            \
-   (void) stipple;
-#define RESET_STIPPLE  if ( stipple ) gammaResetLineStipple( ctx );
-#define RESET_OCCLUSION
-#define PRESERVE_VB_DEFS
-#define ELT(x) (x)
-#define TAG(x) gamma_##x##_verts
-#include "tnl/t_vb_rendertmp.h"
-
-
-/**********************************************************************/
-/*                   Render clipped primitives                        */
-/**********************************************************************/
-
-static void gammaRenderClippedPoly( GLcontext *ctx, const GLuint *elts, 
-                                  GLuint n )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   GLuint prim = gmesa->render_primitive;
-
-   /* Render the new vertices as an unclipped polygon. 
-    */
-   {
-      GLuint *tmp = VB->Elts;
-      VB->Elts = (GLuint *)elts;
-      tnl->Driver.Render.PrimTabElts[GL_POLYGON]( ctx, 0, n, PRIM_BEGIN|PRIM_END );
-      VB->Elts = tmp;
-   }
-
-   /* Restore the render primitive
-    */
-   if (prim != GL_POLYGON)
-      tnl->Driver.Render.PrimitiveNotify( ctx, prim );
-}
-
-static void gammaRenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj )
-{
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   tnl->Driver.Render.Line( ctx, ii, jj );
-}
-
-
-/**********************************************************************/
-/*                    Choose render functions                         */
-/**********************************************************************/
-
-
-
-#define _GAMMA_NEW_RENDERSTATE (_DD_NEW_TRI_UNFILLED |         \
-                              _DD_NEW_TRI_LIGHT_TWOSIDE |      \
-                              _DD_NEW_TRI_OFFSET)
-
-#define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED)
-
-static void gammaChooseRenderState(GLcontext *ctx)
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   GLuint flags = ctx->_TriangleCaps;
-   GLuint index = 0;
-
-   if (flags & ANY_RASTER_FLAGS) {
-      if (flags & DD_TRI_LIGHT_TWOSIDE)       index |= GAMMA_TWOSIDE_BIT;
-      if (flags & DD_TRI_OFFSET)             index |= GAMMA_OFFSET_BIT;
-      if (flags & DD_TRI_UNFILLED)           index |= GAMMA_UNFILLED_BIT;
-   }
-
-   if (gmesa->RenderIndex != index) {
-      gmesa->RenderIndex = index;
-
-      tnl->Driver.Render.Points = rast_tab[index].points;
-      tnl->Driver.Render.Line = rast_tab[index].line;
-      tnl->Driver.Render.Triangle = rast_tab[index].triangle;
-      tnl->Driver.Render.Quad = rast_tab[index].quad;
-         
-      if (gmesa->RenderIndex == 0)
-         tnl->Driver.Render.PrimTabVerts = gamma_render_tab_verts;
-      else
-         tnl->Driver.Render.PrimTabVerts = _tnl_render_tab_verts;
-      tnl->Driver.Render.PrimTabElts = _tnl_render_tab_elts;
-      tnl->Driver.Render.ClippedLine = gammaRenderClippedLine;
-      tnl->Driver.Render.ClippedPolygon = gammaRenderClippedPoly;
-   }
-}
-
-
-/**********************************************************************/
-/*                 High level hooks for t_vb_render.c                 */
-/**********************************************************************/
-
-
-
-/* Determine the rasterized primitive when not drawing unfilled 
- * polygons.
- *
- * Used only for the default render stage which always decomposes
- * primitives to trianges/lines/points.  For the accelerated stage,
- * which renders strips as strips, the equivalent calculations are
- * performed in gammarender.c.
- */
-
-static void gammaRasterPrimitive( GLcontext *ctx, GLuint hwprim )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   if (gmesa->hw_primitive != hwprim)
-      gmesa->hw_primitive = hwprim;
-}
-
-static void gammaRenderPrimitive( GLcontext *ctx, GLenum prim )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   gmesa->render_primitive = prim;
-}
-
-static void gammaRunPipeline( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   if ( gmesa->new_state )
-      gammaDDUpdateHWState( ctx );
-
-   if (gmesa->new_gl_state) {
-      if (gmesa->new_gl_state & _NEW_TEXTURE)
-        gammaUpdateTextureState( ctx );
-
-   if (!gmesa->Fallback) {
-      if (gmesa->new_gl_state & _GAMMA_NEW_VERTEX)
-        gammaChooseVertexState( ctx );
-      
-      if (gmesa->new_gl_state & _GAMMA_NEW_RASTER_STATE)
-        gammaChooseRasterState( ctx );
-      
-      if (gmesa->new_gl_state & _GAMMA_NEW_RENDERSTATE)
-        gammaChooseRenderState( ctx );
-   }
-      
-      gmesa->new_gl_state = 0;
-   }
-
-   _tnl_run_pipeline( ctx );
-}
-
-static void gammaRenderStart( GLcontext *ctx )
-{
-   /* Check for projective texturing.  Make sure all texcoord
-    * pointers point to something.  (fix in mesa?)  
-    */
-   gammaCheckTexSizes( ctx );
-}
-
-static void gammaRenderFinish( GLcontext *ctx )
-{
-   if (0)
-      _swrast_flush( ctx );    /* never needed */
-}
-
-static void gammaResetLineStipple( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-
-   /* Reset the hardware stipple counter.
-    */
-   CHECK_DMA_BUFFER(gmesa, 1);
-   WRITE(gmesa->buf, UpdateLineStippleCounters, 0);
-}
-
-
-/**********************************************************************/
-/*           Transition to/from hardware rasterization.               */
-/**********************************************************************/
-
-
-void gammaFallback( gammaContextPtr gmesa, GLuint bit, GLboolean mode )
-{
-   GLcontext *ctx = gmesa->glCtx;
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   GLuint oldfallback = gmesa->Fallback;
-
-   if (mode) {
-      gmesa->Fallback |= bit;
-      if (oldfallback == 0) {
-        _swsetup_Wakeup( ctx );
-        _tnl_need_projected_coords( ctx, GL_TRUE );
-        gmesa->RenderIndex = ~0;
-      }
-   }
-   else {
-      gmesa->Fallback &= ~bit;
-      if (oldfallback == bit) {
-        _swrast_flush( ctx );
-        tnl->Driver.Render.Start = gammaRenderStart;
-        tnl->Driver.Render.PrimitiveNotify = gammaRenderPrimitive;
-        tnl->Driver.Render.Finish = gammaRenderFinish;
-        tnl->Driver.Render.BuildVertices = gammaBuildVertices;
-         tnl->Driver.Render.ResetLineStipple = gammaResetLineStipple;
-        gmesa->new_gl_state |= (_GAMMA_NEW_RENDERSTATE|
-                                _GAMMA_NEW_RASTER_STATE|
-                                _GAMMA_NEW_VERTEX);
-      }
-   }
-}
-
-
-/**********************************************************************/
-/*                            Initialization.                         */
-/**********************************************************************/
-
-
-void gammaDDInitTriFuncs( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   static int firsttime = 1;
-
-   if (firsttime) {
-      init_rast_tab();
-      init_render_tab();
-      firsttime = 0;
-   }
-   
-   gmesa->RenderIndex = ~0;
-
-   tnl->Driver.RunPipeline = gammaRunPipeline;
-   tnl->Driver.Render.Start = gammaRenderStart;
-   tnl->Driver.Render.Finish = gammaRenderFinish; 
-   tnl->Driver.Render.PrimitiveNotify = gammaRenderPrimitive;
-   tnl->Driver.Render.ResetLineStipple = gammaResetLineStipple;
-   tnl->Driver.Render.BuildVertices = gammaBuildVertices;
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_tris.h b/src/mesa/drivers/dri/gamma/gamma_tris.h
deleted file mode 100644 (file)
index 02bec28..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *           Keith Whitwell, <keith@tungstengraphics.com>
- *
- * 3DLabs Gamma driver.
- */
-
-#ifndef _GAMMA_TRIS_H
-#define _GAMMA_TRIS_H
-
-extern void gammaDDTrifuncInit(void);
-extern void gammaDDChooseTriRenderState(GLcontext *);
-
-
-
-#endif /* !(_GAMMA_TRIS_H) */
diff --git a/src/mesa/drivers/dri/gamma/gamma_tritmp.h b/src/mesa/drivers/dri/gamma/gamma_tritmp.h
deleted file mode 100644 (file)
index bea2508..0000000
+++ /dev/null
@@ -1,496 +0,0 @@
-
-static void TAG(gamma_point)( gammaContextPtr gmesa, 
-                            const gammaVertex *v0 )
-{
-    uint32_t vColor;
-    uint32_t vBegin;
-
-    vBegin = gmesa->Begin | B_PrimType_Points;
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, Begin, vBegin);
-
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v0->v.color.alpha << 24) |
-            (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v0->v.u0);
-    WRITEF(gmesa->buf, Ts2, v0->v.v0);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, FlushSpan, 0);
-#endif
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, End, 0);
-}
-
-static void TAG(gamma_line)( gammaContextPtr gmesa, 
-                            const gammaVertex *v0,
-                            const gammaVertex *v1 )
-{
-    uint32_t vColor;
-    uint32_t vBegin;
-
-    vBegin = gmesa->Begin | B_PrimType_Lines;
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, Begin, vBegin);
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v0->v.color.alpha << 24) |
-            (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#else
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v1->v.color.alpha << 24) |
-            (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v0->v.u0);
-    WRITEF(gmesa->buf, Ts2, v0->v.v0);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v1->v.color.alpha << 24) |
-            (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v1->v.u0);
-    WRITEF(gmesa->buf, Ts2, v1->v.v0);
-    WRITEF(gmesa->buf, Vw, v1->v.w);
-    WRITEF(gmesa->buf, Vz, v1->v.z);
-    WRITEF(gmesa->buf, Vy, v1->v.y);
-    WRITEF(gmesa->buf, Vx4, v1->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v1->v.w);
-    WRITEF(gmesa->buf, Vz, v1->v.z);
-    WRITEF(gmesa->buf, Vy, v1->v.y);
-    WRITEF(gmesa->buf, Vx4, v1->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, FlushSpan, 0);
-#endif
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, End, 0);
-}
-
-static void TAG(gamma_triangle)( gammaContextPtr gmesa,
-                                const gammaVertex *v0,
-                                const gammaVertex *v1, 
-                                const gammaVertex *v2 )
-{
-    uint32_t vColor;
-    uint32_t vBegin;
-
-    vBegin = gmesa->Begin | B_PrimType_Triangles;
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, Begin, vBegin);
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v0->v.color.alpha << 24) |
-            (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#else
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v2->v.color.alpha << 24) |
-            (v2->v.color.blue  << 16) |
-            (v2->v.color.green <<  8) |
-            (v2->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v2->v.color.blue  << 16) |
-            (v2->v.color.green <<  8) |
-            (v2->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v0->v.u0);
-    WRITEF(gmesa->buf, Ts2, v0->v.v0);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v1->v.color.alpha << 24) |
-            (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v1->v.u0);
-    WRITEF(gmesa->buf, Ts2, v1->v.v0);
-    WRITEF(gmesa->buf, Vw, v1->v.w);
-    WRITEF(gmesa->buf, Vz, v1->v.z);
-    WRITEF(gmesa->buf, Vy, v1->v.y);
-    WRITEF(gmesa->buf, Vx4, v1->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v1->v.w);
-    WRITEF(gmesa->buf, Vz, v1->v.z);
-    WRITEF(gmesa->buf, Vy, v1->v.y);
-    WRITEF(gmesa->buf, Vx4, v1->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v2->v.color.alpha << 24) |
-            (v2->v.color.blue  << 16) |
-            (v2->v.color.green <<  8) |
-            (v2->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v2->v.color.blue  << 16) |
-            (v2->v.color.green <<  8) |
-            (v2->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v2->v.u0);
-    WRITEF(gmesa->buf, Ts2, v2->v.v0);
-    WRITEF(gmesa->buf, Vw, v2->v.w);
-    WRITEF(gmesa->buf, Vz, v2->v.z);
-    WRITEF(gmesa->buf, Vy, v2->v.y);
-    WRITEF(gmesa->buf, Vx4, v2->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v2->v.w);
-    WRITEF(gmesa->buf, Vz, v2->v.z);
-    WRITEF(gmesa->buf, Vy, v2->v.y);
-    WRITEF(gmesa->buf, Vx4, v2->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, FlushSpan, 0);
-#endif
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, End, 0);
-}
-
-static void TAG(gamma_quad)( gammaContextPtr gmesa,
-                           const gammaVertex *v0,
-                           const gammaVertex *v1,
-                           const gammaVertex *v2,
-                           const gammaVertex *v3 )
-{
-    uint32_t vColor;
-    uint32_t vBegin;
-
-    vBegin = gmesa->Begin | B_PrimType_Quads;
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, Begin, vBegin);
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v0->v.color.alpha << 24) |
-            (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v0->v.color.blue  << 16) |
-            (v0->v.color.green <<  8) |
-            (v0->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#else
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v3->v.color.alpha << 24) |
-            (v3->v.color.blue  << 16) |
-            (v3->v.color.green <<  8) |
-            (v3->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v3->v.color.blue  << 16) |
-            (v3->v.color.green <<  8) |
-            (v3->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v0->v.u0);
-    WRITEF(gmesa->buf, Ts2, v0->v.v0);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v0->v.w);
-    WRITEF(gmesa->buf, Vz, v0->v.z);
-    WRITEF(gmesa->buf, Vy, v0->v.y);
-    WRITEF(gmesa->buf, Vx4, v0->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v1->v.color.alpha << 24) |
-            (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v1->v.color.blue  << 16) |
-            (v1->v.color.green <<  8) |
-            (v1->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v1->v.u0);
-    WRITEF(gmesa->buf, Ts2, v1->v.v0);
-    WRITEF(gmesa->buf, Vw, v1->v.w);
-    WRITEF(gmesa->buf, Vz, v1->v.z);
-    WRITEF(gmesa->buf, Vy, v1->v.y);
-    WRITEF(gmesa->buf, Vx4, v1->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v1->v.w);
-    WRITEF(gmesa->buf, Vz, v1->v.z);
-    WRITEF(gmesa->buf, Vy, v1->v.y);
-    WRITEF(gmesa->buf, Vx4, v1->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v2->v.color.alpha << 24) |
-            (v2->v.color.blue  << 16) |
-            (v2->v.color.green <<  8) |
-            (v2->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v2->v.color.blue  << 16) |
-            (v2->v.color.green <<  8) |
-            (v2->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v2->v.u0);
-    WRITEF(gmesa->buf, Ts2, v2->v.v0);
-    WRITEF(gmesa->buf, Vw, v2->v.w);
-    WRITEF(gmesa->buf, Vz, v2->v.z);
-    WRITEF(gmesa->buf, Vy, v2->v.y);
-    WRITEF(gmesa->buf, Vx4, v2->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v2->v.w);
-    WRITEF(gmesa->buf, Vz, v2->v.z);
-    WRITEF(gmesa->buf, Vy, v2->v.y);
-    WRITEF(gmesa->buf, Vx4, v2->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-#if (IND & GAMMA_RAST_ALPHA_BIT)
-    vColor = (v3->v.color.alpha << 24) |
-            (v3->v.color.blue  << 16) |
-            (v3->v.color.green <<  8) |
-            (v3->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor4, vColor);
-#else
-    vColor = (v3->v.color.blue  << 16) |
-            (v3->v.color.green <<  8) |
-            (v3->v.color.red   <<  0);
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, PackedColor3, vColor);
-#endif
-#endif
-
-#if (IND & GAMMA_RAST_TEX_BIT)
-    CHECK_DMA_BUFFER(gmesa, 6);
-    WRITEF(gmesa->buf, Tt2, v3->v.u0);
-    WRITEF(gmesa->buf, Ts2, v3->v.v0);
-    WRITEF(gmesa->buf, Vw, v3->v.w);
-    WRITEF(gmesa->buf, Vz, v3->v.z);
-    WRITEF(gmesa->buf, Vy, v3->v.y);
-    WRITEF(gmesa->buf, Vx4, v3->v.x);
-#else
-    CHECK_DMA_BUFFER(gmesa, 4);
-    WRITEF(gmesa->buf, Vw, v3->v.w);
-    WRITEF(gmesa->buf, Vz, v3->v.z);
-    WRITEF(gmesa->buf, Vy, v3->v.y);
-    WRITEF(gmesa->buf, Vx4, v3->v.x);
-#endif
-
-#if !(IND & GAMMA_RAST_FLAT_BIT)
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, FlushSpan, 0);
-#endif
-
-    CHECK_DMA_BUFFER(gmesa, 1);
-    WRITE(gmesa->buf, End, 0);
-}
-
-static void TAG(gamma_init)(void)
-{
-       gamma_point_tab[IND]    = TAG(gamma_point);
-       gamma_line_tab[IND]     = TAG(gamma_line);
-       gamma_tri_tab[IND]      = TAG(gamma_triangle);
-       gamma_quad_tab[IND]     = TAG(gamma_quad);
-}
-
-#undef IND
-#undef TAG
diff --git a/src/mesa/drivers/dri/gamma/gamma_vb.c b/src/mesa/drivers/dri/gamma/gamma_vb.c
deleted file mode 100644 (file)
index c9c1ebf..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *           Keith Whitwell, <keith@tungstengraphics.com>
- *
- * 3DLabs Gamma driver.
- */
-#include "main/glheader.h"
-#include "main/mtypes.h"
-#include "main/imports.h"
-#include "main/macros.h"
-#include "main/colormac.h"
-
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/t_context.h"
-#include "tnl/tnl.h"
-
-#include "gamma_context.h"
-#include "gamma_vb.h"
-#include "gamma_tris.h"
-
-
-#define GAMMA_TEX0_BIT       0x1       
-#define GAMMA_RGBA_BIT       0x2
-#define GAMMA_XYZW_BIT       0x4
-#define GAMMA_PTEX_BIT       0x8
-#define GAMMA_FOG_BIT        0x10
-#define GAMMA_SPEC_BIT       0x20
-#define GAMMA_MAX_SETUP      0x40
-
-static struct {
-   void                (*emit)( GLcontext *, GLuint, GLuint, void *, GLuint );
-   tnl_interp_func             interp;
-   tnl_copy_pv_func            copy_pv;
-   GLboolean           (*check_tex_sizes)( GLcontext *ctx );
-   GLuint               vertex_size;
-   GLuint               vertex_format;
-} setup_tab[GAMMA_MAX_SETUP];
-
-#define TINY_VERTEX_FORMAT      1
-#define NOTEX_VERTEX_FORMAT     2
-#define TEX0_VERTEX_FORMAT      3
-#define TEX1_VERTEX_FORMAT      0
-#define PROJ_TEX1_VERTEX_FORMAT 0
-#define TEX2_VERTEX_FORMAT      0
-#define TEX3_VERTEX_FORMAT      0
-#define PROJ_TEX3_VERTEX_FORMAT 0
-
-#define DO_XYZW (IND & GAMMA_XYZW_BIT)
-#define DO_RGBA (IND & GAMMA_RGBA_BIT)
-#define DO_SPEC (IND & GAMMA_SPEC_BIT)
-#define DO_FOG  (IND & GAMMA_FOG_BIT)
-#define DO_TEX0 (IND & GAMMA_TEX0_BIT)
-#define DO_TEX1 0
-#define DO_TEX2 0
-#define DO_TEX3 0
-#define DO_PTEX (IND & GAMMA_PTEX_BIT)
-                              
-#define VERTEX gammaVertex
-#define VERTEX_COLOR gamma_color_t
-#define GET_VIEWPORT_MAT() 0
-#define GET_TEXSOURCE(n)  n
-#define GET_VERTEX_FORMAT() GAMMA_CONTEXT(ctx)->vertex_format
-#define GET_VERTEX_STORE() GAMMA_CONTEXT(ctx)->verts
-#define GET_VERTEX_SIZE() GAMMA_CONTEXT(ctx)->vertex_size * sizeof(GLuint)
-#define INVALIDATE_STORED_VERTICES()
-
-#define HAVE_HW_VIEWPORT    1
-#define HAVE_HW_DIVIDE      1
-#define HAVE_RGBA_COLOR     0  /* we're BGRA */
-#define HAVE_TINY_VERTICES  1
-#define HAVE_NOTEX_VERTICES 1
-#define HAVE_TEX0_VERTICES  1
-#define HAVE_TEX1_VERTICES  0
-#define HAVE_TEX2_VERTICES  0
-#define HAVE_TEX3_VERTICES  0
-#define HAVE_PTEX_VERTICES  1
-
-#define PTEX_FALLBACK()                /* never needed */
-
-#define INTERP_VERTEX setup_tab[GAMMA_CONTEXT(ctx)->SetupIndex].interp
-#define COPY_PV_VERTEX setup_tab[GAMMA_CONTEXT(ctx)->SetupIndex].copy_pv
-
-
-
-/***********************************************************************
- *         Generate  pv-copying and translation functions              *
- ***********************************************************************/
-
-#define TAG(x) gamma_##x
-#include "tnl_dd/t_dd_vb.c"
-
-/***********************************************************************
- *             Generate vertex emit and interp functions               *
- ***********************************************************************/
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT)
-#define TAG(x) x##_wg
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_SPEC_BIT)
-#define TAG(x) x##_wgs
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_wgt0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_TEX0_BIT|GAMMA_PTEX_BIT)
-#define TAG(x) x##_wgpt0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_SPEC_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_wgst0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_SPEC_BIT|GAMMA_TEX0_BIT|\
-             GAMMA_PTEX_BIT)
-#define TAG(x) x##_wgspt0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_FOG_BIT)
-#define TAG(x) x##_wgf
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_SPEC_BIT)
-#define TAG(x) x##_wgfs
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_wgft0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_TEX0_BIT|\
-             GAMMA_PTEX_BIT)
-#define TAG(x) x##_wgfpt0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_SPEC_BIT|\
-             GAMMA_TEX0_BIT)
-#define TAG(x) x##_wgfst0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_XYZW_BIT|GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_SPEC_BIT|\
-             GAMMA_TEX0_BIT|GAMMA_PTEX_BIT)
-#define TAG(x) x##_wgfspt0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_TEX0_BIT)
-#define TAG(x) x##_t0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_FOG_BIT)
-#define TAG(x) x##_f
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_FOG_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_ft0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT)
-#define TAG(x) x##_g
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT|GAMMA_SPEC_BIT)
-#define TAG(x) x##_gs
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_gt0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT|GAMMA_SPEC_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_gst0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT|GAMMA_FOG_BIT)
-#define TAG(x) x##_gf
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_SPEC_BIT)
-#define TAG(x) x##_gfs
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_gft0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-#define IND (GAMMA_RGBA_BIT|GAMMA_FOG_BIT|GAMMA_SPEC_BIT|GAMMA_TEX0_BIT)
-#define TAG(x) x##_gfst0
-#include "tnl_dd/t_dd_vbtmp.h"
-
-static void init_setup_tab( void )
-{
-   init_wg();
-   init_wgs();
-   init_wgt0();
-   init_wgpt0();
-   init_wgst0();
-   init_wgspt0();
-   init_wgf();
-   init_wgfs();
-   init_wgft0();
-   init_wgfpt0();
-   init_wgfst0();
-   init_wgfspt0();
-   init_t0();
-   init_f();
-   init_ft0();
-   init_g();
-   init_gs();
-   init_gt0();
-   init_gst0();
-   init_gf();
-   init_gfs();
-   init_gft0();
-   init_gfst0();
-}
-
-void gammaCheckTexSizes( GLcontext *ctx )
-{
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   gammaContextPtr gmesa = GAMMA_CONTEXT( ctx );
-
-   if (!setup_tab[gmesa->SetupIndex].check_tex_sizes(ctx)) {
-      /* Invalidate stored verts
-       */
-      gmesa->SetupNewInputs = ~0;
-      gmesa->SetupIndex |= GAMMA_PTEX_BIT;
-
-      if (!(ctx->_TriangleCaps & (DD_TRI_LIGHT_TWOSIDE|DD_TRI_UNFILLED))) {
-        tnl->Driver.Render.Interp = setup_tab[gmesa->SetupIndex].interp;
-        tnl->Driver.Render.CopyPV = setup_tab[gmesa->SetupIndex].copy_pv;
-      }
-   }
-}
-
-void gammaBuildVertices( GLcontext *ctx, 
-                        GLuint start, 
-                        GLuint count,
-                        GLuint newinputs )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT( ctx );
-   GLuint stride = gmesa->vertex_size * sizeof(int);
-   GLubyte *v = ((GLubyte *)gmesa->verts + (start * stride));
-
-   newinputs |= gmesa->SetupNewInputs;
-   gmesa->SetupNewInputs = 0;
-
-   if (!newinputs)
-      return;
-
-   if (newinputs & VERT_BIT_POS) {
-      setup_tab[gmesa->SetupIndex].emit( ctx, start, count, v, stride );
-   } else {
-      GLuint ind = 0;
-
-      if (newinputs & VERT_BIT_COLOR0)
-        ind |= GAMMA_RGBA_BIT;
-
-      if (newinputs & VERT_BIT_COLOR1)
-        ind |= GAMMA_SPEC_BIT;
-
-      if (newinputs & VERT_BIT_TEX0)
-        ind |= GAMMA_TEX0_BIT;
-
-      if (newinputs & VERT_BIT_FOG)
-        ind |= GAMMA_FOG_BIT;
-
-      if (gmesa->SetupIndex & GAMMA_PTEX_BIT)
-        ind = ~0;
-
-      ind &= gmesa->SetupIndex;
-
-      if (ind) {
-        setup_tab[ind].emit( ctx, start, count, v, stride );
-      }
-   }
-}
-
-void gammaChooseVertexState( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT( ctx );
-   TNLcontext *tnl = TNL_CONTEXT(ctx);
-   GLuint ind = GAMMA_XYZW_BIT|GAMMA_RGBA_BIT;
-
-   if (ctx->_TriangleCaps & DD_SEPARATE_SPECULAR)
-      ind |= GAMMA_SPEC_BIT;
-
-   if (ctx->Fog.Enabled)
-      ind |= GAMMA_FOG_BIT;
-
-   if (ctx->Texture.Unit[0]._ReallyEnabled) {
-      _tnl_need_projected_coords( ctx, GL_FALSE );
-      ind |= GAMMA_TEX0_BIT;
-   } else
-      _tnl_need_projected_coords( ctx, GL_FALSE );
-
-   gmesa->SetupIndex = ind;
-
-   if (setup_tab[ind].vertex_format != gmesa->vertex_format) {
-      gmesa->vertex_format = setup_tab[ind].vertex_format;
-      gmesa->vertex_size = setup_tab[ind].vertex_size;
-   }
-
-   if (ctx->_TriangleCaps & (DD_TRI_LIGHT_TWOSIDE|DD_TRI_UNFILLED)) {
-      tnl->Driver.Render.Interp = gamma_interp_extras;
-      tnl->Driver.Render.CopyPV = gamma_copy_pv_extras;
-   } else {
-      tnl->Driver.Render.Interp = setup_tab[ind].interp;
-      tnl->Driver.Render.CopyPV = setup_tab[ind].copy_pv;
-   }
-}
-
-
-void gammaInitVB( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   GLuint size = TNL_CONTEXT(ctx)->vb.Size;
-
-   gmesa->verts = (GLubyte *)_mesa_align_malloc(size * 4 * 16, 32);
-
-   {
-      static int firsttime = 1;
-      if (firsttime) {
-        init_setup_tab();
-        firsttime = 0;
-        gmesa->vertex_size = 16; /* FIXME - only one vertex setup */
-      }
-   }
-}
-
-
-void gammaFreeVB( GLcontext *ctx )
-{
-   gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
-   if (gmesa->verts) {
-      _mesa_align_free(gmesa->verts);
-      gmesa->verts = 0;
-   }
-}
diff --git a/src/mesa/drivers/dri/gamma/gamma_vb.h b/src/mesa/drivers/dri/gamma/gamma_vb.h
deleted file mode 100644 (file)
index 8701226..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *           Keith Whitwell, <keith@tungstengraphics.com>
- *
- * 3DLabs Gamma driver.
- */
-
-#ifndef GAMMAVB_INC
-#define GAMMAVB_INC
-
-#include "main/mtypes.h"
-#include "swrast/swrast.h"
-
-#define _GAMMA_NEW_VERTEX (_NEW_TEXTURE |              \
-                          _DD_NEW_TRI_UNFILLED |       \
-                          _DD_NEW_TRI_LIGHT_TWOSIDE)
-
-
-extern void gammaChooseVertexState( GLcontext *ctx );
-extern void gammaCheckTexSizes( GLcontext *ctx );
-extern void gammaBuildVertices( GLcontext *ctx, 
-                               GLuint start, 
-                               GLuint count,
-                               GLuint newinputs );
-
-
-extern void gamma_import_float_colors( GLcontext *ctx );
-extern void gamma_import_float_spec_colors( GLcontext *ctx );
-
-extern void gamma_translate_vertex( GLcontext *ctx, 
-                                   const gammaVertex *src, 
-                                   SWvertex *dst );
-
-extern void gammaInitVB( GLcontext *ctx );
-extern void gammaFreeVB( GLcontext *ctx );
-
-extern void gamma_print_vertex( GLcontext *ctx, const gammaVertex *v );
-extern void gammaPrintSetupFlags(char *msg, GLuint flags );
-
-#endif
diff --git a/src/mesa/drivers/dri/gamma/gamma_xmesa.c b/src/mesa/drivers/dri/gamma/gamma_xmesa.c
deleted file mode 100644 (file)
index 622121e..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Copyright 2001 by Alan Hourihane.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Alan Hourihane not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Alan Hourihane makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors:  Alan Hourihane, <alanh@tungstengraphics.com>
- *
- * 3DLabs Gamma driver
- */
-
-#include "gamma_context.h"
-#include "gamma_macros.h"
-#include "gamma_vb.h"
-#include "main/context.h"
-#include "main/matrix.h"
-#include "glint_dri.h"
-
-#include "swrast/swrast.h"
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/tnl.h"
-#include "vbo/vbo.h"
-
-static GLboolean 
-gammaInitDriver(__DRIscreen *sPriv)
-{
-    sPriv->private = (void *) gammaCreateScreen( sPriv );
-
-    if (!sPriv->private) {
-       gammaDestroyScreen( sPriv );
-       return GL_FALSE;
-    }
-
-    return GL_TRUE;
-}
-
-static void 
-gammaDestroyContext(__DRIcontext *driContextPriv)
-{
-    gammaContextPtr gmesa = (gammaContextPtr)driContextPriv->driverPrivate;
-
-    if (gmesa) {
-      _swsetup_DestroyContext( gmesa->glCtx );
-      _tnl_DestroyContext( gmesa->glCtx );
-      _vbo_DestroyContext( gmesa->glCtx );
-      _swrast_DestroyContext( gmesa->glCtx );
-
-      gammaFreeVB( gmesa->glCtx );
-
-      /* free the Mesa context */
-      gmesa->glCtx->DriverCtx = NULL;
-      _mesa_destroy_context(gmesa->glCtx);
-
-      FREE(gmesa);
-      driContextPriv->driverPrivate = NULL;
-    }
-}
-
-
-static GLboolean
-gammaCreateBuffer( __DRIscreen *driScrnPriv,
-                   __DRIdrawable *driDrawPriv,
-                   const __GLcontextModes *mesaVis,
-                   GLboolean isPixmap )
-{
-   if (isPixmap) {
-      return GL_FALSE; /* not implemented */
-   }
-   else {
-      driDrawPriv->driverPrivate = (void *) 
-         _mesa_create_framebuffer(mesaVis,
-                                  GL_FALSE,  /* software depth buffer? */
-                                  mesaVis->stencilBits > 0,
-                                  mesaVis->accumRedBits > 0,
-                                  mesaVis->alphaBits > 0
-                                  );
-      return (driDrawPriv->driverPrivate != NULL);
-   }
-}
-
-
-static void
-gammaDestroyBuffer(__DRIdrawable *driDrawPriv)
-{
-   _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL);
-}
-
-static void
-gammaSwapBuffers( __DRIdrawable *dPriv )
-{
-   if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) {
-    gammaContextPtr gmesa;
-    __DRIscreen *driScrnPriv;
-    GLcontext *ctx;
-
-    gmesa = (gammaContextPtr) dPriv->driContextPriv->driverPrivate;
-    ctx = gmesa->glCtx;
-    driScrnPriv = gmesa->driScreen;
-
-    _mesa_notifySwapBuffers(ctx);
-
-    VALIDATE_DRAWABLE_INFO(gmesa);
-
-    /* Flush any partially filled buffers */
-    FLUSH_DMA_BUFFER(gmesa);
-
-    DRM_SPINLOCK(&driScrnPriv->pSAREA->drawable_lock,
-                    driScrnPriv->drawLockID);
-    VALIDATE_DRAWABLE_INFO_NO_LOCK(gmesa);
-
-    if (gmesa->EnabledFlags & GAMMA_BACK_BUFFER) {
-       int src, dst, x0, y0, x1, h;
-       int i;
-       int nRect = dPriv->numClipRects;
-       drm_clip_rect_t *pRect = dPriv->pClipRects;
-       __DRIscreen *driScrnPriv = gmesa->driScreen;
-       GLINTDRIPtr gDRIPriv = (GLINTDRIPtr)driScrnPriv->pDevPriv;
-
-       CHECK_DMA_BUFFER(gmesa, 2);
-       WRITE(gmesa->buf, FBReadMode, (gmesa->FBReadMode |
-                                        FBReadSrcEnable));
-       WRITE(gmesa->buf, LBWriteMode, LBWriteModeDisable);
-
-       for (i = 0; i < nRect; i++, pRect++) {
-           x0 = pRect->x1;
-           x1 = pRect->x2;
-           h  = pRect->y2 - pRect->y1;
-
-           y0 = driScrnPriv->fbHeight - (pRect->y1+h);
-           if (gDRIPriv->numMultiDevices == 2) 
-               src = (y0/2)*driScrnPriv->fbWidth+x0;
-           else
-               src = y0*driScrnPriv->fbWidth+x0;
-
-           y0 += driScrnPriv->fbHeight;
-           if (gDRIPriv->numMultiDevices == 2) 
-               dst = (y0/2)*driScrnPriv->fbWidth+x0;
-           else
-               dst = y0*driScrnPriv->fbWidth+x0;
-
-           CHECK_DMA_BUFFER(gmesa, 9);
-           WRITE(gmesa->buf, StartXDom,       x0<<16);   /* X0dest */
-           WRITE(gmesa->buf, StartY,          y0<<16);   /* Y0dest */
-           WRITE(gmesa->buf, StartXSub,       x1<<16);   /* X1dest */
-           WRITE(gmesa->buf, GLINTCount,      h);        /* H */
-           WRITE(gmesa->buf, dY,              1<<16);    /* ydir */
-           WRITE(gmesa->buf, dXDom,           0<<16);
-           WRITE(gmesa->buf, dXSub,           0<<16);
-           WRITE(gmesa->buf, FBSourceOffset, (dst-src));
-           WRITE(gmesa->buf, Render,          0x00040048); /* NOT_DONE */
-       }
-
-       /*
-       ** NOTE: FBSourceOffset (above) is backwards from what is
-       ** described in the manual (i.e., dst-src instead of src-dst)
-       ** due to our using the bottom-left window origin instead of the
-       ** top-left window origin.
-       */
-
-       /* Restore FBReadMode */
-       CHECK_DMA_BUFFER(gmesa, 2);
-       WRITE(gmesa->buf, FBReadMode, (gmesa->FBReadMode |
-                                      gmesa->AB_FBReadMode));
-       WRITE(gmesa->buf, LBWriteMode, LBWriteModeEnable);
-    }
-
-    if (gmesa->EnabledFlags & GAMMA_BACK_BUFFER)
-        PROCESS_DMA_BUFFER_TOP_HALF(gmesa);
-
-    DRM_SPINUNLOCK(&driScrnPriv->pSAREA->drawable_lock,
-                      driScrnPriv->drawLockID);
-    VALIDATE_DRAWABLE_INFO_NO_LOCK_POST(gmesa);
-
-    if (gmesa->EnabledFlags & GAMMA_BACK_BUFFER)
-        PROCESS_DMA_BUFFER_BOTTOM_HALF(gmesa);
-  } else {
-    _mesa_problem(NULL, "gammaSwapBuffers: drawable has no context!\n");
-  }
-}
-
-static GLboolean 
-gammaMakeCurrent(__DRIcontext *driContextPriv,
-                __DRIdrawable *driDrawPriv,
-                __DRIdrawable *driReadPriv)
-{
-    if (driContextPriv) {
-       GET_CURRENT_CONTEXT(ctx);
-       gammaContextPtr oldGammaCtx = ctx ? GAMMA_CONTEXT(ctx) : NULL;
-       gammaContextPtr newGammaCtx = (gammaContextPtr) driContextPriv->driverPrivate;
-
-       if ( newGammaCtx != oldGammaCtx ) {
-           newGammaCtx->dirty = ~0;
-       }
-
-       if (newGammaCtx->driDrawable != driDrawPriv) {
-           newGammaCtx->driDrawable = driDrawPriv;
-           gammaUpdateWindow ( newGammaCtx->glCtx );
-           gammaUpdateViewportOffset( newGammaCtx->glCtx );
-       }
-
-#if 0
-       newGammaCtx->Window &= ~W_GIDMask;
-       newGammaCtx->Window |= (driDrawPriv->index << 5);
-       CHECK_DMA_BUFFER(newGammaCtx,1);
-       WRITE(newGammaCtx->buf, GLINTWindow, newGammaCtx->Window);
-#endif
-
-newGammaCtx->new_state |= GAMMA_NEW_WINDOW; /* FIXME */
-
-       _mesa_make_current2( newGammaCtx->glCtx, 
-                         (GLframebuffer *) driDrawPriv->driverPrivate,
-                         (GLframebuffer *) driReadPriv->driverPrivate );
-    } else {
-       _mesa_make_current( 0, 0 );
-    }
-    return GL_TRUE;
-}
-
-
-static GLboolean 
-gammaUnbindContext( __DRIcontext *driContextPriv )
-{
-   return GL_TRUE;
-}
-
-const struct __DriverAPIRec driDriverAPI = {
-   gammaInitDriver,
-   gammaDestroyScreen,
-   gammaCreateContext,
-   gammaDestroyContext,
-   gammaCreateBuffer,
-   gammaDestroyBuffer,
-   gammaSwapBuffers,
-   gammaMakeCurrent,
-   gammaUnbindContext
-};
-
-
-
-/*
- * This is the bootstrap function for the driver.
- * The __driCreateScreen name is the symbol that libGL.so fetches.
- * Return:  pointer to a __DRIscreen.
- */
-void *__driCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
-                        int numConfigs, __GLXvisualConfig *config)
-{
-   __DRIscreen *psp;
-   psp = __driUtilCreateScreen(dpy, scrn, psc, numConfigs, config, &gammaAPI);
-   return (void *) psp;
-}
-
-/* This is the table of extensions that the loader will dlsym() for. */
-PUBLIC const __DRIextension *__driDriverExtensions[] = {
-    &driCoreExtension.base,
-    &driLegacyExtension.base,
-    NULL
-};
diff --git a/src/mesa/drivers/dri/gamma/server/glint_common.h b/src/mesa/drivers/dri/gamma/server/glint_common.h
deleted file mode 100644 (file)
index 36554e4..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/* glint_common.h -- common header definitions for Gamma 2D/3D/DRM suite
- *
- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Converted to common header format:
- *   Jens Owen <jens@tungstengraphics.com>
- *
- *
- */
-
-#ifndef _GLINT_COMMON_H_
-#define _GLINT_COMMON_H_
-
-/*
- * WARNING: If you change any of these defines, make sure to change
- * the kernel include file as well (gamma_drm.h)
- */
-
-/* Driver specific DRM command indices
- * NOTE: these are not OS specific, but they are driver specific
- */
-#define DRM_GAMMA_INIT                0x00
-#define DRM_GAMMA_COPY                0x01
-
-typedef struct {
-   enum {
-      GAMMA_INIT_DMA    = 0x01,
-      GAMMA_CLEANUP_DMA = 0x02
-   } func;
-   int sarea_priv_offset;
-   int pcimode;
-   unsigned int mmio0;
-   unsigned int mmio1;
-   unsigned int mmio2;
-   unsigned int mmio3;
-   unsigned int buffers_offset;
-   int num_rast;
-} drmGAMMAInit;
-
-extern int drmGAMMAInitDMA( int fd, drmGAMMAInit *info );
-extern int drmGAMMACleanupDMA( int fd );
-
-#endif
diff --git a/src/mesa/drivers/dri/gamma/server/glint_dri.h b/src/mesa/drivers/dri/gamma/server/glint_dri.h
deleted file mode 100644 (file)
index df1992a..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Author:
- *   Jens Owen <jens@tungstengraphics.com>
- *
- */
-
-#ifndef _GLINT_DRI_H_
-#define _GLINT_DRI_H_
-
-#include "xf86drm.h"
-#include "glint_common.h"
-
-typedef struct {
-       unsigned int    GDeltaMode;
-       unsigned int    GDepthMode;
-       unsigned int    GGeometryMode;
-       unsigned int    GTransformMode;
-} GAMMAContextRegionRec, *GAMMAContextRegionPtr;
-
-typedef struct {
-       unsigned char next, prev; /* indices to form a circular LRU  */
-       unsigned char in_use;   /* owned by a client, or free? */
-       int age;                /* tracked by clients to update local LRU's */
-} GAMMATextureRegionRec, *GAMMATextureRegionPtr;
-
-typedef struct {
-       GAMMAContextRegionRec context_state;
-
-       unsigned int dirty;
-
-       /* Maintain an LRU of contiguous regions of texture space.  If
-        * you think you own a region of texture memory, and it has an
-        * age different to the one you set, then you are mistaken and
-        * it has been stolen by another client.  If global texAge
-        * hasn't changed, there is no need to walk the list.
-        *
-        * These regions can be used as a proxy for the fine-grained
-        * texture information of other clients - by maintaining them
-        * in the same lru which is used to age their own textures,
-        * clients have an approximate lru for the whole of global
-        * texture space, and can make informed decisions as to which
-        * areas to kick out.  There is no need to choose whether to
-        * kick out your own texture or someone else's - simply eject
-        * them all in LRU order.  
-        */
-   
-#define GAMMA_NR_TEX_REGIONS 64
-       GAMMATextureRegionRec texList[GAMMA_NR_TEX_REGIONS+1];
-                               /* Last elt is sentinal */
-        int texAge;            /* last time texture was uploaded */
-        int last_enqueue;      /* last time a buffer was enqueued */
-       int last_dispatch;      /* age of the most recently dispatched buffer */
-       int last_quiescent;     /*  */
-       int ctxOwner;           /* last context to upload state */
-
-       int vertex_prim;
-} GLINTSAREADRIRec, *GLINTSAREADRIPtr;
-
-/* 
- * Glint specific record passed back to client driver 
- * via DRIGetDeviceInfo request
- */
-typedef struct {
-    drmRegion  registers0;
-    drmRegion  registers1;
-    drmRegion  registers2;
-    drmRegion  registers3;
-    int                        numMultiDevices;
-    int                        pprod;
-    int                        cpp;
-    int                        frontOffset;
-    int                        frontPitch;
-    int                        backOffset;
-    int                        backPitch;
-    int                        backX;
-    int                        backY;
-    int                        depthOffset;
-    int                        depthPitch;
-    int                        textureSize;
-    int                logTextureGranularity;
-} GLINTDRIRec, *GLINTDRIPtr;
-
-#define GLINT_DRI_BUF_COUNT 256
-#define GLINT_DRI_BUF_SIZE  4096
-
-#define GAMMA_NR_TEX_REGIONS 64
-
-#define DMA_WRITE(val,reg)                                            \
-do {                                                                  \
-    pGlint->buf2D++ = Glint##reg##Tag;                                 \
-    pGlint->buf2D++ = val;                                           \
-} while (0)
-
-#endif /* _GLINT_DRI_H_ */