blob: 675a3b36451c16ac8aa8fadd7ef3c655cf8ecdf9 [file] [log] [blame]
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00001File: docs/README.WIN32
2
Karl Schultz5f79d272005-07-01 21:08:00 +00003Last updated: Jul 01, 2005 - Karl Schultz - kschultz@users.sourceforge.net
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00004
5Quick Start
Karl Schultz516546a2005-06-02 23:17:02 +00006----- -----
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00007
Karl Schultzaf76b422002-11-08 18:00:04 +00008Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
Karl Schultze4b40a72003-09-18 19:10:53 +00009The libs and demos build separately, so if you do not care about the
10demos, you do not have to unzip that zip file. But if you do, it does
Karl Schultz516546a2005-06-02 23:17:02 +000011need to be unzipped into the same directory as the lib zip file
12because the demos depend on the libs.
Karl Schultzaf76b422002-11-08 18:00:04 +000013
Karl Schultz516546a2005-06-02 23:17:02 +000014The 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
Karl Schultz5f79d272005-07-01 21:08:00 +000020Version 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.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000024
Karl Schultz516546a2005-06-02 23:17:02 +000025The project files to build the core Mesa library, Windows Mesa
26drivers, OSMesa, and GLU are in the mesa directory. The project files
27to build GLUT and some demo programs are in the progs directory.
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000028
Karl Schultz516546a2005-06-02 23:17:02 +000029Makefiles are no longer shipped or supported, but can be generated
30from the projects using Visual Studio.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000031
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000032
Karl Schultz516546a2005-06-02 23:17:02 +000033Windows Drivers
34------- -------
35
36At this time, only the GDI driver is known to work, as it has been
37ported and rewritten to the latest Mesa DD interfaces. Source code
38also exists in the tree for other drivers in src/mesa/drivers/windows,
39but the status of this code is unknown.
40
41The GDI driver operates basically by writing pixel spans into a DIB
42section and then blitting the DIB to the window. The driver was
43recently cleaned up and rewitten and so may have bugs or may be
44missing some functionality. The older versions of the CVS source may
45be useful in figuring out any problems, or report them to me.
46
47To build Mesa with the GDI driver, build the mesa, gdi, and glu
48projects in the Visual Studio workspace found at
Karl Schultz5f79d272005-07-01 21:08:00 +000049
50 windows/VC6/mesa/mesa.dsw
51or
52 windows/VC7/mesa/mesa.sln
53
54The osmesa DLL can also be built with the osmesa project.
Karl Schultz516546a2005-06-02 23:17:02 +000055
56The build system creates a lib top-level directory and copies
57resulting LIB and DLL files to this lib directory. The files are:
58
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000059 OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
60 OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
61
Karl Schultz516546a2005-06-02 23:17:02 +000062If the MesaDemos ZIP file was extracted, the DLL files are also copied
Karl Schultz5f79d272005-07-01 21:08:00 +000063to the demos directory. This facilitates running the demos as described
64below.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000065
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000066
Karl Schultz516546a2005-06-02 23:17:02 +000067GLUT and Demos
68---- --- -----
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000069
Karl Schultz5f79d272005-07-01 21:08:00 +000070A Visual Studio workspace can be found at
71
72 windows/VC6/progs/progs.dsw
73or
74 windows/VC7/progs/progs.sln
75
Karl Schultz516546a2005-06-02 23:17:02 +000076It can be used to build GLUT and a few demos. The GLUT lib and DLL
77are copied to the top-level lib directory, along with the Mesa libs.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000078
Karl Schultz516546a2005-06-02 23:17:02 +000079The demo build system expects to find the LIB files in the top level
80lib directory, so you must build the Mesa libs first. The demo
81executables are placed in the demos directory, because some of them
82rely on data files found there. Also, the Mesa lib DLL's were copied
83there by the Mesa lib build process. Therefore, you should be able to
84simply run the demo executables from the demo directory.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000085
Karl Schultz5f79d272005-07-01 21:08:00 +000086If you want to run the demos from the Visual Studio, you may have to
87change the startup directory and explicitly state where the executables are.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000088
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000089
Karl Schultz516546a2005-06-02 23:17:02 +000090Build System Notes
91----- ------ -----
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000092
Karl Schultz516546a2005-06-02 23:17:02 +000093VC6
94---
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000095
Karl Schultz516546a2005-06-02 23:17:02 +000096Visual Studio 6 does not recognize files with the .cc extension as C++
97language files, without a lot of unnatural tweaking. So, the VC6
98build process uses custom build steps to compile these files in the
99GLU library.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000100
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000101
Karl Schultz516546a2005-06-02 23:17:02 +0000102VC7
103---
104
Karl Schultz5f79d272005-07-01 21:08:00 +0000105The above-mentioned .cc problem does not exist in this version.
Karl Schultz516546a2005-06-02 23:17:02 +0000106
107
108General
109-------
110
111After building, you can copy the above DLL files to a place in your
112PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
113in a system directory, place them in the same directory as the
114executable(s). Be careful about accidentially overwriting files of
115the same name in the SYSTEM32 directory.
116
117The DLL files are built so that the external entry points use the
118stdcall calling convention.
119
120Static LIB files are not built. The LIB files that are built with are
121the linker import files associated with the DLL files.
122
123The si-glu sources are used to build the GLU libs. This was done
124mainly to get the better tessellator code.
125
126To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
127to the project settings. You will also need to edit src/mesa.def to
128change all the gl* symbols to mgl*. Because this is easy to do with a
129global replace operation in a text editor, no additional mangled
130version of mesa.def is maintained or shipped.
Karl Schultzfaa2b092003-10-10 17:13:47 +0000131
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000132If you have a Windows-related build problem or question, it is
133probably better to direct it to me (kschultz@users.sourceforge.net),
Karl Schultz516546a2005-06-02 23:17:02 +0000134rather than directly to the other Mesa developers. I will help you as
135much as I can. I also monitor the Mesa mailing lists and will answer
136questions in this area there as well.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000137
138
139Karl Schultz