Reworked to use the new software rasterizer. Optimized line/tri functions
[mesa.git] / src / mesa / drivers / windows / wmesa_stereo.c
index fe3c315bd9a3550ed602d810cc2ef4659c9f7ba4..70251ae877e14f6a37d40a65fd42da51a9511ae2 100644 (file)
@@ -279,32 +279,6 @@ static void set_color( GLcontext* ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte
 \r
 \r
 \r
-/* Set the index mode bitplane mask. */\r
-static GLboolean index_mask(GLcontext* ctx, GLuint mask)\r
-{\r
-   /* can't implement */\r
-   return GL_FALSE;\r
-}\r
-\r
-\r
-\r
-/* Set the RGBA drawing mask. */\r
-static GLboolean color_mask( GLcontext* ctx,\r
-                                                        GLboolean rmask, GLboolean gmask,\r
-                                                        GLboolean bmask, GLboolean amask)\r
-{\r
-   /* can't implement */\r
-   return GL_FALSE;\r
-}\r
-\r
-\r
-\r
-static void dither( GLcontext* ctx, GLboolean enable )\r
-{\r
-   /* No op */\r
-}\r
-\r
-\r
 \r
 static GLboolean set_buffer( GLcontext* ctx, GLenum mode )\r
 {\r
@@ -446,7 +420,7 @@ extern points_func choose_points_function( GLcontext* ctx )
 {\r
    STARTPROFILE\r
    if (ctx->Point.Size==1.0 && !ctx->Point.SmoothFlag && ctx->RasterMask==0\r
-       && !ctx->Texture.Enabled  && ctx->Visual->RGBAflag) {\r
+       && !ctx->Texture.ReallyEnabled  && ctx->Visual->RGBAflag) {\r
    ENDPROFILE(choose_points_function)\r
       return fast_rgb_points;\r
    }\r
@@ -504,7 +478,7 @@ static line_func choose_line_function( GLcontext* ctx )
        STARTPROFILE\r
    if (ctx->Line.Width==1.0 && !ctx->Line.SmoothFlag && !ctx->Line.StippleFlag\r
        && ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0\r
-       && !ctx->Texture.Enabled && Current->rgb_flag) {\r
+       && !ctx->Texture.ReallyEnabled && Current->rgb_flag) {\r
    ENDPROFILE(choose_line_function)\r
       return fast_flat_rgb_line;\r
    }\r
@@ -615,7 +589,7 @@ static triangle_func choose_triangle_function( GLcontext *ctx )
 {\r
    if (ctx->Polygon.SmoothFlag)     return NULL;\r
    if (ctx->Polygon.StippleFlag)    return NULL;\r
-   if (ctx->Texture.Enabled)        return NULL;\r
+   if (ctx->Texture.ReallyEnabled)  return NULL;\r
 \r
    if (ctx->RasterMask==DEPTH_BIT\r
        && ctx->Depth.Func==GL_LESS\r
@@ -683,15 +657,15 @@ static void fast_flat_rgb_polygon( GLcontext* ctx, GLuint n, GLuint vlist[], GLu
 /* Return pointer to accerated polygon function */\r
 static polygon_func choose_polygon_function( GLcontext* ctx )\r
 {\r
-       STARTPROFILE\r
+   STARTPROFILE\r
    if (!ctx->Polygon.SmoothFlag && !ctx->Polygon.StippleFlag\r
        && ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0\r
-       && !ctx->Texture.Enabled && Current->rgb_flag==GL_TRUE) {\r
-   ENDPROFILE(choose_polygon_function)\r
+       && !ctx->Texture.ReallyEnabled && Current->rgb_flag==GL_TRUE) {\r
+      ENDPROFILE(choose_polygon_function)\r
       return fast_flat_rgb_polygon;\r
    }\r
    else {\r
-   ENDPROFILE(choose_polygon_function)\r
+      ENDPROFILE(choose_polygon_function)\r
       return NULL;\r
    }\r
 }\r
@@ -705,18 +679,18 @@ static polygon_func choose_polygon_function( GLcontext* ctx )
 \r
 /* Write a horizontal span of color-index pixels with a boolean mask. */\r
 static void write_index_span( GLcontext* ctx,\r
-                                                         GLuint n, GLint x, GLint y,\r
-                                                         const GLuint index[],\r
+                              GLuint n, GLint x, GLint y,\r
+                              const GLuint index[],\r
                               const GLubyte mask[] )\r
 {\r
-         STARTPROFILE\r
-         GLuint i;\r
-         char *Mem=Current->ScreenMem+y*Current->ScanWidth+x;\r
-         assert(Current->rgb_flag==GL_FALSE);\r
-         for (i=0; i<n; i++)\r
-               if (mask[i])\r
-                 Mem[i]=index[i];\r
-          ENDPROFILE(write_index_span)\r
+   STARTPROFILE\r
+   GLuint i;\r
+   char *Mem=Current->ScreenMem+y*Current->ScanWidth+x;\r
+   assert(Current->rgb_flag==GL_FALSE);\r
+   for (i=0; i<n; i++)\r
+      if (mask[i])\r
+         Mem[i]=index[i];\r
+   ENDPROFILE(write_index_span)\r
 }\r
 \r
 \r
@@ -1031,10 +1005,6 @@ void setup_DD_pointers( GLcontext* ctx )
 \r
    ctx->Driver.Index = set_index;\r
    ctx->Driver.Color = set_color;\r
-   ctx->Driver.IndexMask = index_mask;\r
-   ctx->Driver.ColorMask = color_mask;\r
-\r
-   ctx->Driver.Dither = dither;\r
 \r
    ctx->Driver.SetBuffer = set_buffer;\r
    ctx->Driver.GetBufferSize = buffer_size;\r
@@ -1211,32 +1181,33 @@ WMesaContext /*APIENTRY*/ WMesaCreateContext( HWND hWnd, HPALETTE Pal,
 \r
 \r
 \r
-  c->gl_visual = gl_create_visual(rgb_flag,\r
-                                                                 GL_FALSE,     /* software alpha */\r
-                                  db_flag,     /* db_flag */\r
-                                  16,          /* depth_bits */\r
-                                  8,           /* stencil_bits */\r
-                                  8,           /* accum_bits */\r
-                                  8,\r
-                                  255.0, 255.0, 255.0, 255.0 );\r
+  c->gl_visual = _mesa_create_visual(rgb_flag,\r
+                                     db_flag,  /* db_flag */\r
+                                     GL_TRUE,   /* stereo */\r
+                                     8, 8, 8, 8,/* rgba bits */\r
+                                     0,         /* index bits */\r
+                                     16,       /* depth_bits */\r
+                                     8,                /* stencil_bits */\r
+                                     16,16,16,16,/* accum_bits */\r
+                                     1 );\r
 \r
        if (!c->gl_visual) {\r
          return NULL;\r
       }\r
 \r
   /* allocate a new Mesa context */\r
-  c->gl_ctx = gl_create_context( c->gl_visual, NULL,c);\r
+  c->gl_ctx = _mesa_create_context( c->gl_visual, NULL,c);\r
 \r
   if (!c->gl_ctx) {\r
-         gl_destroy_visual( c->gl_visual );\r
+         _mesa_destroy_visual( c->gl_visual );\r
          free(c);\r
          return NULL;\r
       }\r
 \r
-      c->gl_buffer = gl_create_framebuffer( c->gl_visual );\r
+      c->gl_buffer = _mesa_create_framebuffer( c->gl_visual );\r
       if (!c->gl_buffer) {\r
-         gl_destroy_visual( c->gl_visual );\r
-         gl_destroy_context( c->gl_ctx );\r
+         _mesa_destroy_visual( c->gl_visual );\r
+         _mesa_destroy_context( c->gl_ctx );\r
          free(c);\r
          return NULL;\r
       }\r
@@ -1253,9 +1224,9 @@ void /*APIENTRY*/ WMesaDestroyContext( void )
        ReleaseDC(c->Window,c->hDC);\r
        WC = c;\r
 \r
-    gl_destroy_visual( c->gl_visual );\r
-    gl_destroy_framebuffer( c->gl_buffer );\r
-       gl_destroy_context( c->gl_ctx );\r
+    _mesa_destroy_visual( c->gl_visual );\r
+    _mesa_destroy_framebuffer( c->gl_buffer );\r
+    _mesa_destroy_context( c->gl_ctx );\r
 \r
        if (c->db_flag){\r
                wmDeleteBackingStore(c);\r
@@ -1297,7 +1268,7 @@ void /*APIENTRY*/ WMesaMakeCurrent( WMesaContext c )
                return;\r
 \r
        //gl_set_context( c->gl_ctx );\r
-       gl_make_current(c->gl_ctx, c->gl_buffer);\r
+       _mesa_make_current(c->gl_ctx, c->gl_buffer);\r
        Current = c;\r
        setup_DD_pointers(c->gl_ctx);\r
        if (Current->gl_ctx->Viewport.Width==0) {\r