Simple and Fast Multimedia Library
Documentation for SFML 2.4.2
Initializing search
SFML
Home
Learn
Tutorials
Documentation
Download
Community
Development
Donate
Simple and Fast Multimedia Library
Home
Learn
Tutorials
Documentation
Documentation
SFML 3.1.0
SFML 3.0.2
SFML 3.0.1
SFML 3.0.0
SFML 2.6.2
SFML 2.6.1
SFML 2.6.0
SFML 2.5.1
SFML 2.5.0
SFML 2.4.2
SFML 2.4.1
SFML 2.4.0
SFML 2.3.2
SFML 2.3.1
SFML 2.3
SFML 2.2
SFML 2.1
SFML 2.0
SFML 1.6
Download
Community
Development
Warning
This page refers to an old version of SFML.
Click here to switch to the latest version.
Main Page
Related Pages
Topics
Namespaces
Classes
Files
File List
File Members
Loading...
Searching...
No Matches
SFML
include
SFML
Config.hpp
Go to the documentation of this file.
1
2
//
3
// SFML - Simple and Fast Multimedia Library
4
// Copyright (C) 2007-2017 Laurent Gomila (laurent@sfml-dev.org)
5
//
6
// This software is provided 'as-is', without any express or implied warranty.
7
// In no event will the authors be held liable for any damages 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 freely,
11
// subject to the following restrictions:
12
//
13
// 1. The origin of this software must not be misrepresented;
14
// you must not claim that you wrote the original software.
15
// If you use this software in a product, an acknowledgment
16
// in the product documentation would be appreciated but is not required.
17
//
18
// 2. Altered source versions must be plainly marked as such,
19
// and must not be misrepresented as being the original software.
20
//
21
// 3. This notice may not be removed or altered from any source distribution.
22
//
24
25
#ifndef SFML_CONFIG_HPP
26
#define SFML_CONFIG_HPP
27
28
30
// Define the SFML version
32
#define SFML_VERSION_MAJOR 2
33
#define SFML_VERSION_MINOR 4
34
#define SFML_VERSION_PATCH 2
35
36
38
// Identify the operating system
39
// see http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system
41
#if defined(_WIN32)
42
43
// Windows
44
#define SFML_SYSTEM_WINDOWS
45
#ifndef NOMINMAX
46
#define NOMINMAX
47
#endif
48
49
#elif defined(__APPLE__) && defined(__MACH__)
50
51
// Apple platform, see which one it is
52
#include "TargetConditionals.h"
53
54
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
55
56
// iOS
57
#define SFML_SYSTEM_IOS
58
59
#elif TARGET_OS_MAC
60
61
// MacOS
62
#define SFML_SYSTEM_MACOS
63
64
#else
65
66
// Unsupported Apple system
67
#error This Apple operating system is not supported by SFML library
68
69
#endif
70
71
#elif defined(__unix__)
72
73
// UNIX system, see which one it is
74
#if defined(__ANDROID__)
75
76
// Android
77
#define SFML_SYSTEM_ANDROID
78
79
#elif defined(__linux__)
80
81
// Linux
82
#define SFML_SYSTEM_LINUX
83
84
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
85
86
// FreeBSD
87
#define SFML_SYSTEM_FREEBSD
88
89
#else
90
91
// Unsupported UNIX system
92
#error This UNIX operating system is not supported by SFML library
93
94
#endif
95
96
#else
97
98
// Unsupported system
99
#error This operating system is not supported by SFML library
100
101
#endif
102
103
105
// Define a portable debug macro
107
#if !defined(NDEBUG)
108
109
#define SFML_DEBUG
110
111
#endif
112
113
115
// Define helpers to create portable import / export macros for each module
117
#if !defined(SFML_STATIC)
118
119
#if defined(SFML_SYSTEM_WINDOWS)
120
121
// Windows compilers need specific (and different) keywords for export and import
122
#define SFML_API_EXPORT __declspec(dllexport)
123
#define SFML_API_IMPORT __declspec(dllimport)
124
125
// For Visual C++ compilers, we also need to turn off this annoying C4251 warning
126
#ifdef _MSC_VER
127
128
#pragma warning(disable: 4251)
129
130
#endif
131
132
#else
// Linux, FreeBSD, Mac OS X
133
134
#if __GNUC__ >= 4
135
136
// GCC 4 has special keywords for showing/hidding symbols,
137
// the same keyword is used for both importing and exporting
138
#define SFML_API_EXPORT __attribute__ ((__visibility__ ("default")))
139
#define SFML_API_IMPORT __attribute__ ((__visibility__ ("default")))
140
141
#else
142
143
// GCC < 4 has no mechanism to explicitely hide symbols, everything's exported
144
#define SFML_API_EXPORT
145
#define SFML_API_IMPORT
146
147
#endif
148
149
#endif
150
151
#else
152
153
// Static build doesn't need import/export macros
154
#define SFML_API_EXPORT
155
#define SFML_API_IMPORT
156
157
#endif
158
159
161
// Cross-platform warning for deprecated functions and classes
162
//
163
// Usage:
164
// class SFML_DEPRECATED MyClass
165
// {
166
// SFML_DEPRECATED void memberFunc();
167
// };
168
//
169
// SFML_DEPRECATED void globalFunc();
171
#if defined(SFML_NO_DEPRECATED_WARNINGS)
172
173
// User explicitly requests to disable deprecation warnings
174
#define SFML_DEPRECATED
175
176
#elif defined(_MSC_VER)
177
178
// Microsoft C++ compiler
179
// Note: On newer MSVC versions, using deprecated functions causes a compiler error. In order to
180
// trigger a warning instead of an error, the compiler flag /sdl- (instead of /sdl) must be specified.
181
#define SFML_DEPRECATED __declspec(deprecated)
182
183
#elif defined(__GNUC__)
184
185
// g++ and Clang
186
#define SFML_DEPRECATED __attribute__ ((deprecated))
187
188
#else
189
190
// Other compilers are not supported, leave class or function as-is.
191
// With a bit of luck, the #pragma directive works, otherwise users get a warning (no error!) for unrecognized #pragma.
192
#pragma message("SFML_DEPRECATED is not supported for your compiler, please contact the SFML team")
193
#define SFML_DEPRECATED
194
195
#endif
196
197
199
// Define portable fixed-size types
201
namespace
sf
202
{
203
// All "common" platforms use the same size for char, short and int
204
// (basically there are 3 types for 3 sizes, so no other match is possible),
205
// we can use them without doing any kind of check
206
207
// 8 bits integer types
208
typedef
signed
char
Int8
;
209
typedef
unsigned
char
Uint8
;
210
211
// 16 bits integer types
212
typedef
signed
short
Int16
;
213
typedef
unsigned
short
Uint16
;
214
215
// 32 bits integer types
216
typedef
signed
int
Int32
;
217
typedef
unsigned
int
Uint32
;
218
219
// 64 bits integer types
220
#if defined(_MSC_VER)
221
typedef
signed
__int64
Int64
;
222
typedef
unsigned
__int64
Uint64
;
223
#else
224
typedef
signed
long
long
Int64
;
225
typedef
unsigned
long
long
Uint64
;
226
#endif
227
228
}
// namespace sf
229
230
231
#endif
// SFML_CONFIG_HPP
sf
Definition
AlResource.hpp:35
sf::Int64
signed long long Int64
Definition
Config.hpp:224
sf::Uint16
unsigned short Uint16
Definition
Config.hpp:213
sf::Int16
signed short Int16
Definition
Config.hpp:212
sf::Uint8
unsigned char Uint8
Definition
Config.hpp:209
sf::Int8
signed char Int8
Definition
Config.hpp:208
sf::Uint32
unsigned int Uint32
Definition
Config.hpp:217
sf::Int32
signed int Int32
Definition
Config.hpp:216
sf::Uint64
unsigned long long Uint64
Definition
Config.hpp:225
Back to top