def self.PeepEvents( events, action, mask )
case action
when ADDEVENT
numevents = events.size
mp = FFI::Buffer.new( SDL::Event, numevents )
events.each_with_index do |ev, i|
mp[i].put_bytes( 0, ev.pointer.get_bytes(0, ev.size) )
end
return __SDL_PeepEvents( mp, numevents, action, mask )
when PEEKEVENT, GETEVENT
numevents = events.to_i
mp = FFI::Buffer.new( SDL::Event, numevents )
n = __SDL_PeepEvents( mp, numevents, action, mask )
return nil if( n == -1 )
events = []
n.times do |i|
events << Event.new( mp[i] ).unwrap
end
return events
end
end