diff options
Diffstat (limited to 'src/contrib/SDL-2.30.2/docs/README-visualc.md')
| -rw-r--r-- | src/contrib/SDL-2.30.2/docs/README-visualc.md | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/contrib/SDL-2.30.2/docs/README-visualc.md b/src/contrib/SDL-2.30.2/docs/README-visualc.md new file mode 100644 index 0000000..fd34b35 --- /dev/null +++ b/src/contrib/SDL-2.30.2/docs/README-visualc.md | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | Using SDL with Microsoft Visual C++ | ||
| 2 | =================================== | ||
| 3 | |||
| 4 | ### by Lion Kimbro with additions by James Turk | ||
| 5 | |||
| 6 | You can either use the precompiled libraries from the [SDL](https://www.libsdl.org/download.php) web site, or you can build SDL | ||
| 7 | yourself. | ||
| 8 | |||
| 9 | ### Building SDL | ||
| 10 | |||
| 11 | 0. To build SDL, your machine must, at a minimum, have the DirectX9.0c SDK installed. It may or may not be retrievable from | ||
| 12 | the [Microsoft](https://www.microsoft.com) website, so you might need to locate it [online](https://duckduckgo.com/?q=directx9.0c+sdk+download&t=h_&ia=web). | ||
| 13 | _Editor's note: I've been able to successfully build SDL using Visual Studio 2019 **without** the DX9.0c SDK_ | ||
| 14 | |||
| 15 | 1. Open the Visual Studio solution file at `./VisualC/SDL.sln`. | ||
| 16 | |||
| 17 | 2. Your IDE will likely prompt you to upgrade this solution file to whatever later version of the IDE you're using. In the `Retarget Projects` dialog, | ||
| 18 | all of the affected project files should be checked allowing you to use the latest `Windows SDK Version` you have installed, along with | ||
| 19 | the `Platform Toolset`. | ||
| 20 | |||
| 21 | If you choose *NOT* to upgrade to use the latest `Windows SDK Version` or `Platform Toolset`, then you'll need the `Visual Studio 2010 Platform Toolset`. | ||
| 22 | |||
| 23 | 3. Build the `.dll` and `.lib` files by right clicking on each project in turn (Projects are listed in the _Workspace_ | ||
| 24 | panel in the _FileView_ tab), and selecting `Build`. | ||
| 25 | |||
| 26 | You may get a few warnings, but you should not get any errors. | ||
| 27 | |||
| 28 | Later, we will refer to the following `.lib` and `.dll` files that have just been generated: | ||
| 29 | |||
| 30 | - `./VisualC/Win32/Debug/SDL2.dll` or `./VisualC/Win32/Release/SDL2.dll` | ||
| 31 | - `./VisualC/Win32/Debug/SDL2.lib` or `./VisualC/Win32/Release/SDL2.lib` | ||
| 32 | - `./VisualC/Win32/Debug/SDL2main.lib` or `./VisualC/Win32/Release/SDL2main.lib` | ||
| 33 | |||
| 34 | _Note for the `x64` versions, just replace `Win32` in the path with `x64`_ | ||
| 35 | |||
| 36 | ### Creating a Project with SDL | ||
| 37 | |||
| 38 | - Create a project as a `Win32 Application`. | ||
| 39 | |||
| 40 | - Create a C++ file for your project. | ||
| 41 | |||
| 42 | - Set the C runtime to `Multi-threaded DLL` in the menu: | ||
| 43 | `Project|Settings|C/C++ tab|Code Generation|Runtime Library `. | ||
| 44 | |||
| 45 | - Add the SDL `include` directory to your list of includes in the menu: | ||
| 46 | `Project|Settings|C/C++ tab|Preprocessor|Additional include directories ` | ||
| 47 | |||
| 48 | *VC7 Specific: Instead of doing this, I find it easier to add the | ||
| 49 | include and library directories to the list that VC7 keeps. Do this by | ||
| 50 | selecting Tools|Options|Projects|VC++ Directories and under the "Show | ||
| 51 | Directories For:" dropbox select "Include Files", and click the "New | ||
| 52 | Directory Icon" and add the [SDLROOT]\\include directory (e.g. If you | ||
| 53 | installed to c:\\SDL\\ add c:\\SDL\\include). Proceed to change the | ||
| 54 | dropbox selection to "Library Files" and add [SDLROOT]\\lib.* | ||
| 55 | |||
| 56 | The "include directory" I am referring to is the `./include` folder. | ||
| 57 | |||
| 58 | Now we're going to use the files that we had created earlier in the *Build SDL* step. | ||
| 59 | |||
| 60 | Copy the following file into your Project directory: | ||
| 61 | |||
| 62 | - `SDL2.dll` | ||
| 63 | |||
| 64 | Add the following files to your project (It is not necessary to copy them to your project directory): | ||
| 65 | |||
| 66 | - `SDL2.lib` | ||
| 67 | - `SDL2main.lib` | ||
| 68 | |||
| 69 | To add them to your project, right click on your project, and select | ||
| 70 | `Add files to project`. | ||
| 71 | |||
| 72 | **Instead of adding the files to your project, it is more desirable to add them to the linker options: Project|Properties|Linker|Command Line | ||
| 73 | and type the names of the libraries to link with in the "Additional Options:" box. Note: This must be done for each build configuration | ||
| 74 | (e.g. Release,Debug).** | ||
| 75 | |||
| 76 | ### Hello SDL2 | ||
| 77 | |||
| 78 | Here's a sample SDL snippet to verify everything is setup in your IDE: | ||
| 79 | |||
| 80 | ``` | ||
| 81 | #include "SDL.h" | ||
| 82 | |||
| 83 | int main( int argc, char* argv[] ) | ||
| 84 | { | ||
| 85 | const int WIDTH = 640; | ||
| 86 | const int HEIGHT = 480; | ||
| 87 | SDL_Window* window = NULL; | ||
| 88 | SDL_Renderer* renderer = NULL; | ||
| 89 | |||
| 90 | SDL_Init(SDL_INIT_VIDEO); | ||
| 91 | window = SDL_CreateWindow("SDL2 Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH, HEIGHT, SDL_WINDOW_SHOWN); | ||
| 92 | renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); | ||
| 93 | |||
| 94 | SDL_DestroyRenderer(renderer); | ||
| 95 | SDL_DestroyWindow(window); | ||
| 96 | SDL_Quit(); | ||
| 97 | return 0; | ||
| 98 | } | ||
| 99 | ``` | ||
| 100 | |||
| 101 | ### That's it! | ||
| 102 | |||
| 103 | I hope that this document has helped you get through the most difficult part of using the SDL: installing it. | ||
| 104 | Suggestions for improvements should be posted to the [Github Issues](https://github.com/libsdl-org/SDL/issues). | ||
| 105 | |||
| 106 | ### Credits | ||
| 107 | |||
| 108 | Thanks to [Paulus Esterhazy](mailto:pesterhazy@gmx.net), for the work on VC++ port. | ||
| 109 | |||
| 110 | This document was originally called "VisualC.txt", and was written by [Sam Lantinga](mailto:slouken@libsdl.org). | ||
| 111 | |||
| 112 | Later, it was converted to HTML and expanded into the document that you see today by [Lion Kimbro](mailto:snowlion@sprynet.com). | ||
| 113 | |||
| 114 | Minor Fixes and Visual C++ 7 Information (In Green) was added by [James Turk](mailto:james@conceptofzero.net) | ||
