README.WIN32 revision e43edd3c70b2b6d7cc5c42674d2cb43cfafbad20
1File: docs/README.WIN32 2 3Last updated: Mar 29, 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 partially work, as it is 41in the process of being ported and rewritten to the latest Mesa DD 42interfaces. Most of the demos in progs/demos work, but some do not. 43We hope to finish this driver work in the near future. 44 45Source code also exists in the tree for other drivers in 46src/mesa/drivers/windows, but the status of this code is unknown. 47 48The GDI driver operates basically by writing pixel spans into a DIB 49section and then blitting the DIB to the window. The driver was 50recently cleaned up and rewitten and so may have bugs or may be 51missing some functionality. The older versions of the CVS source may 52be useful in figuring out any problems, or report them to me. 53 54To build Mesa with the GDI driver, build the mesa, gdi, and glu 55projects in the Visual Studio workspace found at 56 57 windows/VC6/mesa/mesa.dsw 58or 59 windows/VC7/mesa/mesa.sln 60 61The osmesa DLL can also be built with the osmesa project. 62 63The build system creates a lib top-level directory and copies 64resulting LIB and DLL files to this lib directory. The files are: 65 66 OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB 67 OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL 68 69If the MesaDemos ZIP file was extracted, the DLL files are also copied 70to the demos directory. This facilitates running the demos as described 71below. 72 73 74GLUT and Demos 75---- --- ----- 76 77A Visual Studio workspace can be found at 78 79 windows/VC6/progs/progs.dsw 80or 81 windows/VC7/progs/progs.sln 82 83It can be used to build GLUT and a few demos. The GLUT lib and DLL 84are copied to the top-level lib directory, along with the Mesa libs. 85 86The demo build system expects to find the LIB files in the top level 87lib directory, so you must build the Mesa libs first. The demo 88executables are placed in the demos directory, because some of them 89rely on data files found there. Also, the Mesa lib DLL's were copied 90there by the Mesa lib build process. Therefore, you should be able to 91simply run the demo executables from the demo directory. 92 93If you want to run the demos from the Visual Studio, you may have to 94change the startup directory and explicitly state where the executables are. 95 96You may also build all the demo programs by using a makefile. Go to 97the progs/demos directory and make sure you have executed VCVARS32.BAT 98or whatever setup script is appropriate for your compiler. Then, 99 100 nmake -f Makefile.win 101 102should build all the demos. 103 104 105Build System Notes 106----- ------ ----- 107 108VC6 109--- 110 111Visual Studio 6 does not recognize files with the .cc extension as C++ 112language files, without a lot of unnatural tweaking. So, the VC6 113build process uses custom build steps to compile these files in the 114GLU library. 115 116Two additional configurations are provided, Debug x86 and Release x86 117that activate the shader code compilation by defining SLANG_86. It is 118unknown if and how this works. 119 120VC7 121--- 122 123The above-mentioned .cc problem does not exist in this version. 124 125 126General 127------- 128 129After building, you can copy the above DLL files to a place in your 130PATH such as $SystemRoot/SYSTEM32. If you don't like putting things 131in a system directory, place them in the same directory as the 132executable(s). Be careful about accidentially overwriting files of 133the same name in the SYSTEM32 directory. 134 135The DLL files are built so that the external entry points use the 136stdcall calling convention. 137 138Static LIB files are not built. The LIB files that are built with are 139the linker import files associated with the DLL files. 140 141The si-glu sources are used to build the GLU libs. This was done 142mainly to get the better tessellator code. 143 144To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE 145to the project settings. You will also need to edit src/mesa.def to 146change all the gl* symbols to mgl*. Because this is easy to do with a 147global replace operation in a text editor, no additional mangled 148version of mesa.def is maintained or shipped. 149 150If you have a Windows-related build problem or question, it is 151probably better to direct it to me (kschultz@users.sourceforge.net), 152rather than directly to the other Mesa developers. I will help you as 153much as I can. I also monitor the Mesa mailing lists and will answer 154questions in this area there as well. 155 156 157Karl Schultz 158