Fixed GGIMesa build problems.
authorJon Taylor <taylorj@ggi-project.org>
Thu, 28 Dec 2000 02:00:27 +0000 (02:00 +0000)
committerJon Taylor <taylorj@ggi-project.org>
Thu, 28 Dec 2000 02:00:27 +0000 (02:00 +0000)
Swrast triangle drawing fixes.

src/mesa/drivers/ggi/default/stubs.c
src/mesa/drivers/ggi/ggimesa.c

index a47d0ff4cca44abc6f9afd99cb3c7c140aeb72df..8730088348b0a65e0799aeb799fa3eb0266762fc 100644 (file)
@@ -29,6 +29,9 @@
 
 #include "swrast/swrast.h"
 #include "swrast_setup/swrast_setup.h"
+#include "swrast/s_context.h"
+#include "swrast/s_depth.h"
+#include "swrast/s_triangle.h"
 
 /**********************************************************************/
 /*****            Write spans of pixels                           *****/
@@ -294,32 +297,25 @@ void GGIread_rgba_pixels( const GLcontext *ctx,
 }
 
 
-triangle_func ggiGetTriangleFunc(GLcontext *ctx);
+static swrast_tri_func ggimesa_stubs_get_triangle_func(GLcontext *ctx);
 
-int GGIsetup_driver(GGIMesaContext ggictx,struct ggi_mesa_info *info)
+int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info)
 {
-       GLcontext *ctx=ggictx->gl_ctx;
+       GLcontext *ctx = ggictx->gl_ctx;
 
        ctx->Driver.WriteRGBASpan       = GGIwrite_rgba_span;
        ctx->Driver.WriteRGBSpan        = GGIwrite_rgb_span;
-//     ctx->Driver.WriteMonoRGBASpan   = GGIwrite_mono_span;
        ctx->Driver.WriteRGBAPixels     = GGIwrite_rgba_pixels;
-//     ctx->Driver.WriteMonoRGBAPixels = GGIwrite_mono_pixels;
 
        ctx->Driver.WriteCI32Span       = GGIwrite_ci32_span;
        ctx->Driver.WriteCI8Span        = GGIwrite_ci8_span;
-//     ctx->Driver.WriteMonoCISpan     = GGIwrite_mono_span;
        ctx->Driver.WriteCI32Pixels     = GGIwrite_ci32_pixels;
-//     ctx->Driver.WriteMonoCIPixels   = GGIwrite_mono_pixels;
 
        ctx->Driver.ReadCI32Span        = GGIread_ci32_span;
        ctx->Driver.ReadRGBASpan        = GGIread_rgba_span;
        ctx->Driver.ReadCI32Pixels      = GGIread_ci32_pixels;
        ctx->Driver.ReadRGBAPixels      = GGIread_rgba_pixels;
        
-       ctx->Driver.RegisterVB          = _swsetup_RegisterVB;
-       ctx->Driver.UnregisterVB                = _swsetup_UnregisterVB;
-
        return 0;
 }
 
@@ -329,37 +325,38 @@ void GGIupdate_state(GLcontext *ctx)
 }
 
 
-void GGItriangle_flat(GLcontext *ctx,GLuint v0,GLuint v1,GLuint v2,GLuint pv)
+void GGItriangle_flat(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2)
 {
 //#define INTERP_Z 1
-//#define INTERP_RGB 1
-//#define INTERP_ALPHA 1
+#define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE   
        
-#define SETUP_CODE                     \
-       GLubyte r = VB->ColorPtr->data[pv][0];  \
-       GLubyte g = VB->ColorPtr->data[pv][1];  \
-       GLubyte b = VB->ColorPtr->data[pv][2];  \
-       GLubyte a = VB->ColorPtr->data[pv][3];  \
-       (*ctx->Driver.Color)(ctx,r,g,b,a);
+#define SETUP_CODE             \
+       ggi_color color;        \
+       color.r = v0->color[0]; \
+       color.g = v0->color[1]; \
+       color.b = v0->color[2]; \
+       color.a = v0->color[3]; \
+       ggiSetGCForeground(VIS, ggiMapColor(VIS, &color));
 
 #define INNER_LOOP(LEFT,RIGHT,Y)                               \
                ggiDrawHLine(VIS,LEFT,FLIP(Y),RIGHT-LEFT);      
                
-//#include "tritemp.h"
+#include "swrast/s_tritemp.h"
 }
 
 
