Merge branch 'mesa_7_7_branch'
[mesa.git] / src / mesa / drivers / dri / ffb / ffb_span.c
index 6927945226b07b0aed407dcbf47442c114bfbda1..61901cccadd55e5c86fd944d98c830097f7632fa 100644 (file)
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/ffb/ffb_span.c,v 1.2 2002/02/22 21:32:59 dawes Exp $
+/* 
  *
  * GLX Hardware Device Driver for Sun Creator/Creator3D
  * Copyright (C) 2000 David S. Miller
  *    David S. Miller <davem@redhat.com>
  */
 
-#include "mtypes.h"
+#include "main/mtypes.h"
 #include "ffb_dd.h"
 #include "ffb_span.h"
 #include "ffb_context.h"
 #include "ffb_lock.h"
 
-#include "swrast/swrast.h"
-
 #define DBG 0
 
 #define HW_LOCK()                                              \
@@ -45,7 +43,7 @@
                UNLOCK_HARDWARE(fmesa); \
 
 #define LOCAL_VARS                                             \
-       __DRIdrawablePrivate *dPriv = fmesa->driDrawable;       \
+       __DRIdrawable *dPriv = fmesa->driDrawable;      \
        GLuint height = dPriv->h;                               \
         GLuint p;                                              \
        char *buf;                                              \
@@ -93,7 +91,7 @@ do {  unsigned int fbc, ppc, cmp;                                     \
        fmesa->ffbScreen->rp_active = 1; \
 } while(0)
 
-#define Y_FLIP(__y)            (height - __y)
+#define Y_FLIP(__y)            (height - __y - 1)
 
 #define READ_RGBA(rgba,__x,__y)                                        \
 do {   GLuint p = *(GLuint *)(buf + ((__x)<<2) + ((__y)<<13)); \
@@ -114,29 +112,16 @@ do {      GLuint p = *(GLuint *)(buf + ((__x)<<2) + ((__y)<<13)); \
 
 #define TAG(x) ffb##x##_888
 
-#include <spantmp.h>
+#include "spantmp.h"
 
-void ffbDDInitSpanFuncs(GLcontext *ctx)
+/**
+ * Plug in the Get/Put routines for the given driRenderbuffer.
+ */
+void
+ffbSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis)
 {
-       struct swrast_device_driver *swdd = 
-               _swrast_GetDeviceDriverReference(ctx);
-   
-       swdd->WriteRGBASpan     = ffbWriteRGBASpan_888;
-       swdd->WriteRGBSpan      = ffbWriteRGBSpan_888;
-       swdd->WriteRGBAPixels   = ffbWriteRGBAPixels_888;
-       swdd->WriteMonoRGBASpan = ffbWriteMonoRGBASpan_888;
-       swdd->WriteMonoRGBAPixels       = ffbWriteMonoRGBAPixels_888;
-       swdd->ReadRGBASpan      = ffbReadRGBASpan_888;
-       swdd->ReadRGBAPixels    = ffbReadRGBAPixels_888;
-
-       /* We don't support color index mode yet, but it will be
-        * very easy to do. -DaveM
-        */
-       swdd->WriteCI8Span        = NULL;
-       swdd->WriteCI32Span       = NULL;
-       swdd->WriteMonoCISpan     = NULL;
-       swdd->WriteCI32Pixels     = NULL;
-       swdd->WriteMonoCIPixels   = NULL;
-       swdd->ReadCI32Span        = NULL;
-       swdd->ReadCI32Pixels      = NULL;
+       assert(vis->redBits == 8);
+        assert(vis->greenBits == 8);
+        assert(vis->blueBits == 8);
+        ffbInitPointers_888(&drb->Base);
 }