New upstream version 3.22.28

This commit is contained in:
Jeremy Bicha
2018-02-15 04:41:25 -05:00
652 changed files with 498643 additions and 49781 deletions

View File

@ -8,7 +8,7 @@
<link rel="up" href="MiscObjects.html" title="Miscellaneous">
<link rel="prev" href="GtkDrawingArea.html" title="GtkDrawingArea">
<link rel="next" href="GtkEventBox.html" title="GtkEventBox">
<meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -53,7 +53,7 @@
</tr>
<tr>
<td class="function_type">
<a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="returnvalue">GdkGLContext</span></a> *
<span class="returnvalue">GdkGLContext</span> *
</td>
<td class="function_name">
<a class="link" href="GtkGLArea.html#gtk-gl-area-get-context" title="gtk_gl_area_get_context ()">gtk_gl_area_get_context</a> <span class="c_punctuation">()</span>
@ -93,7 +93,7 @@
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> *
<span class="returnvalue">GError</span> *
</td>
<td class="function_name">
<a class="link" href="GtkGLArea.html#gtk-gl-area-get-error" title="gtk_gl_area_get_error ()">gtk_gl_area_get_error</a> <span class="c_punctuation">()</span>
@ -109,7 +109,7 @@
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkGLArea.html#gtk-gl-area-get-has-alpha" title="gtk_gl_area_get_has_alpha ()">gtk_gl_area_get_has_alpha</a> <span class="c_punctuation">()</span>
@ -125,7 +125,7 @@
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkGLArea.html#gtk-gl-area-get-has-depth-buffer" title="gtk_gl_area_get_has_depth_buffer ()">gtk_gl_area_get_has_depth_buffer</a> <span class="c_punctuation">()</span>
@ -141,7 +141,7 @@
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkGLArea.html#gtk-gl-area-get-has-stencil-buffer" title="gtk_gl_area_get_has_stencil_buffer ()">gtk_gl_area_get_has_stencil_buffer</a> <span class="c_punctuation">()</span>
@ -157,7 +157,7 @@
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkGLArea.html#gtk-gl-area-get-auto-render" title="gtk_gl_area_get_auto_render ()">gtk_gl_area_get_auto_render</a> <span class="c_punctuation">()</span>
@ -189,7 +189,7 @@
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkGLArea.html#gtk-gl-area-get-use-es" title="gtk_gl_area_get_use_es ()">gtk_gl_area_get_use_es</a> <span class="c_punctuation">()</span>
@ -208,33 +208,33 @@
</colgroup>
<tbody>
<tr>
<td class="property_type"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkGLArea.html#GtkGLArea--auto-render" title="The “auto-render” property">auto-render</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> *</td>
<span class="type">GdkGLContext</span> *</td>
<td class="property_name"><a class="link" href="GtkGLArea.html#GtkGLArea--context" title="The “context” property">context</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkGLArea.html#GtkGLArea--has-alpha" title="The “has-alpha” property">has-alpha</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkGLArea.html#GtkGLArea--has-depth-buffer" title="The “has-depth-buffer” property">has-depth-buffer</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkGLArea.html#GtkGLArea--has-stencil-buffer" title="The “has-stencil-buffer” property">has-stencil-buffer</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkGLArea.html#GtkGLArea--use-es" title="The “use-es” property">use-es</a></td>
<td class="property_flags">Read / Write</td>
</tr>
@ -252,19 +252,19 @@
<tbody>
<tr>
<td class="signal_type">
<a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="returnvalue">GdkGLContext</span></a>*</td>
<span class="returnvalue">GdkGLContext</span>*</td>
<td class="signal_name"><a class="link" href="GtkGLArea.html#GtkGLArea-create-context" title="The “create-context” signal">create-context</a></td>
<td class="signal_flags"><a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkGLArea.html#GtkGLArea-render" title="The “render” signal">render</a></td>
<td class="signal_flags"><a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkGLArea.html#GtkGLArea-resize" title="The “resize” signal">resize</a></td>
<td class="signal_flags"><a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
<td class="signal_flags">Run Last</td>
</tr>
</tbody>
</table></div>
@ -290,8 +290,8 @@
</div>
<div class="refsect1">
<a name="GtkGLArea.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="../gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
<span class="lineart">╰──</span> <a href="../gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
<pre class="screen"> GObject
<span class="lineart">╰──</span> GInitiallyUnowned
<span class="lineart">╰──</span> <a class="link" href="GtkWidget.html" title="GtkWidget">GtkWidget</a>
<span class="lineart">╰──</span> GtkGLArea
</pre>
@ -304,13 +304,13 @@ GtkGLArea implements
</div>
<div class="refsect1">
<a name="GtkGLArea.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtk/gtk.h&gt;
<pre class="synopsis">#include &lt;gtk/gtkunixprint.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GtkGLArea.description"></a><h2>Description</h2>
<p><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> is a widget that allows drawing with OpenGL.</p>
<p><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> sets up its own <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> for the window it creates, and
<p><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> sets up its own <span class="type">GdkGLContext</span> for the window it creates, and
creates a custom GL framebuffer that the widget will do GL rendering onto.
It also ensures that this framebuffer is the default GL rendering target
when rendering.</p>
@ -318,7 +318,7 @@ when rendering.</p>
or subclass <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> and override the <em class="parameter"><code>GtkGLAreaClass.render()</code></em>
virtual
function.</p>
<p>The <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget ensures that the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> is associated with
<p>The <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget ensures that the <span class="type">GdkGLContext</span> is associated with
the widget's drawing area, and it is kept updated when the size and
position of the drawing area changes.</p>
<div class="refsect3">
@ -334,11 +334,11 @@ create a widget instance and connect to the <a class="link" href="GtkGLArea.html
3
4
5</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc slc">// create a GtkGLArea instance</span>
GtkWidget <span class="gtkdoc opt">*</span>gl_area <span class="gtkdoc opt">=</span> <span class="function"><a href="GtkGLArea.html#gtk-gl-area-new">gtk_gl_area_new</a></span> <span class="gtkdoc opt">();</span>
<td class="listing_code"><pre class="programlisting"><span class="comment">// create a GtkGLArea instance</span>
<span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">gl_area </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkGLArea.html#gtk-gl-area-new">gtk_gl_area_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="gtkdoc slc">// connect to the &quot;render&quot; signal</span>
<span class="function"><a href="../gobject/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>gl_area<span class="gtkdoc opt">,</span> <span class="string">&quot;render&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>render<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span></pre></td>
<span class="comment">// connect to the "render" signal</span>
<span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gl_area</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"render"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">render</span><span class="symbol">),</span><span class="normal"> NULL</span><span class="symbol">);</span></pre></td>
</tr>
</tbody>
</table>
@ -371,26 +371,26 @@ for you to draw its content:</p>
18
19
20</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static</span> gboolean
<span class="function">render</span> <span class="gtkdoc opt">(</span>GtkGLArea <span class="gtkdoc opt">*</span>area<span class="gtkdoc opt">,</span> GdkGLContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">)</span>
<span class="gtkdoc opt">{</span>
<span class="gtkdoc slc">// inside this function it&apos;s safe to use GL; the given</span>
<span class="gtkdoc slc">// #GdkGLContext has been made current to the drawable</span>
<span class="gtkdoc slc">// surface used by the #GtkGLArea and the viewport has</span>
<span class="gtkdoc slc">// already been set to be the size of the allocation</span>
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> gboolean</span>
<span class="function">render</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkGLArea</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">area</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GdkGLContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal"> </span><span class="comment">// inside this function it's safe to use GL; the given</span>
<span class="normal"> </span><span class="comment">// #GdkGLContext has been made current to the drawable</span>
<span class="normal"> </span><span class="comment">// surface used by the #GtkGLArea and the viewport has</span>
<span class="normal"> </span><span class="comment">// already been set to be the size of the allocation</span>
<span class="gtkdoc slc">// we can start by clearing the buffer</span>
<span class="function">glClearColor</span> <span class="gtkdoc opt">(</span><span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
<span class="function">glClear</span> <span class="gtkdoc opt">(</span>GL_COLOR_BUFFER_BIT<span class="gtkdoc opt">);</span>
<span class="normal"> </span><span class="comment">// we can start by clearing the buffer</span>
<span class="normal"> </span><span class="function">glClearColor</span><span class="normal"> </span><span class="symbol">(</span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
<span class="normal"> </span><span class="function">glClear</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">GL_COLOR_BUFFER_BIT</span><span class="symbol">);</span>
<span class="gtkdoc slc">// draw your object</span>
<span class="function">draw_an_object</span> <span class="gtkdoc opt">();</span>
<span class="normal"> </span><span class="comment">// draw your object</span>
<span class="normal"> </span><span class="function">draw_an_object</span><span class="normal"> </span><span class="symbol">();</span>
<span class="gtkdoc slc">// we completed our drawing; the draw commands will be</span>
<span class="gtkdoc slc">// flushed at the end of the signal emission chain, and</span>
<span class="gtkdoc slc">// the buffers will be drawn on the window</span>
<span class="keyword">return</span> TRUE<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span></pre></td>
<span class="normal"> </span><span class="comment">// we completed our drawing; the draw commands will be</span>
<span class="normal"> </span><span class="comment">// flushed at the end of the signal emission chain, and</span>
<span class="normal"> </span><span class="comment">// the buffers will be drawn on the window</span>
<span class="normal"> </span><span class="keyword">return</span><span class="normal"> TRUE</span><span class="symbol">;</span>
<span class="cbracket">}</span></pre></td>
</tr>
</tbody>
</table>
@ -400,7 +400,7 @@ for you to draw its content:</p>
<p>If you need to initialize OpenGL state, e.g. buffer objects or
shaders, you should use the <a class="link" href="GtkWidget.html#GtkWidget-realize" title="The “realize” signal"><span class="type">“realize”</span></a> signal; you
can use the <a class="link" href="GtkWidget.html#GtkWidget-unrealize" title="The “unrealize” signal"><span class="type">“unrealize”</span></a> signal to clean up. Since the
<a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> creation and initialization may fail, you will
<span class="type">GdkGLContext</span> creation and initialization may fail, you will
need to check for errors, using <a class="link" href="GtkGLArea.html#gtk-gl-area-get-error" title="gtk_gl_area_get_error ()"><code class="function">gtk_gl_area_get_error()</code></a>. An example
of how to safely initialize the GL state is:</p>
<div class="informalexample">
@ -440,46 +440,46 @@ of how to safely initialize the GL state is:</p>
31
32
33</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
<span class="function">on_realize</span> <span class="gtkdoc opt">(</span>GtkGLarea <span class="gtkdoc opt">*</span>area<span class="gtkdoc opt">)</span>
<span class="gtkdoc opt">{</span>
<span class="gtkdoc slc">// We need to make the context current if we want to</span>
<span class="gtkdoc slc">// call GL API</span>
<span class="function"><a href="GtkGLArea.html#gtk-gl-area-make-current">gtk_gl_area_make_current</a></span> <span class="gtkdoc opt">(</span>area<span class="gtkdoc opt">);</span>
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">on_realize</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkGLarea</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">area</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal"> </span><span class="comment">// We need to make the context current if we want to</span>
<span class="normal"> </span><span class="comment">// call GL API</span>
<span class="normal"> </span><span class="function"><a href="GtkGLArea.html#gtk-gl-area-make-current">gtk_gl_area_make_current</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">area</span><span class="symbol">);</span>
<span class="gtkdoc slc">// If there were errors during the initialization or</span>
<span class="gtkdoc slc">// when trying to make the context current, this</span>
<span class="gtkdoc slc">// function will return a #GError for you to catch</span>
<span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="GtkGLArea.html#gtk-gl-area-get-error">gtk_gl_area_get_error</a></span> <span class="gtkdoc opt">(</span>area<span class="gtkdoc opt">) !=</span> NULL<span class="gtkdoc opt">)</span>
<span class="keyword">return</span><span class="gtkdoc opt">;</span>
<span class="normal"> </span><span class="comment">// If there were errors during the initialization or</span>
<span class="normal"> </span><span class="comment">// when trying to make the context current, this</span>
<span class="normal"> </span><span class="comment">// function will return a #GError for you to catch</span>
<span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="GtkGLArea.html#gtk-gl-area-get-error">gtk_gl_area_get_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">area</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">!=</span><span class="normal"> NULL</span><span class="symbol">)</span>
<span class="normal"> </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="gtkdoc slc">// You can also use gtk_gl_area_set_error() in order</span>
<span class="gtkdoc slc">// to show eventual initialization errors on the</span>
<span class="gtkdoc slc">// GtkGLArea widget itself</span>
GError <span class="gtkdoc opt">*</span>internal_error <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
<span class="function">init_buffer_objects</span> <span class="gtkdoc opt">(&amp;</span>error<span class="gtkdoc opt">);</span>
<span class="keyword">if</span> <span class="gtkdoc opt">(</span>error <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">)</span>
<span class="gtkdoc opt">{</span>
<span class="function"><a href="GtkGLArea.html#gtk-gl-area-set-error">gtk_gl_area_set_error</a></span> <span class="gtkdoc opt">(</span>area<span class="gtkdoc opt">,</span> error<span class="gtkdoc opt">);</span>
<span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span> <span class="gtkdoc opt">(</span>error<span class="gtkdoc opt">);</span>
<span class="keyword">return</span><span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span>
<span class="normal"> </span><span class="comment">// You can also use gtk_gl_area_set_error() in order</span>
<span class="normal"> </span><span class="comment">// to show eventual initialization errors on the</span>
<span class="normal"> </span><span class="comment">// GtkGLArea widget itself</span>
<span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">internal_error </span><span class="symbol">=</span><span class="normal"> NULL</span><span class="symbol">;</span>
<span class="normal"> </span><span class="function">init_buffer_objects</span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> NULL</span><span class="symbol">)</span>
<span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="function"><a href="GtkGLArea.html#gtk-gl-area-set-error">gtk_gl_area_set_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">area</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="function">g_error_free</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="normal"> </span><span class="cbracket">}</span>
<span class="function">init_shaders</span> <span class="gtkdoc opt">(&amp;</span>error<span class="gtkdoc opt">);</span>
<span class="keyword">if</span> <span class="gtkdoc opt">(</span>error <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">)</span>
<span class="gtkdoc opt">{</span>
<span class="function"><a href="GtkGLArea.html#gtk-gl-area-set-error">gtk_gl_area_set_error</a></span> <span class="gtkdoc opt">(</span>area<span class="gtkdoc opt">,</span> error<span class="gtkdoc opt">);</span>
<span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span> <span class="gtkdoc opt">(</span>error<span class="gtkdoc opt">);</span>
<span class="keyword">return</span><span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc opt">}</span></pre></td>
<span class="normal"> </span><span class="function">init_shaders</span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> NULL</span><span class="symbol">)</span>
<span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="function"><a href="GtkGLArea.html#gtk-gl-area-set-error">gtk_gl_area_set_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">area</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="function">g_error_free</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="normal"> </span><span class="cbracket">}</span>
<span class="cbracket">}</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p>If you need to change the options for creating the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a>
<p>If you need to change the options for creating the <span class="type">GdkGLContext</span>
you should use the <a class="link" href="GtkGLArea.html#GtkGLArea-create-context" title="The “create-context” signal"><span class="type">“create-context”</span></a> signal.</p>
</div>
</div>
@ -492,7 +492,7 @@ gtk_gl_area_new (<em class="parameter"><code><span class="type">void</span></cod
<p>Creates a new <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget.</p>
<div class="refsect3">
<a name="gtk-gl-area-new.returns"></a><h4>Returns</h4>
<p> the newly created <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a>. </p>
<p>the newly created <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
@ -500,9 +500,9 @@ gtk_gl_area_new (<em class="parameter"><code><span class="type">void</span></cod
<hr>
<div class="refsect2">
<a name="gtk-gl-area-get-context"></a><h3>gtk_gl_area_get_context ()</h3>
<pre class="programlisting"><a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="returnvalue">GdkGLContext</span></a> *
<pre class="programlisting"><span class="returnvalue">GdkGLContext</span> *
gtk_gl_area_get_context (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Retrieves the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> used by <em class="parameter"><code>area</code></em>
<p>Retrieves the <span class="type">GdkGLContext</span> used by <em class="parameter"><code>area</code></em>
.</p>
<div class="refsect3">
<a name="gtk-gl-area-get-context.parameters"></a><h4>Parameters</h4>
@ -521,7 +521,7 @@ gtk_gl_area_get_context (<em class="parameter"><code><a class="link" href="GtkGL
</div>
<div class="refsect3">
<a name="gtk-gl-area-get-context.returns"></a><h4>Returns</h4>
<p> the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a>. </p>
<p>the <span class="type">GdkGLContext</span>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
@ -531,7 +531,7 @@ gtk_gl_area_get_context (<em class="parameter"><code><a class="link" href="GtkGL
<a name="gtk-gl-area-make-current"></a><h3>gtk_gl_area_make_current ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_make_current (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Ensures that the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> used by <em class="parameter"><code>area</code></em>
<p>Ensures that the <span class="type">GdkGLContext</span> used by <em class="parameter"><code>area</code></em>
is associated with
the <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a>.</p>
<p>This function is automatically called before emitting the
@ -563,7 +563,7 @@ gtk_gl_area_queue_render (<em class="parameter"><code><a class="link" href="GtkG
a redraw of the widget, ensuring that the <a class="link" href="GtkGLArea.html#GtkGLArea-render" title="The “render” signal"><span class="type">“render”</span></a> signal
is emitted during the draw.</p>
<p>This is only needed when the <a class="link" href="GtkGLArea.html#gtk-gl-area-set-auto-render" title="gtk_gl_area_set_auto_render ()"><code class="function">gtk_gl_area_set_auto_render()</code></a> has
been called with a <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> value. The default behaviour is to
been called with a <code class="literal">FALSE</code> value. The default behaviour is to
emit <a class="link" href="GtkGLArea.html#GtkGLArea-render" title="The “render” signal"><span class="type">“render”</span></a> on each draw.</p>
<div class="refsect3">
<a name="gtk-gl-area-queue-render.parameters"></a><h4>Parameters</h4>
@ -617,7 +617,7 @@ by application code.</p>
<a name="gtk-gl-area-set-error"></a><h3>gtk_gl_area_set_error ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_set_error (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code>const <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);</pre>
<em class="parameter"><code>const <span class="type">GError</span> *error</code></em>);</pre>
<p>Sets an error on the area which will be shown instead of the
GL rendering. This is useful in the <a class="link" href="GtkGLArea.html#GtkGLArea-create-context" title="The “create-context” signal"><span class="type">“create-context”</span></a>
signal if GL context creation fails.</p>
@ -637,7 +637,7 @@ signal if GL context creation fails.</p>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> a new <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to unset the error. </p></td>
<td class="parameter_description"><p>a new <span class="type">GError</span>, or <code class="literal">NULL</code> to unset the error. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
@ -648,7 +648,7 @@ signal if GL context creation fails.</p>
<hr>
<div class="refsect2">
<a name="gtk-gl-area-get-error"></a><h3>gtk_gl_area_get_error ()</h3>
<pre class="programlisting"><a href="../glib/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> *
<pre class="programlisting"><span class="returnvalue">GError</span> *
gtk_gl_area_get_error (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Gets the current error set on the <em class="parameter"><code>area</code></em>
.</p>
@ -669,7 +669,7 @@ gtk_gl_area_get_error (<em class="parameter"><code><a class="link" href="GtkGLAr
</div>
<div class="refsect3">
<a name="gtk-gl-area-get-error.returns"></a><h4>Returns</h4>
<p> the <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
<p>the <span class="type">GError</span> or <code class="literal">NULL</code>. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
@ -679,13 +679,13 @@ gtk_gl_area_get_error (<em class="parameter"><code><a class="link" href="GtkGLAr
<a name="gtk-gl-area-set-has-alpha"></a><h3>gtk_gl_area_set_has_alpha ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_set_has_alpha (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> has_alpha</code></em>);</pre>
<em class="parameter"><code><span class="type">gboolean</span> has_alpha</code></em>);</pre>
<p>If <em class="parameter"><code>has_alpha</code></em>
is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the buffer allocated by the widget will have
is <code class="literal">TRUE</code> the buffer allocated by the widget will have
an alpha channel component, and when rendering to the window the
result will be composited over whatever is below the widget.</p>
<p>If <em class="parameter"><code>has_alpha</code></em>
is <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> there will be no alpha channel, and the
is <code class="literal">FALSE</code> there will be no alpha channel, and the
buffer will fully replace anything below the widget.</p>
<div class="refsect3">
<a name="gtk-gl-area-set-has-alpha.parameters"></a><h4>Parameters</h4>
@ -703,7 +703,7 @@ buffer will fully replace anything below the widget.</p>
</tr>
<tr>
<td class="parameter_name"><p>has_alpha</p></td>
<td class="parameter_description"><p><a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to add an alpha component</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to add an alpha component</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@ -714,7 +714,7 @@ buffer will fully replace anything below the widget.</p>
<hr>
<div class="refsect2">
<a name="gtk-gl-area-get-has-alpha"></a><h3>gtk_gl_area_get_has_alpha ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_gl_area_get_has_alpha (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Returns whether the area has an alpha component.</p>
<div class="refsect3">
@ -734,8 +734,8 @@ gtk_gl_area_get_has_alpha (<em class="parameter"><code><a class="link" href="Gtk
</div>
<div class="refsect3">
<a name="gtk-gl-area-get-has-alpha.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>area</code></em>
has an alpha component, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>area</code></em>
has an alpha component, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
@ -744,9 +744,9 @@ has an alpha component, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><
<a name="gtk-gl-area-set-has-depth-buffer"></a><h3>gtk_gl_area_set_has_depth_buffer ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_set_has_depth_buffer (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> has_depth_buffer</code></em>);</pre>
<em class="parameter"><code><span class="type">gboolean</span> has_depth_buffer</code></em>);</pre>
<p>If <em class="parameter"><code>has_depth_buffer</code></em>
is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the widget will allocate and
is <code class="literal">TRUE</code> the widget will allocate and
enable a depth buffer for the target framebuffer. Otherwise
there will be none.</p>
<div class="refsect3">
@ -765,7 +765,7 @@ there will be none.</p>
</tr>
<tr>
<td class="parameter_name"><p>has_depth_buffer</p></td>
<td class="parameter_description"><p><a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to add a depth buffer</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to add a depth buffer</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@ -776,7 +776,7 @@ there will be none.</p>
<hr>
<div class="refsect2">
<a name="gtk-gl-area-get-has-depth-buffer"></a><h3>gtk_gl_area_get_has_depth_buffer ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_gl_area_get_has_depth_buffer (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Returns whether the area has a depth buffer.</p>
<div class="refsect3">
@ -796,8 +796,8 @@ gtk_gl_area_get_has_depth_buffer (<em class="parameter"><code><a class="link" hr
</div>
<div class="refsect3">
<a name="gtk-gl-area-get-has-depth-buffer.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>area</code></em>
has a depth buffer, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>area</code></em>
has a depth buffer, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
@ -806,9 +806,9 @@ has a depth buffer, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code
<a name="gtk-gl-area-set-has-stencil-buffer"></a><h3>gtk_gl_area_set_has_stencil_buffer ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_set_has_stencil_buffer (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> has_stencil_buffer</code></em>);</pre>
<em class="parameter"><code><span class="type">gboolean</span> has_stencil_buffer</code></em>);</pre>
<p>If <em class="parameter"><code>has_stencil_buffer</code></em>
is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the widget will allocate and
is <code class="literal">TRUE</code> the widget will allocate and
enable a stencil buffer for the target framebuffer. Otherwise
there will be none.</p>
<div class="refsect3">
@ -827,7 +827,7 @@ there will be none.</p>
</tr>
<tr>
<td class="parameter_name"><p>has_stencil_buffer</p></td>
<td class="parameter_description"><p><a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to add a stencil buffer</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to add a stencil buffer</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@ -838,7 +838,7 @@ there will be none.</p>
<hr>
<div class="refsect2">
<a name="gtk-gl-area-get-has-stencil-buffer"></a><h3>gtk_gl_area_get_has_stencil_buffer ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_gl_area_get_has_stencil_buffer (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Returns whether the area has a stencil buffer.</p>
<div class="refsect3">
@ -858,8 +858,8 @@ gtk_gl_area_get_has_stencil_buffer (<em class="parameter"><code><a class="link"
</div>
<div class="refsect3">
<a name="gtk-gl-area-get-has-stencil-buffer.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>area</code></em>
has a stencil buffer, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>area</code></em>
has a stencil buffer, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
@ -868,13 +868,13 @@ has a stencil buffer, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><co
<a name="gtk-gl-area-set-auto-render"></a><h3>gtk_gl_area_set_auto_render ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_set_auto_render (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> auto_render</code></em>);</pre>
<em class="parameter"><code><span class="type">gboolean</span> auto_render</code></em>);</pre>
<p>If <em class="parameter"><code>auto_render</code></em>
is <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the <a class="link" href="GtkGLArea.html#GtkGLArea-render" title="The “render” signal"><span class="type">“render”</span></a> signal will be
is <code class="literal">TRUE</code> the <a class="link" href="GtkGLArea.html#GtkGLArea-render" title="The “render” signal"><span class="type">“render”</span></a> signal will be
emitted every time the widget draws. This is the default and is
useful if drawing the widget is faster.</p>
<p>If <em class="parameter"><code>auto_render</code></em>
is <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> the data from previous rendering is kept
is <code class="literal">FALSE</code> the data from previous rendering is kept
around and will be used for drawing the widget the next time,
unless the window is resized. In order to force a rendering
<a class="link" href="GtkGLArea.html#gtk-gl-area-queue-render" title="gtk_gl_area_queue_render ()"><code class="function">gtk_gl_area_queue_render()</code></a> must be called. This mode is useful when
@ -906,7 +906,7 @@ the scene changes seldomly, but takes a long time to redraw.</p>
<hr>
<div class="refsect2">
<a name="gtk-gl-area-get-auto-render"></a><h3>gtk_gl_area_get_auto_render ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_gl_area_get_auto_render (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Returns whether the area is in auto render mode or not.</p>
<div class="refsect3">
@ -926,8 +926,8 @@ gtk_gl_area_get_auto_render (<em class="parameter"><code><a class="link" href="G
</div>
<div class="refsect3">
<a name="gtk-gl-area-get-auto-render.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>area</code></em>
is auto rendering, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>area</code></em>
is auto rendering, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
@ -936,8 +936,8 @@ is auto rendering, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code
<a name="gtk-gl-area-get-required-version"></a><h3>gtk_gl_area_get_required_version ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_get_required_version (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *major</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minor</code></em>);</pre>
<em class="parameter"><code><span class="type">gint</span> *major</code></em>,
<em class="parameter"><code><span class="type">gint</span> *minor</code></em>);</pre>
<p>Retrieves the required version of OpenGL set
using <a class="link" href="GtkGLArea.html#gtk-gl-area-set-required-version" title="gtk_gl_area_set_required_version ()"><code class="function">gtk_gl_area_set_required_version()</code></a>.</p>
<div class="refsect3">
@ -956,12 +956,12 @@ using <a class="link" href="GtkGLArea.html#gtk-gl-area-set-required-version" tit
</tr>
<tr>
<td class="parameter_name"><p>major</p></td>
<td class="parameter_description"><p> return location for the required major version. </p></td>
<td class="parameter_description"><p>return location for the required major version. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>minor</p></td>
<td class="parameter_description"><p> return location for the required minor version. </p></td>
<td class="parameter_description"><p>return location for the required minor version. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
@ -974,8 +974,8 @@ using <a class="link" href="GtkGLArea.html#gtk-gl-area-set-required-version" tit
<a name="gtk-gl-area-set-required-version"></a><h3>gtk_gl_area_set_required_version ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_set_required_version (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> major</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> minor</code></em>);</pre>
<em class="parameter"><code><span class="type">gint</span> major</code></em>,
<em class="parameter"><code><span class="type">gint</span> minor</code></em>);</pre>
<p>Sets the required version of OpenGL to be used when creating the context
for the widget.</p>
<p>This function must be called before the area has been realized.</p>
@ -1013,10 +1013,10 @@ for the widget.</p>
<a name="gtk-gl-area-set-use-es"></a><h3>gtk_gl_area_set_use_es ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gl_area_set_use_es (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>,
<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> use_es</code></em>);</pre>
<em class="parameter"><code><span class="type">gboolean</span> use_es</code></em>);</pre>
<p>Sets whether the <em class="parameter"><code>area</code></em>
should create an OpenGL or an OpenGL ES context.</p>
<p>You should check the capabilities of the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> before drawing
<p>You should check the capabilities of the <span class="type">GdkGLContext</span> before drawing
with either API.</p>
<div class="refsect3">
<a name="gtk-gl-area-set-use-es.parameters"></a><h4>Parameters</h4>
@ -1045,7 +1045,7 @@ with either API.</p>
<hr>
<div class="refsect2">
<a name="gtk-gl-area-get-use-es"></a><h3>gtk_gl_area_get_use_es ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_gl_area_get_use_es (<em class="parameter"><code><a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area</code></em>);</pre>
<p>Retrieves the value set by <a class="link" href="GtkGLArea.html#gtk-gl-area-set-use-es" title="gtk_gl_area_set_use_es ()"><code class="function">gtk_gl_area_set_use_es()</code></a>.</p>
<div class="refsect3">
@ -1065,8 +1065,8 @@ gtk_gl_area_get_use_es (<em class="parameter"><code><a class="link" href="GtkGLA
</div>
<div class="refsect3">
<a name="gtk-gl-area-get-use-es.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> should create an OpenGL ES context
and <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
<p> <code class="literal">TRUE</code> if the <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> should create an OpenGL ES context
and <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
@ -1126,11 +1126,11 @@ and <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal"
<a name="GtkGLArea.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GtkGLArea--auto-render"></a><h3>The <code class="literal">“auto-render”</code> property</h3>
<pre class="programlisting"> “auto-render” <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>If set to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the <a class="link" href="GtkGLArea.html#GtkGLArea-render" title="The “render” signal"><span class="type">“render”</span></a> signal will be emitted every time
<pre class="programlisting"> “auto-render” <span class="type">gboolean</span></pre>
<p>If set to <code class="literal">TRUE</code> the <a class="link" href="GtkGLArea.html#GtkGLArea-render" title="The “render” signal"><span class="type">“render”</span></a> signal will be emitted every time
the widget draws. This is the default and is useful if drawing the widget
is faster.</p>
<p>If set to <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> the data from previous rendering is kept around and will
<p>If set to <code class="literal">FALSE</code> the data from previous rendering is kept around and will
be used for drawing the widget the next time, unless the window is resized.
In order to force a rendering <a class="link" href="GtkGLArea.html#gtk-gl-area-queue-render" title="gtk_gl_area_queue_render ()"><code class="function">gtk_gl_area_queue_render()</code></a> must be called.
This mode is useful when the scene changes seldomly, but takes a long time
@ -1142,9 +1142,9 @@ to redraw.</p>
<hr>
<div class="refsect2">
<a name="GtkGLArea--context"></a><h3>The <code class="literal">“context”</code> property</h3>
<pre class="programlisting"> “context” <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> *</pre>
<p>The <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> used by the <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget.</p>
<p>The <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget is responsible for creating the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a>
<pre class="programlisting"> “context” <span class="type">GdkGLContext</span> *</pre>
<p>The <span class="type">GdkGLContext</span> used by the <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget.</p>
<p>The <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget is responsible for creating the <span class="type">GdkGLContext</span>
instance. If you need to render with other kinds of buffers (stencil,
depth, etc), use render buffers.</p>
<p>Flags: Read</p>
@ -1153,11 +1153,11 @@ depth, etc), use render buffers.</p>
<hr>
<div class="refsect2">
<a name="GtkGLArea--has-alpha"></a><h3>The <code class="literal">“has-alpha”</code> property</h3>
<pre class="programlisting"> “has-alpha” <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>If set to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the buffer allocated by the widget will have an alpha channel
<pre class="programlisting"> “has-alpha” <span class="type">gboolean</span></pre>
<p>If set to <code class="literal">TRUE</code> the buffer allocated by the widget will have an alpha channel
component, and when rendering to the window the result will be composited over
whatever is below the widget.</p>
<p>If set to <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> there will be no alpha channel, and the buffer will fully
<p>If set to <code class="literal">FALSE</code> there will be no alpha channel, and the buffer will fully
replace anything below the widget.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
@ -1166,8 +1166,8 @@ replace anything below the widget.</p>
<hr>
<div class="refsect2">
<a name="GtkGLArea--has-depth-buffer"></a><h3>The <code class="literal">“has-depth-buffer”</code> property</h3>
<pre class="programlisting"> “has-depth-buffer” <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>If set to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the widget will allocate and enable a depth buffer for the
<pre class="programlisting"> “has-depth-buffer” <span class="type">gboolean</span></pre>
<p>If set to <code class="literal">TRUE</code> the widget will allocate and enable a depth buffer for the
target framebuffer.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
@ -1176,8 +1176,8 @@ target framebuffer.</p>
<hr>
<div class="refsect2">
<a name="GtkGLArea--has-stencil-buffer"></a><h3>The <code class="literal">“has-stencil-buffer”</code> property</h3>
<pre class="programlisting"> “has-stencil-buffer” <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>If set to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the widget will allocate and enable a stencil buffer for the
<pre class="programlisting"> “has-stencil-buffer” <span class="type">gboolean</span></pre>
<p>If set to <code class="literal">TRUE</code> the widget will allocate and enable a stencil buffer for the
target framebuffer.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
@ -1186,10 +1186,10 @@ target framebuffer.</p>
<hr>
<div class="refsect2">
<a name="GtkGLArea--use-es"></a><h3>The <code class="literal">“use-es”</code> property</h3>
<pre class="programlisting"> “use-es” <a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>If set to <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the widget will try to create a <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> using
<pre class="programlisting"> “use-es” <span class="type">gboolean</span></pre>
<p>If set to <code class="literal">TRUE</code> the widget will try to create a <span class="type">GdkGLContext</span> using
OpenGL ES instead of OpenGL.</p>
<p>See also: <a href="../gdk4/GdkGLContext.html#gdk-gl-context-set-use-es"><code class="function">gdk_gl_context_set_use_es()</code></a></p>
<p>See also: <code class="function">gdk_gl_context_set_use_es()</code></p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
@ -1199,9 +1199,9 @@ OpenGL ES instead of OpenGL.</p>
<a name="GtkGLArea.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GtkGLArea-create-context"></a><h3>The <code class="literal">“create-context”</code> signal</h3>
<pre class="programlisting"><a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="returnvalue">GdkGLContext</span></a>*
<pre class="programlisting"><span class="returnvalue">GdkGLContext</span>*
user_function (<a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area,
<a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
<span class="type">gpointer</span> user_data)</pre>
<p>The ::create-context signal is emitted when the widget is being
realized, and allows you to override how the GL context is
created. This is useful when you want to reuse an existing GL
@ -1226,7 +1226,7 @@ of how the construction failed.</p>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store error information on failure. </p></td>
<td class="parameter_description"><p>location to store error information on failure. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
@ -1239,20 +1239,20 @@ of how the construction failed.</p>
</div>
<div class="refsect3">
<a name="GtkGLArea-create-context.returns"></a><h4>Returns</h4>
<p> a newly created <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a>;
<p>a newly created <span class="type">GdkGLContext</span>;
the <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> widget will take ownership of the returned value. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p>Flags: <a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkGLArea-render"></a><h3>The <code class="literal">“render”</code> signal</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area,
<a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> *context,
<a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
<span class="type">GdkGLContext</span> *context,
<span class="type">gpointer</span> user_data)</pre>
<p>The ::render signal is emitted every time the contents
of the <a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> should be redrawn.</p>
<p>The <em class="parameter"><code>context</code></em>
@ -1275,7 +1275,7 @@ and the buffers are painted to the window once the emission terminates.</p>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the <a href="../gdk4/GdkGLContext.html#GdkGLContext-struct"><span class="type">GdkGLContext</span></a> used by <em class="parameter"><code>area</code></em>
<td class="parameter_description"><p>the <span class="type">GdkGLContext</span> used by <em class="parameter"><code>area</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
@ -1289,10 +1289,10 @@ and the buffers are painted to the window once the emission terminates.</p>
</div>
<div class="refsect3">
<a name="GtkGLArea-render.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to stop other handlers from being invoked for the event.
<a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to propagate the event further.</p>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: <a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
<hr>
@ -1300,9 +1300,9 @@ and the buffers are painted to the window once the emission terminates.</p>
<a name="GtkGLArea-resize"></a><h3>The <code class="literal">“resize”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkGLArea.html" title="GtkGLArea"><span class="type">GtkGLArea</span></a> *area,
<a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width,
<a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height,
<a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
<span class="type">gint</span> width,
<span class="type">gint</span> height,
<span class="type">gpointer</span> user_data)</pre>
<p>The ::resize signal is emitted once when the widget is realized, and
then each time the widget is changed while realized. This is useful
in order to keep GL state up to date with the widget size, like for
@ -1342,12 +1342,12 @@ is emitted.</p>
</tbody>
</table></div>
</div>
<p>Flags: <a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25.1</div>
<hr>Generated by GTK-Doc V1.27</div>
</body>
</html>