Permalink
Browse files

[SDL2] Added PeepEvents/PollEvent functions

  • Loading branch information...
thefiddler committed Feb 17, 2014
1 parent 14d5301 commit 0c262cd5b200226ab9f3951b9868a2d4d5560cc4
Showing with 43 additions and 0 deletions.
  1. +43 −0 Source/OpenTK/Platform/SDL2/Sdl2.cs
@@ -350,11 +350,47 @@ public static string JoystickName(IntPtr joystick)
[DllImport(lib, CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_NumJoysticks", ExactSpelling = true)]
public static extern int NumJoysticks();
+ public static int PeepEvents(ref Event e, EventAction action, EventType min, EventType max)
+ {
+ unsafe
+ {
+ fixed (Event* pe = &e)
+ {
+ return PeepEvents(pe, 1, action, min, max);
+ }
+ }
+ }
+
+ public static int PeepEvents(Event[] e, int count, EventAction action, EventType min, EventType max)
+ {
+ if (e == null)
+ throw new ArgumentNullException();
+ if (count <= 0 || count > e.Length)
+ throw new ArgumentOutOfRangeException();
+
+ unsafe
+ {
+ fixed (Event *pe = e)
+ {
+ return PeepEvents(pe, count, action, min, max);
+ }
+ }
+ }
+
+ [SuppressUnmanagedCodeSecurity]
+ [DllImport(lib, CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_PeepEvents", ExactSpelling = true)]
+ unsafe static extern int PeepEvents(Event* e, int count, EventAction action, EventType min, EventType max);
+
+
[SuppressUnmanagedCodeSecurity]
[DllImport(lib, CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_PixelFormatEnumToMasks", ExactSpelling = true)]
public static extern bool PixelFormatEnumToMasks(uint format, out int bpp,
out uint rmask, out uint gmask, out uint bmask, out uint amask);
+ [SuppressUnmanagedCodeSecurity]
+ [DllImport(lib, CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_PollEvent", ExactSpelling = true)]
+ public static extern int PollEvent(out Event e);
+
[SuppressUnmanagedCodeSecurity]
[DllImport(lib, CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_PumpEvents", ExactSpelling = true)]
public static extern void PumpEvents();
@@ -589,6 +625,13 @@ enum ContextProfileFlags
ES = 0x0004
}
+ enum EventAction
+ {
+ Add,
+ Peek,
+ Get
+ }
+
enum EventState
{
Query = -1,

0 comments on commit 0c262cd

Please sign in to comment.