X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2Fblog-0025.html-inc;h=0de3c832cedb93b3d65e9876f3ff91874c42d50a;hb=a05e5d4499fb58198e463162d0385e8a156e1f03;hp=f91dff1776269b4a3e0285a0f542baaee90bd42f;hpb=ca0a3441dd72000cbbbb4be484b18d0d305fdb29;p=sdlgit%2FSDL-Site.git diff --git a/pages/blog-0025.html-inc b/pages/blog-0025.html-inc index f91dff1..0de3c83 100644 --- a/pages/blog-0025.html-inc +++ b/pages/blog-0025.html-inc @@ -1,28 +1,59 @@

-HackFest: Results +Once in a while .... (set_event_filter)

-
The beautiful sunset,
-
is no match for,
-
the ugly sunrise
+

+Once in a while
+Things just work!

-

Results

On Sunday we had a hackfest on #sdl irc.perl.org. This is what we got done.
-
-



-
  1. MacOSX build is working again. It's still rough but Tetris works on it now. dngor++
  2. -
  3. SDL::Tutorial::Tetris is on CPAN as v0.15. nferraz++
  4. -
  5. SDL Perl docs are a little better now. magnet++
  6. -
  7. Finally experimental Rect and Game::Rect are behaving. There is still more work needed in Game::Rect. Moreover there are more tests on the experimental release. garu++
  8. -
  9. Also POGL is working experimentally with SDL.
    -
  10. -
Hopefully I can get the first three results into the next release soon. The next release 2.2.3 will go up as a developmental release first. Also the experimental branch is going up as version 2_4.
-
-

Developers

All developers please tell me what to put you guys want to be put down as on the
-in the Docs for the SDL Perl Team section.
+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 here

---yapgh -


-

\ No newline at end of file +
 1 #!/usr/bin/perl -w
+ 2 use strict;
+ 3 use warnings;
+ 4 use SDL v2.3; #Require the redesign branch
+ 5 use SDL::Video;
+ 6 use SDL::Event;
+ 7 use SDL::Events;
+ 8 
+ 9 SDL::init(SDL_INIT_VIDEO);
+10 my $display = SDL::Video::set_video_mode(640,480,32, SDL_SWSURFACE );
+11 my  $event = SDL::Event->new();
+12 
+13 #This filters out all ActiveEvents
+14 my $filter = sub { 
+15      my ($e, $type) = ($_[0], $_[0]->type); 
+16      if($type == SDL_ACTIVEEVENT){ return 0 } 
+17      elsif($type == SDL_MOUSEBUTTONDOWN && $e->button_button == 1){ return 0 }
+18      else { return 1; }
+19       };
+20 
+21 SDL::Events::set_event_filter($filter);
+22 
+23 while(1)
+24 {
+25 
+26   SDL::Events::pump_events();
+27   if(SDL::Events::poll_event($event))
+28   {
+29 
+30   if(  $event->type == SDL_ACTIVEEVENT)
+31  {
+32  print "Hello Mouse!!!\n" if ($event->active_gain && ($event->active_state == SDL_APPMOUSEFOCUS) );
+33  print "Bye Mouse!!!\n" if (!$event->active_gain && ($event->active_state == SDL_APPMOUSEFOCUS) );
+34         }
+35   if( $event->type == SDL_MOUSEBUTTONDOWN)
+36    {
+37  my ($x, $y, $but ) = ($event->button_x, $event->button_y, $event->button_button);
+38  warn "$but CLICK!!! at $x and $y \n";
+39  }
+40 
+41       last if($event->type == SDL_QUIT);
+42   }
+43 }
+44 SDL::quit()
 
 
Tinker with $filter and look at perldoc lib/SDL/pods/Event.pod. 
 
Have fun,
--yapgh
+


+

\ No newline at end of file