<div class="blog">
<h1 id="NAME">
-Once in a while .... (set_event_filter)
+Getting people to use SDL Perl: Docs, API, and Distribution
</h1>
<div class="CONTENT">
-<div style="text-align: right;"><i> <br />
-Once in a while <br />
-Things just work! <br />
-</i><br />
-</div><br />
+<h4><i>The road so far</i></h4><br />
+Things have been busy but fruitful. Our two core modules are getting to be a bit more stable. <a href="http://matrix.cpantesters.org/?dist=Alien-SDL+1.403">Alien::SDL 1.405</a> is behaving well. This foundational stability will start to show results in <a href="http://matrix.cpantesters.org/?dist=SDL+2.405">SDL</a> too I believe. Most excitingly the main developer of frozen-bubble is reviewing our <a href="http://search.cpan.org/~kthakore/Games-FrozenBubble-2.202/lib/Games/FrozenBubble.pm">Games::FrozenBubble</a> port to CPAN. All good and well, but to keep this project going we need to improve.<br />
<br />
-So I have been hacking for a while on SDL::Events::set_event_filter. The code below is an example usage. The magic behind this is <a href="http://github.com/kthakore/SDL_perl/blob/1712fe42d62c2a3e382e6bf91366eb2ce9d2f5f4/src/Core/Events.xs">here</a> <br />
+<h4><i>Getting people to use SDL Perl</i></h4><br />
+After a long chat with a new SDL user on #sdl today, I realize we still have some way to go. Currently it seems we are lacking in a few areas. We can definitely use some feedback and help in these areas. <br />
<br />
-<pre><a href="" name="line1"> 1</a> <span style="color: #444444;">#!/usr/bin/perl -w
-<a href="" name="line2"> 2</a> </span><b>use</b> strict;
-<a href="" name="line3"> 3</a> <b>use</b> warnings;
-<a href="" name="line4"> 4</a> <b>use</b> SDL v2.3; <span style="color: #444444;">#Require the redesign branch
-<a href="" name="line5"> 5</a> </span><b>use</b> SDL::Video;
-<a href="" name="line6"> 6</a> <b>use</b> SDL::Event;
-<a href="" name="line7"> 7</a> <b>use</b> SDL::Events;
-<a href="" name="line8"> 8</a>
-<a href="" name="line9"> 9</a> SDL::init<span style="color: #4444ff;"><b>(</b></span>SDL_INIT_VIDEO<span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line10">10</a> <b>my</b> <span style="color: #2040a0;">$display</span> = SDL::Video::set_video_mode<span style="color: #4444ff;"><b>(</b></span>640,480,32, SDL_SWSURFACE <span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line11">11</a> <b>my</b> <span style="color: #2040a0;">$event</span> = SDL::Event-><b>new</b><span style="color: #4444ff;"><b>(</b></span><span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line12">12</a>
-<a href="" name="line13">13</a> <span style="color: #444444;">#This filters out all ActiveEvents
-<a href="" name="line14">14</a> </span><b>my</b> <span style="color: #2040a0;">$filter</span> = sub <span style="color: #4444ff;"><b>{</b></span>
-<a href="" name="line15">15</a> <b>my</b> <span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$e</span>, <span style="color: #2040a0;">$type</span><span style="color: #4444ff;"><b>)</b></span> = <span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$_</span><span style="color: #4444ff;"><b>[</b></span>0<span style="color: #4444ff;"><b>]</b></span>, <span style="color: #2040a0;">$_</span><span style="color: #4444ff;"><b>[</b></span>0<span style="color: #4444ff;"><b>]</b></span>->type<span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line16">16</a> <b>if</b><span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$type</span> == SDL_ACTIVEEVENT<span style="color: #4444ff;"><b>)</b></span><span style="color: #4444ff;"><b>{</b></span> <b>return</b> 0 <span style="color: #4444ff;"><b>}</b></span>
-<a href="" name="line17">17</a> <b>elsif</b><span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$type</span> == SDL_MOUSEBUTTONDOWN && <span style="color: #2040a0;">$e</span>->button_button == 1<span style="color: #4444ff;"><b>)</b></span><span style="color: #4444ff;"><b>{</b></span> <b>return</b> 0 <span style="color: #4444ff;"><b>}</b></span>
-<a href="" name="line18">18</a> <b>else</b> <span style="color: #4444ff;"><b>{</b></span> <b>return</b> 1; <span style="color: #4444ff;"><b>}</b></span>
-<a href="" name="line19">19</a> <span style="color: #4444ff;"><b>}</b></span>;
-<a href="" name="line20">20</a>
-<a href="" name="line21">21</a> SDL::Events::set_event_filter<span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$filter</span><span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line22">22</a>
-<a href="" name="line23">23</a> <b>while</b><span style="color: #4444ff;"><b>(</b></span>1<span style="color: #4444ff;"><b>)</b></span>
-<a href="" name="line24">24</a> <span style="color: #4444ff;"><b>{</b></span>
-<a href="" name="line25">25</a>
-<a href="" name="line26">26</a> SDL::Events::pump_events<span style="color: #4444ff;"><b>(</b></span><span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line27">27</a> <b>if</b><span style="color: #4444ff;"><b>(</b></span>SDL::Events::poll_event<span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$event</span><span style="color: #4444ff;"><b>)</b></span><span style="color: #4444ff;"><b>)</b></span>
-<a href="" name="line28">28</a> <span style="color: #4444ff;"><b>{</b></span>
-<a href="" name="line29">29</a>
-<a href="" name="line30">30</a> <b>if</b><span style="color: #4444ff;"><b>(</b></span> <span style="color: #2040a0;">$event</span>->type == SDL_ACTIVEEVENT<span style="color: #4444ff;"><b>)</b></span>
-<a href="" name="line31">31</a> <span style="color: #4444ff;"><b>{</b></span>
-<a href="" name="line32">32</a> <span style="color: brown;"><b>print</b></span> <span style="color: green;">"Hello Mouse!!!<span style="color: #77dd77;">\n</span>"</span> <b>if</b> <span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$event</span>->active_gain && <span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$event</span>->active_state == SDL_APPMOUSEFOCUS<span style="color: #4444ff;"><b>)</b></span> <span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line33">33</a> <span style="color: brown;"><b>print</b></span> <span style="color: green;">"Bye Mouse!!!<span style="color: #77dd77;">\n</span>"</span> <b>if</b> <span style="color: #4444ff;"><b>(</b></span>!<span style="color: #2040a0;">$event</span>->active_gain && <span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$event</span>->active_state == SDL_APPMOUSEFOCUS<span style="color: #4444ff;"><b>)</b></span> <span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line34">34</a> <span style="color: #4444ff;"><b>}</b></span>
-<a href="" name="line35">35</a> <b>if</b><span style="color: #4444ff;"><b>(</b></span> <span style="color: #2040a0;">$event</span>->type == SDL_MOUSEBUTTONDOWN<span style="color: #4444ff;"><b>)</b></span>
-<a href="" name="line36">36</a> <span style="color: #4444ff;"><b>{</b></span>
-<a href="" name="line37">37</a> <b>my</b> <span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$x</span>, <span style="color: #2040a0;">$y</span>, <span style="color: #2040a0;">$but</span> <span style="color: #4444ff;"><b>)</b></span> = <span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$event</span>->button_x, <span style="color: #2040a0;">$event</span>->button_y, <span style="color: #2040a0;">$event</span>->button_button<span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line38">38</a> <span style="color: brown;"><b>warn</b></span> <span style="color: green;">"<span style="color: #2040a0;">$but</span> CLICK!!! at <span style="color: #2040a0;">$x</span> and <span style="color: #2040a0;">$y</span> <span style="color: #77dd77;">\n</span>"</span>;
-<a href="" name="line39">39</a> <span style="color: #4444ff;"><b>}</b></span>
-<a href="" name="line40">40</a>
-<a href="" name="line41">41</a> <b>last</b> <b>if</b><span style="color: #4444ff;"><b>(</b></span><span style="color: #2040a0;">$event</span>->type == SDL_QUIT<span style="color: #4444ff;"><b>)</b></span>;
-<a href="" name="line42">42</a> <span style="color: #4444ff;"><b>}</b></span>
-<a href="" name="line43">43</a> <span style="color: #4444ff;"><b>}</b></span>
-<a href="" name="line44">44</a> SDL::quit<span style="color: #4444ff;"><b>(</b></span><span style="color: #4444ff;"><b>)</b></span>; </pre><pre> </pre><pre> </pre><pre>Tinker with $filter and look at perldoc lib/SDL/pods/Event.pod. </pre><pre> </pre><pre>Have fun,</pre><pre>--yapgh</pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-2301663122914111362?l=yapgh.blogspot.com' alt='' /></div>
-<p><a href="http://feedads.g.doubleclick.net/~a/e5FjkjzCKI5FggkvV6c3mlOMCG4/0/da"><img src="http://feedads.g.doubleclick.net/~a/e5FjkjzCKI5FggkvV6c3mlOMCG4/0/di" border="0" ismap="true"></img></a><br/>
-<a href="http://feedads.g.doubleclick.net/~a/e5FjkjzCKI5FggkvV6c3mlOMCG4/1/da"><img src="http://feedads.g.doubleclick.net/~a/e5FjkjzCKI5FggkvV6c3mlOMCG4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/YetAnotherPerlGameHackeryapgh/~4/nw1gIYSWG5M" height="1" width="1"/></div></div>
\ No newline at end of file
+<ul><li>Tutorials/Documentation<br />
+</li>
+
+<ul><li>We have more docs now on http://sdl.perl.org but they suck</li>
+<li>What type of tutorials do you think will be good for beginners?</li>
+
+<ul><li>A project start to finish?</li>
+<li>Individual tutorials for various topics?</li>
+<li>What needs to go in SDL::CookBook?</li>
+</ul></ul>
+<li>API sweetness</li>
+
+<ul><li>SDL Perl depends on distinct C libraries</li>
+
+<ul><li>This makes naming conventions, data formats different the SDL:: namespaces</li>
+<li>How do people design this stuff?</li>
+
+<ul><li>We are hackers and we just go do stuff but I think this needs some prior thought</li>
+<li>Any takers?</li>
+</ul></ul></ul>
+<li>Distribution</li>
+
+<ul><li>If SDL scripts can be packaged up simply for game developers to distribute their games it will be a big plus</li>
+
+<ul><li>One way is a Wx::Perl::Packer clone</li>
+<li>Another is a CPAN/Steam clone that game devs can upload games too and people can point and click download games? </li>
+</ul></ul></ul><div>If anyone wants to help in these areas please talk to us on sdl-devel@perl.org. </div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-7164362190686365958?l=yapgh.blogspot.com' alt='' /></div>
+<p><a href="http://feedads.g.doubleclick.net/~a/9LDtns437JWMVWJoUGIR6gCE1W0/0/da"><img src="http://feedads.g.doubleclick.net/~a/9LDtns437JWMVWJoUGIR6gCE1W0/0/di" border="0" ismap="true"></img></a><br/>
+<a href="http://feedads.g.doubleclick.net/~a/9LDtns437JWMVWJoUGIR6gCE1W0/1/da"><img src="http://feedads.g.doubleclick.net/~a/9LDtns437JWMVWJoUGIR6gCE1W0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/YetAnotherPerlGameHackeryapgh/~4/EXlozhjfhdo" height="1" width="1"/></div></div>
\ No newline at end of file