| 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 |