DISTRHO Plugin Framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

241 lines
13KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.9.1"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>DISTRHO Plugin Framework: Window::ScopedGraphicsContext Struct Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  19. <div id="titlearea">
  20. <table cellspacing="0" cellpadding="0">
  21. <tbody>
  22. <tr style="height: 56px;">
  23. <td id="projectalign" style="padding-left: 0.5em;">
  24. <div id="projectname">DISTRHO Plugin Framework
  25. </div>
  26. </td>
  27. </tr>
  28. </tbody>
  29. </table>
  30. </div>
  31. <!-- end header part -->
  32. <!-- Generated by Doxygen 1.9.1 -->
  33. <script type="text/javascript">
  34. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  35. var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
  36. /* @license-end */
  37. </script>
  38. <script type="text/javascript" src="menudata.js"></script>
  39. <script type="text/javascript" src="menu.js"></script>
  40. <script type="text/javascript">
  41. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  42. $(function() {
  43. initMenu('',true,false,'search.php','Search');
  44. $(document).ready(function() { init_search(); });
  45. });
  46. /* @license-end */</script>
  47. <div id="main-nav"></div>
  48. <!-- window showing the filter options -->
  49. <div id="MSearchSelectWindow"
  50. onmouseover="return searchBox.OnSearchSelectShow()"
  51. onmouseout="return searchBox.OnSearchSelectHide()"
  52. onkeydown="return searchBox.OnSearchSelectKey(event)">
  53. </div>
  54. <!-- iframe showing the search results (closed by default) -->
  55. <div id="MSearchResultsWindow">
  56. <iframe src="javascript:void(0)" frameborder="0"
  57. name="MSearchResults" id="MSearchResults">
  58. </iframe>
  59. </div>
  60. <div id="nav-path" class="navpath">
  61. <ul>
  62. <li class="navelem"><a class="el" href="classWindow.html">Window</a></li><li class="navelem"><a class="el" href="structWindow_1_1ScopedGraphicsContext.html">ScopedGraphicsContext</a></li> </ul>
  63. </div>
  64. </div><!-- top -->
  65. <div class="header">
  66. <div class="summary">
  67. <a href="#pub-methods">Public Member Functions</a> &#124;
  68. <a href="structWindow_1_1ScopedGraphicsContext-members.html">List of all members</a> </div>
  69. <div class="headertitle">
  70. <div class="title">Window::ScopedGraphicsContext Struct Reference</div> </div>
  71. </div><!--header-->
  72. <div class="contents">
  73. <p><code>#include &lt;<a class="el" href="Window_8hpp_source.html">Window.hpp</a>&gt;</code></p>
  74. <table class="memberdecls">
  75. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  76. Public Member Functions</h2></td></tr>
  77. <tr class="memitem:a05761155e7d7de67f5a593968f581607"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWindow_1_1ScopedGraphicsContext.html#a05761155e7d7de67f5a593968f581607">ScopedGraphicsContext</a> (<a class="el" href="classWindow.html">Window</a> &amp;window)</td></tr>
  78. <tr class="separator:a05761155e7d7de67f5a593968f581607"><td class="memSeparator" colspan="2">&#160;</td></tr>
  79. <tr class="memitem:a4ac64bc28d2fdd1dba5a65ae5dfab5ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWindow_1_1ScopedGraphicsContext.html#a4ac64bc28d2fdd1dba5a65ae5dfab5ff">ScopedGraphicsContext</a> (<a class="el" href="classWindow.html">Window</a> &amp;window, <a class="el" href="classWindow.html">Window</a> &amp;transientParentWindow)</td></tr>
  80. <tr class="separator:a4ac64bc28d2fdd1dba5a65ae5dfab5ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
  81. <tr class="memitem:a18fa5edc2ecfeafcc0849094ab49996e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWindow_1_1ScopedGraphicsContext.html#a18fa5edc2ecfeafcc0849094ab49996e">~ScopedGraphicsContext</a> ()</td></tr>
  82. <tr class="separator:a18fa5edc2ecfeafcc0849094ab49996e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  83. <tr class="memitem:a4647e1da0c4477f021f668459fb3221f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWindow_1_1ScopedGraphicsContext.html#a4647e1da0c4477f021f668459fb3221f">done</a> ()</td></tr>
  84. <tr class="separator:a4647e1da0c4477f021f668459fb3221f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  85. <tr class="memitem:afe259111bbf09fcf95995b0e447de221"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWindow_1_1ScopedGraphicsContext.html#afe259111bbf09fcf95995b0e447de221">reinit</a> ()</td></tr>
  86. <tr class="separator:afe259111bbf09fcf95995b0e447de221"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. </table>
  88. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  89. <div class="textblock"><p><a class="el" href="classWindow.html">Window</a> graphics context as a scoped struct. This class gives graphics context drawing time to a window's widgets. Typically used for allowing OpenGL drawing operations during a window + widget constructor.</p>
  90. <p>Unless you are subclassing the <a class="el" href="classWindow.html">Window</a> or <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a> classes, you do not need to care. In such cases you will need to use this struct as a way to get a valid OpenGL context. For example in a standalone application: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> main()</div>
  91. <div class="line">{</div>
  92. <div class="line"> <a class="code" href="classApplication.html">Application</a> app;</div>
  93. <div class="line"> <a class="code" href="classWindow.html">Window</a> win(app);</div>
  94. <div class="line"> <a class="code" href="classScopedPointer.html">ScopedPointer&lt;MyCustomTopLevelWidget&gt;</a> widget;</div>
  95. <div class="line"> {</div>
  96. <div class="line"> <span class="keyword">const</span> <a class="code" href="structWindow_1_1ScopedGraphicsContext.html">Window::ScopedGraphicsContext</a> sgc(win);</div>
  97. <div class="line"> widget = <span class="keyword">new</span> MyCustomTopLevelWidget(win);</div>
  98. <div class="line"> }</div>
  99. <div class="line"> app.<a class="code" href="classApplication.html#a805dd37af3b9adfc1d0ee1e734ad81e3">exec</a>();</div>
  100. <div class="line"> <span class="keywordflow">return</span> 0;</div>
  101. <div class="line">}</div>
  102. <div class="ttc" id="aclassApplication_html"><div class="ttname"><a href="classApplication.html">Application</a></div><div class="ttdef"><b>Definition:</b> Application.hpp:43</div></div>
  103. <div class="ttc" id="aclassApplication_html_a805dd37af3b9adfc1d0ee1e734ad81e3"><div class="ttname"><a href="classApplication.html#a805dd37af3b9adfc1d0ee1e734ad81e3">Application::exec</a></div><div class="ttdeci">void exec(uint idleTimeInMs=30)</div></div>
  104. <div class="ttc" id="aclassScopedPointer_html"><div class="ttname"><a href="classScopedPointer.html">ScopedPointer</a></div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:83</div></div>
  105. <div class="ttc" id="aclassWindow_html"><div class="ttname"><a href="classWindow.html">Window</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:63</div></div>
  106. <div class="ttc" id="astructWindow_1_1ScopedGraphicsContext_html"><div class="ttname"><a href="structWindow_1_1ScopedGraphicsContext.html">Window::ScopedGraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:95</div></div>
  107. </div><!-- fragment --><p>This struct is necessary because we cannot automatically make the window leave the OpenGL context in custom code. And we must always cleanly enter and leave the OpenGL context. So in order to avoid messing up the global host context, this class is used around widget creation. </p>
  108. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  109. <a id="a05761155e7d7de67f5a593968f581607"></a>
  110. <h2 class="memtitle"><span class="permalink"><a href="#a05761155e7d7de67f5a593968f581607">&#9670;&nbsp;</a></span>ScopedGraphicsContext() <span class="overload">[1/2]</span></h2>
  111. <div class="memitem">
  112. <div class="memproto">
  113. <table class="mlabels">
  114. <tr>
  115. <td class="mlabels-left">
  116. <table class="memname">
  117. <tr>
  118. <td class="memname">Window::ScopedGraphicsContext::ScopedGraphicsContext </td>
  119. <td>(</td>
  120. <td class="paramtype"><a class="el" href="classWindow.html">Window</a> &amp;&#160;</td>
  121. <td class="paramname"><em>window</em></td><td>)</td>
  122. <td></td>
  123. </tr>
  124. </table>
  125. </td>
  126. <td class="mlabels-right">
  127. <span class="mlabels"><span class="mlabel">explicit</span></span> </td>
  128. </tr>
  129. </table>
  130. </div><div class="memdoc">
  131. <p>Constructor that will make the <em>window</em> graphics context the current one </p>
  132. </div>
  133. </div>
  134. <a id="a4ac64bc28d2fdd1dba5a65ae5dfab5ff"></a>
  135. <h2 class="memtitle"><span class="permalink"><a href="#a4ac64bc28d2fdd1dba5a65ae5dfab5ff">&#9670;&nbsp;</a></span>ScopedGraphicsContext() <span class="overload">[2/2]</span></h2>
  136. <div class="memitem">
  137. <div class="memproto">
  138. <table class="mlabels">
  139. <tr>
  140. <td class="mlabels-left">
  141. <table class="memname">
  142. <tr>
  143. <td class="memname">Window::ScopedGraphicsContext::ScopedGraphicsContext </td>
  144. <td>(</td>
  145. <td class="paramtype"><a class="el" href="classWindow.html">Window</a> &amp;&#160;</td>
  146. <td class="paramname"><em>window</em>, </td>
  147. </tr>
  148. <tr>
  149. <td class="paramkey"></td>
  150. <td></td>
  151. <td class="paramtype"><a class="el" href="classWindow.html">Window</a> &amp;&#160;</td>
  152. <td class="paramname"><em>transientParentWindow</em>&#160;</td>
  153. </tr>
  154. <tr>
  155. <td></td>
  156. <td>)</td>
  157. <td></td><td></td>
  158. </tr>
  159. </table>
  160. </td>
  161. <td class="mlabels-right">
  162. <span class="mlabels"><span class="mlabel">explicit</span></span> </td>
  163. </tr>
  164. </table>
  165. </div><div class="memdoc">
  166. <p>Overloaded constructor, gives back context to its transient parent when done </p>
  167. </div>
  168. </div>
  169. <a id="a18fa5edc2ecfeafcc0849094ab49996e"></a>
  170. <h2 class="memtitle"><span class="permalink"><a href="#a18fa5edc2ecfeafcc0849094ab49996e">&#9670;&nbsp;</a></span>~ScopedGraphicsContext()</h2>
  171. <div class="memitem">
  172. <div class="memproto">
  173. <table class="memname">
  174. <tr>
  175. <td class="memname">Window::ScopedGraphicsContext::~ScopedGraphicsContext </td>
  176. <td>(</td>
  177. <td class="paramname"></td><td>)</td>
  178. <td></td>
  179. </tr>
  180. </table>
  181. </div><div class="memdoc">
  182. <p>Desstructor for clearing current context, if not done yet </p>
  183. </div>
  184. </div>
  185. <h2 class="groupheader">Member Function Documentation</h2>
  186. <a id="a4647e1da0c4477f021f668459fb3221f"></a>
  187. <h2 class="memtitle"><span class="permalink"><a href="#a4647e1da0c4477f021f668459fb3221f">&#9670;&nbsp;</a></span>done()</h2>
  188. <div class="memitem">
  189. <div class="memproto">
  190. <table class="memname">
  191. <tr>
  192. <td class="memname">void Window::ScopedGraphicsContext::done </td>
  193. <td>(</td>
  194. <td class="paramname"></td><td>)</td>
  195. <td></td>
  196. </tr>
  197. </table>
  198. </div><div class="memdoc">
  199. <p>Early context clearing, useful for standalone windows not created by you. </p>
  200. </div>
  201. </div>
  202. <a id="afe259111bbf09fcf95995b0e447de221"></a>
  203. <h2 class="memtitle"><span class="permalink"><a href="#afe259111bbf09fcf95995b0e447de221">&#9670;&nbsp;</a></span>reinit()</h2>
  204. <div class="memitem">
  205. <div class="memproto">
  206. <table class="memname">
  207. <tr>
  208. <td class="memname">void Window::ScopedGraphicsContext::reinit </td>
  209. <td>(</td>
  210. <td class="paramname"></td><td>)</td>
  211. <td></td>
  212. </tr>
  213. </table>
  214. </div><div class="memdoc">
  215. <p>Get a valid context back again. </p>
  216. </div>
  217. </div>
  218. <hr/>The documentation for this struct was generated from the following file:<ul>
  219. <li>dgl/<a class="el" href="Window_8hpp_source.html">Window.hpp</a></li>
  220. </ul>
  221. </div><!-- contents -->
  222. <!-- start footer part -->
  223. <hr class="footer"/><address class="footer"><small>
  224. Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
  225. </small></address>
  226. </body>
  227. </html>