The Open Toolkit 1.1.1
15 March 2014

http://www.opentk.com
https://github.com/opentk/opentk
https://www.nuget.org/packages/OpenTK/


[Overview]

This is the second stable release for OpenTK 1.1. It fixes various reported issues and synchronizes the OpenGL and OpenGL ES API with the March 2014 Khronos specifications.

Changelog:
1. new OpenGL extensions:
   - INTEL_performance_query
2. Debug builds will now throw exceptions on OpenGL errors (thanks Frassle!)
3. OpenGL documentation tooltips now report expected array lengths (thanks Frassle!)
4. OpenGL documentation is now generated from the new docbook 5 API reference
3. OpenGL ES now works on more platforms, including Android
4. keyboard events now report Alt, Ctrl, Shift key states
5. GameWindow.Run() now respects TargetRenderFrequency setting
6. GLControl now works on Mac OS X (thanks Sappharad!)
7. external contexts no longer require an explicit call to Toolkit.Init()
8. Joysticks now correctly report hat position on Windows
9. Joysticks now correctly report +y as up and -y as down

OpenTK 1.1.1 is backwards compatible with 1.1.0. Users of previous versions are encouraged to upgrade.

Visit http://www.opentk.com for the latest news and information on the Open Toolkit library.



[Resolved issues]

Visit the following page for a complete list:
- https://github.com/opentk/opentk/issues?milestone=2&page=1&state=closed



[Known issues]

- [all] Keyboard API exposes ushort parameter.

- [SDL2] does not support OpenTK.GLControl.

- [Mac/Carbon] does not support Retina resolutions. Please use the SDL2 backend instead.

- [Mac/Carbon] does not support OpenGL 3.x/4.x. Please use the SDL2 backend instead.



[Report an issue]

If you encounter an issue with OpenTK, please report it at https://github.com/opentk/opentk/issues

Don't forget to mention your operating system and GPU! If possible, try to attach a small, self-contained test case that reproduces the bug.



[API compatibility]

OpenTK 1.1.1 is backwards compatible with 1.1.0.

OpenTK 1.1.0 is not backwards compatible with 1.0. Most projects will be able to upgrade without any modifications. Projects using the following signatures will have to implement the suggested changes:

Namespace OpenTK.Graphics.OpenGL
Change signature:
- GL.MultiDrawArrays (`out` -> `ref`)
- GL.Amd.DeletePerfMonitors (`out` -> `ref`)

Change signature (may cause crash): 
- GL.Apple.ObjectPurgeable (returns `AppleObjectPurgeable` instead of `IntPtr`)
- GL.Ext.SeparableFilter2D
- GL.Ibm.EdgeFlagPointerList (`bool[]` -> `bool*[]`)
- GL.NV.TransformFeedbackVaryings (`string[]` -> `int[]`)

Change return type:
- GL.WaitSync (returns `WaitSyncFlags` instead of `ArbSync`)


Namespace OpenTK.Graphics.ES11
Change return type:
- GL.GetError (`ErrorCode` instead of `All`)

Change `ref` parameters to `out`:
- GL.GenBuffers
- GL.GenTextures
- GL.GetBoolean
- GL.GetBufferParameter
- GL.GetClipPlane
- GL.GetClipPlanex
- GL.GetFixed
- GL.GetFloat
- GL.GetInteger
- GL.GetLight
- GL.GetLightx
- GL.GetMaterial
- GL.GetMaterialx
- GL.GetTexEnv
- GL.GetTexEnvx
- GL.GetTexParameter
- GL.GetTexParameterx
- GL.Oes.GenFramebuffers
- GL.Oes.GetClipPlane
- GL.Oes.GetClipPlanex
- GL.Oes.GetFixed
- GL.Oes.GetFramebufferAttachmentParameter
- GL.Oes.GetLightx
- GL.Oes.GetMaterialx
- GL.Oes.GetRenderbufferParameter
- GL.Oes.GetTexEnvx
- GL.Oes.GetTexGen
- GL.Oes.GetTexGenx
- GL.Oes.GetTexParameterx
- GL.Oes.QueryMatrixx
- GL.NV.GenFences
- GL.NV.GetFence

Change namespace:
- GL.ClipPlanefIMG -> GL.Img.ClipPlane
- GL.DisableDriverControlQCOM -> GL.Qcom.DisableDriverControl


Namespace OpenTK.Graphics.ES20.GL
Change signature (may cause crash):
- GL.NV.GetFence now takes three parameters instead of two

Change `ref` parameters to `out`:
- GL.GetActiveAttrib
- GL.GetActiveUniform
- GL.GetAttachedShaders
- GL.GetProgramInfoLog
- GL.GetShaderInfoLog
- GL.GetShaderSource
- GL.Amd.GetPerfMonitorCounterData
- GL.Amd.GetPerfMonitorCounters
- GL.Amd.GetPerfMonitorCounterString
- GL.Amd.GetPerfMonitorGroup
- GL.Amd.GetPerfMonitorGroupString
- GL.Amd.SelectPerfMonitorCounters

Change namespace:
- GL.DisableDriverControlQCOM -> GL.Qcom.DisableDriverControl
- GL.GetDriverControlsQCOM -> GL.Qcom.GetDriverControls
- GL.GetDriverControlStringQCOM -> GL.Qcom.GetDriverControlString