-void GGItriangle_flat_depth(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint pv)
+static void GGItriangle_flat_depth(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2)
 {
 #define INTERP_Z 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 
-#define SETUP_CODE                     \
-       GLubyte r = VB->ColorPtr->data[pv][0];  \
-       GLubyte g = VB->ColorPtr->data[pv][1];  \
-       GLubyte b = VB->ColorPtr->data[pv][2];  \
-       GLubyte a = VB->ColorPtr->data[pv][3];  \
-       (*ctx->Driver.Color)(ctx,r,g,b,a);
+#define SETUP_CODE             \
+       ggi_color color;        \
+       color.r = v0->color[0]; \
+       color.g = v0->color[1]; \
+       color.b = v0->color[2]; \
+       color.a = v0->color[3]; \
+       ggiSetGCForeground(VIS, ggiMapColor(VIS, &color));
        
 #define INNER_LOOP(LEFT,RIGHT,Y)                                       \
        {                                                               \
@@ -386,11 +383,11 @@ void GGItriangle_flat_depth(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLu
        if (length) ggiDrawHLine(VIS,startx,yy,length);                 \
        }
 
-//#include "tritemp.h" 
+#include "swrast/s_tritemp.h"
 }
 
 
-triangle_func ggiGetTriangleFunc(GLcontext *ctx)
+static swrast_tri_func ggimesa_stubs_get_triangle_func(GLcontext *ctx)
 {
        if (ctx->Stencil.Enabled) return NULL;
        if (ctx->Polygon.SmoothFlag) return NULL;
index b10f74ec0cfe433cf1b61812227b923e71aca1ed..cc22ba32b7ecdda228802ae0b368bf2c84771d3e 100644 (file)
@@ -54,7 +54,7 @@ static char *ggimesaconffile = ggimesaconfstub + GGIMESATAGLEN;
 int _ggimesaDebugSync = 0;
 uint32 _ggimesaDebugState = 0;
 
-static void gl_ggiUpdateState(GLcontext *ctx);
+static void gl_ggiUpdateState(GLcontext *ctx, GLuint new_state);
 static int changed(ggi_visual_t vis, int whatchanged);
 
 static void gl_ggiGetSize(GLcontext *ctx, GLuint *width, GLuint *height)
@@ -137,20 +137,6 @@ static GLbitfield gl_ggiClear(GLcontext *ctx,GLbitfield mask, GLboolean all,
        return mask & (~GL_COLOR_BUFFER_BIT);
 }
 
-#if 0
-static GLboolean gl_ggiSetBuffer(GLcontext *ctx, GLenum mode)
-{
-       GGIMESADPRINT_CORE("gl_ggiSetBuffer() called\n");
-       
-       if (mode == GL_FRONT)
-         GGICTX->active_buffer = 1;
-       else
-         GGICTX->active_buffer = 0;
-       
-       return GL_TRUE;
-}
-#endif
-
 /* Set the buffer used for drawing */
 static GLboolean gl_ggiSetDrawBuffer(GLcontext *ctx, GLenum mode)
 {
@@ -254,9 +240,7 @@ static void gl_ggiSetupPointers(GLcontext *ctx)
        ctx->Driver.LineFunc = _swsetup_Line;
        ctx->Driver.TriangleFunc = _swsetup_Triangle;
        ctx->Driver.QuadFunc = _swsetup_Quad;
-       ctx->Driver.RasterSetup = _swsetup_RasterSetup;
-       ctx->Driver.RegisterVB = _swsetup_RegisterVB;
-       ctx->Driver.UnregisterVB = _swsetup_UnregisterVB;
+       
 }
 
 static int gl_ggiInitInfo(GGIMesaContext ctx, struct ggi_mesa_info *info)