Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 1 | File: docs/README.WIN32 |
| 2 | |
Karl Schultz | 7ff3c9e | 2004-10-01 21:22:10 +0000 | [diff] [blame] | 3 | Last updated: Oct 01, 2004 - Karl Schultz - kschultz@users.sourceforge.net |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 4 | |
| 5 | Quick Start |
| 6 | |
Karl Schultz | af76b42 | 2002-11-08 18:00:04 +0000 | [diff] [blame] | 7 | Unzip both ZIP files (MesaLib and MesaDemos) into the same directory. |
Karl Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 8 | The libs and demos build separately, so if you do not care about the |
| 9 | demos, you do not have to unzip that zip file. But if you do, it does |
| 10 | need to be unzipped into the same directory as the lib zip file because |
| 11 | the demos depend on the libs. |
Karl Schultz | af76b42 | 2002-11-08 18:00:04 +0000 | [diff] [blame] | 12 | |
Karl Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 13 | The build system has been changed to use Microsoft Visual Studio project |
| 14 | workspaces and projects. Makefiles are no longer shipped or supported, but |
| 15 | can be generated from the projects using Visual Studio. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 16 | |
Karl Schultz | 7ff3c9e | 2004-10-01 21:22:10 +0000 | [diff] [blame] | 17 | The workspace and project files were created with Visual Studio 6, so that |
| 18 | they can be used with VS6 and so that they can also be imported into VS 7. |
| 19 | |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 20 | Details and Notes |
| 21 | |
Karl Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 22 | - To build the Mesa libraries, open the Mesa.dsw workspace file |
Karl Schultz | 7ff3c9e | 2004-10-01 21:22:10 +0000 | [diff] [blame] | 23 | 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 Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 47 | |
| 48 | - After building, you can copy the above DLL files to a place in your PATH |
Karl Schultz | 1073066 | 2002-08-15 15:13:31 +0000 | [diff] [blame] | 49 | 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 Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 51 | Be careful about accidentially overwriting files of the same name in |
| 52 | the SYSTEM32 directory. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 53 | |
Karl Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 54 | - 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 Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 60 | |
Karl Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 61 | - 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 Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 64 | |
| 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 Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 69 | are the linker import files associated with the DLL files. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 70 | |
| 71 | - The si-glu sources are used to build the GLU libs. This was done |
Karl Schultz | 8ff2715 | 2001-11-29 16:55:37 +0000 | [diff] [blame] | 72 | mainly to get the better tessellator code. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 73 | |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 74 | - 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 Schultz | acf0c0a | 2001-11-01 22:44:47 +0000 | [diff] [blame] | 82 | - There is DirectDraw support in the Windows driver, updated by |
| 83 | Daniel Slater. You'll need to uncomment the #define DDRAW line |
Karl Schultz | e4b40a7 | 2003-09-18 19:10:53 +0000 | [diff] [blame] | 84 | 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 Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 87 | |
| 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 Schultz | faa2b09 | 2003-10-10 17:13:47 +0000 | [diff] [blame] | 95 | - 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 Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 101 | If you have a Windows-related build problem or question, it is |
| 102 | probably better to direct it to me (kschultz@users.sourceforge.net), |
| 103 | rather than directly to the other Mesa developers. I will help you |
| 104 | as much as I can. I also monitor the Mesa mailing lists and will |
| 105 | answer questions in this area there as well. |
| 106 | |
| 107 | |
| 108 | Karl Schultz |