blob: 204b8e6604184d8562ef3cb400af0d4fdcbe905a [file] [log] [blame]
José Fonseca60159c12008-02-28 16:34:32 +09001File: docs/README.WIN32
2
3Last updated: Apr 25, 2007 - 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 8 files
17are in windows/VC8.
18
19Support has been dropped for versions of Visual Studio prior to 8. The
20main reason is because Microsoft now provides a free compiler and
21developer environment. Visual Studio Express can be found at
22
23http://msdn.microsoft.com/vstudio/express/visualc/default.aspx
24
25You'll also need the Platform SDK. Instructions for obtaining and
26using the SDK with Visual Studio Express can be found at
27
28http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
29
José Fonseca60159c12008-02-28 16:34:32 +090030The project files to build the core Mesa library, Windows Mesa
31drivers, OSMesa, and GLU are in the mesa directory. The project files
32to build GLUT and some demo programs are in the progs directory.
33
34Makefiles are no longer shipped or supported, but can be generated
35from the projects using Visual Studio.
36
37
38Windows Drivers
39------- -------
40
41At this time, only the GDI driver is known to work. Most of the demos
42in progs/demos should work with this driver.
43
44Source code also exists in the tree for other drivers in
45src/mesa/drivers/windows, but the status of this code is unknown.
46
47The GDI driver operates basically by writing pixel spans into a DIB
48section and then blitting the DIB to the window. The driver was
49recently cleaned up and rewitten and so may have bugs or may be
50missing some functionality. The older versions of the CVS source may
51be useful in figuring out any problems, or report them to me.
52
53To build Mesa with the GDI driver, build the mesa, gdi, and glu
54projects in the Visual Studio workspace found at
55
56 windows/VC8/mesa/mesa.sln
57
58The osmesa DLL can also be built with the osmesa project.
59
60The build system creates a lib top-level directory and copies
61resulting LIB and DLL files to this lib directory. The files are:
62
63 OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
64 OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
65
66If the MesaDemos ZIP file was extracted, the DLL files are also copied
67to the demos directory. This facilitates running the demos as described
68below.
69
70
71GLUT and Demos
72---- --- -----
73
74A Visual Studio workspace can be found at
75
76 windows/VC8/progs/progs.sln
77
78It can be used to build GLUT and a few demos. The GLUT lib and DLL
79are copied to the top-level lib directory, along with the Mesa libs.
80
81The demo build system expects to find the LIB files in the top level
82lib directory, so you must build the Mesa libs first. The demo
83executables are placed in the demos directory, because some of them
84rely on data files found there. Also, the Mesa lib DLL's were copied
85there by the Mesa lib build process. Therefore, you should be able to
86simply run the demo executables from the demo directory.
87
88If you want to run the demos from the Visual Studio, you may have to
89change the startup directory and explicitly state where the executables are.
90
91You may also build all the demo programs by using a makefile. Go to
92the progs/demos directory and make sure you have executed VCVARS32.BAT
93or whatever setup script is appropriate for your compiler. Then,
94
95 nmake -f Makefile.win
96
97should build all the demos.
98
99
100Build System Notes
101----- ------ -----
102
José Fonseca60159c12008-02-28 16:34:32 +0900103VC8
104---
105
106No notes.
107
108
109General
110-------
111
112After building, you can copy the above DLL files to a place in your
113PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
114in a system directory, place them in the same directory as the
115executable(s). Be careful about accidentially overwriting files of
116the same name in the SYSTEM32 directory.
117
118The DLL files are built so that the external entry points use the
119stdcall calling convention.
120
121Static LIB files are not built. The LIB files that are built with are
122the linker import files associated with the DLL files.
123
124The si-glu sources are used to build the GLU libs. This was done
125mainly to get the better tessellator code.
126
127To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
128to the project settings. You will also need to edit src/mesa.def to
129change all the gl* symbols to mgl*. Because this is easy to do with a
130global replace operation in a text editor, no additional mangled
131version of mesa.def is maintained or shipped.
132
133If you have a Windows-related build problem or question, it is
134probably better to direct it to me (kschultz@users.sourceforge.net),
135rather than directly to the other Mesa developers. I will help you as
136much as I can. I also monitor the Mesa mailing lists and will answer
137questions in this area there as well.
138
139
140Karl Schultz