Simple and Fast Multimedia Library
Documentation for SFML 2.6.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-2023 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 6
34
#define SFML_VERSION_PATCH 2
35
36
38
// Identify the operating system
39
// see https://sourceforge.net/p/predef/wiki/Home/
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
#elif defined(__OpenBSD__)
90
91
// OpenBSD
92
#define SFML_SYSTEM_OPENBSD
93
94
#elif defined(__NetBSD__)
95
96
// NetBSD
97
#define SFML_SYSTEM_NETBSD
98
99
#else
100
101
// Unsupported UNIX system
102
#error This UNIX operating system is not supported by SFML library
103
104
#endif
105
106
#else
107
108
// Unsupported system
109
#error This operating system is not supported by SFML library
110
111
#endif
112
113
115
// Define a portable debug macro
117
#if !defined(NDEBUG)
118
119
#define SFML_DEBUG
120
121
#endif
122
123
125
// Define helpers to create portable import / export macros for each module
127
#if !defined(SFML_STATIC)
128
129
#if defined(SFML_SYSTEM_WINDOWS)
130
131
// Windows compilers need specific (and different) keywords for export and import
132
#define SFML_API_EXPORT __declspec(dllexport)
133
#define SFML_API_IMPORT __declspec(dllimport)
134
135
// For Visual C++ compilers, we also need to turn off this annoying C4251 warning
136
#ifdef _MSC_VER
137
138
#pragma warning(disable: 4251)
139
140
#endif
141
142
#else
// Linux, FreeBSD, Mac OS X
143
144
#if __GNUC__ >= 4
145
146
// GCC 4 has special keywords for showing/hidding symbols,
147
// the same keyword is used for both importing and exporting
148
#define SFML_API_EXPORT __attribute__ ((__visibility__ ("default")))
149
#define SFML_API_IMPORT __attribute__ ((__visibility__ ("default")))
150
151
#else
152
153
// GCC < 4 has no mechanism to explicitely hide symbols, everything's exported
154
#define SFML_API_EXPORT
155
#define SFML_API_IMPORT
156
157
#endif
158
159
#endif
160
161
#else
162
163
// Static build doesn't need import/export macros
164
#define SFML_API_EXPORT
165
#define SFML_API_IMPORT
166
167
#endif
168
169
171
// Cross-platform warning for deprecated functions and classes
172
//
173
// Usage:
174
// class SFML_DEPRECATED MyClass
175
// {
176
// SFML_DEPRECATED void memberFunc();
177
// };
178
//
179
// SFML_DEPRECATED void globalFunc();
181
#if defined(SFML_NO_DEPRECATED_WARNINGS)
182
183
// User explicitly requests to disable deprecation warnings
184
#define SFML_DEPRECATED
185
186
#elif defined(_MSC_VER)
187
188
// Microsoft C++ compiler
189
// Note: On newer MSVC versions, using deprecated functions causes a compiler error. In order to
190
// trigger a warning instead of an error, the compiler flag /sdl- (instead of /sdl) must be specified.
191
#define SFML_DEPRECATED __declspec(deprecated)
192
193
#elif defined(__GNUC__)
194
195
// g++ and Clang
196
#define SFML_DEPRECATED __attribute__ ((deprecated))
197
198
#else
199
200
// Other compilers are not supported, leave class or function as-is.
201
// With a bit of luck, the #pragma directive works, otherwise users get a warning (no error!) for unrecognized #pragma.
202
#pragma message("SFML_DEPRECATED is not supported for your compiler, please contact the SFML team")
203
#define SFML_DEPRECATED
204
205
#endif
206
207
209
// Define portable fixed-size types
211
namespace
sf
212
{
213
// All "common" platforms use the same size for char, short and int
214
// (basically there are 3 types for 3 sizes, so no other match is possible),
215
// we can use them without doing any kind of check
216
217
// 8 bits integer types
218
typedef
signed
char
Int8
;
219
typedef
unsigned
char
Uint8
;
220
221
// 16 bits integer types
222
typedef
signed
short
Int16
;
223
typedef
unsigned
short
Uint16
;
224
225
// 32 bits integer types
226
typedef
signed
int
Int32
;
227
typedef
unsigned
int
Uint32
;
228
229
// 64 bits integer types
230
#if defined(_MSC_VER)
231
typedef
signed
__int64
Int64
;
232
typedef
unsigned
__int64
Uint64
;
233
#else
234
#if defined(__clang__)
235
#pragma clang diagnostic push
236
#pragma clang diagnostic ignored "-Wc++11-long-long"
237
#endif
238
typedef
signed
long
long
Int64
;
239
typedef
unsigned
long
long
Uint64
;
240
#if defined(__clang__)
241
#pragma clang diagnostic pop
242
#endif
243
#endif
244
245
}
// namespace sf
246
247
248
#endif
// SFML_CONFIG_HPP
sf
Definition
AlResource.hpp:35
sf::Int64
signed long long Int64
Definition
Config.hpp:238
sf::Uint16
unsigned short Uint16
Definition
Config.hpp:223
sf::Int16
signed short Int16
Definition
Config.hpp:222
sf::Uint8
unsigned char Uint8
Definition
Config.hpp:219
sf::Int8
signed char Int8
Definition
Config.hpp:218
sf::Uint32
unsigned int Uint32
Definition
Config.hpp:227
sf::Int32
signed int Int32
Definition
Config.hpp:226
sf::Uint64
unsigned long long Uint64
Definition
Config.hpp:239
Back to top