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