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
