| File: docs/README.WIN32 | |
| Last updated: Apr 25, 2007 - Karl Schultz - kschultz@users.sourceforge.net | |
| Quick Start | |
| ----- ----- | |
| Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same | |
| directory. The libs and demos build separately, so if you do not care | |
| about the demos or GLUT, you only need to unzip MesaLib. If you unzip | |
| more than one ZIP file, they all need to be unzipped into the same | |
| directory. Don't worry, you will not overwrite anything. | |
| The Windows build system uses Microsoft Visual Studio. Project files | |
| for a specific version of Visual Studio are in their own directory in | |
| the top-level "windows" directory. For example, Visual Studio 8 files | |
| are in windows/VC8. | |
| Support has been dropped for versions of Visual Studio prior to 8. The | |
| main reason is because Microsoft now provides a free compiler and | |
| developer environment. Visual Studio Express can be found at | |
| http://msdn.microsoft.com/vstudio/express/visualc/default.aspx | |
| You'll also need the Platform SDK. Instructions for obtaining and | |
| using the SDK with Visual Studio Express can be found at | |
| http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ | |
| If you are stuck using VC6 or VC7, you may start with these project | |
| files, but you may need to modify them to reflect changes in the | |
| Mesa source code tree. If you sucessfully update the project files, | |
| please submit them to the author of this document so that they may | |
| be included in the next distribution. | |
| The project files to build the core Mesa library, Windows Mesa | |
| drivers, OSMesa, and GLU are in the mesa directory. The project files | |
| to build GLUT and some demo programs are in the progs directory. | |
| Makefiles are no longer shipped or supported, but can be generated | |
| from the projects using Visual Studio. | |
| Windows Drivers | |
| ------- ------- | |
| At this time, only the GDI driver is known to work. Most of the demos | |
| in progs/demos should work with this driver. | |
| Source code also exists in the tree for other drivers in | |
| src/mesa/drivers/windows, but the status of this code is unknown. | |
| The GDI driver operates basically by writing pixel spans into a DIB | |
| section and then blitting the DIB to the window. The driver was | |
| recently cleaned up and rewitten and so may have bugs or may be | |
| missing some functionality. The older versions of the CVS source may | |
| be useful in figuring out any problems, or report them to me. | |
| To build Mesa with the GDI driver, build the mesa, gdi, and glu | |
| projects in the Visual Studio workspace found at | |
| windows/VC8/mesa/mesa.sln | |
| The osmesa DLL can also be built with the osmesa project. | |
| The build system creates a lib top-level directory and copies | |
| resulting LIB and DLL files to this lib directory. The files are: | |
| OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB | |
| OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL | |
| If the MesaDemos ZIP file was extracted, the DLL files are also copied | |
| to the demos directory. This facilitates running the demos as described | |
| below. | |
| GLUT and Demos | |
| ---- --- ----- | |
| A Visual Studio workspace can be found at | |
| windows/VC8/progs/progs.sln | |
| It can be used to build GLUT and a few demos. The GLUT lib and DLL | |
| are copied to the top-level lib directory, along with the Mesa libs. | |
| The demo build system expects to find the LIB files in the top level | |
| lib directory, so you must build the Mesa libs first. The demo | |
| executables are placed in the demos directory, because some of them | |
| rely on data files found there. Also, the Mesa lib DLL's were copied | |
| there by the Mesa lib build process. Therefore, you should be able to | |
| simply run the demo executables from the demo directory. | |
| If you want to run the demos from the Visual Studio, you may have to | |
| change the startup directory and explicitly state where the executables are. | |
| You may also build all the demo programs by using a makefile. Go to | |
| the progs/demos directory and make sure you have executed VCVARS32.BAT | |
| or whatever setup script is appropriate for your compiler. Then, | |
| nmake -f Makefile.win | |
| should build all the demos. | |
| Build System Notes | |
| ----- ------ ----- | |
| VC6 (not actively supported) | |
| --- | |
| Visual Studio 6 does not recognize files with the .cc extension as C++ | |
| language files, without a lot of unnatural tweaking. So, the VC6 | |
| build process uses custom build steps to compile these files in the | |
| GLU library. | |
| Two additional configurations are provided, Debug x86 and Release x86 | |
| that activate the shader code compilation by defining SLANG_86. It is | |
| unknown if and how this works. | |
| VC7 (not actively supported) | |
| --- | |
| The above-mentioned .cc problem does not exist in this version. | |
| VC8 | |
| --- | |
| No notes. | |
| General | |
| ------- | |
| After building, you can copy the above DLL files to a place in your | |
| PATH such as $SystemRoot/SYSTEM32. If you don't like putting things | |
| in a system directory, place them in the same directory as the | |
| executable(s). Be careful about accidentially overwriting files of | |
| the same name in the SYSTEM32 directory. | |
| The DLL files are built so that the external entry points use the | |
| stdcall calling convention. | |
| Static LIB files are not built. The LIB files that are built with are | |
| the linker import files associated with the DLL files. | |
| The si-glu sources are used to build the GLU libs. This was done | |
| mainly to get the better tessellator code. | |
| To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE | |
| to the project settings. You will also need to edit src/mesa.def to | |
| change all the gl* symbols to mgl*. Because this is easy to do with a | |
| global replace operation in a text editor, no additional mangled | |
| version of mesa.def is maintained or shipped. | |
| If you have a Windows-related build problem or question, it is | |
| probably better to direct it to me (kschultz@users.sourceforge.net), | |
| rather than directly to the other Mesa developers. I will help you as | |
| much as I can. I also monitor the Mesa mailing lists and will answer | |
| questions in this area there as well. | |
| Karl Schultz |