OpenTK v4.0.0 Release Notes

Release Date: 2020-10-02 // over 3 years ago
  • ๐Ÿš€ Huge thanks and congratulations to the entire OpenTK Community for getting this release together.
    Key changes:
    ๐Ÿ‘ Full support for .Net Core 3.1
    Brand new GLFW-based windowing system
    Brand new GLFW-based input system
    โœ‚ Removed all platform-specific backends (and fixed every xplat bug!)
    ๐ŸŽ Math library performance improvements and fixes
    All new OpenAL bindings
    All new OpenCL Bindings
    ๐Ÿ“ฆ Total restructure of all packages into a modular system with a number of packages. The OpenTK package is now a metapackage that will automatically download all of these for you.
    OpenTK 4.0.0 is entirely MIT licensed.
    ๐ŸŒฒ Full Log:
    ๐Ÿ›  Input fixes (@HughPH)
    ๐Ÿ”— Link to the tutorial in the package description.
    ๐Ÿ›  Fix for broken delegates (@HughPH)
    Significant rework & improvements to input. (Massive Thanks to @Phyyl, @HughPH and @NogginBops)
    ๐Ÿ›  Fixes to OpenAL Bindings (@NogginBops)
    General Math improvements (@NogginBops)
    โž• Added OpenCL Bindings (Huge thanks to @NepNet)
    ๐Ÿ›  Fix opentk.redist.glfw version warnings (@jvbsl)
    โž• Add support for window-level multisampling (@jvbsl)
    ๐Ÿ‘ Allow null delegates for GLFW callbacks (@jvbsl)
    โž• Add new API to get/set from GLFW window/context attributes (@jvbsl)
    โž• Add vulkan surface creation (@jvbsl)
    ๐Ÿ›  Fix bindings generator for net2.1
    GLFW Native Access bindings. (@RedImp1470 @NogginBops)
    ๐Ÿ›  Fixed normalization in Vector3.Unproject (@burnss9)
    General windowing improvements and new Graphics Context API. (@NogginBops)
    ๐Ÿ‘‰ Use correct function in SetCharModsCallback (@jvbsl)
    Return namespaces to the glorious OpenTK (thanks @glopes)
    Simplified OpenAL loading + add more extensions (@NogginBops)
    ๐Ÿ›  Fixed initial focused inconsistency between Windows and Linux(X11) (@jvbsl)
    ๐Ÿ‘Œ Improved and fixed GLFW binary loading (@jvbsl)
    ๐Ÿ‘Œ Improved mono compat (@jvbsl)
    ๐Ÿ›  Fixed GetLibraryName for iOS platform (thanks @Grizley56)
    ๐Ÿ›  Fixed InputAction for getting Joystick Buttons from GLFW (thanks @HughPH)
    ๐Ÿ›  Fixes reference conditions
    ๐Ÿ’พ Save Size property value to _size field (thanks @devel0)
    โšก๏ธ Update build.fsx.lock (thanks @CallumDev)
    Vector3.Unproject returning incorrect result (thanks @leezer3)
    Incorrect parameter order in QuaternionD constructor (thanks @leezer3)
    Capslock value not exposed (thanks @KinsonDigital)
    vector transforms
    ๐Ÿ”’ Start of input mode setup for caps lock (thanks @KinsonDigital)
    ๐Ÿ‘‰ Use in parameters instead of ref (thanks @cryovat)
    OpenTK now includes OPENAL! (Biggest thanks to @NogginBops)
    โž• Added check for invalid keys in window key callback (Thanks @Phyyl)
    ๐Ÿ›  Fix rounding errors on tests
    โž• Add individual project descriptions
    โž• Add openAL to the build sequence.
    โž• Added PositiveInfinity and NegativeInfinity to vector structs (Thanks @arakis)
    ๐Ÿ›  Fixed ClientSize not getting updated in OnResize (Thanks @Phyyl)
    ๐Ÿ›  Fix automatic bindings initialization for GL2 (Thanks @Phyyl)
    โž• Add framework specification to paket files. (Thanks @frederikja163)
    ๐Ÿ›  Fixed GameWindow update frequency (Thanks @MerickOWA)
    Throw an InvalidOperationException if bindings are uninitialized. (Thanks @pjb)
    โž• Added Profile Any (Thanks @arakis)
    ๐Ÿ›  Fix error with GLFW Mouse button mapping (Thanks @GeorchW)
    ๐Ÿ‘ท Build System improvements to fully automatic pipeline.
    ๐Ÿ‘ท Test and fix build system
    ๐Ÿ›  Fix package metadata
    ๐Ÿ”„ Change: Make Command a valid modifier on OS-X #759
    ๐Ÿ Splitting Platform/Windows/API.cs into OpenTK.NT #765
    Immediately return after restoring resolution #766
    ๐Ÿ›  Fix OpenTK.Mathematics assembly name #768
    [4.0] Implement 'unmanaged' constraint #771
    Close display connection for X11 on dispose #773
    ๐Ÿ’… [4.0] Fix StyleCop analysis not working on Windows #775
    ๐Ÿ›  Fixed incorrect Quaternion/Vector rotation #777
    ๐Ÿ— [4.0] Build Cleanup #778
    ๐Ÿ›  Fixed type for VertexAttribPointer #779
    [4.0] Fix numerous binder errors #781
    Fix #USE_SDL2_GAMECONTROLLER code path #782
    ๐Ÿ”จ [4.0] Refactor Generator.Rewrite #783
    โœ๏ธ [4.0] Fix two typos in CONTRIBUTING.md #785
    โž• Add common.props for use in all projects #786
    โšก๏ธ [4.0] Auto-update OpenTK.sln (done by VS2017) #787
    โž• Add missing build configs (VS2017) #788
    ๐Ÿ›  Fixed OpenGL 3.2+ Context Creation (Mixed up Profile Mask / Flags) #790
    [4.0] Create new .sln file for all new projects #791
    ๐Ÿ‘ท [4.0] Fix CI scripts #792
    ๐Ÿ’… [4.0] Fix general StyleCop errors #793
    [4.0] Some more small rewriter changes #794
    ๐Ÿ”จ [4.0] Refactor Generator.Bind#795
    ๐Ÿ‘ท [4.0] Get CI to succeed #796
    ๐Ÿ›  Fix: Custom cursors not working under OS-X and dotnet #797
    ๐Ÿ’… [4.0] Fix stylecop errors in OpenTK.Mathematics.#798
    ๐Ÿ›  Fix OpenTK.NT compilation errors #799
    [4.0] Fix OpenTK.AL compilation errors #800
    4.0 #802
    ๐Ÿ›  Fix csproj references to target netstandard2.0 instead of net461. #803
    ๐Ÿ’… Style guide#804
    [4.0] Integrate OpenTK.OpenAL#805
    ๐Ÿ’… [4.0] refactored .Math stylecop errors #806
    ๐Ÿ‘‰ Use props/ directory directly #813
    โž• Add #814 to 4.0 #815
    ๐Ÿ›  Fix document typo #818
    ๐ŸŽ Binder Docs + Performance#826
    [4.0] Embedded license handling for binding generator #836
    [4.0] Adding directory safety to the binder. #837
    โšก๏ธ Update README after branch changes #839
    [4.0] Add StructLayout to Color4#840
    [4.0] Change root namespace to OpenTK #842
    ๐Ÿ›  Fix the aftermath of merging #842 #843
    [4.0] Impliment Vectord * Quaterniond #844
    ๐Ÿ›  Fix aftermath of #842 #846
    [4.0] Minor edits to README.md #848
    โšก๏ธ [4.0] Update SDL2 version check #849
    ๐Ÿšš [4.0] Remove big chunk of unused code from Quaterniond.cs #852
    ๐Ÿšš [4.0] Remove GLES 1.0 and 1.1 support #856
    [4.0] Add explicit operators for Color4/Vector4 conversions #858
    ๐Ÿšš [4.0] Remove unused code #860
    [4.0] Begin moving Input to OpenTK.Input#861
    [4.0] Begin moving Platform to OpenTK.Platform #862
    [4.0] Add RootNamespace tags to projects#863
    OpenGL Reimplementation #864
    Input and Windowing via GLFW #867
    Bindings generator for modularity and ADL#871
    โšก๏ธ Update licensing information #875
    โšก๏ธ Update Discord link. #876
    โšก๏ธ Optimize Vector4/Color4 conversions with Unsafe.As #877
    Apply Unsafe.As optimization to all vector types #878
    ๐Ÿ›  Fix discord invite link #881
    ๐Ÿšš Ignoring MouseMoveEx errors and fall back to passed point. #883
    ๐Ÿ“‡ Rename license files to avoid confusion. #885
    Emergency fix in short license terms #887
    [4.0] Adding Lerp function in the math helper #895
    System.Math and OpenTK.MathHelper symmetry #897
    Shorten float literals to the actual float value #898
    Reflect 22/04/2019 development discussion #902
    โœ‚ Remove obsolete methods within Vector types. #906
    โž• Add vector types with integer components. #908
    OpenAL cleanup #909
    Organise master #912
    Purity annotations for Math types #915
    ๐Ÿ Int vectors in windows #917
    ๐Ÿ‘ Box2i support #918
    โž• add Box3 #919
    Box2n and Box3n cleanup #920
    โž• Add API to let users pick OpenGL version #921
    โž• Add Quaternion to Euler angles conversion #923
    ๐Ÿ›  Fix binder script paths #924
    โช Restore unit tests #925
    โœ… Box tests #926
    GLFW Input. #928
    ๐Ÿ‘Œ Improve EditorConfig file. #929
    โž• Adds Vulkan related GLFW methods to IGLFW. #930
    ๐Ÿ›  Fixes the binder and makes it 10x faster. #931
    โž• Add tuple deconstructors and conversions to vector types. #933
    ๐Ÿ›  Fix ToHSV and ToHsl functions generating nan when they shouldn't #934
    ๐Ÿ‘ท Build System for 4.0 #936
    Hid input #943
    Implement ppi in INativeWindow. #945
    ๐Ÿ”‹ Feature/new Bindings generator #946
    PlaceholderGL#948
    ๐Ÿ›  Fix Quaternion(euler angle order -> roundtrip tests)#949
    ๐Ÿ›  Fix windowing tests #950
    ๐Ÿ— chmod +x build.sh #951
    ๐Ÿ›  Fix getting applied to F# projects. #952
    ๐Ÿ”‹ Feature/fix box contains #953
    โœ… Test fixes #954
    ๐Ÿ›  Fix PlatformLibraryNameContainerBase on macOS. #962
    ๐Ÿ‘‰ Make GLFW.Image better. #963
    ๐Ÿ Default GameWindowSettings.IsSingleThreaded to true. #964
    ๐Ÿ‘Œ Improve mouse cursor handling. #965
    ๐Ÿ›  Fix window icon handling. #966
    Clean up window events. #967
    ๐Ÿ›  Fix file drop events. #968
    ๐Ÿ›  Fix incorrect type on glfwGetError. #969
    ๐Ÿšš Move GLFWProvider to Windowing.Desktop. #970
    ๐Ÿ‘‰ Make GLFW structs simpler. #971
    Clean up window properties/interfaces. #972
    OpenGL_Bindings.csproj: Call bash instead of sh #974
    Quaternion(d): Modify instance Invert() to match static functions #975
    โœ‚ Remove ADL from GLFW. Use DllImport. #976
    ๐Ÿ”€ Begin work on merging OpenAL extensions. #986
    ๐Ÿ›  Fix CI system #988
    GLFW API cleanup. #989
    โœ‚ Remove reference to Mathematics from GLFW bind. #990
    โšก๏ธ Revised boostrap process + update build tools #992
    โž• Add remaining GLFW Window functions #996
    Bring forward 3.x binding generators to 4.0 #1004
    โž• Add matrix multiplication + missing operator to Vector2/Vector2d #1011
    โšก๏ธ Optimize barycentric interpolation #1019