Simple and Fast Multimedia Library
Documentation for SFML 2.1
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
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-2013 Laurent Gomila (laurent.gom@gmail.com)
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 1
34
35
37
// Identify the operating system
39
#if defined(_WIN32) || defined(__WIN32__)
40
41
// Windows
42
#define SFML_SYSTEM_WINDOWS
43
#ifndef NOMINMAX
44
#define NOMINMAX
45
#endif
46
47
#elif defined(linux) || defined(__linux)
48
49
// Linux
50
#define SFML_SYSTEM_LINUX
51
52
#elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)
53
54
// MacOS
55
#define SFML_SYSTEM_MACOS
56
57
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
58
59
// FreeBSD
60
#define SFML_SYSTEM_FREEBSD
61
62
#else
63
64
// Unsupported system
65
#error This operating system is not supported by SFML library
66
67
#endif
68
69
71
// Define a portable debug macro
73
#if !defined(NDEBUG)
74
75
#define SFML_DEBUG
76
77
#endif
78
79
81
// Define helpers to create portable import / export macros for each module
83
#if !defined(SFML_STATIC)
84
85
#if defined(SFML_SYSTEM_WINDOWS)
86
87
// Windows compilers need specific (and different) keywords for export and import
88
#define SFML_API_EXPORT __declspec(dllexport)
89
#define SFML_API_IMPORT __declspec(dllimport)
90
91
// For Visual C++ compilers, we also need to turn off this annoying C4251 warning
92
#ifdef _MSC_VER
93
94
#pragma warning(disable : 4251)
95
96
#endif
97
98
#else
// Linux, FreeBSD, Mac OS X
99
100
#if __GNUC__ >= 4
101
102
// GCC 4 has special keywords for showing/hidding symbols,
103
// the same keyword is used for both importing and exporting
104
#define SFML_API_EXPORT __attribute__ ((__visibility__ ("default")))
105
#define SFML_API_IMPORT __attribute__ ((__visibility__ ("default")))
106
107
#else
108
109
// GCC < 4 has no mechanism to explicitely hide symbols, everything's exported
110
#define SFML_API_EXPORT
111
#define SFML_API_IMPORT
112
113
#endif
114
115
#endif
116
117
#else
118
119
// Static build doesn't need import/export macros
120
#define SFML_API_EXPORT
121
#define SFML_API_IMPORT
122
123
#endif
124
125
127
// Define portable fixed-size types
129
namespace
sf
130
{
131
// All "common" platforms use the same size for char, short and int
132
// (basically there are 3 types for 3 sizes, so no other match is possible),
133
// we can use them without doing any kind of check
134
135
// 8 bits integer types
136
typedef
signed
char
Int8
;
137
typedef
unsigned
char
Uint8
;
138
139
// 16 bits integer types
140
typedef
signed
short
Int16
;
141
typedef
unsigned
short
Uint16
;
142
143
// 32 bits integer types
144
typedef
signed
int
Int32
;
145
typedef
unsigned
int
Uint32
;
146
147
// 64 bits integer types
148
#if defined(_MSC_VER)
149
typedef
signed
__int64
Int64
;
150
typedef
unsigned
__int64
Uint64
;
151
#else
152
typedef
signed
long
long
Int64
;
153
typedef
unsigned
long
long
Uint64
;
154
#endif
155
156
}
// namespace sf
157
158
159
#endif
// SFML_CONFIG_HPP
sf
Definition
Listener.hpp:36
sf::Int64
signed long long Int64
Definition
Config.hpp:152
sf::Uint16
unsigned short Uint16
Definition
Config.hpp:141
sf::Int16
signed short Int16
Definition
Config.hpp:140
sf::Uint8
unsigned char Uint8
Definition
Config.hpp:137
sf::Int8
signed char Int8
Definition
Config.hpp:136
sf::Uint32
unsigned int Uint32
Definition
Config.hpp:145
sf::Int32
signed int Int32
Definition
Config.hpp:144
sf::Uint64
unsigned long long Uint64
Definition
Config.hpp:153
Back to top