Commit 1015eb6b authored by Nick Sharp's avatar Nick Sharp
Browse files

Initial commit

parents
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index_a"><span>a</span></a></li>
<li><a href="globals_b.html#index_b"><span>b</span></a></li>
<li><a href="globals_c.html#index_c"><span>c</span></a></li>
<li><a href="globals_d.html#index_d"><span>d</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_g.html#index_g"><span>g</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_k.html#index_k"><span>k</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_o.html#index_o"><span>o</span></a></li>
<li class="current"><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_r.html#index_r"><span>r</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
<li><a href="globals_v.html#index_v"><span>v</span></a></li>
<li><a href="globals_w.html#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>GLFW_PLATFORM_ERROR
: <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">glfw3.h</a>
</li>
<li>GLFW_PRESS
: <a class="el" href="group__input.html#ga2485743d0b59df3791c45951c4195265">glfw3.h</a>
</li>
<li>glfwPollEvents()
: <a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfw3.h</a>
</li>
<li>glfwPostEmptyEvent()
: <a class="el" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfw3.h</a>
</li>
</ul>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index_a"><span>a</span></a></li>
<li><a href="globals_b.html#index_b"><span>b</span></a></li>
<li><a href="globals_c.html#index_c"><span>c</span></a></li>
<li><a href="globals_d.html#index_d"><span>d</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_g.html#index_g"><span>g</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_k.html#index_k"><span>k</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_o.html#index_o"><span>o</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li class="current"><a href="globals_r.html#index_r"><span>r</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
<li><a href="globals_v.html#index_v"><span>v</span></a></li>
<li><a href="globals_w.html#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>GLFW_RED_BITS
: <a class="el" href="glfw3_8h.html#af78ed8e417dbcc1e354906cc2708c982">glfw3.h</a>
</li>
<li>GLFW_REFRESH_RATE
: <a class="el" href="glfw3_8h.html#a0f20825e6e47ee8ba389024519682212">glfw3.h</a>
</li>
<li>GLFW_RELEASE
: <a class="el" href="group__input.html#gada11d965c4da13090ad336e030e4d11f">glfw3.h</a>
</li>
<li>GLFW_RELEASE_BEHAVIOR_FLUSH
: <a class="el" href="glfw3_8h.html#a999961d391db49cb4f949c1dece0e13b">glfw3.h</a>
</li>
<li>GLFW_RELEASE_BEHAVIOR_NONE
: <a class="el" href="glfw3_8h.html#afca09088eccacdce4b59036cfae349c5">glfw3.h</a>
</li>
<li>GLFW_REPEAT
: <a class="el" href="group__input.html#gac96fd3b9fc66c6f0eebaf6532595338f">glfw3.h</a>
</li>
<li>GLFW_RESIZABLE
: <a class="el" href="glfw3_8h.html#adba13c7a1b3aa40831eb2beedbd5bd1d">glfw3.h</a>
</li>
<li>glfwRestoreWindow()
: <a class="el" href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7">glfw3.h</a>
</li>
</ul>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index_a"><span>a</span></a></li>
<li><a href="globals_b.html#index_b"><span>b</span></a></li>
<li><a href="globals_c.html#index_c"><span>c</span></a></li>
<li><a href="globals_d.html#index_d"><span>d</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_g.html#index_g"><span>g</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_k.html#index_k"><span>k</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_o.html#index_o"><span>o</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_r.html#index_r"><span>r</span></a></li>
<li class="current"><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
<li><a href="globals_v.html#index_v"><span>v</span></a></li>
<li><a href="globals_w.html#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>GLFW_SAMPLES
: <a class="el" href="glfw3_8h.html#a2cdf86fdcb7722fb8829c4e201607535">glfw3.h</a>
</li>
<li>GLFW_SRGB_CAPABLE
: <a class="el" href="glfw3_8h.html#a444a8f00414a63220591f9fdb7b5642b">glfw3.h</a>
</li>
<li>GLFW_STENCIL_BITS
: <a class="el" href="glfw3_8h.html#a5339890a45a1fb38e93cb9fcc5fd069d">glfw3.h</a>
</li>
<li>GLFW_STEREO
: <a class="el" href="glfw3_8h.html#a83d991efca02537e2d69969135b77b03">glfw3.h</a>
</li>
<li>GLFW_STICKY_KEYS
: <a class="el" href="glfw3_8h.html#ae3bbe2315b7691ab088159eb6c9110fc">glfw3.h</a>
</li>
<li>GLFW_STICKY_MOUSE_BUTTONS
: <a class="el" href="glfw3_8h.html#a4d7ce8ce71030c3b04e2b78145bc59d1">glfw3.h</a>
</li>
<li>glfwSetCharCallback()
: <a class="el" href="group__input.html#ga556239421c6a5a243c66fca28da9f742">glfw3.h</a>
</li>
<li>glfwSetCharModsCallback()
: <a class="el" href="group__input.html#ga3f55ef5dc03a374e567f068b13c94afc">glfw3.h</a>
</li>
<li>glfwSetClipboardString()
: <a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfw3.h</a>
</li>
<li>glfwSetCursor()
: <a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfw3.h</a>
</li>
<li>glfwSetCursorEnterCallback()
: <a class="el" href="group__input.html#gaa299c41dd0a3d171d166354e01279e04">glfw3.h</a>
</li>
<li>glfwSetCursorPos()
: <a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfw3.h</a>
</li>
<li>glfwSetCursorPosCallback()
: <a class="el" href="group__input.html#ga7dad39486f2c7591af7fb25134a2501d">glfw3.h</a>
</li>
<li>glfwSetDropCallback()
: <a class="el" href="group__input.html#ga41291bf15dd3ff564b3143aa6dc74a4b">glfw3.h</a>
</li>
<li>glfwSetErrorCallback()
: <a class="el" href="group__init.html#gaa5d796c3cf7c1a7f02f845486333fb5f">glfw3.h</a>
</li>
<li>glfwSetFramebufferSizeCallback()
: <a class="el" href="group__window.html#ga3203461a5303bf289f2e05f854b2f7cf">glfw3.h</a>
</li>
<li>glfwSetGamma()
: <a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfw3.h</a>
</li>
<li>glfwSetGammaRamp()
: <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfw3.h</a>
</li>
<li>glfwSetInputMode()
: <a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfw3.h</a>
</li>
<li>glfwSetJoystickCallback()
: <a class="el" href="group__input.html#gab1dc8379f1b82bb660a6b9c9fa06ca07">glfw3.h</a>
</li>
<li>glfwSetKeyCallback()
: <a class="el" href="group__input.html#ga7e496507126f35ea72f01b2e6ef6d155">glfw3.h</a>
</li>
<li>glfwSetMonitorCallback()
: <a class="el" href="group__monitor.html#gac3fe0f647f68b731f99756cd81897378">glfw3.h</a>
</li>
<li>glfwSetMouseButtonCallback()
: <a class="el" href="group__input.html#gaef49b72d84d615bca0a6ed65485e035d">glfw3.h</a>
</li>
<li>glfwSetScrollCallback()
: <a class="el" href="group__input.html#gacf02eb10504352f16efda4593c3ce60e">glfw3.h</a>
</li>
<li>glfwSetTime()
: <a class="el" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfw3.h</a>
</li>
<li>glfwSetWindowAspectRatio()
: <a class="el" href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937">glfw3.h</a>
</li>
<li>glfwSetWindowCloseCallback()
: <a class="el" href="group__window.html#gaade9264e79fae52bdb78e2df11ee8d6a">glfw3.h</a>
</li>
<li>glfwSetWindowFocusCallback()
: <a class="el" href="group__window.html#ga25d1c584edb375d7711c5c3548ba711f">glfw3.h</a>
</li>
<li>glfwSetWindowIcon()
: <a class="el" href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5">glfw3.h</a>
</li>
<li>glfwSetWindowIconifyCallback()
: <a class="el" href="group__window.html#gab1ea7263081c0e073b8d5b91d6ffd367">glfw3.h</a>
</li>
<li>glfwSetWindowMonitor()
: <a class="el" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfw3.h</a>
</li>
<li>glfwSetWindowPos()
: <a class="el" href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8">glfw3.h</a>
</li>
<li>glfwSetWindowPosCallback()
: <a class="el" href="group__window.html#ga2837d4d240659feb4268fcb6530a6ba1">glfw3.h</a>
</li>
<li>glfwSetWindowRefreshCallback()
: <a class="el" href="group__window.html#ga4569b76e8ac87c55b53199e6becd97eb">glfw3.h</a>
</li>
<li>glfwSetWindowShouldClose()
: <a class="el" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfw3.h</a>
</li>
<li>glfwSetWindowSize()
: <a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfw3.h</a>
</li>
<li>glfwSetWindowSizeCallback()
: <a class="el" href="group__window.html#gaa40cd24840daa8c62f36cafc847c72b6">glfw3.h</a>
</li>
<li>glfwSetWindowSizeLimits()
: <a class="el" href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90">glfw3.h</a>
</li>
<li>glfwSetWindowTitle()
: <a class="el" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfw3.h</a>
</li>
<li>glfwSetWindowUserPointer()
: <a class="el" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfw3.h</a>
</li>
<li>glfwShowWindow()
: <a class="el" href="group__window.html#ga61be47917b72536a148300f46494fc66">glfw3.h</a>
</li>
<li>glfwSwapBuffers()
: <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfw3.h</a>
</li>
<li>glfwSwapInterval()
: <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfw3.h</a>
</li>
</ul>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index_a"><span>a</span></a></li>
<li><a href="globals_b.html#index_b"><span>b</span></a></li>
<li><a href="globals_c.html#index_c"><span>c</span></a></li>
<li><a href="globals_d.html#index_d"><span>d</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_g.html#index_g"><span>g</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_k.html#index_k"><span>k</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_o.html#index_o"><span>o</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_r.html#index_r"><span>r</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li class="current"><a href="globals_t.html#index_t"><span>t</span></a></li>
<li><a href="globals_v.html#index_v"><span>v</span></a></li>
<li><a href="globals_w.html#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
<li>GLFW_TRUE
: <a class="el" href="glfw3_8h.html#a2744fbb29b5631bb28802dbe0cf36eba">glfw3.h</a>
</li>
<li>glfwTerminate()
: <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfw3.h</a>
</li>
</ul>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>GLFWcharfun
: <a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">glfw3.h</a>
</li>
<li>GLFWcharmodsfun
: <a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">glfw3.h</a>
</li>
<li>GLFWcursor
: <a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">glfw3.h</a>
</li>
<li>GLFWcursorenterfun
: <a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">glfw3.h</a>
</li>
<li>GLFWcursorposfun
: <a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">glfw3.h</a>
</li>
<li>GLFWdropfun
: <a class="el" href="group__input.html#gab71f4ca80b651462852e601caf308c4a">glfw3.h</a>
</li>
<li>GLFWerrorfun
: <a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">glfw3.h</a>
</li>
<li>GLFWframebuffersizefun
: <a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">glfw3.h</a>
</li>
<li>GLFWgammaramp
: <a class="el" href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">glfw3.h</a>
</li>
<li>GLFWglproc
: <a class="el" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">glfw3.h</a>
</li>
<li>GLFWimage
: <a class="el" href="glfw3_8h.html#ac81c32f4437de7b3aa58ab62c3d9e5b1">glfw3.h</a>
</li>
<li>GLFWjoystickfun
: <a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">glfw3.h</a>
</li>
<li>GLFWkeyfun
: <a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">glfw3.h</a>
</li>
<li>GLFWmonitor
: <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">glfw3.h</a>
</li>
<li>GLFWmonitorfun
: <a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">glfw3.h</a>
</li>
<li>GLFWmousebuttonfun
: <a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">glfw3.h</a>
</li>
<li>GLFWscrollfun
: <a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">glfw3.h</a>
</li>
<li>GLFWvidmode
: <a class="el" href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">glfw3.h</a>
</li>
<li>GLFWvkproc
: <a class="el" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">glfw3.h</a>
</li>
<li>GLFWwindow
: <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">glfw3.h</a>
</li>
<li>GLFWwindowclosefun
: <a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">glfw3.h</a>
</li>
<li>GLFWwindowfocusfun
: <a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">glfw3.h</a>
</li>
<li>GLFWwindowiconifyfun
: <a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">glfw3.h</a>
</li>
<li>GLFWwindowposfun
: <a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">glfw3.h</a>
</li>
<li>GLFWwindowrefreshfun
: <a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">glfw3.h</a>
</li>
<li>GLFWwindowsizefun
: <a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">glfw3.h</a>
</li>
</ul>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index_a"><span>a</span></a></li>
<li><a href="globals_b.html#index_b"><span>b</span></a></li>
<li><a href="globals_c.html#index_c"><span>c</span></a></li>
<li><a href="globals_d.html#index_d"><span>d</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_g.html#index_g"><span>g</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_k.html#index_k"><span>k</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_o.html#index_o"><span>o</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_r.html#index_r"><span>r</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
<li class="current"><a href="globals_v.html#index_v"><span>v</span></a></li>
<li><a href="globals_w.html#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>GLFW_VERSION_MAJOR
: <a class="el" href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">glfw3.h</a>
</li>
<li>GLFW_VERSION_MINOR
: <a class="el" href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">glfw3.h</a>
</li>
<li>GLFW_VERSION_REVISION
: <a class="el" href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">glfw3.h</a>
</li>
<li>GLFW_VERSION_UNAVAILABLE
: <a class="el" href="group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462">glfw3.h</a>
</li>
<li>GLFW_VISIBLE
: <a class="el" href="glfw3_8h.html#afb3cdc45297e06d8f1eb13adc69ca6c4">glfw3.h</a>
</li>
<li>GLFW_VRESIZE_CURSOR
: <a class="el" href="group__shapes.html#gaf024f0e1ff8366fb2b5c260509a1fce5">glfw3.h</a>
</li>
<li>glfwVulkanSupported()
: <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfw3.h</a>
</li>
</ul>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index_a"><span>a</span></a></li>
<li><a href="globals_b.html#index_b"><span>b</span></a></li>
<li><a href="globals_c.html#index_c"><span>c</span></a></li>
<li><a href="globals_d.html#index_d"><span>d</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_g.html#index_g"><span>g</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_k.html#index_k"><span>k</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_o.html#index_o"><span>o</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_r.html#index_r"><span>r</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
<li><a href="globals_v.html#index_v"><span>v</span></a></li>
<li class="current"><a href="globals_w.html#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
<li>glfwWaitEvents()
: <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfw3.h</a>
</li>
<li>glfwWaitEventsTimeout()
: <a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfw3.h</a>
</li>
<li>glfwWindowHint()
: <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfw3.h</a>
</li>
<li>glfwWindowShouldClose()
: <a class="el" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfw3.h</a>
</li>
</ul>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Mouse buttons</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">Mouse buttons<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga181a6e875251fd8671654eff00f9112e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga181a6e875251fd8671654eff00f9112e">GLFW_MOUSE_BUTTON_1</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga181a6e875251fd8671654eff00f9112e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga604b39b92c88ce9bd332e97fc3f4156c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga604b39b92c88ce9bd332e97fc3f4156c">GLFW_MOUSE_BUTTON_2</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga604b39b92c88ce9bd332e97fc3f4156c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0130d505563d0236a6f85545f19e1721"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga0130d505563d0236a6f85545f19e1721">GLFW_MOUSE_BUTTON_3</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga0130d505563d0236a6f85545f19e1721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53f4097bb01d5521c7d9513418c91ca9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga53f4097bb01d5521c7d9513418c91ca9">GLFW_MOUSE_BUTTON_4</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:ga53f4097bb01d5521c7d9513418c91ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf08c4ddecb051d3d9667db1d5e417c9c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#gaf08c4ddecb051d3d9667db1d5e417c9c">GLFW_MOUSE_BUTTON_5</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:gaf08c4ddecb051d3d9667db1d5e417c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8513e06aab8aa393b595f22c6d8257a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#gae8513e06aab8aa393b595f22c6d8257a">GLFW_MOUSE_BUTTON_6</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:gae8513e06aab8aa393b595f22c6d8257a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b02a1ab55dde45b3a3883d54ffd7dc7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga8b02a1ab55dde45b3a3883d54ffd7dc7">GLFW_MOUSE_BUTTON_7</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:ga8b02a1ab55dde45b3a3883d54ffd7dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35d5c4263e0dc0d0a4731ca6c562f32c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga35d5c4263e0dc0d0a4731ca6c562f32c">GLFW_MOUSE_BUTTON_8</a>&#160;&#160;&#160;7</td></tr>
<tr class="separator:ga35d5c4263e0dc0d0a4731ca6c562f32c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1fd86a4518a9141ec7bcde2e15a2fdf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#gab1fd86a4518a9141ec7bcde2e15a2fdf">GLFW_MOUSE_BUTTON_LAST</a>&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga35d5c4263e0dc0d0a4731ca6c562f32c">GLFW_MOUSE_BUTTON_8</a></td></tr>
<tr class="separator:gab1fd86a4518a9141ec7bcde2e15a2fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf37100431dcd5082d48f95ee8bc8cd56"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#gaf37100431dcd5082d48f95ee8bc8cd56">GLFW_MOUSE_BUTTON_LEFT</a>&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga181a6e875251fd8671654eff00f9112e">GLFW_MOUSE_BUTTON_1</a></td></tr>
<tr class="separator:gaf37100431dcd5082d48f95ee8bc8cd56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e2f2cf3c4942df73cc094247d275e74"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga3e2f2cf3c4942df73cc094247d275e74">GLFW_MOUSE_BUTTON_RIGHT</a>&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga604b39b92c88ce9bd332e97fc3f4156c">GLFW_MOUSE_BUTTON_2</a></td></tr>
<tr class="separator:ga3e2f2cf3c4942df73cc094247d275e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34a4d2a701434f763fd93a2ff842b95a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga34a4d2a701434f763fd93a2ff842b95a">GLFW_MOUSE_BUTTON_MIDDLE</a>&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga0130d505563d0236a6f85545f19e1721">GLFW_MOUSE_BUTTON_3</a></td></tr>
<tr class="separator:ga34a4d2a701434f763fd93a2ff842b95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>See <a class="el" href="input_guide.html#input_mouse_button">mouse button input</a> for how these are used. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga181a6e875251fd8671654eff00f9112e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_1&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga604b39b92c88ce9bd332e97fc3f4156c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_2&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0130d505563d0236a6f85545f19e1721"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_3&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga53f4097bb01d5521c7d9513418c91ca9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_4&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf08c4ddecb051d3d9667db1d5e417c9c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_5&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae8513e06aab8aa393b595f22c6d8257a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_6&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8b02a1ab55dde45b3a3883d54ffd7dc7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_7&#160;&#160;&#160;6</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga35d5c4263e0dc0d0a4731ca6c562f32c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_8&#160;&#160;&#160;7</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gab1fd86a4518a9141ec7bcde2e15a2fdf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_LAST&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga35d5c4263e0dc0d0a4731ca6c562f32c">GLFW_MOUSE_BUTTON_8</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf37100431dcd5082d48f95ee8bc8cd56"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_LEFT&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga181a6e875251fd8671654eff00f9112e">GLFW_MOUSE_BUTTON_1</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga34a4d2a701434f763fd93a2ff842b95a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_MIDDLE&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga0130d505563d0236a6f85545f19e1721">GLFW_MOUSE_BUTTON_3</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga3e2f2cf3c4942df73cc094247d275e74"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOUSE_BUTTON_RIGHT&#160;&#160;&#160;<a class="el" href="group__buttons.html#ga604b39b92c88ce9bd332e97fc3f4156c">GLFW_MOUSE_BUTTON_2</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Context reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Context reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a>) (void)</td></tr>
<tr class="memdesc:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Client API function pointer type. <a href="#ga3d47c2d2fbe0be9c505d0e04e91a133c">More...</a><br /></td></tr>
<tr class="separator:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1c04dc242268f827290fe40aa1c91157"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga1c04dc242268f827290fe40aa1c91157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the context of the specified window current for the calling thread. <a href="#ga1c04dc242268f827290fe40aa1c91157">More...</a><br /></td></tr>
<tr class="separator:ga1c04dc242268f827290fe40aa1c91157"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a> (void)</td></tr>
<tr class="memdesc:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the window whose context is current on the calling thread. <a href="#gac84759b1f6c2d271a4fea8ae89ec980d">More...</a><br /></td></tr>
<tr class="separator:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d4e0cdf151b5e579bd67f13202994ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> (int interval)</td></tr>
<tr class="memdesc:ga6d4e0cdf151b5e579bd67f13202994ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the swap interval for the current context. <a href="#ga6d4e0cdf151b5e579bd67f13202994ed">More...</a><br /></td></tr>
<tr class="separator:ga6d4e0cdf151b5e579bd67f13202994ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga87425065c011cef1ebd6aac75e059dfa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a> (const char *extension)</td></tr>
<tr class="memdesc:ga87425065c011cef1ebd6aac75e059dfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the specified extension is available. <a href="#ga87425065c011cef1ebd6aac75e059dfa">More...</a><br /></td></tr>
<tr class="separator:ga87425065c011cef1ebd6aac75e059dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35f1837e6f666781842483937612f163"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a> (const char *procname)</td></tr>
<tr class="memdesc:ga35f1837e6f666781842483937612f163"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of the specified function for the current context. <a href="#ga35f1837e6f666781842483937612f163">More...</a><br /></td></tr>
<tr class="separator:ga35f1837e6f666781842483937612f163"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is the reference documentation for OpenGL and OpenGL ES context related functions. For more task-oriented information, see the <a class="el" href="context_guide.html">Context guide</a>. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga3d47c2d2fbe0be9c505d0e04e91a133c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWglproc) (void)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Generic function pointer used for returning client API function pointers without forcing a cast from a regular pointer.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="context_guide.html#context_glext">OpenGL and OpenGL ES extensions</a> </dd>
<dd>
<a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163" title="Returns the address of the specified function for the current context. ">glfwGetProcAddress</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga87425065c011cef1ebd6aac75e059dfa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwExtensionSupported </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>extension</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns whether the specified <a class="el" href="context_guide.html#context_glext">API extension</a> is supported by the current OpenGL or OpenGL ES context. It searches both for client API extension and context creation API extensions.</p>
<p>A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
<p>As this functions retrieves and searches one or more extension strings each call, it is recommended that you cache its results if it is going to be used frequently. The extension strings will not change during the lifetime of a context, so there is no danger in doing this.</p>
<p>This function does not apply to Vulkan. If you are using Vulkan, see <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a>, <code>vkEnumerateInstanceExtensionProperties</code> and <code>vkEnumerateDeviceExtensionProperties</code> instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">extension</td><td>The ASCII encoded name of the extension. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if the extension is available, or <code>GLFW_FALSE</code> otherwise.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a>, <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="context_guide.html#context_glext">OpenGL and OpenGL ES extensions</a> </dd>
<dd>
<a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163" title="Returns the address of the specified function for the current context. ">glfwGetProcAddress</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gac84759b1f6c2d271a4fea8ae89ec980d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* glfwGetCurrentContext </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the window whose OpenGL or OpenGL ES context is current on the calling thread.</p>
<dl class="section return"><dt>Returns</dt><dd>The window whose context is current, or <code>NULL</code> if no window's context is current.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="context_guide.html#context_current">Current context</a> </dd>
<dd>
<a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157" title="Makes the context of the specified window current for the calling thread. ">glfwMakeContextCurrent</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga35f1837e6f666781842483937612f163"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a> glfwGetProcAddress </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>procname</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the address of the specified OpenGL or OpenGL ES <a class="el" href="context_guide.html#context_glext">core or extension function</a>, if it is supported by the current context.</p>
<p>A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
<p>This function does not apply to Vulkan. If you are rendering with Vulkan, see <a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a>, <code>vkGetInstanceProcAddr</code> and <code>vkGetDeviceProcAddr</code> instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">procname</td><td>The ASCII encoded name of the function. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The address of the function, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>The address of a given function is not guaranteed to be the same between contexts.</dd>
<dd>
This function may return a non-<code>NULL</code> address despite the associated version or extension not being available. Always check the context version or extension string first.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned function pointer is valid until the context is destroyed or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="context_guide.html#context_glext">OpenGL and OpenGL ES extensions</a> </dd>
<dd>
<a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa" title="Returns whether the specified extension is available. ">glfwExtensionSupported</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1c04dc242268f827290fe40aa1c91157"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwMakeContextCurrent </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function makes the OpenGL or OpenGL ES context of the specified window current on the calling thread. A context can only be made current on a single thread at a time and each thread can have only a single current context at a time.</p>
<p>By default, making a context non-current implicitly forces a pipeline flush. On machines that support <code>GL_KHR_context_flush_control</code>, you can control whether a context performs this flush by setting the <a class="el" href="window_guide.html#window_hints_ctx">GLFW_CONTEXT_RELEASE_BEHAVIOR</a> window hint.</p>
<p>The specified window must have an OpenGL or OpenGL ES context. Specifying a window without a context will generate a <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> error.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose context to make current, or <code>NULL</code> to detach the current context.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="context_guide.html#context_current">Current context</a> </dd>
<dd>
<a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d" title="Returns the window whose context is current on the calling thread. ">glfwGetCurrentContext</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga6d4e0cdf151b5e579bd67f13202994ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSwapInterval </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>interval</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the swap interval for the current OpenGL or OpenGL ES context, i.e. the number of screen updates to wait from the time <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a> was called before swapping the buffers and returning. This is sometimes called <em>vertical synchronization</em>, <em>vertical retrace synchronization</em> or just <em>vsync</em>.</p>
<p>Contexts that support either of the <code>WGL_EXT_swap_control_tear</code> and <code>GLX_EXT_swap_control_tear</code> extensions also accept negative swap intervals, which allow the driver to swap even if a frame arrives a little bit late. You can check for the presence of these extensions using <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>. For more information about swap tearing, see the extension specifications.</p>
<p>A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
<p>This function does not apply to Vulkan. If you are rendering with Vulkan, see the present mode of your swapchain instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">interval</td><td>The minimum number of screen updates to wait for until the buffers are swapped by <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>This function is not called during context creation, leaving the swap interval set to whatever is the default on that platform. This is done because some swap interval extensions used by GLFW do not allow the swap interval to be reset to zero once it has been set to a non-zero value.</dd>
<dd>
Some GPU drivers do not honor the requested swap interval, either because of a user setting that overrides the application's request or due to bugs in the driver.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#buffer_swap">Buffer swapping</a> </dd>
<dd>
<a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14" title="Swaps the front and back buffers of the specified window. ">glfwSwapBuffers</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Error codes</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">Error codes<div class="ingroups"><a class="el" href="group__init.html">Initialization, version and error reference</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga2374ee02c177f12e1fa76ff3ed15e14a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>&#160;&#160;&#160;0x00010001</td></tr>
<tr class="memdesc:ga2374ee02c177f12e1fa76ff3ed15e14a"><td class="mdescLeft">&#160;</td><td class="mdescRight">GLFW has not been initialized. <a href="#ga2374ee02c177f12e1fa76ff3ed15e14a">More...</a><br /></td></tr>
<tr class="separator:ga2374ee02c177f12e1fa76ff3ed15e14a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8290386e9528ccb9e42a3a4e16fc0d0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a>&#160;&#160;&#160;0x00010002</td></tr>
<tr class="memdesc:gaa8290386e9528ccb9e42a3a4e16fc0d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">No context is current for this thread. <a href="#gaa8290386e9528ccb9e42a3a4e16fc0d0">More...</a><br /></td></tr>
<tr class="separator:gaa8290386e9528ccb9e42a3a4e16fc0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76f6bb9c4eea73db675f096b404593ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a>&#160;&#160;&#160;0x00010003</td></tr>
<tr class="memdesc:ga76f6bb9c4eea73db675f096b404593ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the arguments to the function was an invalid enum value. <a href="#ga76f6bb9c4eea73db675f096b404593ce">More...</a><br /></td></tr>
<tr class="separator:ga76f6bb9c4eea73db675f096b404593ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf2ef9aa8202c2b82ac2d921e554c687"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a>&#160;&#160;&#160;0x00010004</td></tr>
<tr class="memdesc:gaaf2ef9aa8202c2b82ac2d921e554c687"><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the arguments to the function was an invalid value. <a href="#gaaf2ef9aa8202c2b82ac2d921e554c687">More...</a><br /></td></tr>
<tr class="separator:gaaf2ef9aa8202c2b82ac2d921e554c687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9023953a2bcb98c2906afd071d21ee7f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#ga9023953a2bcb98c2906afd071d21ee7f">GLFW_OUT_OF_MEMORY</a>&#160;&#160;&#160;0x00010005</td></tr>
<tr class="memdesc:ga9023953a2bcb98c2906afd071d21ee7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">A memory allocation failed. <a href="#ga9023953a2bcb98c2906afd071d21ee7f">More...</a><br /></td></tr>
<tr class="separator:ga9023953a2bcb98c2906afd071d21ee7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56882b290db23261cc6c053c40c2d08e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a>&#160;&#160;&#160;0x00010006</td></tr>
<tr class="memdesc:ga56882b290db23261cc6c053c40c2d08e"><td class="mdescLeft">&#160;</td><td class="mdescRight">GLFW could not find support for the requested API on the system. <a href="#ga56882b290db23261cc6c053c40c2d08e">More...</a><br /></td></tr>
<tr class="separator:ga56882b290db23261cc6c053c40c2d08e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad16c5565b4a69f9c2a9ac2c0dbc89462"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462">GLFW_VERSION_UNAVAILABLE</a>&#160;&#160;&#160;0x00010007</td></tr>
<tr class="memdesc:gad16c5565b4a69f9c2a9ac2c0dbc89462"><td class="mdescLeft">&#160;</td><td class="mdescRight">The requested OpenGL or OpenGL ES version is not available. <a href="#gad16c5565b4a69f9c2a9ac2c0dbc89462">More...</a><br /></td></tr>
<tr class="separator:gad16c5565b4a69f9c2a9ac2c0dbc89462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad44162d78100ea5e87cdd38426b8c7a1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>&#160;&#160;&#160;0x00010008</td></tr>
<tr class="memdesc:gad44162d78100ea5e87cdd38426b8c7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">A platform-specific error occurred that does not match any of the more specific categories. <a href="#gad44162d78100ea5e87cdd38426b8c7a1">More...</a><br /></td></tr>
<tr class="separator:gad44162d78100ea5e87cdd38426b8c7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga196e125ef261d94184e2b55c05762f14"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#ga196e125ef261d94184e2b55c05762f14">GLFW_FORMAT_UNAVAILABLE</a>&#160;&#160;&#160;0x00010009</td></tr>
<tr class="memdesc:ga196e125ef261d94184e2b55c05762f14"><td class="mdescLeft">&#160;</td><td class="mdescRight">The requested format is not supported or available. <a href="#ga196e125ef261d94184e2b55c05762f14">More...</a><br /></td></tr>
<tr class="separator:ga196e125ef261d94184e2b55c05762f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacff24d2757da752ae4c80bf452356487"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a>&#160;&#160;&#160;0x0001000A</td></tr>
<tr class="memdesc:gacff24d2757da752ae4c80bf452356487"><td class="mdescLeft">&#160;</td><td class="mdescRight">The specified window does not have an OpenGL or OpenGL ES context. <a href="#gacff24d2757da752ae4c80bf452356487">More...</a><br /></td></tr>
<tr class="separator:gacff24d2757da752ae4c80bf452356487"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>See <a class="el" href="intro_guide.html#error_handling">error handling</a> for how these are used. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga56882b290db23261cc6c053c40c2d08e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_API_UNAVAILABLE&#160;&#160;&#160;0x00010006</td>
</tr>
</table>
</div><div class="memdoc">
<p>GLFW could not find support for the requested API on the system.</p>
<dl class="section user"><dt>Analysis</dt><dd>The installed graphics driver does not support the requested API, or does not support it via the chosen context creation backend. Below are a few examples.</dd></dl>
<dl class="section user"><dt></dt><dd>Some pre-installed Windows graphics drivers do not support OpenGL. AMD only supports OpenGL ES via EGL, while Nvidia and Intel only support it via a WGL or GLX extension. OS X does not provide OpenGL ES at all. The Mesa EGL, OpenGL and OpenGL ES libraries do not interface with the Nvidia binary driver. Older graphics drivers do not support Vulkan. </dd></dl>
</div>
</div>
<a class="anchor" id="ga196e125ef261d94184e2b55c05762f14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_FORMAT_UNAVAILABLE&#160;&#160;&#160;0x00010009</td>
</tr>
</table>
</div><div class="memdoc">
<p>If emitted during window creation, the requested pixel format is not supported.</p>
<p>If emitted when querying the clipboard, the contents of the clipboard could not be converted to the requested format.</p>
<dl class="section user"><dt>Analysis</dt><dd>If emitted during window creation, one or more <a class="el" href="window_guide.html#window_hints_hard">hard constraints</a> did not match any of the available pixel formats. If your application is sufficiently flexible, downgrade your requirements and try again. Otherwise, inform the user that their machine does not match your requirements.</dd></dl>
<dl class="section user"><dt></dt><dd>If emitted when querying the clipboard, ignore the error or report it to the user, as appropriate. </dd></dl>
</div>
</div>
<a class="anchor" id="ga76f6bb9c4eea73db675f096b404593ce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_INVALID_ENUM&#160;&#160;&#160;0x00010003</td>
</tr>
</table>
</div><div class="memdoc">
<p>One of the arguments to the function was an invalid enum value, for example requesting <a class="el" href="window_guide.html#window_hints_fb">GLFW_RED_BITS</a> with <a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>.</p>
<dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Fix the offending call. </dd></dl>
</div>
</div>
<a class="anchor" id="gaaf2ef9aa8202c2b82ac2d921e554c687"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_INVALID_VALUE&#160;&#160;&#160;0x00010004</td>
</tr>
</table>
</div><div class="memdoc">
<p>One of the arguments to the function was an invalid value, for example requesting a non-existent OpenGL or OpenGL ES version like 2.7.</p>
<p>Requesting a valid but unavailable OpenGL or OpenGL ES version will instead result in a <a class="el" href="group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462">GLFW_VERSION_UNAVAILABLE</a> error.</p>
<dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Fix the offending call. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa8290386e9528ccb9e42a3a4e16fc0d0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_NO_CURRENT_CONTEXT&#160;&#160;&#160;0x00010002</td>
</tr>
</table>
</div><div class="memdoc">
<p>This occurs if a GLFW function was called that needs and operates on the current OpenGL or OpenGL ES context but no context is current on the calling thread. One such function is <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a>.</p>
<dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Ensure a context is current before calling functions that require a current context. </dd></dl>
</div>
</div>
<a class="anchor" id="gacff24d2757da752ae4c80bf452356487"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_NO_WINDOW_CONTEXT&#160;&#160;&#160;0x0001000A</td>
</tr>
</table>
</div><div class="memdoc">
<p>A window that does not have an OpenGL or OpenGL ES context was passed to a function that requires it to have one.</p>
<dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Fix the offending call. </dd></dl>
</div>
</div>
<a class="anchor" id="ga2374ee02c177f12e1fa76ff3ed15e14a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_NOT_INITIALIZED&#160;&#160;&#160;0x00010001</td>
</tr>
</table>
</div><div class="memdoc">
<p>This occurs if a GLFW function was called that must not be called unless the library is <a class="el" href="intro_guide.html#intro_init">initialized</a>.</p>
<dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Initialize GLFW before calling any function that requires initialization. </dd></dl>
</div>
</div>
<a class="anchor" id="ga9023953a2bcb98c2906afd071d21ee7f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_OUT_OF_MEMORY&#160;&#160;&#160;0x00010005</td>
</tr>
</table>
</div><div class="memdoc">
<p>A memory allocation failed.</p>
<dl class="section user"><dt>Analysis</dt><dd>A bug in GLFW or the underlying operating system. Report the bug to our <a href="https://github.com/glfw/glfw/issues">issue tracker</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="gad44162d78100ea5e87cdd38426b8c7a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_PLATFORM_ERROR&#160;&#160;&#160;0x00010008</td>
</tr>
</table>
</div><div class="memdoc">
<p>A platform-specific error occurred that does not match any of the more specific categories.</p>
<dl class="section user"><dt>Analysis</dt><dd>A bug or configuration error in GLFW, the underlying operating system or its drivers, or a lack of required resources. Report the issue to our <a href="https://github.com/glfw/glfw/issues">issue tracker</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="gad16c5565b4a69f9c2a9ac2c0dbc89462"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_VERSION_UNAVAILABLE&#160;&#160;&#160;0x00010007</td>
</tr>
</table>
</div><div class="memdoc">
<p>The requested OpenGL or OpenGL ES version (including any requested context or framebuffer hints) is not available on this machine.</p>
<dl class="section user"><dt>Analysis</dt><dd>The machine does not support your requirements. If your application is sufficiently flexible, downgrade your requirements and try again. Otherwise, inform the user that their machine does not match your requirements.</dd></dl>
<dl class="section user"><dt></dt><dd>Future invalid OpenGL and OpenGL ES versions, for example OpenGL 4.8 if 5.0 comes out before the 4.x series gets that far, also fail with this error and not <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a>, because GLFW cannot know what future versions will exist. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Initialization, version and error reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Initialization, version and error reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__errors"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html">Error codes</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga6b8a2639706d5c409fc1287e8f55e928"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>) (int, const char *)</td></tr>
<tr class="memdesc:ga6b8a2639706d5c409fc1287e8f55e928"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for error callbacks. <a href="#ga6b8a2639706d5c409fc1287e8f55e928">More...</a><br /></td></tr>
<tr class="separator:ga6b8a2639706d5c409fc1287e8f55e928"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga317aac130a235ab08c6db0834907d85e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> (void)</td></tr>
<tr class="memdesc:ga317aac130a235ab08c6db0834907d85e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the GLFW library. <a href="#ga317aac130a235ab08c6db0834907d85e">More...</a><br /></td></tr>
<tr class="separator:ga317aac130a235ab08c6db0834907d85e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaae48c0a18607ea4a4ba951d939f0901"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> (void)</td></tr>
<tr class="memdesc:gaaae48c0a18607ea4a4ba951d939f0901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates the GLFW library. <a href="#gaaae48c0a18607ea4a4ba951d939f0901">More...</a><br /></td></tr>
<tr class="separator:gaaae48c0a18607ea4a4ba951d939f0901"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> (int *major, int *minor, int *rev)</td></tr>
<tr class="memdesc:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the version of the GLFW library. <a href="#ga9f8ffaacf3c269cc48eafbf8b9b71197">More...</a><br /></td></tr>
<tr class="separator:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23d47dc013fce2bf58036da66079a657"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a> (void)</td></tr>
<tr class="memdesc:ga23d47dc013fce2bf58036da66079a657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string describing the compile-time configuration. <a href="#ga23d47dc013fce2bf58036da66079a657">More...</a><br /></td></tr>
<tr class="separator:ga23d47dc013fce2bf58036da66079a657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5d796c3cf7c1a7f02f845486333fb5f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaa5d796c3cf7c1a7f02f845486333fb5f">glfwSetErrorCallback</a> (<a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a> cbfun)</td></tr>
<tr class="memdesc:gaa5d796c3cf7c1a7f02f845486333fb5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the error callback. <a href="#gaa5d796c3cf7c1a7f02f845486333fb5f">More...</a><br /></td></tr>
<tr class="separator:gaa5d796c3cf7c1a7f02f845486333fb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
GLFW version macros</h2></td></tr>
<tr class="memitem:ga6337d9ea43b22fc529b2bba066b4a576"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">GLFW_VERSION_MAJOR</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:ga6337d9ea43b22fc529b2bba066b4a576"><td class="mdescLeft">&#160;</td><td class="mdescRight">The major version number of the GLFW library. <a href="#ga6337d9ea43b22fc529b2bba066b4a576">More...</a><br /></td></tr>
<tr class="separator:ga6337d9ea43b22fc529b2bba066b4a576"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf80d40f0aea7088ff337606e9c48f7a3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">GLFW_VERSION_MINOR</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:gaf80d40f0aea7088ff337606e9c48f7a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minor version number of the GLFW library. <a href="#gaf80d40f0aea7088ff337606e9c48f7a3">More...</a><br /></td></tr>
<tr class="separator:gaf80d40f0aea7088ff337606e9c48f7a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab72ae2e2035d9ea461abc3495eac0502"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">GLFW_VERSION_REVISION</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gab72ae2e2035d9ea461abc3495eac0502"><td class="mdescLeft">&#160;</td><td class="mdescRight">The revision number of the GLFW library. <a href="#gab72ae2e2035d9ea461abc3495eac0502">More...</a><br /></td></tr>
<tr class="separator:gab72ae2e2035d9ea461abc3495eac0502"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is the reference documentation for initialization and termination of the library, version management and error handling. For more task-oriented information, see the <a class="el" href="intro_guide.html">Introduction to the API</a>. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga6337d9ea43b22fc529b2bba066b4a576"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_VERSION_MAJOR&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is incremented when the API is changed in non-compatible ways. </p>
</div>
</div>
<a class="anchor" id="gaf80d40f0aea7088ff337606e9c48f7a3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_VERSION_MINOR&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is incremented when features are added to the API but it remains backward-compatible. </p>
</div>
</div>
<a class="anchor" id="gab72ae2e2035d9ea461abc3495eac0502"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_VERSION_REVISION&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is incremented when a bug fix release is made that does not contain any API changes. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga6b8a2639706d5c409fc1287e8f55e928"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWerrorfun) (int, const char *)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for error callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">error</td><td>An <a class="el" href="group__errors.html">error code</a>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">description</td><td>A UTF-8 encoded string describing the error.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#error_handling">Error handling</a> </dd>
<dd>
<a class="el" href="group__init.html#gaa5d796c3cf7c1a7f02f845486333fb5f" title="Sets the error callback. ">glfwSetErrorCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga9f8ffaacf3c269cc48eafbf8b9b71197"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetVersion </td>
<td>(</td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>major</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>minor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>rev</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the major, minor and revision numbers of the GLFW library. It is intended for when you are using GLFW as a shared library and want to ensure that you are using the minimum required version.</p>
<p>Any or all of the version arguments may be <code>NULL</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">major</td><td>Where to store the major version number, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">minor</td><td>Where to store the minor version number, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">rev</td><td>Where to store the revision number, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>None.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>This function may be called before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#intro_version">Version management</a> </dd>
<dd>
<a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657" title="Returns a string describing the compile-time configuration. ">glfwGetVersionString</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga23d47dc013fce2bf58036da66079a657"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* glfwGetVersionString </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the compile-time generated <a class="el" href="intro_guide.html#intro_version_string">version string</a> of the GLFW library binary. It describes the version, platform, compiler and any platform-specific compile-time options. It should not be confused with the OpenGL or OpenGL ES version string, queried with <code>glGetString</code>.</p>
<p><b>Do not use the version string</b> to parse the GLFW library version. The <a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> function provides the version of the running library binary in numerical format.</p>
<dl class="section return"><dt>Returns</dt><dd>The ASCII encoded GLFW version string.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>None.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>This function may be called before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned string is static and compile-time generated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#intro_version">Version management</a> </dd>
<dd>
<a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197" title="Retrieves the version of the GLFW library. ">glfwGetVersion</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga317aac130a235ab08c6db0834907d85e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwInit </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the GLFW library. Before most GLFW functions can be used, GLFW must be initialized, and before an application terminates GLFW should be terminated in order to free any resources allocated during or after initialization.</p>
<p>If this function fails, it calls <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> before returning. If it succeeds, you should call <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> before the application exits.</p>
<p>Additional calls to this function after successful initialization but before termination will return <code>GLFW_TRUE</code> immediately.</p>
<dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if successful, or <code>GLFW_FALSE</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><b>OS X:</b> This function will change the current directory of the application to the <code>Contents/Resources</code> subdirectory of the application's bundle, if present. This can be disabled with a <a class="el" href="compile_guide.html#compile_options_osx">compile-time option</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#intro_init">Initialization and termination</a> </dd>
<dd>
<a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901" title="Terminates the GLFW library. ">glfwTerminate</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa5d796c3cf7c1a7f02f845486333fb5f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a> glfwSetErrorCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the error callback, which is called with an error code and a human-readable description each time a GLFW error occurs.</p>
<p>The error callback is called on the thread where the error occurred. If you are using GLFW from multiple threads, your error callback needs to be written accordingly.</p>
<p>Because the description string may have been generated specifically for that error, it is not guaranteed to be valid after the callback has returned. If you wish to use it after the callback returns, you need to make a copy.</p>
<p>Once set, the error callback remains set even after the library has been terminated.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>None.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>This function may be called before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#error_handling">Error handling</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gaaae48c0a18607ea4a4ba951d939f0901"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwTerminate </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function destroys all remaining windows and cursors, restores any modified gamma ramps and frees any other allocated resources. Once this function is called, you must again call <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> successfully before you will be able to use most GLFW functions.</p>
<p>If GLFW has been successfully initialized, this function should be called before the application exits. If initialization fails, there is no need to call this function, as it is called by <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> before it returns failure.</p>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>This function may be called before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>The contexts of any remaining windows must not be current on any other thread when this function is called.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#intro_init">Initialization and termination</a> </dd>
<dd>
<a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e" title="Initializes the GLFW library. ">glfwInit</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Input reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Input reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__joysticks"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html">Joysticks</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__keys"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html">Keyboard keys</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__mods"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mods.html">Modifier key flags</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__buttons"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html">Mouse buttons</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__shapes"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html">Standard cursor shapes</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga39893a4a7e7c3239c98d29c9e084350c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int, int)</td></tr>
<tr class="memdesc:ga39893a4a7e7c3239c98d29c9e084350c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for mouse button callbacks. <a href="#ga39893a4a7e7c3239c98d29c9e084350c">More...</a><br /></td></tr>
<tr class="separator:ga39893a4a7e7c3239c98d29c9e084350c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4cfad918fa836f09541e7b9acd36686c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, double, double)</td></tr>
<tr class="memdesc:ga4cfad918fa836f09541e7b9acd36686c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for cursor position callbacks. <a href="#ga4cfad918fa836f09541e7b9acd36686c">More...</a><br /></td></tr>
<tr class="separator:ga4cfad918fa836f09541e7b9acd36686c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51ab436c41eeaed6db5a0c9403b1c840"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td></tr>
<tr class="memdesc:ga51ab436c41eeaed6db5a0c9403b1c840"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for cursor enter/leave callbacks. <a href="#ga51ab436c41eeaed6db5a0c9403b1c840">More...</a><br /></td></tr>
<tr class="separator:ga51ab436c41eeaed6db5a0c9403b1c840"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4687e2199c60a18a8dd1da532e6d75c9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, double, double)</td></tr>
<tr class="memdesc:ga4687e2199c60a18a8dd1da532e6d75c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for scroll callbacks. <a href="#ga4687e2199c60a18a8dd1da532e6d75c9">More...</a><br /></td></tr>
<tr class="separator:ga4687e2199c60a18a8dd1da532e6d75c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0192a232a41e4e82948217c8ba94fdfd"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int, int, int)</td></tr>
<tr class="memdesc:ga0192a232a41e4e82948217c8ba94fdfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for keyboard key callbacks. <a href="#ga0192a232a41e4e82948217c8ba94fdfd">More...</a><br /></td></tr>
<tr class="separator:ga0192a232a41e4e82948217c8ba94fdfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf24451c7ceb1952bc02b17a0d5c3e5f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, unsigned int)</td></tr>
<tr class="memdesc:gabf24451c7ceb1952bc02b17a0d5c3e5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for Unicode character callbacks. <a href="#gabf24451c7ceb1952bc02b17a0d5c3e5f">More...</a><br /></td></tr>
<tr class="separator:gabf24451c7ceb1952bc02b17a0d5c3e5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae36fb6897d2b7df9b128900c8ce9c507"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, unsigned int, int)</td></tr>
<tr class="memdesc:gae36fb6897d2b7df9b128900c8ce9c507"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for Unicode character with modifiers callbacks. <a href="#gae36fb6897d2b7df9b128900c8ce9c507">More...</a><br /></td></tr>
<tr class="separator:gae36fb6897d2b7df9b128900c8ce9c507"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab71f4ca80b651462852e601caf308c4a"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gab71f4ca80b651462852e601caf308c4a">GLFWdropfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, const char **)</td></tr>
<tr class="memdesc:gab71f4ca80b651462852e601caf308c4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for file drop callbacks. <a href="#gab71f4ca80b651462852e601caf308c4a">More...</a><br /></td></tr>
<tr class="separator:gab71f4ca80b651462852e601caf308c4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa67aa597e974298c748bfe4fb17d406d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a>) (int, int)</td></tr>
<tr class="memdesc:gaa67aa597e974298c748bfe4fb17d406d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for joystick configuration callbacks. <a href="#gaa67aa597e974298c748bfe4fb17d406d">More...</a><br /></td></tr>
<tr class="separator:gaa67aa597e974298c748bfe4fb17d406d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaf5b859dbe19bdf434e42695ea45cc5f4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaf5b859dbe19bdf434e42695ea45cc5f4">glfwGetInputMode</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int mode)</td></tr>
<tr class="memdesc:gaf5b859dbe19bdf434e42695ea45cc5f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of an input option for the specified window. <a href="#gaf5b859dbe19bdf434e42695ea45cc5f4">More...</a><br /></td></tr>
<tr class="separator:gaf5b859dbe19bdf434e42695ea45cc5f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa92336e173da9c8834558b54ee80563b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int mode, int value)</td></tr>
<tr class="memdesc:gaa92336e173da9c8834558b54ee80563b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an input option for the specified window. <a href="#gaa92336e173da9c8834558b54ee80563b">More...</a><br /></td></tr>
<tr class="separator:gaa92336e173da9c8834558b54ee80563b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga237a182e5ec0b21ce64543f3b5e7e2be"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a> (int key, int scancode)</td></tr>
<tr class="memdesc:ga237a182e5ec0b21ce64543f3b5e7e2be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the localized name of the specified printable key. <a href="#ga237a182e5ec0b21ce64543f3b5e7e2be">More...</a><br /></td></tr>
<tr class="separator:ga237a182e5ec0b21ce64543f3b5e7e2be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd341da06bc8d418b4dc3a3518af9ad2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int key)</td></tr>
<tr class="memdesc:gadd341da06bc8d418b4dc3a3518af9ad2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last reported state of a keyboard key for the specified window. <a href="#gadd341da06bc8d418b4dc3a3518af9ad2">More...</a><br /></td></tr>
<tr class="separator:gadd341da06bc8d418b4dc3a3518af9ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1473feacb5996c01a7a5a33b5066704"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int button)</td></tr>
<tr class="memdesc:gac1473feacb5996c01a7a5a33b5066704"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last reported state of a mouse button for the specified window. <a href="#gac1473feacb5996c01a7a5a33b5066704">More...</a><br /></td></tr>
<tr class="separator:gac1473feacb5996c01a7a5a33b5066704"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01d37b6c40133676b9cea60ca1d7c0cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, double *xpos, double *ypos)</td></tr>
<tr class="memdesc:ga01d37b6c40133676b9cea60ca1d7c0cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the position of the cursor relative to the client area of the window. <a href="#ga01d37b6c40133676b9cea60ca1d7c0cc">More...</a><br /></td></tr>
<tr class="separator:ga01d37b6c40133676b9cea60ca1d7c0cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga04b03af936d906ca123c8f4ee08b39e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, double xpos, double ypos)</td></tr>
<tr class="memdesc:ga04b03af936d906ca123c8f4ee08b39e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the position of the cursor, relative to the client area of the window. <a href="#ga04b03af936d906ca123c8f4ee08b39e7">More...</a><br /></td></tr>
<tr class="separator:ga04b03af936d906ca123c8f4ee08b39e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafca356935e10135016aa49ffa464c355"><td class="memItemLeft" align="right" valign="top"><a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a> (const <a class="el" href="structGLFWimage.html">GLFWimage</a> *image, int xhot, int yhot)</td></tr>
<tr class="memdesc:gafca356935e10135016aa49ffa464c355"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a custom cursor. <a href="#gafca356935e10135016aa49ffa464c355">More...</a><br /></td></tr>
<tr class="separator:gafca356935e10135016aa49ffa464c355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa65f416d03ebbbb5b8db71a489fcb894"><td class="memItemLeft" align="right" valign="top"><a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a> (int shape)</td></tr>
<tr class="memdesc:gaa65f416d03ebbbb5b8db71a489fcb894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a cursor with a standard shape. <a href="#gaa65f416d03ebbbb5b8db71a489fcb894">More...</a><br /></td></tr>
<tr class="separator:gaa65f416d03ebbbb5b8db71a489fcb894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81b952cd1764274d0db7fb3c5a79ba6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a> (<a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *cursor)</td></tr>
<tr class="memdesc:ga81b952cd1764274d0db7fb3c5a79ba6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys a cursor. <a href="#ga81b952cd1764274d0db7fb3c5a79ba6a">More...</a><br /></td></tr>
<tr class="separator:ga81b952cd1764274d0db7fb3c5a79ba6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3b4f38c8d5dae036bc8fa959e18343e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *cursor)</td></tr>
<tr class="memdesc:gad3b4f38c8d5dae036bc8fa959e18343e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the cursor for the window. <a href="#gad3b4f38c8d5dae036bc8fa959e18343e">More...</a><br /></td></tr>
<tr class="separator:gad3b4f38c8d5dae036bc8fa959e18343e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e496507126f35ea72f01b2e6ef6d155"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga7e496507126f35ea72f01b2e6ef6d155">glfwSetKeyCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a> cbfun)</td></tr>
<tr class="memdesc:ga7e496507126f35ea72f01b2e6ef6d155"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the key callback. <a href="#ga7e496507126f35ea72f01b2e6ef6d155">More...</a><br /></td></tr>
<tr class="separator:ga7e496507126f35ea72f01b2e6ef6d155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga556239421c6a5a243c66fca28da9f742"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga556239421c6a5a243c66fca28da9f742">glfwSetCharCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a> cbfun)</td></tr>
<tr class="memdesc:ga556239421c6a5a243c66fca28da9f742"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Unicode character callback. <a href="#ga556239421c6a5a243c66fca28da9f742">More...</a><br /></td></tr>
<tr class="separator:ga556239421c6a5a243c66fca28da9f742"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f55ef5dc03a374e567f068b13c94afc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga3f55ef5dc03a374e567f068b13c94afc">glfwSetCharModsCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a> cbfun)</td></tr>
<tr class="memdesc:ga3f55ef5dc03a374e567f068b13c94afc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Unicode character with modifiers callback. <a href="#ga3f55ef5dc03a374e567f068b13c94afc">More...</a><br /></td></tr>
<tr class="separator:ga3f55ef5dc03a374e567f068b13c94afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef49b72d84d615bca0a6ed65485e035d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaef49b72d84d615bca0a6ed65485e035d">glfwSetMouseButtonCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a> cbfun)</td></tr>
<tr class="memdesc:gaef49b72d84d615bca0a6ed65485e035d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the mouse button callback. <a href="#gaef49b72d84d615bca0a6ed65485e035d">More...</a><br /></td></tr>
<tr class="separator:gaef49b72d84d615bca0a6ed65485e035d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7dad39486f2c7591af7fb25134a2501d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga7dad39486f2c7591af7fb25134a2501d">glfwSetCursorPosCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a> cbfun)</td></tr>
<tr class="memdesc:ga7dad39486f2c7591af7fb25134a2501d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the cursor position callback. <a href="#ga7dad39486f2c7591af7fb25134a2501d">More...</a><br /></td></tr>
<tr class="separator:ga7dad39486f2c7591af7fb25134a2501d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa299c41dd0a3d171d166354e01279e04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa299c41dd0a3d171d166354e01279e04">glfwSetCursorEnterCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a> cbfun)</td></tr>
<tr class="memdesc:gaa299c41dd0a3d171d166354e01279e04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the cursor enter/exit callback. <a href="#gaa299c41dd0a3d171d166354e01279e04">More...</a><br /></td></tr>
<tr class="separator:gaa299c41dd0a3d171d166354e01279e04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf02eb10504352f16efda4593c3ce60e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gacf02eb10504352f16efda4593c3ce60e">glfwSetScrollCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a> cbfun)</td></tr>
<tr class="memdesc:gacf02eb10504352f16efda4593c3ce60e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the scroll callback. <a href="#gacf02eb10504352f16efda4593c3ce60e">More...</a><br /></td></tr>
<tr class="separator:gacf02eb10504352f16efda4593c3ce60e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41291bf15dd3ff564b3143aa6dc74a4b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gab71f4ca80b651462852e601caf308c4a">GLFWdropfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga41291bf15dd3ff564b3143aa6dc74a4b">glfwSetDropCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gab71f4ca80b651462852e601caf308c4a">GLFWdropfun</a> cbfun)</td></tr>
<tr class="memdesc:ga41291bf15dd3ff564b3143aa6dc74a4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the file drop callback. <a href="#ga41291bf15dd3ff564b3143aa6dc74a4b">More...</a><br /></td></tr>
<tr class="separator:ga41291bf15dd3ff564b3143aa6dc74a4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaffcbd9ac8ee737fcdd25475123a3c790"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaffcbd9ac8ee737fcdd25475123a3c790">glfwJoystickPresent</a> (int joy)</td></tr>
<tr class="memdesc:gaffcbd9ac8ee737fcdd25475123a3c790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the specified joystick is present. <a href="#gaffcbd9ac8ee737fcdd25475123a3c790">More...</a><br /></td></tr>
<tr class="separator:gaffcbd9ac8ee737fcdd25475123a3c790"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6271d46a5901ec2c99601ccf4dd14731"><td class="memItemLeft" align="right" valign="top">const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga6271d46a5901ec2c99601ccf4dd14731">glfwGetJoystickAxes</a> (int joy, int *count)</td></tr>
<tr class="memdesc:ga6271d46a5901ec2c99601ccf4dd14731"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the values of all axes of the specified joystick. <a href="#ga6271d46a5901ec2c99601ccf4dd14731">More...</a><br /></td></tr>
<tr class="separator:ga6271d46a5901ec2c99601ccf4dd14731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace54cd930dcd502e118fe4021384ce1b"><td class="memItemLeft" align="right" valign="top">const unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gace54cd930dcd502e118fe4021384ce1b">glfwGetJoystickButtons</a> (int joy, int *count)</td></tr>
<tr class="memdesc:gace54cd930dcd502e118fe4021384ce1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of all buttons of the specified joystick. <a href="#gace54cd930dcd502e118fe4021384ce1b">More...</a><br /></td></tr>
<tr class="separator:gace54cd930dcd502e118fe4021384ce1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8d7f6107e05cfd106cfba973ab51e19"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gac8d7f6107e05cfd106cfba973ab51e19">glfwGetJoystickName</a> (int joy)</td></tr>
<tr class="memdesc:gac8d7f6107e05cfd106cfba973ab51e19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified joystick. <a href="#gac8d7f6107e05cfd106cfba973ab51e19">More...</a><br /></td></tr>
<tr class="separator:gac8d7f6107e05cfd106cfba973ab51e19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1dc8379f1b82bb660a6b9c9fa06ca07"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gab1dc8379f1b82bb660a6b9c9fa06ca07">glfwSetJoystickCallback</a> (<a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a> cbfun)</td></tr>
<tr class="memdesc:gab1dc8379f1b82bb660a6b9c9fa06ca07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the joystick configuration callback. <a href="#gab1dc8379f1b82bb660a6b9c9fa06ca07">More...</a><br /></td></tr>
<tr class="separator:gab1dc8379f1b82bb660a6b9c9fa06ca07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba1f022c5eb07dfac421df34cdcd31dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, const char *string)</td></tr>
<tr class="memdesc:gaba1f022c5eb07dfac421df34cdcd31dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the clipboard to the specified string. <a href="#gaba1f022c5eb07dfac421df34cdcd31dd">More...</a><br /></td></tr>
<tr class="separator:gaba1f022c5eb07dfac421df34cdcd31dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5aba1d704d9ab539282b1fbe9f18bb94"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga5aba1d704d9ab539282b1fbe9f18bb94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of the clipboard as a string. <a href="#ga5aba1d704d9ab539282b1fbe9f18bb94">More...</a><br /></td></tr>
<tr class="separator:ga5aba1d704d9ab539282b1fbe9f18bb94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa6cf4e7a77158a3b8fd00328b1720a4a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a> (void)</td></tr>
<tr class="memdesc:gaa6cf4e7a77158a3b8fd00328b1720a4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the GLFW timer. <a href="#gaa6cf4e7a77158a3b8fd00328b1720a4a">More...</a><br /></td></tr>
<tr class="separator:gaa6cf4e7a77158a3b8fd00328b1720a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf59589ef6e8b8c8b5ad184b25afd4dc0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a> (double time)</td></tr>
<tr class="memdesc:gaf59589ef6e8b8c8b5ad184b25afd4dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the GLFW timer. <a href="#gaf59589ef6e8b8c8b5ad184b25afd4dc0">More...</a><br /></td></tr>
<tr class="separator:gaf59589ef6e8b8c8b5ad184b25afd4dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09b2bd37d328e0b9456c7ec575cc26aa"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a> (void)</td></tr>
<tr class="memdesc:ga09b2bd37d328e0b9456c7ec575cc26aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current value of the raw timer. <a href="#ga09b2bd37d328e0b9456c7ec575cc26aa">More...</a><br /></td></tr>
<tr class="separator:ga09b2bd37d328e0b9456c7ec575cc26aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3289ee876572f6e91f06df3a24824443"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a> (void)</td></tr>
<tr class="memdesc:ga3289ee876572f6e91f06df3a24824443"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the frequency, in Hz, of the raw timer. <a href="#ga3289ee876572f6e91f06df3a24824443">More...</a><br /></td></tr>
<tr class="separator:ga3289ee876572f6e91f06df3a24824443"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Key and button actions</h2></td></tr>
<tr class="memitem:gada11d965c4da13090ad336e030e4d11f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gada11d965c4da13090ad336e030e4d11f">GLFW_RELEASE</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gada11d965c4da13090ad336e030e4d11f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The key or mouse button was released. <a href="#gada11d965c4da13090ad336e030e4d11f">More...</a><br /></td></tr>
<tr class="separator:gada11d965c4da13090ad336e030e4d11f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2485743d0b59df3791c45951c4195265"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga2485743d0b59df3791c45951c4195265"><td class="mdescLeft">&#160;</td><td class="mdescRight">The key or mouse button was pressed. <a href="#ga2485743d0b59df3791c45951c4195265">More...</a><br /></td></tr>
<tr class="separator:ga2485743d0b59df3791c45951c4195265"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac96fd3b9fc66c6f0eebaf6532595338f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gac96fd3b9fc66c6f0eebaf6532595338f">GLFW_REPEAT</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:gac96fd3b9fc66c6f0eebaf6532595338f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The key was held down until it repeated. <a href="#gac96fd3b9fc66c6f0eebaf6532595338f">More...</a><br /></td></tr>
<tr class="separator:gac96fd3b9fc66c6f0eebaf6532595338f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is the reference documentation for input related functions and types. For more task-oriented information, see the <a class="el" href="input_guide.html">Input guide</a>. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga2485743d0b59df3791c45951c4195265"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_PRESS&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>The key or mouse button was pressed. </p>
</div>
</div>
<a class="anchor" id="gada11d965c4da13090ad336e030e4d11f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_RELEASE&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>The key or mouse button was released. </p>
</div>
</div>
<a class="anchor" id="gac96fd3b9fc66c6f0eebaf6532595338f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_REPEAT&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>The key was held down until it repeated. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gabf24451c7ceb1952bc02b17a0d5c3e5f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWcharfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, unsigned int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for Unicode character callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">codepoint</td><td>The Unicode code point of the character.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_char">Text input</a> </dd>
<dd>
<a class="el" href="group__input.html#ga556239421c6a5a243c66fca28da9f742" title="Sets the Unicode character callback. ">glfwSetCharCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.4. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="gae36fb6897d2b7df9b128900c8ce9c507"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWcharmodsfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, unsigned int, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for Unicode character with modifiers callback functions. It is called for each input character, regardless of what modifier keys are held down.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">codepoint</td><td>The Unicode code point of the character. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mods</td><td>Bit field describing which <a class="el" href="group__mods.html">modifier keys</a> were held down.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_char">Text input</a> </dd>
<dd>
<a class="el" href="group__input.html#ga3f55ef5dc03a374e567f068b13c94afc" title="Sets the Unicode character with modifiers callback. ">glfwSetCharModsCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="ga51ab436c41eeaed6db5a0c9403b1c840"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWcursorenterfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for cursor enter/leave callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">entered</td><td><code>GLFW_TRUE</code> if the cursor entered the window's client area, or <code>GLFW_FALSE</code> if it left it.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_enter">Cursor enter/leave events</a> </dd>
<dd>
<a class="el" href="group__input.html#gaa299c41dd0a3d171d166354e01279e04" title="Sets the cursor enter/exit callback. ">glfwSetCursorEnterCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4cfad918fa836f09541e7b9acd36686c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWcursorposfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, double, double)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for cursor position callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>The new cursor x-coordinate, relative to the left edge of the client area. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>The new cursor y-coordinate, relative to the top edge of the client area.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_pos">Cursor position</a> </dd>
<dd>
<a class="el" href="group__input.html#ga7dad39486f2c7591af7fb25134a2501d" title="Sets the cursor position callback. ">glfwSetCursorPosCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>GLFWmouseposfun</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="gab71f4ca80b651462852e601caf308c4a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWdropfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, const char **)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for file drop callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>The number of dropped files. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">paths</td><td>The UTF-8 encoded file and/or directory path names.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#path_drop">Path drop input</a> </dd>
<dd>
<a class="el" href="group__input.html#ga41291bf15dd3ff564b3143aa6dc74a4b" title="Sets the file drop callback. ">glfwSetDropCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa67aa597e974298c748bfe4fb17d406d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWjoystickfun) (int, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for joystick configuration callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">joy</td><td>The joystick that was connected or disconnected. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>One of <code>GLFW_CONNECTED</code> or <code>GLFW_DISCONNECTED</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#joystick_event">Joystick configuration changes</a> </dd>
<dd>
<a class="el" href="group__input.html#gab1dc8379f1b82bb660a6b9c9fa06ca07" title="Sets the joystick configuration callback. ">glfwSetJoystickCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga0192a232a41e4e82948217c8ba94fdfd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWkeyfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int, int, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for keyboard key callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The <a class="el" href="group__keys.html">keyboard key</a> that was pressed or released. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scancode</td><td>The system-specific scancode of the key. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">action</td><td><code>GLFW_PRESS</code>, <code>GLFW_RELEASE</code> or <code>GLFW_REPEAT</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mods</td><td>Bit field describing which <a class="el" href="group__mods.html">modifier keys</a> were held down.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_key">Key input</a> </dd>
<dd>
<a class="el" href="group__input.html#ga7e496507126f35ea72f01b2e6ef6d155" title="Sets the key callback. ">glfwSetKeyCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle, scancode and modifier mask parameters. </dd></dl>
</div>
</div>
<a class="anchor" id="ga39893a4a7e7c3239c98d29c9e084350c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWmousebuttonfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for mouse button callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">button</td><td>The <a class="el" href="group__buttons.html">mouse button</a> that was pressed or released. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">action</td><td>One of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mods</td><td>Bit field describing which <a class="el" href="group__mods.html">modifier keys</a> were held down.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_mouse_button">Mouse button input</a> </dd>
<dd>
<a class="el" href="group__input.html#gaef49b72d84d615bca0a6ed65485e035d" title="Sets the mouse button callback. ">glfwSetMouseButtonCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle and modifier mask parameters. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4687e2199c60a18a8dd1da532e6d75c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWscrollfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, double, double)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for scroll callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that received the event. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xoffset</td><td>The scroll offset along the x-axis. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">yoffset</td><td>The scroll offset along the y-axis.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#scrolling">Scroll input</a> </dd>
<dd>
<a class="el" href="group__input.html#gacf02eb10504352f16efda4593c3ce60e" title="Sets the scroll callback. ">glfwSetScrollCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>GLFWmousewheelfun</code>. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gafca356935e10135016aa49ffa464c355"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* glfwCreateCursor </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structGLFWimage.html">GLFWimage</a> *&#160;</td>
<td class="paramname"><em>image</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>xhot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>yhot</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new custom cursor image that can be set for a window with <a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>. The cursor can be destroyed with <a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>. Any remaining cursors are destroyed by <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>.</p>
<p>The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight bits per channel. They are arranged canonically as packed sequential rows, starting from the top-left corner.</p>
<p>The cursor hotspot is specified in pixels, relative to the upper-left corner of the cursor image. Like all other coordinate systems in GLFW, the X-axis points to the right and the Y-axis points down.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>The desired cursor image. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xhot</td><td>The desired x-coordinate, in pixels, of the cursor hotspot. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">yhot</td><td>The desired y-coordinate, in pixels, of the cursor hotspot. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The handle of the created cursor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The specified image data is copied before this function returns.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_object">Cursor objects</a> </dd>
<dd>
<a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a" title="Destroys a cursor. ">glfwDestroyCursor</a> </dd>
<dd>
<a class="el" href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894" title="Creates a cursor with a standard shape. ">glfwCreateStandardCursor</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa65f416d03ebbbb5b8db71a489fcb894"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* glfwCreateStandardCursor </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>shape</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a cursor with a <a class="el" href="group__shapes.html">standard shape</a>, that can be set for a window with <a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>One of the <a class="el" href="group__shapes.html">standard shapes</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new cursor ready to use or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_object">Cursor objects</a> </dd>
<dd>
<a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355" title="Creates a custom cursor. ">glfwCreateCursor</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="ga81b952cd1764274d0db7fb3c5a79ba6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwDestroyCursor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td>
<td class="paramname"><em>cursor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function destroys a cursor previously created with <a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a>. Any remaining cursors will be destroyed by <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cursor</td><td>The cursor object to destroy.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_object">Cursor objects</a> </dd>
<dd>
<a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355" title="Creates a custom cursor. ">glfwCreateCursor</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="ga5aba1d704d9ab539282b1fbe9f18bb94"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* glfwGetClipboardString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the contents of the system clipboard, if it contains or is convertible to a UTF-8 encoded string. If the clipboard is empty or if its contents cannot be converted, <code>NULL</code> is returned and a <a class="el" href="group__errors.html#ga196e125ef261d94184e2b55c05762f14">GLFW_FORMAT_UNAVAILABLE</a> error is generated.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that will request the clipboard contents. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The contents of the clipboard as a UTF-8 encoded string, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned string is allocated and freed by GLFW. You should not free it yourself. It is valid until the next call to <a class="el" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a> or <a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a>, or until the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#clipboard">Clipboard input and output</a> </dd>
<dd>
<a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd" title="Sets the clipboard to the specified string. ">glfwSetClipboardString</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga01d37b6c40133676b9cea60ca1d7c0cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetCursorPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>xpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>ypos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the position of the cursor, in screen coordinates, relative to the upper-left corner of the client area of the specified window.</p>
<p>If the cursor is disabled (with <code>GLFW_CURSOR_DISABLED</code>) then the cursor position is unbounded and limited only by the minimum and maximum values of a <code>double</code>.</p>
<p>The coordinate can be converted to their integer equivalents with the <code>floor</code> function. Casting directly to an integer type works for positive coordinates, but fails for negative ones.</p>
<p>Any or all of the position arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> position arguments will be set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The desired window. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">xpos</td><td>Where to store the cursor x-coordinate, relative to the left edge of the client area, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ypos</td><td>Where to store the cursor y-coordinate, relative to the to top edge of the client area, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_pos">Cursor position</a> </dd>
<dd>
<a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7" title="Sets the position of the cursor, relative to the client area of the window. ">glfwSetCursorPos</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwGetMousePos</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="gaf5b859dbe19bdf434e42695ea45cc5f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwGetInputMode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the value of an input option for the specified window. The mode must be one of <code>GLFW_CURSOR</code>, <code>GLFW_STICKY_KEYS</code> or <code>GLFW_STICKY_MOUSE_BUTTONS</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to query. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>One of <code>GLFW_CURSOR</code>, <code>GLFW_STICKY_KEYS</code> or <code>GLFW_STICKY_MOUSE_BUTTONS</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b" title="Sets an input option for the specified window. ">glfwSetInputMode</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga6271d46a5901ec2c99601ccf4dd14731"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const float* glfwGetJoystickAxes </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>joy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the values of all axes of the specified joystick. Each element in the array is a value between -1.0 and 1.0.</p>
<p>Querying a joystick slot with no device present is not an error, but will cause this function to return <code>NULL</code>. Call <a class="el" href="group__input.html#gaffcbd9ac8ee737fcdd25475123a3c790">glfwJoystickPresent</a> to check device presence.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">joy</td><td>The <a class="el" href="group__joysticks.html">joystick</a> to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Where to store the number of axis values in the returned array. This is set to zero if the joystick is not present or an error occurred. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An array of axis values, or <code>NULL</code> if the joystick is not present or an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned array is allocated and freed by GLFW. You should not free it yourself. It is valid until the specified joystick is disconnected, this function is called again for that joystick or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#joystick_axis">Joystick axis states</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwGetJoystickPos</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="gace54cd930dcd502e118fe4021384ce1b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const unsigned char* glfwGetJoystickButtons </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>joy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the state of all buttons of the specified joystick. Each element in the array is either <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
<p>Querying a joystick slot with no device present is not an error, but will cause this function to return <code>NULL</code>. Call <a class="el" href="group__input.html#gaffcbd9ac8ee737fcdd25475123a3c790">glfwJoystickPresent</a> to check device presence.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">joy</td><td>The <a class="el" href="group__joysticks.html">joystick</a> to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Where to store the number of button states in the returned array. This is set to zero if the joystick is not present or an error occurred. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An array of button states, or <code>NULL</code> if the joystick is not present or an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned array is allocated and freed by GLFW. You should not free it yourself. It is valid until the specified joystick is disconnected, this function is called again for that joystick or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#joystick_button">Joystick button states</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.2. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Changed to return a dynamic array. </dd></dl>
</div>
</div>
<a class="anchor" id="gac8d7f6107e05cfd106cfba973ab51e19"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* glfwGetJoystickName </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>joy</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the name, encoded as UTF-8, of the specified joystick. The returned string is allocated and freed by GLFW. You should not free it yourself.</p>
<p>Querying a joystick slot with no device present is not an error, but will cause this function to return <code>NULL</code>. Call <a class="el" href="group__input.html#gaffcbd9ac8ee737fcdd25475123a3c790">glfwJoystickPresent</a> to check device presence.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">joy</td><td>The <a class="el" href="group__joysticks.html">joystick</a> to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The UTF-8 encoded name of the joystick, or <code>NULL</code> if the joystick is not present or an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned string is allocated and freed by GLFW. You should not free it yourself. It is valid until the specified joystick is disconnected, this function is called again for that joystick or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#joystick_name">Joystick name</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gadd341da06bc8d418b4dc3a3518af9ad2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwGetKey </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>key</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the last state reported for the specified key to the specified window. The returned state is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>. The higher-level action <code>GLFW_REPEAT</code> is only reported to the key callback.</p>
<p>If the <code>GLFW_STICKY_KEYS</code> input mode is enabled, this function returns <code>GLFW_PRESS</code> the first time you call it for a key that was pressed, even if that key has already been released.</p>
<p>The key functions deal with physical keys, with <a class="el" href="group__keys.html">key tokens</a> named after their use on the standard US keyboard layout. If you want to input text, use the Unicode character callback instead.</p>
<p>The <a class="el" href="group__mods.html">modifier key bit masks</a> are not key tokens and cannot be used with this function.</p>
<p><b>Do not use this function</b> to implement <a class="el" href="input_guide.html#input_char">text input</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The desired window. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The desired <a class="el" href="group__keys.html">keyboard key</a>. <code>GLFW_KEY_UNKNOWN</code> is not a valid key for this function. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>One of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_key">Key input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga237a182e5ec0b21ce64543f3b5e7e2be"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* glfwGetKeyName </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>scancode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the localized name of the specified printable key. This is intended for displaying key bindings to the user.</p>
<p>If the key is <code>GLFW_KEY_UNKNOWN</code>, the scancode is used instead, otherwise the scancode is ignored. If a non-printable key or (if the key is <code>GLFW_KEY_UNKNOWN</code>) a scancode that maps to a non-printable key is specified, this function returns <code>NULL</code>.</p>
<p>This behavior allows you to pass in the arguments passed to the <a class="el" href="input_guide.html#input_key">key callback</a> without modification.</p>
<p>The printable keys are:</p><ul>
<li><code>GLFW_KEY_APOSTROPHE</code></li>
<li><code>GLFW_KEY_COMMA</code></li>
<li><code>GLFW_KEY_MINUS</code></li>
<li><code>GLFW_KEY_PERIOD</code></li>
<li><code>GLFW_KEY_SLASH</code></li>
<li><code>GLFW_KEY_SEMICOLON</code></li>
<li><code>GLFW_KEY_EQUAL</code></li>
<li><code>GLFW_KEY_LEFT_BRACKET</code></li>
<li><code>GLFW_KEY_RIGHT_BRACKET</code></li>
<li><code>GLFW_KEY_BACKSLASH</code></li>
<li><code>GLFW_KEY_WORLD_1</code></li>
<li><code>GLFW_KEY_WORLD_2</code></li>
<li><code>GLFW_KEY_0</code> to <code>GLFW_KEY_9</code></li>
<li><code>GLFW_KEY_A</code> to <code>GLFW_KEY_Z</code></li>
<li><code>GLFW_KEY_KP_0</code> to <code>GLFW_KEY_KP_9</code></li>
<li><code>GLFW_KEY_KP_DECIMAL</code></li>
<li><code>GLFW_KEY_KP_DIVIDE</code></li>
<li><code>GLFW_KEY_KP_MULTIPLY</code></li>
<li><code>GLFW_KEY_KP_SUBTRACT</code></li>
<li><code>GLFW_KEY_KP_ADD</code></li>
<li><code>GLFW_KEY_KP_EQUAL</code></li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The key to query, or <code>GLFW_KEY_UNKNOWN</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scancode</td><td>The scancode of the key to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The localized name of the key, or <code>NULL</code>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned string is allocated and freed by GLFW. You should not free it yourself. It is valid until the next call to <a class="el" href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a>, or until the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_key_name">Key names</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gac1473feacb5996c01a7a5a33b5066704"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwGetMouseButton </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>button</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the last state reported for the specified mouse button to the specified window. The returned state is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
<p>If the <code>GLFW_STICKY_MOUSE_BUTTONS</code> input mode is enabled, this function <code>GLFW_PRESS</code> the first time you call it for a mouse button that was pressed, even if that mouse button has already been released.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The desired window. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">button</td><td>The desired <a class="el" href="group__buttons.html">mouse button</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>One of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_mouse_button">Mouse button input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa6cf4e7a77158a3b8fd00328b1720a4a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double glfwGetTime </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the value of the GLFW timer. Unless the timer has been set using <a class="el" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>, the timer measures time elapsed since GLFW was initialized.</p>
<p>The resolution of the timer is system dependent, but is usually on the order of a few micro- or nanoseconds. It uses the highest-resolution monotonic time source on each supported platform.</p>
<dl class="section return"><dt>Returns</dt><dd>The current value, in seconds, or zero if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Reading and writing of the internal timer offset is not atomic, so it needs to be externally synchronized with calls to <a class="el" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#time">Time input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3289ee876572f6e91f06df3a24824443"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t glfwGetTimerFrequency </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the frequency, in Hz, of the raw timer.</p>
<dl class="section return"><dt>Returns</dt><dd>The frequency of the timer, in Hz, or zero if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#time">Time input</a> </dd>
<dd>
<a class="el" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa" title="Returns the current value of the raw timer. ">glfwGetTimerValue</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga09b2bd37d328e0b9456c7ec575cc26aa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t glfwGetTimerValue </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the current value of the raw timer, measured in 1&#160;/&#160;frequency seconds. To get the frequency, call <a class="el" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>The value of the timer, or zero if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#time">Time input</a> </dd>
<dd>
<a class="el" href="group__input.html#ga3289ee876572f6e91f06df3a24824443" title="Returns the frequency, in Hz, of the raw timer. ">glfwGetTimerFrequency</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gaffcbd9ac8ee737fcdd25475123a3c790"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwJoystickPresent </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>joy</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns whether the specified joystick is present.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">joy</td><td>The <a class="el" href="group__joysticks.html">joystick</a> to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if the joystick is present, or <code>GLFW_FALSE</code> otherwise.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#joystick">Joystick input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwGetJoystickParam</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga556239421c6a5a243c66fca28da9f742"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a> glfwSetCharCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the character callback of the specified window, which is called when a Unicode character is input.</p>
<p>The character callback is intended for Unicode text input. As it deals with characters, it is keyboard layout dependent, whereas the <a class="el" href="group__input.html#ga7e496507126f35ea72f01b2e6ef6d155">key callback</a> is not. Characters do not map 1:1 to physical keys, as a key may produce zero, one or more characters. If you want to know whether a specific physical key was pressed or released, see the key callback instead.</p>
<p>The character callback behaves as system text input normally does and will not be called if modifier keys are held down that would prevent normal text input on that platform, for example a Super (Command) key on OS X or Alt key on Windows. There is a <a class="el" href="group__input.html#ga3f55ef5dc03a374e567f068b13c94afc">character with modifiers callback</a> that receives these events.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_char">Text input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.4. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter and return value. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3f55ef5dc03a374e567f068b13c94afc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a> glfwSetCharModsCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the character with modifiers callback of the specified window, which is called when a Unicode character is input regardless of what modifier keys are used.</p>
<p>The character with modifiers callback is intended for implementing custom Unicode character input. For regular Unicode text input, see the <a class="el" href="group__input.html#ga556239421c6a5a243c66fca28da9f742">character callback</a>. Like the character callback, the character with modifiers callback deals with characters and is keyboard layout dependent. Characters do not map 1:1 to physical keys, as a key may produce zero, one or more characters. If you want to know whether a specific physical key was pressed or released, see the <a class="el" href="group__input.html#ga7e496507126f35ea72f01b2e6ef6d155">key callback</a> instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_char">Text input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gaba1f022c5eb07dfac421df34cdcd31dd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetClipboardString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>string</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the system clipboard to the specified, UTF-8 encoded string.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that will own the clipboard contents. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>A UTF-8 encoded string.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The specified string is copied before this function returns.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#clipboard">Clipboard input and output</a> </dd>
<dd>
<a class="el" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94" title="Returns the contents of the clipboard as a string. ">glfwGetClipboardString</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gad3b4f38c8d5dae036bc8fa959e18343e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetCursor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="glfw3_8h.html#a89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td>
<td class="paramname"><em>cursor</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the cursor image to be used when the cursor is over the client area of the specified window. The set cursor will only be visible when the <a class="el" href="input_guide.html#cursor_mode">cursor mode</a> of the window is <code>GLFW_CURSOR_NORMAL</code>.</p>
<p>On some platforms, the set cursor may not be visible unless the window also has input focus.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to set the cursor for. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cursor</td><td>The cursor to set, or <code>NULL</code> to switch back to the default arrow cursor.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_object">Cursor objects</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa299c41dd0a3d171d166354e01279e04"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a> glfwSetCursorEnterCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the cursor boundary crossing callback of the specified window, which is called when the cursor enters or leaves the client area of the window.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_enter">Cursor enter/leave events</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga04b03af936d906ca123c8f4ee08b39e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetCursorPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>xpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>ypos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the position, in screen coordinates, of the cursor relative to the upper-left corner of the client area of the specified window. The window must have input focus. If the window does not have input focus when this function is called, it fails silently.</p>
<p><b>Do not use this function</b> to implement things like camera controls. GLFW already provides the <code>GLFW_CURSOR_DISABLED</code> cursor mode that hides the cursor, transparently re-centers it and provides unconstrained cursor motion. See <a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a> for more information.</p>
<p>If the cursor mode is <code>GLFW_CURSOR_DISABLED</code> then the cursor position is unconstrained and limited only by the minimum and maximum values of a <code>double</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The desired window. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>The desired x-coordinate, relative to the left edge of the client area. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>The desired y-coordinate, relative to the top edge of the client area.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_pos">Cursor position</a> </dd>
<dd>
<a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc" title="Retrieves the position of the cursor relative to the client area of the window. ">glfwGetCursorPos</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwSetMousePos</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga7dad39486f2c7591af7fb25134a2501d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a> glfwSetCursorPosCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the cursor position callback of the specified window, which is called when the cursor is moved. The callback is provided with the position, in screen coordinates, relative to the upper-left corner of the client area of the window.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#cursor_pos">Cursor position</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwSetMousePosCallback</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga41291bf15dd3ff564b3143aa6dc74a4b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#gab71f4ca80b651462852e601caf308c4a">GLFWdropfun</a> glfwSetDropCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#gab71f4ca80b651462852e601caf308c4a">GLFWdropfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the file drop callback of the specified window, which is called when one or more dragged files are dropped on the window.</p>
<p>Because the path array and its strings may have been generated specifically for that event, they are not guaranteed to be valid after the callback has returned. If you wish to use them after the callback returns, you need to make a deep copy.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new file drop callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#path_drop">Path drop input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa92336e173da9c8834558b54ee80563b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetInputMode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets an input mode option for the specified window. The mode must be one of <code>GLFW_CURSOR</code>, <code>GLFW_STICKY_KEYS</code> or <code>GLFW_STICKY_MOUSE_BUTTONS</code>.</p>
<p>If the mode is <code>GLFW_CURSOR</code>, the value must be one of the following cursor modes:</p><ul>
<li><code>GLFW_CURSOR_NORMAL</code> makes the cursor visible and behaving normally.</li>
<li><code>GLFW_CURSOR_HIDDEN</code> makes the cursor invisible when it is over the client area of the window but does not restrict the cursor from leaving.</li>
<li><code>GLFW_CURSOR_DISABLED</code> hides and grabs the cursor, providing virtual and unlimited cursor movement. This is useful for implementing for example 3D camera controls.</li>
</ul>
<p>If the mode is <code>GLFW_STICKY_KEYS</code>, the value must be either <code>GLFW_TRUE</code> to enable sticky keys, or <code>GLFW_FALSE</code> to disable it. If sticky keys are enabled, a key press will ensure that <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a> returns <code>GLFW_PRESS</code> the next time it is called even if the key had been released before the call. This is useful when you are only interested in whether keys have been pressed but not when or in which order.</p>
<p>If the mode is <code>GLFW_STICKY_MOUSE_BUTTONS</code>, the value must be either <code>GLFW_TRUE</code> to enable sticky mouse buttons, or <code>GLFW_FALSE</code> to disable it. If sticky mouse buttons are enabled, a mouse button press will ensure that <a class="el" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a> returns <code>GLFW_PRESS</code> the next time it is called even if the mouse button had been released before the call. This is useful when you are only interested in whether mouse buttons have been pressed but not when or in which order.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose input mode to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>One of <code>GLFW_CURSOR</code>, <code>GLFW_STICKY_KEYS</code> or <code>GLFW_STICKY_MOUSE_BUTTONS</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The new value of the specified input mode.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__input.html#gaf5b859dbe19bdf434e42695ea45cc5f4" title="Returns the value of an input option for the specified window. ">glfwGetInputMode</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwEnable</code> and <code>glfwDisable</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="gab1dc8379f1b82bb660a6b9c9fa06ca07"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a> glfwSetJoystickCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the joystick configuration callback, or removes the currently set callback. This is called when a joystick is connected to or disconnected from the system.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#joystick_event">Joystick configuration changes</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga7e496507126f35ea72f01b2e6ef6d155"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a> glfwSetKeyCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the key callback of the specified window, which is called when a key is pressed, repeated or released.</p>
<p>The key functions deal with physical keys, with layout independent <a class="el" href="group__keys.html">key tokens</a> named after their values in the standard US keyboard layout. If you want to input text, use the <a class="el" href="group__input.html#ga556239421c6a5a243c66fca28da9f742">character callback</a> instead.</p>
<p>When a window loses input focus, it will generate synthetic key release events for all pressed keys. You can tell these events from user-generated events by the fact that the synthetic ones are generated after the focus loss event has been processed, i.e. after the <a class="el" href="group__window.html#ga25d1c584edb375d7711c5c3548ba711f">window focus callback</a> has been called.</p>
<p>The scancode of a key is specific to that platform or sometimes even to that machine. Scancodes are intended to allow users to bind keys that don't have a GLFW key token. Such keys have <code>key</code> set to <code>GLFW_KEY_UNKNOWN</code>, their state is not saved and so it cannot be queried with <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>.</p>
<p>Sometimes GLFW needs to generate synthetic key events, in which case the scancode may be zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new key callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_key">Key input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter and return value. </dd></dl>
</div>
</div>
<a class="anchor" id="gaef49b72d84d615bca0a6ed65485e035d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a> glfwSetMouseButtonCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the mouse button callback of the specified window, which is called when a mouse button is pressed or released.</p>
<p>When a window loses input focus, it will generate synthetic mouse button release events for all pressed mouse buttons. You can tell these events from user-generated events by the fact that the synthetic ones are generated after the focus loss event has been processed, i.e. after the <a class="el" href="group__window.html#ga25d1c584edb375d7711c5c3548ba711f">window focus callback</a> has been called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#input_mouse_button">Mouse button input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter and return value. </dd></dl>
</div>
</div>
<a class="anchor" id="gacf02eb10504352f16efda4593c3ce60e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a> glfwSetScrollCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the scroll callback of the specified window, which is called when a scrolling device is used, such as a mouse wheel or scrolling area of a touchpad.</p>
<p>The scroll callback receives all scrolling input, like that from a mouse wheel or a touchpad scrolling area.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new scroll callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#scrolling">Scroll input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwSetMouseWheelCallback</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="gaf59589ef6e8b8c8b5ad184b25afd4dc0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetTime </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>time</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the value of the GLFW timer. It then continues to count up from that value. The value must be a positive finite number less than or equal to 18446744073.0, which is approximately 584.5 years.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">time</td><td>The new value, in seconds.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>The upper limit of the timer is calculated as floor((2<sup>64</sup> - 1) / 10<sup>9</sup>) and is due to implementations storing nanoseconds in 64 bits. The limit may be increased in the future.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Reading and writing of the internal timer offset is not atomic, so it needs to be externally synchronized with calls to <a class="el" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#time">Time input</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.2. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Joysticks</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">Joysticks<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga34a0443d059e9f22272cd4669073f73d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga34a0443d059e9f22272cd4669073f73d">GLFW_JOYSTICK_1</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga34a0443d059e9f22272cd4669073f73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6eab65ec88e65e0850ef8413504cb50c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga6eab65ec88e65e0850ef8413504cb50c">GLFW_JOYSTICK_2</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga6eab65ec88e65e0850ef8413504cb50c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6f3eedfeb42424c2f5e3161efb0b654"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">GLFW_JOYSTICK_3</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:gae6f3eedfeb42424c2f5e3161efb0b654"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97ddbcad02b7f48d74fad4ddb08fff59"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga97ddbcad02b7f48d74fad4ddb08fff59">GLFW_JOYSTICK_4</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:ga97ddbcad02b7f48d74fad4ddb08fff59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae43281bc66d3fa5089fb50c3e7a28695"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#gae43281bc66d3fa5089fb50c3e7a28695">GLFW_JOYSTICK_5</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:gae43281bc66d3fa5089fb50c3e7a28695"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga74771620aa53bd68a487186dea66fd77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga74771620aa53bd68a487186dea66fd77">GLFW_JOYSTICK_6</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:ga74771620aa53bd68a487186dea66fd77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20a9f4f3aaefed9ea5e66072fc588b87"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">GLFW_JOYSTICK_7</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:ga20a9f4f3aaefed9ea5e66072fc588b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21a934c940bcf25db0e4c8fe9b364bdb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga21a934c940bcf25db0e4c8fe9b364bdb">GLFW_JOYSTICK_8</a>&#160;&#160;&#160;7</td></tr>
<tr class="separator:ga21a934c940bcf25db0e4c8fe9b364bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga87689d47df0ba6f9f5fcbbcaf7b3cecf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga87689d47df0ba6f9f5fcbbcaf7b3cecf">GLFW_JOYSTICK_9</a>&#160;&#160;&#160;8</td></tr>
<tr class="separator:ga87689d47df0ba6f9f5fcbbcaf7b3cecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef55389ee605d6dfc31aef6fe98c54ec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#gaef55389ee605d6dfc31aef6fe98c54ec">GLFW_JOYSTICK_10</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:gaef55389ee605d6dfc31aef6fe98c54ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7d26e3df447c2c14a569fcc18516af4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#gae7d26e3df447c2c14a569fcc18516af4">GLFW_JOYSTICK_11</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:gae7d26e3df447c2c14a569fcc18516af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab91bbf5b7ca6be8d3ac5c4d89ff48ac7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#gab91bbf5b7ca6be8d3ac5c4d89ff48ac7">GLFW_JOYSTICK_12</a>&#160;&#160;&#160;11</td></tr>
<tr class="separator:gab91bbf5b7ca6be8d3ac5c4d89ff48ac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c84fb4e49bf661d7d7c78eb4018c508"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga5c84fb4e49bf661d7d7c78eb4018c508">GLFW_JOYSTICK_13</a>&#160;&#160;&#160;12</td></tr>
<tr class="separator:ga5c84fb4e49bf661d7d7c78eb4018c508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89540873278ae5a42b3e70d64164dc74"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga89540873278ae5a42b3e70d64164dc74">GLFW_JOYSTICK_14</a>&#160;&#160;&#160;13</td></tr>
<tr class="separator:ga89540873278ae5a42b3e70d64164dc74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b02ab70daf7a78bcc942d5d4cc1dcf9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga7b02ab70daf7a78bcc942d5d4cc1dcf9">GLFW_JOYSTICK_15</a>&#160;&#160;&#160;14</td></tr>
<tr class="separator:ga7b02ab70daf7a78bcc942d5d4cc1dcf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga453edeeabf350827646b6857df4f80ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga453edeeabf350827646b6857df4f80ce">GLFW_JOYSTICK_16</a>&#160;&#160;&#160;15</td></tr>
<tr class="separator:ga453edeeabf350827646b6857df4f80ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ca13ebf24c331dd98df17d84a4b72c9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga9ca13ebf24c331dd98df17d84a4b72c9">GLFW_JOYSTICK_LAST</a>&#160;&#160;&#160;<a class="el" href="group__joysticks.html#ga453edeeabf350827646b6857df4f80ce">GLFW_JOYSTICK_16</a></td></tr>
<tr class="separator:ga9ca13ebf24c331dd98df17d84a4b72c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>See <a class="el" href="input_guide.html#joystick">joystick input</a> for how these are used. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga34a0443d059e9f22272cd4669073f73d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_1&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaef55389ee605d6dfc31aef6fe98c54ec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_10&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae7d26e3df447c2c14a569fcc18516af4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_11&#160;&#160;&#160;10</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gab91bbf5b7ca6be8d3ac5c4d89ff48ac7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_12&#160;&#160;&#160;11</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga5c84fb4e49bf661d7d7c78eb4018c508"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_13&#160;&#160;&#160;12</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga89540873278ae5a42b3e70d64164dc74"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_14&#160;&#160;&#160;13</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga7b02ab70daf7a78bcc942d5d4cc1dcf9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_15&#160;&#160;&#160;14</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga453edeeabf350827646b6857df4f80ce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_16&#160;&#160;&#160;15</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6eab65ec88e65e0850ef8413504cb50c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_2&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae6f3eedfeb42424c2f5e3161efb0b654"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_3&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga97ddbcad02b7f48d74fad4ddb08fff59"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_4&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae43281bc66d3fa5089fb50c3e7a28695"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_5&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga74771620aa53bd68a487186dea66fd77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_6&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga20a9f4f3aaefed9ea5e66072fc588b87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_7&#160;&#160;&#160;6</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga21a934c940bcf25db0e4c8fe9b364bdb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_8&#160;&#160;&#160;7</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga87689d47df0ba6f9f5fcbbcaf7b3cecf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_9&#160;&#160;&#160;8</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9ca13ebf24c331dd98df17d84a4b72c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_JOYSTICK_LAST&#160;&#160;&#160;<a class="el" href="group__joysticks.html#ga453edeeabf350827646b6857df4f80ce">GLFW_JOYSTICK_16</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Keyboard keys</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">Keyboard keys<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga99aacc875b6b27a072552631e13775c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga99aacc875b6b27a072552631e13775c7">GLFW_KEY_UNKNOWN</a>&#160;&#160;&#160;-1</td></tr>
<tr class="separator:ga99aacc875b6b27a072552631e13775c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddb2c23772b97fd7e26e8ee66f1ad014"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaddb2c23772b97fd7e26e8ee66f1ad014">GLFW_KEY_SPACE</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:gaddb2c23772b97fd7e26e8ee66f1ad014"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6059b0b048ba6980b6107fffbd3b4b24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga6059b0b048ba6980b6107fffbd3b4b24">GLFW_KEY_APOSTROPHE</a>&#160;&#160;&#160;39 /* ' */</td></tr>
<tr class="separator:ga6059b0b048ba6980b6107fffbd3b4b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3d5d72e59d3055f494627b0a524926c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gab3d5d72e59d3055f494627b0a524926c">GLFW_KEY_COMMA</a>&#160;&#160;&#160;44 /* , */</td></tr>
<tr class="separator:gab3d5d72e59d3055f494627b0a524926c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac556b360f7f6fca4b70ba0aecf313fd4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gac556b360f7f6fca4b70ba0aecf313fd4">GLFW_KEY_MINUS</a>&#160;&#160;&#160;45 /* - */</td></tr>
<tr class="separator:gac556b360f7f6fca4b70ba0aecf313fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37e296b650eab419fc474ff69033d927"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga37e296b650eab419fc474ff69033d927">GLFW_KEY_PERIOD</a>&#160;&#160;&#160;46 /* . */</td></tr>
<tr class="separator:ga37e296b650eab419fc474ff69033d927"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf3d753b2d479148d711de34b83fd0db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gadf3d753b2d479148d711de34b83fd0db">GLFW_KEY_SLASH</a>&#160;&#160;&#160;47 /* / */</td></tr>
<tr class="separator:gadf3d753b2d479148d711de34b83fd0db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50391730e9d7112ad4fd42d0bd1597c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga50391730e9d7112ad4fd42d0bd1597c1">GLFW_KEY_0</a>&#160;&#160;&#160;48</td></tr>
<tr class="separator:ga50391730e9d7112ad4fd42d0bd1597c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05e4cae9ddb8d40cf6d82c8f11f2502f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga05e4cae9ddb8d40cf6d82c8f11f2502f">GLFW_KEY_1</a>&#160;&#160;&#160;49</td></tr>
<tr class="separator:ga05e4cae9ddb8d40cf6d82c8f11f2502f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc8e66b3a4c4b5c39ad1305cf852863c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gadc8e66b3a4c4b5c39ad1305cf852863c">GLFW_KEY_2</a>&#160;&#160;&#160;50</td></tr>
<tr class="separator:gadc8e66b3a4c4b5c39ad1305cf852863c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga812f0273fe1a981e1fa002ae73e92271"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga812f0273fe1a981e1fa002ae73e92271">GLFW_KEY_3</a>&#160;&#160;&#160;51</td></tr>
<tr class="separator:ga812f0273fe1a981e1fa002ae73e92271"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e14b6975a9cc8f66cdd5cb3d3861356"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9e14b6975a9cc8f66cdd5cb3d3861356">GLFW_KEY_4</a>&#160;&#160;&#160;52</td></tr>
<tr class="separator:ga9e14b6975a9cc8f66cdd5cb3d3861356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d74ddaa5d4c609993b4d4a15736c924"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga4d74ddaa5d4c609993b4d4a15736c924">GLFW_KEY_5</a>&#160;&#160;&#160;53</td></tr>
<tr class="separator:ga4d74ddaa5d4c609993b4d4a15736c924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ea4ab80c313a227b14d0a7c6f810b5d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9ea4ab80c313a227b14d0a7c6f810b5d">GLFW_KEY_6</a>&#160;&#160;&#160;54</td></tr>
<tr class="separator:ga9ea4ab80c313a227b14d0a7c6f810b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab79b1cfae7bd630cfc4604c1f263c666"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gab79b1cfae7bd630cfc4604c1f263c666">GLFW_KEY_7</a>&#160;&#160;&#160;55</td></tr>
<tr class="separator:gab79b1cfae7bd630cfc4604c1f263c666"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadeaa109a0f9f5afc94fe4a108e686f6f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gadeaa109a0f9f5afc94fe4a108e686f6f">GLFW_KEY_8</a>&#160;&#160;&#160;56</td></tr>
<tr class="separator:gadeaa109a0f9f5afc94fe4a108e686f6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2924cb5349ebbf97c8987f3521c44f39"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga2924cb5349ebbf97c8987f3521c44f39">GLFW_KEY_9</a>&#160;&#160;&#160;57</td></tr>
<tr class="separator:ga2924cb5349ebbf97c8987f3521c44f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga84233de9ee5bb3e8788a5aa07d80af7d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga84233de9ee5bb3e8788a5aa07d80af7d">GLFW_KEY_SEMICOLON</a>&#160;&#160;&#160;59 /* ; */</td></tr>
<tr class="separator:ga84233de9ee5bb3e8788a5aa07d80af7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae1a2de47240d6664423c204bdd91bd17"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gae1a2de47240d6664423c204bdd91bd17">GLFW_KEY_EQUAL</a>&#160;&#160;&#160;61 /* = */</td></tr>
<tr class="separator:gae1a2de47240d6664423c204bdd91bd17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03e842608e1ea323370889d33b8f70ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga03e842608e1ea323370889d33b8f70ff">GLFW_KEY_A</a>&#160;&#160;&#160;65</td></tr>
<tr class="separator:ga03e842608e1ea323370889d33b8f70ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e3fb647ff3aca9e8dbf14fe66332941"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga8e3fb647ff3aca9e8dbf14fe66332941">GLFW_KEY_B</a>&#160;&#160;&#160;66</td></tr>
<tr class="separator:ga8e3fb647ff3aca9e8dbf14fe66332941"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00ccf3475d9ee2e679480d540d554669"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga00ccf3475d9ee2e679480d540d554669">GLFW_KEY_C</a>&#160;&#160;&#160;67</td></tr>
<tr class="separator:ga00ccf3475d9ee2e679480d540d554669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga011f7cdc9a654da984a2506479606933"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga011f7cdc9a654da984a2506479606933">GLFW_KEY_D</a>&#160;&#160;&#160;68</td></tr>
<tr class="separator:ga011f7cdc9a654da984a2506479606933"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf48fcc3afbe69349df432b470c96ef2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">GLFW_KEY_E</a>&#160;&#160;&#160;69</td></tr>
<tr class="separator:gabf48fcc3afbe69349df432b470c96ef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5df402e02aca08444240058fd9b42a55"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga5df402e02aca08444240058fd9b42a55">GLFW_KEY_F</a>&#160;&#160;&#160;70</td></tr>
<tr class="separator:ga5df402e02aca08444240058fd9b42a55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae74ecddf7cc96104ab23989b1cdab536"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gae74ecddf7cc96104ab23989b1cdab536">GLFW_KEY_G</a>&#160;&#160;&#160;71</td></tr>
<tr class="separator:gae74ecddf7cc96104ab23989b1cdab536"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4cc98fc8f35f015d9e2fb94bf136076"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gad4cc98fc8f35f015d9e2fb94bf136076">GLFW_KEY_H</a>&#160;&#160;&#160;72</td></tr>
<tr class="separator:gad4cc98fc8f35f015d9e2fb94bf136076"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga274655c8bfe39742684ca393cf8ed093"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga274655c8bfe39742684ca393cf8ed093">GLFW_KEY_I</a>&#160;&#160;&#160;73</td></tr>
<tr class="separator:ga274655c8bfe39742684ca393cf8ed093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65ff2aedb129a3149ad9cb3e4159a75f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga65ff2aedb129a3149ad9cb3e4159a75f">GLFW_KEY_J</a>&#160;&#160;&#160;74</td></tr>
<tr class="separator:ga65ff2aedb129a3149ad9cb3e4159a75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ae8debadf6d2a691badae0b53ea3ba0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga4ae8debadf6d2a691badae0b53ea3ba0">GLFW_KEY_K</a>&#160;&#160;&#160;75</td></tr>
<tr class="separator:ga4ae8debadf6d2a691badae0b53ea3ba0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa8b54a13f6b1eed85ac86f82d550db2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaaa8b54a13f6b1eed85ac86f82d550db2">GLFW_KEY_L</a>&#160;&#160;&#160;76</td></tr>
<tr class="separator:gaaa8b54a13f6b1eed85ac86f82d550db2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d7f0260c82e4ea3d6ebc7a21d6e3716"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga4d7f0260c82e4ea3d6ebc7a21d6e3716">GLFW_KEY_M</a>&#160;&#160;&#160;77</td></tr>
<tr class="separator:ga4d7f0260c82e4ea3d6ebc7a21d6e3716"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae00856dfeb5d13aafebf59d44de5cdda"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gae00856dfeb5d13aafebf59d44de5cdda">GLFW_KEY_N</a>&#160;&#160;&#160;78</td></tr>
<tr class="separator:gae00856dfeb5d13aafebf59d44de5cdda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecbbb79130df419d58dd7f09a169efe9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaecbbb79130df419d58dd7f09a169efe9">GLFW_KEY_O</a>&#160;&#160;&#160;79</td></tr>
<tr class="separator:gaecbbb79130df419d58dd7f09a169efe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fc15819c1094fb2afa01d84546b33e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga8fc15819c1094fb2afa01d84546b33e1">GLFW_KEY_P</a>&#160;&#160;&#160;80</td></tr>
<tr class="separator:ga8fc15819c1094fb2afa01d84546b33e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafdd01e38b120d67cf51e348bb47f3964"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gafdd01e38b120d67cf51e348bb47f3964">GLFW_KEY_Q</a>&#160;&#160;&#160;81</td></tr>
<tr class="separator:gafdd01e38b120d67cf51e348bb47f3964"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ce6c70a0c98c50b3fe4ab9a728d4d36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga4ce6c70a0c98c50b3fe4ab9a728d4d36">GLFW_KEY_R</a>&#160;&#160;&#160;82</td></tr>
<tr class="separator:ga4ce6c70a0c98c50b3fe4ab9a728d4d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1570e2ccaab036ea82bed66fc1dab2a9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga1570e2ccaab036ea82bed66fc1dab2a9">GLFW_KEY_S</a>&#160;&#160;&#160;83</td></tr>
<tr class="separator:ga1570e2ccaab036ea82bed66fc1dab2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90e0560422ec7a30e7f3f375bc9f37f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga90e0560422ec7a30e7f3f375bc9f37f9">GLFW_KEY_T</a>&#160;&#160;&#160;84</td></tr>
<tr class="separator:ga90e0560422ec7a30e7f3f375bc9f37f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacad52f3bf7d378fc0ffa72a76769256d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gacad52f3bf7d378fc0ffa72a76769256d">GLFW_KEY_U</a>&#160;&#160;&#160;85</td></tr>
<tr class="separator:gacad52f3bf7d378fc0ffa72a76769256d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga22c7763899ecf7788862e5f90eacce6b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga22c7763899ecf7788862e5f90eacce6b">GLFW_KEY_V</a>&#160;&#160;&#160;86</td></tr>
<tr class="separator:ga22c7763899ecf7788862e5f90eacce6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa06a712e6202661fc03da5bdb7b6e545"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaa06a712e6202661fc03da5bdb7b6e545">GLFW_KEY_W</a>&#160;&#160;&#160;87</td></tr>
<tr class="separator:gaa06a712e6202661fc03da5bdb7b6e545"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1c42c0bf4192cea713c55598b06b744"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gac1c42c0bf4192cea713c55598b06b744">GLFW_KEY_X</a>&#160;&#160;&#160;88</td></tr>
<tr class="separator:gac1c42c0bf4192cea713c55598b06b744"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd9f115a549effdf8e372a787c360313"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gafd9f115a549effdf8e372a787c360313">GLFW_KEY_Y</a>&#160;&#160;&#160;89</td></tr>
<tr class="separator:gafd9f115a549effdf8e372a787c360313"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac489e208c26afda8d4938ed88718760a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gac489e208c26afda8d4938ed88718760a">GLFW_KEY_Z</a>&#160;&#160;&#160;90</td></tr>
<tr class="separator:gac489e208c26afda8d4938ed88718760a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1c8d9adac53925276ecb1d592511d8a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gad1c8d9adac53925276ecb1d592511d8a">GLFW_KEY_LEFT_BRACKET</a>&#160;&#160;&#160;91 /* [ */</td></tr>
<tr class="separator:gad1c8d9adac53925276ecb1d592511d8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8155ea99d1ab27ff56f24f8dc73f8d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gab8155ea99d1ab27ff56f24f8dc73f8d1">GLFW_KEY_BACKSLASH</a>&#160;&#160;&#160;92 /* \ */</td></tr>
<tr class="separator:gab8155ea99d1ab27ff56f24f8dc73f8d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86ef225fd6a66404caae71044cdd58d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga86ef225fd6a66404caae71044cdd58d8">GLFW_KEY_RIGHT_BRACKET</a>&#160;&#160;&#160;93 /* ] */</td></tr>
<tr class="separator:ga86ef225fd6a66404caae71044cdd58d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a3701fb4e2a0b136ff4b568c3c8d668"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga7a3701fb4e2a0b136ff4b568c3c8d668">GLFW_KEY_GRAVE_ACCENT</a>&#160;&#160;&#160;96 /* ` */</td></tr>
<tr class="separator:ga7a3701fb4e2a0b136ff4b568c3c8d668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc78dad3dab76bcd4b5c20114052577a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gadc78dad3dab76bcd4b5c20114052577a">GLFW_KEY_WORLD_1</a>&#160;&#160;&#160;161 /* non-US #1 */</td></tr>
<tr class="separator:gadc78dad3dab76bcd4b5c20114052577a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20494bfebf0bb4fc9503afca18ab2c5e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga20494bfebf0bb4fc9503afca18ab2c5e">GLFW_KEY_WORLD_2</a>&#160;&#160;&#160;162 /* non-US #2 */</td></tr>
<tr class="separator:ga20494bfebf0bb4fc9503afca18ab2c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac6596c350b635c245113b81c2123b93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaac6596c350b635c245113b81c2123b93">GLFW_KEY_ESCAPE</a>&#160;&#160;&#160;256</td></tr>
<tr class="separator:gaac6596c350b635c245113b81c2123b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9555a92ecbecdbc1f3435219c571d667"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9555a92ecbecdbc1f3435219c571d667">GLFW_KEY_ENTER</a>&#160;&#160;&#160;257</td></tr>
<tr class="separator:ga9555a92ecbecdbc1f3435219c571d667"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6908a4bda9950a3e2b73f794bbe985df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga6908a4bda9950a3e2b73f794bbe985df">GLFW_KEY_TAB</a>&#160;&#160;&#160;258</td></tr>
<tr class="separator:ga6908a4bda9950a3e2b73f794bbe985df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c0df1fe2f156bbd5a98c66d76ff3635"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga6c0df1fe2f156bbd5a98c66d76ff3635">GLFW_KEY_BACKSPACE</a>&#160;&#160;&#160;259</td></tr>
<tr class="separator:ga6c0df1fe2f156bbd5a98c66d76ff3635"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga373ac7365435d6b0eb1068f470e34f47"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga373ac7365435d6b0eb1068f470e34f47">GLFW_KEY_INSERT</a>&#160;&#160;&#160;260</td></tr>
<tr class="separator:ga373ac7365435d6b0eb1068f470e34f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb111e4df74b8a715f2c05dad58d2682"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gadb111e4df74b8a715f2c05dad58d2682">GLFW_KEY_DELETE</a>&#160;&#160;&#160;261</td></tr>
<tr class="separator:gadb111e4df74b8a715f2c05dad58d2682"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga06ba07662e8c291a4a84535379ffc7ac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga06ba07662e8c291a4a84535379ffc7ac">GLFW_KEY_RIGHT</a>&#160;&#160;&#160;262</td></tr>
<tr class="separator:ga06ba07662e8c291a4a84535379ffc7ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae12a010d33c309a67ab9460c51eb2462"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gae12a010d33c309a67ab9460c51eb2462">GLFW_KEY_LEFT</a>&#160;&#160;&#160;263</td></tr>
<tr class="separator:gae12a010d33c309a67ab9460c51eb2462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2e3958c71595607416aa7bf082be2f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gae2e3958c71595607416aa7bf082be2f9">GLFW_KEY_DOWN</a>&#160;&#160;&#160;264</td></tr>
<tr class="separator:gae2e3958c71595607416aa7bf082be2f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f3342b194020d3544c67e3506b6f144"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga2f3342b194020d3544c67e3506b6f144">GLFW_KEY_UP</a>&#160;&#160;&#160;265</td></tr>
<tr class="separator:ga2f3342b194020d3544c67e3506b6f144"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ab731f9622f0db280178a5f3cc6d586"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga3ab731f9622f0db280178a5f3cc6d586">GLFW_KEY_PAGE_UP</a>&#160;&#160;&#160;266</td></tr>
<tr class="separator:ga3ab731f9622f0db280178a5f3cc6d586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee0a8fa442001cc2147812f84b59041c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaee0a8fa442001cc2147812f84b59041c">GLFW_KEY_PAGE_DOWN</a>&#160;&#160;&#160;267</td></tr>
<tr class="separator:gaee0a8fa442001cc2147812f84b59041c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41452c7287195d481e43207318c126a7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga41452c7287195d481e43207318c126a7">GLFW_KEY_HOME</a>&#160;&#160;&#160;268</td></tr>
<tr class="separator:ga41452c7287195d481e43207318c126a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86587ea1df19a65978d3e3b8439bedd9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga86587ea1df19a65978d3e3b8439bedd9">GLFW_KEY_END</a>&#160;&#160;&#160;269</td></tr>
<tr class="separator:ga86587ea1df19a65978d3e3b8439bedd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga92c1d2c9d63485f3d70f94f688d48672"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga92c1d2c9d63485f3d70f94f688d48672">GLFW_KEY_CAPS_LOCK</a>&#160;&#160;&#160;280</td></tr>
<tr class="separator:ga92c1d2c9d63485f3d70f94f688d48672"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf622b63b9537f7084c2ab649b8365630"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaf622b63b9537f7084c2ab649b8365630">GLFW_KEY_SCROLL_LOCK</a>&#160;&#160;&#160;281</td></tr>
<tr class="separator:gaf622b63b9537f7084c2ab649b8365630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3946edc362aeff213b2be6304296cf43"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga3946edc362aeff213b2be6304296cf43">GLFW_KEY_NUM_LOCK</a>&#160;&#160;&#160;282</td></tr>
<tr class="separator:ga3946edc362aeff213b2be6304296cf43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf964c2e65e97d0cf785a5636ee8df642"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaf964c2e65e97d0cf785a5636ee8df642">GLFW_KEY_PRINT_SCREEN</a>&#160;&#160;&#160;283</td></tr>
<tr class="separator:gaf964c2e65e97d0cf785a5636ee8df642"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8116b9692d87382afb5849b6d8907f18"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga8116b9692d87382afb5849b6d8907f18">GLFW_KEY_PAUSE</a>&#160;&#160;&#160;284</td></tr>
<tr class="separator:ga8116b9692d87382afb5849b6d8907f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb8d66c573acf22e364049477dcbea30"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gafb8d66c573acf22e364049477dcbea30">GLFW_KEY_F1</a>&#160;&#160;&#160;290</td></tr>
<tr class="separator:gafb8d66c573acf22e364049477dcbea30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0900750aff94889b940f5e428c07daee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga0900750aff94889b940f5e428c07daee">GLFW_KEY_F2</a>&#160;&#160;&#160;291</td></tr>
<tr class="separator:ga0900750aff94889b940f5e428c07daee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed7cd729c0147a551bb8b7bb36c17015"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaed7cd729c0147a551bb8b7bb36c17015">GLFW_KEY_F3</a>&#160;&#160;&#160;292</td></tr>
<tr class="separator:gaed7cd729c0147a551bb8b7bb36c17015"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b61ebd0c63b44b7332fda2c9763eaa6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9b61ebd0c63b44b7332fda2c9763eaa6">GLFW_KEY_F4</a>&#160;&#160;&#160;293</td></tr>
<tr class="separator:ga9b61ebd0c63b44b7332fda2c9763eaa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf258dda9947daa428377938ed577c8c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaf258dda9947daa428377938ed577c8c2">GLFW_KEY_F5</a>&#160;&#160;&#160;294</td></tr>
<tr class="separator:gaf258dda9947daa428377938ed577c8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6dc2d3f87b9d51ffbbbe2ef0299d8e1d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga6dc2d3f87b9d51ffbbbe2ef0299d8e1d">GLFW_KEY_F6</a>&#160;&#160;&#160;295</td></tr>
<tr class="separator:ga6dc2d3f87b9d51ffbbbe2ef0299d8e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacca6ef8a2162c52a0ac1d881e8d9c38a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gacca6ef8a2162c52a0ac1d881e8d9c38a">GLFW_KEY_F7</a>&#160;&#160;&#160;296</td></tr>
<tr class="separator:gacca6ef8a2162c52a0ac1d881e8d9c38a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9d39390336ae14e4a93e295de43c7e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gac9d39390336ae14e4a93e295de43c7e8">GLFW_KEY_F8</a>&#160;&#160;&#160;297</td></tr>
<tr class="separator:gac9d39390336ae14e4a93e295de43c7e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae40de0de1c9f21cd26c9afa3d7050851"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gae40de0de1c9f21cd26c9afa3d7050851">GLFW_KEY_F9</a>&#160;&#160;&#160;298</td></tr>
<tr class="separator:gae40de0de1c9f21cd26c9afa3d7050851"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga718d11d2f7d57471a2f6a894235995b1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga718d11d2f7d57471a2f6a894235995b1">GLFW_KEY_F10</a>&#160;&#160;&#160;299</td></tr>
<tr class="separator:ga718d11d2f7d57471a2f6a894235995b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0bc04b11627e7d69339151e7306b2832"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga0bc04b11627e7d69339151e7306b2832">GLFW_KEY_F11</a>&#160;&#160;&#160;300</td></tr>
<tr class="separator:ga0bc04b11627e7d69339151e7306b2832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5908fa9b0a906ae03fc2c61ac7aa3e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaf5908fa9b0a906ae03fc2c61ac7aa3e2">GLFW_KEY_F12</a>&#160;&#160;&#160;301</td></tr>
<tr class="separator:gaf5908fa9b0a906ae03fc2c61ac7aa3e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad637f4308655e1001bd6ad942bc0fd4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gad637f4308655e1001bd6ad942bc0fd4b">GLFW_KEY_F13</a>&#160;&#160;&#160;302</td></tr>
<tr class="separator:gad637f4308655e1001bd6ad942bc0fd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf14c66cff3396e5bd46e803c035e6c1f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaf14c66cff3396e5bd46e803c035e6c1f">GLFW_KEY_F14</a>&#160;&#160;&#160;303</td></tr>
<tr class="separator:gaf14c66cff3396e5bd46e803c035e6c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f70970db6e8be1794da8516a6d14058"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga7f70970db6e8be1794da8516a6d14058">GLFW_KEY_F15</a>&#160;&#160;&#160;304</td></tr>
<tr class="separator:ga7f70970db6e8be1794da8516a6d14058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa582dbb1d2ba2050aa1dca0838095b27"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaa582dbb1d2ba2050aa1dca0838095b27">GLFW_KEY_F16</a>&#160;&#160;&#160;305</td></tr>
<tr class="separator:gaa582dbb1d2ba2050aa1dca0838095b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga972ce5c365e2394b36104b0e3125c748"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga972ce5c365e2394b36104b0e3125c748">GLFW_KEY_F17</a>&#160;&#160;&#160;306</td></tr>
<tr class="separator:ga972ce5c365e2394b36104b0e3125c748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebf6391058d5566601e357edc5ea737c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaebf6391058d5566601e357edc5ea737c">GLFW_KEY_F18</a>&#160;&#160;&#160;307</td></tr>
<tr class="separator:gaebf6391058d5566601e357edc5ea737c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec011d9ba044058cb54529da710e9791"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaec011d9ba044058cb54529da710e9791">GLFW_KEY_F19</a>&#160;&#160;&#160;308</td></tr>
<tr class="separator:gaec011d9ba044058cb54529da710e9791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga82b9c721ada04cd5ca8de767da38022f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga82b9c721ada04cd5ca8de767da38022f">GLFW_KEY_F20</a>&#160;&#160;&#160;309</td></tr>
<tr class="separator:ga82b9c721ada04cd5ca8de767da38022f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga356afb14d3440ff2bb378f74f7ebc60f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga356afb14d3440ff2bb378f74f7ebc60f">GLFW_KEY_F21</a>&#160;&#160;&#160;310</td></tr>
<tr class="separator:ga356afb14d3440ff2bb378f74f7ebc60f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90960bd2a155f2b09675324d3dff1565"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga90960bd2a155f2b09675324d3dff1565">GLFW_KEY_F22</a>&#160;&#160;&#160;311</td></tr>
<tr class="separator:ga90960bd2a155f2b09675324d3dff1565"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga43c21099aac10952d1be909a8ddee4d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga43c21099aac10952d1be909a8ddee4d5">GLFW_KEY_F23</a>&#160;&#160;&#160;312</td></tr>
<tr class="separator:ga43c21099aac10952d1be909a8ddee4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8150374677b5bed3043408732152dea2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga8150374677b5bed3043408732152dea2">GLFW_KEY_F24</a>&#160;&#160;&#160;313</td></tr>
<tr class="separator:ga8150374677b5bed3043408732152dea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4bbd93ed73bb4c6ae7d83df880b7199"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaa4bbd93ed73bb4c6ae7d83df880b7199">GLFW_KEY_F25</a>&#160;&#160;&#160;314</td></tr>
<tr class="separator:gaa4bbd93ed73bb4c6ae7d83df880b7199"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10515dafc55b71e7683f5b4fedd1c70d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga10515dafc55b71e7683f5b4fedd1c70d">GLFW_KEY_KP_0</a>&#160;&#160;&#160;320</td></tr>
<tr class="separator:ga10515dafc55b71e7683f5b4fedd1c70d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3a29a334402c5eaf0b3439edf5587c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaf3a29a334402c5eaf0b3439edf5587c3">GLFW_KEY_KP_1</a>&#160;&#160;&#160;321</td></tr>
<tr class="separator:gaf3a29a334402c5eaf0b3439edf5587c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf82d5a802ab8213c72653d7480c16f13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaf82d5a802ab8213c72653d7480c16f13">GLFW_KEY_KP_2</a>&#160;&#160;&#160;322</td></tr>
<tr class="separator:gaf82d5a802ab8213c72653d7480c16f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e25ff30d56cd512828c1d4ae8d54ef2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga7e25ff30d56cd512828c1d4ae8d54ef2">GLFW_KEY_KP_3</a>&#160;&#160;&#160;323</td></tr>
<tr class="separator:ga7e25ff30d56cd512828c1d4ae8d54ef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gada7ec86778b85e0b4de0beea72234aea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gada7ec86778b85e0b4de0beea72234aea">GLFW_KEY_KP_4</a>&#160;&#160;&#160;324</td></tr>
<tr class="separator:gada7ec86778b85e0b4de0beea72234aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a5be274434866c51738cafbb6d26b45"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9a5be274434866c51738cafbb6d26b45">GLFW_KEY_KP_5</a>&#160;&#160;&#160;325</td></tr>
<tr class="separator:ga9a5be274434866c51738cafbb6d26b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc141b0f8450519084c01092a3157faa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gafc141b0f8450519084c01092a3157faa">GLFW_KEY_KP_6</a>&#160;&#160;&#160;326</td></tr>
<tr class="separator:gafc141b0f8450519084c01092a3157faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8882f411f05d04ec77a9563974bbfa53"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga8882f411f05d04ec77a9563974bbfa53">GLFW_KEY_KP_7</a>&#160;&#160;&#160;327</td></tr>
<tr class="separator:ga8882f411f05d04ec77a9563974bbfa53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2ea2e6a12f89d315045af520ac78cec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gab2ea2e6a12f89d315045af520ac78cec">GLFW_KEY_KP_8</a>&#160;&#160;&#160;328</td></tr>
<tr class="separator:gab2ea2e6a12f89d315045af520ac78cec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb21426b630ed4fcc084868699ba74c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gafb21426b630ed4fcc084868699ba74c1">GLFW_KEY_KP_9</a>&#160;&#160;&#160;329</td></tr>
<tr class="separator:gafb21426b630ed4fcc084868699ba74c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e231d968796331a9ea0dbfb98d4005b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga4e231d968796331a9ea0dbfb98d4005b">GLFW_KEY_KP_DECIMAL</a>&#160;&#160;&#160;330</td></tr>
<tr class="separator:ga4e231d968796331a9ea0dbfb98d4005b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabca1733780a273d549129ad0f250d1e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gabca1733780a273d549129ad0f250d1e5">GLFW_KEY_KP_DIVIDE</a>&#160;&#160;&#160;331</td></tr>
<tr class="separator:gabca1733780a273d549129ad0f250d1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ada267eb0e78ed2ada8701dd24a56ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9ada267eb0e78ed2ada8701dd24a56ef">GLFW_KEY_KP_MULTIPLY</a>&#160;&#160;&#160;332</td></tr>
<tr class="separator:ga9ada267eb0e78ed2ada8701dd24a56ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3dbd60782ff93d6082a124bce1fa236"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaa3dbd60782ff93d6082a124bce1fa236">GLFW_KEY_KP_SUBTRACT</a>&#160;&#160;&#160;333</td></tr>
<tr class="separator:gaa3dbd60782ff93d6082a124bce1fa236"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad09c7c98acc79e89aa6a0a91275becac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gad09c7c98acc79e89aa6a0a91275becac">GLFW_KEY_KP_ADD</a>&#160;&#160;&#160;334</td></tr>
<tr class="separator:gad09c7c98acc79e89aa6a0a91275becac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f728f8738f2986bd63eedd3d412e8cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga4f728f8738f2986bd63eedd3d412e8cf">GLFW_KEY_KP_ENTER</a>&#160;&#160;&#160;335</td></tr>
<tr class="separator:ga4f728f8738f2986bd63eedd3d412e8cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebdc76d4a808191e6d21b7e4ad2acd97"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaebdc76d4a808191e6d21b7e4ad2acd97">GLFW_KEY_KP_EQUAL</a>&#160;&#160;&#160;336</td></tr>
<tr class="separator:gaebdc76d4a808191e6d21b7e4ad2acd97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a530a28a65c44ab5d00b759b756d3f6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga8a530a28a65c44ab5d00b759b756d3f6">GLFW_KEY_LEFT_SHIFT</a>&#160;&#160;&#160;340</td></tr>
<tr class="separator:ga8a530a28a65c44ab5d00b759b756d3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f97b743e81460ac4b2deddecd10a464"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9f97b743e81460ac4b2deddecd10a464">GLFW_KEY_LEFT_CONTROL</a>&#160;&#160;&#160;341</td></tr>
<tr class="separator:ga9f97b743e81460ac4b2deddecd10a464"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f27dabf63a7789daa31e1c96790219b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga7f27dabf63a7789daa31e1c96790219b">GLFW_KEY_LEFT_ALT</a>&#160;&#160;&#160;342</td></tr>
<tr class="separator:ga7f27dabf63a7789daa31e1c96790219b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb1207c91997fc295afd1835fbc5641a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gafb1207c91997fc295afd1835fbc5641a">GLFW_KEY_LEFT_SUPER</a>&#160;&#160;&#160;343</td></tr>
<tr class="separator:gafb1207c91997fc295afd1835fbc5641a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaffca36b99c9dce1a19cb9befbadce691"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gaffca36b99c9dce1a19cb9befbadce691">GLFW_KEY_RIGHT_SHIFT</a>&#160;&#160;&#160;344</td></tr>
<tr class="separator:gaffca36b99c9dce1a19cb9befbadce691"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1ca2094b2694e7251d0ab1fd34f8519"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gad1ca2094b2694e7251d0ab1fd34f8519">GLFW_KEY_RIGHT_CONTROL</a>&#160;&#160;&#160;345</td></tr>
<tr class="separator:gad1ca2094b2694e7251d0ab1fd34f8519"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga687b38009131cfdd07a8d05fff8fa446"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga687b38009131cfdd07a8d05fff8fa446">GLFW_KEY_RIGHT_ALT</a>&#160;&#160;&#160;346</td></tr>
<tr class="separator:ga687b38009131cfdd07a8d05fff8fa446"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4547a3e8e247594acb60423fe6502db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#gad4547a3e8e247594acb60423fe6502db">GLFW_KEY_RIGHT_SUPER</a>&#160;&#160;&#160;347</td></tr>
<tr class="separator:gad4547a3e8e247594acb60423fe6502db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9845be48a745fc232045c9ec174d8820"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga9845be48a745fc232045c9ec174d8820">GLFW_KEY_MENU</a>&#160;&#160;&#160;348</td></tr>
<tr class="separator:ga9845be48a745fc232045c9ec174d8820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga442cbaef7bfb9a4ba13594dd7fbf2789"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys.html#ga442cbaef7bfb9a4ba13594dd7fbf2789">GLFW_KEY_LAST</a>&#160;&#160;&#160;<a class="el" href="group__keys.html#ga9845be48a745fc232045c9ec174d8820">GLFW_KEY_MENU</a></td></tr>
<tr class="separator:ga442cbaef7bfb9a4ba13594dd7fbf2789"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>See <a class="el" href="input_guide.html#input_key">key input</a> for how these are used.</p>
<p>These key codes are inspired by the <em>USB HID Usage Tables v1.12</em> (p. 53-60), but re-arranged to map to 7-bit ASCII for printable keys (function keys are put in the 256+ range).</p>
<p>The naming of the key codes follow these rules:</p><ul>
<li>The US keyboard layout is used</li>
<li>Names of printable alpha-numeric characters are used (e.g. "A", "R", "3", etc.)</li>
<li>For non-alphanumeric characters, Unicode:ish names are used (e.g. "COMMA", "LEFT_SQUARE_BRACKET", etc.). Note that some names do not correspond to the Unicode standard (usually for brevity)</li>
<li>Keys that lack a clear US mapping are named "WORLD_x"</li>
<li>For non-printable keys, custom names are used (e.g. "F4", "BACKSPACE", etc.) </li>
</ul>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga50391730e9d7112ad4fd42d0bd1597c1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_0&#160;&#160;&#160;48</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga05e4cae9ddb8d40cf6d82c8f11f2502f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_1&#160;&#160;&#160;49</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gadc8e66b3a4c4b5c39ad1305cf852863c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_2&#160;&#160;&#160;50</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga812f0273fe1a981e1fa002ae73e92271"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_3&#160;&#160;&#160;51</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9e14b6975a9cc8f66cdd5cb3d3861356"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_4&#160;&#160;&#160;52</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4d74ddaa5d4c609993b4d4a15736c924"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_5&#160;&#160;&#160;53</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9ea4ab80c313a227b14d0a7c6f810b5d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_6&#160;&#160;&#160;54</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gab79b1cfae7bd630cfc4604c1f263c666"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_7&#160;&#160;&#160;55</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gadeaa109a0f9f5afc94fe4a108e686f6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_8&#160;&#160;&#160;56</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga2924cb5349ebbf97c8987f3521c44f39"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_9&#160;&#160;&#160;57</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga03e842608e1ea323370889d33b8f70ff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_A&#160;&#160;&#160;65</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6059b0b048ba6980b6107fffbd3b4b24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_APOSTROPHE&#160;&#160;&#160;39 /* ' */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8e3fb647ff3aca9e8dbf14fe66332941"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_B&#160;&#160;&#160;66</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gab8155ea99d1ab27ff56f24f8dc73f8d1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_BACKSLASH&#160;&#160;&#160;92 /* \ */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6c0df1fe2f156bbd5a98c66d76ff3635"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_BACKSPACE&#160;&#160;&#160;259</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga00ccf3475d9ee2e679480d540d554669"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_C&#160;&#160;&#160;67</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga92c1d2c9d63485f3d70f94f688d48672"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_CAPS_LOCK&#160;&#160;&#160;280</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gab3d5d72e59d3055f494627b0a524926c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_COMMA&#160;&#160;&#160;44 /* , */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga011f7cdc9a654da984a2506479606933"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_D&#160;&#160;&#160;68</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gadb111e4df74b8a715f2c05dad58d2682"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_DELETE&#160;&#160;&#160;261</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae2e3958c71595607416aa7bf082be2f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_DOWN&#160;&#160;&#160;264</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gabf48fcc3afbe69349df432b470c96ef2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_E&#160;&#160;&#160;69</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga86587ea1df19a65978d3e3b8439bedd9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_END&#160;&#160;&#160;269</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9555a92ecbecdbc1f3435219c571d667"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_ENTER&#160;&#160;&#160;257</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae1a2de47240d6664423c204bdd91bd17"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_EQUAL&#160;&#160;&#160;61 /* = */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaac6596c350b635c245113b81c2123b93"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_ESCAPE&#160;&#160;&#160;256</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga5df402e02aca08444240058fd9b42a55"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F&#160;&#160;&#160;70</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gafb8d66c573acf22e364049477dcbea30"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F1&#160;&#160;&#160;290</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga718d11d2f7d57471a2f6a894235995b1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F10&#160;&#160;&#160;299</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0bc04b11627e7d69339151e7306b2832"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F11&#160;&#160;&#160;300</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf5908fa9b0a906ae03fc2c61ac7aa3e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F12&#160;&#160;&#160;301</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad637f4308655e1001bd6ad942bc0fd4b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F13&#160;&#160;&#160;302</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf14c66cff3396e5bd46e803c035e6c1f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F14&#160;&#160;&#160;303</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga7f70970db6e8be1794da8516a6d14058"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F15&#160;&#160;&#160;304</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaa582dbb1d2ba2050aa1dca0838095b27"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F16&#160;&#160;&#160;305</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga972ce5c365e2394b36104b0e3125c748"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F17&#160;&#160;&#160;306</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaebf6391058d5566601e357edc5ea737c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F18&#160;&#160;&#160;307</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaec011d9ba044058cb54529da710e9791"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F19&#160;&#160;&#160;308</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0900750aff94889b940f5e428c07daee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F2&#160;&#160;&#160;291</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga82b9c721ada04cd5ca8de767da38022f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F20&#160;&#160;&#160;309</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga356afb14d3440ff2bb378f74f7ebc60f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F21&#160;&#160;&#160;310</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga90960bd2a155f2b09675324d3dff1565"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F22&#160;&#160;&#160;311</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga43c21099aac10952d1be909a8ddee4d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F23&#160;&#160;&#160;312</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8150374677b5bed3043408732152dea2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F24&#160;&#160;&#160;313</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaa4bbd93ed73bb4c6ae7d83df880b7199"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F25&#160;&#160;&#160;314</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaed7cd729c0147a551bb8b7bb36c17015"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F3&#160;&#160;&#160;292</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9b61ebd0c63b44b7332fda2c9763eaa6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F4&#160;&#160;&#160;293</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf258dda9947daa428377938ed577c8c2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F5&#160;&#160;&#160;294</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6dc2d3f87b9d51ffbbbe2ef0299d8e1d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F6&#160;&#160;&#160;295</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gacca6ef8a2162c52a0ac1d881e8d9c38a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F7&#160;&#160;&#160;296</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gac9d39390336ae14e4a93e295de43c7e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F8&#160;&#160;&#160;297</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae40de0de1c9f21cd26c9afa3d7050851"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_F9&#160;&#160;&#160;298</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae74ecddf7cc96104ab23989b1cdab536"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_G&#160;&#160;&#160;71</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga7a3701fb4e2a0b136ff4b568c3c8d668"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_GRAVE_ACCENT&#160;&#160;&#160;96 /* ` */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad4cc98fc8f35f015d9e2fb94bf136076"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_H&#160;&#160;&#160;72</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga41452c7287195d481e43207318c126a7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_HOME&#160;&#160;&#160;268</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga274655c8bfe39742684ca393cf8ed093"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_I&#160;&#160;&#160;73</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga373ac7365435d6b0eb1068f470e34f47"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_INSERT&#160;&#160;&#160;260</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga65ff2aedb129a3149ad9cb3e4159a75f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_J&#160;&#160;&#160;74</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4ae8debadf6d2a691badae0b53ea3ba0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_K&#160;&#160;&#160;75</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga10515dafc55b71e7683f5b4fedd1c70d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_0&#160;&#160;&#160;320</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf3a29a334402c5eaf0b3439edf5587c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_1&#160;&#160;&#160;321</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf82d5a802ab8213c72653d7480c16f13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_2&#160;&#160;&#160;322</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga7e25ff30d56cd512828c1d4ae8d54ef2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_3&#160;&#160;&#160;323</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gada7ec86778b85e0b4de0beea72234aea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_4&#160;&#160;&#160;324</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9a5be274434866c51738cafbb6d26b45"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_5&#160;&#160;&#160;325</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gafc141b0f8450519084c01092a3157faa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_6&#160;&#160;&#160;326</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8882f411f05d04ec77a9563974bbfa53"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_7&#160;&#160;&#160;327</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gab2ea2e6a12f89d315045af520ac78cec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_8&#160;&#160;&#160;328</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gafb21426b630ed4fcc084868699ba74c1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_9&#160;&#160;&#160;329</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad09c7c98acc79e89aa6a0a91275becac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_ADD&#160;&#160;&#160;334</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4e231d968796331a9ea0dbfb98d4005b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_DECIMAL&#160;&#160;&#160;330</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gabca1733780a273d549129ad0f250d1e5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_DIVIDE&#160;&#160;&#160;331</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4f728f8738f2986bd63eedd3d412e8cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_ENTER&#160;&#160;&#160;335</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaebdc76d4a808191e6d21b7e4ad2acd97"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_EQUAL&#160;&#160;&#160;336</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9ada267eb0e78ed2ada8701dd24a56ef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_MULTIPLY&#160;&#160;&#160;332</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaa3dbd60782ff93d6082a124bce1fa236"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_KP_SUBTRACT&#160;&#160;&#160;333</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaaa8b54a13f6b1eed85ac86f82d550db2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_L&#160;&#160;&#160;76</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga442cbaef7bfb9a4ba13594dd7fbf2789"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_LAST&#160;&#160;&#160;<a class="el" href="group__keys.html#ga9845be48a745fc232045c9ec174d8820">GLFW_KEY_MENU</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae12a010d33c309a67ab9460c51eb2462"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_LEFT&#160;&#160;&#160;263</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga7f27dabf63a7789daa31e1c96790219b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_LEFT_ALT&#160;&#160;&#160;342</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad1c8d9adac53925276ecb1d592511d8a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_LEFT_BRACKET&#160;&#160;&#160;91 /* [ */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9f97b743e81460ac4b2deddecd10a464"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_LEFT_CONTROL&#160;&#160;&#160;341</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8a530a28a65c44ab5d00b759b756d3f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_LEFT_SHIFT&#160;&#160;&#160;340</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gafb1207c91997fc295afd1835fbc5641a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_LEFT_SUPER&#160;&#160;&#160;343</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4d7f0260c82e4ea3d6ebc7a21d6e3716"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_M&#160;&#160;&#160;77</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9845be48a745fc232045c9ec174d8820"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_MENU&#160;&#160;&#160;348</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gac556b360f7f6fca4b70ba0aecf313fd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_MINUS&#160;&#160;&#160;45 /* - */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae00856dfeb5d13aafebf59d44de5cdda"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_N&#160;&#160;&#160;78</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga3946edc362aeff213b2be6304296cf43"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_NUM_LOCK&#160;&#160;&#160;282</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaecbbb79130df419d58dd7f09a169efe9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_O&#160;&#160;&#160;79</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8fc15819c1094fb2afa01d84546b33e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_P&#160;&#160;&#160;80</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaee0a8fa442001cc2147812f84b59041c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_PAGE_DOWN&#160;&#160;&#160;267</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga3ab731f9622f0db280178a5f3cc6d586"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_PAGE_UP&#160;&#160;&#160;266</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8116b9692d87382afb5849b6d8907f18"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_PAUSE&#160;&#160;&#160;284</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga37e296b650eab419fc474ff69033d927"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_PERIOD&#160;&#160;&#160;46 /* . */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf964c2e65e97d0cf785a5636ee8df642"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_PRINT_SCREEN&#160;&#160;&#160;283</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gafdd01e38b120d67cf51e348bb47f3964"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_Q&#160;&#160;&#160;81</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4ce6c70a0c98c50b3fe4ab9a728d4d36"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_R&#160;&#160;&#160;82</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga06ba07662e8c291a4a84535379ffc7ac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_RIGHT&#160;&#160;&#160;262</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga687b38009131cfdd07a8d05fff8fa446"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_RIGHT_ALT&#160;&#160;&#160;346</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga86ef225fd6a66404caae71044cdd58d8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_RIGHT_BRACKET&#160;&#160;&#160;93 /* ] */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad1ca2094b2694e7251d0ab1fd34f8519"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_RIGHT_CONTROL&#160;&#160;&#160;345</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaffca36b99c9dce1a19cb9befbadce691"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_RIGHT_SHIFT&#160;&#160;&#160;344</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad4547a3e8e247594acb60423fe6502db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_RIGHT_SUPER&#160;&#160;&#160;347</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga1570e2ccaab036ea82bed66fc1dab2a9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_S&#160;&#160;&#160;83</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf622b63b9537f7084c2ab649b8365630"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_SCROLL_LOCK&#160;&#160;&#160;281</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga84233de9ee5bb3e8788a5aa07d80af7d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_SEMICOLON&#160;&#160;&#160;59 /* ; */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gadf3d753b2d479148d711de34b83fd0db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_SLASH&#160;&#160;&#160;47 /* / */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaddb2c23772b97fd7e26e8ee66f1ad014"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_SPACE&#160;&#160;&#160;32</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga90e0560422ec7a30e7f3f375bc9f37f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_T&#160;&#160;&#160;84</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6908a4bda9950a3e2b73f794bbe985df"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_TAB&#160;&#160;&#160;258</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gacad52f3bf7d378fc0ffa72a76769256d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_U&#160;&#160;&#160;85</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga99aacc875b6b27a072552631e13775c7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_UNKNOWN&#160;&#160;&#160;-1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga2f3342b194020d3544c67e3506b6f144"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_UP&#160;&#160;&#160;265</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga22c7763899ecf7788862e5f90eacce6b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_V&#160;&#160;&#160;86</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaa06a712e6202661fc03da5bdb7b6e545"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_W&#160;&#160;&#160;87</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gadc78dad3dab76bcd4b5c20114052577a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_WORLD_1&#160;&#160;&#160;161 /* non-US #1 */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga20494bfebf0bb4fc9503afca18ab2c5e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_WORLD_2&#160;&#160;&#160;162 /* non-US #2 */</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gac1c42c0bf4192cea713c55598b06b744"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_X&#160;&#160;&#160;88</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gafd9f115a549effdf8e372a787c360313"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_Y&#160;&#160;&#160;89</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gac489e208c26afda8d4938ed88718760a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_KEY_Z&#160;&#160;&#160;90</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Modifier key flags</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">Modifier key flags<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga14994d3196c290aaa347248e51740274"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mods.html#ga14994d3196c290aaa347248e51740274">GLFW_MOD_SHIFT</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:ga14994d3196c290aaa347248e51740274"><td class="mdescLeft">&#160;</td><td class="mdescRight">If this bit is set one or more Shift keys were held down. <a href="#ga14994d3196c290aaa347248e51740274">More...</a><br /></td></tr>
<tr class="separator:ga14994d3196c290aaa347248e51740274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ed94871c3208eefd85713fa929d45aa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mods.html#ga6ed94871c3208eefd85713fa929d45aa">GLFW_MOD_CONTROL</a>&#160;&#160;&#160;0x0002</td></tr>
<tr class="memdesc:ga6ed94871c3208eefd85713fa929d45aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">If this bit is set one or more Control keys were held down. <a href="#ga6ed94871c3208eefd85713fa929d45aa">More...</a><br /></td></tr>
<tr class="separator:ga6ed94871c3208eefd85713fa929d45aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2acd5633463c29e07008687ea73c0f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mods.html#gad2acd5633463c29e07008687ea73c0f4">GLFW_MOD_ALT</a>&#160;&#160;&#160;0x0004</td></tr>
<tr class="memdesc:gad2acd5633463c29e07008687ea73c0f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">If this bit is set one or more Alt keys were held down. <a href="#gad2acd5633463c29e07008687ea73c0f4">More...</a><br /></td></tr>
<tr class="separator:gad2acd5633463c29e07008687ea73c0f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b64ba10ea0227cf6f42efd0a220aba1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mods.html#ga6b64ba10ea0227cf6f42efd0a220aba1">GLFW_MOD_SUPER</a>&#160;&#160;&#160;0x0008</td></tr>
<tr class="memdesc:ga6b64ba10ea0227cf6f42efd0a220aba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">If this bit is set one or more Super keys were held down. <a href="#ga6b64ba10ea0227cf6f42efd0a220aba1">More...</a><br /></td></tr>
<tr class="separator:ga6b64ba10ea0227cf6f42efd0a220aba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>See <a class="el" href="input_guide.html#input_key">key input</a> for how these are used. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gad2acd5633463c29e07008687ea73c0f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOD_ALT&#160;&#160;&#160;0x0004</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6ed94871c3208eefd85713fa929d45aa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOD_CONTROL&#160;&#160;&#160;0x0002</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga14994d3196c290aaa347248e51740274"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOD_SHIFT&#160;&#160;&#160;0x0001</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6b64ba10ea0227cf6f42efd0a220aba1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_MOD_SUPER&#160;&#160;&#160;0x0008</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Monitor reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Monitor reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structGLFWvidmode.html">GLFWvidmode</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video mode type. <a href="structGLFWvidmode.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamma ramp. <a href="structGLFWgammaramp.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga8d9efd1cde9426692c73fe40437d0ae3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></td></tr>
<tr class="memdesc:ga8d9efd1cde9426692c73fe40437d0ae3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque monitor object. <a href="#ga8d9efd1cde9426692c73fe40437d0ae3">More...</a><br /></td></tr>
<tr class="separator:ga8d9efd1cde9426692c73fe40437d0ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a7ee579a66720f24d656526f3e44c63"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *, int)</td></tr>
<tr class="memdesc:ga8a7ee579a66720f24d656526f3e44c63"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for monitor configuration callbacks. <a href="#ga8a7ee579a66720f24d656526f3e44c63">More...</a><br /></td></tr>
<tr class="separator:ga8a7ee579a66720f24d656526f3e44c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">GLFWvidmode</a></td></tr>
<tr class="memdesc:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video mode type. <a href="#gae48aadf4ea0967e6605c8f58fa5daccb">More...</a><br /></td></tr>
<tr class="separator:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec0bd37af673be8813592849f13e02f0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">GLFWgammaramp</a></td></tr>
<tr class="memdesc:gaec0bd37af673be8813592849f13e02f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamma ramp. <a href="#gaec0bd37af673be8813592849f13e02f0">More...</a><br /></td></tr>
<tr class="separator:gaec0bd37af673be8813592849f13e02f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga3fba51c8bd36491d4712aa5bd074a537"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a> (int *count)</td></tr>
<tr class="memdesc:ga3fba51c8bd36491d4712aa5bd074a537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently connected monitors. <a href="#ga3fba51c8bd36491d4712aa5bd074a537">More...</a><br /></td></tr>
<tr class="separator:ga3fba51c8bd36491d4712aa5bd074a537"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga721867d84c6d18d6790d64d2847ca0b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a> (void)</td></tr>
<tr class="memdesc:ga721867d84c6d18d6790d64d2847ca0b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the primary monitor. <a href="#ga721867d84c6d18d6790d64d2847ca0b1">More...</a><br /></td></tr>
<tr class="separator:ga721867d84c6d18d6790d64d2847ca0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga102f54e7acc9149edbcf0997152df8c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *xpos, int *ypos)</td></tr>
<tr class="memdesc:ga102f54e7acc9149edbcf0997152df8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the position of the monitor's viewport on the virtual screen. <a href="#ga102f54e7acc9149edbcf0997152df8c9">More...</a><br /></td></tr>
<tr class="separator:ga102f54e7acc9149edbcf0997152df8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d8bffc6c55539286a6bd20d32a8d7ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *widthMM, int *heightMM)</td></tr>
<tr class="memdesc:ga7d8bffc6c55539286a6bd20d32a8d7ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the physical size of the monitor. <a href="#ga7d8bffc6c55539286a6bd20d32a8d7ea">More...</a><br /></td></tr>
<tr class="separator:ga7d8bffc6c55539286a6bd20d32a8d7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79a34ee22ff080ca954a9663e4679daf"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:ga79a34ee22ff080ca954a9663e4679daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified monitor. <a href="#ga79a34ee22ff080ca954a9663e4679daf">More...</a><br /></td></tr>
<tr class="separator:ga79a34ee22ff080ca954a9663e4679daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3fe0f647f68b731f99756cd81897378"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gac3fe0f647f68b731f99756cd81897378">glfwSetMonitorCallback</a> (<a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a> cbfun)</td></tr>
<tr class="memdesc:gac3fe0f647f68b731f99756cd81897378"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the monitor configuration callback. <a href="#gac3fe0f647f68b731f99756cd81897378">More...</a><br /></td></tr>
<tr class="separator:gac3fe0f647f68b731f99756cd81897378"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *count)</td></tr>
<tr class="memdesc:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the available video modes for the specified monitor. <a href="#ga820b0ce9a5237d645ea7cbb4bd383458">More...</a><br /></td></tr>
<tr class="separator:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current mode of the specified monitor. <a href="#gafc1bb972a921ad5b3bd5d63a95fc2d52">More...</a><br /></td></tr>
<tr class="separator:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ac582625c990220785ddd34efa3169a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, float gamma)</td></tr>
<tr class="memdesc:ga6ac582625c990220785ddd34efa3169a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a gamma ramp and sets it for the specified monitor. <a href="#ga6ac582625c990220785ddd34efa3169a">More...</a><br /></td></tr>
<tr class="separator:ga6ac582625c990220785ddd34efa3169a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current gamma ramp for the specified monitor. <a href="#gab7c41deb2219bde3e1eb756ddaa9ec80">More...</a><br /></td></tr>
<tr class="separator:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *ramp)</td></tr>
<tr class="memdesc:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the current gamma ramp for the specified monitor. <a href="#ga583f0ffd0d29613d8cd172b996bbf0dd">More...</a><br /></td></tr>
<tr class="separator:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is the reference documentation for monitor related functions and types. For more task-oriented information, see the <a class="el" href="monitor_guide.html">Monitor guide</a>. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaec0bd37af673be8813592849f13e02f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This describes the gamma ramp for a monitor.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_gamma">Gamma ramp</a> </dd>
<dd>
<a class="el" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80" title="Returns the current gamma ramp for the specified monitor. ">glfwGetGammaRamp</a> <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd" title="Sets the current gamma ramp for the specified monitor. ">glfwSetGammaRamp</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga8d9efd1cde9426692c73fe40437d0ae3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Opaque monitor object.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_object">Monitor objects</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga8a7ee579a66720f24d656526f3e44c63"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWmonitorfun) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for monitor configuration callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor that was connected or disconnected. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>One of <code>GLFW_CONNECTED</code> or <code>GLFW_DISCONNECTED</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_event">Monitor configuration changes</a> </dd>
<dd>
<a class="el" href="group__monitor.html#gac3fe0f647f68b731f99756cd81897378" title="Sets the monitor configuration callback. ">glfwSetMonitorCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gae48aadf4ea0967e6605c8f58fa5daccb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This describes a single video mode.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_modes">Video modes</a> </dd>
<dd>
<a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52" title="Returns the current mode of the specified monitor. ">glfwGetVideoMode</a> <a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458" title="Returns the available video modes for the specified monitor. ">glfwGetVideoModes</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added refresh rate member. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gab7c41deb2219bde3e1eb756ddaa9ec80"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>* glfwGetGammaRamp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the current gamma ramp of the specified monitor.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The current gamma ramp, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned structure and its arrays are allocated and freed by GLFW. You should not free them yourself. They are valid until the specified monitor is disconnected, this function is called again for that monitor or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_gamma">Gamma ramp</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga79a34ee22ff080ca954a9663e4679daf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* glfwGetMonitorName </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns a human-readable name, encoded as UTF-8, of the specified monitor. The name typically reflects the make and model of the monitor and is not guaranteed to be unique among the connected monitors.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The UTF-8 encoded name of the monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned string is allocated and freed by GLFW. You should not free it yourself. It is valid until the specified monitor is disconnected or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_properties">Monitor properties</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga7d8bffc6c55539286a6bd20d32a8d7ea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetMonitorPhysicalSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>widthMM</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>heightMM</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the size, in millimetres, of the display area of the specified monitor.</p>
<p>Some systems do not provide accurate monitor size information, either because the monitor <a href="https://en.wikipedia.org/wiki/Extended_display_identification_data">EDID</a> data is incorrect or because the driver does not report it accurately.</p>
<p>Any or all of the size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> size arguments will be set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">widthMM</td><td>Where to store the width, in millimetres, of the monitor's display area, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">heightMM</td><td>Where to store the height, in millimetres, of the monitor's display area, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><b>Windows:</b> calculates the returned physical size from the current resolution and system DPI instead of querying the monitor EDID data.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_properties">Monitor properties</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga102f54e7acc9149edbcf0997152df8c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetMonitorPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>xpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>ypos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the position, in screen coordinates, of the upper-left corner of the specified monitor.</p>
<p>Any or all of the position arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> position arguments will be set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">xpos</td><td>Where to store the monitor x-coordinate, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ypos</td><td>Where to store the monitor y-coordinate, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_properties">Monitor properties</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3fba51c8bd36491d4712aa5bd074a537"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>** glfwGetMonitors </td>
<td>(</td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>count</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns an array of handles for all currently connected monitors. The primary monitor is always first in the returned array. If no monitors were found, this function returns <code>NULL</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Where to store the number of monitors in the returned array. This is set to zero if an error occurred. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An array of monitor handles, or <code>NULL</code> if no monitors were found or if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned array is allocated and freed by GLFW. You should not free it yourself. It is guaranteed to be valid only until the monitor configuration changes or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_monitors">Retrieving monitors</a> </dd>
<dd>
<a class="el" href="monitor_guide.html#monitor_event">Monitor configuration changes</a> </dd>
<dd>
<a class="el" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1" title="Returns the primary monitor. ">glfwGetPrimaryMonitor</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga721867d84c6d18d6790d64d2847ca0b1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* glfwGetPrimaryMonitor </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the primary monitor. This is usually the monitor where elements like the task bar or global menu bar are located.</p>
<dl class="section return"><dt>Returns</dt><dd>The primary monitor, or <code>NULL</code> if no monitors were found or if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>The primary monitor is always first in the array returned by <a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_monitors">Retrieving monitors</a> </dd>
<dd>
<a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537" title="Returns the currently connected monitors. ">glfwGetMonitors</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gafc1bb972a921ad5b3bd5d63a95fc2d52"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>* glfwGetVideoMode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the current video mode of the specified monitor. If you have created a full screen window for that monitor, the return value will depend on whether that window is iconified.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The current mode of the monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned array is allocated and freed by GLFW. You should not free it yourself. It is valid until the specified monitor is disconnected or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_modes">Video modes</a> </dd>
<dd>
<a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458" title="Returns the available video modes for the specified monitor. ">glfwGetVideoModes</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwGetDesktopMode</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga820b0ce9a5237d645ea7cbb4bd383458"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>* glfwGetVideoModes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns an array of all video modes supported by the specified monitor. The returned array is sorted in ascending order, first by color bit depth (the sum of all channel depths) and then by resolution area (the product of width and height).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Where to store the number of video modes in the returned array. This is set to zero if an error occurred. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An array of video modes, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned array is allocated and freed by GLFW. You should not free it yourself. It is valid until the specified monitor is disconnected, this function is called again for that monitor or the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_modes">Video modes</a> </dd>
<dd>
<a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52" title="Returns the current mode of the specified monitor. ">glfwGetVideoMode</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Changed to return an array of modes for a specific monitor. </dd></dl>
</div>
</div>
<a class="anchor" id="ga6ac582625c990220785ddd34efa3169a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetGamma </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>gamma</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function generates a 256-element gamma ramp from the specified exponent and then calls <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> with it. The value must be a finite number greater than zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor whose gamma ramp to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">gamma</td><td>The desired exponent.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_gamma">Gamma ramp</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga583f0ffd0d29613d8cd172b996bbf0dd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetGammaRamp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *&#160;</td>
<td class="paramname"><em>ramp</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the current gamma ramp for the specified monitor. The original gamma ramp for that monitor is saved by GLFW the first time this function is called and is restored by <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor whose gamma ramp to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ramp</td><td>The gamma ramp to use.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Gamma ramp sizes other than 256 are not supported by all platforms or graphics hardware.</dd>
<dd>
<b>Windows:</b> The gamma ramp size must be 256.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The specified gamma ramp is copied before this function returns.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_gamma">Gamma ramp</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gac3fe0f647f68b731f99756cd81897378"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a> glfwSetMonitorCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the monitor configuration callback, or removes the currently set callback. This is called when a monitor is connected to or disconnected from the system.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_event">Monitor configuration changes</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Native access</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Native access</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac84f63a3f9db145b9435e5e0dbc4183d">glfwGetWin32Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the adapter device name of the specified monitor. <a href="#gac84f63a3f9db145b9435e5e0dbc4183d">More...</a><br /></td></tr>
<tr class="separator:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac408b09a330749402d5d1fa1f5894dd9"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac408b09a330749402d5d1fa1f5894dd9">glfwGetWin32Monitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gac408b09a330749402d5d1fa1f5894dd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the display device name of the specified monitor. <a href="#gac408b09a330749402d5d1fa1f5894dd9">More...</a><br /></td></tr>
<tr class="separator:gac408b09a330749402d5d1fa1f5894dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe5079aa79038b0079fc09d5f0a8e667"><td class="memItemLeft" align="right" valign="top">HWND&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:gafe5079aa79038b0079fc09d5f0a8e667"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>HWND</code> of the specified window. <a href="#gafe5079aa79038b0079fc09d5f0a8e667">More...</a><br /></td></tr>
<tr class="separator:gafe5079aa79038b0079fc09d5f0a8e667"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc4010d91d9cc1134d040eeb1202a143"><td class="memItemLeft" align="right" valign="top">HGLRC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gadc4010d91d9cc1134d040eeb1202a143">glfwGetWGLContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:gadc4010d91d9cc1134d040eeb1202a143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>HGLRC</code> of the specified window. <a href="#gadc4010d91d9cc1134d040eeb1202a143">More...</a><br /></td></tr>
<tr class="separator:gadc4010d91d9cc1134d040eeb1202a143"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf22f429aec4b1aab316142d66d9be3e6"><td class="memItemLeft" align="right" valign="top">CGDirectDisplayID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gaf22f429aec4b1aab316142d66d9be3e6">glfwGetCocoaMonitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gaf22f429aec4b1aab316142d66d9be3e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>CGDirectDisplayID</code> of the specified monitor. <a href="#gaf22f429aec4b1aab316142d66d9be3e6">More...</a><br /></td></tr>
<tr class="separator:gaf22f429aec4b1aab316142d66d9be3e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3ed9d495d0c2bb9652de5a50c648715"><td class="memItemLeft" align="right" valign="top">id&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac3ed9d495d0c2bb9652de5a50c648715">glfwGetCocoaWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:gac3ed9d495d0c2bb9652de5a50c648715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>NSWindow</code> of the specified window. <a href="#gac3ed9d495d0c2bb9652de5a50c648715">More...</a><br /></td></tr>
<tr class="separator:gac3ed9d495d0c2bb9652de5a50c648715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga559e002e3cd63c979881770cd4dc63bc"><td class="memItemLeft" align="right" valign="top">id&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">glfwGetNSGLContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga559e002e3cd63c979881770cd4dc63bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>NSOpenGLContext</code> of the specified window. <a href="#ga559e002e3cd63c979881770cd4dc63bc">More...</a><br /></td></tr>
<tr class="separator:ga559e002e3cd63c979881770cd4dc63bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="memItemLeft" align="right" valign="top">Display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga8519b66594ea3ef6eeafaa2e3ee37406">glfwGetX11Display</a> (void)</td></tr>
<tr class="memdesc:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>Display</code> used by GLFW. <a href="#ga8519b66594ea3ef6eeafaa2e3ee37406">More...</a><br /></td></tr>
<tr class="separator:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga088fbfa80f50569402b41be71ad66e40"><td class="memItemLeft" align="right" valign="top">RRCrtc&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">glfwGetX11Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:ga088fbfa80f50569402b41be71ad66e40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>RRCrtc</code> of the specified monitor. <a href="#ga088fbfa80f50569402b41be71ad66e40">More...</a><br /></td></tr>
<tr class="separator:ga088fbfa80f50569402b41be71ad66e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2f8cc043905e9fa9b12bfdbbcfe874c"><td class="memItemLeft" align="right" valign="top">RROutput&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gab2f8cc043905e9fa9b12bfdbbcfe874c">glfwGetX11Monitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gab2f8cc043905e9fa9b12bfdbbcfe874c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>RROutput</code> of the specified monitor. <a href="#gab2f8cc043905e9fa9b12bfdbbcfe874c">More...</a><br /></td></tr>
<tr class="separator:gab2f8cc043905e9fa9b12bfdbbcfe874c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90ca676322740842db446999a1b1f21d"><td class="memItemLeft" align="right" valign="top">Window&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga90ca676322740842db446999a1b1f21d">glfwGetX11Window</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga90ca676322740842db446999a1b1f21d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>Window</code> of the specified window. <a href="#ga90ca676322740842db446999a1b1f21d">More...</a><br /></td></tr>
<tr class="separator:ga90ca676322740842db446999a1b1f21d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62d884114b0abfcdc2930e89f20867e2"><td class="memItemLeft" align="right" valign="top">GLXContext&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">glfwGetGLXContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga62d884114b0abfcdc2930e89f20867e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>GLXContext</code> of the specified window. <a href="#ga62d884114b0abfcdc2930e89f20867e2">More...</a><br /></td></tr>
<tr class="separator:ga62d884114b0abfcdc2930e89f20867e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ed27b8766e859a21381e8f8ce18d049"><td class="memItemLeft" align="right" valign="top">GLXWindow&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">glfwGetGLXWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga1ed27b8766e859a21381e8f8ce18d049"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>GLXWindow</code> of the specified window. <a href="#ga1ed27b8766e859a21381e8f8ce18d049">More...</a><br /></td></tr>
<tr class="separator:ga1ed27b8766e859a21381e8f8ce18d049"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="memItemLeft" align="right" valign="top">struct wl_display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gaaf8118a3c877f3a6bc8e7a649519de5e">glfwGetWaylandDisplay</a> (void)</td></tr>
<tr class="memdesc:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_display*</code> used by GLFW. <a href="#gaaf8118a3c877f3a6bc8e7a649519de5e">More...</a><br /></td></tr>
<tr class="separator:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab10427a667b6cd91eec7709f7a906bd3"><td class="memItemLeft" align="right" valign="top">struct wl_output *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gab10427a667b6cd91eec7709f7a906bd3">glfwGetWaylandMonitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gab10427a667b6cd91eec7709f7a906bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_output*</code> of the specified monitor. <a href="#gab10427a667b6cd91eec7709f7a906bd3">More...</a><br /></td></tr>
<tr class="separator:gab10427a667b6cd91eec7709f7a906bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4738d7aca4191363519a9a641c3ab64c"><td class="memItemLeft" align="right" valign="top">struct wl_surface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga4738d7aca4191363519a9a641c3ab64c">glfwGetWaylandWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga4738d7aca4191363519a9a641c3ab64c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the main <code>struct wl_surface*</code> of the specified window. <a href="#ga4738d7aca4191363519a9a641c3ab64c">More...</a><br /></td></tr>
<tr class="separator:ga4738d7aca4191363519a9a641c3ab64c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40dd05325d9813fa67d61328c51d2930"><td class="memItemLeft" align="right" valign="top">MirConnection *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga40dd05325d9813fa67d61328c51d2930">glfwGetMirDisplay</a> (void)</td></tr>
<tr class="memdesc:ga40dd05325d9813fa67d61328c51d2930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>MirConnection*</code> used by GLFW. <a href="#ga40dd05325d9813fa67d61328c51d2930">More...</a><br /></td></tr>
<tr class="separator:ga40dd05325d9813fa67d61328c51d2930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0941c11dc8f01aeb7cbb563f5cd930b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gae0941c11dc8f01aeb7cbb563f5cd930b">glfwGetMirMonitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
<tr class="memdesc:gae0941c11dc8f01aeb7cbb563f5cd930b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Mir output ID of the specified monitor. <a href="#gae0941c11dc8f01aeb7cbb563f5cd930b">More...</a><br /></td></tr>
<tr class="separator:gae0941c11dc8f01aeb7cbb563f5cd930b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga964d52bb7932216c379762eef1ea9b05"><td class="memItemLeft" align="right" valign="top">MirSurface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga964d52bb7932216c379762eef1ea9b05">glfwGetMirWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga964d52bb7932216c379762eef1ea9b05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>MirSurface*</code> of the specified window. <a href="#ga964d52bb7932216c379762eef1ea9b05">More...</a><br /></td></tr>
<tr class="separator:ga964d52bb7932216c379762eef1ea9b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cd8d973f47aacb5532d368147cc3138"><td class="memItemLeft" align="right" valign="top">EGLDisplay&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">glfwGetEGLDisplay</a> (void)</td></tr>
<tr class="memdesc:ga1cd8d973f47aacb5532d368147cc3138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>EGLDisplay</code> used by GLFW. <a href="#ga1cd8d973f47aacb5532d368147cc3138">More...</a><br /></td></tr>
<tr class="separator:ga1cd8d973f47aacb5532d368147cc3138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga671c5072becd085f4ab5771a9c8efcf1"><td class="memItemLeft" align="right" valign="top">EGLContext&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga671c5072becd085f4ab5771a9c8efcf1">glfwGetEGLContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga671c5072becd085f4ab5771a9c8efcf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>EGLContext</code> of the specified window. <a href="#ga671c5072becd085f4ab5771a9c8efcf1">More...</a><br /></td></tr>
<tr class="separator:ga671c5072becd085f4ab5771a9c8efcf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2199b36117a6a695fec8441d8052eee6"><td class="memItemLeft" align="right" valign="top">EGLSurface&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga2199b36117a6a695fec8441d8052eee6">glfwGetEGLSurface</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga2199b36117a6a695fec8441d8052eee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>EGLSurface</code> of the specified window. <a href="#ga2199b36117a6a695fec8441d8052eee6">More...</a><br /></td></tr>
<tr class="separator:ga2199b36117a6a695fec8441d8052eee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p><b>By using the native access functions you assert that you know what you're doing and how to fix problems caused by using them. If you don't, you shouldn't be using them.</b></p>
<p>Before the inclusion of <a class="el" href="glfw3native_8h.html">glfw3native.h</a>, you may define exactly one window system API macro and zero or more context creation API macros.</p>
<p>The chosen backends must match those the library was compiled for. Failure to do this will cause a link-time error.</p>
<p>The available window API macros are:</p><ul>
<li><code>GLFW_EXPOSE_NATIVE_WIN32</code></li>
<li><code>GLFW_EXPOSE_NATIVE_COCOA</code></li>
<li><code>GLFW_EXPOSE_NATIVE_X11</code></li>
<li><code>GLFW_EXPOSE_NATIVE_WAYLAND</code></li>
<li><code>GLFW_EXPOSE_NATIVE_MIR</code></li>
</ul>
<p>The available context API macros are:</p><ul>
<li><code>GLFW_EXPOSE_NATIVE_WGL</code></li>
<li><code>GLFW_EXPOSE_NATIVE_NSGL</code></li>
<li><code>GLFW_EXPOSE_NATIVE_GLX</code></li>
<li><code>GLFW_EXPOSE_NATIVE_EGL</code></li>
</ul>
<p>These macros select which of the native access functions that are declared and which platform-specific headers to include. It is then up your (by definition platform-specific) code to handle which of these should be defined. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaf22f429aec4b1aab316142d66d9be3e6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">CGDirectDisplayID glfwGetCocoaMonitor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>CGDirectDisplayID</code> of the specified monitor, or <code>kCGNullDirectDisplay</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gac3ed9d495d0c2bb9652de5a50c648715"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">id glfwGetCocoaWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>NSWindow</code> of the specified window, or <code>nil</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga671c5072becd085f4ab5771a9c8efcf1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">EGLContext glfwGetEGLContext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>EGLContext</code> of the specified window, or <code>EGL_NO_CONTEXT</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1cd8d973f47aacb5532d368147cc3138"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">EGLDisplay glfwGetEGLDisplay </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>EGLDisplay</code> used by GLFW, or <code>EGL_NO_DISPLAY</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga2199b36117a6a695fec8441d8052eee6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">EGLSurface glfwGetEGLSurface </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>EGLSurface</code> of the specified window, or <code>EGL_NO_SURFACE</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga62d884114b0abfcdc2930e89f20867e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLXContext glfwGetGLXContext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>GLXContext</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1ed27b8766e859a21381e8f8ce18d049"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLXWindow glfwGetGLXWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>GLXWindow</code> of the specified window, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga40dd05325d9813fa67d61328c51d2930"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MirConnection* glfwGetMirDisplay </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>MirConnection*</code> used by GLFW, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gae0941c11dc8f01aeb7cbb563f5cd930b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwGetMirMonitor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The Mir output ID of the specified monitor, or zero if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga964d52bb7932216c379762eef1ea9b05"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MirSurface* glfwGetMirWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>MirSurface*</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga559e002e3cd63c979881770cd4dc63bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">id glfwGetNSGLContext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>NSOpenGLContext</code> of the specified window, or <code>nil</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gaaf8118a3c877f3a6bc8e7a649519de5e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct wl_display* glfwGetWaylandDisplay </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>struct wl_display*</code> used by GLFW, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gab10427a667b6cd91eec7709f7a906bd3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct wl_output* glfwGetWaylandMonitor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>struct wl_output*</code> of the specified monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4738d7aca4191363519a9a641c3ab64c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct wl_surface* glfwGetWaylandWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The main <code>struct wl_surface*</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gadc4010d91d9cc1134d040eeb1202a143"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">HGLRC glfwGetWGLContext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>HGLRC</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gac84f63a3f9db145b9435e5e0dbc4183d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* glfwGetWin32Adapter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The UTF-8 encoded adapter device name (for example <code>\\.\DISPLAY1</code>) of the specified monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gac408b09a330749402d5d1fa1f5894dd9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* glfwGetWin32Monitor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The UTF-8 encoded display device name (for example <code>\\.\DISPLAY1\Monitor0</code>) of the specified monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gafe5079aa79038b0079fc09d5f0a8e667"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">HWND glfwGetWin32Window </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>HWND</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga088fbfa80f50569402b41be71ad66e40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">RRCrtc glfwGetX11Adapter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>RRCrtc</code> of the specified monitor, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="ga8519b66594ea3ef6eeafaa2e3ee37406"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Display* glfwGetX11Display </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>Display</code> used by GLFW, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gab2f8cc043905e9fa9b12bfdbbcfe874c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">RROutput glfwGetX11Monitor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>RROutput</code> of the specified monitor, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="ga90ca676322740842db446999a1b1f21d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Window glfwGetX11Window </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>Window</code> of the specified window, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Standard cursor shapes</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">Standard cursor shapes<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga8ab0e717245b85506cb0eaefdea39d0a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html#ga8ab0e717245b85506cb0eaefdea39d0a">GLFW_ARROW_CURSOR</a>&#160;&#160;&#160;0x00036001</td></tr>
<tr class="memdesc:ga8ab0e717245b85506cb0eaefdea39d0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The regular arrow cursor shape. <a href="#ga8ab0e717245b85506cb0eaefdea39d0a">More...</a><br /></td></tr>
<tr class="separator:ga8ab0e717245b85506cb0eaefdea39d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36185f4375eaada1b04e431244774c86"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html#ga36185f4375eaada1b04e431244774c86">GLFW_IBEAM_CURSOR</a>&#160;&#160;&#160;0x00036002</td></tr>
<tr class="memdesc:ga36185f4375eaada1b04e431244774c86"><td class="mdescLeft">&#160;</td><td class="mdescRight">The text input I-beam cursor shape. <a href="#ga36185f4375eaada1b04e431244774c86">More...</a><br /></td></tr>
<tr class="separator:ga36185f4375eaada1b04e431244774c86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8af88c0ea05ab9e8f9ac1530e8873c22"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html#ga8af88c0ea05ab9e8f9ac1530e8873c22">GLFW_CROSSHAIR_CURSOR</a>&#160;&#160;&#160;0x00036003</td></tr>
<tr class="memdesc:ga8af88c0ea05ab9e8f9ac1530e8873c22"><td class="mdescLeft">&#160;</td><td class="mdescRight">The crosshair shape. <a href="#ga8af88c0ea05ab9e8f9ac1530e8873c22">More...</a><br /></td></tr>
<tr class="separator:ga8af88c0ea05ab9e8f9ac1530e8873c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1db35e20849e0837c82e3dc1fd797263"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html#ga1db35e20849e0837c82e3dc1fd797263">GLFW_HAND_CURSOR</a>&#160;&#160;&#160;0x00036004</td></tr>
<tr class="memdesc:ga1db35e20849e0837c82e3dc1fd797263"><td class="mdescLeft">&#160;</td><td class="mdescRight">The hand shape. <a href="#ga1db35e20849e0837c82e3dc1fd797263">More...</a><br /></td></tr>
<tr class="separator:ga1db35e20849e0837c82e3dc1fd797263"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb3eb0109f11bb808fc34659177ca962"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html#gabb3eb0109f11bb808fc34659177ca962">GLFW_HRESIZE_CURSOR</a>&#160;&#160;&#160;0x00036005</td></tr>
<tr class="memdesc:gabb3eb0109f11bb808fc34659177ca962"><td class="mdescLeft">&#160;</td><td class="mdescRight">The horizontal resize arrow shape. <a href="#gabb3eb0109f11bb808fc34659177ca962">More...</a><br /></td></tr>
<tr class="separator:gabb3eb0109f11bb808fc34659177ca962"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf024f0e1ff8366fb2b5c260509a1fce5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html#gaf024f0e1ff8366fb2b5c260509a1fce5">GLFW_VRESIZE_CURSOR</a>&#160;&#160;&#160;0x00036006</td></tr>
<tr class="memdesc:gaf024f0e1ff8366fb2b5c260509a1fce5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vertical resize arrow shape. <a href="#gaf024f0e1ff8366fb2b5c260509a1fce5">More...</a><br /></td></tr>
<tr class="separator:gaf024f0e1ff8366fb2b5c260509a1fce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>See <a class="el" href="input_guide.html#cursor_standard">standard cursor creation</a> for how these are used. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga8ab0e717245b85506cb0eaefdea39d0a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_ARROW_CURSOR&#160;&#160;&#160;0x00036001</td>
</tr>
</table>
</div><div class="memdoc">
<p>The regular arrow cursor. </p>
</div>
</div>
<a class="anchor" id="ga8af88c0ea05ab9e8f9ac1530e8873c22"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_CROSSHAIR_CURSOR&#160;&#160;&#160;0x00036003</td>
</tr>
</table>
</div><div class="memdoc">
<p>The crosshair shape. </p>
</div>
</div>
<a class="anchor" id="ga1db35e20849e0837c82e3dc1fd797263"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_HAND_CURSOR&#160;&#160;&#160;0x00036004</td>
</tr>
</table>
</div><div class="memdoc">
<p>The hand shape. </p>
</div>
</div>
<a class="anchor" id="gabb3eb0109f11bb808fc34659177ca962"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_HRESIZE_CURSOR&#160;&#160;&#160;0x00036005</td>
</tr>
</table>
</div><div class="memdoc">
<p>The horizontal resize arrow shape. </p>
</div>
</div>
<a class="anchor" id="ga36185f4375eaada1b04e431244774c86"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_IBEAM_CURSOR&#160;&#160;&#160;0x00036002</td>
</tr>
</table>
</div><div class="memdoc">
<p>The text input I-beam cursor shape. </p>
</div>
</div>
<a class="anchor" id="gaf024f0e1ff8366fb2b5c260509a1fce5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GLFW_VRESIZE_CURSOR&#160;&#160;&#160;0x00036006</td>
</tr>
</table>
</div><div class="memdoc">
<p>The vertical resize arrow shape. </p>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Vulkan reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Vulkan reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga70c01918dc9d233a4fbe0681a43018af"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a>) (void)</td></tr>
<tr class="memdesc:ga70c01918dc9d233a4fbe0681a43018af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vulkan API function pointer type. <a href="#ga70c01918dc9d233a4fbe0681a43018af">More...</a><br /></td></tr>
<tr class="separator:ga70c01918dc9d233a4fbe0681a43018af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> (void)</td></tr>
<tr class="memdesc:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the Vulkan loader has been found. <a href="#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">More...</a><br /></td></tr>
<tr class="separator:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1abcbe61033958f22f63ef82008874b1"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> (uint32_t *count)</td></tr>
<tr class="memdesc:ga1abcbe61033958f22f63ef82008874b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Vulkan instance extensions required by GLFW. <a href="#ga1abcbe61033958f22f63ef82008874b1">More...</a><br /></td></tr>
<tr class="separator:ga1abcbe61033958f22f63ef82008874b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a> (VkInstance instance, const char *procname)</td></tr>
<tr class="memdesc:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of the specified Vulkan instance function. <a href="#gadf228fac94c5fd8f12423ec9af9ff1e9">More...</a><br /></td></tr>
<tr class="separator:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff3823355cdd7e2f3f9f4d9ea9518d92"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a> (VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)</td></tr>
<tr class="memdesc:gaff3823355cdd7e2f3f9f4d9ea9518d92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the specified queue family can present images. <a href="#gaff3823355cdd7e2f3f9f4d9ea9518d92">More...</a><br /></td></tr>
<tr class="separator:gaff3823355cdd7e2f3f9f4d9ea9518d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a24536bec3f80b08ead18e28e6ae965"><td class="memItemLeft" align="right" valign="top">VkResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga1a24536bec3f80b08ead18e28e6ae965">glfwCreateWindowSurface</a> (VkInstance instance, <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)</td></tr>
<tr class="memdesc:ga1a24536bec3f80b08ead18e28e6ae965"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a Vulkan surface for the specified window. <a href="#ga1a24536bec3f80b08ead18e28e6ae965">More...</a><br /></td></tr>
<tr class="separator:ga1a24536bec3f80b08ead18e28e6ae965"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is the reference documentation for Vulkan related functions and types. For more task-oriented information, see the <a class="el" href="vulkan_guide.html">Vulkan guide</a>. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga70c01918dc9d233a4fbe0681a43018af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWvkproc) (void)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Generic function pointer used for returning Vulkan API function pointers without forcing a cast from a regular pointer.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_proc">Querying Vulkan function pointers</a> </dd>
<dd>
<a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9" title="Returns the address of the specified Vulkan instance function. ">glfwGetInstanceProcAddress</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga1a24536bec3f80b08ead18e28e6ae965"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkResult glfwCreateWindowSurface </td>
<td>(</td>
<td class="paramtype">VkInstance&#160;</td>
<td class="paramname"><em>instance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const VkAllocationCallbacks *&#160;</td>
<td class="paramname"><em>allocator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VkSurfaceKHR *&#160;</td>
<td class="paramname"><em>surface</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function creates a Vulkan surface for the specified window.</p>
<p>If the Vulkan loader was not found at initialization, this function returns <code>VK_ERROR_INITIALIZATION_FAILED</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether the Vulkan loader was found.</p>
<p>If the required window surface creation instance extensions are not available or if the specified instance was not created with these extensions enabled, this function returns <code>VK_ERROR_EXTENSION_NOT_PRESENT</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> to check what instance extensions are required.</p>
<p>The window surface must be destroyed before the specified Vulkan instance. It is the responsibility of the caller to destroy the window surface. GLFW does not destroy it for you. Call <code>vkDestroySurfaceKHR</code> to destroy the surface.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The Vulkan instance to create the surface in. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to create the surface for. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">allocator</td><td>The allocator to use, or <code>NULL</code> to use the default allocator. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">surface</td><td>Where to store the handle of the surface. This is set to <code>VK_NULL_HANDLE</code> if an error occurred. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>VK_SUCCESS</code> if successful, or a Vulkan error code if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>If an error occurs before the creation call is made, GLFW returns the Vulkan error code most appropriate for the error. Appropriate use of <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> and <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> should eliminate almost all occurrences of these errors.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. For synchronization details of Vulkan objects, see the Vulkan specification.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_surface">Creating a Vulkan window surface</a> </dd>
<dd>
<a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1" title="Returns the Vulkan instance extensions required by GLFW. ">glfwGetRequiredInstanceExtensions</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gadf228fac94c5fd8f12423ec9af9ff1e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a> glfwGetInstanceProcAddress </td>
<td>(</td>
<td class="paramtype">VkInstance&#160;</td>
<td class="paramname"><em>instance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>procname</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the address of the specified Vulkan core or extension function for the specified instance. If instance is set to <code>NULL</code> it can return any function exported from the Vulkan loader, including at least the following functions:</p>
<ul>
<li><code>vkEnumerateInstanceExtensionProperties</code></li>
<li><code>vkEnumerateInstanceLayerProperties</code></li>
<li><code>vkCreateInstance</code></li>
<li><code>vkGetInstanceProcAddr</code></li>
</ul>
<p>If Vulkan is not available on the machine, this function returns <code>NULL</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is available.</p>
<p>This function is equivalent to calling <code>vkGetInstanceProcAddr</code> with a platform-specific query of the Vulkan loader as a fallback.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The Vulkan instance to query, or <code>NULL</code> to retrieve functions related to instance creation. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">procname</td><td>The ASCII encoded name of the function. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The address of the function, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned function pointer is valid until the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_proc">Querying Vulkan function pointers</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gaff3823355cdd7e2f3f9f4d9ea9518d92"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwGetPhysicalDevicePresentationSupport </td>
<td>(</td>
<td class="paramtype">VkInstance&#160;</td>
<td class="paramname"><em>instance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VkPhysicalDevice&#160;</td>
<td class="paramname"><em>device</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>queuefamily</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns whether the specified queue family of the specified physical device supports presentation to the platform GLFW was built for.</p>
<p>If Vulkan or the required window surface creation instance extensions are not available on the machine, or if the specified instance was not created with the required extensions, this function returns <code>GLFW_FALSE</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is available and <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> to check what instance extensions are required.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance that the physical device belongs to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>The physical device that the queue family belongs to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">queuefamily</td><td>The index of the queue family to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if the queue family supports presentation, or <code>GLFW_FALSE</code> otherwise.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. For synchronization details of Vulkan objects, see the Vulkan specification.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_present">Querying for Vulkan presentation support</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1abcbe61033958f22f63ef82008874b1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char** glfwGetRequiredInstanceExtensions </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>count</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns an array of names of Vulkan instance extensions required by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the list will always contains <code>VK_KHR_surface</code>, so if you don't require any additional extensions you can pass this list directly to the <code>VkInstanceCreateInfo</code> struct.</p>
<p>If Vulkan is not available on the machine, this function returns <code>NULL</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is available.</p>
<p>If Vulkan is available but no set of extensions allowing window surface creation was found, this function returns <code>NULL</code>. You may still use Vulkan for off-screen rendering and compute work.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Where to store the number of extensions in the returned array. This is set to zero if an error occurred. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An array of ASCII encoded extension names, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Additional extensions may be required by future versions of GLFW. You should check if any extensions you wish to enable are already in the returned array, as it is an error to specify an extension more than once in the <code>VkInstanceCreateInfo</code> struct.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned array is allocated and freed by GLFW. You should not free it yourself. It is guaranteed to be valid only until the library is terminated.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_ext">Querying required Vulkan extensions</a> </dd>
<dd>
<a class="el" href="group__vulkan.html#ga1a24536bec3f80b08ead18e28e6ae965" title="Creates a Vulkan surface for the specified window. ">glfwCreateWindowSurface</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga2e7f30931e02464b5bc8d0d4b6f9fe2b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwVulkanSupported </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns whether the Vulkan loader has been found. This check is performed by <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</p>
<p>The availability of a Vulkan loader does not by itself guarantee that window surface creation or even device creation is possible. Call <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> to check whether the extensions necessary for Vulkan surface creation are available and <a class="el" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a> to check whether a queue family of a physical device supports image presentation.</p>
<dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if Vulkan is available, or <code>GLFW_FALSE</code> otherwise.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_support">Querying for Vulkan support</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GLFW: Window reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div class="glfwheader">
<a href="http://www.glfw.org/" id="glfwhome">GLFW</a>
<ul class="glfwnavbar">
<li><a href="http://www.glfw.org/documentation.html">Documentation</a></li>
<li><a href="http://www.glfw.org/download.html">Download</a></li>
<li><a href="http://www.glfw.org/media.html">Media</a></li>
<li><a href="http://www.glfw.org/community.html">Community</a></li>
</ul>
</div>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Window reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga3c96d80d363e67d13a41b5d1821f3242"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></td></tr>
<tr class="memdesc:ga3c96d80d363e67d13a41b5d1821f3242"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque window object. <a href="#ga3c96d80d363e67d13a41b5d1821f3242">More...</a><br /></td></tr>
<tr class="separator:ga3c96d80d363e67d13a41b5d1821f3242"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd8db81fdb0e850549dc6bace5ed697a"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td></tr>
<tr class="memdesc:gafd8db81fdb0e850549dc6bace5ed697a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for window position callbacks. <a href="#gafd8db81fdb0e850549dc6bace5ed697a">More...</a><br /></td></tr>
<tr class="separator:gafd8db81fdb0e850549dc6bace5ed697a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae49ee6ebc03fa2da024b89943a331355"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td></tr>
<tr class="memdesc:gae49ee6ebc03fa2da024b89943a331355"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for window resize callbacks. <a href="#gae49ee6ebc03fa2da024b89943a331355">More...</a><br /></td></tr>
<tr class="separator:gae49ee6ebc03fa2da024b89943a331355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93e7c2555bd837f4ed8b20f76cada72e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *)</td></tr>
<tr class="memdesc:ga93e7c2555bd837f4ed8b20f76cada72e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for window close callbacks. <a href="#ga93e7c2555bd837f4ed8b20f76cada72e">More...</a><br /></td></tr>
<tr class="separator:ga93e7c2555bd837f4ed8b20f76cada72e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a56f9e0227e2cd9470d80d919032e08"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *)</td></tr>
<tr class="memdesc:ga7a56f9e0227e2cd9470d80d919032e08"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for window content refresh callbacks. <a href="#ga7a56f9e0227e2cd9470d80d919032e08">More...</a><br /></td></tr>
<tr class="separator:ga7a56f9e0227e2cd9470d80d919032e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58be2061828dd35080bb438405d3a7e2"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td></tr>
<tr class="memdesc:ga58be2061828dd35080bb438405d3a7e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for window focus/defocus callbacks. <a href="#ga58be2061828dd35080bb438405d3a7e2">More...</a><br /></td></tr>
<tr class="separator:ga58be2061828dd35080bb438405d3a7e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2d4e4c3d28b1242e742e8268b9528af"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td></tr>
<tr class="memdesc:gad2d4e4c3d28b1242e742e8268b9528af"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for window iconify/restore callbacks. <a href="#gad2d4e4c3d28b1242e742e8268b9528af">More...</a><br /></td></tr>
<tr class="separator:gad2d4e4c3d28b1242e742e8268b9528af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e218ef9ff826129c55a7d5f6971a285"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td></tr>
<tr class="memdesc:ga3e218ef9ff826129c55a7d5f6971a285"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function signature for framebuffer resize callbacks. <a href="#ga3e218ef9ff826129c55a7d5f6971a285">More...</a><br /></td></tr>
<tr class="separator:ga3e218ef9ff826129c55a7d5f6971a285"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaa77c4898dfb83344a6b4f76aa16b9a4a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a> (void)</td></tr>
<tr class="memdesc:gaa77c4898dfb83344a6b4f76aa16b9a4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets all window hints to their default values. <a href="#gaa77c4898dfb83344a6b4f76aa16b9a4a">More...</a><br /></td></tr>
<tr class="separator:gaa77c4898dfb83344a6b4f76aa16b9a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d9c8c62384b1e2821c4dc48952d2033"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a> (int hint, int value)</td></tr>
<tr class="memdesc:ga7d9c8c62384b1e2821c4dc48952d2033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the specified window hint to the desired value. <a href="#ga7d9c8c62384b1e2821c4dc48952d2033">More...</a><br /></td></tr>
<tr class="separator:ga7d9c8c62384b1e2821c4dc48952d2033"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c336fddf2cbb5b92f65f10fb6043344"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> (int width, int height, const char *title, <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *share)</td></tr>
<tr class="memdesc:ga5c336fddf2cbb5b92f65f10fb6043344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a window and its associated context. <a href="#ga5c336fddf2cbb5b92f65f10fb6043344">More...</a><br /></td></tr>
<tr class="separator:ga5c336fddf2cbb5b92f65f10fb6043344"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacdf43e51376051d2c091662e9fe3d7b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:gacdf43e51376051d2c091662e9fe3d7b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the specified window and its context. <a href="#gacdf43e51376051d2c091662e9fe3d7b2">More...</a><br /></td></tr>
<tr class="separator:gacdf43e51376051d2c091662e9fe3d7b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24e02fbfefbb81fc45320989f8140ab5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga24e02fbfefbb81fc45320989f8140ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the close flag of the specified window. <a href="#ga24e02fbfefbb81fc45320989f8140ab5">More...</a><br /></td></tr>
<tr class="separator:ga24e02fbfefbb81fc45320989f8140ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49c449dde2a6f87d996f4daaa09d6708"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int value)</td></tr>
<tr class="memdesc:ga49c449dde2a6f87d996f4daaa09d6708"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the close flag of the specified window. <a href="#ga49c449dde2a6f87d996f4daaa09d6708">More...</a><br /></td></tr>
<tr class="separator:ga49c449dde2a6f87d996f4daaa09d6708"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d877f09e968cef7a360b513306f17ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, const char *title)</td></tr>
<tr class="memdesc:ga5d877f09e968cef7a360b513306f17ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the title of the specified window. <a href="#ga5d877f09e968cef7a360b513306f17ff">More...</a><br /></td></tr>
<tr class="separator:ga5d877f09e968cef7a360b513306f17ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd7ccd39fe7a7d1f0904666ae5932dc5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5">glfwSetWindowIcon</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int count, const <a class="el" href="structGLFWimage.html">GLFWimage</a> *images)</td></tr>
<tr class="memdesc:gadd7ccd39fe7a7d1f0904666ae5932dc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the icon for the specified window. <a href="#gadd7ccd39fe7a7d1f0904666ae5932dc5">More...</a><br /></td></tr>
<tr class="separator:gadd7ccd39fe7a7d1f0904666ae5932dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73cb526c000876fd8ddf571570fdb634"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga73cb526c000876fd8ddf571570fdb634">glfwGetWindowPos</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int *xpos, int *ypos)</td></tr>
<tr class="memdesc:ga73cb526c000876fd8ddf571570fdb634"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the position of the client area of the specified window. <a href="#ga73cb526c000876fd8ddf571570fdb634">More...</a><br /></td></tr>
<tr class="separator:ga73cb526c000876fd8ddf571570fdb634"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1abb6d690e8c88e0c8cd1751356dbca8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8">glfwSetWindowPos</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int xpos, int ypos)</td></tr>
<tr class="memdesc:ga1abb6d690e8c88e0c8cd1751356dbca8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the position of the client area of the specified window. <a href="#ga1abb6d690e8c88e0c8cd1751356dbca8">More...</a><br /></td></tr>
<tr class="separator:ga1abb6d690e8c88e0c8cd1751356dbca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeea7cbc03373a41fb51cfbf9f2a5d4c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int *width, int *height)</td></tr>
<tr class="memdesc:gaeea7cbc03373a41fb51cfbf9f2a5d4c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the size of the client area of the specified window. <a href="#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">More...</a><br /></td></tr>
<tr class="separator:gaeea7cbc03373a41fb51cfbf9f2a5d4c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac314fa6cec7d2d307be9963e2709cc90"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90">glfwSetWindowSizeLimits</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int minwidth, int minheight, int maxwidth, int maxheight)</td></tr>
<tr class="memdesc:gac314fa6cec7d2d307be9963e2709cc90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size limits of the specified window. <a href="#gac314fa6cec7d2d307be9963e2709cc90">More...</a><br /></td></tr>
<tr class="separator:gac314fa6cec7d2d307be9963e2709cc90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72ac8cb1ee2e312a878b55153d81b937"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937">glfwSetWindowAspectRatio</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int numer, int denom)</td></tr>
<tr class="memdesc:ga72ac8cb1ee2e312a878b55153d81b937"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the aspect ratio of the specified window. <a href="#ga72ac8cb1ee2e312a878b55153d81b937">More...</a><br /></td></tr>
<tr class="separator:ga72ac8cb1ee2e312a878b55153d81b937"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga371911f12c74c504dd8d47d832d095cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int width, int height)</td></tr>
<tr class="memdesc:ga371911f12c74c504dd8d47d832d095cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size of the client area of the specified window. <a href="#ga371911f12c74c504dd8d47d832d095cb">More...</a><br /></td></tr>
<tr class="separator:ga371911f12c74c504dd8d47d832d095cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e2637a4161afb283f5300c7f94785c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int *width, int *height)</td></tr>
<tr class="memdesc:ga0e2637a4161afb283f5300c7f94785c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the size of the framebuffer of the specified window. <a href="#ga0e2637a4161afb283f5300c7f94785c9">More...</a><br /></td></tr>
<tr class="separator:ga0e2637a4161afb283f5300c7f94785c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a9fd382058c53101b21cf211898f1f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga1a9fd382058c53101b21cf211898f1f1">glfwGetWindowFrameSize</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int *left, int *top, int *right, int *bottom)</td></tr>
<tr class="memdesc:ga1a9fd382058c53101b21cf211898f1f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the size of the frame of the window. <a href="#ga1a9fd382058c53101b21cf211898f1f1">More...</a><br /></td></tr>
<tr class="separator:ga1a9fd382058c53101b21cf211898f1f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bb559c0ebaad63c5c05ad2a066779c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4">glfwIconifyWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga1bb559c0ebaad63c5c05ad2a066779c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iconifies the specified window. <a href="#ga1bb559c0ebaad63c5c05ad2a066779c4">More...</a><br /></td></tr>
<tr class="separator:ga1bb559c0ebaad63c5c05ad2a066779c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52527a5904b47d802b6b4bb519cdebc7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7">glfwRestoreWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga52527a5904b47d802b6b4bb519cdebc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores the specified window. <a href="#ga52527a5904b47d802b6b4bb519cdebc7">More...</a><br /></td></tr>
<tr class="separator:ga52527a5904b47d802b6b4bb519cdebc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f541387449d911274324ae7f17ec56b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3f541387449d911274324ae7f17ec56b">glfwMaximizeWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga3f541387449d911274324ae7f17ec56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximizes the specified window. <a href="#ga3f541387449d911274324ae7f17ec56b">More...</a><br /></td></tr>
<tr class="separator:ga3f541387449d911274324ae7f17ec56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61be47917b72536a148300f46494fc66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga61be47917b72536a148300f46494fc66">glfwShowWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga61be47917b72536a148300f46494fc66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the specified window visible. <a href="#ga61be47917b72536a148300f46494fc66">More...</a><br /></td></tr>
<tr class="separator:ga61be47917b72536a148300f46494fc66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49401f82a1ba5f15db5590728314d47c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga49401f82a1ba5f15db5590728314d47c">glfwHideWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga49401f82a1ba5f15db5590728314d47c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hides the specified window. <a href="#ga49401f82a1ba5f15db5590728314d47c">More...</a><br /></td></tr>
<tr class="separator:ga49401f82a1ba5f15db5590728314d47c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga873780357abd3f3a081d71a40aae45a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga873780357abd3f3a081d71a40aae45a1">glfwFocusWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga873780357abd3f3a081d71a40aae45a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Brings the specified window to front and sets input focus. <a href="#ga873780357abd3f3a081d71a40aae45a1">More...</a><br /></td></tr>
<tr class="separator:ga873780357abd3f3a081d71a40aae45a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeac25e64789974ccbe0811766bd91a16"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaeac25e64789974ccbe0811766bd91a16">glfwGetWindowMonitor</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:gaeac25e64789974ccbe0811766bd91a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the monitor that the window uses for full screen mode. <a href="#gaeac25e64789974ccbe0811766bd91a16">More...</a><br /></td></tr>
<tr class="separator:gaeac25e64789974ccbe0811766bd91a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81c76c418af80a1cce7055bccb0ae0a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int xpos, int ypos, int width, int height, int refreshRate)</td></tr>
<tr class="memdesc:ga81c76c418af80a1cce7055bccb0ae0a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the mode, monitor, video mode and placement of a window. <a href="#ga81c76c418af80a1cce7055bccb0ae0a7">More...</a><br /></td></tr>
<tr class="separator:ga81c76c418af80a1cce7055bccb0ae0a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacccb29947ea4b16860ebef42c2cb9337"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int attrib)</td></tr>
<tr class="memdesc:gacccb29947ea4b16860ebef42c2cb9337"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an attribute of the specified window. <a href="#gacccb29947ea4b16860ebef42c2cb9337">More...</a><br /></td></tr>
<tr class="separator:gacccb29947ea4b16860ebef42c2cb9337"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d2fc6026e690ab31a13f78bc9fd3651"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfwSetWindowUserPointer</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, void *pointer)</td></tr>
<tr class="memdesc:ga3d2fc6026e690ab31a13f78bc9fd3651"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the user pointer of the specified window. <a href="#ga3d2fc6026e690ab31a13f78bc9fd3651">More...</a><br /></td></tr>
<tr class="separator:ga3d2fc6026e690ab31a13f78bc9fd3651"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17807ce0f45ac3f8bb50d6dcc59a4e06"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga17807ce0f45ac3f8bb50d6dcc59a4e06">glfwGetWindowUserPointer</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga17807ce0f45ac3f8bb50d6dcc59a4e06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified window. <a href="#ga17807ce0f45ac3f8bb50d6dcc59a4e06">More...</a><br /></td></tr>
<tr class="separator:ga17807ce0f45ac3f8bb50d6dcc59a4e06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2837d4d240659feb4268fcb6530a6ba1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga2837d4d240659feb4268fcb6530a6ba1">glfwSetWindowPosCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a> cbfun)</td></tr>
<tr class="memdesc:ga2837d4d240659feb4268fcb6530a6ba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the position callback for the specified window. <a href="#ga2837d4d240659feb4268fcb6530a6ba1">More...</a><br /></td></tr>
<tr class="separator:ga2837d4d240659feb4268fcb6530a6ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa40cd24840daa8c62f36cafc847c72b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaa40cd24840daa8c62f36cafc847c72b6">glfwSetWindowSizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a> cbfun)</td></tr>
<tr class="memdesc:gaa40cd24840daa8c62f36cafc847c72b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size callback for the specified window. <a href="#gaa40cd24840daa8c62f36cafc847c72b6">More...</a><br /></td></tr>
<tr class="separator:gaa40cd24840daa8c62f36cafc847c72b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaade9264e79fae52bdb78e2df11ee8d6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaade9264e79fae52bdb78e2df11ee8d6a">glfwSetWindowCloseCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a> cbfun)</td></tr>
<tr class="memdesc:gaade9264e79fae52bdb78e2df11ee8d6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the close callback for the specified window. <a href="#gaade9264e79fae52bdb78e2df11ee8d6a">More...</a><br /></td></tr>
<tr class="separator:gaade9264e79fae52bdb78e2df11ee8d6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4569b76e8ac87c55b53199e6becd97eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga4569b76e8ac87c55b53199e6becd97eb">glfwSetWindowRefreshCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a> cbfun)</td></tr>
<tr class="memdesc:ga4569b76e8ac87c55b53199e6becd97eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the refresh callback for the specified window. <a href="#ga4569b76e8ac87c55b53199e6becd97eb">More...</a><br /></td></tr>
<tr class="separator:ga4569b76e8ac87c55b53199e6becd97eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25d1c584edb375d7711c5c3548ba711f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga25d1c584edb375d7711c5c3548ba711f">glfwSetWindowFocusCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a> cbfun)</td></tr>
<tr class="memdesc:ga25d1c584edb375d7711c5c3548ba711f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the focus callback for the specified window. <a href="#ga25d1c584edb375d7711c5c3548ba711f">More...</a><br /></td></tr>
<tr class="separator:ga25d1c584edb375d7711c5c3548ba711f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1ea7263081c0e073b8d5b91d6ffd367"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gab1ea7263081c0e073b8d5b91d6ffd367">glfwSetWindowIconifyCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a> cbfun)</td></tr>
<tr class="memdesc:gab1ea7263081c0e073b8d5b91d6ffd367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the iconify callback for the specified window. <a href="#gab1ea7263081c0e073b8d5b91d6ffd367">More...</a><br /></td></tr>
<tr class="separator:gab1ea7263081c0e073b8d5b91d6ffd367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3203461a5303bf289f2e05f854b2f7cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3203461a5303bf289f2e05f854b2f7cf">glfwSetFramebufferSizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a> cbfun)</td></tr>
<tr class="memdesc:ga3203461a5303bf289f2e05f854b2f7cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the framebuffer resize callback for the specified window. <a href="#ga3203461a5303bf289f2e05f854b2f7cf">More...</a><br /></td></tr>
<tr class="separator:ga3203461a5303bf289f2e05f854b2f7cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37bd57223967b4211d60ca1a0bf3c832"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a> (void)</td></tr>
<tr class="memdesc:ga37bd57223967b4211d60ca1a0bf3c832"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes all pending events. <a href="#ga37bd57223967b4211d60ca1a0bf3c832">More...</a><br /></td></tr>
<tr class="separator:ga37bd57223967b4211d60ca1a0bf3c832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga554e37d781f0a997656c26b2c56c835e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a> (void)</td></tr>
<tr class="memdesc:ga554e37d781f0a997656c26b2c56c835e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits until events are queued and processes them. <a href="#ga554e37d781f0a997656c26b2c56c835e">More...</a><br /></td></tr>
<tr class="separator:ga554e37d781f0a997656c26b2c56c835e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga605a178db92f1a7f1a925563ef3ea2cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a> (double timeout)</td></tr>
<tr class="memdesc:ga605a178db92f1a7f1a925563ef3ea2cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits with timeout until events are queued and processes them. <a href="#ga605a178db92f1a7f1a925563ef3ea2cf">More...</a><br /></td></tr>
<tr class="separator:ga605a178db92f1a7f1a925563ef3ea2cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab5997a25187e9fd5c6f2ecbbc8dfd7e9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a> (void)</td></tr>
<tr class="memdesc:gab5997a25187e9fd5c6f2ecbbc8dfd7e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Posts an empty event to the event queue. <a href="#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">More...</a><br /></td></tr>
<tr class="separator:gab5997a25187e9fd5c6f2ecbbc8dfd7e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15a5a1ee5b3c2ca6b15ca209a12efd14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
<tr class="memdesc:ga15a5a1ee5b3c2ca6b15ca209a12efd14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps the front and back buffers of the specified window. <a href="#ga15a5a1ee5b3c2ca6b15ca209a12efd14">More...</a><br /></td></tr>
<tr class="separator:ga15a5a1ee5b3c2ca6b15ca209a12efd14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is the reference documentation for window related functions and types, including creation, deletion and event polling. For more task-oriented information, see the <a class="el" href="window_guide.html">Window guide</a>. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga3e218ef9ff826129c55a7d5f6971a285"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWframebuffersizefun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for framebuffer resize callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose framebuffer was resized. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The new width, in pixels, of the framebuffer. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The new height, in pixels, of the framebuffer.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_fbsize">Framebuffer size</a> </dd>
<dd>
<a class="el" href="group__window.html#ga3203461a5303bf289f2e05f854b2f7cf" title="Sets the framebuffer resize callback for the specified window. ">glfwSetFramebufferSizeCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3c96d80d363e67d13a41b5d1821f3242"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Opaque window object.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_object">Window objects</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga93e7c2555bd837f4ed8b20f76cada72e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWwindowclosefun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for window close callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that the user attempted to close.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_close">Window closing and close flag</a> </dd>
<dd>
<a class="el" href="group__window.html#gaade9264e79fae52bdb78e2df11ee8d6a" title="Sets the close callback for the specified window. ">glfwSetWindowCloseCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.5. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga58be2061828dd35080bb438405d3a7e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWwindowfocusfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for window focus callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that gained or lost input focus. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">focused</td><td><code>GLFW_TRUE</code> if the window was given input focus, or <code>GLFW_FALSE</code> if it lost it.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_focus">Window input focus</a> </dd>
<dd>
<a class="el" href="group__window.html#ga25d1c584edb375d7711c5c3548ba711f" title="Sets the focus callback for the specified window. ">glfwSetWindowFocusCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gad2d4e4c3d28b1242e742e8268b9528af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWwindowiconifyfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for window iconify/restore callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that was iconified or restored. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">iconified</td><td><code>GLFW_TRUE</code> if the window was iconified, or <code>GLFW_FALSE</code> if it was restored.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_iconify">Window iconification</a> </dd>
<dd>
<a class="el" href="group__window.html#gab1ea7263081c0e073b8d5b91d6ffd367" title="Sets the iconify callback for the specified window. ">glfwSetWindowIconifyCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gafd8db81fdb0e850549dc6bace5ed697a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWwindowposfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for window position callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that was moved. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>The new x-coordinate, in screen coordinates, of the upper-left corner of the client area of the window. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>The new y-coordinate, in screen coordinates, of the upper-left corner of the client area of the window.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_pos">Window position</a> </dd>
<dd>
<a class="el" href="group__window.html#ga2837d4d240659feb4268fcb6530a6ba1" title="Sets the position callback for the specified window. ">glfwSetWindowPosCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga7a56f9e0227e2cd9470d80d919032e08"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWwindowrefreshfun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for window refresh callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose content needs to be refreshed.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_refresh">Window damage and refresh</a> </dd>
<dd>
<a class="el" href="group__window.html#ga4569b76e8ac87c55b53199e6becd97eb" title="Sets the refresh callback for the specified window. ">glfwSetWindowRefreshCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.5. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="gae49ee6ebc03fa2da024b89943a331355"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* GLFWwindowsizefun) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is the function signature for window size callback functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window that was resized. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The new width, in screen coordinates, of the window. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The new height, in screen coordinates, of the window.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_size">Window size</a> </dd>
<dd>
<a class="el" href="group__window.html#gaa40cd24840daa8c62f36cafc847c72b6" title="Sets the size callback for the specified window. ">glfwSetWindowSizeCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga5c336fddf2cbb5b92f65f10fb6043344"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* glfwCreateWindow </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>height</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>title</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>share</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function creates a window and its associated OpenGL or OpenGL ES context. Most of the options controlling how the window and its context should be created are specified with <a class="el" href="window_guide.html#window_hints">window hints</a>.</p>
<p>Successful creation does not change which context is current. Before you can use the newly created context, you need to <a class="el" href="context_guide.html#context_current">make it current</a>. For information about the <code>share</code> parameter, see <a class="el" href="context_guide.html#context_sharing">Context object sharing</a>.</p>
<p>The created window, framebuffer and context may differ from what you requested, as not all parameters and hints are <a class="el" href="window_guide.html#window_hints_hard">hard constraints</a>. This includes the size of the window, especially for full screen windows. To query the actual attributes of the created window, framebuffer and context, see <a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>, <a class="el" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a> and <a class="el" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a>.</p>
<p>To create a full screen window, you need to specify the monitor the window will cover. If no monitor is specified, the window will be windowed mode. Unless you have a way for the user to choose a specific monitor, it is recommended that you pick the primary monitor. For more information on how to query connected monitors, see <a class="el" href="monitor_guide.html#monitor_monitors">Retrieving monitors</a>.</p>
<p>For full screen windows, the specified size becomes the resolution of the window's <em>desired video mode</em>. As long as a full screen window is not iconified, the supported video mode most closely matching the desired video mode is set for the specified monitor. For more information about full screen windows, including the creation of so called <em>windowed full screen</em> or <em>borderless full screen</em> windows, see <a class="el" href="window_guide.html#window_windowed_full_screen">"Windowed full screen" windows</a>.</p>
<p>Once you have created the window, you can switch it between windowed and full screen mode with <a class="el" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a>. If the window has an OpenGL or OpenGL ES context, it will be unaffected.</p>
<p>By default, newly created windows use the placement recommended by the window system. To create the window at a specific position, make it initially invisible using the <a class="el" href="window_guide.html#window_hints_wnd">GLFW_VISIBLE</a> window hint, set its <a class="el" href="window_guide.html#window_pos">position</a> and then <a class="el" href="window_guide.html#window_hide">show</a> it.</p>
<p>As long as at least one full screen window is not iconified, the screensaver is prohibited from starting.</p>
<p>Window systems put limits on window sizes. Very large or very small window dimensions may be overridden by the window system on creation. Check the actual <a class="el" href="window_guide.html#window_size">size</a> after creation.</p>
<p>The <a class="el" href="window_guide.html#buffer_swap">swap interval</a> is not set during window creation and the initial value may vary depending on driver settings and defaults.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The desired width, in screen coordinates, of the window. This must be greater than zero. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The desired height, in screen coordinates, of the window. This must be greater than zero. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">title</td><td>The initial, UTF-8 encoded window title. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to use for full screen mode, or <code>NULL</code> for windowed mode. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">share</td><td>The window whose context to share resources with, or <code>NULL</code> to not share resources. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The handle of the created window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a>, <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a>, <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a>, <a class="el" href="group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462">GLFW_VERSION_UNAVAILABLE</a>, <a class="el" href="group__errors.html#ga196e125ef261d94184e2b55c05762f14">GLFW_FORMAT_UNAVAILABLE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><b>Windows:</b> Window creation will fail if the Microsoft GDI software OpenGL implementation is the only one available.</dd>
<dd>
<b>Windows:</b> If the executable has an icon resource named <code>GLFW_ICON,</code> it will be set as the initial icon for the window. If no such icon is present, the <code>IDI_WINLOGO</code> icon will be used instead. To set a different icon, see <a class="el" href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5">glfwSetWindowIcon</a>.</dd>
<dd>
<b>Windows:</b> The context to share resources with must not be current on any other thread.</dd>
<dd>
<b>OS X:</b> The GLFW window has no icon, as it is not a document window, but the dock icon will be the same as the application bundle's icon. For more information on bundles, see the <a href="https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/">Bundle Programming Guide</a> in the Mac Developer Library.</dd>
<dd>
<b>OS X:</b> The first time a window is created the menu bar is populated with common commands like Hide, Quit and About. The About entry opens a minimal about dialog with information from the application's bundle. The menu bar can be disabled with a <a class="el" href="compile_guide.html#compile_options_osx">compile-time option</a>.</dd>
<dd>
<b>OS X:</b> On OS X 10.10 and later the window frame will not be rendered at full resolution on Retina displays unless the <code>NSHighResolutionCapable</code> key is enabled in the application bundle's <code>Info.plist</code>. For more information, see <a href="https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html">High Resolution Guidelines for OS X</a> in the Mac Developer Library. The GLFW test and example programs use a custom <code>Info.plist</code> template for this, which can be found as <code>CMake/MacOSXBundleInfo.plist.in</code> in the source tree.</dd>
<dd>
<b>X11:</b> Some window managers will not respect the placement of initially hidden windows.</dd>
<dd>
<b>X11:</b> Due to the asynchronous nature of X11, it may take a moment for a window to reach its requested state. This means you may not be able to query the final size, position or other attributes directly after window creation.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_creation">Window creation</a> </dd>
<dd>
<a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2" title="Destroys the specified window and its context. ">glfwDestroyWindow</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwOpenWindow</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa77c4898dfb83344a6b4f76aa16b9a4a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwDefaultWindowHints </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function resets all window hints to their <a class="el" href="window_guide.html#window_hints_values">default values</a>.</p>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_hints">Window creation hints</a> </dd>
<dd>
<a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033" title="Sets the specified window hint to the desired value. ">glfwWindowHint</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gacdf43e51376051d2c091662e9fe3d7b2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwDestroyWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function destroys the specified window and its context. On calling this function, no further callbacks will be called for that window.</p>
<p>If the context of the specified window is current on the main thread, it is detached before being destroyed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to destroy.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The context of the specified window must not be current on any other thread when this function is called.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_creation">Window creation</a> </dd>
<dd>
<a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344" title="Creates a window and its associated context. ">glfwCreateWindow</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwCloseWindow</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga873780357abd3f3a081d71a40aae45a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwFocusWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function brings the specified window to front and sets input focus. The window should already be visible and not iconified.</p>
<p>By default, both windowed and full screen mode windows are focused when initially created. Set the <a class="el" href="window_guide.html#window_hints_wnd">GLFW_FOCUSED</a> to disable this behavior.</p>
<p><b>Do not use this function</b> to steal focus from other applications unless you are certain that is what the user wants. Focus stealing can be extremely disruptive.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to give input focus.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_focus">Window input focus</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga0e2637a4161afb283f5300c7f94785c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetFramebufferSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the size, in pixels, of the framebuffer of the specified window. If you wish to retrieve the size of the window in screen coordinates, see <a class="el" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a>.</p>
<p>Any or all of the size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> size arguments will be set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose framebuffer to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">width</td><td>Where to store the width, in pixels, of the framebuffer, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">height</td><td>Where to store the height, in pixels, of the framebuffer, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_fbsize">Framebuffer size</a> </dd>
<dd>
<a class="el" href="group__window.html#ga3203461a5303bf289f2e05f854b2f7cf" title="Sets the framebuffer resize callback for the specified window. ">glfwSetFramebufferSizeCallback</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gacccb29947ea4b16860ebef42c2cb9337"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwGetWindowAttrib </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>attrib</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the value of an attribute of the specified window or its OpenGL or OpenGL ES context.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to query. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">attrib</td><td>The <a class="el" href="window_guide.html#window_attribs">window attribute</a> whose value to return. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value of the attribute, or zero if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Framebuffer related hints are not window attributes. See <a class="el" href="window_guide.html#window_attribs_fb">Framebuffer related attributes</a> for more information.</dd>
<dd>
Zero is a valid value for many window and context related attributes so you cannot use a return value of zero as an indication of errors. However, this function should not fail as long as it is passed valid arguments and the library has been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_attribs">Window attributes</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwGetWindowParam</code> and <code>glfwGetGLVersion</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1a9fd382058c53101b21cf211898f1f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetWindowFrameSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>top</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>right</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>bottom</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the size, in screen coordinates, of each edge of the frame of the specified window. This size includes the title bar, if the window has one. The size of the frame may vary depending on the <a class="el" href="window_guide.html#window_hints_wnd">window-related hints</a> used to create it.</p>
<p>Because this function retrieves the size of each window frame edge and not the offset along a particular coordinate axis, the retrieved values will always be zero or positive.</p>
<p>Any or all of the size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> size arguments will be set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose frame size to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">left</td><td>Where to store the size, in screen coordinates, of the left edge of the window frame, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">top</td><td>Where to store the size, in screen coordinates, of the top edge of the window frame, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">right</td><td>Where to store the size, in screen coordinates, of the right edge of the window frame, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">bottom</td><td>Where to store the size, in screen coordinates, of the bottom edge of the window frame, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_size">Window size</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="gaeac25e64789974ccbe0811766bd91a16"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* glfwGetWindowMonitor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the handle of the monitor that the specified window is in full screen on.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The monitor, or <code>NULL</code> if the window is in windowed mode or an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_monitor">Window monitor</a> </dd>
<dd>
<a class="el" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7" title="Sets the mode, monitor, video mode and placement of a window. ">glfwSetWindowMonitor</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga73cb526c000876fd8ddf571570fdb634"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetWindowPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>xpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>ypos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the position, in screen coordinates, of the upper-left corner of the client area of the specified window.</p>
<p>Any or all of the position arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> position arguments will be set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to query. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">xpos</td><td>Where to store the x-coordinate of the upper-left corner of the client area, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ypos</td><td>Where to store the y-coordinate of the upper-left corner of the client area, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_pos">Window position</a> </dd>
<dd>
<a class="el" href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8" title="Sets the position of the client area of the specified window. ">glfwSetWindowPos</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gaeea7cbc03373a41fb51cfbf9f2a5d4c6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwGetWindowSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the size, in screen coordinates, of the client area of the specified window. If you wish to retrieve the size of the framebuffer of the window in pixels, see <a class="el" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a>.</p>
<p>Any or all of the size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> size arguments will be set to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose size to retrieve. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">width</td><td>Where to store the width, in screen coordinates, of the client area, or <code>NULL</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">height</td><td>Where to store the height, in screen coordinates, of the client area, or <code>NULL</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_size">Window size</a> </dd>
<dd>
<a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb" title="Sets the size of the client area of the specified window. ">glfwSetWindowSize</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga17807ce0f45ac3f8bb50d6dcc59a4e06"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* glfwGetWindowUserPointer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the current value of the user-defined pointer of the specified window. The initial value is <code>NULL</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose pointer to return.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_userptr">User pointer</a> </dd>
<dd>
<a class="el" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651" title="Sets the user pointer of the specified window. ">glfwSetWindowUserPointer</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga49401f82a1ba5f15db5590728314d47c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwHideWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function hides the specified window if it was previously visible. If the window is already hidden or is in full screen mode, this function does nothing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to hide.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_hide">Window visibility</a> </dd>
<dd>
<a class="el" href="group__window.html#ga61be47917b72536a148300f46494fc66" title="Makes the specified window visible. ">glfwShowWindow</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1bb559c0ebaad63c5c05ad2a066779c4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwIconifyWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function iconifies (minimizes) the specified window if it was previously restored. If the window is already iconified, this function does nothing.</p>
<p>If the specified window is a full screen window, the original monitor resolution is restored until the window is restored.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to iconify.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_iconify">Window iconification</a> </dd>
<dd>
<a class="el" href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7" title="Restores the specified window. ">glfwRestoreWindow</a> </dd>
<dd>
<a class="el" href="group__window.html#ga3f541387449d911274324ae7f17ec56b" title="Maximizes the specified window. ">glfwMaximizeWindow</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.1. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3f541387449d911274324ae7f17ec56b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwMaximizeWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function maximizes the specified window if it was previously not maximized. If the window is already maximized, this function does nothing.</p>
<p>If the specified window is a full screen window, this function does nothing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to maximize.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd>This function may only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_iconify">Window iconification</a> </dd>
<dd>
<a class="el" href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4" title="Iconifies the specified window. ">glfwIconifyWindow</a> </dd>
<dd>
<a class="el" href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7" title="Restores the specified window. ">glfwRestoreWindow</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in GLFW 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga37bd57223967b4211d60ca1a0bf3c832"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwPollEvents </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function processes only those events that are already in the event queue and then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.</p>
<p>On some platforms, a window move, resize or menu operation will cause event processing to block. This is due to how event processing is designed on those platforms. You can use the <a class="el" href="window_guide.html#window_refresh">window refresh callback</a> to redraw the contents of your window when necessary during such operations.</p>
<p>On some platforms, certain events are sent directly to the application without going through the event queue, causing callbacks to be called outside of a call to one of the event processing functions.</p>
<p>Event processing is not required for joystick input to work.</p>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#events">Event processing</a> </dd>
<dd>
<a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e" title="Waits until events are queued and processes them. ">glfwWaitEvents</a> </dd>
<dd>
<a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf" title="Waits with timeout until events are queued and processes them. ">glfwWaitEventsTimeout</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gab5997a25187e9fd5c6f2ecbbc8dfd7e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwPostEmptyEvent </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function posts an empty event from the current thread to the event queue, causing <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a> or <a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a> to return.</p>
<p>If no windows exist, this function returns immediately. For synchronization of threads in applications that do not create windows, use your threading library of choice.</p>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#events">Event processing</a> </dd>
<dd>
<a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e" title="Waits until events are queued and processes them. ">glfwWaitEvents</a> </dd>
<dd>
<a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf" title="Waits with timeout until events are queued and processes them. ">glfwWaitEventsTimeout</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
</div>
</div>
<a class="anchor" id="ga52527a5904b47d802b6b4bb519cdebc7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwRestoreWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function restores the specified window if it was previously iconified (minimized) or maximized. If the window is already restored, this function does nothing.</p>
<p>If the specified window is a full screen window, the resolution chosen for the window is restored on the selected monitor.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to restore.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_iconify">Window iconification</a> </dd>
<dd>
<a class="el" href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4" title="Iconifies the specified window. ">glfwIconifyWindow</a> </dd>
<dd>
<a class="el" href="group__window.html#ga3f541387449d911274324ae7f17ec56b" title="Maximizes the specified window. ">glfwMaximizeWindow</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.1. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3203461a5303bf289f2e05f854b2f7cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a> glfwSetFramebufferSizeCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the framebuffer resize callback of the specified window, which is called when the framebuffer of the specified window is resized.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_fbsize">Framebuffer size</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga72ac8cb1ee2e312a878b55153d81b937"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowAspectRatio </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>numer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>denom</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the required aspect ratio of the client area of the specified window. If the window is full screen, the aspect ratio only takes effect once it is made windowed. If the window is not resizable, this function does nothing.</p>
<p>The aspect ratio is specified as a numerator and a denominator and both values must be greater than zero. For example, the common 16:9 aspect ratio is specified as 16 and 9, respectively.</p>
<p>If the numerator and denominator is set to <code>GLFW_DONT_CARE</code> then the aspect ratio limit is disabled.</p>
<p>The aspect ratio is applied immediately to a windowed mode window and may cause it to be resized.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to set limits for. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">numer</td><td>The numerator of the desired aspect ratio, or <code>GLFW_DONT_CARE</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">denom</td><td>The denominator of the desired aspect ratio, or <code>GLFW_DONT_CARE</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>If you set size limits and an aspect ratio that conflict, the results are undefined.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_sizelimits">Window size limits</a> </dd>
<dd>
<a class="el" href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90" title="Sets the size limits of the specified window. ">glfwSetWindowSizeLimits</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gaade9264e79fae52bdb78e2df11ee8d6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a> glfwSetWindowCloseCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the close callback of the specified window, which is called when the user attempts to close the window, for example by clicking the close widget in the title bar.</p>
<p>The close flag is set before this callback is called, but you can modify it at any time with <a class="el" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a>.</p>
<p>The close callback is not triggered by <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><b>OS X:</b> Selecting Quit from the application menu will trigger the close callback for all windows.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_close">Window closing and close flag</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.5. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter and return value. </dd></dl>
</div>
</div>
<a class="anchor" id="ga25d1c584edb375d7711c5c3548ba711f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a> glfwSetWindowFocusCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the focus callback of the specified window, which is called when the window gains or loses input focus.</p>
<p>After the focus callback is called for a window that lost input focus, synthetic key and mouse button release events will be generated for all such that had been pressed. For more information, see <a class="el" href="group__input.html#ga7e496507126f35ea72f01b2e6ef6d155">glfwSetKeyCallback</a> and <a class="el" href="group__input.html#gaef49b72d84d615bca0a6ed65485e035d">glfwSetMouseButtonCallback</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_focus">Window input focus</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="gadd7ccd39fe7a7d1f0904666ae5932dc5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowIcon </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structGLFWimage.html">GLFWimage</a> *&#160;</td>
<td class="paramname"><em>images</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the icon of the specified window. If passed an array of candidate images, those of or closest to the sizes desired by the system are selected. If no images are specified, the window reverts to its default icon.</p>
<p>The desired image sizes varies depending on platform and system settings. The selected images will be rescaled as needed. Good sizes include 16x16, 32x32 and 48x48.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose icon to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>The number of images in the specified array, or zero to revert to the default window icon. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">images</td><td>The images to create the icon from. This is ignored if count is zero.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Pointer lifetime</dt><dd>The specified image data is copied before this function returns.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><b>OS X:</b> The GLFW window has no icon, as it is not a document window, so this function does nothing. The dock icon will be the same as the application bundle's icon. For more information on bundles, see the <a href="https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/">Bundle Programming Guide</a> in the Mac Developer Library.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_icon">Window icon</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="gab1ea7263081c0e073b8d5b91d6ffd367"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a> glfwSetWindowIconifyCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the iconification callback of the specified window, which is called when the window is iconified or restored.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_iconify">Window iconification</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga81c76c418af80a1cce7055bccb0ae0a7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowMonitor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
<td class="paramname"><em>monitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>xpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ypos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>height</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>refreshRate</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the monitor that the window uses for full screen mode or, if the monitor is <code>NULL</code>, makes it windowed mode.</p>
<p>When setting a monitor, this function updates the width, height and refresh rate of the desired video mode and switches to the video mode closest to it. The window position is ignored when setting a monitor.</p>
<p>When the monitor is <code>NULL</code>, the position, width and height are used to place the window client area. The refresh rate is ignored when no monitor is specified.</p>
<p>If you only wish to update the resolution of a full screen window or the size of a windowed mode window, see <a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a>.</p>
<p>When a window transitions from full screen to windowed mode, this function restores any previous window settings such as whether it is decorated, floating, resizable, has size or aspect ratio limits, etc..</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose monitor, size or video mode to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The desired monitor, or <code>NULL</code> to set windowed mode. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>The desired x-coordinate of the upper-left corner of the client area. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>The desired y-coordinate of the upper-left corner of the client area. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The desired with, in screen coordinates, of the client area or video mode. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The desired height, in screen coordinates, of the client area or video mode. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">refreshRate</td><td>The desired refresh rate, in Hz, of the video mode, or <code>GLFW_DONT_CARE</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_monitor">Window monitor</a> </dd>
<dd>
<a class="el" href="window_guide.html#window_full_screen">Full screen windows</a> </dd>
<dd>
<a class="el" href="group__window.html#gaeac25e64789974ccbe0811766bd91a16" title="Returns the monitor that the window uses for full screen mode. ">glfwGetWindowMonitor</a> </dd>
<dd>
<a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb" title="Sets the size of the client area of the specified window. ">glfwSetWindowSize</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga1abb6d690e8c88e0c8cd1751356dbca8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>xpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ypos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the position, in screen coordinates, of the upper-left corner of the client area of the specified windowed mode window. If the window is a full screen window, this function does nothing.</p>
<p><b>Do not use this function</b> to move an already visible window unless you have very good reasons for doing so, as it will confuse and annoy the user.</p>
<p>The window manager may put limits on what positions are allowed. GLFW cannot and should not override these limits.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to query. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xpos</td><td>The x-coordinate of the upper-left corner of the client area. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ypos</td><td>The y-coordinate of the upper-left corner of the client area.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_pos">Window position</a> </dd>
<dd>
<a class="el" href="group__window.html#ga73cb526c000876fd8ddf571570fdb634" title="Retrieves the position of the client area of the specified window. ">glfwGetWindowPos</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga2837d4d240659feb4268fcb6530a6ba1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a> glfwSetWindowPosCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the position callback of the specified window, which is called when the window is moved. The callback is provided with the screen position of the upper-left corner of the client area of the window.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_pos">Window position</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4569b76e8ac87c55b53199e6becd97eb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a> glfwSetWindowRefreshCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the refresh callback of the specified window, which is called when the client area of the window needs to be redrawn, for example if the window has been exposed after having been covered by another window.</p>
<p>On compositing window systems such as Aero, Compiz or Aqua, where the window contents are saved off-screen, this callback may be called only very infrequently or never at all.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_refresh">Window damage and refresh</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.5. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter and return value. </dd></dl>
</div>
</div>
<a class="anchor" id="ga49c449dde2a6f87d996f4daaa09d6708"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowShouldClose </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the value of the close flag of the specified window. This can be used to override the user's attempt to close the window, or to signal that it should be closed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose flag to change. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The new value.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_close">Window closing and close flag</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga371911f12c74c504dd8d47d832d095cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the size, in screen coordinates, of the client area of the specified window.</p>
<p>For full screen windows, this function updates the resolution of its desired video mode and switches to the video mode closest to it, without affecting the window's context. As the context is unaffected, the bit depths of the framebuffer remain unchanged.</p>
<p>If you wish to update the refresh rate of the desired video mode in addition to its resolution, see <a class="el" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a>.</p>
<p>The window manager may put limits on what sizes are allowed. GLFW cannot and should not override these limits.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to resize. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The desired width, in screen coordinates, of the window client area. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The desired height, in screen coordinates, of the window client area.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_size">Window size</a> </dd>
<dd>
<a class="el" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6" title="Retrieves the size of the client area of the specified window. ">glfwGetWindowSize</a> </dd>
<dd>
<a class="el" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7" title="Sets the mode, monitor, video mode and placement of a window. ">glfwSetWindowMonitor</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa40cd24840daa8c62f36cafc847c72b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a> glfwSetWindowSizeCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a>&#160;</td>
<td class="paramname"><em>cbfun</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the size callback of the specified window, which is called when the window is resized. The callback is provided with the size, in screen coordinates, of the client area of the window.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose callback to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cbfun</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_size">Window size</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter and return value. </dd></dl>
</div>
</div>
<a class="anchor" id="gac314fa6cec7d2d307be9963e2709cc90"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowSizeLimits </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>minwidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>minheight</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>maxwidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>maxheight</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the size limits of the client area of the specified window. If the window is full screen, the size limits only take effect once it is made windowed. If the window is not resizable, this function does nothing.</p>
<p>The size limits are applied immediately to a windowed mode window and may cause it to be resized.</p>
<p>The maximum dimensions must be greater than or equal to the minimum dimensions and all must be greater than or equal to zero.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to set limits for. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">minwidth</td><td>The minimum width, in screen coordinates, of the client area, or <code>GLFW_DONT_CARE</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">minheight</td><td>The minimum height, in screen coordinates, of the client area, or <code>GLFW_DONT_CARE</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">maxwidth</td><td>The maximum width, in screen coordinates, of the client area, or <code>GLFW_DONT_CARE</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">maxheight</td><td>The maximum height, in screen coordinates, of the client area, or <code>GLFW_DONT_CARE</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>If you set size limits and an aspect ratio that conflict, the results are undefined.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_sizelimits">Window size limits</a> </dd>
<dd>
<a class="el" href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937" title="Sets the aspect ratio of the specified window. ">glfwSetWindowAspectRatio</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga5d877f09e968cef7a360b513306f17ff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowTitle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>title</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the window title, encoded as UTF-8, of the specified window.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose title to change. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">title</td><td>The UTF-8 encoded window title.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><b>OS X:</b> The window title will not be updated until the next time you process events.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_title">Window title</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3d2fc6026e690ab31a13f78bc9fd3651"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSetWindowUserPointer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>pointer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the user-defined pointer of the specified window. The current value is retained until the window is destroyed. The initial value is <code>NULL</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose pointer to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pointer</td><td>The new value.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_userptr">User pointer</a> </dd>
<dd>
<a class="el" href="group__window.html#ga17807ce0f45ac3f8bb50d6dcc59a4e06" title="Returns the user pointer of the specified window. ">glfwGetWindowUserPointer</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga61be47917b72536a148300f46494fc66"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwShowWindow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function makes the specified window visible if it was previously hidden. If the window is already visible or is in full screen mode, this function does nothing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to make visible.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_hide">Window visibility</a> </dd>
<dd>
<a class="el" href="group__window.html#ga49401f82a1ba5f15db5590728314d47c" title="Hides the specified window. ">glfwHideWindow</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga15a5a1ee5b3c2ca6b15ca209a12efd14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwSwapBuffers </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function swaps the front and back buffers of the specified window when rendering with OpenGL or OpenGL ES. If the swap interval is greater than zero, the GPU driver waits the specified number of screen updates before swapping the buffers.</p>
<p>The specified window must have an OpenGL or OpenGL ES context. Specifying a window without a context will generate a <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> error.</p>
<p>This function does not apply to Vulkan. If you are rendering with Vulkan, see <code>vkQueuePresentKHR</code> instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose buffers to swap.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><b>EGL:</b> The context of the specified window must be current on the calling thread.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#buffer_swap">Buffer swapping</a> </dd>
<dd>
<a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed" title="Sets the swap interval for the current context. ">glfwSwapInterval</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
<dl class="section user"><dt></dt><dd><b>GLFW 3:</b> Added window handle parameter. </dd></dl>
</div>
</div>
<a class="anchor" id="ga554e37d781f0a997656c26b2c56c835e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwWaitEvents </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function puts the calling thread to sleep until at least one event is available in the event queue. Once one or more events are available, it behaves exactly like <a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>, i.e. the events in the queue are processed and the function then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.</p>
<p>Since not all events are associated with callbacks, this function may return without a callback having been called even if you are monitoring all callbacks.</p>
<p>On some platforms, a window move, resize or menu operation will cause event processing to block. This is due to how event processing is designed on those platforms. You can use the <a class="el" href="window_guide.html#window_refresh">window refresh callback</a> to redraw the contents of your window when necessary during such operations.</p>
<p>On some platforms, certain callbacks may be called outside of a call to one of the event processing functions.</p>
<p>If no windows exist, this function returns immediately. For synchronization of threads in applications that do not create windows, use your threading library of choice.</p>
<p>Event processing is not required for joystick input to work.</p>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#events">Event processing</a> </dd>
<dd>
<a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832" title="Processes all pending events. ">glfwPollEvents</a> </dd>
<dd>
<a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf" title="Waits with timeout until events are queued and processes them. ">glfwWaitEventsTimeout</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 2.5. </dd></dl>
</div>
</div>
<a class="anchor" id="ga605a178db92f1a7f1a925563ef3ea2cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwWaitEventsTimeout </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>timeout</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function puts the calling thread to sleep until at least one event is available in the event queue, or until the specified timeout is reached. If one or more events are available, it behaves exactly like <a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>, i.e. the events in the queue are processed and the function then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.</p>
<p>The timeout value must be a positive finite number.</p>
<p>Since not all events are associated with callbacks, this function may return without a callback having been called even if you are monitoring all callbacks.</p>
<p>On some platforms, a window move, resize or menu operation will cause event processing to block. This is due to how event processing is designed on those platforms. You can use the <a class="el" href="window_guide.html#window_refresh">window refresh callback</a> to redraw the contents of your window when necessary during such operations.</p>
<p>On some platforms, certain callbacks may be called outside of a call to one of the event processing functions.</p>
<p>If no windows exist, this function returns immediately. For synchronization of threads in applications that do not create windows, use your threading library of choice.</p>
<p>Event processing is not required for joystick input to work.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>The maximum amount of time, in seconds, to wait.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Reentrancy</dt><dd>This function must not be called from a callback.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#events">Event processing</a> </dd>
<dd>
<a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832" title="Processes all pending events. ">glfwPollEvents</a> </dd>
<dd>
<a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e" title="Waits until events are queued and processes them. ">glfwWaitEvents</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
</div>
</div>
<a class="anchor" id="ga7d9c8c62384b1e2821c4dc48952d2033"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void glfwWindowHint </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>hint</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets hints for the next call to <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>. The hints, once set, retain their values until changed by a call to <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a> or <a class="el" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a>, or until the library is terminated.</p>
<p>This function does not check whether the specified hint values are valid. If you set hints to invalid values this will instead be reported by the next call to <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hint</td><td>The <a class="el" href="window_guide.html#window_hints">window hint</a> to set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The new value of the window hint.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">GLFW_INVALID_ENUM</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_hints">Window creation hints</a> </dd>
<dd>
<a class="el" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a" title="Resets all window hints to their default values. ">glfwDefaultWindowHints</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwOpenWindowHint</code>. </dd></dl>
</div>
</div>
<a class="anchor" id="ga24e02fbfefbb81fc45320989f8140ab5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int glfwWindowShouldClose </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
<td class="paramname"><em>window</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the value of the close flag of the specified window.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window to query. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value of the close flag.</dd></dl>
<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
<dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="window_guide.html#window_close">Window closing and close flag</a></dd></dl>
<dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
</div>
</div>
</div><!-- contents -->
<address class="footer">
<p>
Last update on Thu Aug 18 2016 for GLFW 3.2.1
</p>
</address>
</body>
</html>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment