2007-11-24 10:25:28 -07:00
|
|
|
File: docs/README.WIN32
|
|
|
|
|
|
|
|
Last updated: Apr 25, 2007 - Karl Schultz - kschultz@users.sourceforge.net
|
|
|
|
|
|
|
|
Quick Start
|
|
|
|
----- -----
|
|
|
|
|
|
|
|
Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same
|
|
|
|
directory. The libs and demos build separately, so if you do not care
|
|
|
|
about the demos or GLUT, you only need to unzip MesaLib. If you unzip
|
|
|
|
more than one ZIP file, they all need to be unzipped into the same
|
|
|
|
directory. Don't worry, you will not overwrite anything.
|
|
|
|
|
|
|
|
The Windows build system uses Microsoft Visual Studio. Project files
|
|
|
|
for a specific version of Visual Studio are in their own directory in
|
|
|
|
the top-level "windows" directory. For example, Visual Studio 8 files
|
|
|
|
are in windows/VC8.
|
|
|
|
|
|
|
|
Support has been dropped for versions of Visual Studio prior to 8. The
|
|
|
|
main reason is because Microsoft now provides a free compiler and
|
|
|
|
developer environment. Visual Studio Express can be found at
|
|
|
|
|
|
|
|
http://msdn.microsoft.com/vstudio/express/visualc/default.aspx
|
|
|
|
|
|
|
|
You'll also need the Platform SDK. Instructions for obtaining and
|
|
|
|
using the SDK with Visual Studio Express can be found at
|
|
|
|
|
|
|
|
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
|
|
|
|
|
|
|
|
If you are stuck using VC6 or VC7, you may start with these project
|
|
|
|
files, but you may need to modify them to reflect changes in the
|
|
|
|
Mesa source code tree. If you sucessfully update the project files,
|
|
|
|
please submit them to the author of this document so that they may
|
|
|
|
be included in the next distribution.
|
|
|
|
|
|
|
|
The project files to build the core Mesa library, Windows Mesa
|
|
|
|
drivers, OSMesa, and GLU are in the mesa directory. The project files
|
|
|
|
to build GLUT and some demo programs are in the progs directory.
|
|
|
|
|
|
|
|
Makefiles are no longer shipped or supported, but can be generated
|
|
|
|
from the projects using Visual Studio.
|
|
|
|
|
|
|
|
|
|
|
|
Windows Drivers
|
|
|
|
------- -------
|
|
|
|
|
|
|
|
At this time, only the GDI driver is known to work. Most of the demos
|
|
|
|
in progs/demos should work with this driver.
|
|
|
|
|
|
|
|
Source code also exists in the tree for other drivers in
|
|
|
|
src/mesa/drivers/windows, but the status of this code is unknown.
|
|
|
|
|
|
|
|
The GDI driver operates basically by writing pixel spans into a DIB
|
|
|
|
section and then blitting the DIB to the window. The driver was
|
|
|
|
recently cleaned up and rewitten and so may have bugs or may be
|
|
|
|
missing some functionality. The older versions of the CVS source may
|
|
|
|
be useful in figuring out any problems, or report them to me.
|
|
|
|
|
|
|
|
To build Mesa with the GDI driver, build the mesa, gdi, and glu
|
|
|
|
projects in the Visual Studio workspace found at
|
|
|
|
|
|
|
|
windows/VC8/mesa/mesa.sln
|
|
|
|
|
|
|
|
The osmesa DLL can also be built with the osmesa project.
|
|
|
|
|
|
|
|
The build system creates a lib top-level directory and copies
|
|
|
|
resulting LIB and DLL files to this lib directory. The files are:
|
|
|
|
|
|
|
|
OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
|
|
|
|
OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
|
|
|
|
|
|
|
|
If the MesaDemos ZIP file was extracted, the DLL files are also copied
|
|
|
|
to the demos directory. This facilitates running the demos as described
|
|
|
|
below.
|
|
|
|
|
|
|
|
|
|
|
|
GLUT and Demos
|
|
|
|
---- --- -----
|
|
|
|
|
|
|
|
A Visual Studio workspace can be found at
|
|
|
|
|
|
|
|
windows/VC8/progs/progs.sln
|
|
|
|
|
|
|
|
It can be used to build GLUT and a few demos. The GLUT lib and DLL
|
|
|
|
are copied to the top-level lib directory, along with the Mesa libs.
|
|
|
|
|
|
|
|
The demo build system expects to find the LIB files in the top level
|
|
|
|
lib directory, so you must build the Mesa libs first. The demo
|
|
|
|
executables are placed in the demos directory, because some of them
|
|
|
|
rely on data files found there. Also, the Mesa lib DLL's were copied
|
|
|
|
there by the Mesa lib build process. Therefore, you should be able to
|
|
|
|
simply run the demo executables from the demo directory.
|
|
|
|
|
|
|
|
If you want to run the demos from the Visual Studio, you may have to
|
|
|
|
change the startup directory and explicitly state where the executables are.
|
|
|
|
|
|
|
|
You may also build all the demo programs by using a makefile. Go to
|
|
|
|
the progs/demos directory and make sure you have executed VCVARS32.BAT
|
|
|
|
or whatever setup script is appropriate for your compiler. Then,
|
|
|
|
|
|
|
|
nmake -f Makefile.win
|
|
|
|
|
|
|
|
should build all the demos.
|
|
|
|
|
|
|
|
|
|
|
|
Build System Notes
|
|
|
|
----- ------ -----
|
|
|
|
|
|
|
|
VC6 (not actively supported)
|
|
|
|
---
|
|
|
|
|
|
|
|
Visual Studio 6 does not recognize files with the .cc extension as C++
|
|
|
|
language files, without a lot of unnatural tweaking. So, the VC6
|
|
|
|
build process uses custom build steps to compile these files in the
|
|
|
|
GLU library.
|
|
|
|
|
|
|
|
Two additional configurations are provided, Debug x86 and Release x86
|
|
|
|
that activate the shader code compilation by defining SLANG_86. It is
|
|
|
|
unknown if and how this works.
|
|
|
|
|
|
|
|
VC7 (not actively supported)
|
|
|
|
---
|
|
|
|
|
|
|
|
The above-mentioned .cc problem does not exist in this version.
|
|
|
|
|
|
|
|
VC8
|
|
|
|
---
|
|
|
|
|
|
|
|
No notes.
|
|
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
-------
|
|
|
|
|
|
|
|
After building, you can copy the above DLL files to a place in your
|
|
|
|
PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
|
|
|
|
in a system directory, place them in the same directory as the
|
|
|
|
executable(s). Be careful about accidentially overwriting files of
|
|
|
|
the same name in the SYSTEM32 directory.
|
|
|
|
|
|
|
|
The DLL files are built so that the external entry points use the
|
|
|
|
stdcall calling convention.
|
|
|
|
|
|
|
|
Static LIB files are not built. The LIB files that are built with are
|
|
|
|
the linker import files associated with the DLL files.
|
|
|
|
|
|
|
|
The si-glu sources are used to build the GLU libs. This was done
|
|
|
|
mainly to get the better tessellator code.
|
|
|
|
|
|
|
|
To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
|
|
|
|
to the project settings. You will also need to edit src/mesa.def to
|
|
|
|
change all the gl* symbols to mgl*. Because this is easy to do with a
|
|
|
|
global replace operation in a text editor, no additional mangled
|
|
|
|
version of mesa.def is maintained or shipped.
|
|
|
|
|
|
|
|
If you have a Windows-related build problem or question, it is
|
|
|
|
probably better to direct it to me (kschultz@users.sourceforge.net),
|
|
|
|
rather than directly to the other Mesa developers. I will help you as
|
|
|
|
much as I can. I also monitor the Mesa mailing lists and will answer
|
|
|
|
questions in this area there as well.
|
|
|
|
|
|
|
|
|
|
|
|
Karl Schultz
|