summaryrefslogtreecommitdiff
path: root/doc/html/Config_8hpp-source.htm
blob: 3ac3cff9ea2899aa70b3be3f8d1a6f6e245059cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>SFML - Simple and Fast Multimedia Library</title>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="tabs.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div id="logo">
            <img src="./logo.jpg" width="770" height="200" title="SFML home" alt="SFML logo" />
        </div>
<!-- Generated by Doxygen 1.5.2 -->
<div class="tabs">
  <ul>
    <li><a href="index.htm"><span>Main&nbsp;Page</span></a></li>
    <li><a href="namespaces.htm"><span>Namespaces</span></a></li>
    <li><a href="classes.htm"><span>Classes</span></a></li>
    <li class="current"><a href="files.htm"><span>Files</span></a></li>
  </ul>
</div>
<h1>Config.hpp</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">//</span>
<a name="l00003"></a>00003 <span class="comment">// SFML - Simple and Fast Multimedia Library</span>
<a name="l00004"></a>00004 <span class="comment">// Copyright (C) 2007 Laurent Gomila (laurent.gom@gmail.com)</span>
<a name="l00005"></a>00005 <span class="comment">//</span>
<a name="l00006"></a>00006 <span class="comment">// This software is provided 'as-is', without any express or implied warranty.</span>
<a name="l00007"></a>00007 <span class="comment">// In no event will the authors be held liable for any damages arising from the use of this software.</span>
<a name="l00008"></a>00008 <span class="comment">//</span>
<a name="l00009"></a>00009 <span class="comment">// Permission is granted to anyone to use this software for any purpose,</span>
<a name="l00010"></a>00010 <span class="comment">// including commercial applications, and to alter it and redistribute it freely,</span>
<a name="l00011"></a>00011 <span class="comment">// subject to the following restrictions:</span>
<a name="l00012"></a>00012 <span class="comment">//</span>
<a name="l00013"></a>00013 <span class="comment">// 1. The origin of this software must not be misrepresented;</span>
<a name="l00014"></a>00014 <span class="comment">//    you must not claim that you wrote the original software.</span>
<a name="l00015"></a>00015 <span class="comment">//    If you use this software in a product, an acknowledgment</span>
<a name="l00016"></a>00016 <span class="comment">//    in the product documentation would be appreciated but is not required.</span>
<a name="l00017"></a>00017 <span class="comment">//</span>
<a name="l00018"></a>00018 <span class="comment">// 2. Altered source versions must be plainly marked as such,</span>
<a name="l00019"></a>00019 <span class="comment">//    and must not be misrepresented as being the original software.</span>
<a name="l00020"></a>00020 <span class="comment">//</span>
<a name="l00021"></a>00021 <span class="comment">// 3. This notice may not be removed or altered from any source distribution.</span>
<a name="l00022"></a>00022 <span class="comment">//</span>
<a name="l00024"></a>00024 <span class="comment"></span>
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef SFML_CONFIG_HPP</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define SFML_CONFIG_HPP</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span>
<a name="l00029"></a>00029 <span class="comment">// Identify the operating system</span>
<a name="l00031"></a>00031 <span class="comment"></span><span class="preprocessor">#if defined(_WIN32) || defined(__WIN32__)</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033     <span class="comment">// Windows</span>
<a name="l00034"></a>00034 <span class="preprocessor">    #define SFML_SYSTEM_WINDOWS</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">    #ifndef WIN32_LEAN_AND_MEAN</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">        #define WIN32_LEAN_AND_MEAN</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">    #ifndef NOMINMAX</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">        #define NOMINMAX</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span>
<a name="l00042"></a>00042 <span class="preprocessor">#elif defined(linux) || defined(__linux)</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00044"></a>00044     <span class="comment">// Linux</span>
<a name="l00045"></a>00045 <span class="preprocessor">    #define SFML_SYSTEM_LINUX</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00047"></a>00047 <span class="preprocessor">#elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span>
<a name="l00049"></a>00049     <span class="comment">// MacOS</span>
<a name="l00050"></a>00050 <span class="preprocessor">    #define SFML_SYSTEM_MACOS</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span>
<a name="l00052"></a>00052 <span class="preprocessor">#else</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span>
<a name="l00054"></a>00054     <span class="comment">// Unsupported system</span>
<a name="l00055"></a>00055 <span class="preprocessor">    #error This operating system is not supported by SFML library</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span>
<a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a>00059 
<a name="l00061"></a>00061 <span class="comment">// Define a portable debug macro</span>
<a name="l00063"></a>00063 <span class="comment"></span><span class="preprocessor">#if !defined(NDEBUG)</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span>
<a name="l00065"></a>00065 <span class="preprocessor">    #define SFML_DEBUG</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span>
<a name="l00067"></a>00067 <span class="preprocessor">#endif</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span>
<a name="l00069"></a>00069 
<a name="l00071"></a>00071 <span class="comment">// Define portable import / export macros</span>
<a name="l00073"></a>00073 <span class="comment"></span><span class="preprocessor">#if defined(SFML_SYSTEM_WINDOWS)</span>
<a name="l00074"></a>00074 <span class="preprocessor"></span>
<a name="l00075"></a>00075 <span class="preprocessor">    #ifdef SFML_DYNAMIC</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span>
<a name="l00077"></a>00077         <span class="comment">// Windows platforms</span>
<a name="l00078"></a>00078 <span class="preprocessor">        #ifdef SFML_EXPORTS</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00080"></a>00080             <span class="comment">// From DLL side, we must export</span>
<a name="l00081"></a>00081 <span class="preprocessor">            #define SFML_API __declspec(dllexport)</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span>
<a name="l00083"></a>00083 <span class="preprocessor">        #else</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>
<a name="l00085"></a>00085             <span class="comment">// From client application side, we must import</span>
<a name="l00086"></a>00086 <span class="preprocessor">            #define SFML_API __declspec(dllimport)</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>
<a name="l00088"></a>00088 <span class="preprocessor">        #endif</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span>
<a name="l00090"></a>00090         <span class="comment">// For Visual C++ compilers, we also need to turn off this annoying C4251 warning.</span>
<a name="l00091"></a>00091         <span class="comment">// You can read lots ot different things about it, but the point is the code will</span>
<a name="l00092"></a>00092         <span class="comment">// just work fine, and so the simplest way to get rid of this warning is to disable it</span>
<a name="l00093"></a>00093 <span class="preprocessor">        #ifdef _MSC_VER</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span>
<a name="l00095"></a>00095 <span class="preprocessor">            #pragma warning(disable : 4251)</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span>
<a name="l00097"></a>00097 <span class="preprocessor">        #endif</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span>
<a name="l00099"></a>00099 <span class="preprocessor">    #else</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span>
<a name="l00101"></a>00101         <span class="comment">// No specific directive needed for static build</span>
<a name="l00102"></a>00102 <span class="preprocessor">        #define SFML_API</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span>
<a name="l00104"></a>00104 <span class="preprocessor">    #endif</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span>
<a name="l00106"></a>00106 <span class="preprocessor">#else</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span>
<a name="l00108"></a>00108     <span class="comment">// Other platforms don't need to define anything</span>
<a name="l00109"></a>00109 <span class="preprocessor">    #define SFML_API</span>
<a name="l00110"></a>00110 <span class="preprocessor"></span>
<a name="l00111"></a>00111 <span class="preprocessor">#endif</span>
<a name="l00112"></a>00112 <span class="preprocessor"></span>
<a name="l00113"></a>00113 
<a name="l00115"></a>00115 <span class="comment">// Define portable fixed-size types</span>
<a name="l00117"></a>00117 <span class="comment"></span><span class="preprocessor">#include &lt;climits&gt;</span>
<a name="l00118"></a>00118 
<a name="l00119"></a>00119 <span class="keyword">namespace </span>sf
<a name="l00120"></a>00120 {
<a name="l00121"></a>00121     <span class="comment">// 8 bits integer types</span>
<a name="l00122"></a>00122 <span class="preprocessor">    #if UCHAR_MAX == 0xFF</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span>   <span class="keywordtype">char</span> Int8;
<a name="l00124"></a>00124         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Uint8;
<a name="l00125"></a>00125 <span class="preprocessor">    #else</span>
<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">        #error No 8 bits integer type for this platform</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
<a name="l00128"></a>00128 <span class="preprocessor"></span>
<a name="l00129"></a>00129     <span class="comment">// 16 bits integer types</span>
<a name="l00130"></a>00130 <span class="preprocessor">    #if USHRT_MAX == 0xFFFF</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span>   <span class="keywordtype">short</span> Int16;
<a name="l00132"></a>00132         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> Uint16;
<a name="l00133"></a>00133 <span class="preprocessor">    #elif UINT_MAX == 0xFFFF</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span>   <span class="keywordtype">int</span> Int16;
<a name="l00135"></a>00135         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Uint16;
<a name="l00136"></a>00136 <span class="preprocessor">    #elif ULONG_MAX == 0xFFFF</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span>   <span class="keywordtype">long</span> Int16;
<a name="l00138"></a>00138         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> Uint16;
<a name="l00139"></a>00139 <span class="preprocessor">    #else</span>
<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor">        #error No 16 bits integer type for this platform</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
<a name="l00142"></a>00142 <span class="preprocessor"></span>
<a name="l00143"></a>00143     <span class="comment">// 32 bits integer types</span>
<a name="l00144"></a>00144 <span class="preprocessor">    #if USHRT_MAX == 0xFFFFFFFF</span>
<a name="l00145"></a>00145 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span>   <span class="keywordtype">short</span> Int32;
<a name="l00146"></a>00146         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> Uint32;
<a name="l00147"></a>00147 <span class="preprocessor">    #elif UINT_MAX == 0xFFFFFFFF</span>
<a name="l00148"></a>00148 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span>   <span class="keywordtype">int</span> Int32;
<a name="l00149"></a>00149         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Uint32;
<a name="l00150"></a>00150 <span class="preprocessor">    #elif ULONG_MAX == 0xFFFFFFFF</span>
<a name="l00151"></a>00151 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span>   <span class="keywordtype">long</span> Int32;
<a name="l00152"></a>00152         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> Uint32;
<a name="l00153"></a>00153 <span class="preprocessor">    #else</span>
<a name="l00154"></a>00154 <span class="preprocessor"></span><span class="preprocessor">        #error No 32 bits integer type for this platform</span>
<a name="l00155"></a>00155 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
<a name="l00156"></a>00156 <span class="preprocessor"></span>
<a name="l00157"></a>00157 } <span class="comment">// namespace sf</span>
<a name="l00158"></a>00158 
<a name="l00159"></a>00159 
<a name="l00160"></a>00160 <span class="preprocessor">#endif // SFML_CONFIG_HPP</span>
</pre></div>
        <p id="footer">
            &nbsp;::&nbsp; Copyright &copy; 2007-2008 Laurent Gomila, all rights reserved &nbsp;::&nbsp;
            Documentation generated by <a href="http://www.doxygen.org/" title="doxygen website">doxygen 1.5.2</a> &nbsp;::&nbsp;
        </p>

    </body>
</html>