more gldirect compile fixes. Getting near the linking stage now. No build file yet.
authorBen Crossman <bencrossman@freedesktop.org>
Fri, 15 Apr 2005 17:17:47 +0000 (17:17 +0000)
committerBen Crossman <bencrossman@freedesktop.org>
Fri, 15 Apr 2005 17:17:47 +0000 (17:17 +0000)
14 files changed:
src/mesa/drivers/windows/gldirect/dglcontext.c
src/mesa/drivers/windows/gldirect/dglwgl.c
src/mesa/drivers/windows/gldirect/dll_main.c
src/mesa/drivers/windows/gldirect/dllmain.h
src/mesa/drivers/windows/gldirect/dx7/gld_texture_dx7.c
src/mesa/drivers/windows/gldirect/dx7/gld_vb_mesa_render_dx7.c
src/mesa/drivers/windows/gldirect/dx7/gld_wgl_dx7.c
src/mesa/drivers/windows/gldirect/dx8/gld_texture_dx8.c
src/mesa/drivers/windows/gldirect/dx8/gld_vb_mesa_render_dx8.c
src/mesa/drivers/windows/gldirect/dx8/gld_wgl_dx8.c
src/mesa/drivers/windows/gldirect/dx9/gld_texture_dx9.c
src/mesa/drivers/windows/gldirect/dx9/gld_vb_mesa_render_dx9.c
src/mesa/drivers/windows/gldirect/dx9/gld_wgl_dx9.c
src/mesa/drivers/windows/gldirect/mesasw/gld_wgl_mesasw.c

index c504be58ace47760591f640587c36c0375968b92..5dafe14518dcbec22ae4844ce8ba4800278e9a36 100644 (file)
@@ -37,7 +37,7 @@
 #include "dglcontext.h"
 
 // Get compile errors without this. KeithH
-#include "scitech.h"   // ibool, etc.
+//#include "scitech.h" // ibool, etc.
 
 #ifdef _USE_GLD3_WGL
 #include "gld_driver.h"
@@ -517,12 +517,12 @@ LRESULT CALLBACK dglKeyProc(
        HGLRC hGLRC = NULL;
        DGL_ctx* lpCtx = NULL;
        int cmd = 0, dx1 = 0, dx2 = 0, i;
-       static ibool bAltPressed = false;
-       static ibool bCtrlPressed = false;
-       static ibool bShiftPressed = false;
+       static BOOL bAltPressed = FALSE;
+       static BOOL bCtrlPressed = FALSE;
+       static BOOL bShiftPressed = FALSE;
     RECT r, rf, rc;
     POINT pt;
-    ibool bForceReshape = false;
+    BOOL bForceReshape = FALSE;
 
        return CallNextHookEx(hKeyHook, code, wParam, lParam);
 }
index 437358ae1659c195535af2b5317108ab644ded86..74ecb01a5b0136645ebc1233cedf384572d52e17 100644 (file)
@@ -39,7 +39,7 @@
 #include "gld_driver.h"
 #endif
 
-#include "glu.h"       // MUST USE MICROSOFT'S GLU32!
+#include "gl/glu.h"    // MUST USE MICROSOFT'S GLU32!
 
 #ifndef _USE_GLD3_WGL
 extern DGL_mesaFuncs mesaFuncs;
index 04f6466d12c129f923fec15c63a322b79610c6e0..1d7ac64f49853006442fe80212dbb5f8ed0c4a18 100644 (file)
@@ -43,8 +43,8 @@
 
 #include "dllmain.h"
 
-#include "snap/graphics.h"
-#include "drvlib/os/os.h"
+//#include "snap/graphics.h"
+//#include "drvlib/os/os.h"
 
 #ifdef _USE_GLD3_WGL
 typedef void (APIENTRY *LPDGLSPLASHSCREEN)(int, int, char*);
@@ -390,6 +390,7 @@ BOOL dllReadRegistry(
        if (bRegistryError || !bSuccess)
                return FALSE;
        else
+               
                return TRUE;
 
 #undef REG_READ_DWORD
@@ -568,7 +569,7 @@ BOOL dglInitDriver(void)
                "Direct3D RGB SW",
                "Direct3D HW",
        };
-    static ibool bWarnOnce = false;
+    static BOOL bWarnOnce = FALSE;
 
     // Already initialized?
     if (bInitialized)
@@ -586,7 +587,7 @@ BOOL dglInitDriver(void)
                                                          "Please run the configuration program\n"
                               "before using GLDirect with applications.\n",
                                                          "GLDirect", MB_OK | MB_ICONWARNING);
-            bWarnOnce = true;
+            bWarnOnce = TRUE;
             return FALSE;
                }
 
index d898c3106782d33fb1e07e5eedda6133aa9a5823..03343ef7ad35c085a46f87d6021e255ffdecdacc 100644 (file)
@@ -47,7 +47,7 @@
 #include "DirectGL.h"
 #endif // _USE_GLD3_WGL
 
