<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[TUTO] SDL 2.0]]></title><description><![CDATA[<p dir="auto">Bonjour à tous,</p>
<p dir="auto">Ce tuto a pour but de vous apprendre les bases de la bibliotheque SDL,</p>
<p dir="auto">et plus précisément la <strong>2.0</strong>.</p>
<p dir="auto">Les exemples de codes seront rédigés en C car c'est le language dans lequel est écris la SDL,</p>
<p dir="auto">bien que la SDL suporte le C++ et dispose de bindings pour le C#, le Pascal et le Python.</p>
<p dir="auto"><strong>j'imagine donc que vous maitrisez votre langage pour la suite.</strong></p>
<p dir="auto"><strong>Code minimal</strong></p>
<p dir="auto">Pour tester l'installation et expliquer les premières fonctions voici un code de base.</p>
<pre><code>int main (int argc, char *argv[])
{
    SDL_Init (SDL_INIT_VIDEO);

    SDL_Window *screen;
    SDL_Renderer *renderer;

    screen = SDL_CreateWindow("tuto", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_RESIZABLE);
    renderer = SDL_CreateRenderer(screen, -1, SDL_RENDERER_ACCELERATED);

    SDL_RenderPresent(renderer);
    SDL_Delay(2000);

    SDL_Quit();
    return 0;
}
</code></pre>
<p dir="auto"><strong>SDL_Init (SDL_INIT_VIDEO);</strong></p>
<p dir="auto">Fonction initialisant la sdl.</p>
<blockquote>
<p dir="auto">int SDL_Init(Uint32 flags)</p>
</blockquote>
<p dir="auto"><strong>retour :</strong></p>
<p dir="auto">retourne une valeur négative en cas d'erreur.</p>
<p dir="auto"><strong>paramètres :</strong></p>
<p dir="auto"><strong>SDL_INIT_TIMER</strong>                           sous-système temps</p>
<p dir="auto"><strong>SDL_INIT_AUDIO</strong>                          sous-système audio</p>
<p dir="auto"><strong>SDL_INIT_VIDEO</strong>                          sous-système video</p>
<p dir="auto"><strong>SDL_INIT_JOYSTICK</strong>                    sous-système pour joystick</p>
<p dir="auto"><strong>SDL_INIT_HAPTIC</strong>                        sous-système pour le tactile</p>
<p dir="auto"><strong>SDL_INIT_GAMECONTROLLER</strong>    sous-système mannette de jeu</p>
<p dir="auto"><strong>SDL_INIT_EVENTS</strong>                       sous-système pour les évènement</p>
<p dir="auto"><strong>SDL_INIT_EVERYTHING</strong>               tout les sous-système au dessus</p>
<p dir="auto"><strong>SDL_INIT_NOPARACHUTE</strong>           ne prend pas en compte les signaux comme SIGSEGV SIGPIPE etc <strong>DANGEREUX</strong></p>
<p dir="auto"><strong>SDL_CreateWindow("tuto", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_RESIZABLE);</strong></p>
<p dir="auto">fonction créant la fenêtre de notre programme.</p>
<blockquote>
<p dir="auto">SDL_Window* SDL_CreateWindow(const char* title, int x, int y, int w, int h, Uint32 flags)</p>
</blockquote>
<p dir="auto"><strong>retour :</strong></p>
<p dir="auto">retourne un pointeur vers la structure "SDL_Window" nouvellement créée.</p>
<p dir="auto"><strong>paramètres :</strong></p>
<ol>
<li>le titre de la fenêtre</li>
<li>le point x de la fenêtre ou "SDL_WINDOWPOS_CENTERED" et "SDL_WINDOWPOS_UNDEFINED"</li>
<li>le point y de la fenêtre ou "SDL_WINDOWPOS_CENTERED" et "SDL_WINDOWPOS_UNDEFINED"</li>
<li>la taille horizontale de la fenêtre</li>
<li>la taille verticale de la fenêtre</li>
<li>encore des flags que voici :</li>
</ol>
<p dir="auto"><strong>SDL_WINDOW_FULLSCREEN</strong>                      plein écran</p>
<p dir="auto"><strong>SDL_WINDOW_FULLSCREEN_DESKTOP</strong>     plein écran a la résolution du bureau</p>
<p dir="auto"><strong>SDL_WINDOW_OPENGL</strong>                               fenêtre de contexte pour OpenGL</p>
<p dir="auto"><strong>SDL_WINDOW_SHOWN</strong>                                fenêtre visible</p>
<p dir="auto"><strong>SDL_WINDOW_HIDDEN</strong>                                fenêtre invisible</p>
<p dir="auto"><strong>SDL_WINDOW_BORDERLESS</strong>                      fenêtre sans contour</p>
<p dir="auto"><strong>SDL_WINDOW_RESIZABLE</strong>                           fenêtre redimensionnable</p>
<p dir="auto"><strong>SDL_WINDOW_MINIMIZED</strong>                             fenêtre minimisée</p>
<p dir="auto"><strong>SDL_WINDOW_MAXIMIZED</strong>                            fenêtre agrandie</p>
<p dir="auto"><strong>SDL_WINDOW_INPUT_GRABBED</strong>       window has grabbed input focus  :huh:</p>
<p dir="auto"><strong>SDL_WINDOW_INPUT_FOCUS</strong>            window has input focus :huh:</p>
<p dir="auto"><strong>SDL_WINDOW_MOUSE_FOCUS</strong>          window has mouse focus :huh:</p>
<p dir="auto"><strong>SDL_WINDOW_FOREIGN</strong>                               pas de fenêtre</p>
<p dir="auto"><strong>SDL_WINDOW_ALLOW_HIGHDPI</strong>                  fenêtre en mode High-DPI (SDL2.0.1 ou plus)</p>
<p dir="auto"><strong>SDL_CreateRenderer(screen, -1, SDL_RENDERER_ACCELERATED);</strong></p>
<p dir="auto">Créer un renderer (le renderer est la vue, la surface que l'on va afficher à l'écran).</p>
<blockquote>
<p dir="auto">SDL_Renderer* SDL_CreateRenderer(SDL_Window* window, int index, Uint32 flags)</p>
</blockquote>
<p dir="auto"><strong>retour :</strong></p>
<p dir="auto">retourne un pointeur vers la structure "SDL_Renderer" nouvellement créée.</p>
<p dir="auto"><strong>paramètres:</strong></p>
<ol>
<li>le pointeur vers la structure SDL_Window créée précédemment.</li>
<li>j'aurais aimé vous expliquer mais malheureusement aucune doc ou tuto n'est clair là dessus du coup, ne vous en occupez pas et donnez -1 comme argument.</li>
<li>ce sont encore des flags, vous pouvez en mettre plusieurs.</li>
</ol>
<p dir="auto"><strong>SDL_RENDERER_SOFTWARE</strong>      rendu calculé par le CPU</p>
<p dir="auto"><strong>SDL_RENDERER_ACCELERATED</strong>    rendu calculé par le GPU <strong>(grosse nouveauté de la SDL2.0)</strong></p>
<p dir="auto"><strong>SDL_RENDERER_PRESENTVSYNC</strong>    rendu synchronisé avec le taux de rafraichissement de votre écran</p>
<p dir="auto"><strong>SDL_RENDERER_TARGETTEXTURE</strong>  rendu pour texture</p>
<p dir="auto"><strong>SDL_RenderPresent(renderer);</strong></p>
<p dir="auto">fonction affichant le rendu sur l'écran</p>
<blockquote>
<p dir="auto">void SDL_RenderPresent(SDL_Renderer* renderer)</p>
</blockquote>
<p dir="auto"><strong>paramètre :</strong></p>
<ol>
<li>le pointeur vers la structure SDL_Renderer créée précédemment.</li>
</ol>
<p dir="auto"><strong>SDL_Delay(2000);</strong></p>
<p dir="auto">fonction qui met le programme en pause pendant x milisecondes</p>
<blockquote>
<p dir="auto">void SDL_Delay(Uint32 ms)</p>
</blockquote>
<p dir="auto"><strong>paramètre:</strong></p>
<ol>
<li>le nombre de milisecondes</li>
</ol>
<p dir="auto"><strong>SDL_Quit();</strong></p>
<p dir="auto">fonction qui ferme la sdl</p>
<blockquote>
<p dir="auto">void SDL_Quit(void)</p>
</blockquote>
<p dir="auto"><strong>explication :</strong></p>
<p dir="auto">si vous lancez ce code, vous devriez avoir une fenêtre noire pendant 2 secondes.</p>
<p dir="auto">c'est tout à fait normal.</p>
<p dir="auto"><strong>à bientôt <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></strong></p>
]]></description><link>http://new.melinyel.net/topic/595/tuto-sdl-20</link><generator>RSS for Node</generator><lastBuildDate>Thu, 21 May 2026 19:28:49 GMT</lastBuildDate><atom:link href="http://new.melinyel.net/topic/595.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Apr 2014 22:03:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Mon, 30 Jun 2014 01:17:30 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">et qu'est-ce qu'il m'apportera ? a part un accès plus bas niveau.</p>
</blockquote>
<p dir="auto">La SDL Bypasse OpenGL pour en faire de la 2D (OpenGL permet aussi de faire de la 3D), en utilisant la SDL en temps que fenetrage, tu peux donc faire de la 3D.</p>
]]></description><link>http://new.melinyel.net/post/8875</link><guid isPermaLink="true">http://new.melinyel.net/post/8875</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Mon, 30 Jun 2014 01:17:30 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Fri, 27 Jun 2014 12:53:39 GMT]]></title><description><![CDATA[<p dir="auto">Très bon tutoriel pour passer de la SDL 1.2 à la SDL 2.0 <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">Je vais lire le second.</p>
]]></description><link>http://new.melinyel.net/post/8819</link><guid isPermaLink="true">http://new.melinyel.net/post/8819</guid><dc:creator><![CDATA[Alemort]]></dc:creator><pubDate>Fri, 27 Jun 2014 12:53:39 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sat, 31 May 2014 18:25:04 GMT]]></title><description><![CDATA[<p dir="auto">et qu'est-ce qu'il m'apportera ? a part un accès plus bas niveau.</p>
]]></description><link>http://new.melinyel.net/post/8180</link><guid isPermaLink="true">http://new.melinyel.net/post/8180</guid><dc:creator><![CDATA[cegdd]]></dc:creator><pubDate>Sat, 31 May 2014 18:25:04 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sat, 31 May 2014 18:03:05 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">Je dis c'est plus rigolo, pas dans le sens c'est plus haut niveau, j'ai trouvé ça plus sympa à utiliser, même si sdl est plus accesible quand tu commence.</p>
</blockquote>
<p dir="auto">Je me suis mal exprimé, je veux dire qu'avec de la SDL, tu peux gérer les fenetres pour ajouter OpenGL (puisque SDL utilise OpenGL, alors tu peux appliquer OpenGL sur SDL <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> ).</p>
<p dir="auto">OpenGL est un simple outil de calcul, ce n'est pas lui qui fait le fenetrage <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
]]></description><link>http://new.melinyel.net/post/8179</link><guid isPermaLink="true">http://new.melinyel.net/post/8179</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sat, 31 May 2014 18:03:05 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sat, 31 May 2014 11:02:34 GMT]]></title><description><![CDATA[<p dir="auto">Je dis c'est plus rigolo, pas dans le sens c'est plus haut niveau, j'ai trouvé ça plus sympa à utiliser, même si sdl est plus accesible quand tu commence.</p>
]]></description><link>http://new.melinyel.net/post/8175</link><guid isPermaLink="true">http://new.melinyel.net/post/8175</guid><dc:creator><![CDATA[Tiphedor]]></dc:creator><pubDate>Sat, 31 May 2014 11:02:34 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sat, 31 May 2014 05:47:23 GMT]]></title><description><![CDATA[<p dir="auto">OpenGL est encore plus bas niveau, puisque la SDL se base sur openGL. (On peut utiliser la SDL uniquement pour du fenêtrage OpenGL d'ailleurs!)</p>
]]></description><link>http://new.melinyel.net/post/8171</link><guid isPermaLink="true">http://new.melinyel.net/post/8171</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sat, 31 May 2014 05:47:23 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Fri, 30 May 2014 22:44:05 GMT]]></title><description><![CDATA[<p dir="auto">j'ai beaucoup pensé à apprendre OpenGl, mais j'ai pas trouvé assez d'arguments valable ^^</p>
<p dir="auto">tu peux me dire ce que tu en pense ?</p>
]]></description><link>http://new.melinyel.net/post/8168</link><guid isPermaLink="true">http://new.melinyel.net/post/8168</guid><dc:creator><![CDATA[cegdd]]></dc:creator><pubDate>Fri, 30 May 2014 22:44:05 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Fri, 30 May 2014 10:48:29 GMT]]></title><description><![CDATA[<p dir="auto">La SDL c'est bien (surtout la V2), mais ça reste du bon gros bas niveau, OpenGL c'est plus rigolo ! :3</p>
]]></description><link>http://new.melinyel.net/post/8159</link><guid isPermaLink="true">http://new.melinyel.net/post/8159</guid><dc:creator><![CDATA[Tiphedor]]></dc:creator><pubDate>Fri, 30 May 2014 10:48:29 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Fri, 30 May 2014 05:40:36 GMT]]></title><description><![CDATA[<p dir="auto">Le rayman me semble plus marrant <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>http://new.melinyel.net/post/8158</link><guid isPermaLink="true">http://new.melinyel.net/post/8158</guid><dc:creator><![CDATA[Droby]]></dc:creator><pubDate>Fri, 30 May 2014 05:40:36 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Thu, 29 May 2014 22:31:07 GMT]]></title><description><![CDATA[<p dir="auto">pour la suite je vais présenter comment on affiche une image, (avec transparence, échelle et rotation) mais j'aimerais éviter la gestion des événements pour le moment donc que préféré-vous ?</p>
<ul>
<li>un rayman en sprite animé qui bouge de gauche a droite de l'écran indéfiniment (<a href="https://www.youtube.com/watch?v=fTFRiKdBPec" rel="nofollow ugc">https://www.youtube.com/watch?v=fTFRiKdBPec</a>)</li>
<li>un chronomètre a aiguille</li>
</ul>
<p dir="auto">si vous avez d'autre idée ...</p>
]]></description><link>http://new.melinyel.net/post/8155</link><guid isPermaLink="true">http://new.melinyel.net/post/8155</guid><dc:creator><![CDATA[cegdd]]></dc:creator><pubDate>Thu, 29 May 2014 22:31:07 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sun, 04 May 2014 10:57:15 GMT]]></title><description><![CDATA[<p dir="auto">Merci pour le tutoriel <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>http://new.melinyel.net/post/6927</link><guid isPermaLink="true">http://new.melinyel.net/post/6927</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Sun, 04 May 2014 10:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Tue, 29 Apr 2014 16:27:04 GMT]]></title><description><![CDATA[<p dir="auto">J'ai toujours utilisé la version précédente, il serait temps que je m'y mette également. <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>http://new.melinyel.net/post/6580</link><guid isPermaLink="true">http://new.melinyel.net/post/6580</guid><dc:creator><![CDATA[Azad]]></dc:creator><pubDate>Tue, 29 Apr 2014 16:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sat, 26 Apr 2014 19:28:16 GMT]]></title><description><![CDATA[<p dir="auto">Dès que j'ai du temps j'essaye la SDL (not sql*) 2.0 <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
]]></description><link>http://new.melinyel.net/post/6487</link><guid isPermaLink="true">http://new.melinyel.net/post/6487</guid><dc:creator><![CDATA[Droby]]></dc:creator><pubDate>Sat, 26 Apr 2014 19:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sat, 26 Apr 2014 18:17:10 GMT]]></title><description><![CDATA[<p dir="auto"><strong>Message automatique</strong></p>
<p dir="auto">Le sujet a été déplacé de « [Informatique](&lt;<em><strong>base_url</strong></em>&gt;/index.php/forum/51-informatique/) → [Autres / Divers / Découvertes](&lt;<em><strong>base_url</strong></em>&gt;/index.php/forum/105-autres-divers-d%C3%A9couvertes/) » to « [Programmation](&lt;<em><strong>base_url</strong></em>&gt;/index.php/forum/38-programmation/) → [C](&lt;<em><strong>base_url</strong></em>&gt;/index.php/forum/43-c/) ».</p>
]]></description><link>http://new.melinyel.net/post/6484</link><guid isPermaLink="true">http://new.melinyel.net/post/6484</guid><dc:creator><![CDATA[Azad]]></dc:creator><pubDate>Sat, 26 Apr 2014 18:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to [TUTO] SDL 2.0 on Sat, 26 Apr 2014 18:16:10 GMT]]></title><description><![CDATA[<p dir="auto">Très très bon tutoriel, titre modifié à ta demande. <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /><br />
+1 point de rep.</p>
]]></description><link>http://new.melinyel.net/post/6483</link><guid isPermaLink="true">http://new.melinyel.net/post/6483</guid><dc:creator><![CDATA[Azad]]></dc:creator><pubDate>Sat, 26 Apr 2014 18:16:10 GMT</pubDate></item></channel></rss>