<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog d&#039;alex6 &#187; opengl</title>
	<atom:link href="https://blog.developpez.com/alex6/pcategory/opengl/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/alex6</link>
	<description></description>
	<lastBuildDate>Thu, 12 Apr 2018 16:45:16 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Premier programme Open GL</title>
		<link>https://blog.developpez.com/alex6/p9164/vim/premier_programme_open_gl</link>
		<comments>https://blog.developpez.com/alex6/p9164/vim/premier_programme_open_gl#comments</comments>
		<pubDate>Thu, 29 Jul 2010 20:23:17 +0000</pubDate>
		<dc:creator><![CDATA[GMI3]]></dc:creator>
				<category><![CDATA[opengl]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Nous allons maintenant écrire un petit programme en C utilisant la librairie Open GL. Il est nécessaire pour cela d&#8217;installer quelques paquets. apt-get install libglut3-dev => librairie GLUT (GL Utility Toolkit) qui permet entre autres d&#8217;intéragir avec la souris, le clavier, etc&#8230; Ceci installera par dépendences la librairie OpenGL. apt-get install manpages-fr-dev => Documentation de [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Nous allons maintenant écrire un petit programme en C utilisant la librairie Open GL.<br />
Il est nécessaire pour cela d&rsquo;installer quelques paquets.</p>
<table>
<tr>
<td valign="top" width="40%"><code class="codecolorer text default"><span class="text">apt-get install libglut3-dev</span></code></td>
<td>  => librairie GLUT (GL Utility Toolkit) qui permet entre autres d&rsquo;intéragir avec la souris, le clavier, etc&#8230; Ceci installera par dépendences la librairie OpenGL.</td>
</tr>
<tr>
<td><code class="codecolorer text default"><span class="text">apt-get install manpages-fr-dev</span></code></td>
<td> => Documentation de la glibc en français</td>
</tr>
</table>
<p><span id="more-24"></span><br />
Nous utiliserons comme exemple le fichier <a href="http://garce.gti.free.fr/blog/test1.c">test1.c</a> qui est un programme en openGL.<br />
Lorsque nous ouvrons le fichier dans vim, il n&rsquo;y a par défaut aucune coloration syntaxique.<br />
Fort heureusement, la commande <code class="codecolorer text default"><span class="text">:syntax enable</span></code> nous facilite bien les choses car elle détecte le language utilisé. Pour activer cette option systématiquement, il suffit d&rsquo;ajouter la commande dans le fichier .vimrc de votre répertoire $HOME.</p>
<p>Nous obtenons ainsi l&rsquo;aperçu suivant :</p>
<p><img src="http://blog.developpez.com/media/vim_coloration_syntaxique_02.jpg" width="697" height="535" alt="Coloration syntaxique" /></p>
<p>On peut observer les fichiers d&rsquo;entêtes (fichiers .h) OpenGL inclus au début du fichier.</p>
<p>Passons maintenant à la compilation.<br />
Pour cela, tapez la commande :<br />
<code class="codecolorer text default"><span class="text">gcc test1.c &nbsp;-lGL -lglut -lGLU &nbsp;-lX11 -lm</span></code></p>
<p>Les options -l spécifient les librairies statiques à charger pour la compilation.</p>
<p>Sur certains systèmes Linux, il vous faudra peut-être préciser les 2 options suivantes :<br />
-I/usr/X11R6/include<br />
-L/usr/X11R6/lib</p>
<p>-I indique le répertoire des fichiers d&rsquo;entête (*.h)<br />
-L indique le répertoire des librairies (lib*.a)</p>
<p>A noter que sous Debian ces 2 options sont inutiles car les librairies X sont dans /usr/lib et les entêtes dans /usr/include.</p>
<p>Ceci nous produit donc le fichier a.out que nous pouvons exécuter :<br />
<img src="http://blog.developpez.com/media/premier_prog.jpg" width="520" height="540" alt="Premier programme OpenGL !" /></p>
<p>Vous aurez remarqué de suite que l&rsquo;exécution est trop rapide. Nous pouvons par conséquent ajouter un sleep qui permettra de temporiser à chaque cycle d&rsquo;affichage.</p>
<p>En tapant <code class="codecolorer text default"><span class="text">man 3 sleep</span></code>, vous tombez sur la doc de développement de la glibc.</p>
<p><img src="http://blog.developpez.com/media/man_sleep.jpg" width="697" height="352" alt="Manpage de sleep()" /></p>
<p>En regardant la signature de la fonction, on s&rsquo;aperçoit que le temps est exprimé en secondes entières (unsigned int).<br />
Fort heureusement, il existe une autre fonction usleep qui elle permet de faire en sleep mais en microsecondes.<br />
Il faudra donc comme indiqué dans la manpage ajouter l&rsquo;entête unistd.h.</p>
<p>Après avoir ajouté l&rsquo;entête unistd.h en début du fichier test1.c, vous devrez ajouter l&rsquo;appel à usleep au sein de la fonction myIdle().</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">void myIdle() <br />
{ <br />
&nbsp; usleep(10000); <br />
&nbsp; myAngle+=0.5; <br />
&nbsp; myAngle2+=0.25; <br />
&nbsp; glutPostRedisplay(); <br />
}</div></div>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
