| File: docs/README.WIN32 |
| |
| Last updated: Mar 31, 2006 - 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 6 files |
| are in windows/VC6. If a directory does not exist for your version of |
| Visual Studio, you can try importing the project files from an earlier |
| version of Visual Studio. At this time, project files exist for |
| Version 6 and Version 7. The code has been built with a beta version |
| of Version 8 and it runs on 64-bit Windows. If you want to try this, |
| start by importing the VC7 files and create the 64-bit targets in the |
| configuration manager. |
| |
| It is likely that the new and free Visual Studio Express can be used |
| to build Mesa, but it hasn't been tried yet. Start with the VC7 |
| project files. |
| |
| 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/VC6/mesa/mesa.dsw |
| or |
| windows/VC7/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/VC6/progs/progs.dsw |
| or |
| windows/VC7/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 |
| --- |
| |
| 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 |
| --- |
| |
| The above-mentioned .cc problem does not exist in this version. |
| |
| |
| 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 |