José Fonseca | 60159c1 | 2008-02-28 16:34:32 +0900 | [diff] [blame] | 1 | File: docs/README.WIN32 |
| 2 | |
| 3 | Last updated: Apr 25, 2007 - Karl Schultz - kschultz@users.sourceforge.net |
| 4 | |
| 5 | Quick Start |
| 6 | ----- ----- |
| 7 | |
| 8 | Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same |
| 9 | directory. The libs and demos build separately, so if you do not care |
| 10 | about the demos or GLUT, you only need to unzip MesaLib. If you unzip |
| 11 | more than one ZIP file, they all need to be unzipped into the same |
| 12 | directory. Don't worry, you will not overwrite anything. |
| 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 8 files |
| 17 | are in windows/VC8. |
| 18 | |
| 19 | Support has been dropped for versions of Visual Studio prior to 8. The |
| 20 | main reason is because Microsoft now provides a free compiler and |
| 21 | developer environment. Visual Studio Express can be found at |
| 22 | |
| 23 | http://msdn.microsoft.com/vstudio/express/visualc/default.aspx |
| 24 | |
| 25 | You'll also need the Platform SDK. Instructions for obtaining and |
| 26 | using the SDK with Visual Studio Express can be found at |
| 27 | |
| 28 | http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ |
| 29 | |
José Fonseca | 60159c1 | 2008-02-28 16:34:32 +0900 | [diff] [blame] | 30 | The project files to build the core Mesa library, Windows Mesa |
| 31 | drivers, OSMesa, and GLU are in the mesa directory. The project files |
| 32 | to build GLUT and some demo programs are in the progs directory. |
| 33 | |
| 34 | Makefiles are no longer shipped or supported, but can be generated |
| 35 | from the projects using Visual Studio. |
| 36 | |
| 37 | |
| 38 | Windows Drivers |
| 39 | ------- ------- |
| 40 | |
| 41 | At this time, only the GDI driver is known to work. Most of the demos |
| 42 | in progs/demos should work with this driver. |
| 43 | |
| 44 | Source code also exists in the tree for other drivers in |
| 45 | src/mesa/drivers/windows, but the status of this code is unknown. |
| 46 | |
| 47 | The GDI driver operates basically by writing pixel spans into a DIB |
| 48 | section and then blitting the DIB to the window. The driver was |
| 49 | recently cleaned up and rewitten and so may have bugs or may be |
| 50 | missing some functionality. The older versions of the CVS source may |
| 51 | be useful in figuring out any problems, or report them to me. |
| 52 | |
| 53 | To build Mesa with the GDI driver, build the mesa, gdi, and glu |
| 54 | projects in the Visual Studio workspace found at |
| 55 | |
| 56 | windows/VC8/mesa/mesa.sln |
| 57 | |
| 58 | The osmesa DLL can also be built with the osmesa project. |
| 59 | |
| 60 | The build system creates a lib top-level directory and copies |
| 61 | resulting LIB and DLL files to this lib directory. The files are: |
| 62 | |
| 63 | OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB |
| 64 | OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL |
| 65 | |
| 66 | If the MesaDemos ZIP file was extracted, the DLL files are also copied |
| 67 | to the demos directory. This facilitates running the demos as described |
| 68 | below. |
| 69 | |
| 70 | |
| 71 | GLUT and Demos |
| 72 | ---- --- ----- |
| 73 | |
| 74 | A Visual Studio workspace can be found at |
| 75 | |
| 76 | windows/VC8/progs/progs.sln |
| 77 | |
| 78 | It can be used to build GLUT and a few demos. The GLUT lib and DLL |
| 79 | are copied to the top-level lib directory, along with the Mesa libs. |
| 80 | |
| 81 | The demo build system expects to find the LIB files in the top level |
| 82 | lib directory, so you must build the Mesa libs first. The demo |
| 83 | executables are placed in the demos directory, because some of them |
| 84 | rely on data files found there. Also, the Mesa lib DLL's were copied |
| 85 | there by the Mesa lib build process. Therefore, you should be able to |
| 86 | simply run the demo executables from the demo directory. |
| 87 | |
| 88 | If you want to run the demos from the Visual Studio, you may have to |
| 89 | change the startup directory and explicitly state where the executables are. |
| 90 | |
| 91 | You may also build all the demo programs by using a makefile. Go to |
| 92 | the progs/demos directory and make sure you have executed VCVARS32.BAT |
| 93 | or whatever setup script is appropriate for your compiler. Then, |
| 94 | |
| 95 | nmake -f Makefile.win |
| 96 | |
| 97 | should build all the demos. |
| 98 | |
| 99 | |
| 100 | Build System Notes |
| 101 | ----- ------ ----- |
| 102 | |
José Fonseca | 60159c1 | 2008-02-28 16:34:32 +0900 | [diff] [blame] | 103 | VC8 |
| 104 | --- |
| 105 | |
| 106 | No notes. |
| 107 | |
| 108 | |
| 109 | General |
| 110 | ------- |
| 111 | |
| 112 | After building, you can copy the above DLL files to a place in your |
| 113 | PATH such as $SystemRoot/SYSTEM32. If you don't like putting things |
| 114 | in a system directory, place them in the same directory as the |
| 115 | executable(s). Be careful about accidentially overwriting files of |
| 116 | the same name in the SYSTEM32 directory. |
| 117 | |
| 118 | The DLL files are built so that the external entry points use the |
| 119 | stdcall calling convention. |
| 120 | |
| 121 | Static LIB files are not built. The LIB files that are built with are |
| 122 | the linker import files associated with the DLL files. |
| 123 | |
| 124 | The si-glu sources are used to build the GLU libs. This was done |
| 125 | mainly to get the better tessellator code. |
| 126 | |
| 127 | To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE |
| 128 | to the project settings. You will also need to edit src/mesa.def to |
| 129 | change all the gl* symbols to mgl*. Because this is easy to do with a |
| 130 | global replace operation in a text editor, no additional mangled |
| 131 | version of mesa.def is maintained or shipped. |
| 132 | |
| 133 | If you have a Windows-related build problem or question, it is |
| 134 | probably better to direct it to me (kschultz@users.sourceforge.net), |
| 135 | rather than directly to the other Mesa developers. I will help you as |
| 136 | much as I can. I also monitor the Mesa mailing lists and will answer |
| 137 | questions in this area there as well. |
| 138 | |
| 139 | |
| 140 | Karl Schultz |