Put back reactos specific changes from old mesa32 directory. Added: trunk/reactos/lib/mesa32/README.ReactOS Modified: trunk/reactos/lib/mesa32/include/GL/gl.h Modified: trunk/reactos/lib/mesa32/include/GL/mesa_wgl.h Modified: trunk/reactos/lib/mesa32/include/GL/wmesa.h Added: trunk/reactos/lib/mesa32/mesa32.def Added: trunk/reactos/lib/mesa32/mesa32.xml Modified: trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesa.c Modified: trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesadef.h Modified: trunk/reactos/lib/mesa32/src/main/glheader.h Modified: trunk/reactos/lib/mesa32/src/main/texcompress_s3tc.c Modified: trunk/reactos/lib/mesa32/src/main/texformat_tmp.h Modified: trunk/reactos/lib/mesa32/src/x86/common_x86.c Modified: trunk/reactos/lib/mesa32/src/x86/glapi_x86.S _____
Added: trunk/reactos/lib/mesa32/README.ReactOS --- trunk/reactos/lib/mesa32/README.ReactOS 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/README.ReactOS 2005-11-04 14:52:02 UTC (rev 18991) @@ -0,0 +1,8 @@
+This is Mesa-6.2 (http://www.mesa3d.org/) with an ICD interface. + +The ICD functions are in src/drivers/windows/icd/icd.c +I have created a new Makefile for ReactOS which will build Mesa with the ICD +interface. I have not adjusted the Visual C++ project/workspace files. + + --blight + _____
Modified: trunk/reactos/lib/mesa32/include/GL/gl.h --- trunk/reactos/lib/mesa32/include/GL/gl.h 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/include/GL/gl.h 2005-11-04 14:52:02 UTC (rev 18991) @@ -53,9 +53,9 @@
#endif
#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) -# if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ +# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ # define GLAPI __declspec(dllexport) -# elif defined(_MSC_VER) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ +# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ # define GLAPI __declspec(dllimport) # else /* for use with static link lib build of Win32 edition only */ # define GLAPI extern _____
Modified: trunk/reactos/lib/mesa32/include/GL/mesa_wgl.h --- trunk/reactos/lib/mesa32/include/GL/mesa_wgl.h 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/include/GL/mesa_wgl.h 2005-11-04 14:52:02 UTC (rev 18991) @@ -32,7 +32,7 @@
#define _mesa_wgl_h_
-#include <gl/gl.h> +#include <GL/gl.h>
#ifdef __cplusplus extern "C" { @@ -40,10 +40,10 @@
#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN32__)) -# if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ +# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ # define GLAPI __declspec(dllexport) # define WGLAPI __declspec(dllexport) -# elif defined(_MSC_VER) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ +# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ # define GLAPI __declspec(dllimport) # define WGLAPI __declspec(dllimport) # else /* for use with static link lib build of Win32 edition only */ _____
Modified: trunk/reactos/lib/mesa32/include/GL/wmesa.h --- trunk/reactos/lib/mesa32/include/GL/wmesa.h 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/include/GL/wmesa.h 2005-11-04 14:52:02 UTC (rev 18991) @@ -50,7 +50,7 @@
#endif
-#include "gl\gl.h" +#include "GL/gl.h"
#if defined(_MSV_VER) && !defined(__GNUC__) # pragma warning (disable:4273) _____
Added: trunk/reactos/lib/mesa32/mesa32.def --- trunk/reactos/lib/mesa32/mesa32.def 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/mesa32.def 2005-11-04 14:52:02 UTC (rev 18991) @@ -0,0 +1,110 @@
+DESCRIPTION 'Mesa (OpenGL driver) for Win32' +VERSION 6.1 + +EXPORTS +; +; ICD API + DrvCopyContext + DrvCreateContext + DrvCreateLayerContext + DrvDeleteContext + DrvDescribeLayerPlane + DrvDescribePixelFormat + DrvGetLayerPaletteEntries + DrvGetProcAddress + DrvReleaseContext + DrvRealizeLayerPalette + DrvSetContext + DrvSetLayerPaletteEntries + DrvSetPixelFormat + DrvShareLists + DrvSwapBuffers + DrvSwapLayerBuffers + DrvValidateVersion + +; +; Mesa internals - mostly for OSMESA + _ac_CreateContext + _ac_DestroyContext + _ac_InvalidateState + _glapi_get_context + _glapi_get_proc_address + _mesa_buffer_data + _mesa_buffer_map + _mesa_buffer_subdata + _mesa_bzero + _mesa_calloc + _mesa_choose_tex_format + _mesa_compressed_texture_size + _mesa_create_framebuffer + _mesa_create_visual + _mesa_delete_buffer_object + _mesa_delete_texture_object + _mesa_destroy_framebuffer + _mesa_destroy_visual + _mesa_enable_1_3_extensions + _mesa_enable_1_4_extensions + _mesa_enable_1_5_extensions + _mesa_enable_sw_extensions + _mesa_error + _mesa_free + _mesa_free_context_data + _mesa_get_current_context + _mesa_init_default_imports + _mesa_init_driver_functions + _mesa_initialize_context + _mesa_make_current + _mesa_memcpy + _mesa_memset + _mesa_new_buffer_object + _mesa_new_texture_object + _mesa_problem + _mesa_ResizeBuffersMESA + _mesa_store_compressed_teximage1d + _mesa_store_compressed_teximage2d + _mesa_store_compressed_teximage3d + _mesa_store_compressed_texsubimage1d + _mesa_store_compressed_texsubimage2d + _mesa_store_compressed_texsubimage3d + _mesa_store_teximage1d + _mesa_store_teximage2d + _mesa_store_teximage3d + _mesa_store_texsubimage1d + _mesa_store_texsubimage2d + _mesa_store_texsubimage3d + _mesa_strcmp + _mesa_test_proxy_teximage + _mesa_Viewport + _swrast_Accum + _swrast_alloc_buffers + _swrast_Bitmap + _swrast_CopyPixels + _swrast_DrawBuffer + _swrast_DrawPixels + _swrast_GetDeviceDriverReference + _swrast_Clear + _swrast_choose_line + _swrast_choose_triangle + _swrast_CopyColorSubTable + _swrast_CopyColorTable + _swrast_CopyConvolutionFilter1D + _swrast_CopyConvolutionFilter2D + _swrast_copy_teximage1d + _swrast_copy_teximage2d + _swrast_copy_texsubimage1d + _swrast_copy_texsubimage2d + _swrast_copy_texsubimage3d + _swrast_CreateContext + _swrast_DestroyContext + _swrast_InvalidateState + _swrast_ReadPixels + _swrast_zbuffer_address + _swsetup_Wakeup + _swsetup_CreateContext + _swsetup_DestroyContext + _swsetup_InvalidateState + _tnl_CreateContext + _tnl_DestroyContext + _tnl_InvalidateState + _tnl_MakeCurrent + _tnl_run_pipeline Property changes on: trunk/reactos/lib/mesa32/mesa32.def ___________________________________________________________________ Name: svn:eol-style + native _____
Added: trunk/reactos/lib/mesa32/mesa32.xml --- trunk/reactos/lib/mesa32/mesa32.xml 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/mesa32.xml 2005-11-04 14:52:02 UTC (rev 18991) @@ -0,0 +1,209 @@
+<module name="mesa32" type="win32dll" baseaddress="${BASEADDRESS_MESA32}" installbase="system32" installname="mesa32.dll" allowwarnings="true"> + <importlibrary definition="mesa32.def" /> + <linkerflag>-Wl,--enable-stdcall-fixup</linkerflag> + <include base="mesa32">include</include> + <include base="mesa32">src</include> + <include base="mesa32">src/main</include> + <include base="mesa32">src/glapi</include> + <include base="mesa32">src/math</include> + <include base="mesa32">src/tnl</include> + <include base="mesa32">src/shader</include> + <include base="mesa32">src/swrast</include> + <include base="mesa32">src/swrast_setup</include> + <define name="BUILD_GL32" /> + <define name="_OPENGL32_" /> + <define name="STDCALL_API" /> + <define name="USE_MGL_NAMESPACE" /> + <define name="USE_X86_ASM" /> + <define name="USE_MMX_ASM" /> + <define name="USE_SSE_ASM" /> + <define name="USE_3DNOW_ASM" /> + <define name="__USE_W32API" /> + <library>ntdll</library> + <library>kernel32</library> + <library>gdi32</library> + <directory name="src"> + <directory name="array_cache"> + <file>ac_context.c</file> + <file>ac_import.c</file> + </directory> + <directory name="drivers"> + <directory name="common"> + <file>driverfuncs.c</file> + </directory> + <directory name="windows"> + <directory name="gdi"> + <file>wmesa.c</file> + </directory> + <directory name="icd"> + <file>icd.c</file> + </directory> + </directory> + </directory> + <directory name="glapi"> + <file>glapi.c</file> + <file>glthread.c</file> + </directory> + <directory name="main"> + <file>api_arrayelt.c</file> + <file>api_loopback.c</file> + <file>api_noop.c</file> + <file>api_validate.c</file> + <file>accum.c</file> + <file>attrib.c</file> + <file>blend.c</file> + <file>bufferobj.c</file> + <file>buffers.c</file> + <file>clip.c</file> + <file>colortab.c</file> + <file>context.c</file> + <file>convolve.c</file> + <file>debug.c</file> + <file>depth.c</file> + <file>dispatch.c</file> + <file>dlist.c</file> + <file>drawpix.c</file> + <file>enable.c</file> + <file>enums.c</file> + <file>eval.c</file> + <file>extensions.c</file> + <file>feedback.c</file> + <file>fog.c</file> + <file>get.c</file> + <file>hash.c</file> + <file>hint.c</file> + <file>histogram.c</file> + <file>image.c</file> + <file>imports.c</file> + <file>light.c</file> + <file>lines.c</file> + <file>matrix.c</file> + <file>occlude.c</file> + <file>pixel.c</file> + <file>points.c</file> + <file>polygon.c</file> + <file>rastpos.c</file> + <file>state.c</file> + <file>stencil.c</file> + <file>texcompress.c</file> + <file>texcompress_s3tc.c</file> + <file>texcompress_fxt1.c</file> + <file>texformat.c</file> + <file>teximage.c</file> + <file>texobj.c</file> + <file>texstate.c</file> + <file>texstore.c</file> + <file>varray.c</file> + <file>vtxfmt.c</file> + </directory> + <directory name="math"> + <file>m_debug_clip.c</file> + <file>m_debug_norm.c</file> + <file>m_debug_xform.c</file> + <file>m_eval.c</file> + <file>m_matrix.c</file> + <file>m_translate.c</file> + <file>m_vector.c</file> + <file>m_xform.c</file> + </directory> + <directory name="swrast"> + <file>s_fragprog_to_c.c</file> + <file>s_aaline.c</file> + <file>s_aatriangle.c</file> + <file>s_accum.c</file> + <file>s_alpha.c</file> + <file>s_alphabuf.c</file> + <file>s_auxbuffer.c</file> + <file>s_bitmap.c</file> + <file>s_blend.c</file> + <file>s_buffers.c</file> + <file>s_copypix.c</file> + <file>s_context.c</file> + <file>s_depth.c</file> + <file>s_drawpix.c</file> + <file>s_feedback.c</file> + <file>s_fog.c</file> + <file>s_imaging.c</file> + <file>s_lines.c</file> + <file>s_logic.c</file> + <file>s_masking.c</file> + <file>s_nvfragprog.c</file> + <file>s_pixeltex.c</file> + <file>s_points.c</file> + <file>s_readpix.c</file> + <file>s_span.c</file> + <file>s_stencil.c</file> + <file>s_tcc.c</file> + <file>s_texture.c</file> + <file>s_texstore.c</file> + <file>s_triangle.c</file> + <file>s_zoom.c</file> + </directory> + <directory name="swrast_setup"> + <file>ss_context.c</file> + <file>ss_triangle.c</file> + </directory> + <directory name="shader"> + <file>arbfragparse.c</file> + <file>arbprogparse.c</file> + <file>arbprogram.c</file> + <file>arbvertparse.c</file> + <file>grammar_mesa.c</file> + <file>nvfragparse.c</file> + <file>nvprogram.c</file> + <file>nvvertexec.c</file> + <file>nvvertparse.c</file> + <file>program.c</file> + </directory> + <directory name="tnl"> + <file>t_array_api.c</file> + <file>t_array_import.c</file> + <file>t_context.c</file> + <file>t_pipeline.c</file> + <file>t_save_api.c</file> + <file>t_save_loopback.c</file> + <file>t_save_playback.c</file> + <file>t_vb_fog.c</file> + <file>t_vb_light.c</file> + <file>t_vb_normals.c</file> + <file>t_vb_points.c</file> + <file>t_vb_program.c</file> + <file>t_vb_render.c</file> + <file>t_vb_texgen.c</file> + <file>t_vb_texmat.c</file> + <file>t_vb_vertex.c</file> + <file>t_vertex.c</file> + <file>t_vertex_c.c</file> + <file>t_vertex_codegen.c</file> + <file>t_vtx_api.c</file> + <file>t_vtx_generic.c</file> + <file>t_vtx_eval.c</file> + <file>t_vtx_exec.c</file> + <file>t_vtx_x86.c</file> + <file>t_vtx_x86_gcc.S</file> + </directory> + <directory name="x86"> + <file>3dnow.c</file> + <file>3dnow_normal.S</file> + <file>3dnow_xform1.S</file> + <file>3dnow_xform2.S</file> + <file>3dnow_xform3.S</file> + <file>3dnow_xform4.S</file> + <file>common_x86.c</file> + <file>common_x86_asm.S</file> + <file>glapi_x86.S</file> + <file>mmx_blend.S</file> + <file>sse.c</file> + <file>sse_normal.S</file> + <file>sse_xform1.S</file> + <file>sse_xform2.S</file> + <file>sse_xform3.S</file> + <file>sse_xform4.S</file> + <file>x86.c</file> + <file>x86_xform2.S</file> + <file>x86_xform3.S</file> + <file>x86_xform4.S</file> + <file>x86_cliptest.S</file> + </directory> + </directory> +</module> Property changes on: trunk/reactos/lib/mesa32/mesa32.xml ___________________________________________________________________ Name: svn:eol-style + native _____
Modified: trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesa.c --- trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesa.c 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesa.c 2005-11-04 14:52:02 UTC (rev 18991) @@ -18,7 +18,7 @@
* Updated for Mesa 4.0 by Karl Schultz (kschultz@sourceforge.net) */
-#ifdef NDEBUG +#if defined(NDEBUG) && defined(_MSC_VER) #pragma auto_inline(on) #pragma inline_depth(255) #pragma inline_recursion(on) @@ -72,7 +72,7 @@ /* Stereo and parallel not tested for Mesa 4.0. */ #define NO_STEREO #if !defined(NO_STEREO) -#include "gl\glu.h" +#include "GL/glu.h" #include "stereo.h" #endif
@@ -112,6 +112,8 @@
#if defined(_MSC_VER) && _MSC_VER >= 1200 #define FORCEINLINE __forceinline +#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define FORCEINLINE __attribute__((always_inline)) #else #define FORCEINLINE __inline #endif @@ -470,7 +472,7 @@ mask &= ~DD_BACK_LEFT_BIT; #endif // DDRAW #else - DWORD dwColor; + DWORD dwColor = 0; WORD wColor; BYTE bColor; LPDWORD lpdw = (LPDWORD)Current->pbPixels; @@ -521,8 +523,6 @@ GetGValue(Current->clearpixel), GetBValue(Current->clearpixel)); } - else - dwColor = 0;
if (nBypp != 3) { _____
Modified: trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesadef.h --- trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesadef.h 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/src/drivers/windows/gdi/wmesadef.h 2005-11-04 14:52:02 UTC (rev 18991) @@ -70,7 +70,7 @@
#include <windows.h> -#include <GL\gl.h> +#include <GL/gl.h> #include "context.h" #ifdef DDRAW #define DIRECTDRAW_VERSION 0x0100 _____
Modified: trunk/reactos/lib/mesa32/src/main/glheader.h --- trunk/reactos/lib/mesa32/src/main/glheader.h 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/src/main/glheader.h 2005-11-04 14:52:02 UTC (rev 18991) @@ -98,10 +98,10 @@
# pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */ # endif # endif -# if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ +# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ # define GLAPI __declspec(dllexport) # define WGLAPI __declspec(dllexport) -# elif defined(_MSC_VER) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ +# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ # define GLAPI __declspec(dllimport) # define WGLAPI __declspec(dllimport) # else /* for use with static link lib build of Win32 edition only */ _____
Modified: trunk/reactos/lib/mesa32/src/main/texcompress_s3tc.c --- trunk/reactos/lib/mesa32/src/main/texcompress_s3tc.c 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/src/main/texcompress_s3tc.c 2005-11-04 14:52:02 UTC (rev 18991) @@ -286,7 +286,7 @@
GLint i, GLint j, GLint k, GLfloat *texel ) { /* just sample as GLchan and convert to float here */ - GLchan rgba[4]; + GLchan rgba[4] = {0, 0, 0, 0}; fetch_texel_2d_rgb_dxt1(texImage, i, j, k, rgba); texel[RCOMP] = CHAN_TO_FLOAT(rgba[RCOMP]); texel[GCOMP] = CHAN_TO_FLOAT(rgba[GCOMP]); @@ -308,7 +308,7 @@ GLint i, GLint j, GLint k, GLfloat *texel ) { /* just sample as GLchan and convert to float here */ - GLchan rgba[4]; + GLchan rgba[4] = {0, 0, 0, 0}; fetch_texel_2d_rgba_dxt1(texImage, i, j, k, rgba); texel[RCOMP] = CHAN_TO_FLOAT(rgba[RCOMP]); texel[GCOMP] = CHAN_TO_FLOAT(rgba[GCOMP]); @@ -330,7 +330,7 @@ GLint i, GLint j, GLint k, GLfloat *texel ) { /* just sample as GLchan and convert to float here */ - GLchan rgba[4]; + GLchan rgba[4] = {0, 0, 0, 0}; fetch_texel_2d_rgba_dxt3(texImage, i, j, k, rgba); texel[RCOMP] = CHAN_TO_FLOAT(rgba[RCOMP]); texel[GCOMP] = CHAN_TO_FLOAT(rgba[GCOMP]); @@ -352,7 +352,7 @@ GLint i, GLint j, GLint k, GLfloat *texel ) { /* just sample as GLchan and convert to float here */ - GLchan rgba[4]; + GLchan rgba[4] = {0, 0, 0, 0}; fetch_texel_2d_rgba_dxt5(texImage, i, j, k, rgba); texel[RCOMP] = CHAN_TO_FLOAT(rgba[RCOMP]); texel[GCOMP] = CHAN_TO_FLOAT(rgba[GCOMP]); _____
Modified: trunk/reactos/lib/mesa32/src/main/texformat_tmp.h --- trunk/reactos/lib/mesa32/src/main/texformat_tmp.h 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/src/main/texformat_tmp.h 2005-11-04 14:52:02 UTC (rev 18991) @@ -1,6 +1,7 @@
+/* $XFree86$ */ /* * Mesa 3-D graphics library - * Version: 6.1 + * Version: 6.2 * * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. * @@ -44,46 +45,34 @@ #if DIM == 1
#define CHAN_SRC( t, i, j, k, sz ) \ - ((void) (j), (void) (k), \ - ((GLchan *)(t)->Data + (i) * (sz))) + ((GLchan *)(t)->Data + (i) * (sz)) #define UBYTE_SRC( t, i, j, k, sz ) \ - ((void) (j), (void) (k), \ - ((GLubyte *)(t)->Data + (i) * (sz))) + ((GLubyte *)(t)->Data + (i) * (sz)) #define USHORT_SRC( t, i, j, k ) \ - ((void) (j), (void) (k), \ - ((GLushort *)(t)->Data + (i))) + ((GLushort *)(t)->Data + (i)) #define UINT_SRC( t, i, j, k ) \ - ((void) (j), (void) (k), \ - ((GLuint *)(t)->Data + (i))) + ((GLuint *)(t)->Data + (i)) #define FLOAT_SRC( t, i, j, k, sz ) \ - ((void) (j), (void) (k), \ - ((GLfloat *)(t)->Data + (i) * (sz))) + ((GLfloat *)(t)->Data + (i) * (sz)) #define HALF_SRC( t, i, j, k, sz ) \ - ((void) (j), (void) (k), \ - ((GLhalfARB *)(t)->Data + (i) * (sz))) + ((GLhalfARB *)(t)->Data + (i) * (sz))
#define FETCH(x) fetch_texel_1d_##x
#elif DIM == 2
#define CHAN_SRC( t, i, j, k, sz ) \ - ((void) (k), \ - ((GLchan *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz))) + ((GLchan *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz)) #define UBYTE_SRC( t, i, j, k, sz ) \ - ((void) (k), \ - ((GLubyte *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz))) + ((GLubyte *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz)) #define USHORT_SRC( t, i, j, k ) \ - ((void) (k), \ - ((GLushort *)(t)->Data + ((t)->RowStride * (j) + (i)))) + ((GLushort *)(t)->Data + ((t)->RowStride * (j) + (i))) #define UINT_SRC( t, i, j, k ) \ - ((void) (k), \ - ((GLuint *)(t)->Data + ((t)->RowStride * (j) + (i)))) + ((GLuint *)(t)->Data + ((t)->RowStride * (j) + (i))) #define FLOAT_SRC( t, i, j, k, sz ) \ - ((void) (k), \ - ((GLfloat *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz))) + ((GLfloat *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz)) #define HALF_SRC( t, i, j, k, sz ) \ - ((void) (k), \ - ((GLhalfARB *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz))) + ((GLhalfARB *)(t)->Data + ((t)->RowStride * (j) + (i)) * (sz))
#define FETCH(x) fetch_texel_2d_##x
@@ -1023,9 +1012,9 @@ GLint i, GLint j, GLint k, GLchan *texel ) { const GLubyte *src = UBYTE_SRC( texImage, i, j, k, 1 ); - const GLuint index = *src; const struct gl_color_table *palette; const GLchan *table; + GLuint index; GET_CURRENT_CONTEXT(ctx);
if (ctx->Texture.SharedPalette) { @@ -1039,6 +1028,9 @@ ASSERT(palette->Type != GL_FLOAT); table = (const GLchan *) palette->Table;
+ /* Mask the index against size of palette to avoid going out of bounds */ + index = (*src) & (palette->Size - 1); + switch (palette->Format) { case GL_ALPHA: texel[RCOMP] = _____
Modified: trunk/reactos/lib/mesa32/src/x86/common_x86.c --- trunk/reactos/lib/mesa32/src/x86/common_x86.c 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/src/x86/common_x86.c 2005-11-04 14:52:02 UTC (rev 18991) @@ -132,6 +132,36 @@
} #endif /* __linux__ && _POSIX_SOURCE && X86_FXSR_MAGIC */
+#if defined(WIN32) +#ifndef STATUS_FLOAT_MULTIPLE_TRAPS +# define STATUS_FLOAT_MULTIPLE_TRAPS (0xC00002B5L) +#endif +static LONG WINAPI ExceptionFilter(LPEXCEPTION_POINTERS exp) +{ + PEXCEPTION_RECORD rec = exp->ExceptionRecord; + PCONTEXT ctx = exp->ContextRecord; + + if ( rec->ExceptionCode == EXCEPTION_ILLEGAL_INSTRUCTION ) { + message( "EXCEPTION_ILLEGAL_INSTRUCTION, " ); + _mesa_x86_cpu_features &= ~(X86_FEATURE_XMM); + } else if ( rec->ExceptionCode == STATUS_FLOAT_MULTIPLE_TRAPS ) { + message( "STATUS_FLOAT_MULTIPLE_TRAPS, " ); + /* Windows seems to clear the exception flag itself, we just have to increment Eip */ + } else { + message( "UNEXPECTED EXCEPTION (0x%08x), terminating!" ); + return EXCEPTION_EXECUTE_HANDLER; + } + + if ( (ctx->ContextFlags & CONTEXT_CONTROL) != CONTEXT_CONTROL ) { + message( "Context does not contain control registers, terminating!" ); + return EXCEPTION_EXECUTE_HANDLER; + } + ctx->Eip += 3; + + return EXCEPTION_CONTINUE_EXECUTION; +} +#endif /* WIN32 */ + /* If we're running on a processor that can do SSE, let's see if we * are allowed to or not. This will catch 2.4.0 or later kernels that * haven't been configured for a Pentium III but are running on one, @@ -226,6 +256,44 @@ if (ret || !enabled) _mesa_x86_cpu_features &= ~(X86_FEATURE_XMM); } +#elif defined(WIN32) + LPTOP_LEVEL_EXCEPTION_FILTER oldFilter; + + /* Install our ExceptionFilter */ + oldFilter = SetUnhandledExceptionFilter( ExceptionFilter ); + + if ( cpu_has_xmm ) { + message( "Testing OS support for SSE... " ); + + _mesa_test_os_sse_support(); + + if ( cpu_has_xmm ) { + message( "yes.\n" ); + } else { + message( "no!\n" ); + } + } + + if ( cpu_has_xmm ) { + message( "Testing OS support for SSE unmasked exceptions... " ); + + _mesa_test_os_sse_exception_support(); + + if ( cpu_has_xmm ) { + message( "yes.\n" ); + } else { + message( "no!\n" ); + } + } + + /* Restore previous exception filter */ + SetUnhandledExceptionFilter( oldFilter ); + + if ( cpu_has_xmm ) { + message( "Tests of OS support for SSE passed.\n" ); + } else { + message( "Tests of OS support for SSE failed!\n" ); + } #else /* Do nothing on other platforms for now. */ _____
Modified: trunk/reactos/lib/mesa32/src/x86/glapi_x86.S --- trunk/reactos/lib/mesa32/src/x86/glapi_x86.S 2005-11-04 14:25:07 UTC (rev 18990) +++ trunk/reactos/lib/mesa32/src/x86/glapi_x86.S 2005-11-04 14:52:02 UTC (rev 18991) @@ -29,7 +29,7 @@
#include "assyntax.h" #include "glapioffsets.h"
-#ifndef __WIN32__ +#if 1 //ndef __WIN32__
#if defined(STDCALL_API) # if defined(USE_MGL_NAMESPACE)