-#include "gldirect/regkeys.h"
+//#include "gldirect/regkeys.h"
 #include "dglglobals.h"
 #include "ddlog.h"
 #ifndef _USE_GLD3_WGL
index 6e9de16b8f590372fa4ae83ed57ec35fb775970a..bbe673516d6c863e9d16264b109ef051b3a476a6 100644 (file)
@@ -69,10 +69,10 @@ D3DX_SURFACEFORMAT _gldD3DXFormatFromSurface(IDirectDrawSurface7 *pSurface);
 
 static void gld_fetch_1d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -81,9 +81,22 @@ static void gld_fetch_1d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_1d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -95,9 +108,23 @@ static void gld_fetch_1d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_1d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -109,6 +136,20 @@ static void gld_fetch_1d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -131,10 +172,10 @@ static void gld_fetch_1d_texel_X4R4G4B4(
 
 static void gld_fetch_2d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -143,9 +184,22 @@ static void gld_fetch_2d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_2d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -157,9 +211,23 @@ static void gld_fetch_2d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_2d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -171,6 +239,20 @@ static void gld_fetch_2d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -197,10 +279,10 @@ static void gld_fetch_2d_texel_X4R4G4B4(
 
 static void gld_fetch_3d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -209,9 +291,22 @@ static void gld_fetch_3d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_3d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -223,9 +318,23 @@ static void gld_fetch_3d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_3d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -237,6 +346,20 @@ static void gld_fetch_3d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -249,6 +372,7 @@ static void gld_fetch_3d_texel_X4R4G4B4(
 const struct gl_texture_format _gld_texformat_X8R8G8B8 = {
    MESA_FORMAT_ARGB8888,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    8,                                  /* RedBits */
    8,                                  /* GreenBits */
    8,                                  /* BlueBits */
@@ -258,14 +382,19 @@ const struct gl_texture_format _gld_texformat_X8R8G8B8 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    4,                                  /* TexelBytes */
+   _mesa_texstore_argb8888,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X8R8G8B8,                /* FetchTexel1D */
    gld_fetch_2d_texel_X8R8G8B8,                /* FetchTexel2D */
    gld_fetch_3d_texel_X8R8G8B8,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X8R8G8B8,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X8R8G8B8,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X8R8G8B8,              /* FetchTexel3Df */
 };
 
 const struct gl_texture_format _gld_texformat_X1R5G5B5 = {
    MESA_FORMAT_ARGB1555,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    5,                                  /* RedBits */
    5,                                  /* GreenBits */
    5,                                  /* BlueBits */
@@ -275,14 +404,19 @@ const struct gl_texture_format _gld_texformat_X1R5G5B5 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    2,                                  /* TexelBytes */
+   _mesa_texstore_argb1555,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X1R5G5B5,                /* FetchTexel1D */
    gld_fetch_2d_texel_X1R5G5B5,                /* FetchTexel2D */
    gld_fetch_3d_texel_X1R5G5B5,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X1R5G5B5,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X1R5G5B5,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X1R5G5B5,              /* FetchTexel3Df */
 };
 
 const struct gl_texture_format _gld_texformat_X4R4G4B4 = {
    MESA_FORMAT_ARGB4444,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    4,                                  /* RedBits */
    4,                                  /* GreenBits */
    4,                                  /* BlueBits */
@@ -292,9 +426,13 @@ const struct gl_texture_format _gld_texformat_X4R4G4B4 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    2,                                  /* TexelBytes */
+   _mesa_texstore_argb4444,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X4R4G4B4,                /* FetchTexel1D */
    gld_fetch_2d_texel_X4R4G4B4,                /* FetchTexel2D */
    gld_fetch_3d_texel_X4R4G4B4,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X4R4G4B4,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X4R4G4B4,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X4R4G4B4,              /* FetchTexel3Df */
 };
 
 //---------------------------------------------------------------------------
@@ -887,6 +1025,10 @@ void gld_DrawPixels_DX7(
        D3DX_SURFACEFORMAT      sf;
        DWORD                           dwMipmaps;
 
+       const struct gl_texture_format  *MesaFormat;
+
+       MesaFormat = _mesa_choose_tex_format(ctx, format, format, type);
+
        gldCtx  = GLD_GET_CONTEXT(ctx);
        gld             = GLD_GET_DX7_DRIVER(gldCtx);
 
@@ -923,7 +1065,7 @@ void gld_DrawPixels_DX7(
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       MesaFormat->StoreImage(
                ctx,
                2,
                GL_RGBA,
@@ -1070,9 +1212,9 @@ void gld_ReadPixels_DX7(
        // We need to flip the data. Yuck.
        // Perhaps Mesa has a span packer we can use in future...
        for (i=0; i<height; i++) {
-               BYTE *pDestRow = (BYTE*)_mesa_image_address2d(pack, dest, width, height, format, type, 0, i, 0);
+               BYTE *pDestRow = (BYTE*)_mesa_image_address(2,pack, dest, width, height, format, type, 0, i, 0);
                BYTE *pSrcRow = (BYTE*)d3dLockedRect.pBits + (d3dLockedRect.Pitch * (height-i-1));
-               _mesa_transfer_teximage(
+               texImage->TexFormat->StoreImage(
                        ctx,
                        2,
                        GL_RGBA,                                // base format
@@ -1295,7 +1437,7 @@ void gld_Bitmap_DX7(
        for (i=0; i<height; i++) {
                GLubyte byte;
                pBits = (D3DCOLOR*)((BYTE*)ddsd.lpSurface + (i*ddsd.lPitch));
-               src = (const GLubyte *) _mesa_image_address2d(
+               src = (const GLubyte *) _mesa_image_address(2,
                        &ctx->DefaultPacking, pTempBitmap, width, height, GL_COLOR_INDEX, GL_BITMAP,
                        0, i, 0);
                for (j=0; j<(width>>3); j++) {
@@ -1527,7 +1669,7 @@ void gld_TexImage2D_DX7(
                return;
        }
        // unpack image, apply transfer ops and store in tempImage
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                &_mesa_texformat_argb8888, // dest format
                tempImage,
                width, height, 1, 0, 0, 0,
@@ -1633,7 +1775,7 @@ void gld_TexImage2D_DX7(
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       texImage->TexFormat->StoreImage(
                ctx,
                2,
                texImage->Format,
@@ -1705,7 +1847,7 @@ void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level,
        }
 
        // unpack image, apply transfer ops and store in tempImage
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                &_mesa_texformat_argb8888, // dest format
                tempImage,
                width, height, 1, 0, 0, 0,
@@ -1802,7 +1944,7 @@ void gld_TexSubImage2D_DX7( GLcontext *ctx, GLenum target, GLint level,
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                _gldMesaFormatForD3DFormat(_gldD3DXFormatFromSurface(pSurface)),
                ddsd.lpSurface,
                width, height, 1,
index fe342498dd46722c9d8fe85d3f0d3ba8e60b91f6..9035574045f3c2b66405d5a5d76c5f27b218a149 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gld_vb_mesa_render_dx7.c,v 1.3 2005/04/14 16:58:25 bencrossman Exp $ */
+/* $Id: gld_vb_mesa_render_dx7.c,v 1.4 2005/04/15 17:17:47 bencrossman Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -420,40 +420,7 @@ static void _gld_mesa_render_stage_check(
        GLcontext *ctx,
        struct tnl_pipeline_stage *stage)
 {
-   GLuint inputs = VERT_BIT_CLIP;
-   GLuint i;
-
-   if (ctx->Visual.rgbMode) {
-          inputs |= VERT_BIT_COLOR0;
-          
-          if (ctx->_TriangleCaps & DD_SEPARATE_SPECULAR)
-                  inputs |= VERT_BIT_COLOR1; //VERT_BIT_SPEC_RGB;
-          
-          //if (ctx->Texture._ReallyEnabled) {
-          for (i=0; i<ctx->Const.MaxTextureUnits; i++) {
-                  if (ctx->Texture.Unit[i]._ReallyEnabled)
-                          inputs |= VERT_BIT_TEX(i);
-          }
-          //}
-   } else {
-          inputs |= VERT_BIT_INDEX;
-   }
-
-   if (ctx->Point._Attenuated)
-      inputs |= VERT_BIT_POINT_SIZE;
-
-   /* How do drivers turn this off?
-    */
-   if (ctx->Fog.Enabled)
-      inputs |= VERT_BIT_FOG; // VERT_FOG_COORD;
-
-   if (ctx->_TriangleCaps & DD_TRI_UNFILLED)
-      inputs |= VERT_BIT_EDGEFLAG;
-
-   if (ctx->RenderMode==GL_FEEDBACK)
-      inputs |= VERT_BITS_TEX_ANY;
-
-   stage->inputs = inputs;
+   stage->inputs = TNL_CONTEXT(ctx)->render_inputs;
 }
 
 //---------------------------------------------------------------------------
index 803951308052ac5ad1bf21b2f57b37f53c3a3280..0f8fe33eb15ec3713ec20b19bdac5d1d61e2ee15 100644 (file)
@@ -256,7 +256,7 @@ HRESULT _gldCreatePrimitiveBuffer(
        // If CVA (Compiled Vertex Array) is used by an OpenGL app, then we
        // will need enough vertices to cater for Mesa::Const.MaxArrayLockSize.
        // We'll use IMM_SIZE if it's larger (which it should not be).
-       dwMaxVertices = (IMM_SIZE < MAX_ARRAY_LOCK_SIZE) ? MAX_ARRAY_LOCK_SIZE : IMM_SIZE;
+       dwMaxVertices = MAX_ARRAY_LOCK_SIZE;
 
     // Max vertex buffer size limited in DX7. (DaveM)
     if (dwMaxVertices*9 > D3DMAXNUMVERTICES)
index 53935b2630a7766d9b6ca5a6d7ba3fa13347db11..f24b3cfb74d05ae43b5e174b4015d6f7a182d000 100644 (file)
 
 static void gld_fetch_1d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -79,9 +79,22 @@ static void gld_fetch_1d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_1d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -93,9 +106,23 @@ static void gld_fetch_1d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_1d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -107,6 +134,20 @@ static void gld_fetch_1d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -129,10 +170,10 @@ static void gld_fetch_1d_texel_X4R4G4B4(
 
 static void gld_fetch_2d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -141,9 +182,22 @@ static void gld_fetch_2d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_2d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -155,9 +209,23 @@ static void gld_fetch_2d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_2d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -169,6 +237,20 @@ static void gld_fetch_2d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -195,10 +277,10 @@ static void gld_fetch_2d_texel_X4R4G4B4(
 
 static void gld_fetch_3d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -207,9 +289,22 @@ static void gld_fetch_3d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_3d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -221,9 +316,23 @@ static void gld_fetch_3d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_3d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -235,6 +344,20 @@ static void gld_fetch_3d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -247,7 +370,7 @@ static void gld_fetch_3d_texel_X4R4G4B4(
 const struct gl_texture_format _gld_texformat_X8R8G8B8 = {
    MESA_FORMAT_ARGB8888,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
-//   GL_UNSIGNED_BYTE, /* Type */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    8,                                  /* RedBits */
    8,                                  /* GreenBits */
    8,                                  /* BlueBits */
@@ -257,15 +380,19 @@ const struct gl_texture_format _gld_texformat_X8R8G8B8 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    4,                                  /* TexelBytes */
+   _mesa_texstore_argb8888,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X8R8G8B8,                /* FetchTexel1D */
    gld_fetch_2d_texel_X8R8G8B8,                /* FetchTexel2D */
    gld_fetch_3d_texel_X8R8G8B8,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X8R8G8B8,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X8R8G8B8,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X8R8G8B8,              /* FetchTexel3Df */
 };
 
 const struct gl_texture_format _gld_texformat_X1R5G5B5 = {
    MESA_FORMAT_ARGB1555,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
-//   GL_UNSIGNED_SHORT_1_5_5_5_REV,    /* Type */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    5,                                  /* RedBits */
    5,                                  /* GreenBits */
    5,                                  /* BlueBits */
@@ -275,15 +402,19 @@ const struct gl_texture_format _gld_texformat_X1R5G5B5 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    2,                                  /* TexelBytes */
+   _mesa_texstore_argb1555,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X1R5G5B5,                /* FetchTexel1D */
    gld_fetch_2d_texel_X1R5G5B5,                /* FetchTexel2D */
    gld_fetch_3d_texel_X1R5G5B5,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X1R5G5B5,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X1R5G5B5,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X1R5G5B5,              /* FetchTexel3Df */
 };
 
 const struct gl_texture_format _gld_texformat_X4R4G4B4 = {
    MESA_FORMAT_ARGB4444,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
-//   GL_UNSIGNED_SHORT_4_4_4_4_REV,    /* Type */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    4,                                  /* RedBits */
    4,                                  /* GreenBits */
    4,                                  /* BlueBits */
@@ -293,9 +424,13 @@ const struct gl_texture_format _gld_texformat_X4R4G4B4 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    2,                                  /* TexelBytes */
+   _mesa_texstore_argb4444,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X4R4G4B4,                /* FetchTexel1D */
    gld_fetch_2d_texel_X4R4G4B4,                /* FetchTexel2D */
    gld_fetch_3d_texel_X4R4G4B4,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X4R4G4B4,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X4R4G4B4,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X4R4G4B4,              /* FetchTexel3Df */
 };
 
 //---------------------------------------------------------------------------
@@ -860,6 +995,8 @@ void gld_DrawPixels_DX8(
        HRESULT                         hr;
        D3DLOCKED_RECT          d3dLockedRect;
 
+       const struct gl_texture_format  *MesaFormat;
+
        gldCtx  = GLD_GET_CONTEXT(ctx);
        gld             = GLD_GET_DX8_DRIVER(gldCtx);
 
@@ -884,8 +1021,10 @@ void gld_DrawPixels_DX8(
                return;
        }
 
+       MesaFormat = _mesa_choose_tex_format(ctx, format, format, type);
+
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       MesaFormat->StoreImage(
                ctx,
                2,
                GL_RGBA,
@@ -1031,9 +1170,9 @@ void gld_ReadPixels_DX8(
        // We need to flip the data. Yuck.
        // Perhaps Mesa has a span packer we can use in future...
        for (i=0; i<height; i++) {
-               BYTE *pDestRow = (BYTE*)_mesa_image_address2d(pack, dest, width, height, format, type, 0, i, 0);
+               BYTE *pDestRow = (BYTE*)_mesa_image_address(2,pack, dest, width, height, format, type, 0, i, 0);
                BYTE *pSrcRow = (BYTE*)d3dLockedRect.pBits + (d3dLockedRect.Pitch * (height-i-1));
-               _mesa_transfer_teximage(
+               MesaFormat->StoreImage(
                        ctx,
                        2,
                        GL_RGBA,                                // base format
@@ -1203,7 +1342,7 @@ void gld_Bitmap_DX8(
        for (i=0; i<height; i++) {
                GLubyte byte;
                pBits = (D3DCOLOR*)((BYTE*)d3dLockedRect.pBits + (i*d3dLockedRect.Pitch));
-               src = (const GLubyte *) _mesa_image_address2d(
+               src = (const GLubyte *) _mesa_image_address(2,
                        &ctx->DefaultPacking, pTempBitmap, width, height, GL_COLOR_INDEX, GL_BITMAP,
                        0, i, 0);
                for (j=0; j<(width>>3); j++) {
@@ -1227,7 +1366,7 @@ void gld_Bitmap_DX8(
 
 /*
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       texImage->TexFormat->StoreImage(
                ctx,
                2,
                GL_BITMAP,
@@ -1432,7 +1571,7 @@ void gld_TexImage2D_DX8(
                return;
        }
        // unpack image, apply transfer ops and store in tempImage
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                &_mesa_texformat_argb8888, // dest format
                tempImage,
                width, height, 1, 0, 0, 0,
@@ -1520,7 +1659,7 @@ void gld_TexImage2D_DX8(
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       texImage->TexFormat->StoreImage(
                ctx,
                2,
                texImage->Format,
@@ -1592,7 +1731,7 @@ void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level,
        }
 
        // unpack image, apply transfer ops and store in tempImage
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                &_mesa_texformat_argb8888, // dest format
                tempImage,
                width, height, 1, 0, 0, 0,
@@ -1673,7 +1812,7 @@ void gld_TexSubImage2D_DX8( GLcontext *ctx, GLenum target, GLint level,
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                _gldMesaFormatForD3DFormat(d3dsd.Format),
                d3dLockedRect.pBits,
                width, height, 1,
index 43fe35d6e9cac62f0b2d6c890403f4dc1fc92760..c07370474a8a11c4417179941664a2c64ce5fed6 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gld_vb_mesa_render_dx8.c,v 1.3 2005/04/14 16:58:25 bencrossman Exp $ */
+/* $Id: gld_vb_mesa_render_dx8.c,v 1.4 2005/04/15 17:17:47 bencrossman Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -443,40 +443,7 @@ static void _gld_mesa_render_stage_check(
        GLcontext *ctx,
        struct tnl_pipeline_stage *stage)
 {
-   GLuint inputs = VERT_BIT_CLIP;
-   GLuint i;
-
-   if (ctx->Visual.rgbMode) {
-          inputs |= VERT_BIT_COLOR0;
-          
-          if (ctx->_TriangleCaps & DD_SEPARATE_SPECULAR)
-                  inputs |= VERT_BIT_COLOR1; //VERT_BIT_SPEC_RGB;
-          
-          //if (ctx->Texture._ReallyEnabled) {
-          for (i=0; i<ctx->Const.MaxTextureUnits; i++) {
-                  if (ctx->Texture.Unit[i]._ReallyEnabled)
-                          inputs |= VERT_BIT_TEX(i);
-          }
-          //}
-   } else {
-          inputs |= VERT_BIT_INDEX;
-   }
-
-   if (ctx->Point._Attenuated)
-      inputs |= VERT_BIT_POINT_SIZE;
-
-   /* How do drivers turn this off?
-    */
-   if (ctx->Fog.Enabled)
-      inputs |= VERT_BIT_FOG; // VERT_FOG_COORD;
-
-   if (ctx->_TriangleCaps & DD_TRI_UNFILLED)
-      inputs |= VERT_BIT_EDGEFLAG;
-
-   if (ctx->RenderMode==GL_FEEDBACK)
-      inputs |= VERT_BITS_TEX_ANY;
-
-   stage->inputs = inputs;
+   stage->inputs = TNL_CONTEXT(ctx)->render_inputs;
 }
 
 //---------------------------------------------------------------------------
index 1c7992ed553ddd3c07a95ff6291bc790d2da2487..690f68b68f157117eb645fb15fd5a44e11e47e99 100644 (file)
@@ -245,7 +245,7 @@ HRESULT _gldCreatePrimitiveBuffer(
        // If CVA (Compiled Vertex Array) is used by an OpenGL app, then we
        // will need enough vertices to cater for Mesa::Const.MaxArrayLockSize.
        // We'll use IMM_SIZE if it's larger (which it should not be).
-       dwMaxVertices = (IMM_SIZE < MAX_ARRAY_LOCK_SIZE) ? MAX_ARRAY_LOCK_SIZE : IMM_SIZE;
+       dwMaxVertices = MAX_ARRAY_LOCK_SIZE;
 
        // Now calculate how many vertices to allow for in total
        // 1 per point, 2 per line, 6 per quad = 9
index 91aa5a5d7b5642125a29d863e34c5adfe4faee81..5a822356164f9e39ad2c5d937fe9a4a950908f7c 100644 (file)
 
 static void gld_fetch_1d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -79,9 +79,22 @@ static void gld_fetch_1d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_1d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -93,9 +106,23 @@ static void gld_fetch_1d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_1d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -107,6 +134,20 @@ static void gld_fetch_1d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_1d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -129,10 +170,10 @@ static void gld_fetch_1d_texel_X4R4G4B4(
 
 static void gld_fetch_2d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -141,9 +182,22 @@ static void gld_fetch_2d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_2d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -155,9 +209,23 @@ static void gld_fetch_2d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_2d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -169,6 +237,20 @@ static void gld_fetch_2d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_2d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -195,10 +277,10 @@ static void gld_fetch_2d_texel_X4R4G4B4(
 
 static void gld_fetch_3d_texel_X8R8G8B8(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
-   GLchan *rgba = (GLchan *) texel;
+   GLchan *rgba = (GLchan *)texel;
    rgba[RCOMP] = src[2];
    rgba[GCOMP] = src[1];
    rgba[BCOMP] = src[0];
@@ -207,9 +289,22 @@ static void gld_fetch_3d_texel_X8R8G8B8(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X8R8G8B8(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLchan *src = CHAN_SRC( texImage, i, j, k, 4 );
+   texel[RCOMP] = CHAN_TO_FLOAT(src[0]);
+   texel[GCOMP] = CHAN_TO_FLOAT(src[1]);
+   texel[BCOMP] = CHAN_TO_FLOAT(src[2]);
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_3d_texel_X1R5G5B5(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -221,9 +316,23 @@ static void gld_fetch_3d_texel_X1R5G5B5(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X1R5G5B5(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >> 10) & 0xf8) * 255 / 0xf8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  5) & 0xf8) * 255 / 0xf8 );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf8) * 255 / 0xf8 );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 static void gld_fetch_3d_texel_X4R4G4B4(
        const struct gl_texture_image *texImage,
-       GLint i, GLint j, GLint k, GLvoid *texel )
+       GLint i, GLint j, GLint k, GLchan *texel )
 {
    const GLushort *src = USHORT_SRC( texImage, i, j, k );
    GLchan *rgba = (GLchan *) texel; GLushort s = *src;
@@ -235,6 +344,20 @@ static void gld_fetch_3d_texel_X4R4G4B4(
 
 //---------------------------------------------------------------------------
 
+static void gld_fetch_3d_texel_f_X4R4G4B4(
+       const struct gl_texture_image *texImage,
+    GLint i, GLint j, GLint k, GLfloat *texel )
+{
+   const GLushort *src = USHORT_SRC( texImage, i, j, k );
+   GLushort s = *src;
+   texel[RCOMP] = UBYTE_TO_FLOAT( ((s >>  8) & 0xf) * 255 / 0xf );
+   texel[GCOMP] = UBYTE_TO_FLOAT( ((s >>  4) & 0xf) * 255 / 0xf );
+   texel[BCOMP] = UBYTE_TO_FLOAT( ((s      ) & 0xf) * 255 / 0xf );
+   texel[ACOMP] = 1.f;
+}
+
+//---------------------------------------------------------------------------
+
 #undef CHAN_SRC
 #undef UBYTE_SRC
 #undef USHORT_SRC
@@ -247,7 +370,7 @@ static void gld_fetch_3d_texel_X4R4G4B4(
 const struct gl_texture_format _gld_texformat_X8R8G8B8 = {
    MESA_FORMAT_ARGB8888,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
-//   GL_UNSIGNED_BYTE, /* Type */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    8,                                  /* RedBits */
    8,                                  /* GreenBits */
    8,                                  /* BlueBits */
@@ -257,15 +380,19 @@ const struct gl_texture_format _gld_texformat_X8R8G8B8 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    4,                                  /* TexelBytes */
+   _mesa_texstore_argb8888,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X8R8G8B8,                /* FetchTexel1D */
    gld_fetch_2d_texel_X8R8G8B8,                /* FetchTexel2D */
    gld_fetch_3d_texel_X8R8G8B8,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X8R8G8B8,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X8R8G8B8,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X8R8G8B8,              /* FetchTexel3Df */
 };
 
 const struct gl_texture_format _gld_texformat_X1R5G5B5 = {
    MESA_FORMAT_ARGB1555,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
-//   GL_UNSIGNED_SHORT_1_5_5_5_REV,    /* Type */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    5,                                  /* RedBits */
    5,                                  /* GreenBits */
    5,                                  /* BlueBits */
@@ -275,15 +402,19 @@ const struct gl_texture_format _gld_texformat_X1R5G5B5 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    2,                                  /* TexelBytes */
+   _mesa_texstore_argb1555,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X1R5G5B5,                /* FetchTexel1D */
    gld_fetch_2d_texel_X1R5G5B5,                /* FetchTexel2D */
    gld_fetch_3d_texel_X1R5G5B5,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X1R5G5B5,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X1R5G5B5,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X1R5G5B5,              /* FetchTexel3Df */
 };
 
 const struct gl_texture_format _gld_texformat_X4R4G4B4 = {
    MESA_FORMAT_ARGB4444,               /* MesaFormat */
    GL_RGBA,                            /* BaseFormat */
-//   GL_UNSIGNED_SHORT_4_4_4_4_REV,    /* Type */
+   GL_UNSIGNED_NORMALIZED_ARB,         /* DataType */
    4,                                  /* RedBits */
    4,                                  /* GreenBits */
    4,                                  /* BlueBits */
@@ -293,9 +424,13 @@ const struct gl_texture_format _gld_texformat_X4R4G4B4 = {
    0,                                  /* IndexBits */
    0,                                  /* DepthBits */
    2,                                  /* TexelBytes */
+   _mesa_texstore_argb4444,                    /* StoreTexImageFunc */
    gld_fetch_1d_texel_X4R4G4B4,                /* FetchTexel1D */
    gld_fetch_2d_texel_X4R4G4B4,                /* FetchTexel2D */
    gld_fetch_3d_texel_X4R4G4B4,                /* FetchTexel3D */
+   gld_fetch_1d_texel_f_X4R4G4B4,              /* FetchTexel1Df */
+   gld_fetch_2d_texel_f_X4R4G4B4,              /* FetchTexel2Df */
+   gld_fetch_3d_texel_f_X4R4G4B4,              /* FetchTexel3Df */
 };
 
 //---------------------------------------------------------------------------
@@ -869,6 +1004,10 @@ void gld_DrawPixels_DX9(
        HRESULT                         hr;
        D3DLOCKED_RECT          d3dLockedRect;
 
+       const struct gl_texture_format  *MesaFormat;
+
+       MesaFormat = _mesa_choose_tex_format(ctx, format, format, type);
+
        // Mesa does not currently handle this format.
        if (format == GL_BGR)
                return;
@@ -900,7 +1039,7 @@ void gld_DrawPixels_DX9(
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       MesaFormat->StoreImage(
                ctx,
                2,
                GL_RGBA,
@@ -1063,9 +1202,9 @@ void gld_ReadPixels_DX9(
        // We need to flip the data. Yuck.
        // Perhaps Mesa has a span packer we can use in future...
        for (i=0; i<height; i++) {
-               BYTE *pDestRow = (BYTE*)_mesa_image_address2d(pack, dest, width, height, format, type, 0, i, 0);
+               BYTE *pDestRow = (BYTE*)_mesa_image_address(2,pack, dest, width, height, format, type, 0, i, 0);
                BYTE *pSrcRow = (BYTE*)d3dLockedRect.pBits + (d3dLockedRect.Pitch * (height-i-1));
-               _mesa_transfer_teximage(
+               MesaFormat->StoreImage(
                        ctx,
                        2,
                        GL_RGBA,                                // base format
@@ -1254,7 +1393,7 @@ void gld_Bitmap_DX9(
        for (i=0; i<height; i++) {
                GLubyte byte;
                pBits = (D3DCOLOR*)((BYTE*)d3dLockedRect.pBits + (i*d3dLockedRect.Pitch));
-               src = (const GLubyte *) _mesa_image_address2d(
+               src = (const GLubyte *) _mesa_image_address(2,
                        &ctx->DefaultPacking, pTempBitmap, width, height, GL_COLOR_INDEX, GL_BITMAP,
                        0, i, 0);
                for (j=0; j<(width>>3); j++) {
@@ -1278,7 +1417,7 @@ void gld_Bitmap_DX9(
 
 /*
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       texImage->TexFormat->StoreImage(
                ctx,
                2,
                GL_BITMAP,
@@ -1483,7 +1622,7 @@ void gld_TexImage2D_DX9(
                return;
        }
        // unpack image, apply transfer ops and store in tempImage
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                &_mesa_texformat_argb8888, // dest format
                tempImage,
                width, height, 1, 0, 0, 0,
@@ -1571,7 +1710,7 @@ void gld_TexImage2D_DX9(
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(
+       texImage->TexFormat->StoreImage(
                ctx,
                2,
                texImage->Format,
@@ -1643,7 +1782,7 @@ void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level,
        }
 
        // unpack image, apply transfer ops and store in tempImage
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                &_mesa_texformat_argb8888, // dest format
                tempImage,
                width, height, 1, 0, 0, 0,
@@ -1724,7 +1863,7 @@ void gld_TexSubImage2D_DX9( GLcontext *ctx, GLenum target, GLint level,
        }
 
        // unpack image, apply transfer ops and store directly in texture
-       _mesa_transfer_teximage(ctx, 2, texImage->Format,
+       texImage->TexFormat->StoreImage(ctx, 2, texImage->Format,
                _gldMesaFormatForD3DFormat(d3dsd.Format),
                d3dLockedRect.pBits,
                width, height, 1,
index ac7d2ccefd7847ddc981579325130c96abe35292..1dff553a4a7d55de4701b4cb257ef3ae7fc8d327 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gld_vb_mesa_render_dx9.c,v 1.3 2005/04/14 16:58:25 bencrossman Exp $ */
+/* $Id: gld_vb_mesa_render_dx9.c,v 1.4 2005/04/15 17:17:47 bencrossman Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -440,40 +440,7 @@ static void _gld_mesa_render_stage_check(
        GLcontext *ctx,
        struct tnl_pipeline_stage *stage)
 {
-   GLuint inputs = VERT_BIT_CLIP;
-   GLuint i;
-
-   if (ctx->Visual.rgbMode) {
-          inputs |= VERT_BIT_COLOR0;
-          
-          if (ctx->_TriangleCaps & DD_SEPARATE_SPECULAR)
-                  inputs |= VERT_BIT_COLOR1; //VERT_BIT_SPEC_RGB;
-          
-          //if (ctx->Texture._ReallyEnabled) {
-          for (i=0; i<ctx->Const.MaxTextureUnits; i++) {
-                  if (ctx->Texture.Unit[i]._ReallyEnabled)
-                          inputs |= VERT_BIT_TEX(i);
-          }
-          //}
-   } else {
-          inputs |= VERT_BIT_INDEX;
-   }
-
-   if (ctx->Point._Attenuated)
-      inputs |= VERT_BIT_POINT_SIZE;
-
-   /* How do drivers turn this off?
-    */
-   if (ctx->Fog.Enabled)
-      inputs |= VERT_BIT_FOG; // VERT_FOG_COORD;
-
-   if (ctx->_TriangleCaps & DD_TRI_UNFILLED)
-      inputs |= VERT_BIT_EDGEFLAG;
-
-   if (ctx->RenderMode==GL_FEEDBACK)
-      inputs |= VERT_BITS_TEX_ANY;
-
-   stage->inputs = inputs;
+   stage->inputs = TNL_CONTEXT(ctx)->render_inputs;
 }
 
 //---------------------------------------------------------------------------
index 86c4e305551ca06e30960fc7ea0e74d3bee062b2..dc465c5418545a16f077144a2fcbd5518093a3fe 100644 (file)
@@ -258,7 +258,7 @@ HRESULT _gldCreatePrimitiveBuffer(
        // If CVA (Compiled Vertex Array) is used by an OpenGL app, then we
        // will need enough vertices to cater for Mesa::Const.MaxArrayLockSize.
        // We'll use IMM_SIZE if it's larger (which it should not be).
-       dwMaxVertices = (IMM_SIZE < MAX_ARRAY_LOCK_SIZE) ? MAX_ARRAY_LOCK_SIZE : IMM_SIZE;
+       dwMaxVertices = MAX_ARRAY_LOCK_SIZE;
 
        // Now calculate how many vertices to allow for in total
        // 1 per point, 2 per line, 6 per quad = 9
index b4e4029b237ed399c09655d02d6b7943c721dde9..0f11b4fe5130e3231163bcacdf36e7b84f37b885 100644 (file)
@@ -53,6 +53,7 @@
 #include "mtypes.h"
 #include "texformat.h"
 #include "texstore.h"
+#include "teximage.h"
 #include "array_cache/acache.h"
 #include "swrast/swrast.h"
 #include "swrast_setup/swrast_setup.h"
@@ -706,7 +707,7 @@ static clear(GLcontext* ctx, GLbitfield mask,
   if ((mask & (DD_FRONT_LEFT_BIT | DD_BACK_RIGHT_BIT)) &&
       ctx->DrawBuffer->UseSoftwareAlphaBuffers &&
       ctx->Color.ColorMask[ACOMP]) {
-      _mesa_clear_alpha_buffers( ctx );
+      _swrast_clear_alpha_buffers( ctx );
   }
   
   if (*colorMask == 0xffffffff && ctx->Color.IndexMask == 0xffffffff) {