README.WIN32 revision 18b72d184ceec81788641a343a25925f47b63aea
1File: docs/README.WIN32 2 3Last updated: Mar 31, 2006 - Karl Schultz - kschultz@users.sourceforge.net 4 5Quick Start 6----- ----- 7 8Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same 9directory. The libs and demos build separately, so if you do not care 10about the demos or GLUT, you only need to unzip MesaLib. If you unzip 11more than one ZIP file, they all need to be unzipped into the same 12directory. Don't worry, you will not overwrite anything. 13 14The Windows build system uses Microsoft Visual Studio. Project files 15for a specific version of Visual Studio are in their own directory in 16the top-level "windows" directory. For example, Visual Studio 6 files 17are in windows/VC6. If a directory does not exist for your version of 18Visual Studio, you can try importing the project files from an earlier 19version of Visual Studio. At this time, project files exist for 20Version 6 and Version 7. The code has been built with a beta version 21of Version 8 and it runs on 64-bit Windows. If you want to try this, 22start by importing the VC7 files and create the 64-bit targets in the 23configuration manager. 24 25It is likely that the new and free Visual Studio Express can be used 26to build Mesa, but it hasn't been tried yet. Start with the VC7 27project files. 28 29The project files to build the core Mesa library, Windows Mesa 30drivers, OSMesa, and GLU are in the mesa directory. The project files 31to build GLUT and some demo programs are in the progs directory. 32 33Makefiles are no longer shipped or supported, but can be generated 34from the projects using Visual Studio. 35 36 37Windows Drivers 38------- ------- 39 40At this time, only the GDI driver is known to work. Most of the demos 41in progs/demos should work with this driver. 42 43Source code also exists in the tree for other drivers in 44src/mesa/drivers/windows, but the status of this code is unknown. 45 46The GDI driver operates basically by writing pixel spans into a DIB 47section and then blitting the DIB to the window. The driver was 48recently cleaned up and rewitten and so may have bugs or may be 49missing some functionality. The older versions of the CVS source may 50be useful in figuring out any problems, or report them to me. 51 52To build Mesa with the GDI driver, build the mesa, gdi, and glu 53projects in the Visual Studio workspace found at 54 55 windows/VC6/mesa/mesa.dsw 56or 57 windows/VC7/mesa/mesa.sln 58 59The osmesa DLL can also be built with the osmesa project. 60 61The build system creates a lib top-level directory and copies 62resulting LIB and DLL files to this lib directory. The files are: 63 64 OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB 65 OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL 66 67If the MesaDemos ZIP file was extracted, the DLL files are also copied 68to the demos directory. This facilitates running the demos as described 69below. 70 71 72GLUT and Demos 73---- --- ----- 74 75A Visual Studio workspace can be found at 76 77 windows/VC6/progs/progs.dsw 78or 79 windows/VC7/progs/progs.sln 80 81It can be used to build GLUT and a few demos. The GLUT lib and DLL 82are copied to the top-level lib directory, along with the Mesa libs. 83 84The demo build system expects to find the LIB files in the top level 85lib directory, so you must build the Mesa libs first. The demo 86executables are placed in the demos directory, because some of them 87rely on data files found there. Also, the Mesa lib DLL's were copied 88there by the Mesa lib build process. Therefore, you should be able to 89simply run the demo executables from the demo directory. 90 91If you want to run the demos from the Visual Studio, you may have to 92change the startup directory and explicitly state where the executables are. 93 94You may also build all the demo programs by using a makefile. Go to 95the progs/demos directory and make sure you have executed VCVARS32.BAT 96or whatever setup script is appropriate for your compiler. Then, 97 98 nmake -f Makefile.win 99 100should build all the demos. 101 102 103Build System Notes 104----- ------ ----- 105 106VC6 107--- 108 109Visual Studio 6 does not recognize files with the .cc extension as C++ 110language files, without a lot of unnatural tweaking. So, the VC6 111build process uses custom build steps to compile these files in the 112GLU library. 113 114Two additional configurations are provided, Debug x86 and Release x86 115that activate the shader code compilation by defining SLANG_86. It is 116unknown if and how this works. 117 118VC7 119--- 120 121The above-mentioned .cc problem does not exist in this version. 122 123 124General 125------- 126 127After building, you can copy the above DLL files to a place in your 128PATH such as $SystemRoot/SYSTEM32. If you don't like putting things 129in a system directory, place them in the same directory as the 130executable(s). Be careful about accidentially overwriting files of 131the same name in the SYSTEM32 directory. 132 133The DLL files are built so that the external entry points use the 134stdcall calling convention. 135 136Static LIB files are not built. The LIB files that are built with are 137the linker import files associated with the DLL files. 138 139The si-glu sources are used to build the GLU libs. This was done 140mainly to get the better tessellator code. 141 142To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE 143to the project settings. You will also need to edit src/mesa.def to 144change all the gl* symbols to mgl*. Because this is easy to do with a 145global replace operation in a text editor, no additional mangled 146version of mesa.def is maintained or shipped. 147 148If you have a Windows-related build problem or question, it is 149probably better to direct it to me (kschultz@users.sourceforge.net), 150rather than directly to the other Mesa developers. I will help you as 151much as I can. I also monitor the Mesa mailing lists and will answer 152questions in this area there as well. 153 154 155Karl Schultz 156