官术网_书友最值得收藏!

Cleaning up SDL

Something that you may notice is missing from this code, that would be in a Windows or Linux version of an SDL application, is code that does some SDL clean up at the end of the program. If we exited an application in Windows, for instance, and did not do our cleanup work, we would be exiting without clearing out some of the memory allocated by SDL. If this were not a WebAssembly module, the following lines would be included at the end of the function:

SDL_Delay(5000);
SDL_DestroyWindow(window);
SDL_Quit();

Because we have not spent the time to make a game loop, we would want to delay the cleanup and exiting of the program by five seconds using a call to SDL_Delay(5000), 5000 being the number of milliseconds to wait before doing the cleanup. We want to reiterate that, because we are compiling to WebAssembly, we do not want to clean up our SDL. Doing so has different effects on different browsers.

When testing this code in Firefox, using the delay is unnecessary, because the web browser tab will stay open even after the WebAssembly module stops executing. However, the Chrome browser tab will display an error page as soon as SDL destroys the window object.

The SDL_DestroyWindow function would destroy the window object if this were a Windows environment. The SDL_Quit function terminates the SDL engine, and, finally, return EXIT_SUCCESS; exits successfully from the main function.

主站蜘蛛池模板: 柳江县| 满洲里市| 江北区| 称多县| 平舆县| 枣强县| 乡宁县| 勐海县| 二连浩特市| 晋城| 中山市| 霍林郭勒市| 阳东县| 楚雄市| 宁陕县| 隆林| 凤阳县| 资兴市| 莱西市| 寿宁县| 岐山县| 河南省| 象州县| 郯城县| 长乐市| 宁波市| 二连浩特市| 吉林省| 成安县| 枣强县| 鹤庆县| 民权县| 柳河县| 赫章县| 宜春市| 天津市| 吉林市| 鹤峰县| 海城市| 遂平县| 南华县|