git.haldean.org ana / 81a2168
import glfw, swap to tup Haldean Brown 1 year, 6 months ago
255 changed file(s) with 35763 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 Copyright (c) 2002-2006 Marcus Geelnard
1 Copyright (c) 2006-2016 Camilla Berglund <elmindreda@glfw.org>
2
3 This software is provided 'as-is', without any express or implied
4 warranty. In no event will the authors be held liable for any damages
5 arising from the use of this software.
6
7 Permission is granted to anyone to use this software for any purpose,
8 including commercial applications, and to alter it and redistribute it
9 freely, subject to the following restrictions:
10
11 1. The origin of this software must not be misrepresented; you must not
12 claim that you wrote the original software. If you use this software
13 in a product, an acknowledgment in the product documentation would
14 be appreciated but is not required.
15
16 2. Altered source versions must be plainly marked as such, and must not
17 be misrepresented as being the original software.
18
19 3. This notice may not be removed or altered from any source
20 distribution.
21
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: Data Structures</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
65 <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
66 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
67 </ul>
68 </div>
69 </div><!-- top -->
70 <!-- window showing the filter options -->
71 <div id="MSearchSelectWindow"
72 onmouseover="return searchBox.OnSearchSelectShow()"
73 onmouseout="return searchBox.OnSearchSelectHide()"
74 onkeydown="return searchBox.OnSearchSelectKey(event)">
75 </div>
76
77 <!-- iframe showing the search results (closed by default) -->
78 <div id="MSearchResultsWindow">
79 <iframe src="javascript:void(0)" frameborder="0"
80 name="MSearchResults" id="MSearchResults">
81 </iframe>
82 </div>
83
84 <div class="header">
85 <div class="headertitle">
86 <div class="title">Data Structures</div> </div>
87 </div><!--header-->
88 <div class="contents">
89 <div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
90 <table class="directory">
91 <tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structGLFWgammaramp.html" target="_self">GLFWgammaramp</a></td><td class="desc">Gamma ramp </td></tr>
92 <tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structGLFWimage.html" target="_self">GLFWimage</a></td><td class="desc">Image data </td></tr>
93 <tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structGLFWvidmode.html" target="_self">GLFWvidmode</a></td><td class="desc">Video mode type </td></tr>
94 </table>
95 </div><!-- directory -->
96 </div><!-- contents -->
97 <address class="footer">
98 <p>
99 Last update on Thu Aug 18 2016 for GLFW 3.2.1
100 </p>
101 </address>
102 </body>
103 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: Bug List</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <!-- window showing the filter options -->
63 <div id="MSearchSelectWindow"
64 onmouseover="return searchBox.OnSearchSelectShow()"
65 onmouseout="return searchBox.OnSearchSelectHide()"
66 onkeydown="return searchBox.OnSearchSelectKey(event)">
67 </div>
68
69 <!-- iframe showing the search results (closed by default) -->
70 <div id="MSearchResultsWindow">
71 <iframe src="javascript:void(0)" frameborder="0"
72 name="MSearchResults" id="MSearchResults">
73 </iframe>
74 </div>
75
76 </div><!-- top -->
77 <div class="header">
78 <div class="headertitle">
79 <div class="title">Bug List </div> </div>
80 </div><!--header-->
81 <div class="contents">
82 <div class="textblock"><dl class="reflist">
83 <dt><a class="anchor" id="_bug000001"></a>Page <a class="el" href="window_guide.html">Window guide</a> </dt>
84 <dd>On some Linux systems, creating contexts via both the native and EGL APIs in a single process will cause the application to segfault. Stick to one API or the other on Linux for now.</dd>
85 </dl>
86 </div></div><!-- contents -->
87 <address class="footer">
88 <p>
89 Last update on Thu Aug 18 2016 for GLFW 3.2.1
90 </p>
91 </address>
92 </body>
93 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: build.dox File Reference</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 </div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 </div><!-- top -->
83 <div class="header">
84 <div class="headertitle">
85 <div class="title">build.dox File Reference</div> </div>
86 </div><!--header-->
87 <div class="contents">
88 </div><!-- contents -->
89 <address class="footer">
90 <p>
91 Last update on Thu Aug 18 2016 for GLFW 3.2.1
92 </p>
93 </address>
94 </body>
95 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: Building applications</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <!-- window showing the filter options -->
63 <div id="MSearchSelectWindow"
64 onmouseover="return searchBox.OnSearchSelectShow()"
65 onmouseout="return searchBox.OnSearchSelectHide()"
66 onkeydown="return searchBox.OnSearchSelectKey(event)">
67 </div>
68
69 <!-- iframe showing the search results (closed by default) -->
70 <div id="MSearchResultsWindow">
71 <iframe src="javascript:void(0)" frameborder="0"
72 name="MSearchResults" id="MSearchResults">
73 </iframe>
74 </div>
75
76 </div><!-- top -->
77 <div class="header">
78 <div class="headertitle">
79 <div class="title">Building applications </div> </div>
80 </div><!--header-->
81 <div class="contents">
82 <div class="toc"><h3>Table of Contents</h3>
83 <ul><li class="level1"><a href="#build_include">Including the GLFW header file</a><ul><li class="level2"><a href="#build_macros">GLFW header option macros</a></li>
84 </ul>
85 </li>
86 <li class="level1"><a href="#build_link">Link with the right libraries</a><ul><li class="level2"><a href="#build_link_win32">With MinGW or Visual C++ on Windows</a></li>
87 <li class="level2"><a href="#build_link_cmake_source">With CMake and GLFW source</a></li>
88 <li class="level2"><a href="#build_link_cmake_package">With CMake and installed GLFW binaries</a></li>
89 <li class="level2"><a href="#build_link_pkgconfig">With makefiles and pkg-config on Unix</a></li>
90 <li class="level2"><a href="#build_link_xcode">With Xcode on OS X</a></li>
91 <li class="level2"><a href="#build_link_osx">With command-line on OS X</a></li>
92 </ul>
93 </li>
94 </ul>
95 </div>
96 <div class="textblock"><p>This is about compiling and linking applications that use GLFW. For information on how to write such applications, start with the <a class="el" href="quick_guide.html">introductory tutorial</a>. For information on how to compile the GLFW library itself, see <a class="el" href="compile_guide.html">Compiling GLFW</a>.</p>
97 <p>This is not a tutorial on compilation or linking. It assumes basic understanding of how to compile and link a C program as well as how to use the specific compiler of your chosen development environment. The compilation and linking process should be explained in your C programming material and in the documentation for your development environment.</p>
98 <h1><a class="anchor" id="build_include"></a>
99 Including the GLFW header file</h1>
100 <p>In the source files of your application where you use OpenGL or GLFW, you should include the GLFW header file, i.e.:</p>
101 <div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div></div><!-- fragment --><p>The GLFW header declares the GLFW API and by default also includes the OpenGL header of your development environment, which in turn defines all the constants, types and function prototypes of the OpenGL API.</p>
102 <p>The GLFW header also defines everything necessary for your OpenGL header to function. For example, under Windows you are normally required to include <code>windows.h</code> before the OpenGL header, which would pollute your code namespace with the entire Win32 API.</p>
103 <p>Instead, the GLFW header takes care of this for you, not by including <code>windows.h</code>, but by duplicating only the very few necessary parts of it. It does this only when needed, so if <code>windows.h</code> <em>is</em> included, the GLFW header does not try to redefine those symbols. The reverse is not true, i.e. <code>windows.h</code> cannot cope if any of its symbols have already been defined.</p>
104 <p>In other words:</p>
105 <ul>
106 <li>Do <em>not</em> include the OpenGL headers yourself, as GLFW does this for you</li>
107 <li>Do <em>not</em> include <code>windows.h</code> or other platform-specific headers unless you plan on using those APIs directly</li>
108 <li>If you <em>do</em> need to include such headers, do it <em>before</em> including the GLFW header and it will handle this</li>
109 </ul>
110 <p>If you are using an OpenGL extension loading library such as <a href="https://github.com/Dav1dde/glad">glad</a>, the extension loader header should either be included <em>before</em> the GLFW one, or the <code>GLFW_INCLUDE_NONE</code> macro (described below) should be defined.</p>
111 <h2><a class="anchor" id="build_macros"></a>
112 GLFW header option macros</h2>
113 <p>These macros may be defined before the inclusion of the GLFW header and affect its behavior.</p>
114 <p><code>GLFW_DLL</code> is required on Windows when using the GLFW DLL, to tell the compiler that the GLFW functions are defined in a DLL.</p>
115 <p>The following macros control which OpenGL or OpenGL ES API header is included. Only one of these may be defined at a time.</p>
116 <p><code>GLFW_INCLUDE_GLCOREARB</code> makes the GLFW header include the modern <code>GL/glcorearb.h</code> header (<code>OpenGL/gl3.h</code> on OS X) instead of the regular OpenGL header.</p>
117 <p><code>GLFW_INCLUDE_ES1</code> makes the GLFW header include the OpenGL ES 1.x <code>GLES/gl.h</code> header instead of the regular OpenGL header.</p>
118 <p><code>GLFW_INCLUDE_ES2</code> makes the GLFW header include the OpenGL ES 2.0 <code>GLES2/gl2.h</code> header instead of the regular OpenGL header.</p>
119 <p><code>GLFW_INCLUDE_ES3</code> makes the GLFW header include the OpenGL ES 3.0 <code>GLES3/gl3.h</code> header instead of the regular OpenGL header.</p>
120 <p><code>GLFW_INCLUDE_ES31</code> makes the GLFW header include the OpenGL ES 3.1 <code>GLES3/gl31.h</code> header instead of the regular OpenGL header.</p>
121 <p><code>GLFW_INCLUDE_VULKAN</code> makes the GLFW header include the Vulkan <code>vulkan/vulkan.h</code> header instead of the regular OpenGL header.</p>
122 <p><code>GLFW_INCLUDE_NONE</code> makes the GLFW header not include any OpenGL or OpenGL ES API header. This is useful in combination with an extension loading library.</p>
123 <p>If none of the above inclusion macros are defined, the standard OpenGL <code>GL/gl.h</code> header (<code>OpenGL/gl.h</code> on OS X) is included.</p>
124 <p>The following macros control the inclusion of additional API headers. Any number of these may be defined simultaneously, and/or together with one of the above macros.</p>
125 <p><code>GLFW_INCLUDE_GLEXT</code> makes the GLFW header include the appropriate extension header for the OpenGL or OpenGL ES header selected above after and in addition to that header.</p>
126 <p><code>GLFW_INCLUDE_GLU</code> makes the header include the GLU header in addition to the header selected above. This should only be used with the standard OpenGL header and only for compatibility with legacy code. GLU has been deprecated and should not be used in new code.</p>
127 <dl class="section note"><dt>Note</dt><dd>GLFW does not provide any of the API headers mentioned above. They must be provided by your development environment or your OpenGL, OpenGL ES or Vulkan SDK.</dd>
128 <dd>
129 None of these macros may be defined during the compilation of GLFW itself. If your build includes GLFW and you define any these in your build files, make sure they are not applied to the GLFW sources.</dd></dl>
130 <h1><a class="anchor" id="build_link"></a>
131 Link with the right libraries</h1>
132 <p>GLFW is essentially a wrapper of various platform-specific APIs and therefore needs to link against many different system libraries. If you are using GLFW as a shared library / dynamic library / DLL then it takes care of these links. However, if you are using GLFW as a static library then your executable will need to link against these libraries.</p>
133 <p>On Windows and OS X, the list of system libraries is static and can be hard-coded into your build environment. See the section for your development environment below. On Linux and other Unix-like operating systems, the list varies but can be retrieved in various ways as described below.</p>
134 <p>A good general introduction to linking is <a href="http://www.lurklurk.org/linkers/linkers.html">Beginner's Guide to Linkers</a> by David Drysdale.</p>
135 <h2><a class="anchor" id="build_link_win32"></a>
136 With MinGW or Visual C++ on Windows</h2>
137 <p>The static version of the GLFW library is named <code>glfw3</code>. When using this version, it is also necessary to link with some libraries that GLFW uses.</p>
138 <p>When linking an application under Windows that uses the static version of GLFW, you must link with <code>opengl32</code>. On some versions of MinGW, you must also explicitly link with <code>gdi32</code>, while other versions of MinGW include it in the set of default libraries along with other dependencies like <code>user32</code> and <code>kernel32</code>. If you are using GLU, you must also link with <code>glu32</code>.</p>
139 <p>The link library for the GLFW DLL is named <code>glfw3dll</code>. When compiling an application that uses the DLL version of GLFW, you need to define the <code>GLFW_DLL</code> macro <em>before</em> any inclusion of the GLFW header. This can be done either with a compiler switch or by defining it in your source code.</p>
140 <p>An application using the GLFW DLL does not need to link against any of its dependencies, but you still have to link against <code>opengl32</code> if your application uses OpenGL and <code>glu32</code> if it uses GLU.</p>
141 <h2><a class="anchor" id="build_link_cmake_source"></a>
142 With CMake and GLFW source</h2>
143 <p>This section is about using CMake to compile and link GLFW along with your application. If you want to use an installed binary instead, see <a class="el" href="build_guide.html#build_link_cmake_package">With CMake and installed GLFW binaries</a>.</p>
144 <p>With just a few changes to your <code>CMakeLists.txt</code> you can have the GLFW source tree built along with your application.</p>
145 <p>When including GLFW as part of your build, you probably don't want to build the GLFW tests, examples and documentation. To disable these, set the corresponding cache variables before adding the GLFW source tree.</p>
146 <div class="fragment"><div class="line"><span class="keyword">set</span>(GLFW_BUILD_DOCS OFF CACHE BOOL <span class="stringliteral">&quot;&quot;</span> FORCE)</div><div class="line"><span class="keyword">set</span>(GLFW_BUILD_TESTS OFF CACHE BOOL <span class="stringliteral">&quot;&quot;</span> FORCE)</div><div class="line"><span class="keyword">set</span>(GLFW_BUILD_EXAMPLES OFF CACHE BOOL <span class="stringliteral">&quot;&quot;</span> FORCE)</div></div><!-- fragment --><p>Then add the root directory of the GLFW source tree to your project. This will add the <code>glfw</code> target and the necessary cache variables to your project.</p>
147 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;add_subdirectory(path/to/glfw)</div></div><!-- fragment --><p>Once GLFW has been added to the project, link against it with the <code>glfw</code> target. This adds all link-time dependencies of GLFW as it is currently configured, the include directory for the GLFW header and, when applicable, the <a class="el" href="build_guide.html#build_macros">GLFW_DLL</a> macro.</p>
148 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;target_link_libraries(myapp glfw)</div></div><!-- fragment --><p>Note that the dependencies do not include OpenGL or GLU, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime and does not use GLU. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a> you can find it by requiring the OpenGL package.</p>
149 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;find_package(OpenGL REQUIRED)</div></div><!-- fragment --><p>If OpenGL is found, the <code>OPENGL_FOUND</code> variable is true and the <code>OPENGL_INCLUDE_DIR</code> and <code>OPENGL_gl_LIBRARY</code> cache variables can be used.</p>
150 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;target_include_directories(myapp ${OPENGL_INCLUDE_DIR})</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;target_link_libraries(myapp ${OPENGL_gl_LIBRARY})</div></div><!-- fragment --><p>The OpenGL CMake package also looks for GLU. If GLU is found, the <code>OPENGL_GLU_FOUND</code> variable is true and the <code>OPENGL_INCLUDE_DIR</code> and <code>OPENGL_glu_LIBRARY</code> cache variables can be used.</p>
151 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;target_link_libraries(myapp ${OPENGL_glu_LIBRARY})</div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>GLU has been deprecated and should not be used in new code, but some legacy code requires it.</dd></dl>
152 <h2><a class="anchor" id="build_link_cmake_package"></a>
153 With CMake and installed GLFW binaries</h2>
154 <p>This section is about using CMake to link GLFW after it has been built and installed. If you want to build it along with your application instead, see <a class="el" href="build_guide.html#build_link_cmake_source">With CMake and GLFW source</a>.</p>
155 <p>With just a few changes to your <code>CMakeLists.txt</code>, you can locate the package and target files generated when GLFW is installed.</p>
156 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;find_package(glfw3 3.2 REQUIRED)</div></div><!-- fragment --><p>Note that the dependencies do not include OpenGL or GLU, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime and does not use GLU. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a> you can find it by requiring the OpenGL package.</p>
157 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;find_package(OpenGL REQUIRED)</div></div><!-- fragment --><p>If OpenGL is found, the <code>OPENGL_FOUND</code> variable is true and the <code>OPENGL_INCLUDE_DIR</code> and <code>OPENGL_gl_LIBRARY</code> cache variables can be used.</p>
158 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;target_include_directories(myapp ${OPENGL_INCLUDE_DIR})</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;target_link_libraries(myapp ${OPENGL_gl_LIBRARY})</div></div><!-- fragment --><p>The OpenGL CMake package also looks for GLU. If GLU is found, the <code>OPENGL_GLU_FOUND</code> variable is true and the <code>OPENGL_INCLUDE_DIR</code> and <code>OPENGL_glu_LIBRARY</code> cache variables can be used.</p>
159 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;target_link_libraries(myapp ${OPENGL_glu_LIBRARY})</div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>GLU has been deprecated and should not be used in new code, but some legacy code requires it.</dd></dl>
160 <h2><a class="anchor" id="build_link_pkgconfig"></a>
161 With makefiles and pkg-config on Unix</h2>
162 <p>GLFW supports <a href="http://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a>, and the <code>glfw3.pc</code> pkg-config file is generated when the GLFW library is built and is installed along with it. A pkg-config file describes all necessary compile-time and link-time flags and dependencies needed to use a library. When they are updated or if they differ between systems, you will get the correct ones automatically.</p>
163 <p>A typical compile and link command-line when using the static version of the GLFW library may look like this:</p>
164 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cc `pkg-config --cflags glfw3` -o myprog myprog.c `pkg-config --static --libs glfw3`</div></div><!-- fragment --><p>If you are using the shared version of the GLFW library, simply omit the <code>--static</code> flag.</p>
165 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cc `pkg-config --cflags glfw3` -o myprog myprog.c `pkg-config --libs glfw3`</div></div><!-- fragment --><p>You can also use the <code>glfw3.pc</code> file without installing it first, by using the <code>PKG_CONFIG_PATH</code> environment variable.</p>
166 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;env PKG_CONFIG_PATH=path/to/glfw/src cc `pkg-config --cflags glfw3` -o myprog myprog.c `pkg-config --libs glfw3`</div></div><!-- fragment --><p>The dependencies do not include OpenGL or GLU, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime and does not use GLU. On OS X, GLU is built into the OpenGL framework, so if you need GLU you don't need to do anything extra. If you need GLU and are using Linux or BSD, you should add the <code>glu</code> pkg-config package.</p>
167 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cc `pkg-config --cflags glfw3 glu` -o myprog myprog.c `pkg-config --libs glfw3 glu`</div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>GLU has been deprecated and should not be used in new code, but some legacy code requires it.</dd></dl>
168 <p>If you are using the static version of the GLFW library, make sure you don't link statically against GLU.</p>
169 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cc `pkg-config --cflags glfw3 glu` -o myprog myprog.c `pkg-config --static --libs glfw3` `pkg-config --libs glu`</div></div><!-- fragment --><h2><a class="anchor" id="build_link_xcode"></a>
170 With Xcode on OS X</h2>
171 <p>If you are using the dynamic library version of GLFW, simply add it to the project dependencies.</p>
172 <p>If you are using the static library version of GLFW, add it and the Cocoa, OpenGL, IOKit and CoreVideo frameworks to the project as dependencies. They can all be found in <code>/System/Library/Frameworks</code>.</p>
173 <h2><a class="anchor" id="build_link_osx"></a>
174 With command-line on OS X</h2>
175 <p>It is recommended that you use <a class="el" href="build_guide.html#build_link_pkgconfig">pkg-config</a> when building from the command line on OS X. That way you will get any new dependencies added automatically. If you still wish to build manually, you need to add the required frameworks and libraries to your command-line yourself using the <code>-l</code> and <code>-framework</code> switches.</p>
176 <p>If you are using the dynamic GLFW library, which is named <code>libglfw.3.dylib</code>, do:</p>
177 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cc -o myprog myprog.c -lglfw -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo</div></div><!-- fragment --><p>If you are using the static library, named <code>libglfw3.a</code>, substitute <code>-lglfw3</code> for <code>-lglfw</code>.</p>
178 <p>Note that you do not add the <code>.framework</code> extension to a framework when linking against it from the command-line.</p>
179 <p>The OpenGL framework contains both the OpenGL and GLU APIs, so there is nothing special to do when using GLU. Also note that even though your machine may have <code>libGL</code>-style OpenGL libraries, they are for use with the X Window System and will <em>not</em> work with the OS X native version of GLFW. </p>
180 </div></div><!-- contents -->
181 <address class="footer">
182 <p>
183 Last update on Thu Aug 18 2016 for GLFW 3.2.1
184 </p>
185 </address>
186 </body>
187 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: Data Structure Index</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
65 <li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
66 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
67 </ul>
68 </div>
69 </div><!-- top -->
70 <!-- window showing the filter options -->
71 <div id="MSearchSelectWindow"
72 onmouseover="return searchBox.OnSearchSelectShow()"
73 onmouseout="return searchBox.OnSearchSelectHide()"
74 onkeydown="return searchBox.OnSearchSelectKey(event)">
75 </div>
76
77 <!-- iframe showing the search results (closed by default) -->
78 <div id="MSearchResultsWindow">
79 <iframe src="javascript:void(0)" frameborder="0"
80 name="MSearchResults" id="MSearchResults">
81 </iframe>
82 </div>
83
84 <div class="header">
85 <div class="headertitle">
86 <div class="title">Data Structure Index</div> </div>
87 </div><!--header-->
88 <div class="contents">
89 <div class="qindex"><a class="qindex" href="#letter_G">G</a></div>
90 <table class="classindex">
91 <tr><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
92 </td><td valign="top"><a class="el" href="structGLFWimage.html">GLFWimage</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>&#160;&#160;&#160;</td><td></td></tr>
93 <tr><td></td><td></td><td></td></tr>
94 <tr><td valign="top"><a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
95 <tr><td></td><td></td><td></td><td></td></tr>
96 </table>
97 <div class="qindex"><a class="qindex" href="#letter_G">G</a></div>
98 </div><!-- contents -->
99 <address class="footer">
100 <p>
101 Last update on Thu Aug 18 2016 for GLFW 3.2.1
102 </p>
103 </address>
104 </body>
105 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: compat.dox File Reference</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 </div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 </div><!-- top -->
83 <div class="header">
84 <div class="headertitle">
85 <div class="title">compat.dox File Reference</div> </div>
86 </div><!--header-->
87 <div class="contents">
88 </div><!-- contents -->
89 <address class="footer">
90 <p>
91 Last update on Thu Aug 18 2016 for GLFW 3.2.1
92 </p>
93 </address>
94 </body>
95 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: Standards conformance</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <!-- window showing the filter options -->
63 <div id="MSearchSelectWindow"
64 onmouseover="return searchBox.OnSearchSelectShow()"
65 onmouseout="return searchBox.OnSearchSelectHide()"
66 onkeydown="return searchBox.OnSearchSelectKey(event)">
67 </div>
68
69 <!-- iframe showing the search results (closed by default) -->
70 <div id="MSearchResultsWindow">
71 <iframe src="javascript:void(0)" frameborder="0"
72 name="MSearchResults" id="MSearchResults">
73 </iframe>
74 </div>
75
76 </div><!-- top -->
77 <div class="header">
78 <div class="headertitle">
79 <div class="title">Standards conformance </div> </div>
80 </div><!--header-->
81 <div class="contents">
82 <div class="toc"><h3>Table of Contents</h3>
83 <ul><li class="level1"><a href="#compat_x11">X11 extensions, protocols and IPC standards</a></li>
84 <li class="level1"><a href="#compat_glx">GLX extensions</a></li>
85 <li class="level1"><a href="#compat_wgl">WGL extensions</a></li>
86 <li class="level1"><a href="#compat_osx">OpenGL 3.2 and later on OS X</a></li>
87 <li class="level1"><a href="#compat_vulkan">Vulkan loader and API</a></li>
88 <li class="level1"><a href="#compat_wsi">Vulkan WSI extensions</a></li>
89 </ul>
90 </div>
91 <div class="textblock"><p>This guide describes the various API extensions used by this version of GLFW. It lists what are essentially implementation details, but which are nonetheless vital knowledge for developers intending to deploy their applications on a wide range of machines.</p>
92 <p>The information in this guide is not a part of GLFW API, but merely preconditions for some parts of the library to function on a given machine. Any part of this information may change in future versions of GLFW and that will not be considered a breaking API change.</p>
93 <h1><a class="anchor" id="compat_x11"></a>
94 X11 extensions, protocols and IPC standards</h1>
95 <p>As GLFW uses Xlib directly, without any intervening toolkit library, it has sole responsibility for interacting well with the many and varied window managers in use on Unix-like systems. In order for applications and window managers to work well together, a number of standards and conventions have been developed that regulate behavior outside the scope of the X11 API; most importantly the <a href="http://www.tronche.com/gui/x/icccm/">Inter-Client Communication Conventions Manual</a> (ICCCM) and <a href="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html">Extended Window Manager Hints</a> (EWMH) standards.</p>
96 <p>GLFW uses the <code>_MOTIF_WM_HINTS</code> window property to support borderless windows. If the running window manager does not support this property, the <code>GLFW_DECORATED</code> hint will have no effect.</p>
97 <p>GLFW uses the ICCCM <code>WM_DELETE_WINDOW</code> protocol to intercept the user attempting to close the GLFW window. If the running window manager does not support this protocol, the close callback will never be called.</p>
98 <p>GLFW uses the EWMH <code>_NET_WM_PING</code> protocol, allowing the window manager notify the user when the application has stopped responding, i.e. when it has ceased to process events. If the running window manager does not support this protocol, the user will not be notified if the application locks up.</p>
99 <p>GLFW uses the EWMH <code>_NET_WM_STATE_FULLSCREEN</code> window state to tell the window manager to make the GLFW window full screen. If the running window manager does not support this state, full screen windows may not work properly. GLFW has a fallback code path in case this state is unavailable, but every window manager behaves slightly differently in this regard.</p>
100 <p>GLFW uses the EWMH <code>_NET_WM_BYPASS_COMPOSITOR</code> window property to tell a compositing window manager to un-redirect full screen GLFW windows. If the running window manager uses compositing but does not support this property then additional copying may be performed for each buffer swap of full screen windows.</p>
101 <p>GLFW uses the <a href="http://www.freedesktop.org/wiki/ClipboardManager/">clipboard manager protocol</a> to push a clipboard string (i.e. selection) owned by a GLFW window about to be destroyed to the clipboard manager. If there is no running clipboard manager, the clipboard string will be unavailable once the window has been destroyed.</p>
102 <p>GLFW uses the <a href="http://www.freedesktop.org/wiki/Specifications/XDND/">X drag-and-drop protocol</a> to provide file drop events. If the application originating the drag does not support this protocol, drag and drop will not work.</p>
103 <p>GLFW uses the XRandR 1.3 extension to provide multi-monitor support. If the running X server does not support this version of this extension, multi-monitor support will not function and only a single, desktop-spanning monitor will be reported.</p>
104 <p>GLFW uses the XRandR 1.3 and Xf86vidmode extensions to provide gamma ramp support. If the running X server does not support either or both of these extensions, gamma ramp support will not function.</p>
105 <p>GLFW uses the Xkb extension and detectable auto-repeat to provide keyboard input. If the running X server does not support this extension, a non-Xkb fallback path is used.</p>
106 <h1><a class="anchor" id="compat_glx"></a>
107 GLX extensions</h1>
108 <p>The GLX API is the default API used to create OpenGL contexts on Unix-like systems using the X Window System.</p>
109 <p>GLFW uses the GLX 1.3 <code>GLXFBConfig</code> functions to enumerate and select framebuffer pixel formats. If GLX 1.3 is not supported, <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> will fail.</p>
110 <p>GLFW uses the <code>GLX_MESA_swap_control,</code> <code>GLX_EXT_swap_control</code> and <code>GLX_SGI_swap_control</code> extensions to provide vertical retrace synchronization (or <em>vsync</em>), in that order of preference. Where none of these extension are available, calling <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> will have no effect.</p>
111 <p>GLFW uses the <code>GLX_ARB_multisample</code> extension to create contexts with multisampling anti-aliasing. Where this extension is unavailable, the <code>GLFW_SAMPLES</code> hint will have no effect.</p>
112 <p>GLFW uses the <code>GLX_ARB_create_context</code> extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will only be partially supported, the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint will have no effect, and setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to <code>GLFW_TRUE</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
113 <p>GLFW uses the <code>GLX_ARB_create_context_profile</code> extension to provide support for context profiles. Where this extension is unavailable, setting the <code>GLFW_OPENGL_PROFILE</code> hint to anything but <code>GLFW_OPENGL_ANY_PROFILE</code>, or setting <code>GLFW_CLIENT_API</code> to anything but <code>GLFW_OPENGL_API</code> or <code>GLFW_NO_API</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
114 <p>GLFW uses the <code>GLX_ARB_context_flush_control</code> extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the <code>GLFW_CONTEXT_RELEASE_BEHAVIOR</code> hint will have no effect and the context will always be flushed when released.</p>
115 <p>GLFW uses the <code>GLX_ARB_framebuffer_sRGB</code> and <code>GLX_EXT_framebuffer_sRGB</code> extensions to provide support for sRGB framebuffers. Where both of these extensions are unavailable, the <code>GLFW_SRGB_CAPABLE</code> hint will have no effect.</p>
116 <h1><a class="anchor" id="compat_wgl"></a>
117 WGL extensions</h1>
118 <p>The WGL API is used to create OpenGL contexts on Microsoft Windows and other implementations of the Win32 API, such as Wine.</p>
119 <p>GLFW uses either the <code>WGL_EXT_extension_string</code> or the <code>WGL_ARB_extension_string</code> extension to check for the presence of all other WGL extensions listed below. If both are available, the EXT one is preferred. If neither is available, no other extensions are used and many GLFW features related to context creation will have no effect or cause errors when used.</p>
120 <p>GLFW uses the <code>WGL_EXT_swap_control</code> extension to provide vertical retrace synchronization (or <em>vsync</em>). Where this extension is unavailable, calling <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> will have no effect.</p>
121 <p>GLFW uses the <code>WGL_ARB_pixel_format</code> and <code>WGL_ARB_multisample</code> extensions to create contexts with multisampling anti-aliasing. Where these extensions are unavailable, the <code>GLFW_SAMPLES</code> hint will have no effect.</p>
122 <p>GLFW uses the <code>WGL_ARB_create_context</code> extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will only be partially supported, the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint will have no effect, and setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to <code>GLFW_TRUE</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
123 <p>GLFW uses the <code>WGL_ARB_create_context_profile</code> extension to provide support for context profiles. Where this extension is unavailable, setting the <code>GLFW_OPENGL_PROFILE</code> hint to anything but <code>GLFW_OPENGL_ANY_PROFILE</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
124 <p>GLFW uses the <code>WGL_ARB_context_flush_control</code> extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the <code>GLFW_CONTEXT_RELEASE_BEHAVIOR</code> hint will have no effect and the context will always be flushed when released.</p>
125 <p>GLFW uses the <code>WGL_ARB_framebuffer_sRGB</code> and <code>WGL_EXT_framebuffer_sRGB</code> extensions to provide support for sRGB framebuffers. Where both of these extension are unavailable, the <code>GLFW_SRGB_CAPABLE</code> hint will have no effect.</p>
126 <h1><a class="anchor" id="compat_osx"></a>
127 OpenGL 3.2 and later on OS X</h1>
128 <p>Support for OpenGL 3.2 and above was introduced with OS X 10.7 and even then only forward-compatible, core profile contexts are supported. Support for OpenGL 4.1 was introduced with OS X 10.9, also limited to forward-compatible, core profile contexts. There is also still no mechanism for requesting debug contexts. Versions of Mac OS X earlier than 10.7 support at most OpenGL version 2.1.</p>
129 <p>Because of this, on OS X 10.7 and later, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail if given version 3.0 or 3.1, the <code>GLFW_OPENGL_FORWARD_COMPAT</code> hint must be set to <code>GLFW_TRUE</code> and the <code>GLFW_OPENGL_PROFILE</code> hint must be set to <code>GLFW_OPENGL_CORE_PROFILE</code> when creating OpenGL 3.2 and later contexts and the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint is ignored.</p>
130 <p>Also, on Mac OS X 10.6 and below, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will fail if given a version above 2.1, setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to a non-default value will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail and the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint is ignored.</p>
131 <h1><a class="anchor" id="compat_vulkan"></a>
132 Vulkan loader and API</h1>
133 <p>GLFW uses the standard system-wide Vulkan loader to access the Vulkan API. This should be installed by graphics drivers and Vulkan SDKs. If this is not available, <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> will return <code>GLFW_FALSE</code> and all other Vulkan-related functions will fail with an <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error.</p>
134 <h1><a class="anchor" id="compat_wsi"></a>
135 Vulkan WSI extensions</h1>
136 <p>The Vulkan WSI extensions are used to create Vulkan surfaces for GLFW windows on all supported platforms.</p>
137 <p>GLFW uses the <code>VK_KHR_surface</code> and <code>VK_KHR_win32_surface</code> extensions to create surfaces on Microsoft Windows. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
138 <p>GLFW uses the <code>VK_KHR_surface</code> and either the <code>VK_KHR_xlib_surface</code> or <code>VK_KHR_xcb_surface</code> extensions to create surfaces on X11. If <code>VK_KHR_surface</code> or both <code>VK_KHR_xlib_surface</code> and <code>VK_KHR_xcb_surface</code> are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
139 <p>GLFW uses the <code>VK_KHR_surface</code> and <code>VK_KHR_wayland_surface</code> extensions to create surfaces on Wayland. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
140 <p>GLFW uses the <code>VK_KHR_surface</code> and <code>VK_KHR_mir_surface</code> extensions to create surfaces on Mir. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
141 <p>GLFW does not support any extensions for window surface creation on OS X, meaning<a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail. </p>
142 </div></div><!-- contents -->
143 <address class="footer">
144 <p>
145 Last update on Thu Aug 18 2016 for GLFW 3.2.1
146 </p>
147 </address>
148 </body>
149 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: compile.dox File Reference</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 </div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 </div><!-- top -->
83 <div class="header">
84 <div class="headertitle">
85 <div class="title">compile.dox File Reference</div> </div>
86 </div><!--header-->
87 <div class="contents">
88 </div><!-- contents -->
89 <address class="footer">
90 <p>
91 Last update on Thu Aug 18 2016 for GLFW 3.2.1
92 </p>
93 </address>
94 </body>
95 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: Compiling GLFW</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <!-- window showing the filter options -->
63 <div id="MSearchSelectWindow"
64 onmouseover="return searchBox.OnSearchSelectShow()"
65 onmouseout="return searchBox.OnSearchSelectHide()"
66 onkeydown="return searchBox.OnSearchSelectKey(event)">
67 </div>
68
69 <!-- iframe showing the search results (closed by default) -->
70 <div id="MSearchResultsWindow">
71 <iframe src="javascript:void(0)" frameborder="0"
72 name="MSearchResults" id="MSearchResults">
73 </iframe>
74 </div>
75
76 </div><!-- top -->
77 <div class="header">
78 <div class="headertitle">
79 <div class="title">Compiling GLFW </div> </div>
80 </div><!--header-->
81 <div class="contents">
82 <div class="toc"><h3>Table of Contents</h3>
83 <ul><li class="level1"><a href="#compile_cmake">Using CMake</a><ul><li class="level2"><a href="#compile_deps">Dependencies</a><ul><li class="level3"><a href="#compile_deps_msvc">Dependencies for Visual C++ on Windows</a></li>
84 <li class="level3"><a href="#compile_deps_mingw">Dependencies for MinGW or MinGW-w64 on Windows</a></li>
85 <li class="level3"><a href="#compile_deps_mingw_cross">Dependencies for MinGW or MinGW-w64 cross-compilation</a></li>
86 <li class="level3"><a href="#compile_deps_xcode">Dependencies for Xcode on OS X</a></li>
87 <li class="level3"><a href="#compile_deps_x11">Dependencies for Linux and X11</a></li>
88 </ul>
89 </li>
90 <li class="level2"><a href="#compile_generate">Generating build files with CMake</a><ul><li class="level3"><a href="#compile_generate_cli">Generating files with the CMake command-line tool</a></li>
91 <li class="level3"><a href="#compile_generate_gui">Generating files with the CMake GUI</a></li>
92 </ul>
93 </li>
94 <li class="level2"><a href="#compile_compile">Compiling the library</a></li>
95 <li class="level2"><a href="#compile_options">CMake options</a><ul><li class="level3"><a href="#compile_options_shared">Shared CMake options</a></li>
96 <li class="level3"><a href="#compile_options_osx">OS X specific CMake options</a></li>
97 <li class="level3"><a href="#compile_options_win32">Windows specific CMake options</a></li>
98 </ul>
99 </li>
100 </ul>
101 </li>
102 <li class="level1"><a href="#compile_manual">Compiling GLFW manually</a></li>
103 </ul>
104 </div>
105 <div class="textblock"><p>This is about compiling the GLFW library itself. For information on how to build applications that use GLFW, see <a class="el" href="build_guide.html">Building applications</a>.</p>
106 <h1><a class="anchor" id="compile_cmake"></a>
107 Using CMake</h1>
108 <p>GLFW uses <a href="http://www.cmake.org/">CMake</a> to generate project files or makefiles for a particular development environment. If you are on a Unix-like system such as Linux or FreeBSD or have a package system like Fink, MacPorts, Cygwin or Homebrew, you can simply install its CMake package. If not, you can download installers for Windows and OS X from the <a href="http://www.cmake.org/">CMake website</a>.</p>
109 <dl class="section note"><dt>Note</dt><dd>CMake only generates project files or makefiles. It does not compile the actual GLFW library. To compile GLFW, first generate these files for your chosen development environment and then use them to compile the actual GLFW library.</dd></dl>
110 <h2><a class="anchor" id="compile_deps"></a>
111 Dependencies</h2>
112 <p>Once you have installed CMake, make sure that all other dependencies are available. On some platforms, GLFW needs a few additional packages to be installed. See the section for your chosen platform and development environment below.</p>
113 <h3><a class="anchor" id="compile_deps_msvc"></a>
114 Dependencies for Visual C++ on Windows</h3>
115 <p>The Microsoft Platform SDK that is installed along with Visual C++ already contains all the necessary headers, link libraries and tools except for CMake. Move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
116 <h3><a class="anchor" id="compile_deps_mingw"></a>
117 Dependencies for MinGW or MinGW-w64 on Windows</h3>
118 <p>Both the MinGW and the MinGW-w64 packages already contain all the necessary headers, link libraries and tools except for CMake. Move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
119 <h3><a class="anchor" id="compile_deps_mingw_cross"></a>
120 Dependencies for MinGW or MinGW-w64 cross-compilation</h3>
121 <p>Both Cygwin and many Linux distributions have MinGW or MinGW-w64 packages. For example, Cygwin has the <code>mingw64-i686-gcc</code> and <code>mingw64-x86_64-gcc</code> packages for 32- and 64-bit version of MinGW-w64, while Debian GNU/Linux and derivatives like Ubuntu have the <code>mingw-w64</code> package for both.</p>
122 <p>GLFW has CMake toolchain files in the <code>CMake/</code> directory that allow for easy cross-compilation of Windows binaries. To use these files you need to add a special parameter when generating the project files or makefiles:</p>
123 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cmake -DCMAKE_TOOLCHAIN_FILE=&lt;toolchain-file&gt; .</div></div><!-- fragment --><p>The exact toolchain file to use depends on the prefix used by the MinGW or MinGW-w64 binaries on your system. You can usually see this in the /usr directory. For example, both the Debian/Ubuntu and Cygwin MinGW-w64 packages have <code>/usr/x86_64-w64-mingw32</code> for the 64-bit compilers, so the correct invocation would be:</p>
124 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cmake -DCMAKE_TOOLCHAIN_FILE=CMake/x86_64-w64-mingw32.cmake .</div></div><!-- fragment --><p>For more details see the article <a href="http://www.paraview.org/Wiki/CMake_Cross_Compiling">CMake Cross Compiling</a> on the CMake wiki.</p>
125 <p>Once you have this set up, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
126 <h3><a class="anchor" id="compile_deps_xcode"></a>
127 Dependencies for Xcode on OS X</h3>
128 <p>Xcode comes with all necessary tools except for CMake. The required headers and libraries are included in the core OS X frameworks. Xcode can be downloaded from the Mac App Store or from the ADC Member Center.</p>
129 <p>Once you have Xcode installed, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
130 <h3><a class="anchor" id="compile_deps_x11"></a>
131 Dependencies for Linux and X11</h3>
132 <p>To compile GLFW for X11, you need to have the X11 packages installed, as well as the basic development tools like GCC and make. For example, on Ubuntu and other distributions based on Debian GNU/Linux, you need to install the <code>xorg-dev</code> package, which pulls in all X.org header packages.</p>
133 <p>Once you have installed the necessary packages, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
134 <h2><a class="anchor" id="compile_generate"></a>
135 Generating build files with CMake</h2>
136 <p>Once you have all necessary dependencies it is time to generate the project files or makefiles for your development environment. CMake needs to know two paths for this: the path to the <em>root</em> directory of the GLFW source tree (i.e. <em>not</em> the <code>src</code> subdirectory) and the target path for the generated files and compiled binaries. If these are the same, it is called an in-tree build, otherwise it is called an out-of-tree build.</p>
137 <p>One of several advantages of out-of-tree builds is that you can generate files and compile for different development environments using a single source tree.</p>
138 <dl class="section note"><dt>Note</dt><dd>This section is about generating the project files or makefiles necessary to compile the GLFW library, not about compiling the actual library.</dd></dl>
139 <h3><a class="anchor" id="compile_generate_cli"></a>
140 Generating files with the CMake command-line tool</h3>
141 <p>To make an in-tree build, enter the <em>root</em> directory of the GLFW source tree (i.e. <em>not</em> the <code>src</code> subdirectory) and run CMake. The current directory is used as target path, while the path provided as an argument is used to find the source tree.</p>
142 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cd &lt;glfw-root-dir&gt;</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;cmake .</div></div><!-- fragment --><p>To make an out-of-tree build, make a directory outside of the source tree, enter it and run CMake with the (relative or absolute) path to the root of the source tree as an argument.</p>
143 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;mkdir glfw-build</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;cd glfw-build</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;cmake &lt;glfw-root-dir&gt;</div></div><!-- fragment --><p>Once you have generated the project files or makefiles for your chosen development environment, move on to <a class="el" href="compile_guide.html#compile_compile">Compiling the library</a>.</p>
144 <h3><a class="anchor" id="compile_generate_gui"></a>
145 Generating files with the CMake GUI</h3>
146 <p>If you are using the GUI version, choose the root of the GLFW source tree as source location and the same directory or another, empty directory as the destination for binaries. Choose <em>Configure</em>, change any options you wish to, <em>Configure</em> again to let the changes take effect and then <em>Generate</em>.</p>
147 <p>Once you have generated the project files or makefiles for your chosen development environment, move on to <a class="el" href="compile_guide.html#compile_compile">Compiling the library</a>.</p>
148 <h2><a class="anchor" id="compile_compile"></a>
149 Compiling the library</h2>
150 <p>You should now have all required dependencies and the project files or makefiles necessary to compile GLFW. Go ahead and compile the actual GLFW library with these files, as you would with any other project.</p>
151 <p>Once the GLFW library is compiled, you are ready to build your applications, linking it to the GLFW library. See <a class="el" href="build_guide.html">Building applications</a> for more information.</p>
152 <h2><a class="anchor" id="compile_options"></a>
153 CMake options</h2>
154 <p>The CMake files for GLFW provide a number of options, although not all are available on all supported platforms. Some of these are de facto standards among projects using CMake and so have no <code>GLFW_</code> prefix.</p>
155 <p>If you are using the GUI version of CMake, these are listed and can be changed from there. If you are using the command-line version of CMake you can use the <code>ccmake</code> ncurses GUI to set options. Some package systems like Ubuntu and other distributions based on Debian GNU/Linux have this tool in a separate <code>cmake-curses-gui</code> package.</p>
156 <p>Finally, if you don't want to use any GUI, you can set options from the <code>cmake</code> command-line with the <code>-D</code> flag.</p>
157 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;cmake -DBUILD_SHARED_LIBS=ON .</div></div><!-- fragment --><h3><a class="anchor" id="compile_options_shared"></a>
158 Shared CMake options</h3>
159 <p><code>BUILD_SHARED_LIBS</code> determines whether GLFW is built as a static library or as a DLL / shared library / dynamic library.</p>
160 <p><code>LIB_SUFFIX</code> affects where the GLFW shared /dynamic library is installed. If it is empty, it is installed to <code>${CMAKE_INSTALL_PREFIX}/lib</code>. If it is set to <code>64</code>, it is installed to <code>${CMAKE_INSTALL_PREFIX}/lib64</code>.</p>
161 <p><code>GLFW_BUILD_EXAMPLES</code> determines whether the GLFW examples are built along with the library.</p>
162 <p><code>GLFW_BUILD_TESTS</code> determines whether the GLFW test programs are built along with the library.</p>
163 <p><code>GLFW_BUILD_DOCS</code> determines whether the GLFW documentation is built along with the library.</p>
164 <p><code>GLFW_VULKAN_STATIC</code> determines whether to use the Vulkan loader linked statically into the application.</p>
165 <h3><a class="anchor" id="compile_options_osx"></a>
166 OS X specific CMake options</h3>
167 <p><code>GLFW_USE_CHDIR</code> determines whether <code>glfwInit</code> changes the current directory of bundled applications to the <code>Contents/Resources</code> directory.</p>
168 <p><code>GLFW_USE_MENUBAR</code> determines whether the first call to <code>glfwCreateWindow</code> sets up a minimal menu bar.</p>
169 <p><code>GLFW_USE_RETINA</code> determines whether windows will use the full resolution of Retina displays.</p>
170 <h3><a class="anchor" id="compile_options_win32"></a>
171 Windows specific CMake options</h3>
172 <p><code>USE_MSVC_RUNTIME_LIBRARY_DLL</code> determines whether to use the DLL version or the static library version of the Visual C++ runtime library. If set to <code>ON</code>, the DLL version of the Visual C++ library is used.</p>
173 <p><code>GLFW_USE_HYBRID_HPG</code> determines whether to export the <code>NvOptimusEnablement</code> and <code>AmdPowerXpressRequestHighPerformance</code> symbols, which force the use of the high-performance GPU on Nvidia Optimus and AMD PowerXpress systems. These symbols need to be exported by the EXE to be detected by the driver, so the override will not work if GLFW is built as a DLL.</p>
174 <h1><a class="anchor" id="compile_manual"></a>
175 Compiling GLFW manually</h1>
176 <p>If you wish to compile GLFW without its CMake build environment then you will have to do at least some of the platform detection yourself. GLFW needs a configuration macro to be defined in order to know what window system it's being compiled for and also has optional, platform-specific ones for various features.</p>
177 <p>When building with CMake, the <code>glfw_config.h</code> configuration header is generated based on the current platform and CMake options. The GLFW CMake environment defines <code>_GLFW_USE_CONFIG_H</code>, which causes this header to be included by <code>internal.h</code>. Without this macro, GLFW will expect the necessary configuration macros to be defined on the command-line.</p>
178 <p>The window creation API is used to create windows, handle input, monitors, gamma ramps and clipboard. The options are:</p>
179 <ul>
180 <li><code>_GLFW_COCOA</code> to use the Cocoa frameworks</li>
181 <li><code>_GLFW_WIN32</code> to use the Win32 API</li>
182 <li><code>_GLFW_X11</code> to use the X Window System</li>
183 <li><code>_GLFW_WAYLAND</code> to use the Wayland API (experimental and incomplete)</li>
184 <li><code>_GLFW_MIR</code> to use the Mir API (experimental and incomplete)</li>
185 </ul>
186 <p>If you are building GLFW as a shared library / dynamic library / DLL then you must also define <code>_GLFW_BUILD_DLL</code>. Otherwise, you must not define it.</p>
187 <p>If you are linking the Vulkan loader statically into your application then you must also define <code>_GLFW_VULKAN_STATIC</code>. Otherwise, GLFW will attempt to use the external version.</p>
188 <p>For the EGL context creation API, the following options are available:</p>
189 <ul>
190 <li><code>_GLFW_USE_EGLPLATFORM_H</code> to use <code>EGL/eglplatform.h</code> for native handle definitions (fallback)</li>
191 </ul>
192 <p>If you are using the X11 window creation API, support for the following X11 extensions can be enabled:</p>
193 <ul>
194 <li><code>_GLFW_HAS_XF86VM</code> to use Xxf86vm as a fallback when RandR gamma is broken (recommended)</li>
195 </ul>
196 <p>If you are using the Cocoa window creation API, the following options are available:</p>
197 <ul>
198 <li><code>_GLFW_USE_CHDIR</code> to <code>chdir</code> to the <code>Resources</code> subdirectory of the application bundle during <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> (recommended)</li>
199 <li><code>_GLFW_USE_MENUBAR</code> to create and populate the menu bar when the first window is created (recommended)</li>
200 <li><code>_GLFW_USE_RETINA</code> to have windows use the full resolution of Retina displays (recommended)</li>
201 </ul>
202 <dl class="section note"><dt>Note</dt><dd>None of the <a class="el" href="build_guide.html#build_macros">GLFW header option macros</a> may be defined during the compilation of GLFW. If you define any of these in your build files, make sure they are not applied to the GLFW sources. </dd></dl>
203 </div></div><!-- contents -->
204 <address class="footer">
205 <p>
206 Last update on Thu Aug 18 2016 for GLFW 3.2.1
207 </p>
208 </address>
209 </body>
210 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: context.dox File Reference</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 </div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 </div><!-- top -->
83 <div class="header">
84 <div class="headertitle">
85 <div class="title">context.dox File Reference</div> </div>
86 </div><!--header-->
87 <div class="contents">
88 </div><!-- contents -->
89 <address class="footer">
90 <p>
91 Last update on Thu Aug 18 2016 for GLFW 3.2.1
92 </p>
93 </address>
94 </body>
95 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: Context guide</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <!-- window showing the filter options -->
63 <div id="MSearchSelectWindow"
64 onmouseover="return searchBox.OnSearchSelectShow()"
65 onmouseout="return searchBox.OnSearchSelectHide()"
66 onkeydown="return searchBox.OnSearchSelectKey(event)">
67 </div>
68
69 <!-- iframe showing the search results (closed by default) -->
70 <div id="MSearchResultsWindow">
71 <iframe src="javascript:void(0)" frameborder="0"
72 name="MSearchResults" id="MSearchResults">
73 </iframe>
74 </div>
75
76 </div><!-- top -->
77 <div class="header">
78 <div class="headertitle">
79 <div class="title">Context guide </div> </div>
80 </div><!--header-->
81 <div class="contents">
82 <div class="toc"><h3>Table of Contents</h3>
83 <ul><li class="level1"><a href="#context_object">Context objects</a><ul><li class="level2"><a href="#context_hints">Context creation hints</a></li>
84 <li class="level2"><a href="#context_sharing">Context object sharing</a></li>
85 <li class="level2"><a href="#context_offscreen">Offscreen contexts</a></li>
86 <li class="level2"><a href="#context_less">Windows without contexts</a></li>
87 </ul>
88 </li>
89 <li class="level1"><a href="#context_current">Current context</a></li>
90 <li class="level1"><a href="#context_swap">Buffer swapping</a></li>
91 <li class="level1"><a href="#context_glext">OpenGL and OpenGL ES extensions</a><ul><li class="level2"><a href="#context_glext_auto">Loading extension with a loader library</a></li>
92 <li class="level2"><a href="#context_glext_manual">Loading extensions manually</a><ul><li class="level3"><a href="#context_glext_header">The glext.h header</a></li>
93 <li class="level3"><a href="#context_glext_string">Checking for extensions</a></li>
94 <li class="level3"><a href="#context_glext_proc">Fetching function pointers</a></li>
95 </ul>
96 </li>
97 </ul>
98 </li>
99 </ul>
100 </div>
101 <div class="textblock"><p>This guide introduces the OpenGL and OpenGL ES context related functions of GLFW. For details on a specific function in this category, see the <a class="el" href="group__context.html">Context reference</a>. There are also guides for the other areas of the GLFW API.</p>
102 <ul>
103 <li><a class="el" href="intro_guide.html">Introduction to the API</a></li>
104 <li><a class="el" href="window_guide.html">Window guide</a></li>
105 <li><a class="el" href="vulkan_guide.html">Vulkan guide</a></li>
106 <li><a class="el" href="monitor_guide.html">Monitor guide</a></li>
107 <li><a class="el" href="input_guide.html">Input guide</a></li>
108 </ul>
109 <h1><a class="anchor" id="context_object"></a>
110 Context objects</h1>
111 <p>A window object encapsulates both a top-level window and an OpenGL or OpenGL ES context. It is created with <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> and destroyed with <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> or <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>. See <a class="el" href="window_guide.html#window_creation">Window creation</a> for more information.</p>
112 <p>As the window and context are inseparably linked, the window object also serves as the context handle.</p>
113 <p>To test the creation of various kinds of contexts and see their properties, run the <code>glfwinfo</code> test program.</p>
114 <dl class="section note"><dt>Note</dt><dd>Vulkan does not have a context and the Vulkan instance is created via the Vulkan API itself. If you will be using Vulkan to render to a window, disable context creation by setting the <a class="el" href="window_guide.html#window_hints_ctx">GLFW_CLIENT_API</a> hint to <code>GLFW_NO_API</code>. For more information, see the <a class="el" href="vulkan_guide.html">Vulkan guide</a>.</dd></dl>
115 <h2><a class="anchor" id="context_hints"></a>
116 Context creation hints</h2>
117 <p>There are a number of hints, specified using <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>, related to what kind of context is created. See <a class="el" href="window_guide.html#window_hints_ctx">context related hints</a> in the window guide.</p>
118 <h2><a class="anchor" id="context_sharing"></a>
119 Context object sharing</h2>
120 <p>When creating a window and its OpenGL or OpenGL ES context with <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>, you can specify another window whose context the new one should share its objects (textures, vertex and element buffers, etc.) with.</p>
121 <div class="fragment"><div class="line"><a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* second_window = <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;Second Window&quot;</span>, NULL, first_window);</div></div><!-- fragment --><p>Object sharing is implemented by the operating system and graphics driver. On platforms where it is possible to choose which types of objects are shared, GLFW requests that all types are shared.</p>
122 <p>See the relevant chapter of the <a href="https://www.opengl.org/registry/">OpenGL</a> or <a href="http://www.khronos.org/opengles/">OpenGL ES</a> reference documents for more information. The name and number of this chapter unfortunately varies between versions and APIs, but has at times been named <em>Shared Objects and Multiple Contexts</em>.</p>
123 <p>GLFW comes with a simple object sharing test program called <code>sharing</code>.</p>
124 <h2><a class="anchor" id="context_offscreen"></a>
125 Offscreen contexts</h2>
126 <p>GLFW doesn't support creating contexts without an associated window. However, contexts with hidden windows can be created with the <a class="el" href="window_guide.html#window_hints_wnd">GLFW_VISIBLE</a> window hint.</p>
127 <div class="fragment"><div class="line"><a class="code" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>(<a class="code" href="glfw3_8h.html#afb3cdc45297e06d8f1eb13adc69ca6c4">GLFW_VISIBLE</a>, <a class="code" href="glfw3_8h.html#ac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a>);</div><div class="line"></div><div class="line"><a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* offscreen_context = <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;&quot;</span>, NULL, NULL);</div></div><!-- fragment --><p>The window never needs to be shown and its context can be used as a plain offscreen context. Depending on the window manager, the size of a hidden window's framebuffer may not be usable or modifiable, so framebuffer objects are recommended for rendering with such contexts.</p>
128 <p>You should still <a class="el" href="input_guide.html#events">process events</a> as long as you have at least one window, even if none of them are visible.</p>
129 <p><b>OS X:</b> The first time a window is created the menu bar is populated with common commands like Hide, Quit and About. This is not desirable for example when writing a command-line only application. The menu bar setup can be disabled with a <a class="el" href="compile_guide.html#compile_options_osx">compile-time option</a>.</p>
130 <h2><a class="anchor" id="context_less"></a>
131 Windows without contexts</h2>
132 <p>You can disable context creation by setting the <a class="el" href="window_guide.html#window_hints_ctx">GLFW_CLIENT_API</a> hint to <code>GLFW_NO_API</code>. Windows without contexts must not be passed to <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> or <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>.</p>
133 <h1><a class="anchor" id="context_current"></a>
134 Current context</h1>
135 <p>Before you can make OpenGL or OpenGL ES calls, you need to have a current context of the correct type. A context can only be current for a single thread at a time, and a thread can only have a single context current at a time.</p>
136 <p>The context of a window is made current with <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>.</p>
137 <div class="fragment"><div class="line"><a class="code" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(window);</div></div><!-- fragment --><p>The window of the current context is returned by <a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a>.</p>
138 <div class="fragment"><div class="line"><a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window = <a class="code" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a>();</div></div><!-- fragment --><p>The following GLFW functions require a context to be current. Calling any these functions without a current context will generate a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
139 <ul>
140 <li><a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a></li>
141 <li><a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a></li>
142 <li><a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a></li>
143 </ul>
144 <h1><a class="anchor" id="context_swap"></a>
145 Buffer swapping</h1>
146 <p>Buffer swapping is part of the window and framebuffer, not the context. See <a class="el" href="window_guide.html#buffer_swap">Buffer swapping</a>.</p>
147 <h1><a class="anchor" id="context_glext"></a>
148 OpenGL and OpenGL ES extensions</h1>
149 <p>One of the benefits of OpenGL and OpenGL ES is their extensibility. Hardware vendors may include extensions in their implementations that extend the API before that functionality is included in a new version of the OpenGL or OpenGL ES specification, and some extensions are never included and remain as extensions until they become obsolete.</p>
150 <p>An extension is defined by:</p>
151 <ul>
152 <li>An extension name (e.g. <code>GL_ARB_debug_output</code>)</li>
153 <li>New OpenGL tokens (e.g. <code>GL_DEBUG_SEVERITY_HIGH_ARB</code>)</li>
154 <li>New OpenGL functions (e.g. <code>glGetDebugMessageLogARB</code>)</li>
155 </ul>
156 <p>Note the <code>ARB</code> affix, which stands for Architecture Review Board and is used for official extensions. The extension above was created by the ARB, but there are many different affixes, like <code>NV</code> for Nvidia and <code>AMD</code> for, well, AMD. Any group may also use the generic <code>EXT</code> affix. Lists of extensions, together with their specifications, can be found at the <a href="http://www.opengl.org/registry/">OpenGL Registry</a> and <a href="https://www.khronos.org/registry/gles/">OpenGL ES Registry</a>.</p>
157 <h2><a class="anchor" id="context_glext_auto"></a>
158 Loading extension with a loader library</h2>
159 <p>An extension loader library is the easiest and best way to access both OpenGL and OpenGL ES extensions and modern versions of the core OpenGL or OpenGL ES APIs. They will take care of all the details of declaring and loading everything you need. One such library is <a href="https://github.com/Dav1dde/glad">glad</a> and there are several others.</p>
160 <p>The following example will use glad but all extension loader libraries work similarly.</p>
161 <p>First you need to generate the source files using the glad Python script. This example generates a loader for any version of OpenGL, which is the default for both GLFW and glad, but loaders for OpenGL ES, as well as loaders for specific API versions and extension sets can be generated. The generated files are written to the <code>output</code> directory.</p>
162 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;python main.py --generator c --no-loader --out-path output</div></div><!-- fragment --><p>The <code>--no-loader</code> option is added because GLFW already provides a function for loading OpenGL and OpenGL ES function pointers, one that automatically uses the selected context creation API, and glad can call this instead of having to implement its own. There are several other command-line options as well. See the glad documentation for details.</p>
163 <p>Add the generated <code>output/src/glad.c</code>, <code>output/include/glad/glad.h</code> and <code>output/include/KHR/khrplatform.h</code> files to your build. Then you need to include the glad header file, which will replace the OpenGL header of your development environment. By including the glad header before the GLFW header, it suppresses the development environment's OpenGL or OpenGL ES header.</p>
164 <div class="fragment"><div class="line"><span class="preprocessor">#include &lt;glad/glad.h&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div></div><!-- fragment --><p>Finally you need to initialize glad once you have a suitable current context.</p>
165 <div class="fragment"><div class="line">window = <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;My Window&quot;</span>, NULL, NULL);</div><div class="line"><span class="keywordflow">if</span> (!window)</div><div class="line">{</div><div class="line"> ...</div><div class="line">}</div><div class="line"></div><div class="line"><a class="code" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(window);</div><div class="line"></div><div class="line">gladLoadGLLoader((GLADloadproc) <a class="code" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>);</div></div><!-- fragment --><p>Once glad has been loaded, you have access to all OpenGL core and extension functions supported by both the context you created and the glad loader you generated and you are ready to start rendering.</p>
166 <p>You can specify a minimum required OpenGL or OpenGL ES version with <a class="el" href="window_guide.html#window_hints_ctx">context hints</a>. If your needs are more complex, you can check the actual OpenGL or OpenGL ES version with <a class="el" href="window_guide.html#window_attribs_ctx">context attributes</a>, or you can check whether a specific version is supported by the current context with the <code>GLAD_GL_VERSION_x_x</code> booleans.</p>
167 <div class="fragment"><div class="line"><span class="keywordflow">if</span> (GLAD_GL_VERSION_3_2)</div><div class="line">{</div><div class="line"> <span class="comment">// Call OpenGL 3.2+ specific code</span></div><div class="line">}</div></div><!-- fragment --><p>To check whether a specific extension is supported, use the <code>GLAD_GL_xxx</code> booleans.</p>
168 <div class="fragment"><div class="line"><span class="keywordflow">if</span> (GLAD_GL_ARB_debug_output)</div><div class="line">{</div><div class="line"> <span class="comment">// Use GL_ARB_debug_output</span></div><div class="line">}</div></div><!-- fragment --><h2><a class="anchor" id="context_glext_manual"></a>
169 Loading extensions manually</h2>
170 <p><b>Do not use this technique</b> unless it is absolutely necessary. An <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a> will save you a ton of tedious, repetitive, error prone work.</p>
171 <p>To use a certain extension, you must first check whether the context supports that extension and then, if it introduces new functions, retrieve the pointers to those functions. GLFW provides <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a> and <a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a> for manual loading of extensions and new API functions.</p>
172 <p>This section will demonstrate manual loading of OpenGL extensions. The loading of OpenGL ES extensions is identical except for the name of the extension header.</p>
173 <h3><a class="anchor" id="context_glext_header"></a>
174 The glext.h header</h3>
175 <p>The <code>glext.h</code> extension header is a continually updated file that defines the interfaces for all OpenGL extensions. The latest version of this can always be found at the <a href="http://www.opengl.org/registry/">OpenGL Registry</a>. There are also extension headers for the various versions of OpenGL ES at the <a href="https://www.khronos.org/registry/gles/">OpenGL ES Registry</a>. It it strongly recommended that you use your own copy of the extension header, as the one included in your development environment may be several years out of date and may not include the extensions you wish to use.</p>
176 <p>The header defines function pointer types for all functions of all extensions it supports. These have names like <code>PFNGLGETDEBUGMESSAGELOGARBPROC</code> (for <code>glGetDebugMessageLogARB</code>), i.e. the name is made uppercase and <code>PFN</code> (pointer to function) and <code>PROC</code> (procedure) are added to the ends.</p>
177 <p>To include the extension header, define <a class="el" href="build_guide.html#build_macros">GLFW_INCLUDE_GLEXT</a> before including the GLFW header.</p>
178 <div class="fragment"><div class="line"><span class="preprocessor">#define GLFW_INCLUDE_GLEXT</span></div><div class="line"><span class="preprocessor">#include &lt;GLFW/glfw3.h&gt;</span></div></div><!-- fragment --><h3><a class="anchor" id="context_glext_string"></a>
179 Checking for extensions</h3>
180 <p>A given machine may not actually support the extension (it may have older drivers or a graphics card that lacks the necessary hardware features), so it is necessary to check at run-time whether the context supports the extension. This is done with <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>.</p>
181 <div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="stringliteral">&quot;GL_ARB_debug_output&quot;</span>))</div><div class="line">{</div><div class="line"> <span class="comment">// The extension is supported by the current context</span></div><div class="line">}</div></div><!-- fragment --><p>The argument is a null terminated ASCII string with the extension name. If the extension is supported, <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a> returns <code>GLFW_TRUE</code>, otherwise it returns <code>GLFW_FALSE</code>.</p>
182 <h3><a class="anchor" id="context_glext_proc"></a>
183 Fetching function pointers</h3>
184 <p>Many extensions, though not all, require the use of new OpenGL functions. These functions often do not have entry points in the client API libraries of your operating system, making it necessary to fetch them at run time. You can retrieve pointers to these functions with <a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>.</p>
185 <div class="fragment"><div class="line">PFNGLGETDEBUGMESSAGELOGARBPROC pfnGetDebugMessageLog = <a class="code" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="stringliteral">&quot;glGetDebugMessageLogARB&quot;</span>);</div></div><!-- fragment --><p>In general, you should avoid giving the function pointer variables the (exact) same name as the function, as this may confuse your linker. Instead, you can use a different prefix, like above, or some other naming scheme.</p>
186 <p>Now that all the pieces have been introduced, here is what they might look like when used together.</p>
187 <div class="fragment"><div class="line"><span class="preprocessor">#define GLFW_INCLUDE_GLEXT</span></div><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="preprocessor">#define glGetDebugMessageLogARB pfnGetDebugMessageLog</span></div><div class="line">PFNGLGETDEBUGMESSAGELOGARBPROC pfnGetDebugMessageLog;</div><div class="line"></div><div class="line"><span class="comment">// Flag indicating whether the extension is supported</span></div><div class="line"><span class="keywordtype">int</span> has_ARB_debug_output = 0;</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> load_extensions(<span class="keywordtype">void</span>)</div><div class="line">{</div><div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="stringliteral">&quot;GL_ARB_debug_output&quot;</span>))</div><div class="line"> {</div><div class="line"> pfnGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGARBPROC)</div><div class="line"> <a class="code" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="stringliteral">&quot;glGetDebugMessageLogARB&quot;</span>);</div><div class="line"> has_ARB_debug_output = 1;</div><div class="line"> }</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> some_function(<span class="keywordtype">void</span>)</div><div class="line">{</div><div class="line"> <span class="keywordflow">if</span> (has_ARB_debug_output)</div><div class="line"> {</div><div class="line"> <span class="comment">// Now the extension function can be called as usual</span></div><div class="line"> glGetDebugMessageLogARB(...);</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --> </div></div><!-- contents -->
188 <address class="footer">
189 <p>
190 Last update on Thu Aug 18 2016 for GLFW 3.2.1
191 </p>
192 </address>
193 </body>
194 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: include Directory Reference</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 </div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 <div id="nav-path" class="navpath">
83 <ul>
84 <li class="navelem"><a class="el" href="dir_351f617146de9499414a6c099ebbe0ca.html">glfw-3.2.1</a></li><li class="navelem"><a class="el" href="dir_1f12d41534b9d9c99a183e145b58d6f3.html">include</a></li> </ul>
85 </div>
86 </div><!-- top -->
87 <div class="header">
88 <div class="headertitle">
89 <div class="title">include Directory Reference</div> </div>
90 </div><!--header-->
91 <div class="contents">
92 <table class="memberdecls">
93 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
94 Directories</h2></td></tr>
95 <tr class="memitem:dir_4bcf8e981abe5adb811ce4f57d70c9af"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_4bcf8e981abe5adb811ce4f57d70c9af.html">GLFW</a></td></tr>
96 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
97 </table>
98 </div><!-- contents -->
99 <address class="footer">
100 <p>
101 Last update on Thu Aug 18 2016 for GLFW 3.2.1
102 </p>
103 </address>
104 </body>
105 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: glfw-3.2.1 Directory Reference</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 </div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 <div id="nav-path" class="navpath">
83 <ul>
84 <li class="navelem"><a class="el" href="dir_351f617146de9499414a6c099ebbe0ca.html">glfw-3.2.1</a></li> </ul>
85 </div>
86 </div><!-- top -->
87 <div class="header">
88 <div class="headertitle">
89 <div class="title">glfw-3.2.1 Directory Reference</div> </div>
90 </div><!--header-->
91 <div class="contents">
92 <table class="memberdecls">
93 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
94 Directories</h2></td></tr>
95 <tr class="memitem:dir_1f12d41534b9d9c99a183e145b58d6f3"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_1f12d41534b9d9c99a183e145b58d6f3.html">include</a></td></tr>
96 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
97 </table>
98 </div><!-- contents -->
99 <address class="footer">
100 <p>
101 Last update on Thu Aug 18 2016 for GLFW 3.2.1
102 </p>
103 </address>
104 </body>
105 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <meta name="generator" content="Doxygen 1.8.11"/>
6 <title>GLFW: GLFW Directory Reference</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <script type="text/javascript" src="jquery.js"></script>
9 <script type="text/javascript" src="dynsections.js"></script>
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="search/searchdata.js"></script>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { init_search(); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 <link href="extra.css" rel="stylesheet" type="text/css"/>
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21 <div id="titlearea">
22 <div class="glfwheader">
23 <a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
24 <ul class="glfwnavbar">
25 <li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
26 <li><a href="http://www.glfw.org/download.html">Download</a></li>
27 <li><a href="http://www.glfw.org/media.html">Media</a></li>
28 <li><a href="http://www.glfw.org/community.html">Community</a></li>
29 </ul>
30 </div>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.11 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <div id="navrow1" class="tabs">
38 <ul class="tablist">
39 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 </div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 <div id="nav-path" class="navpath">
83 <ul>
84 <li class="navelem"><a class="el" href="dir_351f617146de9499414a6c099ebbe0ca.html">glfw-3.2.1</a></li><li class="navelem"><a class="el" href="dir_1f12d41534b9d9c99a183e145b58d6f3.html">include</a></li><li class="navelem"><a class="el" href="dir_4bcf8e981abe5adb811ce4f57d70c9af.html">GLFW</a></li> </ul>
85 </div>
86 </div><!-- top -->
87 <div class="header">
88 <div class="headertitle">
89 <div class="title">GLFW Directory Reference</div> </div>
90 </div><!--header-->
91 <div class="contents">
92 <table class="memberdecls">
93 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
94 Files</h2></td></tr>
95 <tr class="memitem:glfw3_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3_8h.html">glfw3.h</a> <a href="glfw3_8h_source.html">[code]</a></td></tr>
96 <tr class="memdesc:glfw3_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header of the GLFW 3 API. <br /></td></tr>
97 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
98 <tr class="memitem:glfw3native_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3native_8h.html">glfw3native.h</a> <a href="glfw3native_8h_source.html">[code]</a></td></tr>
99 <tr class="memdesc:glfw3native_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header of the native access functions. <br /></td></tr>
100 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
101 </table>
102 </div><!-- contents -->
103 <address class="footer">
104 <p>
105 Last update on Thu Aug 18 2016 for GLFW 3.2.1
106 </p>
107 </address>
108 </body>
109 </html>
0 /* The standard CSS for doxygen 1.8.11 */
1
2 body, table, div, p, dl {
3 font: 400 14px/22px Roboto,sans-serif;
4 }
5
6 /* @group Heading Levels */
7
8 h1.groupheader {
9 font-size: 150%;
10 }
11
12 .title {
13 font: 400 14px/28px Roboto,sans-serif;
14 font-size: 150%;
15 font-weight: bold;
16 margin: 10px 2px;
17 }
18
19 h2.groupheader {
20 border-bottom: 1px solid #879ECB;
21 color: #354C7B;
22 font-size: 150%;
23 font-weight: normal;
24 margin-top: 1.75em;
25 padding-top: 8px;
26 padding-bottom: 4px;
27 width: 100%;
28 }
29
30 h3.groupheader {
31 font-size: 100%;
32 }
33
34 h1, h2, h3, h4, h5, h6 {
35 -webkit-transition: text-shadow 0.5s linear;
36 -moz-transition: text-shadow 0.5s linear;
37 -ms-transition: text-shadow 0.5s linear;
38 -o-transition: text-shadow 0.5s linear;
39 transition: text-shadow 0.5s linear;
40 margin-right: 15px;
41 }
42
43 h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
44 text-shadow: 0 0 15px cyan;
45 }
46
47 dt {
48 font-weight: bold;
49 }
50
51 div.multicol {
52 -moz-column-gap: 1em;
53 -webkit-column-gap: 1em;
54 -moz-column-count: 3;
55 -webkit-column-count: 3;
56 }
57
58 p.startli, p.startdd {
59 margin-top: 2px;
60 }
61
62 p.starttd {
63 margin-top: 0px;
64 }
65
66 p.endli {
67 margin-bottom: 0px;
68 }
69
70 p.enddd {
71 margin-bottom: 4px;
72 }
73
74 p.endtd {
75 margin-bottom: 2px;
76 }
77
78 /* @end */
79
80 caption {
81 font-weight: bold;
82 }
83
84 span.legend {
85 font-size: 70%;
86 text-align: center;
87 }
88
89 h3.version {
90 font-size: 90%;
91 text-align: center;
92 }
93
94 div.qindex, div.navtab{
95 background-color: #EBEFF6;
96 border: 1px solid #A3B4D7;
97 text-align: center;
98 }
99
100 div.qindex, div.navpath {
101 width: 100%;
102 line-height: 140%;
103 }
104
105 div.navtab {
106 margin-right: 15px;
107 }
108
109 /* @group Link Styling */
110
111 a {
112 color: #3D578C;
113 font-weight: normal;
114 text-decoration: none;
115 }
116
117 .contents a:visited {
118 color: #4665A2;
119 }
120
121 a:hover {
122 text-decoration: underline;
123 }
124
125 a.qindex {
126 font-weight: bold;
127 }
128
129 a.qindexHL {
130 font-weight: bold;
131 background-color: #9CAFD4;
132 color: #ffffff;
133 border: 1px double #869DCA;
134 }
135
136 .contents a.qindexHL:visited {
137 color: #ffffff;
138 }
139
140 a.el {
141 font-weight: bold;
142 }
143
144 a.elRef {
145 }
146
147 a.code, a.code:visited, a.line, a.line:visited {
148 color: #4665A2;
149 }
150
151 a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
152 color: #4665A2;
153 }
154
155 /* @end */
156
157 dl.el {
158 margin-left: -1cm;
159 }
160
161 pre.fragment {
162 border: 1px solid #C4CFE5;
163 background-color: #FBFCFD;
164 padding: 4px 6px;
165 margin: 4px 8px 4px 2px;
166 overflow: auto;
167 word-wrap: break-word;
168 font-size: 9pt;
169 line-height: 125%;
170 font-family: monospace, fixed;
171 font-size: 105%;
172 }
173
174 div.fragment {
175 padding: 4px 6px;
176 margin: 4px 8px 4px 2px;
177 background-color: #FBFCFD;
178 border: 1px solid #C4CFE5;
179 }
180
181 div.line {
182 font-family: monospace, fixed;
183 font-size: 13px;
184 min-height: 13px;
185 line-height: 1.0;
186 text-wrap: unrestricted;
187 white-space: -moz-pre-wrap; /* Moz */
188 white-space: -pre-wrap; /* Opera 4-6 */
189 white-space: -o-pre-wrap; /* Opera 7 */
190 white-space: pre-wrap; /* CSS3 */
191 word-wrap: break-word; /* IE 5.5+ */
192 text-indent: -53px;
193 padding-left: 53px;
194 padding-bottom: 0px;
195 margin: 0px;
196 -webkit-transition-property: background-color, box-shadow;
197 -webkit-transition-duration: 0.5s;
198 -moz-transition-property: background-color, box-shadow;
199 -moz-transition-duration: 0.5s;
200 -ms-transition-property: background-color, box-shadow;
201 -ms-transition-duration: 0.5s;
202 -o-transition-property: background-color, box-shadow;
203 -o-transition-duration: 0.5s;
204 transition-property: background-color, box-shadow;
205 transition-duration: 0.5s;
206 }
207
208 div.line:after {
209 content:"\000A";
210 white-space: pre;
211 }
212
213 div.line.glow {
214 background-color: cyan;
215 box-shadow: 0 0 10px cyan;
216 }
217
218
219 span.lineno {
220 padding-right: 4px;
221 text-align: right;
222 border-right: 2px solid #0F0;
223 background-color: #E8E8E8;
224 white-space: pre;
225 }
226 span.lineno a {
227 background-color: #D8D8D8;
228 }
229
230 span.lineno a:hover {
231 background-color: #C8C8C8;
232 }
233
234 div.ah, span.ah {
235 background-color: black;
236 font-weight: bold;
237 color: #ffffff;
238 margin-bottom: 3px;
239 margin-top: 3px;
240 padding: 0.2em;
241 border: solid thin #333;
242 border-radius: 0.5em;
243 -webkit-border-radius: .5em;
244 -moz-border-radius: .5em;
245 box-shadow: 2px 2px 3px #999;
246 -webkit-box-shadow: 2px 2px 3px #999;
247 -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
248 background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
249 background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
250 }
251
252 div.classindex ul {
253 list-style: none;
254 padding-left: 0;
255 }
256
257 div.classindex span.ai {
258 display: inline-block;
259 }
260
261 div.groupHeader {
262 margin-left: 16px;
263 margin-top: 12px;
264 font-weight: bold;
265 }
266
267 div.groupText {
268 margin-left: 16px;
269 font-style: italic;
270 }
271
272 body {
273 background-color: white;
274 color: black;
275 margin: 0;
276 }
277
278 div.contents {
279 margin-top: 10px;
280 margin-left: 12px;
281 margin-right: 8px;
282 }
283
284 td.indexkey {
285 background-color: #EBEFF6;
286 font-weight: bold;
287 border: 1px solid #C4CFE5;
288 margin: 2px 0px 2px 0;
289 padding: 2px 10px;
290 white-space: nowrap;
291 vertical-align: top;
292 }
293
294 td.indexvalue {
295 background-color: #EBEFF6;
296 border: 1px solid #C4CFE5;
297 padding: 2px 10px;
298 margin: 2px 0px;
299 }
300
301 tr.memlist {
302 background-color: #EEF1F7;
303 }
304
305 p.formulaDsp {
306 text-align: center;
307 }
308
309 img.formulaDsp {
310
311 }
312
313 img.formulaInl {
314 vertical-align: middle;
315 }
316
317 div.center {
318 text-align: center;
319 margin-top: 0px;
320 margin-bottom: 0px;
321 padding: 0px;
322 }
323
324 div.center img {
325 border: 0px;
326 }
327
328 address.footer {
329 text-align: right;
330 padding-right: 12px;
331 }
332
333 img.footer {
334 border: 0px;
335 vertical-align: middle;
336 }
337
338 /* @group Code Colorization */
339
340 span.keyword {
341 color: #008000
342 }
343
344 span.keywordtype {
345 color: #604020
346 }
347
348 span.keywordflow {
349 color: #e08000
350 }
351
352 span.comment {
353 color: #800000
354 }
355
356 span.preprocessor {
357 color: #806020
358 }
359
360 span.stringliteral {
361 color: #002080
362 }
363
364 span.charliteral {
365 color: #008080
366 }
367
368 span.vhdldigit {
369 color: #ff00ff
370 }
371
372 span.vhdlchar {
373 color: #000000
374 }
375
376 span.vhdlkeyword {
377 color: #700070
378 }
379
380 span.vhdllogic {
381 color: #ff0000
382 }
383
384 blockquote {
385 background-color: #F7F8FB;
386 border-left: 2px solid #9CAFD4;
387 margin: 0 24px 0 4px;
388 padding: 0 12px 0 16px;
389 }
390
391 /* @end */
392
393 /*
394 .search {
395 color: #003399;
396 font-weight: bold;
397 }
398
399 form.search {
400 margin-bottom: 0px;
401 margin-top: 0px;
402 }
403
404 input.search {
405 font-size: 75%;
406 color: #000080;
407 font-weight: normal;
408 background-color: #e8eef2;
409 }
410 */
411
412 td.tiny {
413 font-size: 75%;
414 }
415
416 .dirtab {
417 padding: 4px;
418 border-collapse: collapse;
419 border: 1px solid #A3B4D7;
420 }
421
422 th.dirtab {
423 background: #EBEFF6;
424 font-weight: bold;
425 }
426
427 hr {
428 height: 0px;
429 border: none;
430 border-top: 1px solid #4A6AAA;
431 }
432
433 hr.footer {
434 height: 1px;
435 }
436
437 /* @group Member Descriptions */
438
439 table.memberdecls {
440 border-spacing: 0px;
441 padding: 0px;
442 }
443
444 .memberdecls td, .fieldtable tr {
445 -webkit-transition-property: background-color, box-shadow;
446 -webkit-transition-duration: 0.5s;
447 -moz-transition-property: background-color, box-shadow;
448 -moz-transition-duration: 0.5s;
449 -ms-transition-property: background-color, box-shadow;
450 -ms-transition-duration: 0.5s;
451 -o-transition-property: background-color, box-shadow;
452 -o-transition-duration: 0.5s;
453 transition-property: background-color, box-shadow;
454 transition-duration: 0.5s;
455 }
456
457 .memberdecls td.glow, .fieldtable tr.glow {
458 background-color: cyan;
459 box-shadow: 0 0 15px cyan;
460 }
461
462 .mdescLeft, .mdescRight,
463 .memItemLeft, .memItemRight,
464 .memTemplItemLeft, .memTemplItemRight, .memTemplParams {
465 background-color: #F9FAFC;
466 border: none;
467 margin: 4px;
468 padding: 1px 0 0 8px;
469 }
470
471 .mdescLeft, .mdescRight {
472 padding: 0px 8px 4px 8px;
473 color: #555;
474 }
475
476 .memSeparator {
477 border-bottom: 1px solid #DEE4F0;
478 line-height: 1px;
479 margin: 0px;
480 padding: 0px;
481 }
482
483 .memItemLeft, .memTemplItemLeft {
484 white-space: nowrap;
485 }
486
487 .memItemRight {
488 width: 100%;
489 }
490
491 .memTemplParams {
492 color: #4665A2;
493 white-space: nowrap;
494 font-size: 80%;
495 }
496
497 /* @end */
498
499 /* @group Member Details */
500
501 /* Styles for detailed member documentation */
502
503 .memtemplate {
504 font-size: 80%;
505 color: #4665A2;
506 font-weight: normal;
507 margin-left: 9px;
508 }
509
510 .memnav {
511 background-color: #EBEFF6;
512 border: 1px solid #A3B4D7;
513 text-align: center;
514 margin: 2px;
515 margin-right: 15px;
516 padding: 2px;
517 }
518
519 .mempage {
520 width: 100%;
521 }
522
523 .memitem {
524 padding: 0;
525 margin-bottom: 10px;
526 margin-right: 5px;
527 -webkit-transition: box-shadow 0.5s linear;
528 -moz-transition: box-shadow 0.5s linear;
529 -ms-transition: box-shadow 0.5s linear;
530 -o-transition: box-shadow 0.5s linear;
531 transition: box-shadow 0.5s linear;
532 display: table !important;
533 width: 100%;
534 }
535
536 .memitem.glow {
537 box-shadow: 0 0 15px cyan;
538 }
539
540 .memname {
541 font-weight: bold;
542 margin-left: 6px;
543 }
544
545 .memname td {
546 vertical-align: bottom;
547 }
548
549 .memproto, dl.reflist dt {
550 border-top: 1px solid #A8B8D9;
551 border-left: 1px solid #A8B8D9;
552 border-right: 1px solid #A8B8D9;
553 padding: 6px 0px 6px 0px;
554 color: #253555;
555 font-weight: bold;
556 text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
557 background-image:url('nav_f.png');
558 background-repeat:repeat-x;
559 background-color: #E2E8F2;
560 /* opera specific markup */
561 box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
562 border-top-right-radius: 4px;
563 border-top-left-radius: 4px;
564 /* firefox specific markup */
565 -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
566 -moz-border-radius-topright: 4px;
567 -moz-border-radius-topleft: 4px;
568 /* webkit specific markup */
569 -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
570 -webkit-border-top-right-radius: 4px;
571 -webkit-border-top-left-radius: 4px;
572
573 }
574
575 .memdoc, dl.reflist dd {
576 border-bottom: 1px solid #A8B8D9;
577 border-left: 1px solid #A8B8D9;
578 border-right: 1px solid #A8B8D9;
579 padding: 6px 10px 2px 10px;
580 background-color: #FBFCFD;
581 border-top-width: 0;
582 background-image:url('nav_g.png');
583 background-repeat:repeat-x;
584 background-color: #FFFFFF;
585 /* opera specific markup */
586 border-bottom-left-radius: 4px;
587 border-bottom-right-radius: 4px;
588 box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
589 /* firefox specific markup */
590 -moz-border-radius-bottomleft: 4px;
591 -moz-border-radius-bottomright: 4px;
592 -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
593 /* webkit specific markup */
594 -webkit-border-bottom-left-radius: 4px;
595 -webkit-border-bottom-right-radius: 4px;
596 -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
597 }
598
599 dl.reflist dt {
600 padding: 5px;
601 }
602
603 dl.reflist dd {
604 margin: 0px 0px 10px 0px;
605 padding: 5px;
606 }
607
608 .paramkey {
609 text-align: right;
610 }
611
612 .paramtype {
613 white-space: nowrap;
614 }
615
616 .paramname {
617 color: #602020;
618 white-space: nowrap;
619 }
620 .paramname em {
621 font-style: normal;
622 }
623 .paramname code {
624 line-height: 14px;
625 }
626
627 .params, .retval, .exception, .tparams {
628 margin-left: 0px;
629 padding-left: 0px;
630 }
631
632 .params .paramname, .retval .paramname {
633 font-weight: bold;
634 vertical-align: top;
635 }
636
637 .params .paramtype {
638 font-style: italic;
639 vertical-align: top;
640 }
641
642 .params .paramdir {
643 font-family: "courier new",courier,monospace;
644 vertical-align: top;
645 }
646
647 table.mlabels {
648 border-spacing: 0px;
649 }
650
651 td.mlabels-left {
652 width: 100%;
653 padding: 0px;
654 }
655
656 td.mlabels-right {
657 vertical-align: bottom;
658 padding: 0px;
659 white-space: nowrap;
660 }
661
662 span.mlabels {
663 margin-left: 8px;
664 }
665
666 span.mlabel {
667 background-color: #728DC1;
668 border-top:1px solid #5373B4;
669 border-left:1px solid #5373B4;
670 border-right:1px solid #C4CFE5;
671 border-bottom:1px solid #C4CFE5;
672 text-shadow: none;
673 color: white;
674 margin-right: 4px;
675 padding: 2px 3px;
676 border-radius: 3px;
677 font-size: 7pt;
678 white-space: nowrap;
679 vertical-align: middle;
680 }
681
682
683
684 /* @end */
685
686 /* these are for tree view inside a (index) page */
687
688 div.directory {
689 margin: 10px 0px;
690 border-top: 1px solid #9CAFD4;
691 border-bottom: 1px solid #9CAFD4;
692 width: 100%;
693 }
694
695 .directory table {
696 border-collapse:collapse;
697 }
698
699 .directory td {
700 margin: 0px;
701 padding: 0px;
702 vertical-align: top;
703 }
704
705 .directory td.entry {
706 white-space: nowrap;
707 padding-right: 6px;
708 padding-top: 3px;
709 }
710
711 .directory td.entry a {
712 outline:none;
713 }
714
715 .directory td.entry a img {
716 border: none;
717 }
718
719 .directory td.desc {
720 width: 100%;
721 padding-left: 6px;
722 padding-right: 6px;
723 padding-top: 3px;
724 border-left: 1px solid rgba(0,0,0,0.05);
725 }
726
727 .directory tr.even {
728 padding-left: 6px;
729 background-color: #F7F8FB;
730 }
731
732 .directory img {
733 vertical-align: -30%;
734 }
735
736 .directory .levels {
737 white-space: nowrap;
738 width: 100%;
739 text-align: right;
740 font-size: 9pt;
741 }
742
743 .directory .levels span {
744 cursor: pointer;
745 padding-left: 2px;
746 padding-right: 2px;
747 color: #3D578C;
748 }
749
750 .arrow {
751 color: #9CAFD4;
752 -webkit-user-select: none;
753 -khtml-user-select: none;
754 -moz-user-select: none;
755 -ms-user-select: none;
756 user-select: none;
757 cursor: pointer;
758 font-size: 80%;
759 display: inline-block;
760 width: 16px;
761 height: 22px;
762 }
763
764 .icon {
765 font-family: Arial, Helvetica;
766 font-weight: bold;
767 font-size: 12px;
768 height: 14px;
769 width: 16px;
770 display: inline-block;
771 background-color: #728DC1;
772 color: white;
773 text-align: center;
774 border-radius: 4px;
775 margin-left: 2px;
776 margin-right: 2px;
777 }
778
779 .icona {
780 width: 24px;
781 height: 22px;
782 display: inline-block;
783 }
784
785 .iconfopen {
786 width: 24px;
787 height: 18px;
788 margin-bottom: 4px;
789 background-image:url('folderopen.png');
790 background-position: 0px -4px;
791 background-repeat: repeat-y;
792 vertical-align:top;
793 display: inline-block;
794 }
795
796 .iconfclosed {
797 width: 24px;
798 height: 18px;
799 margin-bottom: 4px;
800 background-image:url('folderclosed.png');
801 background-position: 0px -4px;
802 background-repeat: repeat-y;
803 vertical-align:top;
804 display: inline-block;
805 }
806
807 .icondoc {
808 width: 24px;
809 height: 18px;
810 margin-bottom: 4px;
811 background-image:url('doc.png');
812 background-position: 0px -4px;
813 background-repeat: repeat-y;
814 vertical-align:top;
815 display: inline-block;
816 }
817
818 table.directory {
819 font: 400 14px Roboto,sans-serif;
820 }
821
822 /* @end */
823
824 div.dynheader {
825 margin-top: 8px;
826 -webkit-touch-callout: none;
827 -webkit-user-select: none;
828 -khtml-user-select: none;
829 -moz-user-select: none;
830 -ms-user-select: none;
831 user-select: none;
832 }
833
834 address {
835 font-style: normal;
836 color: #2A3D61;
837 }
838
839 table.doxtable caption {
840 caption-side: top;
841 }
842
843 table.doxtable {
844 border-collapse:collapse;
845 margin-top: 4px;
846 margin-bottom: 4px;
847 }
848
849 table.doxtable td, table.doxtable th {
850 border: 1px solid #2D4068;
851 padding: 3px 7px 2px;
852 }
853
854 table.doxtable th {
855 background-color: #374F7F;
856 color: #FFFFFF;
857 font-size: 110%;
858 padding-bottom: 4px;
859 padding-top: 5px;
860 }
861
862 table.fieldtable {
863 /*width: 100%;*/
864 margin-bottom: 10px;
865 border: 1px solid #A8B8D9;
866 border-spacing: 0px;
867 -moz-border-radius: 4px;
868 -webkit-border-radius: 4px;
869 border-radius: 4px;
870 -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
871 -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
872 box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
873 }
874
875 .fieldtable td, .fieldtable th {
876 padding: 3px 7px 2px;
877 }
878
879 .fieldtable td.fieldtype, .fieldtable td.fieldname {
880 white-space: nowrap;
881 border-right: 1px solid #A8B8D9;
882 border-bottom: 1px solid #A8B8D9;
883 vertical-align: top;
884 }
885
886 .fieldtable td.fieldname {
887 padding-top: 3px;
888 }
889
890 .fieldtable td.fielddoc {
891 border-bottom: 1px solid #A8B8D9;
892 /*width: 100%;*/
893 }
894
895 .fieldtable td.fielddoc p:first-child {
896 margin-top: 0px;
897 }
898
899 .fieldtable td.fielddoc p:last-child {
900 margin-bottom: 2px;
901 }
902
903 .fieldtable tr:last-child td {
904 border-bottom: none;
905 }
906
907 .fieldtable th {
908 background-image:url('nav_f.png');
909 background-repeat:repeat-x;
910 background-color: #E2E8F2;
911 font-size: 90%;
912 color: #253555;
913 padding-bottom: 4px;
914 padding-top: 5px;
915 text-align:left;
916 -moz-border-radius-topleft: 4px;
917 -moz-border-radius-topright: 4px;
918 -webkit-border-top-left-radius: 4px;
919 -webkit-border-top-right-radius: 4px;
920 border-top-left-radius: 4px;
921 border-top-right-radius: 4px;
922 border-bottom: 1px solid #A8B8D9;
923 }
924
925
926 .tabsearch {
927 top: 0px;
928 left: 10px;
929 height: 36px;
930 background-image: url('tab_b.png');
931 z-index: 101;
932 overflow: hidden;
933 font-size: 13px;
934 }
935
936 .navpath ul
937 {
938 font-size: 11px;
939 background-image:url('tab_b.png');
940 background-repeat:repeat-x;
941 background-position: 0 -5px;
942 height:30px;
943 line-height:30px;
944 color:#8AA0CC;
945 border:solid 1px #C2CDE4;
946 overflow:hidden;
947 margin:0px;
948 padding:0px;
949 }
950
951 .navpath li
952 {
953 list-style-type:none;
954 float:left;
955 padding-left:10px;
956 padding-right:15px;
957 background-image:url('bc_s.png');
958 background-repeat:no-repeat;
959 background-position:right;
960 color:#364D7C;
961 }
962
963 .navpath li.navelem a
964 {
965 height:32px;
966 display:block;
967 text-decoration: none;
968 outline: none;
969 color: #283A5D;
970 font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
971 text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
972 text-decoration: none;
973 }
974
975 .navpath li.navelem a:hover
976 {
977 color:#6884BD;
978 }
979
980 .navpath li.footer
981 {
982 list-style-type:none;
983 float:right;
984 padding-left:10px;
985 padding-right:15px;
986 background-image:none;
987 background-repeat:no-repeat;
988 background-position:right;
989 color:#364D7C;
990 font-size: 8pt;
991 }
992
993
994 div.summary
995 {
996 float: right;
997 font-size: 8pt;
998 padding-right: 5px;
999 width: 50%;
1000 text-align: right;
1001 }
1002
1003 div.summary a
1004 {
1005 white-space: nowrap;