X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fffb%2Fffb_span.c;h=61901cccadd55e5c86fd944d98c830097f7632fa;hb=cd8614b0287dc5a69725ec4ee0208fad61f7789e;hp=6927945226b07b0aed407dcbf47442c114bfbda1;hpb=13e6a4849c6800eac454fd1010cb2320874f2ed6;p=mesa.git diff --git a/src/mesa/drivers/dri/ffb/ffb_span.c b/src/mesa/drivers/dri/ffb/ffb_span.c index 6927945226b..61901cccadd 100644 --- a/src/mesa/drivers/dri/ffb/ffb_span.c +++ b/src/mesa/drivers/dri/ffb/ffb_span.c @@ -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 @@ -25,14 +25,12 @@ * David S. Miller */ -#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 +#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); }