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