The mask part of an XIEventMask struct is actually not a pointer to an
integer containing the mask, but rather to an array of bytes each
holding 8 bits of the mask, with the first byte holding bit 0-7.
Therefore the old code would only work on little endian arches.
Allows multiple calls to Write to build up one line of text. Splits on
new line characters even in Write. Only places tabs if line is not
otherwise empty.
Cleaning up old C header code from convert, we'll just deal with Khronos
XML files now. If there's a need for parsing C headers we should do that
as a separate tool that either parses and generates the OpenTK XML specs
directly generates Khronos XML specs that can then be parsed by Convert.
Adds eglQuerySurfacePointerANGLE and a number of ANGLE related
constants.
Add eglGetPlatformDisplayEXT, eglCreatePlatformWindowSurfaceEXT and
eglCreatePlatformPixmapSurfaceEXT from EGL_EXT_platform_base.
I was hoping someone else on the project had OSX access but that's looking unlikely. The changes look fairly benign so I'm just going to merge this in. Move fast and break things right :)
Khronos stopped supporting .spec files in 2013. They're now over a year
old without support. As such it's not worth us continuing to support
them either.
Adds properties to KeyboardState, MouseState, JoystickState and GamePadState
(GamePadButtons), to see if any key or button is down. This should be faster
than iterating over all the public IsDown properties as we can make use of the
internal bit fields.
GamePadButtons uses IsButtonPressed rather than IsButtonDown like the others as
it more closely matches it's current interface (no down methods).
If the legacy keyboard device receives a key down event with IsRepeat set it
will only raise it's own key down event if it's KeyRepeat field is set to true.
This is as documented, regression casused by refactoring. Fixes issue #201.
Also change the GameWindowState example to show setting of KeyRepeat to true
and false and how that changes the event counts for the legacy and new keyboard
devices.
When running under NUnit GetEntryAssembly returns null. In this case we instead
search through the AppDomain for an assembly that matches the AppDomain name.