├── makefiles
├── vs2013_generate.cmd
├── premake5.exe
├── vs2013
│ ├── fontrendergl.vcxproj.filters
│ ├── fontgen.vcxproj.filters
│ ├── fontrender.vcxproj.filters
│ ├── Sluggish.sln
│ └── fontgen.vcxproj
├── PREMAKE_LICENSE.txt
└── premake5.lua
├── libs
├── SDL2
│ ├── bin
│ │ └── SDL2.dll
│ ├── lib
│ │ ├── SDL2.lib
│ │ ├── SDL2main.lib
│ │ └── SDL2test.lib
│ ├── include
│ │ ├── SDL_revision.h
│ │ ├── SDL_copying.h
│ │ ├── SDL_opengles2_gl2platform.h
│ │ ├── SDL_types.h
│ │ ├── SDL_name.h
│ │ ├── SDL_opengles.h
│ │ ├── close_code.h
│ │ ├── SDL_opengles2.h
│ │ ├── SDL_test_memory.h
│ │ ├── SDL_test_log.h
│ │ ├── SDL_clipboard.h
│ │ ├── SDL_test.h
│ │ ├── SDL_quit.h
│ │ ├── SDL_test_compare.h
│ │ ├── SDL_gesture.h
│ │ ├── SDL_test_images.h
│ │ ├── SDL_error.h
│ │ ├── SDL_touch.h
│ │ ├── SDL_power.h
│ │ ├── SDL_test_font.h
│ │ ├── SDL_config_minimal.h
│ │ ├── SDL_loadso.h
│ │ ├── SDL_bits.h
│ │ ├── SDL_test_random.h
│ │ ├── SDL_config_wiz.h
│ │ ├── SDL_test_assert.h
│ │ ├── SDL_config_pandora.h
│ │ ├── SDL_test_crc32.h
│ │ ├── SDL_timer.h
│ │ ├── SDL_config_psp.h
│ │ ├── SDL.h
│ │ ├── SDL_config_android.h
│ │ ├── SDL_rect.h
│ │ ├── SDL_config_iphoneos.h
│ │ ├── SDL_test_md5.h
│ │ ├── SDL_test_harness.h
│ │ ├── SDL_messagebox.h
│ │ ├── SDL_blendmode.h
│ │ ├── begin_code.h
│ │ ├── SDL_main.h
│ │ ├── SDL_cpuinfo.h
│ │ ├── SDL_test_common.h
│ │ ├── SDL_filesystem.h
│ │ ├── SDL_version.h
│ │ ├── SDL_platform.h
│ │ ├── SDL_shape.h
│ │ ├── SDL_config_macosx.h.orig
│ │ ├── SDL_config_macosx.h
│ │ ├── SDL_config_windows.h
│ │ └── SDL_config_winrt.h
│ └── COPYING.txt
└── GLEW
│ ├── bin
│ ├── glew32.dll
│ ├── glewinfo.exe
│ └── visualinfo.exe
│ ├── lib
│ └── glew32.lib
│ └── LICENSE.txt
├── .gitignore
├── code
├── renderer_sw
│ └── stb_image_write.cpp
├── generator
│ └── stb_truetype.cpp
├── shared.hpp
└── shared.cpp
├── UNLICENSE.MD
└── README.MD
/makefiles/vs2013_generate.cmd:
--------------------------------------------------------------------------------
1 | premake5.exe vs2013
--------------------------------------------------------------------------------
/libs/SDL2/bin/SDL2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/SDL2/bin/SDL2.dll
--------------------------------------------------------------------------------
/libs/SDL2/lib/SDL2.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/SDL2/lib/SDL2.lib
--------------------------------------------------------------------------------
/makefiles/premake5.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/makefiles/premake5.exe
--------------------------------------------------------------------------------
/libs/GLEW/bin/glew32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/GLEW/bin/glew32.dll
--------------------------------------------------------------------------------
/libs/GLEW/lib/glew32.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/GLEW/lib/glew32.lib
--------------------------------------------------------------------------------
/libs/GLEW/bin/glewinfo.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/GLEW/bin/glewinfo.exe
--------------------------------------------------------------------------------
/libs/SDL2/lib/SDL2main.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/SDL2/lib/SDL2main.lib
--------------------------------------------------------------------------------
/libs/SDL2/lib/SDL2test.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/SDL2/lib/SDL2test.lib
--------------------------------------------------------------------------------
/libs/GLEW/bin/visualinfo.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mightycow/Sluggish/HEAD/libs/GLEW/bin/visualinfo.exe
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_revision.h:
--------------------------------------------------------------------------------
1 | #define SDL_REVISION "hg-11914:f1084c419f33"
2 | #define SDL_REVISION_NUMBER 11914
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.sdf
2 | *.opensdf
3 | *.suo
4 | *.ncb
5 | *.idb
6 | *.vcxproj.user
7 | makefiles/vs*/bin
8 | makefiles/vs*/obj
9 |
--------------------------------------------------------------------------------
/code/renderer_sw/stb_image_write.cpp:
--------------------------------------------------------------------------------
1 | #define STB_IMAGE_WRITE_IMPLEMENTATION
2 | #define STBI_MSC_SECURE_CRT
3 | #include "stb_image_write.h"
4 |
--------------------------------------------------------------------------------
/code/generator/stb_truetype.cpp:
--------------------------------------------------------------------------------
1 | #pragma warning(push, 1)
2 | #define STB_TRUETYPE_IMPLEMENTATION
3 | #include "stb_truetype.h"
4 | #pragma warning(pop)
5 |
--------------------------------------------------------------------------------
/makefiles/vs2013/fontrendergl.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {EE5617AE-5A0C-90A3-E300-8A7A4FB586A7}
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | renderer_gl
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/makefiles/vs2013/fontgen.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {AC378C0D-18A2-4084-61E0-F129CD891ED9}
6 |
7 |
8 |
9 |
10 | generator
11 |
12 |
13 |
14 |
15 |
16 | generator
17 |
18 |
19 | generator
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/makefiles/vs2013/fontrender.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {855817AE-F10D-90A3-7A02-8A7AE6B686A7}
6 |
7 |
8 |
9 |
10 | renderer_sw
11 |
12 |
13 |
14 |
15 |
16 | renderer_sw
17 |
18 |
19 | renderer_sw
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/libs/SDL2/COPYING.txt:
--------------------------------------------------------------------------------
1 |
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 |
21 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_copying.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_opengles2_gl2platform.h:
--------------------------------------------------------------------------------
1 | #ifndef __gl2platform_h_
2 | #define __gl2platform_h_
3 |
4 | /* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
5 |
6 | /*
7 | * This document is licensed under the SGI Free Software B License Version
8 | * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
9 | */
10 |
11 | /* Platform-specific types and definitions for OpenGL ES 2.X gl2.h
12 | *
13 | * Adopters may modify khrplatform.h and this file to suit their platform.
14 | * You are encouraged to submit all modifications to the Khronos group so that
15 | * they can be included in future versions of this file. Please submit changes
16 | * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
17 | * by filing a bug against product "OpenGL-ES" component "Registry".
18 | */
19 |
20 | /*#include */
21 |
22 | #ifndef GL_APICALL
23 | #define GL_APICALL KHRONOS_APICALL
24 | #endif
25 |
26 | #ifndef GL_APIENTRY
27 | #define GL_APIENTRY KHRONOS_APIENTRY
28 | #endif
29 |
30 | #endif /* __gl2platform_h_ */
31 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_types.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_types.h
24 | *
25 | * \deprecated
26 | */
27 |
28 | /* DEPRECATED */
29 | #include "SDL_stdinc.h"
30 |
--------------------------------------------------------------------------------
/UNLICENSE.MD:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to .
25 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_name.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDLname_h_
23 | #define SDLname_h_
24 |
25 | #if defined(__STDC__) || defined(__cplusplus)
26 | #define NeedFunctionPrototypes 1
27 | #endif
28 |
29 | #define SDL_NAME(X) SDL_##X
30 |
31 | #endif /* SDLname_h_ */
32 |
33 | /* vi: set ts=4 sw=4 expandtab: */
34 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_opengles.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_opengles.h
24 | *
25 | * This is a simple file to encapsulate the OpenGL ES 1.X API headers.
26 | */
27 | #include "SDL_config.h"
28 |
29 | #ifdef __IPHONEOS__
30 | #include
31 | #include
32 | #else
33 | #include
34 | #include
35 | #endif
36 |
37 | #ifndef APIENTRY
38 | #define APIENTRY
39 | #endif
40 |
--------------------------------------------------------------------------------
/libs/SDL2/include/close_code.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file close_code.h
24 | *
25 | * This file reverses the effects of begin_code.h and should be included
26 | * after you finish any function and structure declarations in your headers
27 | */
28 |
29 | #undef _begin_code_h
30 |
31 | /* Reset structure packing at previous byte alignment */
32 | #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
33 | #ifdef __BORLANDC__
34 | #pragma nopackwarning
35 | #endif
36 | #pragma pack(pop)
37 | #endif /* Compiler needs structure packing set */
38 |
--------------------------------------------------------------------------------
/makefiles/PREMAKE_LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2003-2016 Jason Perkins and individual contributors.
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification,
5 | are permitted provided that the following conditions are met:
6 |
7 | 1. Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | 3. Neither the name of Premake nor the names of its contributors may be
15 | used to endorse or promote products derived from this software without
16 | specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_opengles2.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_opengles2.h
24 | *
25 | * This is a simple file to encapsulate the OpenGL ES 2.0 API headers.
26 | */
27 | #include "SDL_config.h"
28 |
29 | #ifndef _MSC_VER
30 |
31 | #ifdef __IPHONEOS__
32 | #include
33 | #include
34 | #else
35 | #include
36 | #include
37 | #include
38 | #endif
39 |
40 | #else /* _MSC_VER */
41 |
42 | /* OpenGL ES2 headers for Visual Studio */
43 | #include "SDL_opengles2_khrplatform.h"
44 | #include "SDL_opengles2_gl2platform.h"
45 | #include "SDL_opengles2_gl2.h"
46 | #include "SDL_opengles2_gl2ext.h"
47 |
48 | #endif /* _MSC_VER */
49 |
50 | #ifndef APIENTRY
51 | #define APIENTRY GL_APIENTRY
52 | #endif
53 |
--------------------------------------------------------------------------------
/makefiles/vs2013/Sluggish.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2013
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fontgen", "fontgen.vcxproj", "{165768BA-8236-E755-8B4E-722CF7AC4DB7}"
5 | EndProject
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fontrender", "fontrender.vcxproj", "{1C7DD3CA-0835-1518-713C-EE735D13B008}"
7 | EndProject
8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fontrendergl", "fontrendergl.vcxproj", "{CF41A7CD-BBA4-3672-642A-6F28506C02F5}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | debug|x64 = debug|x64
13 | release|x64 = release|x64
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {165768BA-8236-E755-8B4E-722CF7AC4DB7}.debug|x64.ActiveCfg = debug|x64
17 | {165768BA-8236-E755-8B4E-722CF7AC4DB7}.debug|x64.Build.0 = debug|x64
18 | {165768BA-8236-E755-8B4E-722CF7AC4DB7}.release|x64.ActiveCfg = release|x64
19 | {165768BA-8236-E755-8B4E-722CF7AC4DB7}.release|x64.Build.0 = release|x64
20 | {1C7DD3CA-0835-1518-713C-EE735D13B008}.debug|x64.ActiveCfg = debug|x64
21 | {1C7DD3CA-0835-1518-713C-EE735D13B008}.debug|x64.Build.0 = debug|x64
22 | {1C7DD3CA-0835-1518-713C-EE735D13B008}.release|x64.ActiveCfg = release|x64
23 | {1C7DD3CA-0835-1518-713C-EE735D13B008}.release|x64.Build.0 = release|x64
24 | {CF41A7CD-BBA4-3672-642A-6F28506C02F5}.debug|x64.ActiveCfg = debug|x64
25 | {CF41A7CD-BBA4-3672-642A-6F28506C02F5}.debug|x64.Build.0 = debug|x64
26 | {CF41A7CD-BBA4-3672-642A-6F28506C02F5}.release|x64.ActiveCfg = release|x64
27 | {CF41A7CD-BBA4-3672-642A-6F28506C02F5}.release|x64.Build.0 = release|x64
28 | EndGlobalSection
29 | GlobalSection(SolutionProperties) = preSolution
30 | HideSolutionNode = FALSE
31 | EndGlobalSection
32 | EndGlobal
33 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_memory.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_memory.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | #ifndef SDL_test_memory_h_
31 | #define SDL_test_memory_h_
32 |
33 | #include "begin_code.h"
34 | /* Set up for C function definitions, even when using C++ */
35 | #ifdef __cplusplus
36 | extern "C" {
37 | #endif
38 |
39 |
40 | /**
41 | * \brief Start tracking SDL memory allocations
42 | *
43 | * \note This should be called before any other SDL functions for complete tracking coverage
44 | */
45 | int SDLTest_TrackAllocations();
46 |
47 | /**
48 | * \brief Print a log of any outstanding allocations
49 | *
50 | * \note This can be called after SDL_Quit()
51 | */
52 | void SDLTest_LogAllocations();
53 |
54 |
55 | /* Ends C function definitions when using C++ */
56 | #ifdef __cplusplus
57 | }
58 | #endif
59 | #include "close_code.h"
60 |
61 | #endif /* SDL_test_memory_h_ */
62 |
63 | /* vi: set ts=4 sw=4 expandtab: */
64 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_log.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_log.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 | *
32 | * Wrapper to log in the TEST category
33 | *
34 | */
35 |
36 | #ifndef SDL_test_log_h_
37 | #define SDL_test_log_h_
38 |
39 | #include "begin_code.h"
40 | /* Set up for C function definitions, even when using C++ */
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 | /**
46 | * \brief Prints given message with a timestamp in the TEST category and INFO priority.
47 | *
48 | * \param fmt Message to be logged
49 | */
50 | void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
51 |
52 | /**
53 | * \brief Prints given message with a timestamp in the TEST category and the ERROR priority.
54 | *
55 | * \param fmt Message to be logged
56 | */
57 | void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
58 |
59 | /* Ends C function definitions when using C++ */
60 | #ifdef __cplusplus
61 | }
62 | #endif
63 | #include "close_code.h"
64 |
65 | #endif /* SDL_test_log_h_ */
66 |
67 | /* vi: set ts=4 sw=4 expandtab: */
68 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_clipboard.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_clipboard.h
24 | *
25 | * Include file for SDL clipboard handling
26 | */
27 |
28 | #ifndef SDL_clipboard_h_
29 | #define SDL_clipboard_h_
30 |
31 | #include "SDL_stdinc.h"
32 |
33 | #include "begin_code.h"
34 | /* Set up for C function definitions, even when using C++ */
35 | #ifdef __cplusplus
36 | extern "C" {
37 | #endif
38 |
39 | /* Function prototypes */
40 |
41 | /**
42 | * \brief Put UTF-8 text into the clipboard
43 | *
44 | * \sa SDL_GetClipboardText()
45 | */
46 | extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text);
47 |
48 | /**
49 | * \brief Get UTF-8 text from the clipboard, which must be freed with SDL_free()
50 | *
51 | * \sa SDL_SetClipboardText()
52 | */
53 | extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void);
54 |
55 | /**
56 | * \brief Returns a flag indicating whether the clipboard exists and contains a text string that is non-empty
57 | *
58 | * \sa SDL_GetClipboardText()
59 | */
60 | extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void);
61 |
62 |
63 | /* Ends C function definitions when using C++ */
64 | #ifdef __cplusplus
65 | }
66 | #endif
67 | #include "close_code.h"
68 |
69 | #endif /* SDL_clipboard_h_ */
70 |
71 | /* vi: set ts=4 sw=4 expandtab: */
72 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | #ifndef SDL_test_h_
31 | #define SDL_test_h_
32 |
33 | #include "SDL.h"
34 | #include "SDL_test_assert.h"
35 | #include "SDL_test_common.h"
36 | #include "SDL_test_compare.h"
37 | #include "SDL_test_crc32.h"
38 | #include "SDL_test_font.h"
39 | #include "SDL_test_fuzzer.h"
40 | #include "SDL_test_harness.h"
41 | #include "SDL_test_images.h"
42 | #include "SDL_test_log.h"
43 | #include "SDL_test_md5.h"
44 | #include "SDL_test_memory.h"
45 | #include "SDL_test_random.h"
46 |
47 | #include "begin_code.h"
48 | /* Set up for C function definitions, even when using C++ */
49 | #ifdef __cplusplus
50 | extern "C" {
51 | #endif
52 |
53 | /* Global definitions */
54 |
55 | /*
56 | * Note: Maximum size of SDLTest log message is less than SDL's limit
57 | * to ensure we can fit additional information such as the timestamp.
58 | */
59 | #define SDLTEST_MAX_LOGMESSAGE_LENGTH 3584
60 |
61 | /* Ends C function definitions when using C++ */
62 | #ifdef __cplusplus
63 | }
64 | #endif
65 | #include "close_code.h"
66 |
67 | #endif /* SDL_test_h_ */
68 |
69 | /* vi: set ts=4 sw=4 expandtab: */
70 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_quit.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_quit.h
24 | *
25 | * Include file for SDL quit event handling.
26 | */
27 |
28 | #ifndef SDL_quit_h_
29 | #define SDL_quit_h_
30 |
31 | #include "SDL_stdinc.h"
32 | #include "SDL_error.h"
33 |
34 | /**
35 | * \file SDL_quit.h
36 | *
37 | * An ::SDL_QUIT event is generated when the user tries to close the application
38 | * window. If it is ignored or filtered out, the window will remain open.
39 | * If it is not ignored or filtered, it is queued normally and the window
40 | * is allowed to close. When the window is closed, screen updates will
41 | * complete, but have no effect.
42 | *
43 | * SDL_Init() installs signal handlers for SIGINT (keyboard interrupt)
44 | * and SIGTERM (system termination request), if handlers do not already
45 | * exist, that generate ::SDL_QUIT events as well. There is no way
46 | * to determine the cause of an ::SDL_QUIT event, but setting a signal
47 | * handler in your application will override the default generation of
48 | * quit events for that signal.
49 | *
50 | * \sa SDL_Quit()
51 | */
52 |
53 | /* There are no functions directly affecting the quit event */
54 |
55 | #define SDL_QuitRequested() \
56 | (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0))
57 |
58 | #endif /* SDL_quit_h_ */
59 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_compare.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_compare.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 |
32 | Defines comparison functions (i.e. for surfaces).
33 |
34 | */
35 |
36 | #ifndef SDL_test_compare_h_
37 | #define SDL_test_compare_h_
38 |
39 | #include "SDL.h"
40 |
41 | #include "SDL_test_images.h"
42 |
43 | #include "begin_code.h"
44 | /* Set up for C function definitions, even when using C++ */
45 | #ifdef __cplusplus
46 | extern "C" {
47 | #endif
48 |
49 | /**
50 | * \brief Compares a surface and with reference image data for equality
51 | *
52 | * \param surface Surface used in comparison
53 | * \param referenceSurface Test Surface used in comparison
54 | * \param allowable_error Allowable difference (=sum of squared difference for each RGB component) in blending accuracy.
55 | *
56 | * \returns 0 if comparison succeeded, >0 (=number of pixels for which the comparison failed) if comparison failed, -1 if any of the surfaces were NULL, -2 if the surface sizes differ.
57 | */
58 | int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface, int allowable_error);
59 |
60 |
61 | /* Ends C function definitions when using C++ */
62 | #ifdef __cplusplus
63 | }
64 | #endif
65 | #include "close_code.h"
66 |
67 | #endif /* SDL_test_compare_h_ */
68 |
69 | /* vi: set ts=4 sw=4 expandtab: */
70 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_gesture.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_gesture.h
24 | *
25 | * Include file for SDL gesture event handling.
26 | */
27 |
28 | #ifndef SDL_gesture_h_
29 | #define SDL_gesture_h_
30 |
31 | #include "SDL_stdinc.h"
32 | #include "SDL_error.h"
33 | #include "SDL_video.h"
34 |
35 | #include "SDL_touch.h"
36 |
37 |
38 | #include "begin_code.h"
39 | /* Set up for C function definitions, even when using C++ */
40 | #ifdef __cplusplus
41 | extern "C" {
42 | #endif
43 |
44 | typedef Sint64 SDL_GestureID;
45 |
46 | /* Function prototypes */
47 |
48 | /**
49 | * \brief Begin Recording a gesture on the specified touch, or all touches (-1)
50 | *
51 | *
52 | */
53 | extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId);
54 |
55 |
56 | /**
57 | * \brief Save all currently loaded Dollar Gesture templates
58 | *
59 | *
60 | */
61 | extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst);
62 |
63 | /**
64 | * \brief Save a currently loaded Dollar Gesture template
65 | *
66 | *
67 | */
68 | extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst);
69 |
70 |
71 | /**
72 | * \brief Load Dollar Gesture templates from a file
73 | *
74 | *
75 | */
76 | extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src);
77 |
78 |
79 | /* Ends C function definitions when using C++ */
80 | #ifdef __cplusplus
81 | }
82 | #endif
83 | #include "close_code.h"
84 |
85 | #endif /* SDL_gesture_h_ */
86 |
87 | /* vi: set ts=4 sw=4 expandtab: */
88 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_images.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_images.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 |
32 | Defines some images for tests.
33 |
34 | */
35 |
36 | #ifndef SDL_test_images_h_
37 | #define SDL_test_images_h_
38 |
39 | #include "SDL.h"
40 |
41 | #include "begin_code.h"
42 | /* Set up for C function definitions, even when using C++ */
43 | #ifdef __cplusplus
44 | extern "C" {
45 | #endif
46 |
47 | /**
48 | *Type for test images.
49 | */
50 | typedef struct SDLTest_SurfaceImage_s {
51 | int width;
52 | int height;
53 | unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */
54 | const char *pixel_data;
55 | } SDLTest_SurfaceImage_t;
56 |
57 | /* Test images */
58 | SDL_Surface *SDLTest_ImageBlit(void);
59 | SDL_Surface *SDLTest_ImageBlitColor(void);
60 | SDL_Surface *SDLTest_ImageBlitAlpha(void);
61 | SDL_Surface *SDLTest_ImageBlitBlendAdd(void);
62 | SDL_Surface *SDLTest_ImageBlitBlend(void);
63 | SDL_Surface *SDLTest_ImageBlitBlendMod(void);
64 | SDL_Surface *SDLTest_ImageBlitBlendNone(void);
65 | SDL_Surface *SDLTest_ImageBlitBlendAll(void);
66 | SDL_Surface *SDLTest_ImageFace(void);
67 | SDL_Surface *SDLTest_ImagePrimitives(void);
68 | SDL_Surface *SDLTest_ImagePrimitivesBlend(void);
69 |
70 | /* Ends C function definitions when using C++ */
71 | #ifdef __cplusplus
72 | }
73 | #endif
74 | #include "close_code.h"
75 |
76 | #endif /* SDL_test_images_h_ */
77 |
78 | /* vi: set ts=4 sw=4 expandtab: */
79 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_error.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_error.h
24 | *
25 | * Simple error message routines for SDL.
26 | */
27 |
28 | #ifndef SDL_error_h_
29 | #define SDL_error_h_
30 |
31 | #include "SDL_stdinc.h"
32 |
33 | #include "begin_code.h"
34 | /* Set up for C function definitions, even when using C++ */
35 | #ifdef __cplusplus
36 | extern "C" {
37 | #endif
38 |
39 | /* Public functions */
40 | /* SDL_SetError() unconditionally returns -1. */
41 | extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
42 | extern DECLSPEC const char *SDLCALL SDL_GetError(void);
43 | extern DECLSPEC void SDLCALL SDL_ClearError(void);
44 |
45 | /**
46 | * \name Internal error functions
47 | *
48 | * \internal
49 | * Private error reporting function - used internally.
50 | */
51 | /* @{ */
52 | #define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM)
53 | #define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED)
54 | #define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param))
55 | typedef enum
56 | {
57 | SDL_ENOMEM,
58 | SDL_EFREAD,
59 | SDL_EFWRITE,
60 | SDL_EFSEEK,
61 | SDL_UNSUPPORTED,
62 | SDL_LASTERROR
63 | } SDL_errorcode;
64 | /* SDL_Error() unconditionally returns -1. */
65 | extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code);
66 | /* @} *//* Internal error functions */
67 |
68 | /* Ends C function definitions when using C++ */
69 | #ifdef __cplusplus
70 | }
71 | #endif
72 | #include "close_code.h"
73 |
74 | #endif /* SDL_error_h_ */
75 |
76 | /* vi: set ts=4 sw=4 expandtab: */
77 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_touch.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_touch.h
24 | *
25 | * Include file for SDL touch event handling.
26 | */
27 |
28 | #ifndef SDL_touch_h_
29 | #define SDL_touch_h_
30 |
31 | #include "SDL_stdinc.h"
32 | #include "SDL_error.h"
33 | #include "SDL_video.h"
34 |
35 | #include "begin_code.h"
36 | /* Set up for C function definitions, even when using C++ */
37 | #ifdef __cplusplus
38 | extern "C" {
39 | #endif
40 |
41 | typedef Sint64 SDL_TouchID;
42 | typedef Sint64 SDL_FingerID;
43 |
44 | typedef struct SDL_Finger
45 | {
46 | SDL_FingerID id;
47 | float x;
48 | float y;
49 | float pressure;
50 | } SDL_Finger;
51 |
52 | /* Used as the device ID for mouse events simulated with touch input */
53 | #define SDL_TOUCH_MOUSEID ((Uint32)-1)
54 |
55 |
56 | /* Function prototypes */
57 |
58 | /**
59 | * \brief Get the number of registered touch devices.
60 | */
61 | extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void);
62 |
63 | /**
64 | * \brief Get the touch ID with the given index, or 0 if the index is invalid.
65 | */
66 | extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index);
67 |
68 | /**
69 | * \brief Get the number of active fingers for a given touch device.
70 | */
71 | extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID);
72 |
73 | /**
74 | * \brief Get the finger object of the given touch, with the given index.
75 | */
76 | extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index);
77 |
78 | /* Ends C function definitions when using C++ */
79 | #ifdef __cplusplus
80 | }
81 | #endif
82 | #include "close_code.h"
83 |
84 | #endif /* SDL_touch_h_ */
85 |
86 | /* vi: set ts=4 sw=4 expandtab: */
87 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_power.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_power_h_
23 | #define SDL_power_h_
24 |
25 | /**
26 | * \file SDL_power.h
27 | *
28 | * Header for the SDL power management routines.
29 | */
30 |
31 | #include "SDL_stdinc.h"
32 |
33 | #include "begin_code.h"
34 | /* Set up for C function definitions, even when using C++ */
35 | #ifdef __cplusplus
36 | extern "C" {
37 | #endif
38 |
39 | /**
40 | * \brief The basic state for the system's power supply.
41 | */
42 | typedef enum
43 | {
44 | SDL_POWERSTATE_UNKNOWN, /**< cannot determine power status */
45 | SDL_POWERSTATE_ON_BATTERY, /**< Not plugged in, running on the battery */
46 | SDL_POWERSTATE_NO_BATTERY, /**< Plugged in, no battery available */
47 | SDL_POWERSTATE_CHARGING, /**< Plugged in, charging battery */
48 | SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */
49 | } SDL_PowerState;
50 |
51 |
52 | /**
53 | * \brief Get the current power supply details.
54 | *
55 | * \param secs Seconds of battery life left. You can pass a NULL here if
56 | * you don't care. Will return -1 if we can't determine a
57 | * value, or we're not running on a battery.
58 | *
59 | * \param pct Percentage of battery life left, between 0 and 100. You can
60 | * pass a NULL here if you don't care. Will return -1 if we
61 | * can't determine a value, or we're not running on a battery.
62 | *
63 | * \return The state of the battery (if any).
64 | */
65 | extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct);
66 |
67 | /* Ends C function definitions when using C++ */
68 | #ifdef __cplusplus
69 | }
70 | #endif
71 | #include "close_code.h"
72 |
73 | #endif /* SDL_power_h_ */
74 |
75 | /* vi: set ts=4 sw=4 expandtab: */
76 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_font.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_font.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | #ifndef SDL_test_font_h_
31 | #define SDL_test_font_h_
32 |
33 | #include "begin_code.h"
34 | /* Set up for C function definitions, even when using C++ */
35 | #ifdef __cplusplus
36 | extern "C" {
37 | #endif
38 |
39 | /* Function prototypes */
40 |
41 | #define FONT_CHARACTER_SIZE 8
42 |
43 | /**
44 | * \brief Draw a string in the currently set font.
45 | *
46 | * \param renderer The renderer to draw on.
47 | * \param x The X coordinate of the upper left corner of the character.
48 | * \param y The Y coordinate of the upper left corner of the character.
49 | * \param c The character to draw.
50 | *
51 | * \returns Returns 0 on success, -1 on failure.
52 | */
53 | int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c);
54 |
55 | /**
56 | * \brief Draw a string in the currently set font.
57 | *
58 | * \param renderer The renderer to draw on.
59 | * \param x The X coordinate of the upper left corner of the string.
60 | * \param y The Y coordinate of the upper left corner of the string.
61 | * \param s The string to draw.
62 | *
63 | * \returns Returns 0 on success, -1 on failure.
64 | */
65 | int SDLTest_DrawString(SDL_Renderer *renderer, int x, int y, const char *s);
66 |
67 |
68 | /**
69 | * \brief Cleanup textures used by font drawing functions.
70 | */
71 | void SDLTest_CleanupTextDrawing(void);
72 |
73 | /* Ends C function definitions when using C++ */
74 | #ifdef __cplusplus
75 | }
76 | #endif
77 | #include "close_code.h"
78 |
79 | #endif /* SDL_test_font_h_ */
80 |
81 | /* vi: set ts=4 sw=4 expandtab: */
82 |
--------------------------------------------------------------------------------
/code/shared.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 | typedef signed __int8 s8;
5 | typedef signed __int16 s16;
6 | typedef signed __int32 s32;
7 | typedef signed __int64 s64;
8 |
9 | typedef unsigned __int8 u8;
10 | typedef unsigned __int16 u16;
11 | typedef unsigned __int32 u32;
12 | typedef unsigned __int64 u64;
13 |
14 | typedef signed __int64 sptr;
15 | typedef unsigned __int64 uptr;
16 | typedef unsigned int uint;
17 | typedef float f32;
18 | typedef double f64;
19 |
20 |
21 | template
22 | static T Min(T a, T b)
23 | {
24 | return a < b ? a : b;
25 | }
26 |
27 | template
28 | static T Min(T a, T b, T c)
29 | {
30 | return Min(a, Min(b, c));
31 | }
32 |
33 | template
34 | static T Max(T a, T b)
35 | {
36 | return a > b ? a : b;
37 | }
38 |
39 | template
40 | static T Max(T a, T b, T c)
41 | {
42 | return Max(a, Max(b, c));
43 | }
44 |
45 | template
46 | static T Clamp(T x, T a, T b)
47 | {
48 | return Min(Max(x, a), b);
49 | }
50 |
51 | struct Buffer
52 | {
53 | void* buffer;
54 | uptr length;
55 | };
56 |
57 | struct File
58 | {
59 | File();
60 | ~File();
61 |
62 | bool Open(const char* filePath, const char* mode);
63 | bool IsValid();
64 | bool Read(void* data, size_t bytes);
65 | bool Write(const void* data, size_t bytes);
66 |
67 | void* file;
68 | };
69 |
70 | f32 EvaluateQuadraticBezierCurve(f32 y1, f32 y2, f32 y3, f32 t);
71 | bool AllocBuffer(Buffer& buffer, uptr bytes);
72 | bool ReadEntireFile(Buffer& buffer, const char* filePath);
73 | void PrintInfo(const char* format, ...);
74 | void PrintWarning(const char* format, ...);
75 | void PrintError(const char* format, ...);
76 | void FatalError(const char* format, ...);
77 | bool ShouldPrintHelp(int argc, char** argv);
78 | const char* GetExecutableFileName(char* argv0);
79 |
80 |
81 | /*
82 | Sluggish font file format
83 |
84 | SLUGGISH (8 bytes)
85 | # code points (u16)
86 | array of SluggishCodePoint
87 | curves texture width (u16)
88 | curves texture height (u16)
89 | curves texture bytes (u32)
90 | curves texture data (RGBA 32f)
91 | bands texture width (u16)
92 | bands texture height (u16)
93 | bands texture bytes (u32)
94 | bands texture data (RG 16)
95 | */
96 |
97 | #define SLUGGISH_EXTENSION_NAME ".sluggish"
98 | #define SLUGGISH_EXTENSION_LEN 9
99 |
100 | #define SLUGGISH_HEADER_DATA "SLUGGISH"
101 | #define SLUGGISH_HEADER_LEN 8
102 |
103 | // if you change this, the pixel shader needs to change too
104 | #define TEXTURE_WIDTH 4096
105 | #define TEXTURE_MASK 0xFFF
106 | #define TEXTURE_SHIFT 12
107 |
108 | #pragma pack(push, 1)
109 |
110 | struct SluggishCodePoint
111 | {
112 | u32 codePoint;
113 | u32 width;
114 | u32 height;
115 | u32 bandCount;
116 | u32 bandDimX;
117 | u32 bandDimY;
118 | u16 bandsTexCoordX;
119 | u16 bandsTexCoordY;
120 | };
121 |
122 | #pragma pack(pop)
123 |
124 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_minimal.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_minimal_h_
23 | #define SDL_config_minimal_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 | /**
29 | * \file SDL_config_minimal.h
30 | *
31 | * This is the minimal configuration that can be used to build SDL.
32 | */
33 |
34 | #define HAVE_STDARG_H 1
35 | #define HAVE_STDDEF_H 1
36 |
37 | /* Most everything except Visual Studio 2008 and earlier has stdint.h now */
38 | #if defined(_MSC_VER) && (_MSC_VER < 1600)
39 | /* Here are some reasonable defaults */
40 | typedef unsigned int size_t;
41 | typedef signed char int8_t;
42 | typedef unsigned char uint8_t;
43 | typedef signed short int16_t;
44 | typedef unsigned short uint16_t;
45 | typedef signed int int32_t;
46 | typedef unsigned int uint32_t;
47 | typedef signed long long int64_t;
48 | typedef unsigned long long uint64_t;
49 | typedef unsigned long uintptr_t;
50 | #else
51 | #define HAVE_STDINT_H 1
52 | #endif /* Visual Studio 2008 */
53 |
54 | #ifdef __GNUC__
55 | #define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1
56 | #endif
57 |
58 | /* Enable the dummy audio driver (src/audio/dummy/\*.c) */
59 | #define SDL_AUDIO_DRIVER_DUMMY 1
60 |
61 | /* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
62 | #define SDL_JOYSTICK_DISABLED 1
63 |
64 | /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
65 | #define SDL_HAPTIC_DISABLED 1
66 |
67 | /* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
68 | #define SDL_LOADSO_DISABLED 1
69 |
70 | /* Enable the stub thread support (src/thread/generic/\*.c) */
71 | #define SDL_THREADS_DISABLED 1
72 |
73 | /* Enable the stub timer support (src/timer/dummy/\*.c) */
74 | #define SDL_TIMERS_DISABLED 1
75 |
76 | /* Enable the dummy video driver (src/video/dummy/\*.c) */
77 | #define SDL_VIDEO_DRIVER_DUMMY 1
78 |
79 | /* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */
80 | #define SDL_FILESYSTEM_DUMMY 1
81 |
82 | #endif /* SDL_config_minimal_h_ */
83 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_loadso.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_loadso.h
24 | *
25 | * System dependent library loading routines
26 | *
27 | * Some things to keep in mind:
28 | * \li These functions only work on C function names. Other languages may
29 | * have name mangling and intrinsic language support that varies from
30 | * compiler to compiler.
31 | * \li Make sure you declare your function pointers with the same calling
32 | * convention as the actual library function. Your code will crash
33 | * mysteriously if you do not do this.
34 | * \li Avoid namespace collisions. If you load a symbol from the library,
35 | * it is not defined whether or not it goes into the global symbol
36 | * namespace for the application. If it does and it conflicts with
37 | * symbols in your code or other shared libraries, you will not get
38 | * the results you expect. :)
39 | */
40 |
41 | #ifndef SDL_loadso_h_
42 | #define SDL_loadso_h_
43 |
44 | #include "SDL_stdinc.h"
45 | #include "SDL_error.h"
46 |
47 | #include "begin_code.h"
48 | /* Set up for C function definitions, even when using C++ */
49 | #ifdef __cplusplus
50 | extern "C" {
51 | #endif
52 |
53 | /**
54 | * This function dynamically loads a shared object and returns a pointer
55 | * to the object handle (or NULL if there was an error).
56 | * The 'sofile' parameter is a system dependent name of the object file.
57 | */
58 | extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile);
59 |
60 | /**
61 | * Given an object handle, this function looks up the address of the
62 | * named function in the shared object and returns it. This address
63 | * is no longer valid after calling SDL_UnloadObject().
64 | */
65 | extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle,
66 | const char *name);
67 |
68 | /**
69 | * Unload a shared object from memory.
70 | */
71 | extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
72 |
73 | /* Ends C function definitions when using C++ */
74 | #ifdef __cplusplus
75 | }
76 | #endif
77 | #include "close_code.h"
78 |
79 | #endif /* SDL_loadso_h_ */
80 |
81 | /* vi: set ts=4 sw=4 expandtab: */
82 |
--------------------------------------------------------------------------------
/README.MD:
--------------------------------------------------------------------------------
1 | # Presentation
2 |
3 | This is a toy/experimental project showing off how to get started rendering glyphs with Eric Lengyel's Slug algorithm on both CPUs and GPUs.
4 |
5 | I recommend reading at least the slides linked in the reference section before any of the code.
6 |
7 | ## Requirements
8 |
9 | * Windows x64
10 | * Visual C++ 2013 or later for compiling
11 | * OpenGL 3.2 for the hardware renderer
12 |
13 | ## Project breakdown
14 |
15 | | Sub-project | Purpose |
16 | |:--|:--|
17 | | Font generator | Reads a .ttf TrueType font file and outputs a .sluggish file |
18 | | Software renderer | Reads a .sluggish file and outputs a .tga image per specified code point |
19 | | Hardware renderer | Reads a .sluggish file and renders up to 6 specified glyphs using OpenGL |
20 |
21 | | Feature | Support |
22 | |:--|:--|
23 | | Curves texture (FP32) | YES |
24 | | Bands texture (U16) | YES |
25 | | Cutting glyphs into bands (performance) | YES |
26 | | Sorting curves (performance) | YES |
27 | | High-quality implementation of anything | NO |
28 | | High performance | NO |
29 | | 16-bit floating point encoding | NO |
30 | | Data de-duplication and compression | NO |
31 | | Text layouting | NO |
32 | | Colored shapes | NO |
33 | | Adaptive super-sampling | NO |
34 | | Gamma correction | NO |
35 | | Bounding polygons | NO |
36 |
37 | The goal was to keep things pretty simple while still not having *awful* performance. For instance, cutting the glyphs into bands has been implemented because it's simple and improves performance *massively*.
38 |
39 | ## Debugging
40 |
41 | By default, the debugger's target executable isn't in the output directory but a directory path specified by the `SLUGGISH_APP_DIR` environment variable.
42 |
43 | The .exe and .pdb files are copied over to that directory after every build.
44 |
45 | To make this process easy, you can launch Visual Studio through a simple batch script:
46 | ```
47 | :: This file would sit next to the Sluggish directory
48 | cd Sluggish\makefiles\vs2013
49 | set SLUGGISH_APP_DIR=C:\important_stuff\sluggish
50 | Sluggish.sln
51 | ```
52 |
53 | ## References
54 |
55 | To learn more about how the Slug algorithm works, refer to:
56 | **GPU-Centered Font Rendering Directly from Glyph Outlines** by Eric Lengyel
57 | Journal of Computer Graphics Techniques (JCGT), vol. 6, no. 2, 31-47, 2017
58 | Paper:
59 | Slides:
60 |
61 | # Licenses
62 |
63 | | Project/File | License(s) | License File(s) |
64 | |:--|:--|:--|
65 | | This project | Unlicense (public domain) | UNLICENSE.MD |
66 | | SDL 2 | zlib | libs/SDL2/COPYING.txt |
67 | | GLEW | Modified BSD License Mesa 3-D License (MIT) Khronos License (MIT) | libs/GLEW/LICENSE.txt |
68 | | premake 5 | premake 5 | makefiles/PREMAKE_LICENSE.txt |
69 | | stb_truetype.h | Pick-a-license: Unlicense (public domain) MIT | code/generator/stb_truetype.h |
70 | | stb_image_write.h | Pick-a-license: Unlicense (public domain) MIT | code/renderer_sw/stb_image_write.h |
71 |
72 | # Patent
73 |
74 | While there is no patent on the Slug algorithm as of the time of writing, Eric Lengyel has made an application for one and the process is still on-going...
75 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_bits.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_bits.h
24 | *
25 | * Functions for fiddling with bits and bitmasks.
26 | */
27 |
28 | #ifndef SDL_bits_h_
29 | #define SDL_bits_h_
30 |
31 | #include "SDL_stdinc.h"
32 |
33 | #include "begin_code.h"
34 | /* Set up for C function definitions, even when using C++ */
35 | #ifdef __cplusplus
36 | extern "C" {
37 | #endif
38 |
39 | /**
40 | * \file SDL_bits.h
41 | */
42 |
43 | /**
44 | * Get the index of the most significant bit. Result is undefined when called
45 | * with 0. This operation can also be stated as "count leading zeroes" and
46 | * "log base 2".
47 | *
48 | * \return Index of the most significant bit, or -1 if the value is 0.
49 | */
50 | #if defined(__WATCOMC__) && defined(__386__)
51 | extern _inline int _SDL_clz_watcom (Uint32);
52 | #pragma aux _SDL_clz_watcom = \
53 | "bsr eax, eax" \
54 | "xor eax, 31" \
55 | parm [eax] nomemory \
56 | value [eax] \
57 | modify exact [eax] nomemory;
58 | #endif
59 |
60 | SDL_FORCE_INLINE int
61 | SDL_MostSignificantBitIndex32(Uint32 x)
62 | {
63 | #if defined(__GNUC__) && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
64 | /* Count Leading Zeroes builtin in GCC.
65 | * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html
66 | */
67 | if (x == 0) {
68 | return -1;
69 | }
70 | return 31 - __builtin_clz(x);
71 | #elif defined(__WATCOMC__) && defined(__386__)
72 | if (x == 0) {
73 | return -1;
74 | }
75 | return 31 - _SDL_clz_watcom(x);
76 | #else
77 | /* Based off of Bit Twiddling Hacks by Sean Eron Anderson
78 | * , released in the public domain.
79 | * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog
80 | */
81 | const Uint32 b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000};
82 | const int S[] = {1, 2, 4, 8, 16};
83 |
84 | int msbIndex = 0;
85 | int i;
86 |
87 | if (x == 0) {
88 | return -1;
89 | }
90 |
91 | for (i = 4; i >= 0; i--)
92 | {
93 | if (x & b[i])
94 | {
95 | x >>= S[i];
96 | msbIndex |= S[i];
97 | }
98 | }
99 |
100 | return msbIndex;
101 | #endif
102 | }
103 |
104 | /* Ends C function definitions when using C++ */
105 | #ifdef __cplusplus
106 | }
107 | #endif
108 | #include "close_code.h"
109 |
110 | #endif /* SDL_bits_h_ */
111 |
112 | /* vi: set ts=4 sw=4 expandtab: */
113 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_random.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_random.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 |
32 | A "32-bit Multiply with carry random number generator. Very fast.
33 | Includes a list of recommended multipliers.
34 |
35 | multiply-with-carry generator: x(n) = a*x(n-1) + carry mod 2^32.
36 | period: (a*2^31)-1
37 |
38 | */
39 |
40 | #ifndef SDL_test_random_h_
41 | #define SDL_test_random_h_
42 |
43 | #include "begin_code.h"
44 | /* Set up for C function definitions, even when using C++ */
45 | #ifdef __cplusplus
46 | extern "C" {
47 | #endif
48 |
49 | /* --- Definitions */
50 |
51 | /*
52 | * Macros that return a random number in a specific format.
53 | */
54 | #define SDLTest_RandomInt(c) ((int)SDLTest_Random(c))
55 |
56 | /*
57 | * Context structure for the random number generator state.
58 | */
59 | typedef struct {
60 | unsigned int a;
61 | unsigned int x;
62 | unsigned int c;
63 | unsigned int ah;
64 | unsigned int al;
65 | } SDLTest_RandomContext;
66 |
67 |
68 | /* --- Function prototypes */
69 |
70 | /**
71 | * \brief Initialize random number generator with two integers.
72 | *
73 | * Note: The random sequence of numbers returned by ...Random() is the
74 | * same for the same two integers and has a period of 2^31.
75 | *
76 | * \param rndContext pointer to context structure
77 | * \param xi integer that defines the random sequence
78 | * \param ci integer that defines the random sequence
79 | *
80 | */
81 | void SDLTest_RandomInit(SDLTest_RandomContext * rndContext, unsigned int xi,
82 | unsigned int ci);
83 |
84 | /**
85 | * \brief Initialize random number generator based on current system time.
86 | *
87 | * \param rndContext pointer to context structure
88 | *
89 | */
90 | void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext);
91 |
92 |
93 | /**
94 | * \brief Initialize random number generator based on current system time.
95 | *
96 | * Note: ...RandomInit() or ...RandomInitTime() must have been called
97 | * before using this function.
98 | *
99 | * \param rndContext pointer to context structure
100 | *
101 | * \returns A random number (32bit unsigned integer)
102 | *
103 | */
104 | unsigned int SDLTest_Random(SDLTest_RandomContext *rndContext);
105 |
106 |
107 | /* Ends C function definitions when using C++ */
108 | #ifdef __cplusplus
109 | }
110 | #endif
111 | #include "close_code.h"
112 |
113 | #endif /* SDL_test_random_h_ */
114 |
115 | /* vi: set ts=4 sw=4 expandtab: */
116 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_wiz.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_wiz_h_
23 | #define SDL_config_wiz_h_
24 | #define SDL_config_h_
25 |
26 | /* This is a set of defines to configure the SDL features */
27 |
28 | /* General platform specific identifiers */
29 | #include "SDL_platform.h"
30 |
31 | #define SDL_BYTEORDER 1234
32 |
33 | #define HAVE_ALLOCA_H 1
34 | #define HAVE_SYS_TYPES_H 1
35 | #define HAVE_STDIO_H 1
36 | #define STDC_HEADERS 1
37 | #define HAVE_STDLIB_H 1
38 | #define HAVE_STDARG_H 1
39 | #define HAVE_MALLOC_H 1
40 | #define HAVE_MEMORY_H 1
41 | #define HAVE_STRING_H 1
42 | #define HAVE_STRINGS_H 1
43 | #define HAVE_INTTYPES_H 1
44 | #define HAVE_STDINT_H 1
45 | #define HAVE_CTYPE_H 1
46 | #define HAVE_MATH_H 1
47 | #define HAVE_ICONV_H 1
48 | #define HAVE_SIGNAL_H 1
49 | #define HAVE_MALLOC 1
50 | #define HAVE_CALLOC 1
51 | #define HAVE_REALLOC 1
52 | #define HAVE_FREE 1
53 | #define HAVE_ALLOCA 1
54 | #define HAVE_GETENV 1
55 | #define HAVE_SETENV 1
56 | #define HAVE_PUTENV 1
57 | #define HAVE_UNSETENV 1
58 | #define HAVE_QSORT 1
59 | #define HAVE_ABS 1
60 | #define HAVE_BCOPY 1
61 | #define HAVE_MEMSET 1
62 | #define HAVE_MEMCPY 1
63 | #define HAVE_MEMMOVE 1
64 | #define HAVE_STRLEN 1
65 | #define HAVE_STRDUP 1
66 | #define HAVE_STRCHR 1
67 | #define HAVE_STRRCHR 1
68 | #define HAVE_STRSTR 1
69 | #define HAVE_STRTOL 1
70 | #define HAVE_STRTOUL 1
71 | #define HAVE_STRTOLL 1
72 | #define HAVE_STRTOULL 1
73 | #define HAVE_ATOI 1
74 | #define HAVE_ATOF 1
75 | #define HAVE_STRCMP 1
76 | #define HAVE_STRNCMP 1
77 | #define HAVE_STRCASECMP 1
78 | #define HAVE_STRNCASECMP 1
79 | #define HAVE_VSSCANF 1
80 | #define HAVE_VSNPRINTF 1
81 | #define HAVE_M_PI 1
82 | #define HAVE_CEIL 1
83 | #define HAVE_COPYSIGN 1
84 | #define HAVE_COS 1
85 | #define HAVE_COSF 1
86 | #define HAVE_FABS 1
87 | #define HAVE_FLOOR 1
88 | #define HAVE_LOG 1
89 | #define HAVE_SCALBN 1
90 | #define HAVE_SIN 1
91 | #define HAVE_SINF 1
92 | #define HAVE_SQRT 1
93 | #define HAVE_SQRTF 1
94 | #define HAVE_TAN 1
95 | #define HAVE_TANF 1
96 | #define HAVE_SIGACTION 1
97 | #define HAVE_SETJMP 1
98 | #define HAVE_NANOSLEEP 1
99 | #define HAVE_POW 1
100 |
101 | #define SDL_AUDIO_DRIVER_DUMMY 1
102 | #define SDL_AUDIO_DRIVER_OSS 1
103 |
104 | #define SDL_INPUT_LINUXEV 1
105 | #define SDL_INPUT_TSLIB 1
106 | #define SDL_JOYSTICK_LINUX 1
107 | #define SDL_HAPTIC_LINUX 1
108 |
109 | #define SDL_LOADSO_DLOPEN 1
110 |
111 | #define SDL_THREAD_PTHREAD 1
112 | #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1
113 |
114 | #define SDL_TIMER_UNIX 1
115 |
116 | #define SDL_VIDEO_DRIVER_DUMMY 1
117 | #define SDL_VIDEO_DRIVER_PANDORA 1
118 | #define SDL_VIDEO_RENDER_OGL_ES 1
119 | #define SDL_VIDEO_OPENGL_ES 1
120 |
121 | #endif /* SDL_config_wiz_h_ */
122 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_assert.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_assert.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 | *
32 | * Assert API for test code and test cases
33 | *
34 | */
35 |
36 | #ifndef SDL_test_assert_h_
37 | #define SDL_test_assert_h_
38 |
39 | #include "begin_code.h"
40 | /* Set up for C function definitions, even when using C++ */
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 | /**
46 | * \brief Fails the assert.
47 | */
48 | #define ASSERT_FAIL 0
49 |
50 | /**
51 | * \brief Passes the assert.
52 | */
53 | #define ASSERT_PASS 1
54 |
55 | /**
56 | * \brief Assert that logs and break execution flow on failures.
57 | *
58 | * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0).
59 | * \param assertDescription Message to log with the assert describing it.
60 | */
61 | void SDLTest_Assert(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2);
62 |
63 | /**
64 | * \brief Assert for test cases that logs but does not break execution flow on failures. Updates assertion counters.
65 | *
66 | * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0).
67 | * \param assertDescription Message to log with the assert describing it.
68 | *
69 | * \returns Returns the assertCondition so it can be used to externally to break execution flow if desired.
70 | */
71 | int SDLTest_AssertCheck(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2);
72 |
73 | /**
74 | * \brief Explicitly pass without checking an assertion condition. Updates assertion counter.
75 | *
76 | * \param assertDescription Message to log with the assert describing it.
77 | */
78 | void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(1);
79 |
80 | /**
81 | * \brief Resets the assert summary counters to zero.
82 | */
83 | void SDLTest_ResetAssertSummary(void);
84 |
85 | /**
86 | * \brief Logs summary of all assertions (total, pass, fail) since last reset as INFO or ERROR.
87 | */
88 | void SDLTest_LogAssertSummary(void);
89 |
90 |
91 | /**
92 | * \brief Converts the current assert summary state to a test result.
93 | *
94 | * \returns TEST_RESULT_PASSED, TEST_RESULT_FAILED, or TEST_RESULT_NO_ASSERT
95 | */
96 | int SDLTest_AssertSummaryToTestResult(void);
97 |
98 | #ifdef __cplusplus
99 | }
100 | #endif
101 | #include "close_code.h"
102 |
103 | #endif /* SDL_test_assert_h_ */
104 |
105 | /* vi: set ts=4 sw=4 expandtab: */
106 |
--------------------------------------------------------------------------------
/code/shared.cpp:
--------------------------------------------------------------------------------
1 | #include "shared.hpp"
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 |
11 | f32 EvaluateQuadraticBezierCurve(f32 y1, f32 y2, f32 y3, f32 t)
12 | {
13 | // (1-t)*(1-t)*p1 + 2*t*(1-t)*p2 + t*t*p3
14 | const f32 it = 1.0f - t;
15 |
16 | return it*it*y1 + 2.0f*t*it*y2 + t*t*y3;
17 | }
18 |
19 | bool AllocBuffer(Buffer& buffer, uptr bytes)
20 | {
21 | buffer.buffer = malloc(bytes);
22 | if(!buffer.buffer)
23 | {
24 | return false;
25 | }
26 |
27 | buffer.length = bytes;
28 | return true;
29 | }
30 |
31 | bool ReadEntireFile(Buffer& buffer, const char* filePath)
32 | {
33 | FILE* file = fopen(filePath, "rb");
34 | if(!file)
35 | {
36 | return false;
37 | }
38 |
39 | fseek(file, 0, SEEK_END);
40 | const uptr bufferLength = (uptr)ftell(file);
41 | if(!AllocBuffer(buffer, bufferLength + 1))
42 | {
43 | fclose(file);
44 | return false;
45 | }
46 |
47 | fseek(file, 0, SEEK_SET);
48 | if(fread(buffer.buffer, (size_t)bufferLength, 1, file) != 1)
49 | {
50 | fclose(file);
51 | return false;
52 | }
53 |
54 | fclose(file);
55 | ((char*)buffer.buffer)[bufferLength] = '\0';
56 | return true;
57 | }
58 |
59 | void PrintInfo(const char* format, ...)
60 | {
61 | char msg[1024];
62 |
63 | va_list ap;
64 | va_start(ap, format);
65 | vsprintf(msg, format, ap);
66 | va_end(ap);
67 |
68 | fprintf(stdout, "%s", msg);
69 | }
70 |
71 | void PrintWarning(const char* format, ...)
72 | {
73 | char msg[1024];
74 |
75 | va_list ap;
76 | va_start(ap, format);
77 | vsprintf(msg, format, ap);
78 | va_end(ap);
79 |
80 | fprintf(stdout, "WARNING: %s", msg);
81 | }
82 |
83 | void PrintError(const char* format, ...)
84 | {
85 | char msg[1024];
86 |
87 | va_list ap;
88 | va_start(ap, format);
89 | vsprintf(msg, format, ap);
90 | va_end(ap);
91 |
92 | fprintf(stderr, "ERROR: %s", msg);
93 | }
94 |
95 | void FatalError(const char* format, ...)
96 | {
97 | char msg[1024];
98 |
99 | va_list ap;
100 | va_start(ap, format);
101 | vsprintf(msg, format, ap);
102 | va_end(ap);
103 |
104 | fprintf(stderr, "\nFATAL ERROR: %s\n", msg);
105 |
106 | exit(666);
107 | }
108 |
109 | bool ShouldPrintHelp(int argc, char** argv)
110 | {
111 | if(argc == 1)
112 | {
113 | return true;
114 | }
115 |
116 | return
117 | strcmp(argv[1], "/?") == 0 ||
118 | strcmp(argv[1], "/help") == 0 ||
119 | strcmp(argv[1], "--help") == 0;
120 | }
121 |
122 | const char* GetExecutableFileName(char* argv0)
123 | {
124 | static char fileName[256];
125 |
126 | char* s = argv0 + strlen(argv0);
127 | char* end = s;
128 | char* start = s;
129 | bool endFound = false;
130 | bool startFound = false;
131 |
132 | while(s >= argv0)
133 | {
134 | const char c = *s;
135 | if(!startFound && !endFound && c == '.')
136 | {
137 | end = s;
138 | endFound = true;
139 | }
140 | if(!startFound && (c == '\\' || c == '/'))
141 | {
142 | start = s + 1;
143 | break;
144 | }
145 |
146 | --s;
147 | }
148 |
149 | strncpy(fileName, start, (size_t)(end - start));
150 | fileName[sizeof(fileName) - 1] = '\0';
151 |
152 | return fileName;
153 | }
154 |
155 | File::File() : file(NULL)
156 | {
157 | }
158 |
159 | File::~File()
160 | {
161 | if(file != NULL)
162 | {
163 | fclose((FILE*)file);
164 | }
165 | }
166 |
167 | bool File::Open(const char* filePath, const char* mode)
168 | {
169 | file = fopen(filePath, mode);
170 |
171 | return file != NULL;
172 | }
173 |
174 | bool File::IsValid()
175 | {
176 | return file != NULL;
177 | }
178 |
179 | bool File::Read(void* data, size_t bytes)
180 | {
181 | return fread(data, bytes, 1, (FILE*)file) == 1;
182 | }
183 |
184 | bool File::Write(const void* data, size_t bytes)
185 | {
186 | return fwrite(data, bytes, 1, (FILE*)file) == 1;
187 | }
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_pandora.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_pandora_h_
23 | #define SDL_config_pandora_h_
24 | #define SDL_config_h_
25 |
26 | /* This is a set of defines to configure the SDL features */
27 |
28 | /* General platform specific identifiers */
29 | #include "SDL_platform.h"
30 |
31 | #ifdef __LP64__
32 | #define SIZEOF_VOIDP 8
33 | #else
34 | #define SIZEOF_VOIDP 4
35 | #endif
36 |
37 | #define SDL_BYTEORDER 1234
38 |
39 | #define HAVE_ALLOCA_H 1
40 | #define HAVE_SYS_TYPES_H 1
41 | #define HAVE_STDIO_H 1
42 | #define STDC_HEADERS 1
43 | #define HAVE_STDLIB_H 1
44 | #define HAVE_STDARG_H 1
45 | #define HAVE_MALLOC_H 1
46 | #define HAVE_MEMORY_H 1
47 | #define HAVE_STRING_H 1
48 | #define HAVE_STRINGS_H 1
49 | #define HAVE_INTTYPES_H 1
50 | #define HAVE_STDINT_H 1
51 | #define HAVE_CTYPE_H 1
52 | #define HAVE_MATH_H 1
53 | #define HAVE_ICONV_H 1
54 | #define HAVE_SIGNAL_H 1
55 | #define HAVE_MALLOC 1
56 | #define HAVE_CALLOC 1
57 | #define HAVE_REALLOC 1
58 | #define HAVE_FREE 1
59 | #define HAVE_ALLOCA 1
60 | #define HAVE_GETENV 1
61 | #define HAVE_SETENV 1
62 | #define HAVE_PUTENV 1
63 | #define HAVE_UNSETENV 1
64 | #define HAVE_QSORT 1
65 | #define HAVE_ABS 1
66 | #define HAVE_BCOPY 1
67 | #define HAVE_MEMSET 1
68 | #define HAVE_MEMCPY 1
69 | #define HAVE_MEMMOVE 1
70 | #define HAVE_STRLEN 1
71 | #define HAVE_STRDUP 1
72 | #define HAVE_STRCHR 1
73 | #define HAVE_STRRCHR 1
74 | #define HAVE_STRSTR 1
75 | #define HAVE_STRTOL 1
76 | #define HAVE_STRTOUL 1
77 | #define HAVE_STRTOLL 1
78 | #define HAVE_STRTOULL 1
79 | #define HAVE_ATOI 1
80 | #define HAVE_ATOF 1
81 | #define HAVE_STRCMP 1
82 | #define HAVE_STRNCMP 1
83 | #define HAVE_STRCASECMP 1
84 | #define HAVE_STRNCASECMP 1
85 | #define HAVE_VSSCANF 1
86 | #define HAVE_VSNPRINTF 1
87 | #define HAVE_M_PI 1
88 | #define HAVE_CEIL 1
89 | #define HAVE_COPYSIGN 1
90 | #define HAVE_COS 1
91 | #define HAVE_COSF 1
92 | #define HAVE_FABS 1
93 | #define HAVE_FLOOR 1
94 | #define HAVE_LOG 1
95 | #define HAVE_SCALBN 1
96 | #define HAVE_SIN 1
97 | #define HAVE_SINF 1
98 | #define HAVE_SQRT 1
99 | #define HAVE_SQRTF 1
100 | #define HAVE_TAN 1
101 | #define HAVE_TANF 1
102 | #define HAVE_SIGACTION 1
103 | #define HAVE_SETJMP 1
104 | #define HAVE_NANOSLEEP 1
105 |
106 | #define SDL_AUDIO_DRIVER_DUMMY 1
107 | #define SDL_AUDIO_DRIVER_OSS 1
108 |
109 | #define SDL_INPUT_LINUXEV 1
110 | #define SDL_INPUT_TSLIB 1
111 | #define SDL_JOYSTICK_LINUX 1
112 | #define SDL_HAPTIC_LINUX 1
113 |
114 | #define SDL_LOADSO_DLOPEN 1
115 |
116 | #define SDL_THREAD_PTHREAD 1
117 | #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1
118 |
119 | #define SDL_TIMER_UNIX 1
120 | #define SDL_FILESYSTEM_UNIX 1
121 |
122 | #define SDL_VIDEO_DRIVER_DUMMY 1
123 | #define SDL_VIDEO_DRIVER_X11 1
124 | #define SDL_VIDEO_DRIVER_PANDORA 1
125 | #define SDL_VIDEO_RENDER_OGL_ES 1
126 | #define SDL_VIDEO_OPENGL_ES 1
127 |
128 | #endif /* SDL_config_pandora_h_ */
129 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_crc32.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_crc32.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 |
32 | Implements CRC32 calculations (default output is Perl String::CRC32 compatible).
33 |
34 | */
35 |
36 | #ifndef SDL_test_crc32_h_
37 | #define SDL_test_crc32_h_
38 |
39 | #include "begin_code.h"
40 | /* Set up for C function definitions, even when using C++ */
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 |
46 | /* ------------ Definitions --------- */
47 |
48 | /* Definition shared by all CRC routines */
49 |
50 | #ifndef CrcUint32
51 | #define CrcUint32 unsigned int
52 | #endif
53 | #ifndef CrcUint8
54 | #define CrcUint8 unsigned char
55 | #endif
56 |
57 | #ifdef ORIGINAL_METHOD
58 | #define CRC32_POLY 0x04c11db7 /* AUTODIN II, Ethernet, & FDDI */
59 | #else
60 | #define CRC32_POLY 0xEDB88320 /* Perl String::CRC32 compatible */
61 | #endif
62 |
63 | /**
64 | * Data structure for CRC32 (checksum) computation
65 | */
66 | typedef struct {
67 | CrcUint32 crc32_table[256]; /* CRC table */
68 | } SDLTest_Crc32Context;
69 |
70 | /* ---------- Function Prototypes ------------- */
71 |
72 | /**
73 | * \brief Initialize the CRC context
74 | *
75 | * Note: The function initializes the crc table required for all crc calculations.
76 | *
77 | * \param crcContext pointer to context variable
78 | *
79 | * \returns 0 for OK, -1 on error
80 | *
81 | */
82 | int SDLTest_Crc32Init(SDLTest_Crc32Context * crcContext);
83 |
84 |
85 | /**
86 | * \brief calculate a crc32 from a data block
87 | *
88 | * \param crcContext pointer to context variable
89 | * \param inBuf input buffer to checksum
90 | * \param inLen length of input buffer
91 | * \param crc32 pointer to Uint32 to store the final CRC into
92 | *
93 | * \returns 0 for OK, -1 on error
94 | *
95 | */
96 | int SDLTest_Crc32Calc(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32);
97 |
98 | /* Same routine broken down into three steps */
99 | int SDLTest_Crc32CalcStart(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32);
100 | int SDLTest_Crc32CalcEnd(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32);
101 | int SDLTest_Crc32CalcBuffer(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32);
102 |
103 |
104 | /**
105 | * \brief clean up CRC context
106 | *
107 | * \param crcContext pointer to context variable
108 | *
109 | * \returns 0 for OK, -1 on error
110 | *
111 | */
112 |
113 | int SDLTest_Crc32Done(SDLTest_Crc32Context * crcContext);
114 |
115 |
116 | /* Ends C function definitions when using C++ */
117 | #ifdef __cplusplus
118 | }
119 | #endif
120 | #include "close_code.h"
121 |
122 | #endif /* SDL_test_crc32_h_ */
123 |
124 | /* vi: set ts=4 sw=4 expandtab: */
125 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_timer.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_timer_h_
23 | #define SDL_timer_h_
24 |
25 | /**
26 | * \file SDL_timer.h
27 | *
28 | * Header for the SDL time management routines.
29 | */
30 |
31 | #include "SDL_stdinc.h"
32 | #include "SDL_error.h"
33 |
34 | #include "begin_code.h"
35 | /* Set up for C function definitions, even when using C++ */
36 | #ifdef __cplusplus
37 | extern "C" {
38 | #endif
39 |
40 | /**
41 | * \brief Get the number of milliseconds since the SDL library initialization.
42 | *
43 | * \note This value wraps if the program runs for more than ~49 days.
44 | */
45 | extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void);
46 |
47 | /**
48 | * \brief Compare SDL ticks values, and return true if A has passed B
49 | *
50 | * e.g. if you want to wait 100 ms, you could do this:
51 | * Uint32 timeout = SDL_GetTicks() + 100;
52 | * while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) {
53 | * ... do work until timeout has elapsed
54 | * }
55 | */
56 | #define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0)
57 |
58 | /**
59 | * \brief Get the current value of the high resolution counter
60 | */
61 | extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void);
62 |
63 | /**
64 | * \brief Get the count per second of the high resolution counter
65 | */
66 | extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void);
67 |
68 | /**
69 | * \brief Wait a specified number of milliseconds before returning.
70 | */
71 | extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms);
72 |
73 | /**
74 | * Function prototype for the timer callback function.
75 | *
76 | * The callback function is passed the current timer interval and returns
77 | * the next timer interval. If the returned value is the same as the one
78 | * passed in, the periodic alarm continues, otherwise a new alarm is
79 | * scheduled. If the callback returns 0, the periodic alarm is cancelled.
80 | */
81 | typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param);
82 |
83 | /**
84 | * Definition of the timer ID type.
85 | */
86 | typedef int SDL_TimerID;
87 |
88 | /**
89 | * \brief Add a new timer to the pool of timers already running.
90 | *
91 | * \return A timer ID, or 0 when an error occurs.
92 | */
93 | extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval,
94 | SDL_TimerCallback callback,
95 | void *param);
96 |
97 | /**
98 | * \brief Remove a timer knowing its ID.
99 | *
100 | * \return A boolean value indicating success or failure.
101 | *
102 | * \warning It is not safe to remove a timer multiple times.
103 | */
104 | extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id);
105 |
106 |
107 | /* Ends C function definitions when using C++ */
108 | #ifdef __cplusplus
109 | }
110 | #endif
111 | #include "close_code.h"
112 |
113 | #endif /* SDL_timer_h_ */
114 |
115 | /* vi: set ts=4 sw=4 expandtab: */
116 |
--------------------------------------------------------------------------------
/libs/GLEW/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The OpenGL Extension Wrangler Library
2 | Copyright (C) 2002-2007, Milan Ikits
3 | Copyright (C) 2002-2007, Marcelo E. Magallon
4 | Copyright (C) 2002, Lev Povalahev
5 | All rights reserved.
6 |
7 | Redistribution and use in source and binary forms, with or without
8 | modification, are permitted provided that the following conditions are met:
9 |
10 | * Redistributions of source code must retain the above copyright notice,
11 | this list of conditions and the following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 | * The name of the author may be used to endorse or promote products
16 | derived from this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28 | THE POSSIBILITY OF SUCH DAMAGE.
29 |
30 |
31 | Mesa 3-D graphics library
32 | Version: 7.0
33 |
34 | Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
35 |
36 | Permission is hereby granted, free of charge, to any person obtaining a
37 | copy of this software and associated documentation files (the "Software"),
38 | to deal in the Software without restriction, including without limitation
39 | the rights to use, copy, modify, merge, publish, distribute, sublicense,
40 | and/or sell copies of the Software, and to permit persons to whom the
41 | Software is furnished to do so, subject to the following conditions:
42 |
43 | The above copyright notice and this permission notice shall be included
44 | in all copies or substantial portions of the Software.
45 |
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
47 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
48 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
49 | BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
50 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
51 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52 |
53 |
54 | Copyright (c) 2007 The Khronos Group Inc.
55 |
56 | Permission is hereby granted, free of charge, to any person obtaining a
57 | copy of this software and/or associated documentation files (the
58 | "Materials"), to deal in the Materials without restriction, including
59 | without limitation the rights to use, copy, modify, merge, publish,
60 | distribute, sublicense, and/or sell copies of the Materials, and to
61 | permit persons to whom the Materials are furnished to do so, subject to
62 | the following conditions:
63 |
64 | The above copyright notice and this permission notice shall be included
65 | in all copies or substantial portions of the Materials.
66 |
67 | THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
68 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
69 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
70 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
71 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
72 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
73 | MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
74 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_psp.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_psp_h_
23 | #define SDL_config_psp_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 |
29 |
30 | #ifdef __GNUC__
31 | #define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1
32 | #endif
33 |
34 | #define HAVE_GCC_ATOMICS 1
35 |
36 | #define HAVE_ALLOCA_H 1
37 | #define HAVE_SYS_TYPES_H 1
38 | #define HAVE_STDIO_H 1
39 | #define STDC_HEADERS 1
40 | #define HAVE_STRING_H 1
41 | #define HAVE_INTTYPES_H 1
42 | #define HAVE_STDINT_H 1
43 | #define HAVE_CTYPE_H 1
44 | #define HAVE_MATH_H 1
45 | #define HAVE_SIGNAL_H 1
46 |
47 | /* C library functions */
48 | #define HAVE_MALLOC 1
49 | #define HAVE_CALLOC 1
50 | #define HAVE_REALLOC 1
51 | #define HAVE_FREE 1
52 | #define HAVE_ALLOCA 1
53 | #define HAVE_GETENV 1
54 | #define HAVE_SETENV 1
55 | #define HAVE_PUTENV 1
56 | #define HAVE_SETENV 1
57 | #define HAVE_UNSETENV 1
58 | #define HAVE_QSORT 1
59 | #define HAVE_ABS 1
60 | #define HAVE_BCOPY 1
61 | #define HAVE_MEMSET 1
62 | #define HAVE_MEMCPY 1
63 | #define HAVE_MEMMOVE 1
64 | #define HAVE_MEMCMP 1
65 | #define HAVE_STRLEN 1
66 | #define HAVE_STRLCPY 1
67 | #define HAVE_STRLCAT 1
68 | #define HAVE_STRDUP 1
69 | #define HAVE_STRCHR 1
70 | #define HAVE_STRRCHR 1
71 | #define HAVE_STRSTR 1
72 | #define HAVE_STRTOL 1
73 | #define HAVE_STRTOUL 1
74 | #define HAVE_STRTOLL 1
75 | #define HAVE_STRTOULL 1
76 | #define HAVE_STRTOD 1
77 | #define HAVE_ATOI 1
78 | #define HAVE_ATOF 1
79 | #define HAVE_STRCMP 1
80 | #define HAVE_STRNCMP 1
81 | #define HAVE_STRCASECMP 1
82 | #define HAVE_STRNCASECMP 1
83 | #define HAVE_VSSCANF 1
84 | #define HAVE_VSNPRINTF 1
85 | #define HAVE_M_PI 1
86 | #define HAVE_ATAN 1
87 | #define HAVE_ATAN2 1
88 | #define HAVE_ACOS 1
89 | #define HAVE_ASIN 1
90 | #define HAVE_CEIL 1
91 | #define HAVE_COPYSIGN 1
92 | #define HAVE_COS 1
93 | #define HAVE_COSF 1
94 | #define HAVE_FABS 1
95 | #define HAVE_FLOOR 1
96 | #define HAVE_LOG 1
97 | #define HAVE_POW 1
98 | #define HAVE_SCALBN 1
99 | #define HAVE_SIN 1
100 | #define HAVE_SINF 1
101 | #define HAVE_SQRT 1
102 | #define HAVE_SQRTF 1
103 | #define HAVE_TAN 1
104 | #define HAVE_TANF 1
105 | #define HAVE_SETJMP 1
106 | #define HAVE_NANOSLEEP 1
107 | /* #define HAVE_SYSCONF 1 */
108 | /* #define HAVE_SIGACTION 1 */
109 |
110 |
111 | /* PSP isn't that sophisticated */
112 | #define LACKS_SYS_MMAN_H 1
113 |
114 | /* Enable the stub thread support (src/thread/psp/\*.c) */
115 | #define SDL_THREAD_PSP 1
116 |
117 | /* Enable the stub timer support (src/timer/psp/\*.c) */
118 | #define SDL_TIMERS_PSP 1
119 |
120 | /* Enable the stub joystick driver (src/joystick/psp/\*.c) */
121 | #define SDL_JOYSTICK_PSP 1
122 |
123 | /* Enable the stub audio driver (src/audio/psp/\*.c) */
124 | #define SDL_AUDIO_DRIVER_PSP 1
125 |
126 | /* PSP video dirver */
127 | #define SDL_VIDEO_DRIVER_PSP 1
128 |
129 | /* PSP render dirver */
130 | #define SDL_VIDEO_RENDER_PSP 1
131 |
132 | #define SDL_POWER_PSP 1
133 |
134 | /* !!! FIXME: what does PSP do for filesystem stuff? */
135 | #define SDL_FILESYSTEM_DUMMY 1
136 |
137 | /* PSP doesn't have haptic device (src/haptic/dummy/\*.c) */
138 | #define SDL_HAPTIC_DISABLED 1
139 |
140 | /* PSP can't load shared object (src/loadso/dummy/\*.c) */
141 | #define SDL_LOADSO_DISABLED 1
142 |
143 |
144 | #endif /* SDL_config_psp_h_ */
145 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL.h
24 | *
25 | * Main include header for the SDL library
26 | */
27 |
28 |
29 | #ifndef SDL_h_
30 | #define SDL_h_
31 |
32 | #include "SDL_main.h"
33 | #include "SDL_stdinc.h"
34 | #include "SDL_assert.h"
35 | #include "SDL_atomic.h"
36 | #include "SDL_audio.h"
37 | #include "SDL_clipboard.h"
38 | #include "SDL_cpuinfo.h"
39 | #include "SDL_endian.h"
40 | #include "SDL_error.h"
41 | #include "SDL_events.h"
42 | #include "SDL_filesystem.h"
43 | #include "SDL_gamecontroller.h"
44 | #include "SDL_haptic.h"
45 | #include "SDL_hints.h"
46 | #include "SDL_joystick.h"
47 | #include "SDL_loadso.h"
48 | #include "SDL_log.h"
49 | #include "SDL_messagebox.h"
50 | #include "SDL_mutex.h"
51 | #include "SDL_power.h"
52 | #include "SDL_render.h"
53 | #include "SDL_rwops.h"
54 | #include "SDL_shape.h"
55 | #include "SDL_system.h"
56 | #include "SDL_thread.h"
57 | #include "SDL_timer.h"
58 | #include "SDL_version.h"
59 | #include "SDL_video.h"
60 |
61 | #include "begin_code.h"
62 | /* Set up for C function definitions, even when using C++ */
63 | #ifdef __cplusplus
64 | extern "C" {
65 | #endif
66 |
67 | /* As of version 0.5, SDL is loaded dynamically into the application */
68 |
69 | /**
70 | * \name SDL_INIT_*
71 | *
72 | * These are the flags which may be passed to SDL_Init(). You should
73 | * specify the subsystems which you will be using in your application.
74 | */
75 | /* @{ */
76 | #define SDL_INIT_TIMER 0x00000001u
77 | #define SDL_INIT_AUDIO 0x00000010u
78 | #define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */
79 | #define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */
80 | #define SDL_INIT_HAPTIC 0x00001000u
81 | #define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */
82 | #define SDL_INIT_EVENTS 0x00004000u
83 | #define SDL_INIT_NOPARACHUTE 0x00100000u /**< compatibility; this flag is ignored. */
84 | #define SDL_INIT_EVERYTHING ( \
85 | SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \
86 | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER \
87 | )
88 | /* @} */
89 |
90 | /**
91 | * This function initializes the subsystems specified by \c flags
92 | */
93 | extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags);
94 |
95 | /**
96 | * This function initializes specific SDL subsystems
97 | *
98 | * Subsystem initialization is ref-counted, you must call
99 | * SDL_QuitSubSystem() for each SDL_InitSubSystem() to correctly
100 | * shutdown a subsystem manually (or call SDL_Quit() to force shutdown).
101 | * If a subsystem is already loaded then this call will
102 | * increase the ref-count and return.
103 | */
104 | extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags);
105 |
106 | /**
107 | * This function cleans up specific SDL subsystems
108 | */
109 | extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags);
110 |
111 | /**
112 | * This function returns a mask of the specified subsystems which have
113 | * previously been initialized.
114 | *
115 | * If \c flags is 0, it returns a mask of all initialized subsystems.
116 | */
117 | extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags);
118 |
119 | /**
120 | * This function cleans up all initialized subsystems. You should
121 | * call it upon all exit conditions.
122 | */
123 | extern DECLSPEC void SDLCALL SDL_Quit(void);
124 |
125 | /* Ends C function definitions when using C++ */
126 | #ifdef __cplusplus
127 | }
128 | #endif
129 | #include "close_code.h"
130 |
131 | #endif /* SDL_h_ */
132 |
133 | /* vi: set ts=4 sw=4 expandtab: */
134 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_android.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_android_h_
23 | #define SDL_config_android_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 | /**
29 | * \file SDL_config_android.h
30 | *
31 | * This is a configuration that can be used to build SDL for Android
32 | */
33 |
34 | #include
35 |
36 | #define HAVE_GCC_ATOMICS 1
37 |
38 | #define HAVE_ALLOCA_H 1
39 | #define HAVE_SYS_TYPES_H 1
40 | #define HAVE_STDIO_H 1
41 | #define STDC_HEADERS 1
42 | #define HAVE_STRING_H 1
43 | #define HAVE_INTTYPES_H 1
44 | #define HAVE_STDINT_H 1
45 | #define HAVE_CTYPE_H 1
46 | #define HAVE_MATH_H 1
47 | #define HAVE_SIGNAL_H 1
48 |
49 | /* C library functions */
50 | #define HAVE_MALLOC 1
51 | #define HAVE_CALLOC 1
52 | #define HAVE_REALLOC 1
53 | #define HAVE_FREE 1
54 | #define HAVE_ALLOCA 1
55 | #define HAVE_GETENV 1
56 | #define HAVE_SETENV 1
57 | #define HAVE_PUTENV 1
58 | #define HAVE_SETENV 1
59 | #define HAVE_UNSETENV 1
60 | #define HAVE_QSORT 1
61 | #define HAVE_ABS 1
62 | #define HAVE_BCOPY 1
63 | #define HAVE_MEMSET 1
64 | #define HAVE_MEMCPY 1
65 | #define HAVE_MEMMOVE 1
66 | #define HAVE_MEMCMP 1
67 | #define HAVE_STRLEN 1
68 | #define HAVE_STRLCPY 1
69 | #define HAVE_STRLCAT 1
70 | #define HAVE_STRDUP 1
71 | #define HAVE_STRCHR 1
72 | #define HAVE_STRRCHR 1
73 | #define HAVE_STRSTR 1
74 | #define HAVE_STRTOL 1
75 | #define HAVE_STRTOUL 1
76 | #define HAVE_STRTOLL 1
77 | #define HAVE_STRTOULL 1
78 | #define HAVE_STRTOD 1
79 | #define HAVE_ATOI 1
80 | #define HAVE_ATOF 1
81 | #define HAVE_STRCMP 1
82 | #define HAVE_STRNCMP 1
83 | #define HAVE_STRCASECMP 1
84 | #define HAVE_STRNCASECMP 1
85 | #define HAVE_VSSCANF 1
86 | #define HAVE_VSNPRINTF 1
87 | #define HAVE_M_PI 1
88 | #define HAVE_ATAN 1
89 | #define HAVE_ATAN2 1
90 | #define HAVE_ACOS 1
91 | #define HAVE_ASIN 1
92 | #define HAVE_CEIL 1
93 | #define HAVE_COPYSIGN 1
94 | #define HAVE_COS 1
95 | #define HAVE_COSF 1
96 | #define HAVE_FABS 1
97 | #define HAVE_FLOOR 1
98 | #define HAVE_LOG 1
99 | #define HAVE_POW 1
100 | #define HAVE_SCALBN 1
101 | #define HAVE_SIN 1
102 | #define HAVE_SINF 1
103 | #define HAVE_SQRT 1
104 | #define HAVE_SQRTF 1
105 | #define HAVE_TAN 1
106 | #define HAVE_TANF 1
107 | #define HAVE_SIGACTION 1
108 | #define HAVE_SETJMP 1
109 | #define HAVE_NANOSLEEP 1
110 | #define HAVE_SYSCONF 1
111 | #define HAVE_CLOCK_GETTIME 1
112 |
113 | #define SIZEOF_VOIDP 4
114 |
115 | /* Enable various audio drivers */
116 | #define SDL_AUDIO_DRIVER_ANDROID 1
117 | #define SDL_AUDIO_DRIVER_DUMMY 1
118 |
119 | /* Enable various input drivers */
120 | #define SDL_JOYSTICK_ANDROID 1
121 | #define SDL_HAPTIC_ANDROID 1
122 |
123 | /* Enable various shared object loading systems */
124 | #define SDL_LOADSO_DLOPEN 1
125 |
126 | /* Enable various threading systems */
127 | #define SDL_THREAD_PTHREAD 1
128 | #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
129 |
130 | /* Enable various timer systems */
131 | #define SDL_TIMER_UNIX 1
132 |
133 | /* Enable various video drivers */
134 | #define SDL_VIDEO_DRIVER_ANDROID 1
135 |
136 | /* Enable OpenGL ES */
137 | #define SDL_VIDEO_OPENGL_ES 1
138 | #define SDL_VIDEO_OPENGL_ES2 1
139 | #define SDL_VIDEO_OPENGL_EGL 1
140 | #define SDL_VIDEO_RENDER_OGL_ES 1
141 | #define SDL_VIDEO_RENDER_OGL_ES2 1
142 |
143 | /* Enable Vulkan support */
144 | /* Android does not support Vulkan in native code using the "armeabi" ABI. */
145 | #if defined(__ARM_ARCH) && __ARM_ARCH < 7
146 | #define SDL_VIDEO_VULKAN 0
147 | #else
148 | #define SDL_VIDEO_VULKAN 1
149 | #endif
150 |
151 | /* Enable system power support */
152 | #define SDL_POWER_ANDROID 1
153 |
154 | /* Enable the filesystem driver */
155 | #define SDL_FILESYSTEM_ANDROID 1
156 |
157 | #endif /* SDL_config_android_h_ */
158 |
--------------------------------------------------------------------------------
/makefiles/premake5.lua:
--------------------------------------------------------------------------------
1 | --[[
2 |
3 | Currently used premake build:
4 | premake 5.0.0-alpha10
5 |
6 | Only 1 toolchain is supported: Visual C++ on Windows
7 |
8 | --]]
9 |
10 | -- relative to the LUA script
11 | path_root = ".."
12 | path_src = path_root.."/code"
13 | path_make = path_root.."/makefiles"
14 | path_build = path_root.."/.build"
15 | path_bin = path_root.."/.bin"
16 | path_libs = "../libs"
17 |
18 | -- relative to the makefile
19 | make_path_src = "../../code"
20 | make_path_bin = "bin"
21 |
22 | -- environment variables
23 | envvar_appdir = "SLUGGISH_APP_DIR"
24 | abs_path_app = string.format("$(%s)", envvar_appdir)
25 |
26 | extra_warnings = 1
27 |
28 | local function GetBinDirName()
29 |
30 | return "%{cfg.platform}/%{cfg.buildcfg}"
31 |
32 | end
33 |
34 | local function CreateExeCopyPostBuildCommand(exeNameNoExt)
35 |
36 | local make_path_exe = string.format("%s/%s/%s.exe", make_path_bin, GetBinDirName(), exeNameNoExt)
37 |
38 | return string.format("copy \"%s\" \"%s\"", make_path_exe, abs_path_app)
39 |
40 | end
41 |
42 | local function CreatePdbCopyPostBuildCommand(exeNameNoExt)
43 |
44 | local make_path_pdb = string.format("%s/%s/%s.pdb", make_path_bin, GetBinDirName(), exeNameNoExt)
45 |
46 | return string.format("copy \"%s\" \"%s\"", make_path_pdb, abs_path_app)
47 |
48 | end
49 |
50 | local function ApplyProjectSettings(exeNameNoExt)
51 |
52 | --
53 | -- General
54 | --
55 |
56 | filter { }
57 |
58 | language "C++"
59 |
60 | location ( path_make.."/".._ACTION )
61 |
62 | rtti "Off"
63 | exceptionhandling "On"
64 | flags { "NoPCH", "StaticRuntime", "NoManifest", "NoNativeWChar" }
65 |
66 | filter "configurations:debug"
67 | defines { "DEBUG", "_DEBUG" }
68 | flags { }
69 |
70 | filter "configurations:release"
71 | defines { "NDEBUG" }
72 | flags -- others: NoIncrementalLink NoCopyLocal NoImplicitLink NoBufferSecurityChecks
73 | {
74 | "NoMinimalRebuild",
75 | "OptimizeSize",
76 | "NoFramePointer",
77 | "EnableSSE2",
78 | "FloatFast",
79 | "MultiProcessorCompile",
80 | "NoRuntimeChecks"
81 | }
82 |
83 | filter { }
84 |
85 | --
86 | -- Visual C++
87 | --
88 |
89 | -- Some build options:
90 | -- /GT => Support Fiber-Safe Thread-Local Storage
91 | -- /GS- => Buffer Security Check disabled
92 | -- /GL => Whole Program Optimization
93 | -- /Zi => Debug info, but not for edit and continue
94 | -- /Os => Favor size over speed
95 | -- /Gm => Enable Minimal Rebuild
96 |
97 | filter "action:vs*"
98 | symbols "On"
99 | editandcontinue "Off"
100 | defines { "_CRT_SECURE_NO_WARNINGS", "WIN32", "_WIN32" }
101 | if extra_warnings == 1 then
102 | flags { "ExtraWarnings" }
103 | end
104 |
105 | filter { "action:vs*", "configurations:debug" }
106 | buildoptions { "/Gm" }
107 | linkoptions { "" }
108 |
109 | filter { "action:vs*", "configurations:release" }
110 | flags { "LinkTimeOptimization" } -- I had no success with GCC's -flto
111 | buildoptions { "/GL" }
112 | linkoptions { "" }
113 |
114 | filter { }
115 |
116 | targetname(exeNameNoExt)
117 |
118 | files
119 | {
120 | path_src.."/*.cpp",
121 | path_src.."/*.hpp"
122 | }
123 |
124 | -- copy the binaries over to the data install
125 | -- it seems that "filter" doesn't work with "prebuildcommands", "postbuildcommands"
126 | postbuildcommands { path.translate(CreateExeCopyPostBuildCommand(exeNameNoExt), "\\") }
127 | postbuildcommands { path.translate(CreatePdbCopyPostBuildCommand(exeNameNoExt), "\\") }
128 |
129 | -- create VC++ debug settings
130 | filter "action:vs*"
131 | local abs_path_exe = string.format("%s\\%s.exe", abs_path_app, exeNameNoExt)
132 | debugcommand(abs_path_exe)
133 | -- debugargs { "" }
134 | debugdir(abs_path_app)
135 |
136 | filter { "action:vs*", "configurations:release" }
137 | linkoptions { "/OPT:REF", "/OPT:ICF" }
138 |
139 | end
140 |
141 | local function AddProjectFolder(folderName)
142 |
143 | filter { }
144 |
145 | includedirs { make_path_src.."/"..folderName }
146 |
147 | files
148 | {
149 | path_src.."/"..folderName.."/*.cpp",
150 | path_src.."/"..folderName.."/*.hpp",
151 | path_src.."/"..folderName.."/*.h"
152 | }
153 |
154 | end
155 |
156 | solution "Sluggish"
157 |
158 | location ( path_make.."/".._ACTION )
159 | platforms { "x64" }
160 | configurations { "debug", "release" }
161 |
162 | project "fontgen"
163 | kind "ConsoleApp"
164 | ApplyProjectSettings("fontgen")
165 | AddProjectFolder("generator")
166 |
167 | project "fontrender"
168 | kind "ConsoleApp"
169 | ApplyProjectSettings("fontrender")
170 | AddProjectFolder("renderer_sw")
171 |
172 | project "fontrendergl"
173 | kind "ConsoleApp"
174 | ApplyProjectSettings("fontrendergl")
175 | AddProjectFolder("renderer_gl")
176 | filter { }
177 | includedirs { path_libs.."/SDL2/include", path_libs.."/GLEW/include" }
178 | libdirs { path_libs.."/SDL2/lib", path_libs.."/GLEW/lib" }
179 | links { "SDL2", "opengl32", "glew32" }
180 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_rect.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_rect.h
24 | *
25 | * Header file for SDL_rect definition and management functions.
26 | */
27 |
28 | #ifndef SDL_rect_h_
29 | #define SDL_rect_h_
30 |
31 | #include "SDL_stdinc.h"
32 | #include "SDL_error.h"
33 | #include "SDL_pixels.h"
34 | #include "SDL_rwops.h"
35 |
36 | #include "begin_code.h"
37 | /* Set up for C function definitions, even when using C++ */
38 | #ifdef __cplusplus
39 | extern "C" {
40 | #endif
41 |
42 | /**
43 | * \brief The structure that defines a point
44 | *
45 | * \sa SDL_EnclosePoints
46 | * \sa SDL_PointInRect
47 | */
48 | typedef struct SDL_Point
49 | {
50 | int x;
51 | int y;
52 | } SDL_Point;
53 |
54 | /**
55 | * \brief A rectangle, with the origin at the upper left.
56 | *
57 | * \sa SDL_RectEmpty
58 | * \sa SDL_RectEquals
59 | * \sa SDL_HasIntersection
60 | * \sa SDL_IntersectRect
61 | * \sa SDL_UnionRect
62 | * \sa SDL_EnclosePoints
63 | */
64 | typedef struct SDL_Rect
65 | {
66 | int x, y;
67 | int w, h;
68 | } SDL_Rect;
69 |
70 | /**
71 | * \brief Returns true if point resides inside a rectangle.
72 | */
73 | SDL_FORCE_INLINE SDL_bool SDL_PointInRect(const SDL_Point *p, const SDL_Rect *r)
74 | {
75 | return ( (p->x >= r->x) && (p->x < (r->x + r->w)) &&
76 | (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE;
77 | }
78 |
79 | /**
80 | * \brief Returns true if the rectangle has no area.
81 | */
82 | SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r)
83 | {
84 | return ((!r) || (r->w <= 0) || (r->h <= 0)) ? SDL_TRUE : SDL_FALSE;
85 | }
86 |
87 | /**
88 | * \brief Returns true if the two rectangles are equal.
89 | */
90 | SDL_FORCE_INLINE SDL_bool SDL_RectEquals(const SDL_Rect *a, const SDL_Rect *b)
91 | {
92 | return (a && b && (a->x == b->x) && (a->y == b->y) &&
93 | (a->w == b->w) && (a->h == b->h)) ? SDL_TRUE : SDL_FALSE;
94 | }
95 |
96 | /**
97 | * \brief Determine whether two rectangles intersect.
98 | *
99 | * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
100 | */
101 | extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersection(const SDL_Rect * A,
102 | const SDL_Rect * B);
103 |
104 | /**
105 | * \brief Calculate the intersection of two rectangles.
106 | *
107 | * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
108 | */
109 | extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRect(const SDL_Rect * A,
110 | const SDL_Rect * B,
111 | SDL_Rect * result);
112 |
113 | /**
114 | * \brief Calculate the union of two rectangles.
115 | */
116 | extern DECLSPEC void SDLCALL SDL_UnionRect(const SDL_Rect * A,
117 | const SDL_Rect * B,
118 | SDL_Rect * result);
119 |
120 | /**
121 | * \brief Calculate a minimal rectangle enclosing a set of points
122 | *
123 | * \return SDL_TRUE if any points were within the clipping rect
124 | */
125 | extern DECLSPEC SDL_bool SDLCALL SDL_EnclosePoints(const SDL_Point * points,
126 | int count,
127 | const SDL_Rect * clip,
128 | SDL_Rect * result);
129 |
130 | /**
131 | * \brief Calculate the intersection of a rectangle and line segment.
132 | *
133 | * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
134 | */
135 | extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect *
136 | rect, int *X1,
137 | int *Y1, int *X2,
138 | int *Y2);
139 |
140 | /* Ends C function definitions when using C++ */
141 | #ifdef __cplusplus
142 | }
143 | #endif
144 | #include "close_code.h"
145 |
146 | #endif /* SDL_rect_h_ */
147 |
148 | /* vi: set ts=4 sw=4 expandtab: */
149 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_iphoneos.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_iphoneos_h_
23 | #define SDL_config_iphoneos_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 | #ifdef __LP64__
29 | #define SIZEOF_VOIDP 8
30 | #else
31 | #define SIZEOF_VOIDP 4
32 | #endif
33 |
34 | #define HAVE_GCC_ATOMICS 1
35 |
36 | #define HAVE_ALLOCA_H 1
37 | #define HAVE_SYS_TYPES_H 1
38 | #define HAVE_STDIO_H 1
39 | #define STDC_HEADERS 1
40 | #define HAVE_STRING_H 1
41 | #define HAVE_INTTYPES_H 1
42 | #define HAVE_STDINT_H 1
43 | #define HAVE_CTYPE_H 1
44 | #define HAVE_MATH_H 1
45 | #define HAVE_SIGNAL_H 1
46 |
47 | /* C library functions */
48 | #define HAVE_MALLOC 1
49 | #define HAVE_CALLOC 1
50 | #define HAVE_REALLOC 1
51 | #define HAVE_FREE 1
52 | #define HAVE_ALLOCA 1
53 | #define HAVE_GETENV 1
54 | #define HAVE_SETENV 1
55 | #define HAVE_PUTENV 1
56 | #define HAVE_SETENV 1
57 | #define HAVE_UNSETENV 1
58 | #define HAVE_QSORT 1
59 | #define HAVE_ABS 1
60 | #define HAVE_BCOPY 1
61 | #define HAVE_MEMSET 1
62 | #define HAVE_MEMCPY 1
63 | #define HAVE_MEMMOVE 1
64 | #define HAVE_MEMCMP 1
65 | #define HAVE_STRLEN 1
66 | #define HAVE_STRLCPY 1
67 | #define HAVE_STRLCAT 1
68 | #define HAVE_STRDUP 1
69 | #define HAVE_STRCHR 1
70 | #define HAVE_STRRCHR 1
71 | #define HAVE_STRSTR 1
72 | #define HAVE_STRTOL 1
73 | #define HAVE_STRTOUL 1
74 | #define HAVE_STRTOLL 1
75 | #define HAVE_STRTOULL 1
76 | #define HAVE_STRTOD 1
77 | #define HAVE_ATOI 1
78 | #define HAVE_ATOF 1
79 | #define HAVE_STRCMP 1
80 | #define HAVE_STRNCMP 1
81 | #define HAVE_STRCASECMP 1
82 | #define HAVE_STRNCASECMP 1
83 | #define HAVE_VSSCANF 1
84 | #define HAVE_VSNPRINTF 1
85 | #define HAVE_M_PI 1
86 | #define HAVE_ATAN 1
87 | #define HAVE_ATAN2 1
88 | #define HAVE_ACOS 1
89 | #define HAVE_ASIN 1
90 | #define HAVE_CEIL 1
91 | #define HAVE_COPYSIGN 1
92 | #define HAVE_COS 1
93 | #define HAVE_COSF 1
94 | #define HAVE_FABS 1
95 | #define HAVE_FLOOR 1
96 | #define HAVE_LOG 1
97 | #define HAVE_POW 1
98 | #define HAVE_SCALBN 1
99 | #define HAVE_SIN 1
100 | #define HAVE_SINF 1
101 | #define HAVE_SQRT 1
102 | #define HAVE_SQRTF 1
103 | #define HAVE_TAN 1
104 | #define HAVE_TANF 1
105 | #define HAVE_SIGACTION 1
106 | #define HAVE_SETJMP 1
107 | #define HAVE_NANOSLEEP 1
108 | #define HAVE_SYSCONF 1
109 | #define HAVE_SYSCTLBYNAME 1
110 |
111 | /* enable iPhone version of Core Audio driver */
112 | #define SDL_AUDIO_DRIVER_COREAUDIO 1
113 | /* Enable the dummy audio driver (src/audio/dummy/\*.c) */
114 | #define SDL_AUDIO_DRIVER_DUMMY 1
115 |
116 | /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
117 | #define SDL_HAPTIC_DUMMY 1
118 |
119 | /* Enable MFi joystick support */
120 | #define SDL_JOYSTICK_MFI 1
121 |
122 | /* Enable Unix style SO loading */
123 | #define SDL_LOADSO_DLOPEN 1
124 |
125 | /* Enable various threading systems */
126 | #define SDL_THREAD_PTHREAD 1
127 | #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
128 |
129 | /* Enable various timer systems */
130 | #define SDL_TIMER_UNIX 1
131 |
132 | /* Supported video drivers */
133 | #define SDL_VIDEO_DRIVER_UIKIT 1
134 | #define SDL_VIDEO_DRIVER_DUMMY 1
135 |
136 | /* enable OpenGL ES */
137 | #define SDL_VIDEO_OPENGL_ES2 1
138 | #define SDL_VIDEO_OPENGL_ES 1
139 | #define SDL_VIDEO_RENDER_OGL_ES 1
140 | #define SDL_VIDEO_RENDER_OGL_ES2 1
141 |
142 | /* Enable Vulkan support */
143 | #if !TARGET_OS_SIMULATOR && !TARGET_CPU_ARM // Only 64-bit devices have Metal
144 | #define SDL_VIDEO_VULKAN 1
145 | #else
146 | #define SDL_VIDEO_VULKAN 0
147 | #endif
148 |
149 | /* Enable system power support */
150 | #define SDL_POWER_UIKIT 1
151 |
152 | /* enable iPhone keyboard support */
153 | #define SDL_IPHONE_KEYBOARD 1
154 |
155 | /* enable iOS extended launch screen */
156 | #define SDL_IPHONE_LAUNCHSCREEN 1
157 |
158 | /* Set max recognized G-force from accelerometer
159 | See src/joystick/uikit/SDL_sysjoystick.m for notes on why this is needed
160 | */
161 | #define SDL_IPHONE_MAX_GFORCE 5.0
162 |
163 | /* enable filesystem support */
164 | #define SDL_FILESYSTEM_COCOA 1
165 |
166 | #endif /* SDL_config_iphoneos_h_ */
167 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_md5.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_md5.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 | ***********************************************************************
32 | ** Header file for implementation of MD5 **
33 | ** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
34 | ** Created: 2/17/90 RLR **
35 | ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version **
36 | ** Revised (for MD5): RLR 4/27/91 **
37 | ** -- G modified to have y&~z instead of y&z **
38 | ** -- FF, GG, HH modified to add in last register done **
39 | ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 **
40 | ** -- distinct additive constant for each step **
41 | ** -- round 4 added, working mod 7 **
42 | ***********************************************************************
43 | */
44 |
45 | /*
46 | ***********************************************************************
47 | ** Message-digest routines: **
48 | ** To form the message digest for a message M **
49 | ** (1) Initialize a context buffer mdContext using MD5Init **
50 | ** (2) Call MD5Update on mdContext and M **
51 | ** (3) Call MD5Final on mdContext **
52 | ** The message digest is now in mdContext->digest[0...15] **
53 | ***********************************************************************
54 | */
55 |
56 | #ifndef SDL_test_md5_h_
57 | #define SDL_test_md5_h_
58 |
59 | #include "begin_code.h"
60 | /* Set up for C function definitions, even when using C++ */
61 | #ifdef __cplusplus
62 | extern "C" {
63 | #endif
64 |
65 | /* ------------ Definitions --------- */
66 |
67 | /* typedef a 32-bit type */
68 | typedef unsigned long int MD5UINT4;
69 |
70 | /* Data structure for MD5 (Message-Digest) computation */
71 | typedef struct {
72 | MD5UINT4 i[2]; /* number of _bits_ handled mod 2^64 */
73 | MD5UINT4 buf[4]; /* scratch buffer */
74 | unsigned char in[64]; /* input buffer */
75 | unsigned char digest[16]; /* actual digest after Md5Final call */
76 | } SDLTest_Md5Context;
77 |
78 | /* ---------- Function Prototypes ------------- */
79 |
80 | /**
81 | * \brief initialize the context
82 | *
83 | * \param mdContext pointer to context variable
84 | *
85 | * Note: The function initializes the message-digest context
86 | * mdContext. Call before each new use of the context -
87 | * all fields are set to zero.
88 | */
89 | void SDLTest_Md5Init(SDLTest_Md5Context * mdContext);
90 |
91 |
92 | /**
93 | * \brief update digest from variable length data
94 | *
95 | * \param mdContext pointer to context variable
96 | * \param inBuf pointer to data array/string
97 | * \param inLen length of data array/string
98 | *
99 | * Note: The function updates the message-digest context to account
100 | * for the presence of each of the characters inBuf[0..inLen-1]
101 | * in the message whose digest is being computed.
102 | */
103 |
104 | void SDLTest_Md5Update(SDLTest_Md5Context * mdContext, unsigned char *inBuf,
105 | unsigned int inLen);
106 |
107 |
108 | /**
109 | * \brief complete digest computation
110 | *
111 | * \param mdContext pointer to context variable
112 | *
113 | * Note: The function terminates the message-digest computation and
114 | * ends with the desired message digest in mdContext.digest[0..15].
115 | * Always call before using the digest[] variable.
116 | */
117 |
118 | void SDLTest_Md5Final(SDLTest_Md5Context * mdContext);
119 |
120 |
121 | /* Ends C function definitions when using C++ */
122 | #ifdef __cplusplus
123 | }
124 | #endif
125 | #include "close_code.h"
126 |
127 | #endif /* SDL_test_md5_h_ */
128 |
129 | /* vi: set ts=4 sw=4 expandtab: */
130 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_harness.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_harness.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /*
31 | Defines types for test case definitions and the test execution harness API.
32 |
33 | Based on original GSOC code by Markus Kauppila
34 | */
35 |
36 | #ifndef SDL_test_h_arness_h
37 | #define SDL_test_h_arness_h
38 |
39 | #include "begin_code.h"
40 | /* Set up for C function definitions, even when using C++ */
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 |
46 | /* ! Definitions for test case structures */
47 | #define TEST_ENABLED 1
48 | #define TEST_DISABLED 0
49 |
50 | /* ! Definition of all the possible test return values of the test case method */
51 | #define TEST_ABORTED -1
52 | #define TEST_STARTED 0
53 | #define TEST_COMPLETED 1
54 | #define TEST_SKIPPED 2
55 |
56 | /* ! Definition of all the possible test results for the harness */
57 | #define TEST_RESULT_PASSED 0
58 | #define TEST_RESULT_FAILED 1
59 | #define TEST_RESULT_NO_ASSERT 2
60 | #define TEST_RESULT_SKIPPED 3
61 | #define TEST_RESULT_SETUP_FAILURE 4
62 |
63 | /* !< Function pointer to a test case setup function (run before every test) */
64 | typedef void (*SDLTest_TestCaseSetUpFp)(void *arg);
65 |
66 | /* !< Function pointer to a test case function */
67 | typedef int (*SDLTest_TestCaseFp)(void *arg);
68 |
69 | /* !< Function pointer to a test case teardown function (run after every test) */
70 | typedef void (*SDLTest_TestCaseTearDownFp)(void *arg);
71 |
72 | /**
73 | * Holds information about a single test case.
74 | */
75 | typedef struct SDLTest_TestCaseReference {
76 | /* !< Func2Stress */
77 | SDLTest_TestCaseFp testCase;
78 | /* !< Short name (or function name) "Func2Stress" */
79 | char *name;
80 | /* !< Long name or full description "This test pushes func2() to the limit." */
81 | char *description;
82 | /* !< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */
83 | int enabled;
84 | } SDLTest_TestCaseReference;
85 |
86 | /**
87 | * Holds information about a test suite (multiple test cases).
88 | */
89 | typedef struct SDLTest_TestSuiteReference {
90 | /* !< "PlatformSuite" */
91 | char *name;
92 | /* !< The function that is run before each test. NULL skips. */
93 | SDLTest_TestCaseSetUpFp testSetUp;
94 | /* !< The test cases that are run as part of the suite. Last item should be NULL. */
95 | const SDLTest_TestCaseReference **testCases;
96 | /* !< The function that is run after each test. NULL skips. */
97 | SDLTest_TestCaseTearDownFp testTearDown;
98 | } SDLTest_TestSuiteReference;
99 |
100 |
101 | /**
102 | * \brief Generates a random run seed string for the harness. The generated seed will contain alphanumeric characters (0-9A-Z).
103 | *
104 | * Note: The returned string needs to be deallocated by the caller.
105 | *
106 | * \param length The length of the seed string to generate
107 | *
108 | * \returns The generated seed string
109 | */
110 | char *SDLTest_GenerateRunSeed(const int length);
111 |
112 | /**
113 | * \brief Execute a test suite using the given run seed and execution key.
114 | *
115 | * \param testSuites Suites containing the test case.
116 | * \param userRunSeed Custom run seed provided by user, or NULL to autogenerate one.
117 | * \param userExecKey Custom execution key provided by user, or 0 to autogenerate one.
118 | * \param filter Filter specification. NULL disables. Case sensitive.
119 | * \param testIterations Number of iterations to run each test case.
120 | *
121 | * \returns Test run result; 0 when all tests passed, 1 if any tests failed.
122 | */
123 | int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *userRunSeed, Uint64 userExecKey, const char *filter, int testIterations);
124 |
125 |
126 | /* Ends C function definitions when using C++ */
127 | #ifdef __cplusplus
128 | }
129 | #endif
130 | #include "close_code.h"
131 |
132 | #endif /* SDL_test_h_arness_h */
133 |
134 | /* vi: set ts=4 sw=4 expandtab: */
135 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_messagebox.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_messagebox_h_
23 | #define SDL_messagebox_h_
24 |
25 | #include "SDL_stdinc.h"
26 | #include "SDL_video.h" /* For SDL_Window */
27 |
28 | #include "begin_code.h"
29 | /* Set up for C function definitions, even when using C++ */
30 | #ifdef __cplusplus
31 | extern "C" {
32 | #endif
33 |
34 | /**
35 | * \brief SDL_MessageBox flags. If supported will display warning icon, etc.
36 | */
37 | typedef enum
38 | {
39 | SDL_MESSAGEBOX_ERROR = 0x00000010, /**< error dialog */
40 | SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */
41 | SDL_MESSAGEBOX_INFORMATION = 0x00000040 /**< informational dialog */
42 | } SDL_MessageBoxFlags;
43 |
44 | /**
45 | * \brief Flags for SDL_MessageBoxButtonData.
46 | */
47 | typedef enum
48 | {
49 | SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, /**< Marks the default button when return is hit */
50 | SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 /**< Marks the default button when escape is hit */
51 | } SDL_MessageBoxButtonFlags;
52 |
53 | /**
54 | * \brief Individual button data.
55 | */
56 | typedef struct
57 | {
58 | Uint32 flags; /**< ::SDL_MessageBoxButtonFlags */
59 | int buttonid; /**< User defined button id (value returned via SDL_ShowMessageBox) */
60 | const char * text; /**< The UTF-8 button text */
61 | } SDL_MessageBoxButtonData;
62 |
63 | /**
64 | * \brief RGB value used in a message box color scheme
65 | */
66 | typedef struct
67 | {
68 | Uint8 r, g, b;
69 | } SDL_MessageBoxColor;
70 |
71 | typedef enum
72 | {
73 | SDL_MESSAGEBOX_COLOR_BACKGROUND,
74 | SDL_MESSAGEBOX_COLOR_TEXT,
75 | SDL_MESSAGEBOX_COLOR_BUTTON_BORDER,
76 | SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND,
77 | SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED,
78 | SDL_MESSAGEBOX_COLOR_MAX
79 | } SDL_MessageBoxColorType;
80 |
81 | /**
82 | * \brief A set of colors to use for message box dialogs
83 | */
84 | typedef struct
85 | {
86 | SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX];
87 | } SDL_MessageBoxColorScheme;
88 |
89 | /**
90 | * \brief MessageBox structure containing title, text, window, etc.
91 | */
92 | typedef struct
93 | {
94 | Uint32 flags; /**< ::SDL_MessageBoxFlags */
95 | SDL_Window *window; /**< Parent window, can be NULL */
96 | const char *title; /**< UTF-8 title */
97 | const char *message; /**< UTF-8 message text */
98 |
99 | int numbuttons;
100 | const SDL_MessageBoxButtonData *buttons;
101 |
102 | const SDL_MessageBoxColorScheme *colorScheme; /**< ::SDL_MessageBoxColorScheme, can be NULL to use system settings */
103 | } SDL_MessageBoxData;
104 |
105 | /**
106 | * \brief Create a modal message box.
107 | *
108 | * \param messageboxdata The SDL_MessageBoxData structure with title, text, etc.
109 | * \param buttonid The pointer to which user id of hit button should be copied.
110 | *
111 | * \return -1 on error, otherwise 0 and buttonid contains user id of button
112 | * hit or -1 if dialog was closed.
113 | *
114 | * \note This function should be called on the thread that created the parent
115 | * window, or on the main thread if the messagebox has no parent. It will
116 | * block execution of that thread until the user clicks a button or
117 | * closes the messagebox.
118 | */
119 | extern DECLSPEC int SDLCALL SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid);
120 |
121 | /**
122 | * \brief Create a simple modal message box
123 | *
124 | * \param flags ::SDL_MessageBoxFlags
125 | * \param title UTF-8 title text
126 | * \param message UTF-8 message text
127 | * \param window The parent window, or NULL for no parent
128 | *
129 | * \return 0 on success, -1 on error
130 | *
131 | * \sa SDL_ShowMessageBox
132 | */
133 | extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window);
134 |
135 |
136 | /* Ends C function definitions when using C++ */
137 | #ifdef __cplusplus
138 | }
139 | #endif
140 | #include "close_code.h"
141 |
142 | #endif /* SDL_messagebox_h_ */
143 |
144 | /* vi: set ts=4 sw=4 expandtab: */
145 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_blendmode.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_blendmode.h
24 | *
25 | * Header file declaring the SDL_BlendMode enumeration
26 | */
27 |
28 | #ifndef SDL_blendmode_h_
29 | #define SDL_blendmode_h_
30 |
31 | #include "begin_code.h"
32 | /* Set up for C function definitions, even when using C++ */
33 | #ifdef __cplusplus
34 | extern "C" {
35 | #endif
36 |
37 | /**
38 | * \brief The blend mode used in SDL_RenderCopy() and drawing operations.
39 | */
40 | typedef enum
41 | {
42 | SDL_BLENDMODE_NONE = 0x00000000, /**< no blending
43 | dstRGBA = srcRGBA */
44 | SDL_BLENDMODE_BLEND = 0x00000001, /**< alpha blending
45 | dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA))
46 | dstA = srcA + (dstA * (1-srcA)) */
47 | SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending
48 | dstRGB = (srcRGB * srcA) + dstRGB
49 | dstA = dstA */
50 | SDL_BLENDMODE_MOD = 0x00000004, /**< color modulate
51 | dstRGB = srcRGB * dstRGB
52 | dstA = dstA */
53 | SDL_BLENDMODE_INVALID = 0x7FFFFFFF
54 |
55 | /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */
56 |
57 | } SDL_BlendMode;
58 |
59 | /**
60 | * \brief The blend operation used when combining source and destination pixel components
61 | */
62 | typedef enum
63 | {
64 | SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */
65 | SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */
66 | SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */
67 | SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D11 */
68 | SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D11 */
69 |
70 | } SDL_BlendOperation;
71 |
72 | /**
73 | * \brief The normalized factor used to multiply pixel components
74 | */
75 | typedef enum
76 | {
77 | SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */
78 | SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */
79 | SDL_BLENDFACTOR_SRC_COLOR = 0x3, /**< srcR, srcG, srcB, srcA */
80 | SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, /**< 1-srcR, 1-srcG, 1-srcB, 1-srcA */
81 | SDL_BLENDFACTOR_SRC_ALPHA = 0x5, /**< srcA, srcA, srcA, srcA */
82 | SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, /**< 1-srcA, 1-srcA, 1-srcA, 1-srcA */
83 | SDL_BLENDFACTOR_DST_COLOR = 0x7, /**< dstR, dstG, dstB, dstA */
84 | SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */
85 | SDL_BLENDFACTOR_DST_ALPHA = 0x9, /**< dstA, dstA, dstA, dstA */
86 | SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */
87 |
88 | } SDL_BlendFactor;
89 |
90 | /**
91 | * \brief Create a custom blend mode, which may or may not be supported by a given renderer
92 | *
93 | * \param srcColorFactor
94 | * \param dstColorFactor
95 | * \param colorOperation
96 | * \param srcAlphaFactor
97 | * \param dstAlphaFactor
98 | * \param alphaOperation
99 | *
100 | * The result of the blend mode operation will be:
101 | * dstRGB = dstRGB * dstColorFactor colorOperation srcRGB * srcColorFactor
102 | * and
103 | * dstA = dstA * dstAlphaFactor alphaOperation srcA * srcAlphaFactor
104 | */
105 | extern DECLSPEC SDL_BlendMode SDLCALL SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor,
106 | SDL_BlendFactor dstColorFactor,
107 | SDL_BlendOperation colorOperation,
108 | SDL_BlendFactor srcAlphaFactor,
109 | SDL_BlendFactor dstAlphaFactor,
110 | SDL_BlendOperation alphaOperation);
111 |
112 | /* Ends C function definitions when using C++ */
113 | #ifdef __cplusplus
114 | }
115 | #endif
116 | #include "close_code.h"
117 |
118 | #endif /* SDL_blendmode_h_ */
119 |
120 | /* vi: set ts=4 sw=4 expandtab: */
121 |
--------------------------------------------------------------------------------
/libs/SDL2/include/begin_code.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file begin_code.h
24 | *
25 | * This file sets things up for C dynamic library function definitions,
26 | * static inlined functions, and structures aligned at 4-byte alignment.
27 | * If you don't like ugly C preprocessor code, don't look at this file. :)
28 | */
29 |
30 | /* This shouldn't be nested -- included it around code only. */
31 | #ifdef _begin_code_h
32 | #error Nested inclusion of begin_code.h
33 | #endif
34 | #define _begin_code_h
35 |
36 | #ifndef SDL_DEPRECATED
37 | # if (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */
38 | # define SDL_DEPRECATED __attribute__((deprecated))
39 | # else
40 | # define SDL_DEPRECATED
41 | # endif
42 | #endif
43 |
44 | #ifndef SDL_UNUSED
45 | # ifdef __GNUC__
46 | # define SDL_UNUSED __attribute__((unused))
47 | # else
48 | # define SDL_UNUSED
49 | # endif
50 | #endif
51 |
52 | /* Some compilers use a special export keyword */
53 | #ifndef DECLSPEC
54 | # if defined(__WIN32__) || defined(__WINRT__)
55 | # ifdef __BORLANDC__
56 | # ifdef BUILD_SDL
57 | # define DECLSPEC
58 | # else
59 | # define DECLSPEC __declspec(dllimport)
60 | # endif
61 | # else
62 | # define DECLSPEC __declspec(dllexport)
63 | # endif
64 | # elif defined(__OS2__)
65 | # ifdef BUILD_SDL
66 | # define DECLSPEC __declspec(dllexport)
67 | # else
68 | # define DECLSPEC
69 | # endif
70 | # else
71 | # if defined(__GNUC__) && __GNUC__ >= 4
72 | # define DECLSPEC __attribute__ ((visibility("default")))
73 | # else
74 | # define DECLSPEC
75 | # endif
76 | # endif
77 | #endif
78 |
79 | /* By default SDL uses the C calling convention */
80 | #ifndef SDLCALL
81 | #if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__)
82 | #define SDLCALL __cdecl
83 | #elif defined(__OS2__) || defined(__EMX__)
84 | #define SDLCALL _System
85 | # if defined (__GNUC__) && !defined(_System)
86 | # define _System /* for old EMX/GCC compat. */
87 | # endif
88 | #else
89 | #define SDLCALL
90 | #endif
91 | #endif /* SDLCALL */
92 |
93 | /* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */
94 | #ifdef __SYMBIAN32__
95 | #undef DECLSPEC
96 | #define DECLSPEC
97 | #endif /* __SYMBIAN32__ */
98 |
99 | /* Force structure packing at 4 byte alignment.
100 | This is necessary if the header is included in code which has structure
101 | packing set to an alternate value, say for loading structures from disk.
102 | The packing is reset to the previous value in close_code.h
103 | */
104 | #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
105 | #ifdef _MSC_VER
106 | #pragma warning(disable: 4103)
107 | #endif
108 | #ifdef __BORLANDC__
109 | #pragma nopackwarning
110 | #endif
111 | #ifdef _M_X64
112 | /* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */
113 | #pragma pack(push,8)
114 | #else
115 | #pragma pack(push,4)
116 | #endif
117 | #endif /* Compiler needs structure packing set */
118 |
119 | #ifndef SDL_INLINE
120 | #if defined(__GNUC__)
121 | #define SDL_INLINE __inline__
122 | #elif defined(_MSC_VER) || defined(__BORLANDC__) || \
123 | defined(__DMC__) || defined(__SC__) || \
124 | defined(__WATCOMC__) || defined(__LCC__) || \
125 | defined(__DECC) || defined(__CC_ARM)
126 | #define SDL_INLINE __inline
127 | #ifndef __inline__
128 | #define __inline__ __inline
129 | #endif
130 | #else
131 | #define SDL_INLINE inline
132 | #ifndef __inline__
133 | #define __inline__ inline
134 | #endif
135 | #endif
136 | #endif /* SDL_INLINE not defined */
137 |
138 | #ifndef SDL_FORCE_INLINE
139 | #if defined(_MSC_VER)
140 | #define SDL_FORCE_INLINE __forceinline
141 | #elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )
142 | #define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__
143 | #else
144 | #define SDL_FORCE_INLINE static SDL_INLINE
145 | #endif
146 | #endif /* SDL_FORCE_INLINE not defined */
147 |
148 | #ifndef SDL_NORETURN
149 | #if defined(__GNUC__)
150 | #define SDL_NORETURN __attribute__((noreturn))
151 | #elif defined(_MSC_VER)
152 | #define SDL_NORETURN __declspec(noreturn)
153 | #else
154 | #define SDL_NORETURN
155 | #endif
156 | #endif /* SDL_NORETURN not defined */
157 |
158 | /* Apparently this is needed by several Windows compilers */
159 | #if !defined(__MACH__)
160 | #ifndef NULL
161 | #ifdef __cplusplus
162 | #define NULL 0
163 | #else
164 | #define NULL ((void *)0)
165 | #endif
166 | #endif /* NULL */
167 | #endif /* ! Mac OS X - breaks precompiled headers */
168 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_main.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_main_h_
23 | #define SDL_main_h_
24 |
25 | #include "SDL_stdinc.h"
26 |
27 | /**
28 | * \file SDL_main.h
29 | *
30 | * Redefine main() on some platforms so that it is called by SDL.
31 | */
32 |
33 | #ifndef SDL_MAIN_HANDLED
34 | #if defined(__WIN32__)
35 | /* On Windows SDL provides WinMain(), which parses the command line and passes
36 | the arguments to your main function.
37 |
38 | If you provide your own WinMain(), you may define SDL_MAIN_HANDLED
39 | */
40 | #define SDL_MAIN_AVAILABLE
41 |
42 | #elif defined(__WINRT__)
43 | /* On WinRT, SDL provides a main function that initializes CoreApplication,
44 | creating an instance of IFrameworkView in the process.
45 |
46 | Please note that #include'ing SDL_main.h is not enough to get a main()
47 | function working. In non-XAML apps, the file,
48 | src/main/winrt/SDL_WinRT_main_NonXAML.cpp, or a copy of it, must be compiled
49 | into the app itself. In XAML apps, the function, SDL_WinRTRunApp must be
50 | called, with a pointer to the Direct3D-hosted XAML control passed in.
51 | */
52 | #define SDL_MAIN_NEEDED
53 |
54 | #elif defined(__IPHONEOS__)
55 | /* On iOS SDL provides a main function that creates an application delegate
56 | and starts the iOS application run loop.
57 |
58 | See src/video/uikit/SDL_uikitappdelegate.m for more details.
59 | */
60 | #define SDL_MAIN_NEEDED
61 |
62 | #elif defined(__ANDROID__)
63 | /* On Android SDL provides a Java class in SDLActivity.java that is the
64 | main activity entry point.
65 |
66 | See docs/README-android.md for more details on extending that class.
67 | */
68 | #define SDL_MAIN_NEEDED
69 |
70 | /* We need to export SDL_main so it can be launched from Java */
71 | #define SDLMAIN_DECLSPEC DECLSPEC
72 |
73 | #elif defined(__NACL__)
74 | /* On NACL we use ppapi_simple to set up the application helper code,
75 | then wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before
76 | starting the user main function.
77 | All user code is run in a separate thread by ppapi_simple, thus
78 | allowing for blocking io to take place via nacl_io
79 | */
80 | #define SDL_MAIN_NEEDED
81 |
82 | #endif
83 | #endif /* SDL_MAIN_HANDLED */
84 |
85 | #ifdef __cplusplus
86 | #define C_LINKAGE "C"
87 | #else
88 | #define C_LINKAGE
89 | #endif /* __cplusplus */
90 |
91 | #ifndef SDLMAIN_DECLSPEC
92 | #define SDLMAIN_DECLSPEC
93 | #endif
94 |
95 | /**
96 | * \file SDL_main.h
97 | *
98 | * The application's main() function must be called with C linkage,
99 | * and should be declared like this:
100 | * \code
101 | * #ifdef __cplusplus
102 | * extern "C"
103 | * #endif
104 | * int main(int argc, char *argv[])
105 | * {
106 | * }
107 | * \endcode
108 | */
109 |
110 | #if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE)
111 | #define main SDL_main
112 | #endif
113 |
114 | /**
115 | * The prototype for the application's main() function
116 | */
117 | extern C_LINKAGE SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]);
118 |
119 |
120 | #include "begin_code.h"
121 | #ifdef __cplusplus
122 | extern "C" {
123 | #endif
124 |
125 | /**
126 | * This is called by the real SDL main function to let the rest of the
127 | * library know that initialization was done properly.
128 | *
129 | * Calling this yourself without knowing what you're doing can cause
130 | * crashes and hard to diagnose problems with your application.
131 | */
132 | extern DECLSPEC void SDLCALL SDL_SetMainReady(void);
133 |
134 | #ifdef __WIN32__
135 |
136 | /**
137 | * This can be called to set the application class at startup
138 | */
139 | extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style,
140 | void *hInst);
141 | extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
142 |
143 | #endif /* __WIN32__ */
144 |
145 |
146 | #ifdef __WINRT__
147 |
148 | /**
149 | * \brief Initializes and launches an SDL/WinRT application.
150 | *
151 | * \param mainFunction The SDL app's C-style main().
152 | * \param reserved Reserved for future use; should be NULL
153 | * \return 0 on success, -1 on failure. On failure, use SDL_GetError to retrieve more
154 | * information on the failure.
155 | */
156 | extern DECLSPEC int SDLCALL SDL_WinRTRunApp(int (*mainFunction)(int, char **), void * reserved);
157 |
158 | #endif /* __WINRT__ */
159 |
160 |
161 | #ifdef __cplusplus
162 | }
163 | #endif
164 | #include "close_code.h"
165 |
166 | #endif /* SDL_main_h_ */
167 |
168 | /* vi: set ts=4 sw=4 expandtab: */
169 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_cpuinfo.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_cpuinfo.h
24 | *
25 | * CPU feature detection for SDL.
26 | */
27 |
28 | #ifndef SDL_cpuinfo_h_
29 | #define SDL_cpuinfo_h_
30 |
31 | #include "SDL_stdinc.h"
32 |
33 | /* Need to do this here because intrin.h has C++ code in it */
34 | /* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
35 | #if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64))
36 | #ifdef __clang__
37 | /* Many of the intrinsics SDL uses are not implemented by clang with Visual Studio */
38 | #undef __MMX__
39 | #undef __SSE__
40 | #undef __SSE2__
41 | #else
42 | #include
43 | #ifndef _WIN64
44 | #define __MMX__
45 | #define __3dNOW__
46 | #endif
47 | #define __SSE__
48 | #define __SSE2__
49 | #endif /* __clang__ */
50 | #elif defined(__MINGW64_VERSION_MAJOR)
51 | #include
52 | #else
53 | #ifdef __ALTIVEC__
54 | #if HAVE_ALTIVEC_H && !defined(__APPLE_ALTIVEC__) && !defined(SDL_DISABLE_ALTIVEC_H)
55 | #include
56 | #undef pixel
57 | #undef bool
58 | #endif
59 | #endif
60 | #if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H)
61 | #include
62 | #endif
63 | #if HAVE_IMMINTRIN_H && !defined(SDL_DISABLE_IMMINTRIN_H)
64 | #include
65 | #else
66 | #if defined(__MMX__) && !defined(SDL_DISABLE_MMINTRIN_H)
67 | #include
68 | #endif
69 | #if defined(__SSE__) && !defined(SDL_DISABLE_XMMINTRIN_H)
70 | #include
71 | #endif
72 | #if defined(__SSE2__) && !defined(SDL_DISABLE_EMMINTRIN_H)
73 | #include
74 | #endif
75 | #if defined(__SSE3__) && !defined(SDL_DISABLE_PMMINTRIN_H)
76 | #include
77 | #endif
78 | #endif /* HAVE_IMMINTRIN_H */
79 | #endif /* compiler version */
80 |
81 | #include "begin_code.h"
82 | /* Set up for C function definitions, even when using C++ */
83 | #ifdef __cplusplus
84 | extern "C" {
85 | #endif
86 |
87 | /* This is a guess for the cacheline size used for padding.
88 | * Most x86 processors have a 64 byte cache line.
89 | * The 64-bit PowerPC processors have a 128 byte cache line.
90 | * We'll use the larger value to be generally safe.
91 | */
92 | #define SDL_CACHELINE_SIZE 128
93 |
94 | /**
95 | * This function returns the number of CPU cores available.
96 | */
97 | extern DECLSPEC int SDLCALL SDL_GetCPUCount(void);
98 |
99 | /**
100 | * This function returns the L1 cache line size of the CPU
101 | *
102 | * This is useful for determining multi-threaded structure padding
103 | * or SIMD prefetch sizes.
104 | */
105 | extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void);
106 |
107 | /**
108 | * This function returns true if the CPU has the RDTSC instruction.
109 | */
110 | extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void);
111 |
112 | /**
113 | * This function returns true if the CPU has AltiVec features.
114 | */
115 | extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void);
116 |
117 | /**
118 | * This function returns true if the CPU has MMX features.
119 | */
120 | extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void);
121 |
122 | /**
123 | * This function returns true if the CPU has 3DNow! features.
124 | */
125 | extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void);
126 |
127 | /**
128 | * This function returns true if the CPU has SSE features.
129 | */
130 | extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void);
131 |
132 | /**
133 | * This function returns true if the CPU has SSE2 features.
134 | */
135 | extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void);
136 |
137 | /**
138 | * This function returns true if the CPU has SSE3 features.
139 | */
140 | extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void);
141 |
142 | /**
143 | * This function returns true if the CPU has SSE4.1 features.
144 | */
145 | extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void);
146 |
147 | /**
148 | * This function returns true if the CPU has SSE4.2 features.
149 | */
150 | extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void);
151 |
152 | /**
153 | * This function returns true if the CPU has AVX features.
154 | */
155 | extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void);
156 |
157 | /**
158 | * This function returns true if the CPU has AVX2 features.
159 | */
160 | extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void);
161 |
162 | /**
163 | * This function returns true if the CPU has NEON (ARM SIMD) features.
164 | */
165 | extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void);
166 |
167 | /**
168 | * This function returns the amount of RAM configured in the system, in MB.
169 | */
170 | extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void);
171 |
172 |
173 | /* Ends C function definitions when using C++ */
174 | #ifdef __cplusplus
175 | }
176 | #endif
177 | #include "close_code.h"
178 |
179 | #endif /* SDL_cpuinfo_h_ */
180 |
181 | /* vi: set ts=4 sw=4 expandtab: */
182 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_test_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_test_common.h
24 | *
25 | * Include file for SDL test framework.
26 | *
27 | * This code is a part of the SDL2_test library, not the main SDL library.
28 | */
29 |
30 | /* Ported from original test\common.h file. */
31 |
32 | #ifndef SDL_test_common_h_
33 | #define SDL_test_common_h_
34 |
35 | #include "SDL.h"
36 |
37 | #if defined(__PSP__)
38 | #define DEFAULT_WINDOW_WIDTH 480
39 | #define DEFAULT_WINDOW_HEIGHT 272
40 | #else
41 | #define DEFAULT_WINDOW_WIDTH 640
42 | #define DEFAULT_WINDOW_HEIGHT 480
43 | #endif
44 |
45 | #define VERBOSE_VIDEO 0x00000001
46 | #define VERBOSE_MODES 0x00000002
47 | #define VERBOSE_RENDER 0x00000004
48 | #define VERBOSE_EVENT 0x00000008
49 | #define VERBOSE_AUDIO 0x00000010
50 |
51 | typedef struct
52 | {
53 | /* SDL init flags */
54 | char **argv;
55 | Uint32 flags;
56 | Uint32 verbose;
57 |
58 | /* Video info */
59 | const char *videodriver;
60 | int display;
61 | const char *window_title;
62 | const char *window_icon;
63 | Uint32 window_flags;
64 | int window_x;
65 | int window_y;
66 | int window_w;
67 | int window_h;
68 | int window_minW;
69 | int window_minH;
70 | int window_maxW;
71 | int window_maxH;
72 | int logical_w;
73 | int logical_h;
74 | float scale;
75 | int depth;
76 | int refresh_rate;
77 | int num_windows;
78 | SDL_Window **windows;
79 |
80 | /* Renderer info */
81 | const char *renderdriver;
82 | Uint32 render_flags;
83 | SDL_bool skip_renderer;
84 | SDL_Renderer **renderers;
85 | SDL_Texture **targets;
86 |
87 | /* Audio info */
88 | const char *audiodriver;
89 | SDL_AudioSpec audiospec;
90 |
91 | /* GL settings */
92 | int gl_red_size;
93 | int gl_green_size;
94 | int gl_blue_size;
95 | int gl_alpha_size;
96 | int gl_buffer_size;
97 | int gl_depth_size;
98 | int gl_stencil_size;
99 | int gl_double_buffer;
100 | int gl_accum_red_size;
101 | int gl_accum_green_size;
102 | int gl_accum_blue_size;
103 | int gl_accum_alpha_size;
104 | int gl_stereo;
105 | int gl_multisamplebuffers;
106 | int gl_multisamplesamples;
107 | int gl_retained_backing;
108 | int gl_accelerated;
109 | int gl_major_version;
110 | int gl_minor_version;
111 | int gl_debug;
112 | int gl_profile_mask;
113 | } SDLTest_CommonState;
114 |
115 | #include "begin_code.h"
116 | /* Set up for C function definitions, even when using C++ */
117 | #ifdef __cplusplus
118 | extern "C" {
119 | #endif
120 |
121 | /* Function prototypes */
122 |
123 | /**
124 | * \brief Parse command line parameters and create common state.
125 | *
126 | * \param argv Array of command line parameters
127 | * \param flags Flags indicating which subsystem to initialize (i.e. SDL_INIT_VIDEO | SDL_INIT_AUDIO)
128 | *
129 | * \returns Returns a newly allocated common state object.
130 | */
131 | SDLTest_CommonState *SDLTest_CommonCreateState(char **argv, Uint32 flags);
132 |
133 | /**
134 | * \brief Process one common argument.
135 | *
136 | * \param state The common state describing the test window to create.
137 | * \param index The index of the argument to process in argv[].
138 | *
139 | * \returns The number of arguments processed (i.e. 1 for --fullscreen, 2 for --video [videodriver], or -1 on error.
140 | */
141 | int SDLTest_CommonArg(SDLTest_CommonState * state, int index);
142 |
143 | /**
144 | * \brief Returns common usage information
145 | *
146 | * \param state The common state describing the test window to create.
147 | *
148 | * \returns String with usage information
149 | */
150 | const char *SDLTest_CommonUsage(SDLTest_CommonState * state);
151 |
152 | /**
153 | * \brief Open test window.
154 | *
155 | * \param state The common state describing the test window to create.
156 | *
157 | * \returns True if initialization succeeded, false otherwise
158 | */
159 | SDL_bool SDLTest_CommonInit(SDLTest_CommonState * state);
160 |
161 | /**
162 | * \brief Common event handler for test windows.
163 | *
164 | * \param state The common state used to create test window.
165 | * \param event The event to handle.
166 | * \param done Flag indicating we are done.
167 | *
168 | */
169 | void SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done);
170 |
171 | /**
172 | * \brief Close test window.
173 | *
174 | * \param state The common state used to create test window.
175 | *
176 | */
177 | void SDLTest_CommonQuit(SDLTest_CommonState * state);
178 |
179 |
180 | /* Ends C function definitions when using C++ */
181 | #ifdef __cplusplus
182 | }
183 | #endif
184 | #include "close_code.h"
185 |
186 | #endif /* SDL_test_common_h_ */
187 |
188 | /* vi: set ts=4 sw=4 expandtab: */
189 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_filesystem.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_filesystem.h
24 | *
25 | * \brief Include file for filesystem SDL API functions
26 | */
27 |
28 | #ifndef SDL_filesystem_h_
29 | #define SDL_filesystem_h_
30 |
31 | #include "SDL_stdinc.h"
32 |
33 | #include "begin_code.h"
34 |
35 | /* Set up for C function definitions, even when using C++ */
36 | #ifdef __cplusplus
37 | extern "C" {
38 | #endif
39 |
40 | /**
41 | * \brief Get the path where the application resides.
42 | *
43 | * Get the "base path". This is the directory where the application was run
44 | * from, which is probably the installation directory, and may or may not
45 | * be the process's current working directory.
46 | *
47 | * This returns an absolute path in UTF-8 encoding, and is guaranteed to
48 | * end with a path separator ('\\' on Windows, '/' most other places).
49 | *
50 | * The pointer returned by this function is owned by you. Please call
51 | * SDL_free() on the pointer when you are done with it, or it will be a
52 | * memory leak. This is not necessarily a fast call, though, so you should
53 | * call this once near startup and save the string if you need it.
54 | *
55 | * Some platforms can't determine the application's path, and on other
56 | * platforms, this might be meaningless. In such cases, this function will
57 | * return NULL.
58 | *
59 | * \return String of base dir in UTF-8 encoding, or NULL on error.
60 | *
61 | * \sa SDL_GetPrefPath
62 | */
63 | extern DECLSPEC char *SDLCALL SDL_GetBasePath(void);
64 |
65 | /**
66 | * \brief Get the user-and-app-specific path where files can be written.
67 | *
68 | * Get the "pref dir". This is meant to be where users can write personal
69 | * files (preferences and save games, etc) that are specific to your
70 | * application. This directory is unique per user, per application.
71 | *
72 | * This function will decide the appropriate location in the native filesystem,
73 | * create the directory if necessary, and return a string of the absolute
74 | * path to the directory in UTF-8 encoding.
75 | *
76 | * On Windows, the string might look like:
77 | * "C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\"
78 | *
79 | * On Linux, the string might look like:
80 | * "/home/bob/.local/share/My Program Name/"
81 | *
82 | * On Mac OS X, the string might look like:
83 | * "/Users/bob/Library/Application Support/My Program Name/"
84 | *
85 | * (etc.)
86 | *
87 | * You specify the name of your organization (if it's not a real organization,
88 | * your name or an Internet domain you own might do) and the name of your
89 | * application. These should be untranslated proper names.
90 | *
91 | * Both the org and app strings may become part of a directory name, so
92 | * please follow these rules:
93 | *
94 | * - Try to use the same org string (including case-sensitivity) for
95 | * all your applications that use this function.
96 | * - Always use a unique app string for each one, and make sure it never
97 | * changes for an app once you've decided on it.
98 | * - Unicode characters are legal, as long as it's UTF-8 encoded, but...
99 | * - ...only use letters, numbers, and spaces. Avoid punctuation like
100 | * "Game Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient.
101 | *
102 | * This returns an absolute path in UTF-8 encoding, and is guaranteed to
103 | * end with a path separator ('\\' on Windows, '/' most other places).
104 | *
105 | * The pointer returned by this function is owned by you. Please call
106 | * SDL_free() on the pointer when you are done with it, or it will be a
107 | * memory leak. This is not necessarily a fast call, though, so you should
108 | * call this once near startup and save the string if you need it.
109 | *
110 | * You should assume the path returned by this function is the only safe
111 | * place to write files (and that SDL_GetBasePath(), while it might be
112 | * writable, or even the parent of the returned path, aren't where you
113 | * should be writing things).
114 | *
115 | * Some platforms can't determine the pref path, and on other
116 | * platforms, this might be meaningless. In such cases, this function will
117 | * return NULL.
118 | *
119 | * \param org The name of your organization.
120 | * \param app The name of your application.
121 | * \return UTF-8 string of user dir in platform-dependent notation. NULL
122 | * if there's a problem (creating directory failed, etc).
123 | *
124 | * \sa SDL_GetBasePath
125 | */
126 | extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app);
127 |
128 | /* Ends C function definitions when using C++ */
129 | #ifdef __cplusplus
130 | }
131 | #endif
132 | #include "close_code.h"
133 |
134 | #endif /* SDL_filesystem_h_ */
135 |
136 | /* vi: set ts=4 sw=4 expandtab: */
137 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_version.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_version.h
24 | *
25 | * This header defines the current SDL version.
26 | */
27 |
28 | #ifndef SDL_version_h_
29 | #define SDL_version_h_
30 |
31 | #include "SDL_stdinc.h"
32 |
33 | #include "begin_code.h"
34 | /* Set up for C function definitions, even when using C++ */
35 | #ifdef __cplusplus
36 | extern "C" {
37 | #endif
38 |
39 | /**
40 | * \brief Information the version of SDL in use.
41 | *
42 | * Represents the library's version as three levels: major revision
43 | * (increments with massive changes, additions, and enhancements),
44 | * minor revision (increments with backwards-compatible changes to the
45 | * major revision), and patchlevel (increments with fixes to the minor
46 | * revision).
47 | *
48 | * \sa SDL_VERSION
49 | * \sa SDL_GetVersion
50 | */
51 | typedef struct SDL_version
52 | {
53 | Uint8 major; /**< major version */
54 | Uint8 minor; /**< minor version */
55 | Uint8 patch; /**< update version */
56 | } SDL_version;
57 |
58 | /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
59 | */
60 | #define SDL_MAJOR_VERSION 2
61 | #define SDL_MINOR_VERSION 0
62 | #define SDL_PATCHLEVEL 8
63 |
64 | /**
65 | * \brief Macro to determine SDL version program was compiled against.
66 | *
67 | * This macro fills in a SDL_version structure with the version of the
68 | * library you compiled against. This is determined by what header the
69 | * compiler uses. Note that if you dynamically linked the library, you might
70 | * have a slightly newer or older version at runtime. That version can be
71 | * determined with SDL_GetVersion(), which, unlike SDL_VERSION(),
72 | * is not a macro.
73 | *
74 | * \param x A pointer to a SDL_version struct to initialize.
75 | *
76 | * \sa SDL_version
77 | * \sa SDL_GetVersion
78 | */
79 | #define SDL_VERSION(x) \
80 | { \
81 | (x)->major = SDL_MAJOR_VERSION; \
82 | (x)->minor = SDL_MINOR_VERSION; \
83 | (x)->patch = SDL_PATCHLEVEL; \
84 | }
85 |
86 | /**
87 | * This macro turns the version numbers into a numeric value:
88 | * \verbatim
89 | (1,2,3) -> (1203)
90 | \endverbatim
91 | *
92 | * This assumes that there will never be more than 100 patchlevels.
93 | */
94 | #define SDL_VERSIONNUM(X, Y, Z) \
95 | ((X)*1000 + (Y)*100 + (Z))
96 |
97 | /**
98 | * This is the version number macro for the current SDL version.
99 | */
100 | #define SDL_COMPILEDVERSION \
101 | SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)
102 |
103 | /**
104 | * This macro will evaluate to true if compiled with SDL at least X.Y.Z.
105 | */
106 | #define SDL_VERSION_ATLEAST(X, Y, Z) \
107 | (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z))
108 |
109 | /**
110 | * \brief Get the version of SDL that is linked against your program.
111 | *
112 | * If you are linking to SDL dynamically, then it is possible that the
113 | * current version will be different than the version you compiled against.
114 | * This function returns the current version, while SDL_VERSION() is a
115 | * macro that tells you what version you compiled with.
116 | *
117 | * \code
118 | * SDL_version compiled;
119 | * SDL_version linked;
120 | *
121 | * SDL_VERSION(&compiled);
122 | * SDL_GetVersion(&linked);
123 | * printf("We compiled against SDL version %d.%d.%d ...\n",
124 | * compiled.major, compiled.minor, compiled.patch);
125 | * printf("But we linked against SDL version %d.%d.%d.\n",
126 | * linked.major, linked.minor, linked.patch);
127 | * \endcode
128 | *
129 | * This function may be called safely at any time, even before SDL_Init().
130 | *
131 | * \sa SDL_VERSION
132 | */
133 | extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver);
134 |
135 | /**
136 | * \brief Get the code revision of SDL that is linked against your program.
137 | *
138 | * Returns an arbitrary string (a hash value) uniquely identifying the
139 | * exact revision of the SDL library in use, and is only useful in comparing
140 | * against other revisions. It is NOT an incrementing number.
141 | */
142 | extern DECLSPEC const char *SDLCALL SDL_GetRevision(void);
143 |
144 | /**
145 | * \brief Get the revision number of SDL that is linked against your program.
146 | *
147 | * Returns a number uniquely identifying the exact revision of the SDL
148 | * library in use. It is an incrementing number based on commits to
149 | * hg.libsdl.org.
150 | */
151 | extern DECLSPEC int SDLCALL SDL_GetRevisionNumber(void);
152 |
153 |
154 | /* Ends C function definitions when using C++ */
155 | #ifdef __cplusplus
156 | }
157 | #endif
158 | #include "close_code.h"
159 |
160 | #endif /* SDL_version_h_ */
161 |
162 | /* vi: set ts=4 sw=4 expandtab: */
163 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_platform.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | /**
23 | * \file SDL_platform.h
24 | *
25 | * Try to get a standard set of platform defines.
26 | */
27 |
28 | #ifndef SDL_platform_h_
29 | #define SDL_platform_h_
30 |
31 | #if defined(_AIX)
32 | #undef __AIX__
33 | #define __AIX__ 1
34 | #endif
35 | #if defined(__HAIKU__)
36 | #undef __HAIKU__
37 | #define __HAIKU__ 1
38 | #endif
39 | #if defined(bsdi) || defined(__bsdi) || defined(__bsdi__)
40 | #undef __BSDI__
41 | #define __BSDI__ 1
42 | #endif
43 | #if defined(_arch_dreamcast)
44 | #undef __DREAMCAST__
45 | #define __DREAMCAST__ 1
46 | #endif
47 | #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
48 | #undef __FREEBSD__
49 | #define __FREEBSD__ 1
50 | #endif
51 | #if defined(hpux) || defined(__hpux) || defined(__hpux__)
52 | #undef __HPUX__
53 | #define __HPUX__ 1
54 | #endif
55 | #if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE)
56 | #undef __IRIX__
57 | #define __IRIX__ 1
58 | #endif
59 | #if (defined(linux) || defined(__linux) || defined(__linux__))
60 | #undef __LINUX__
61 | #define __LINUX__ 1
62 | #endif
63 | #if defined(ANDROID) || defined(__ANDROID__)
64 | #undef __ANDROID__
65 | #undef __LINUX__ /* do we need to do this? */
66 | #define __ANDROID__ 1
67 | #endif
68 |
69 | #if defined(__APPLE__)
70 | /* lets us know what version of Mac OS X we're compiling on */
71 | #include "AvailabilityMacros.h"
72 | #include "TargetConditionals.h"
73 | #if TARGET_OS_TV
74 | #undef __TVOS__
75 | #define __TVOS__ 1
76 | #endif
77 | #if TARGET_OS_IPHONE
78 | /* if compiling for iOS */
79 | #undef __IPHONEOS__
80 | #define __IPHONEOS__ 1
81 | #undef __MACOSX__
82 | #else
83 | /* if not compiling for iOS */
84 | #undef __MACOSX__
85 | #define __MACOSX__ 1
86 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
87 | # error SDL for Mac OS X only supports deploying on 10.6 and above.
88 | #endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */
89 | #endif /* TARGET_OS_IPHONE */
90 | #endif /* defined(__APPLE__) */
91 |
92 | #if defined(__NetBSD__)
93 | #undef __NETBSD__
94 | #define __NETBSD__ 1
95 | #endif
96 | #if defined(__OpenBSD__)
97 | #undef __OPENBSD__
98 | #define __OPENBSD__ 1
99 | #endif
100 | #if defined(__OS2__) || defined(__EMX__)
101 | #undef __OS2__
102 | #define __OS2__ 1
103 | #endif
104 | #if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE)
105 | #undef __OSF__
106 | #define __OSF__ 1
107 | #endif
108 | #if defined(__QNXNTO__)
109 | #undef __QNXNTO__
110 | #define __QNXNTO__ 1
111 | #endif
112 | #if defined(riscos) || defined(__riscos) || defined(__riscos__)
113 | #undef __RISCOS__
114 | #define __RISCOS__ 1
115 | #endif
116 | #if defined(__sun) && defined(__SVR4)
117 | #undef __SOLARIS__
118 | #define __SOLARIS__ 1
119 | #endif
120 |
121 | #if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
122 | /* Try to find out if we're compiling for WinRT or non-WinRT */
123 | #if defined(_MSC_VER) && defined(__has_include)
124 | #if __has_include()
125 | #define HAVE_WINAPIFAMILY_H 1
126 | #else
127 | #define HAVE_WINAPIFAMILY_H 0
128 | #endif
129 |
130 | /* If _USING_V110_SDK71_ is defined it means we are using the Windows XP toolset. */
131 | #elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_) /* _MSC_VER == 1700 for Visual Studio 2012 */
132 | #define HAVE_WINAPIFAMILY_H 1
133 | #else
134 | #define HAVE_WINAPIFAMILY_H 0
135 | #endif
136 |
137 | #if HAVE_WINAPIFAMILY_H
138 | #include
139 | #define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP))
140 | #else
141 | #define WINAPI_FAMILY_WINRT 0
142 | #endif /* HAVE_WINAPIFAMILY_H */
143 |
144 | #if WINAPI_FAMILY_WINRT
145 | #undef __WINRT__
146 | #define __WINRT__ 1
147 | #else
148 | #undef __WINDOWS__
149 | #define __WINDOWS__ 1
150 | #endif
151 | #endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */
152 |
153 | #if defined(__WINDOWS__)
154 | #undef __WIN32__
155 | #define __WIN32__ 1
156 | #endif
157 | #if defined(__PSP__)
158 | #undef __PSP__
159 | #define __PSP__ 1
160 | #endif
161 |
162 | /* The NACL compiler defines __native_client__ and __pnacl__
163 | * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi
164 | */
165 | #if defined(__native_client__)
166 | #undef __LINUX__
167 | #undef __NACL__
168 | #define __NACL__ 1
169 | #endif
170 | #if defined(__pnacl__)
171 | #undef __LINUX__
172 | #undef __PNACL__
173 | #define __PNACL__ 1
174 | /* PNACL with newlib supports static linking only */
175 | #define __SDL_NOGETPROCADDR__
176 | #endif
177 |
178 |
179 | #include "begin_code.h"
180 | /* Set up for C function definitions, even when using C++ */
181 | #ifdef __cplusplus
182 | extern "C" {
183 | #endif
184 |
185 | /**
186 | * \brief Gets the name of the platform.
187 | */
188 | extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void);
189 |
190 | /* Ends C function definitions when using C++ */
191 | #ifdef __cplusplus
192 | }
193 | #endif
194 | #include "close_code.h"
195 |
196 | #endif /* SDL_platform_h_ */
197 |
198 | /* vi: set ts=4 sw=4 expandtab: */
199 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_shape.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2018 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_shape_h_
23 | #define SDL_shape_h_
24 |
25 | #include "SDL_stdinc.h"
26 | #include "SDL_pixels.h"
27 | #include "SDL_rect.h"
28 | #include "SDL_surface.h"
29 | #include "SDL_video.h"
30 |
31 | #include "begin_code.h"
32 | /* Set up for C function definitions, even when using C++ */
33 | #ifdef __cplusplus
34 | extern "C" {
35 | #endif
36 |
37 | /** \file SDL_shape.h
38 | *
39 | * Header file for the shaped window API.
40 | */
41 |
42 | #define SDL_NONSHAPEABLE_WINDOW -1
43 | #define SDL_INVALID_SHAPE_ARGUMENT -2
44 | #define SDL_WINDOW_LACKS_SHAPE -3
45 |
46 | /**
47 | * \brief Create a window that can be shaped with the specified position, dimensions, and flags.
48 | *
49 | * \param title The title of the window, in UTF-8 encoding.
50 | * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or
51 | * ::SDL_WINDOWPOS_UNDEFINED.
52 | * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or
53 | * ::SDL_WINDOWPOS_UNDEFINED.
54 | * \param w The width of the window.
55 | * \param h The height of the window.
56 | * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following:
57 | * ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED,
58 | * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_RESIZABLE,
59 | * ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED,
60 | * ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset.
61 | *
62 | * \return The window created, or NULL if window creation failed.
63 | *
64 | * \sa SDL_DestroyWindow()
65 | */
66 | extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags);
67 |
68 | /**
69 | * \brief Return whether the given window is a shaped window.
70 | *
71 | * \param window The window to query for being shaped.
72 | *
73 | * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL.
74 | *
75 | * \sa SDL_CreateShapedWindow
76 | */
77 | extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window);
78 |
79 | /** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */
80 | typedef enum {
81 | /** \brief The default mode, a binarized alpha cutoff of 1. */
82 | ShapeModeDefault,
83 | /** \brief A binarized alpha cutoff with a given integer value. */
84 | ShapeModeBinarizeAlpha,
85 | /** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */
86 | ShapeModeReverseBinarizeAlpha,
87 | /** \brief A color key is applied. */
88 | ShapeModeColorKey
89 | } WindowShapeMode;
90 |
91 | #define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha)
92 |
93 | /** \brief A union containing parameters for shaped windows. */
94 | typedef union {
95 | /** \brief A cutoff alpha value for binarization of the window shape's alpha channel. */
96 | Uint8 binarizationCutoff;
97 | SDL_Color colorKey;
98 | } SDL_WindowShapeParams;
99 |
100 | /** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */
101 | typedef struct SDL_WindowShapeMode {
102 | /** \brief The mode of these window-shape parameters. */
103 | WindowShapeMode mode;
104 | /** \brief Window-shape parameters. */
105 | SDL_WindowShapeParams parameters;
106 | } SDL_WindowShapeMode;
107 |
108 | /**
109 | * \brief Set the shape and parameters of a shaped window.
110 | *
111 | * \param window The shaped window whose parameters should be set.
112 | * \param shape A surface encoding the desired shape for the window.
113 | * \param shape_mode The parameters to set for the shaped window.
114 | *
115 | * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW
116 | * if the SDL_Window given does not reference a valid shaped window.
117 | *
118 | * \sa SDL_WindowShapeMode
119 | * \sa SDL_GetShapedWindowMode.
120 | */
121 | extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode);
122 |
123 | /**
124 | * \brief Get the shape parameters of a shaped window.
125 | *
126 | * \param window The shaped window whose parameters should be retrieved.
127 | * \param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape.
128 | *
129 | * \return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode
130 | * data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if
131 | * the SDL_Window given is a shapeable window currently lacking a shape.
132 | *
133 | * \sa SDL_WindowShapeMode
134 | * \sa SDL_SetWindowShape
135 | */
136 | extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode);
137 |
138 | /* Ends C function definitions when using C++ */
139 | #ifdef __cplusplus
140 | }
141 | #endif
142 | #include "close_code.h"
143 |
144 | #endif /* SDL_shape_h_ */
145 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_macosx.h.orig:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_macosx_h_
23 | #define SDL_config_macosx_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 | /* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */
29 | #include
30 |
31 | /* This is a set of defines to configure the SDL features */
32 |
33 | #ifdef __LP64__
34 | #define SIZEOF_VOIDP 8
35 | #else
36 | #define SIZEOF_VOIDP 4
37 | #endif
38 |
39 | /* Useful headers */
40 | #define HAVE_ALLOCA_H 1
41 | #define HAVE_SYS_TYPES_H 1
42 | #define HAVE_STDIO_H 1
43 | #define STDC_HEADERS 1
44 | #define HAVE_STRING_H 1
45 | #define HAVE_INTTYPES_H 1
46 | #define HAVE_STDINT_H 1
47 | #define HAVE_CTYPE_H 1
48 | #define HAVE_MATH_H 1
49 | #define HAVE_SIGNAL_H 1
50 |
51 | /* C library functions */
52 | #define HAVE_MALLOC 1
53 | #define HAVE_CALLOC 1
54 | #define HAVE_REALLOC 1
55 | #define HAVE_FREE 1
56 | #define HAVE_ALLOCA 1
57 | #define HAVE_GETENV 1
58 | #define HAVE_SETENV 1
59 | #define HAVE_PUTENV 1
60 | #define HAVE_UNSETENV 1
61 | #define HAVE_QSORT 1
62 | #define HAVE_ABS 1
63 | #define HAVE_BCOPY 1
64 | #define HAVE_MEMSET 1
65 | #define HAVE_MEMCPY 1
66 | #define HAVE_MEMMOVE 1
67 | #define HAVE_MEMCMP 1
68 | #define HAVE_STRLEN 1
69 | #define HAVE_STRLCPY 1
70 | #define HAVE_STRLCAT 1
71 | #define HAVE_STRDUP 1
72 | #define HAVE_STRCHR 1
73 | #define HAVE_STRRCHR 1
74 | #define HAVE_STRSTR 1
75 | #define HAVE_STRTOL 1
76 | #define HAVE_STRTOUL 1
77 | #define HAVE_STRTOLL 1
78 | #define HAVE_STRTOULL 1
79 | #define HAVE_STRTOD 1
80 | #define HAVE_ATOI 1
81 | #define HAVE_ATOF 1
82 | #define HAVE_STRCMP 1
83 | #define HAVE_STRNCMP 1
84 | #define HAVE_STRCASECMP 1
85 | #define HAVE_STRNCASECMP 1
86 | #define HAVE_VSSCANF 1
87 | #define HAVE_VSNPRINTF 1
88 | #define HAVE_CEIL 1
89 | #define HAVE_COPYSIGN 1
90 | #define HAVE_COS 1
91 | #define HAVE_COSF 1
92 | #define HAVE_FABS 1
93 | #define HAVE_FLOOR 1
94 | #define HAVE_LOG 1
95 | #define HAVE_POW 1
96 | #define HAVE_SCALBN 1
97 | #define HAVE_SIN 1
98 | #define HAVE_SINF 1
99 | #define HAVE_SQRT 1
100 | #define HAVE_SQRTF 1
101 | #define HAVE_TAN 1
102 | #define HAVE_TANF 1
103 | #define HAVE_SIGACTION 1
104 | #define HAVE_SETJMP 1
105 | #define HAVE_NANOSLEEP 1
106 | #define HAVE_SYSCONF 1
107 | #define HAVE_SYSCTLBYNAME 1
108 | #define HAVE_ATAN 1
109 | #define HAVE_ATAN2 1
110 | #define HAVE_ACOS 1
111 | #define HAVE_ASIN 1
112 |
113 | /* Enable various audio drivers */
114 | #define SDL_AUDIO_DRIVER_COREAUDIO 1
115 | #define SDL_AUDIO_DRIVER_DISK 1
116 | #define SDL_AUDIO_DRIVER_DUMMY 1
117 |
118 | /* Enable various input drivers */
119 | #define SDL_JOYSTICK_IOKIT 1
120 | #define SDL_HAPTIC_IOKIT 1
121 |
122 | /* Enable various shared object loading systems */
123 | #define SDL_LOADSO_DLOPEN 1
124 |
125 | /* Enable various threading systems */
126 | #define SDL_THREAD_PTHREAD 1
127 | #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
128 |
129 | /* Enable various timer systems */
130 | #define SDL_TIMER_UNIX 1
131 |
132 | /* Enable various video drivers */
133 | #define SDL_VIDEO_DRIVER_COCOA 1
134 | #define SDL_VIDEO_DRIVER_DUMMY 1
135 | #undef SDL_VIDEO_DRIVER_X11
136 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib"
137 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib"
138 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib"
139 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib"
140 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib"
141 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib"
142 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib"
143 | #define SDL_VIDEO_DRIVER_X11_XDBE 1
144 | #define SDL_VIDEO_DRIVER_X11_XINERAMA 1
145 | #define SDL_VIDEO_DRIVER_X11_XRANDR 1
146 | #define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
147 | #define SDL_VIDEO_DRIVER_X11_XSHAPE 1
148 | #define SDL_VIDEO_DRIVER_X11_XVIDMODE 1
149 | #define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
150 |
151 | #ifdef MAC_OS_X_VERSION_10_8
152 | /*
153 | * No matter the versions targeted, this is the 10.8 or later SDK, so you have
154 | * to use the external Xquartz, which is a more modern Xlib. Previous SDKs
155 | * used an older Xlib.
156 | */
157 | #define SDL_VIDEO_DRIVER_X11_XINPUT2 1
158 | #define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1
159 | #define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1
160 | #endif
161 |
162 | #ifndef SDL_VIDEO_RENDER_OGL
163 | #define SDL_VIDEO_RENDER_OGL 1
164 | #endif
165 |
166 | /* Enable OpenGL support */
167 | #ifndef SDL_VIDEO_OPENGL
168 | #define SDL_VIDEO_OPENGL 1
169 | #endif
170 | #ifndef SDL_VIDEO_OPENGL_CGL
171 | #define SDL_VIDEO_OPENGL_CGL 1
172 | #endif
173 | #ifndef SDL_VIDEO_OPENGL_GLX
174 | #define SDL_VIDEO_OPENGL_GLX 1
175 | #endif
176 |
177 | /* Enable Vulkan support */
178 | /* Metal/MoltenVK/Vulkan only supported on 64-bit architectures and 10.11+ */
179 | #if TARGET_CPU_X86_64
180 | #define SDL_VIDEO_VULKAN 1
181 | #else
182 | #define SDL_VIDEO_VULKAN 0
183 | #endif
184 |
185 | /* Enable system power support */
186 | #define SDL_POWER_MACOSX 1
187 |
188 | /* enable filesystem support */
189 | #define SDL_FILESYSTEM_COCOA 1
190 |
191 | /* Enable assembly routines */
192 | #define SDL_ASSEMBLY_ROUTINES 1
193 | #ifdef __ppc__
194 | #define SDL_ALTIVEC_BLITTERS 1
195 | #endif
196 |
197 | #endif /* SDL_config_macosx_h_ */
198 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_macosx.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_macosx_h_
23 | #define SDL_config_macosx_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 | /* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */
29 | #include
30 |
31 | /* This is a set of defines to configure the SDL features */
32 |
33 | #ifdef __LP64__
34 | #define SIZEOF_VOIDP 8
35 | #else
36 | #define SIZEOF_VOIDP 4
37 | #endif
38 |
39 | /* Useful headers */
40 | #define HAVE_ALLOCA_H 1
41 | #define HAVE_SYS_TYPES_H 1
42 | #define HAVE_STDIO_H 1
43 | #define STDC_HEADERS 1
44 | #define HAVE_STRING_H 1
45 | #define HAVE_INTTYPES_H 1
46 | #define HAVE_STDINT_H 1
47 | #define HAVE_CTYPE_H 1
48 | #define HAVE_MATH_H 1
49 | #define HAVE_SIGNAL_H 1
50 |
51 | /* C library functions */
52 | #define HAVE_MALLOC 1
53 | #define HAVE_CALLOC 1
54 | #define HAVE_REALLOC 1
55 | #define HAVE_FREE 1
56 | #define HAVE_ALLOCA 1
57 | #define HAVE_GETENV 1
58 | #define HAVE_SETENV 1
59 | #define HAVE_PUTENV 1
60 | #define HAVE_UNSETENV 1
61 | #define HAVE_QSORT 1
62 | #define HAVE_ABS 1
63 | #define HAVE_BCOPY 1
64 | #define HAVE_MEMSET 1
65 | #define HAVE_MEMCPY 1
66 | #define HAVE_MEMMOVE 1
67 | #define HAVE_MEMCMP 1
68 | #define HAVE_STRLEN 1
69 | #define HAVE_STRLCPY 1
70 | #define HAVE_STRLCAT 1
71 | #define HAVE_STRDUP 1
72 | #define HAVE_STRCHR 1
73 | #define HAVE_STRRCHR 1
74 | #define HAVE_STRSTR 1
75 | #define HAVE_STRTOL 1
76 | #define HAVE_STRTOUL 1
77 | #define HAVE_STRTOLL 1
78 | #define HAVE_STRTOULL 1
79 | #define HAVE_STRTOD 1
80 | #define HAVE_ATOI 1
81 | #define HAVE_ATOF 1
82 | #define HAVE_STRCMP 1
83 | #define HAVE_STRNCMP 1
84 | #define HAVE_STRCASECMP 1
85 | #define HAVE_STRNCASECMP 1
86 | #define HAVE_VSSCANF 1
87 | #define HAVE_VSNPRINTF 1
88 | #define HAVE_CEIL 1
89 | #define HAVE_COPYSIGN 1
90 | #define HAVE_COS 1
91 | #define HAVE_COSF 1
92 | #define HAVE_FABS 1
93 | #define HAVE_FLOOR 1
94 | #define HAVE_LOG 1
95 | #define HAVE_POW 1
96 | #define HAVE_SCALBN 1
97 | #define HAVE_SIN 1
98 | #define HAVE_SINF 1
99 | #define HAVE_SQRT 1
100 | #define HAVE_SQRTF 1
101 | #define HAVE_TAN 1
102 | #define HAVE_TANF 1
103 | #define HAVE_SIGACTION 1
104 | #define HAVE_SETJMP 1
105 | #define HAVE_NANOSLEEP 1
106 | #define HAVE_SYSCONF 1
107 | #define HAVE_SYSCTLBYNAME 1
108 | #define HAVE_ATAN 1
109 | #define HAVE_ATAN2 1
110 | #define HAVE_ACOS 1
111 | #define HAVE_ASIN 1
112 |
113 | /* Enable various audio drivers */
114 | #define SDL_AUDIO_DRIVER_COREAUDIO 1
115 | #define SDL_AUDIO_DRIVER_DISK 1
116 | #define SDL_AUDIO_DRIVER_DUMMY 1
117 |
118 | /* Enable various input drivers */
119 | #define SDL_JOYSTICK_IOKIT 1
120 | #define SDL_HAPTIC_IOKIT 1
121 |
122 | /* Enable various shared object loading systems */
123 | #define SDL_LOADSO_DLOPEN 1
124 |
125 | /* Enable various threading systems */
126 | #define SDL_THREAD_PTHREAD 1
127 | #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
128 |
129 | /* Enable various timer systems */
130 | #define SDL_TIMER_UNIX 1
131 |
132 | /* Enable various video drivers */
133 | #define SDL_VIDEO_DRIVER_COCOA 1
134 | #define SDL_VIDEO_DRIVER_DUMMY 1
135 | #undef SDL_VIDEO_DRIVER_X11
136 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib"
137 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib"
138 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib"
139 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib"
140 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib"
141 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib"
142 | #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib"
143 | #define SDL_VIDEO_DRIVER_X11_XDBE 1
144 | #define SDL_VIDEO_DRIVER_X11_XINERAMA 1
145 | #define SDL_VIDEO_DRIVER_X11_XRANDR 1
146 | #define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
147 | #define SDL_VIDEO_DRIVER_X11_XSHAPE 1
148 | #define SDL_VIDEO_DRIVER_X11_XVIDMODE 1
149 | #define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
150 |
151 | #ifdef MAC_OS_X_VERSION_10_8
152 | /*
153 | * No matter the versions targeted, this is the 10.8 or later SDK, so you have
154 | * to use the external Xquartz, which is a more modern Xlib. Previous SDKs
155 | * used an older Xlib.
156 | */
157 | #define SDL_VIDEO_DRIVER_X11_XINPUT2 1
158 | #define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1
159 | #define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1
160 | #endif
161 |
162 | #ifndef SDL_VIDEO_RENDER_OGL
163 | #define SDL_VIDEO_RENDER_OGL 1
164 | #endif
165 |
166 | /* Enable OpenGL support */
167 | #ifndef SDL_VIDEO_OPENGL
168 | #define SDL_VIDEO_OPENGL 1
169 | #endif
170 | #ifndef SDL_VIDEO_OPENGL_CGL
171 | #define SDL_VIDEO_OPENGL_CGL 1
172 | #endif
173 | #ifndef SDL_VIDEO_OPENGL_GLX
174 | #define SDL_VIDEO_OPENGL_GLX 1
175 | #endif
176 |
177 | /* Enable Vulkan support */
178 | /* Metal/MoltenVK/Vulkan only supported on 64-bit architectures with 10.11+ */
179 | #if TARGET_CPU_X86_64 && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101100)
180 | #define SDL_VIDEO_VULKAN 1
181 | #else
182 | #define SDL_VIDEO_VULKAN 0
183 | #endif
184 |
185 | /* Enable system power support */
186 | #define SDL_POWER_MACOSX 1
187 |
188 | /* enable filesystem support */
189 | #define SDL_FILESYSTEM_COCOA 1
190 |
191 | /* Enable assembly routines */
192 | #define SDL_ASSEMBLY_ROUTINES 1
193 | #ifdef __ppc__
194 | #define SDL_ALTIVEC_BLITTERS 1
195 | #endif
196 |
197 | #endif /* SDL_config_macosx_h_ */
198 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_windows.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_windows_h_
23 | #define SDL_config_windows_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 | /* This is a set of defines to configure the SDL features */
29 |
30 | #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H)
31 | #if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__)
32 | #define HAVE_STDINT_H 1
33 | #elif defined(_MSC_VER)
34 | typedef signed __int8 int8_t;
35 | typedef unsigned __int8 uint8_t;
36 | typedef signed __int16 int16_t;
37 | typedef unsigned __int16 uint16_t;
38 | typedef signed __int32 int32_t;
39 | typedef unsigned __int32 uint32_t;
40 | typedef signed __int64 int64_t;
41 | typedef unsigned __int64 uint64_t;
42 | #ifndef _UINTPTR_T_DEFINED
43 | #ifdef _WIN64
44 | typedef unsigned __int64 uintptr_t;
45 | #else
46 | typedef unsigned int uintptr_t;
47 | #endif
48 | #define _UINTPTR_T_DEFINED
49 | #endif
50 | /* Older Visual C++ headers don't have the Win64-compatible typedefs... */
51 | #if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR)))
52 | #define DWORD_PTR DWORD
53 | #endif
54 | #if ((_MSC_VER <= 1200) && (!defined(LONG_PTR)))
55 | #define LONG_PTR LONG
56 | #endif
57 | #else /* !__GNUC__ && !_MSC_VER */
58 | typedef signed char int8_t;
59 | typedef unsigned char uint8_t;
60 | typedef signed short int16_t;
61 | typedef unsigned short uint16_t;
62 | typedef signed int int32_t;
63 | typedef unsigned int uint32_t;
64 | typedef signed long long int64_t;
65 | typedef unsigned long long uint64_t;
66 | #ifndef _SIZE_T_DEFINED_
67 | #define _SIZE_T_DEFINED_
68 | typedef unsigned int size_t;
69 | #endif
70 | typedef unsigned int uintptr_t;
71 | #endif /* __GNUC__ || _MSC_VER */
72 | #endif /* !_STDINT_H_ && !HAVE_STDINT_H */
73 |
74 | #ifdef _WIN64
75 | # define SIZEOF_VOIDP 8
76 | #else
77 | # define SIZEOF_VOIDP 4
78 | #endif
79 |
80 | #define HAVE_DDRAW_H 1
81 | #define HAVE_DINPUT_H 1
82 | #define HAVE_DSOUND_H 1
83 | #define HAVE_DXGI_H 1
84 | #define HAVE_XINPUT_H 1
85 |
86 | /* This is disabled by default to avoid C runtime dependencies and manifest requirements */
87 | #ifdef HAVE_LIBC
88 | /* Useful headers */
89 | #define HAVE_STDIO_H 1
90 | #define STDC_HEADERS 1
91 | #define HAVE_STRING_H 1
92 | #define HAVE_CTYPE_H 1
93 | #define HAVE_MATH_H 1
94 | #define HAVE_SIGNAL_H 1
95 |
96 | /* C library functions */
97 | #define HAVE_MALLOC 1
98 | #define HAVE_CALLOC 1
99 | #define HAVE_REALLOC 1
100 | #define HAVE_FREE 1
101 | #define HAVE_ALLOCA 1
102 | #define HAVE_QSORT 1
103 | #define HAVE_ABS 1
104 | #define HAVE_MEMSET 1
105 | #define HAVE_MEMCPY 1
106 | #define HAVE_MEMMOVE 1
107 | #define HAVE_MEMCMP 1
108 | #define HAVE_STRLEN 1
109 | #define HAVE__STRREV 1
110 | #define HAVE__STRUPR 1
111 | #define HAVE__STRLWR 1
112 | #define HAVE_STRCHR 1
113 | #define HAVE_STRRCHR 1
114 | #define HAVE_STRSTR 1
115 | #define HAVE__LTOA 1
116 | #define HAVE__ULTOA 1
117 | #define HAVE_STRTOL 1
118 | #define HAVE_STRTOUL 1
119 | #define HAVE_STRTOD 1
120 | #define HAVE_ATOI 1
121 | #define HAVE_ATOF 1
122 | #define HAVE_STRCMP 1
123 | #define HAVE_STRNCMP 1
124 | #define HAVE__STRICMP 1
125 | #define HAVE__STRNICMP 1
126 | #define HAVE_ATAN 1
127 | #define HAVE_ATAN2 1
128 | #define HAVE_ACOS 1
129 | #define HAVE_ASIN 1
130 | #define HAVE_CEIL 1
131 | #define HAVE_COS 1
132 | #define HAVE_COSF 1
133 | #define HAVE_FABS 1
134 | #define HAVE_FLOOR 1
135 | #define HAVE_LOG 1
136 | #define HAVE_POW 1
137 | #define HAVE_SIN 1
138 | #define HAVE_SINF 1
139 | #define HAVE_SQRT 1
140 | #define HAVE_SQRTF 1
141 | #define HAVE_TAN 1
142 | #define HAVE_TANF 1
143 | #if _MSC_VER >= 1800
144 | #define HAVE_STRTOLL 1
145 | #define HAVE_VSSCANF 1
146 | #define HAVE_COPYSIGN 1
147 | #define HAVE_SCALBN 1
148 | #endif
149 | #if !defined(_MSC_VER) || defined(_USE_MATH_DEFINES)
150 | #define HAVE_M_PI 1
151 | #endif
152 | #else
153 | #define HAVE_STDARG_H 1
154 | #define HAVE_STDDEF_H 1
155 | #endif
156 |
157 | /* Enable various audio drivers */
158 | #define SDL_AUDIO_DRIVER_WASAPI 1
159 | #define SDL_AUDIO_DRIVER_DSOUND 1
160 | #define SDL_AUDIO_DRIVER_XAUDIO2 0
161 | #define SDL_AUDIO_DRIVER_WINMM 1
162 | #define SDL_AUDIO_DRIVER_DISK 1
163 | #define SDL_AUDIO_DRIVER_DUMMY 1
164 |
165 | /* Enable various input drivers */
166 | #define SDL_JOYSTICK_DINPUT 1
167 | #define SDL_JOYSTICK_XINPUT 1
168 | #define SDL_HAPTIC_DINPUT 1
169 | #define SDL_HAPTIC_XINPUT 1
170 |
171 | /* Enable various shared object loading systems */
172 | #define SDL_LOADSO_WINDOWS 1
173 |
174 | /* Enable various threading systems */
175 | #define SDL_THREAD_WINDOWS 1
176 |
177 | /* Enable various timer systems */
178 | #define SDL_TIMER_WINDOWS 1
179 |
180 | /* Enable various video drivers */
181 | #define SDL_VIDEO_DRIVER_DUMMY 1
182 | #define SDL_VIDEO_DRIVER_WINDOWS 1
183 |
184 | #ifndef SDL_VIDEO_RENDER_D3D
185 | #define SDL_VIDEO_RENDER_D3D 1
186 | #endif
187 | #ifndef SDL_VIDEO_RENDER_D3D11
188 | #define SDL_VIDEO_RENDER_D3D11 0
189 | #endif
190 |
191 | /* Enable OpenGL support */
192 | #ifndef SDL_VIDEO_OPENGL
193 | #define SDL_VIDEO_OPENGL 1
194 | #endif
195 | #ifndef SDL_VIDEO_OPENGL_WGL
196 | #define SDL_VIDEO_OPENGL_WGL 1
197 | #endif
198 | #ifndef SDL_VIDEO_RENDER_OGL
199 | #define SDL_VIDEO_RENDER_OGL 1
200 | #endif
201 | #ifndef SDL_VIDEO_RENDER_OGL_ES2
202 | #define SDL_VIDEO_RENDER_OGL_ES2 1
203 | #endif
204 | #ifndef SDL_VIDEO_OPENGL_ES2
205 | #define SDL_VIDEO_OPENGL_ES2 1
206 | #endif
207 | #ifndef SDL_VIDEO_OPENGL_EGL
208 | #define SDL_VIDEO_OPENGL_EGL 1
209 | #endif
210 |
211 | /* Enable Vulkan support */
212 | #define SDL_VIDEO_VULKAN 1
213 |
214 | /* Enable system power support */
215 | #define SDL_POWER_WINDOWS 1
216 |
217 | /* Enable filesystem support */
218 | #define SDL_FILESYSTEM_WINDOWS 1
219 |
220 | /* Enable assembly routines (Win64 doesn't have inline asm) */
221 | #ifndef _WIN64
222 | #define SDL_ASSEMBLY_ROUTINES 1
223 | #endif
224 |
225 | #endif /* SDL_config_windows_h_ */
226 |
--------------------------------------------------------------------------------
/libs/SDL2/include/SDL_config_winrt.h:
--------------------------------------------------------------------------------
1 | /*
2 | Simple DirectMedia Layer
3 | Copyright (C) 1997-2017 Sam Lantinga
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any damages
7 | arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any purpose,
10 | including commercial applications, and to alter it and redistribute it
11 | freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must not
14 | claim that you wrote the original software. If you use this software
15 | in a product, an acknowledgment in the product documentation would be
16 | appreciated but is not required.
17 | 2. Altered source versions must be plainly marked as such, and must not be
18 | misrepresented as being the original software.
19 | 3. This notice may not be removed or altered from any source distribution.
20 | */
21 |
22 | #ifndef SDL_config_winrt_h_
23 | #define SDL_config_winrt_h_
24 | #define SDL_config_h_
25 |
26 | #include "SDL_platform.h"
27 |
28 | /* Make sure the Windows SDK's NTDDI_VERSION macro gets defined. This is used
29 | by SDL to determine which version of the Windows SDK is being used.
30 | */
31 | #include
32 |
33 | /* Define possibly-undefined NTDDI values (used when compiling SDL against
34 | older versions of the Windows SDK.
35 | */
36 | #ifndef NTDDI_WINBLUE
37 | #define NTDDI_WINBLUE 0x06030000
38 | #endif
39 | #ifndef NTDDI_WIN10
40 | #define NTDDI_WIN10 0x0A000000
41 | #endif
42 |
43 | /* This is a set of defines to configure the SDL features */
44 |
45 | #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H)
46 | #if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__)
47 | #define HAVE_STDINT_H 1
48 | #elif defined(_MSC_VER)
49 | typedef signed __int8 int8_t;
50 | typedef unsigned __int8 uint8_t;
51 | typedef signed __int16 int16_t;
52 | typedef unsigned __int16 uint16_t;
53 | typedef signed __int32 int32_t;
54 | typedef unsigned __int32 uint32_t;
55 | typedef signed __int64 int64_t;
56 | typedef unsigned __int64 uint64_t;
57 | #ifndef _UINTPTR_T_DEFINED
58 | #ifdef _WIN64
59 | typedef unsigned __int64 uintptr_t;
60 | #else
61 | typedef unsigned int uintptr_t;
62 | #endif
63 | #define _UINTPTR_T_DEFINED
64 | #endif
65 | /* Older Visual C++ headers don't have the Win64-compatible typedefs... */
66 | #if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR)))
67 | #define DWORD_PTR DWORD
68 | #endif
69 | #if ((_MSC_VER <= 1200) && (!defined(LONG_PTR)))
70 | #define LONG_PTR LONG
71 | #endif
72 | #else /* !__GNUC__ && !_MSC_VER */
73 | typedef signed char int8_t;
74 | typedef unsigned char uint8_t;
75 | typedef signed short int16_t;
76 | typedef unsigned short uint16_t;
77 | typedef signed int int32_t;
78 | typedef unsigned int uint32_t;
79 | typedef signed long long int64_t;
80 | typedef unsigned long long uint64_t;
81 | #ifndef _SIZE_T_DEFINED_
82 | #define _SIZE_T_DEFINED_
83 | typedef unsigned int size_t;
84 | #endif
85 | typedef unsigned int uintptr_t;
86 | #endif /* __GNUC__ || _MSC_VER */
87 | #endif /* !_STDINT_H_ && !HAVE_STDINT_H */
88 |
89 | #ifdef _WIN64
90 | # define SIZEOF_VOIDP 8
91 | #else
92 | # define SIZEOF_VOIDP 4
93 | #endif
94 |
95 | /* Useful headers */
96 | #define HAVE_DXGI_H 1
97 | #if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
98 | #define HAVE_XINPUT_H 1
99 | #endif
100 | #define HAVE_LIBC 1
101 | #define HAVE_STDIO_H 1
102 | #define STDC_HEADERS 1
103 | #define HAVE_STRING_H 1
104 | #define HAVE_CTYPE_H 1
105 | #define HAVE_MATH_H 1
106 | #define HAVE_FLOAT_H 1
107 | #define HAVE_SIGNAL_H 1
108 |
109 | /* C library functions */
110 | #define HAVE_MALLOC 1
111 | #define HAVE_CALLOC 1
112 | #define HAVE_REALLOC 1
113 | #define HAVE_FREE 1
114 | #define HAVE_ALLOCA 1
115 | #define HAVE_QSORT 1
116 | #define HAVE_ABS 1
117 | #define HAVE_MEMSET 1
118 | #define HAVE_MEMCPY 1
119 | #define HAVE_MEMMOVE 1
120 | #define HAVE_MEMCMP 1
121 | #define HAVE_STRLEN 1
122 | #define HAVE__STRREV 1
123 | #define HAVE__STRUPR 1
124 | //#define HAVE__STRLWR 1 // TODO, WinRT: consider using _strlwr_s instead
125 | #define HAVE_STRCHR 1
126 | #define HAVE_STRRCHR 1
127 | #define HAVE_STRSTR 1
128 | //#define HAVE_ITOA 1 // TODO, WinRT: consider using _itoa_s instead
129 | //#define HAVE__LTOA 1 // TODO, WinRT: consider using _ltoa_s instead
130 | //#define HAVE__ULTOA 1 // TODO, WinRT: consider using _ultoa_s instead
131 | #define HAVE_STRTOL 1
132 | #define HAVE_STRTOUL 1
133 | //#define HAVE_STRTOLL 1
134 | #define HAVE_STRTOD 1
135 | #define HAVE_ATOI 1
136 | #define HAVE_ATOF 1
137 | #define HAVE_STRCMP 1
138 | #define HAVE_STRNCMP 1
139 | #define HAVE__STRICMP 1
140 | #define HAVE__STRNICMP 1
141 | #define HAVE_VSNPRINTF 1
142 | //#define HAVE_SSCANF 1 // TODO, WinRT: consider using sscanf_s instead
143 | #define HAVE_M_PI 1
144 | #define HAVE_ATAN 1
145 | #define HAVE_ATAN2 1
146 | #define HAVE_CEIL 1
147 | #define HAVE__COPYSIGN 1
148 | #define HAVE_COS 1
149 | #define HAVE_COSF 1
150 | #define HAVE_FABS 1
151 | #define HAVE_FLOOR 1
152 | #define HAVE_LOG 1
153 | #define HAVE_POW 1
154 | //#define HAVE_SCALBN 1
155 | #define HAVE__SCALB 1
156 | #define HAVE_SIN 1
157 | #define HAVE_SINF 1
158 | #define HAVE_SQRT 1
159 | #define HAVE_SQRTF 1
160 | #define HAVE_TAN 1
161 | #define HAVE_TANF 1
162 | #define HAVE__FSEEKI64 1
163 |
164 | /* Enable various audio drivers */
165 | #define SDL_AUDIO_DRIVER_XAUDIO2 1
166 | #define SDL_AUDIO_DRIVER_DISK 1
167 | #define SDL_AUDIO_DRIVER_DUMMY 1
168 |
169 | /* Enable various input drivers */
170 | #if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
171 | #define SDL_JOYSTICK_DISABLED 1
172 | #define SDL_HAPTIC_DISABLED 1
173 | #else
174 | #define SDL_JOYSTICK_XINPUT 1
175 | #define SDL_HAPTIC_XINPUT 1
176 | #endif
177 |
178 | /* Enable various shared object loading systems */
179 | #define SDL_LOADSO_WINDOWS 1
180 |
181 | /* Enable various threading systems */
182 | #if (NTDDI_VERSION >= NTDDI_WINBLUE)
183 | #define SDL_THREAD_WINDOWS 1
184 | #else
185 | /* WinRT on Windows 8.0 and Windows Phone 8.0 don't support CreateThread() */
186 | #define SDL_THREAD_STDCPP 1
187 | #endif
188 |
189 | /* Enable various timer systems */
190 | #define SDL_TIMER_WINDOWS 1
191 |
192 | /* Enable various video drivers */
193 | #define SDL_VIDEO_DRIVER_WINRT 1
194 | #define SDL_VIDEO_DRIVER_DUMMY 1
195 |
196 | /* Enable OpenGL ES 2.0 (via a modified ANGLE library) */
197 | #define SDL_VIDEO_OPENGL_ES2 1
198 | #define SDL_VIDEO_OPENGL_EGL 1
199 |
200 | /* Enable appropriate renderer(s) */
201 | #define SDL_VIDEO_RENDER_D3D11 1
202 |
203 | #if SDL_VIDEO_OPENGL_ES2
204 | #define SDL_VIDEO_RENDER_OGL_ES2 1
205 | #endif
206 |
207 | /* Enable system power support */
208 | #define SDL_POWER_WINRT 1
209 |
210 | /* Enable assembly routines (Win64 doesn't have inline asm) */
211 | #ifndef _WIN64
212 | #define SDL_ASSEMBLY_ROUTINES 1
213 | #endif
214 |
215 | #endif /* SDL_config_winrt_h_ */
216 |
--------------------------------------------------------------------------------
/makefiles/vs2013/fontgen.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | debug
6 | x64
7 |
8 |
9 | release
10 | x64
11 |
12 |
13 |
14 | {165768BA-8236-E755-8B4E-722CF7AC4DB7}
15 | true
16 | Win32Proj
17 | fontgen
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v120
25 |
26 |
27 | Application
28 | false
29 | Unicode
30 | v120
31 | true
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 | bin\x64\debug\
46 | obj\x64\debug\fontgen\
47 | fontgen
48 | .exe
49 | false
50 |
51 |
52 | false
53 | bin\x64\release\
54 | obj\x64\release\fontgen\
55 | fontgen
56 | .exe
57 | false
58 |
59 |
60 |
61 | NotUsing
62 | Level4
63 | DEBUG;_DEBUG;_CRT_SECURE_NO_WARNINGS;WIN32;_WIN32;%(PreprocessorDefinitions)
64 | ..\..\..\code\generator;%(AdditionalIncludeDirectories)
65 | ProgramDatabase
66 | Disabled
67 | MultiThreadedDebug
68 | false
69 | false
70 | /Gm %(AdditionalOptions)
71 |
72 |
73 | Console
74 | true
75 | mainCRTStartup
76 | %(AdditionalOptions)
77 |
78 |
79 | copy "bin\x64\debug\fontgen.exe" "$(SLUGGISH_APP_DIR)"
80 | copy "bin\x64\debug\fontgen.pdb" "$(SLUGGISH_APP_DIR)"
81 |
82 |
83 |
84 |
85 | NotUsing
86 | Level4
87 | Default
88 | NDEBUG;_CRT_SECURE_NO_WARNINGS;WIN32;_WIN32;%(PreprocessorDefinitions)
89 | ..\..\..\code\generator;%(AdditionalIncludeDirectories)
90 | ProgramDatabase
91 | MinSpace
92 | true
93 | true
94 | false
95 | true
96 | true
97 | MultiThreaded
98 | false
99 | false
100 | Fast
101 | true
102 | /GL %(AdditionalOptions)
103 |
104 |
105 | Console
106 | true
107 | true
108 | true
109 | mainCRTStartup
110 | /OPT:REF /OPT:ICF %(AdditionalOptions)
111 |
112 |
113 | copy "bin\x64\release\fontgen.exe" "$(SLUGGISH_APP_DIR)"
114 | copy "bin\x64\release\fontgen.pdb" "$(SLUGGISH_APP_DIR)"
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------