added MESA_GLX_ALPHA_BITS env var
[mesa.git] / docs / README.WIN32
1 File: docs/README.WIN32
2
3 Last updated: Jul 01, 2005 - Karl Schultz - kschultz@users.sourceforge.net
4
5 Quick Start
6 ----- -----
7
8 Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
9 The libs and demos build separately, so if you do not care about the
10 demos, you do not have to unzip that zip file. But if you do, it does
11 need to be unzipped into the same directory as the lib zip file
12 because the demos depend on the libs.
13
14 The Windows build system uses Microsoft Visual Studio. Project files
15 for a specific version of Visual Studio are in their own directory in
16 the top-level "windows" directory. For example, Visual Studio 6 files
17 are in windows/VC6. If a directory does not exist for your version of
18 Visual Studio, you can try importing the project files from an earlier
19 version of Visual Studio. At this time, project files exist for
20 Version 6 and Version 7. The code has been built with a beta version
21 of Version 8 and it runs on 64-bit Windows. If you want to try this,
22 start by importing the VC7 files and create the 64-bit targets in the
23 configuration manager.
24
25 The project files to build the core Mesa library, Windows Mesa
26 drivers, OSMesa, and GLU are in the mesa directory. The project files
27 to build GLUT and some demo programs are in the progs directory.
28
29 Makefiles are no longer shipped or supported, but can be generated
30 from the projects using Visual Studio.
31
32
33 Windows Drivers
34 ------- -------
35
36 At this time, only the GDI driver is known to work, as it has been
37 ported and rewritten to the latest Mesa DD interfaces. Source code
38 also exists in the tree for other drivers in src/mesa/drivers/windows,
39 but the status of this code is unknown.
40
41 The GDI driver operates basically by writing pixel spans into a DIB
42 section and then blitting the DIB to the window. The driver was
43 recently cleaned up and rewitten and so may have bugs or may be
44 missing some functionality. The older versions of the CVS source may
45 be useful in figuring out any problems, or report them to me.
46
47 To build Mesa with the GDI driver, build the mesa, gdi, and glu
48 projects in the Visual Studio workspace found at
49
50 windows/VC6/mesa/mesa.dsw
51 or
52 windows/VC7/mesa/mesa.sln
53
54 The osmesa DLL can also be built with the osmesa project.
55
56 The build system creates a lib top-level directory and copies
57 resulting LIB and DLL files to this lib directory. The files are:
58
59 OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
60 OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
61
62 If the MesaDemos ZIP file was extracted, the DLL files are also copied
63 to the demos directory. This facilitates running the demos as described
64 below.
65
66
67 GLUT and Demos
68 ---- --- -----
69
70 A Visual Studio workspace can be found at
71
72 windows/VC6/progs/progs.dsw
73 or
74 windows/VC7/progs/progs.sln
75
76 It can be used to build GLUT and a few demos. The GLUT lib and DLL
77 are copied to the top-level lib directory, along with the Mesa libs.
78
79 The demo build system expects to find the LIB files in the top level
80 lib directory, so you must build the Mesa libs first. The demo
81 executables are placed in the demos directory, because some of them
82 rely on data files found there. Also, the Mesa lib DLL's were copied
83 there by the Mesa lib build process. Therefore, you should be able to
84 simply run the demo executables from the demo directory.
85
86 If you want to run the demos from the Visual Studio, you may have to
87 change the startup directory and explicitly state where the executables are.
88
89
90 Build System Notes
91 ----- ------ -----
92
93 VC6
94 ---
95
96 Visual Studio 6 does not recognize files with the .cc extension as C++
97 language files, without a lot of unnatural tweaking. So, the VC6
98 build process uses custom build steps to compile these files in the
99 GLU library.
100
101
102 VC7
103 ---
104
105 The above-mentioned .cc problem does not exist in this version.
106
107
108 General
109 -------
110
111 After building, you can copy the above DLL files to a place in your
112 PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
113 in a system directory, place them in the same directory as the
114 executable(s). Be careful about accidentially overwriting files of
115 the same name in the SYSTEM32 directory.
116
117 The DLL files are built so that the external entry points use the
118 stdcall calling convention.
119
120 Static LIB files are not built. The LIB files that are built with are
121 the linker import files associated with the DLL files.
122
123 The si-glu sources are used to build the GLU libs. This was done
124 mainly to get the better tessellator code.
125
126 To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
127 to the project settings. You will also need to edit src/mesa.def to
128 change all the gl* symbols to mgl*. Because this is easy to do with a
129 global replace operation in a text editor, no additional mangled
130 version of mesa.def is maintained or shipped.
131
132 If you have a Windows-related build problem or question, it is
133 probably better to direct it to me (kschultz@users.sourceforge.net),
134 rather than directly to the other Mesa developers. I will help you as
135 much as I can. I also monitor the Mesa mailing lists and will answer
136 questions in this area there as well.
137
138
139 Karl Schultz