Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 1 | File: docs/README.WIN32 |
| 2 | |
Karl Schultz | 5f79d27 | 2005-07-01 21:08:00 +0000 | [diff] [blame] | 3 | Last updated: Jul 01, 2005 - Karl Schultz - kschultz@users.sourceforge.net |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 4 | |
| 5 | Quick Start |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 6 | ----- ----- |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 7 | |
Karl Schultz | af76b42 | 2002-11-08 18:00:04 +0000 | [diff] [blame] | 8 | Unzip both ZIP files (MesaLib and MesaDemos) into the same directory. |
Karl Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 9 | The libs and demos build separately, so if you do not care about the |
| 10 | demos, you do not have to unzip that zip file. But if you do, it does |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 11 | need to be unzipped into the same directory as the lib zip file |
| 12 | because the demos depend on the libs. |
Karl Schultz | af76b42 | 2002-11-08 18:00:04 +0000 | [diff] [blame] | 13 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 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 6 files |
| 17 | are in windows/VC6. If a directory does not exist for your version of |
| 18 | Visual Studio, you can try importing the project files from an earlier |
| 19 | version of Visual Studio. At this time, project files exist for |
Karl Schultz | 5f79d27 | 2005-07-01 21:08:00 +0000 | [diff] [blame] | 20 | Version 6 and Version 7. The code has been built with a beta version |
| 21 | of Version 8 and it runs on 64-bit Windows. If you want to try this, |
| 22 | start by importing the VC7 files and create the 64-bit targets in the |
| 23 | configuration manager. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 24 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 25 | The project files to build the core Mesa library, Windows Mesa |
| 26 | drivers, OSMesa, and GLU are in the mesa directory. The project files |
| 27 | to build GLUT and some demo programs are in the progs directory. |
Karl Schultz | 7ff3c9e | 2004-10-01 21:22:10 +0000 | [diff] [blame] | 28 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 29 | Makefiles are no longer shipped or supported, but can be generated |
| 30 | from the projects using Visual Studio. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 31 | |
Karl Schultz | 7ff3c9e | 2004-10-01 21:22:10 +0000 | [diff] [blame] | 32 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 33 | Windows Drivers |
| 34 | ------- ------- |
| 35 | |
| 36 | At this time, only the GDI driver is known to work, as it has been |
| 37 | ported and rewritten to the latest Mesa DD interfaces. Source code |
| 38 | also exists in the tree for other drivers in src/mesa/drivers/windows, |
| 39 | but the status of this code is unknown. |
| 40 | |
| 41 | The GDI driver operates basically by writing pixel spans into a DIB |
| 42 | section and then blitting the DIB to the window. The driver was |
| 43 | recently cleaned up and rewitten and so may have bugs or may be |
| 44 | missing some functionality. The older versions of the CVS source may |
| 45 | be useful in figuring out any problems, or report them to me. |
| 46 | |
| 47 | To build Mesa with the GDI driver, build the mesa, gdi, and glu |
| 48 | projects in the Visual Studio workspace found at |
Karl Schultz | 5f79d27 | 2005-07-01 21:08:00 +0000 | [diff] [blame] | 49 | |
| 50 | windows/VC6/mesa/mesa.dsw |
| 51 | or |
| 52 | windows/VC7/mesa/mesa.sln |
| 53 | |
| 54 | The osmesa DLL can also be built with the osmesa project. |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 55 | |
| 56 | The build system creates a lib top-level directory and copies |
| 57 | resulting LIB and DLL files to this lib directory. The files are: |
| 58 | |
Karl Schultz | 7ff3c9e | 2004-10-01 21:22:10 +0000 | [diff] [blame] | 59 | OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB |
| 60 | OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL |
| 61 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 62 | If the MesaDemos ZIP file was extracted, the DLL files are also copied |
Karl Schultz | 5f79d27 | 2005-07-01 21:08:00 +0000 | [diff] [blame] | 63 | to the demos directory. This facilitates running the demos as described |
| 64 | below. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 65 | |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 66 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 67 | GLUT and Demos |
| 68 | ---- --- ----- |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 69 | |
Karl Schultz | 5f79d27 | 2005-07-01 21:08:00 +0000 | [diff] [blame] | 70 | A Visual Studio workspace can be found at |
| 71 | |
| 72 | windows/VC6/progs/progs.dsw |
| 73 | or |
| 74 | windows/VC7/progs/progs.sln |
| 75 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 76 | It can be used to build GLUT and a few demos. The GLUT lib and DLL |
| 77 | are copied to the top-level lib directory, along with the Mesa libs. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 78 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 79 | The demo build system expects to find the LIB files in the top level |
| 80 | lib directory, so you must build the Mesa libs first. The demo |
| 81 | executables are placed in the demos directory, because some of them |
| 82 | rely on data files found there. Also, the Mesa lib DLL's were copied |
| 83 | there by the Mesa lib build process. Therefore, you should be able to |
| 84 | simply run the demo executables from the demo directory. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 85 | |
Karl Schultz | 5f79d27 | 2005-07-01 21:08:00 +0000 | [diff] [blame] | 86 | If you want to run the demos from the Visual Studio, you may have to |
| 87 | change the startup directory and explicitly state where the executables are. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 88 | |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 89 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 90 | Build System Notes |
| 91 | ----- ------ ----- |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 92 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 93 | VC6 |
| 94 | --- |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 95 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 96 | Visual Studio 6 does not recognize files with the .cc extension as C++ |
| 97 | language files, without a lot of unnatural tweaking. So, the VC6 |
| 98 | build process uses custom build steps to compile these files in the |
| 99 | GLU library. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 100 | |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 101 | |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 102 | VC7 |
| 103 | --- |
| 104 | |
Karl Schultz | 5f79d27 | 2005-07-01 21:08:00 +0000 | [diff] [blame] | 105 | The above-mentioned .cc problem does not exist in this version. |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 106 | |
| 107 | |
| 108 | General |
| 109 | ------- |
| 110 | |
| 111 | After building, you can copy the above DLL files to a place in your |
| 112 | PATH such as $SystemRoot/SYSTEM32. If you don't like putting things |
| 113 | in a system directory, place them in the same directory as the |
| 114 | executable(s). Be careful about accidentially overwriting files of |
| 115 | the same name in the SYSTEM32 directory. |
| 116 | |
| 117 | The DLL files are built so that the external entry points use the |
| 118 | stdcall calling convention. |
| 119 | |
| 120 | Static LIB files are not built. The LIB files that are built with are |
| 121 | the linker import files associated with the DLL files. |
| 122 | |
| 123 | The si-glu sources are used to build the GLU libs. This was done |
| 124 | mainly to get the better tessellator code. |
| 125 | |
| 126 | To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE |
| 127 | to the project settings. You will also need to edit src/mesa.def to |
| 128 | change all the gl* symbols to mgl*. Because this is easy to do with a |
| 129 | global replace operation in a text editor, no additional mangled |
| 130 | version of mesa.def is maintained or shipped. |
Karl Schultz | faa2b09 | 2003-10-10 17:13:47 +0000 | [diff] [blame] | 131 | |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 132 | If you have a Windows-related build problem or question, it is |
| 133 | probably better to direct it to me (kschultz@users.sourceforge.net), |
Karl Schultz | 516546a | 2005-06-02 23:17:02 +0000 | [diff] [blame] | 134 | rather than directly to the other Mesa developers. I will help you as |
| 135 | much as I can. I also monitor the Mesa mailing lists and will answer |
| 136 | questions in this area there as well. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 137 | |
| 138 | |
| 139 | Karl Schultz |