blob: e16ee4b3a06b4be8d854e3a2e4a8401279c6c527 [file] [log] [blame]
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00001File: docs/README.WIN32
2
Karl Schultz7ff3c9e2004-10-01 21:22:10 +00003Last updated: Oct 01, 2004 - Karl Schultz - kschultz@users.sourceforge.net
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00004
5Quick Start
6
Karl Schultzaf76b422002-11-08 18:00:04 +00007Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
Karl Schultze4b40a72003-09-18 19:10:53 +00008The libs and demos build separately, so if you do not care about the
9demos, you do not have to unzip that zip file. But if you do, it does
10need to be unzipped into the same directory as the lib zip file because
11the demos depend on the libs.
Karl Schultzaf76b422002-11-08 18:00:04 +000012
Karl Schultze4b40a72003-09-18 19:10:53 +000013The build system has been changed to use Microsoft Visual Studio project
14workspaces and projects. Makefiles are no longer shipped or supported, but
15can be generated from the projects using Visual Studio.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000016
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000017The workspace and project files were created with Visual Studio 6, so that
18they can be used with VS6 and so that they can also be imported into VS 7.
19
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000020Details and Notes
21
Karl Schultze4b40a72003-09-18 19:10:53 +000022- To build the Mesa libraries, open the Mesa.dsw workspace file
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000023 in the top directory. You will need to build at least one
24 driver. Currently, only the gdi and osmesa drivers are available.
25 Select one or the other as the active project and build it.
26 If you want glu, select the glu project as active and build that as well.
27
28- Glut is no longer in the Mesa.dsw workspace. It is now built in
29 the demo workspace (see below).
30
31- The build process will create a lib directory in the top directory
32 and will put the following files there as you build them:
33 OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
34 OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
35
36- Some users have reported problems building glu with VS7 after importing
37 and converting the VS6 project files. The problem is caused by a custom
38 build step that was put in place to work around a problem with VS6 not
39 recognizing .cc files as C++ source files. It appears that VS7 can be
40 configured to recognize .cc files as C++ files and so it compiles these
41 glu files with the default settings, and does not use settings that are
42 required to compile the files correctly. The easiest way to solve the
43 problem is to remove the .cc files from the glu project. This does not
44 delete the files, but removes them from the project so that VS does not
45 try to compile them at all. This allows the custom build step to compile
46 the files with the proper settings.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000047
48- After building, you can copy the above DLL files to a place in your PATH
Karl Schultz10730662002-08-15 15:13:31 +000049 such as $SystemRoot/SYSTEM32. If you don't like putting things in a
50 system directory, place them in the same directory as the executable(s).
Karl Schultze4b40a72003-09-18 19:10:53 +000051 Be careful about accidentially overwriting files of the same name in
52 the SYSTEM32 directory.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000053
Karl Schultze4b40a72003-09-18 19:10:53 +000054- Build the demos by opening the appropriate *.dsw file in the
55 progs directory tree. For example, to build the demos, use
56 progs/demos/Windows/demos.dsw. The Windows directory contains
57 the workspace and all the projects for each demo program. Each
58 project places the executable in the same directory as its source
59 code, which is required for some demos.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000060
Karl Schultze4b40a72003-09-18 19:10:53 +000061- The demo projects also copy the Mesa library DLL files from the lib
62 directory into the same directory as the demo executables, so that
63 the demos use the Mesa libs you just built.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000064
65- The DLL files are built so that the external entry points use the
66 stdcall calling convention.
67
68- Static LIB files are not built. The LIB files that are built with
Karl Schultze4b40a72003-09-18 19:10:53 +000069 are the linker import files associated with the DLL files.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000070
71- The si-glu sources are used to build the GLU libs. This was done
Karl Schultz8ff27152001-11-29 16:55:37 +000072 mainly to get the better tessellator code.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000073
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000074- The Windows driver (in src/Windows) builds and runs at least at
75 a minimal level. I modified this driver to work with the new
76 Mesa 4.0 code and driver architecture, but I did not do a great
77 deal of optimization and testing. There are many opportunities
78 for optimization, many of which can be done by coding more specific
79 paths for the rasterizers. See src/osmesa/osmesa.c for some good
80 examples.
81
Karl Schultzacf0c0a2001-11-01 22:44:47 +000082- There is DirectDraw support in the Windows driver, updated by
83 Daniel Slater. You'll need to uncomment the #define DDRAW line
Karl Schultze4b40a72003-09-18 19:10:53 +000084 in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries.
85 On some systems, you will acheive significantly higher framerates
86 with DirectDraw.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000087
88- Some of the more specialized code like FX drivers, stereo, and
89 parallel support isn't compiled or tested. I left much of this
90 code alone, but it may need some work to get it 'turned on' again.
91
92- No assembly code is compiled or assembled. Again, this may need
93 some work to turn it back on or use it again.
94
Karl Schultzfaa2b092003-10-10 17:13:47 +000095- To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
96 to the project settings. You will also need to edit src/mesa.def to change
97 all the gl* symbols to mgl*. Because this is easy to do with a global
98 replace operation in a text editor, no additional mangled version of mesa.def
99 is maintained or shipped.
100
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000101If you have a Windows-related build problem or question, it is
102probably better to direct it to me (kschultz@users.sourceforge.net),
103rather than directly to the other Mesa developers. I will help you
104as much as I can. I also monitor the Mesa mailing lists and will
105answer questions in this area there as well.
106
107
108Karl Schultz