Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
329 commits
Select commit Hold shift + click to select a range
9105533
[Linux] Fixed minor typo
thefiddler Jul 18, 2014
51c05ea
[KMS] Correctly restore crtc on exit.
thefiddler Jul 18, 2014
a38e267
[Linux] Additional debugging info on shutdown
thefiddler Jul 18, 2014
07d496d
[Linux] Fixed OnMouseMove being called without movement
thefiddler Jul 18, 2014
00b5174
[Linux] Delay input device detection until a key is pressed
thefiddler Jul 18, 2014
17aa805
Merge pull request #151 from thefiddler/kms
thefiddler Jul 18, 2014
786273d
[X11] Fixed OnMouseMove being called without mouse movement
thefiddler Jul 18, 2014
a13a2f8
[X11] Workaround for issue #146
thefiddler Jul 18, 2014
d75a2ce
[X11] Fix for issue #143
thefiddler Jul 19, 2014
6fa7026
[X11] Fixed GLControl on nvidia binary drivers
thefiddler Jul 20, 2014
0f1776b
[X11] Use the correct visual info for the context
thefiddler Jul 20, 2014
358b4dd
Merge pull request #153 from thefiddler/xwindowfix
thefiddler Jul 20, 2014
5cac37a
[GL] Synced with the July 2014 Khronos spec
thefiddler Jul 21, 2014
f756b97
[ES][GL] Regenerated bindings
thefiddler Jul 21, 2014
3961b1f
[Docs] Updated documentation for July 2014 release
thefiddler Jul 21, 2014
6ab1a9d
Use "Preserve Newest" option on OpenTK.dll.config
thefiddler Jul 21, 2014
de109bb
Merge pull request #154 from opentk/glspecs_july2014
thefiddler Jul 21, 2014
b5dd2f9
Merge pull request #155 from thefiddler/relnotes_july2014
thefiddler Jul 21, 2014
b07e594
[Build] Updated mono version to 3.4.0.
thefiddler Jul 21, 2014
ec34d17
Fixed a large number of build warnings
thefiddler Jul 21, 2014
cab9e85
[Bind] Enums can now be marked as obsolete
thefiddler Jul 21, 2014
33c9fe5
[ES] Marked obsolete enums as such
thefiddler Jul 21, 2014
bf65005
[Bind] Added Enum.Obsolete property
thefiddler Jul 21, 2014
ead151e
Fixed a large number of warnings
thefiddler Jul 21, 2014
c046584
[Bind] Implemented CLS-compliant checks for Enums
thefiddler Jul 21, 2014
6d1149c
[GL] BufferObjects and TextureUnit are not obsolete
thefiddler Jul 21, 2014
461fbce
Cleaned up a number of obsolete warnings
thefiddler Jul 21, 2014
e0a3b73
Cleaned up the remaining obsolete warnings
thefiddler Jul 21, 2014
093dd1d
[Bind] Fixed an issue where CLS-compliance was incorrectly overriden
thefiddler Jul 21, 2014
ffd7682
[ES][GL] Added missing documentation comments
thefiddler Jul 21, 2014
f048487
[ES][GL] Regenerated bindings
thefiddler Jul 21, 2014
98399c2
[Compat] Use Preserve Newest in dll.config
thefiddler Jul 21, 2014
7a064c3
[Examples] Fixed all warnings
thefiddler Jul 21, 2014
00b531f
Fixed compilation warnings on Mono 3.4.0
thefiddler Jul 21, 2014
333503d
Fixed compilation warnings on Mono 3.4.0
thefiddler Jul 21, 2014
d739085
Fixed compilation warnings on Mono 3.4.0
thefiddler Jul 21, 2014
4bde589
Fixed compilation warnings on Mono 3.4.0
thefiddler Jul 21, 2014
7c98a9c
Merge pull request #156 from thefiddler/buildfix
thefiddler Jul 21, 2014
2a84104
Merge pull request #157 from thefiddler/warnfix
thefiddler Jul 21, 2014
bdff76c
[Docs] Updated documentation for release
thefiddler Jul 21, 2014
a047c08
[Mac] Correctly shutdown HID input driver
thefiddler Jul 22, 2014
35bdf16
[OpenTK] Correctly reinitialize platform factory
thefiddler Jul 22, 2014
42e4e0b
[Mac] Added CFRetain binding
thefiddler Jul 22, 2014
7956126
[Mac] Retain CFRunLoop while it is in use
thefiddler Jul 22, 2014
0e40f63
[Mac] Close CocoaNativeWindow in Dispose()
thefiddler Jul 22, 2014
5501689
[Mac] Added objc_disposeClassPair binding
thefiddler Jul 22, 2014
0c4081f
[Mac] Do not use Autorelease pool
thefiddler Jul 22, 2014
9d6b689
[Mac] CursorVisible should only apply when changed
thefiddler Jul 22, 2014
7cc3e92
[OpenTK] Re-add static Factory constructor
thefiddler Jul 23, 2014
0a0a5d0
[Mac] More defensive programming
thefiddler Jul 23, 2014
b0ceef3
[OpenTK] Additional constructor and doc cleanup
thefiddler Jul 23, 2014
864cc84
[Mac] Do not execute run loop prematurely
thefiddler Jul 23, 2014
77a44b2
[OpenTK] Add allocated resource registry
thefiddler Jul 23, 2014
8f03b09
[Mac] Register platform resources for disposal
thefiddler Jul 23, 2014
e81d8da
[OpenTK] Reduce duplication in GraphicsContextBase
thefiddler Jul 23, 2014
4093b39
[Mac] Store a reference to callback delegates
thefiddler Jul 23, 2014
5d66aaa
[Mac] Do not set callback delegates to null
thefiddler Jul 23, 2014
ab75ca0
[OpenTK] Added IPlatformFactory.RegisterResource()
thefiddler Jul 23, 2014
6abca6d
[OpenTK] Register GraphicsContext and NativeWindow
thefiddler Jul 23, 2014
ac2ae4a
[Mac] Ensure Cocoa bindings are initialized first
thefiddler Jul 23, 2014
050a93d
[Mac] Resource registration moved to the facades
thefiddler Jul 23, 2014
e5e9ae0
[Mac]] Add NSApplication.IsUIThread property
thefiddler Jul 23, 2014
a6c4a7c
[Mac] Only dispose context on UI thread
thefiddler Jul 23, 2014
d12643c
[Mac] Mark callback calling convention
thefiddler Jul 23, 2014
57c2f89
[Mac] Explicitly close removed devices
thefiddler Jul 23, 2014
8b1be5c
[OpenTK] Dispose() now clear the list of resources
thefiddler Jul 23, 2014
8f30f77
[OpenTK] Removed the finalizer in OpenTK.Toolkit
thefiddler Jul 23, 2014
29af702
[Mac] Removed stored delegate list
thefiddler Jul 23, 2014
15f87c1
[Graphics] Implemented structural equality
thefiddler Jul 23, 2014
bb882fe
[Mac] Correctly release mach port
thefiddler Jul 23, 2014
f799530
[Mac] Do not use autorelease pool
thefiddler Jul 23, 2014
6db2956
[Mac] Release input driver before other resources
thefiddler Jul 23, 2014
ed7b831
Merge pull request #158 from thefiddler/fuzzfix
thefiddler Jul 23, 2014
3e9b200
[Input] Sync GamePad database with SDL 2.0.4
thefiddler Jul 23, 2014
86b112a
Merge pull request #159 from thefiddler/joydb
thefiddler Jul 23, 2014
0d2f4d4
[Docs] Updated documentation for 1.1.4b release
thefiddler Jul 23, 2014
7c55e4e
[Input] Corrected invalid GUID in GamePad database
thefiddler Jul 23, 2014
b003de8
[Docs] Updated documentation for 1.1.4c release
thefiddler Jul 23, 2014
e5cd6a3
[Input] Implemented JoystickHat GamePad mapping
thefiddler Jul 25, 2014
fe1d465
[Input][SDL] Fix JoystickHat bugs
BraveSirAndrew Jul 27, 2014
e243316
[Input] Cleaned up line endings and joystick hat mapping
thefiddler Jul 29, 2014
645baea
Merge pull request #160 from thefiddler/pad_db_hat
thefiddler Jul 29, 2014
5444c0c
[SDL] Workaround for a Mono crash in SDL.JoystickGetGUID
thefiddler Aug 9, 2014
779ff31
Merge pull request #163 from thefiddler/sdl_guid_crash
thefiddler Aug 9, 2014
073ddf1
[X11] Added XGetAtomName() function
thefiddler Aug 9, 2014
a3e47a2
[X11] Check before using motion/scroll valuators
thefiddler Aug 9, 2014
5a5607e
[X11] Added strong-typed enum for XIValuatorInfo.mode
thefiddler Aug 9, 2014
9ae778a
[X11] Fixed absolute motion valuators
thefiddler Aug 9, 2014
ffa3df2
[X11] Fixed core X11 scrolling and absolute y motions
thefiddler Aug 10, 2014
680a5ee
Merge pull request #164 from thefiddler/x11_scrollfix
thefiddler Aug 10, 2014
074a4ff
[Rewrite] Cast int32 overloads to native int
thefiddler Sep 1, 2014
cbe0684
[Bind] Add int overloads to buffer size (IntPtr) parameters
thefiddler Sep 2, 2014
f9e2a6f
Merge pull request #172 from thefiddler/intptr_fix
thefiddler Sep 2, 2014
a370572
[GL] Added int overload to DrawElements for OpenGL4
thefiddler Sep 2, 2014
3c07e74
[Build] Update Travis CI to mono 3.6.0
thefiddler Sep 2, 2014
d79eb71
Merge pull request #175 from thefiddler/mono360
thefiddler Sep 2, 2014
77a78e5
Merge pull request #174 from thefiddler/issue171
thefiddler Sep 2, 2014
6bb7c1d
Merge pull request #173 from thefiddler/buffersize_to_int
thefiddler Sep 2, 2014
b0192b7
[GL] Added ARB_clip_control
thefiddler Aug 11, 2014
240a5a6
[GL][ES] Added tokens for backwards compatibility
thefiddler Aug 11, 2014
cde7061
[GL] Implemented ARB_cull_distance
thefiddler Aug 11, 2014
056e586
[GL] Implemented ARB_conditional_render_inverted
thefiddler Aug 11, 2014
adffb47
[GL][ES] Implemented KHR_context_flush_control
thefiddler Aug 12, 2014
06269f2
[GL] Implemented ARB_get_texture_sub_image
thefiddler Aug 12, 2014
398bcd4
[GL][ES] Implemented KHR_context_robustness
thefiddler Aug 12, 2014
02d592c
[GL] Added missing tokens for 4.2-4.4
thefiddler Aug 12, 2014
5e8357b
[GL] Implemented ARB_direct_state_access
thefiddler Aug 12, 2014
c6e8991
[Bind] Allow multiple overrides files
thefiddler Aug 13, 2014
0e05650
[GL] Added a missing enum
thefiddler Aug 13, 2014
d570eb2
[Bind] Moved GL overrides to parent folder
thefiddler Aug 13, 2014
dcca1d7
[ES] Implemented bindings for ES 3.1 (1/2)
thefiddler Aug 13, 2014
a706a78
[ES] Implemented bindings for ES 3.1 (2/2)
thefiddler Aug 13, 2014
47e49c8
[ES] Typo corrections in the ES 3.1 bindings
thefiddler Aug 14, 2014
e959a99
[GL][ES] Implemented ARB_ES_3_1_compatibility
thefiddler Aug 14, 2014
bcd76c7
[ES] Implemented ES 3.1 binding generator
thefiddler Aug 14, 2014
bfcfb9a
[GL] Added missing VertexAttribDPointerType enum
thefiddler Aug 14, 2014
2410dda
[GL] Removed duplicate bindings
thefiddler Aug 14, 2014
7cd2f0b
[GL] Fixed TEXTURE_BINDING_RECTANGLE token
thefiddler Aug 14, 2014
d50bef3
[GL] Fixed COMPRESSED_SRGB_ALPHA_BPTC_UNORM token
thefiddler Aug 14, 2014
5ec28b6
[Bind] Do not re-translate translated enum names
thefiddler Aug 14, 2014
45c8d83
[Bind] Added ES 3.1 generator
thefiddler Aug 14, 2014
b45e946
[GL] Removed duplicate enums
thefiddler Aug 14, 2014
1ef9b85
[ES] Moved some ES 1.1 to ES/1.1/obsolete.xml
thefiddler Aug 14, 2014
d036c50
[Bind] Use ES/1.1/obsolete.xml
thefiddler Aug 14, 2014
a05ffb8
[Bind] Hardcode some common OpenGL IHV names
thefiddler Aug 14, 2014
3805c3a
[Bind] Minor debug message beautification
thefiddler Sep 3, 2014
b9235e1
[Bind] Remove default debug parameter
thefiddler Sep 3, 2014
51a1109
[GL] Sync signatures with OpenGL 4.5
thefiddler Sep 3, 2014
ee56a35
Added Matrix3[d].Add and Matrix4[d].CreateFromRotationMatrix
Robmaister Sep 9, 2014
1c76024
[ES][GL] Maintain compatibility with 1.1.4
thefiddler Sep 10, 2014
a9f1b90
[API] Update test to cover extensions
thefiddler Sep 10, 2014
978e2cc
[Convert] Update to v4.5 by default
thefiddler Sep 10, 2014
410c061
[API] Fixed tests for nested types
thefiddler Sep 10, 2014
c698939
[Input] Added GameWindow.Mouse/Keyboard.GetState()
thefiddler Sep 10, 2014
00f2d94
Merge pull request #166 from thefiddler/gl45
thefiddler Sep 11, 2014
05e40b6
Merge pull request #177 from thefiddler/gw_input
thefiddler Sep 11, 2014
1080dec
[Mac] Do not modify existing mainMenu
thefiddler Sep 11, 2014
6292ad4
[Mac] Avoid calling finishLaunching multiple times
thefiddler Sep 11, 2014
1bba544
[ES][GL] Fix GetObjectLabel marked obsolete
thefiddler Sep 11, 2014
73fd8ac
Merge pull request #179 from thefiddler/issue152
thefiddler Sep 11, 2014
d6d6842
Merge pull request #178 from thefiddler/mac_crash
thefiddler Sep 11, 2014
0e72cb3
[OpenTK] Removed unused CreateGraphicsMode API
thefiddler Jan 15, 2014
8968f7f
[Win] XInputJoystick is now IJoystickDriver2
thefiddler Jan 15, 2014
765ad9e
[Win] WinRawInput is IKeyboard/MouseDriver2
thefiddler Jan 15, 2014
14d07a5
[Win] Corrected XInput Guid in gamepad database
thefiddler Jan 15, 2014
5cfde8f
[Win] Added combined XInput+WinMM joystick driver
thefiddler Jan 15, 2014
06e6394
[Win] Separate keyboard/mouse & joystick drivers
thefiddler Jan 15, 2014
c3b289e
[Win] Implemented XInput vibration support
thefiddler Jan 16, 2014
9cf3dee
[Win] Improve WinMM.GetCapabilities performance
thefiddler Jan 16, 2014
18c02db
[Win] Initial implementation of WinRawJoystick
thefiddler Jan 17, 2014
178305e
[Common] Added HID usage page definitions
thefiddler Jan 17, 2014
dc35760
[Win] Added HidProtocol binding
thefiddler Jan 17, 2014
cac96bb
[Common] Cleaned up comments
thefiddler Jan 17, 2014
2c197f0
[Win] Cleanup Raw Input HID usage/pages
thefiddler Jan 17, 2014
85e6b9f
[Win] Wrapped additional HID APIs
thefiddler Jan 17, 2014
94476b9
[Common] Moved axis translation to common
thefiddler Jan 17, 2014
956691d
[Win] Fixed RawHID struct definition
thefiddler Jan 17, 2014
27e80fc
[Win] Completed WinRawJoystick implementation
thefiddler Jan 17, 2014
e38fc0d
[Input] Added JoystickCapabilities.SetIsConnected
thefiddler Jan 17, 2014
f6b382c
[Win] Reduce duplication in device enumeration
thefiddler Jan 17, 2014
cec48ab
[Win] Completed raw input IJoystickDriver2
thefiddler Jan 18, 2014
97b0275
[Win] Removed WinMM joystick driver
thefiddler Jan 18, 2014
9a25ddc
[Win] Corrected GetRawInputData invocation
thefiddler Jan 18, 2014
30d09a4
[Win] Cleaned up public region
thefiddler Jan 18, 2014
131de67
Fixed minor compilation issues
thefiddler Jul 30, 2014
f3b3b88
[Win] Improved HidP bindings
thefiddler Jul 31, 2014
8fddf8b
[Win] Fixed axis/button detection
thefiddler Jul 31, 2014
a8aabbf
[Win] Made internal struct non-public
thefiddler Jul 31, 2014
db01cac
[Common] Use long for device keys
thefiddler Jul 31, 2014
6d54edc
[Win] Use DeviceCollection. Fix GUID detection
thefiddler Jul 31, 2014
a51a85c
[Win] Added helper raw input methods
thefiddler Jul 31, 2014
3fee0bd
[Win] Raw input parsing moved to input drivers
thefiddler Jul 31, 2014
cbb2807
[Win] Implemented joystick button updates
thefiddler Jul 31, 2014
f010e32
[Win] Added HidP status codes
thefiddler Jul 31, 2014
e387552
[Win] Fixed axis range calculation
thefiddler Jul 31, 2014
5c09230
[Win] Fixed axis, button and hat value updates
thefiddler Jul 31, 2014
15a79e5
[Input] Improved GamePadButtons.ToString()
thefiddler Jul 31, 2014
dd0f622
[Win] Do not re-query caps in ProcessEvents
thefiddler Jul 31, 2014
4c411b0
[Win] Retrieve joystick input even on background
thefiddler Jul 31, 2014
9efa751
[Platform] DeviceCollection hardware id is long
thefiddler Jul 31, 2014
354fc04
[Win] Do not change device index when replugging
thefiddler Jul 31, 2014
be575d4
[Win] Refactored UpdateAxes
thefiddler Jul 31, 2014
0bd6854
[Win] Detect xinput devices and use xinput driver
thefiddler Jul 31, 2014
f81046f
[Win] Corrected GUID for xinput devices
thefiddler Jul 31, 2014
1e5b2e5
[Win] Correct XInput axes/button/hat mapping
thefiddler Jul 31, 2014
a2d6f18
[Win] Improved joystick debugging information
thefiddler Aug 2, 2014
8c762e5
[Win] Added collection id to dictionary keys
thefiddler Aug 2, 2014
f829b3d
[Win] Fix compilation in Release
thefiddler Aug 2, 2014
ec37a9a
[Input] Do not throw exception on too many axes
thefiddler Sep 2, 2014
388acee
[Win] Correct joystick GUID generation
thefiddler Sep 2, 2014
0d4fddd
[Win] Skip devices with too many axes
thefiddler Sep 2, 2014
6c2a633
[Input] Added missing Back button in ToString()
thefiddler Sep 2, 2014
bf9f7c9
[Input] Fixed trigger ToString()
thefiddler Sep 2, 2014
0735700
[Input] Added P880 win32 gamepad configuration
thefiddler Sep 2, 2014
7421494
[Input] Fixed button/hat->trigger mapping scale
thefiddler Sep 2, 2014
7a4dfcf
Changed Matrix4[d].CreateFromRotationMatrix to a new constructor.
Robmaister Sep 11, 2014
71e5a4f
[Input] Add GamePadCapabilities.IsMapped
thefiddler Sep 12, 2014
2df0496
[SDL] Correctly byteswap Guid
thefiddler Sep 12, 2014
73f255e
[Input] Fixed bitwise test for GamePadAxes
thefiddler Sep 12, 2014
c295098
Merge pull request #176 from Robmaister/develop
thefiddler Sep 16, 2014
ea66a82
[Win] Suppressed spurious warning
thefiddler Sep 17, 2014
8237b88
[Win] Fixed XInput y-axis and trigger range
thefiddler Sep 17, 2014
4337288
[Win] Removed unused code
thefiddler Sep 17, 2014
10dd7e8
[Input] Special-case pre-SDL2.0.4 xinput bindings
thefiddler Sep 17, 2014
41f1f92
Merge pull request #161 from thefiddler/win_xinput
thefiddler Sep 17, 2014
d4c6b2e
[Mac] Fixed joystick Guid calculation
thefiddler Sep 11, 2014
4231cf2
[Mac] Use cookies to match HID joystick elements
thefiddler Sep 11, 2014
9c67265
[Mac] Added CFGetTypeID method
thefiddler Sep 12, 2014
b9f7f2c
[Mac] Sort joystick elements like SDL2
thefiddler Sep 12, 2014
fbedac9
[Mac] Fixed Joystick Hat calculations
thefiddler Sep 12, 2014
2a65790
[Mac] Match SDL2 element order
thefiddler Sep 15, 2014
2c26df8
[Input] Added From* overloads with out parameters
thefiddler Sep 17, 2014
8642177
[Mac] Use DeviceCollection
thefiddler Sep 17, 2014
397bdda
[Linux] Implemented evdev joystick device discovery
thefiddler Aug 7, 2014
129fb81
[Linux] Implemented evdev joystick polling
thefiddler Aug 9, 2014
21deea8
[Linux] Correctly set evdev packet number
thefiddler Aug 10, 2014
3bf29b0
[Input] Fixed debug display of Back gamepad button
thefiddler Aug 11, 2014
179c823
[Linux] Fixed byteswapping in joystick Guid calculation
thefiddler Aug 11, 2014
a1c3950
Merge pull request #180 from thefiddler/mac_joystick
thefiddler Sep 20, 2014
2b3a4c5
Merge pull request #181 from thefiddler/evdev
thefiddler Sep 20, 2014
747d86b
[Common] Avoid GC in DeviceCollection
thefiddler Sep 20, 2014
383cea7
[Mac] Fixed exception in HIDInput.Dispose()
thefiddler Sep 20, 2014
7829fa6
[Examples] Removed test code committed by mistake
thefiddler Sep 22, 2014
e621b21
[Win] Avoid NRE in WinFactory.Dispose()
thefiddler Sep 23, 2014
e06fc9f
Merge pull request #182 from thefiddler/win_inputcrash_fix
thefiddler Sep 23, 2014
9851a3b
[AL] Fix runtime crash when OpenAL not available
thefiddler Sep 29, 2014
9a37b72
Merge pull request #186 from thefiddler/al_notfound_fix
thefiddler Sep 30, 2014
6c53ab6
Added support for Euler angles in Quaternion and Quaterniond by addin…
Oct 12, 2014
077bf0d
Update MouseEventArgs.cs
Oct 13, 2014
1f96bc8
Merge pull request #188 from xThaWolfx/patch-1
thefiddler Oct 13, 2014
e520ef6
Merge pull request #187 from Lazzu/develop
thefiddler Oct 13, 2014
1002d4e
Add XML documentation to matrix Add methods.
Frassle Oct 21, 2014
2c178d5
Remove unused field.
Frassle Nov 3, 2014
41b6844
Remove unused fields/variables.
Frassle Nov 3, 2014
fe3a0df
Add #pragma warning disable for unused field warnings.
Frassle Nov 3, 2014
f8af961
Merge pull request #190 from Frassle/warnings
Frassle Nov 3, 2014
b9cc6fa
[X11] GetEntryAssembly may be null.
Frassle Nov 4, 2014
d59ee59
Merge pull request #194 from Frassle/getentryassembly
thefiddler Nov 12, 2014
af924af
Add To/From sRGB methods to Color4.
Frassle Nov 10, 2014
d09b324
Add To/From HSL methods to Color4.
Frassle Nov 9, 2014
072263f
Add To/From HSV methods to Color4.
Frassle Nov 10, 2014
679419b
Add To/From XYZ methods to Color4.
Frassle Nov 10, 2014
edcb066
Add To/From YUV methods to Color4.
Frassle Nov 10, 2014
c442a18
Add To/From HCY methods to Color4.
Frassle Nov 10, 2014
6deec73
Merge pull request #197 from Frassle/color
thefiddler Nov 13, 2014
e855d2e
[Input] Legacy keyboard respects the KeyRepeat field.
Frassle Nov 23, 2014
a43181a
Merge pull request #202 from Frassle/issue201
Frassle Nov 23, 2014
2de9c0b
Fix wrap around bug in XInput.
Frassle Jan 9, 2015
bbbe95a
Clarify OpenTK.dll.config use for #217
roman-yagodin Feb 11, 2015
7e903d6
Merge pull request #218 from roman-yagodin/patch-1
Frassle Feb 11, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ language: objective-c

env:
global:
- EnableNuGetPackageRestore=true
- EnableNuGetPackageRestore=true
matrix:
- MONO_VER="2.10.11"
- MONO_VER="3.2.6"
- MONO_VER="3.6.0"

before_install:
- wget "http://download.mono-project.com/archive/${MONO_VER}/macos-10-x86/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.pkg" "http://download.mono-project.com/archive/${MONO_VER}/macos-10-x86/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.dmg" || true
Expand All @@ -15,4 +15,3 @@ before_install:

script:
- xbuild && xbuild /p:Configuration=Release

5 changes: 5 additions & 0 deletions Documentation/Todo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
- Implement touch input API.
- Implement force feedback API.
- Add Portable Class Library (PCL) target.
- Add OpenCL support.
- Add OpenGL ES 3.1 support.
- Port to Linux/Wayland.
- Port to Blackberry (WIP at https://github.com/rcmaniac25/opentk).
- Port to Tizen.

[Hard]
- Merge with mono/opentk.
13 changes: 13 additions & 0 deletions OpenTK.sln
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generator.Rewrite", "Source
{75DC22B1-113F-4A66-96B9-2FF8208C10E8} = {75DC22B1-113F-4A66-96B9-2FF8208C10E8}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.API.Desktop", "Source\Tests\Test.API.Desktop\Test.API.Desktop.csproj", "{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}"
ProjectSection(ProjectDependencies) = postProject
{75DC22B1-113F-4A66-96B9-2FF8208C10E8} = {75DC22B1-113F-4A66-96B9-2FF8208C10E8}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -158,6 +163,14 @@ Global
{C426C9D1-8857-4E52-BAC7-4C05EE6070AB}.Nsis|Any CPU.Build.0 = Release|Any CPU
{C426C9D1-8857-4E52-BAC7-4C05EE6070AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C426C9D1-8857-4E52-BAC7-4C05EE6070AB}.Release|Any CPU.Build.0 = Release|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Documentation|Any CPU.ActiveCfg = Debug|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Documentation|Any CPU.Build.0 = Debug|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Nsis|Any CPU.ActiveCfg = Release|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Nsis|Any CPU.Build.0 = Release|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4DDD20F-CB4E-43F4-A75C-4A3D668E1F99}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
115 changes: 57 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
OpenTK
======

The Open Toolkit is an advanced, low-level C# library that wraps OpenGL, OpenGL ES and OpenAL. It is suitable for games, scientific applications and any other project that requires 3d graphics, audio or compute functionality.
The Open Toolkit library is a fast, low-level C# binding for OpenGL, OpenGL ES and OpenAL. It runs on all major platforms and powers hundreds of apps, games and scientific research.

Use OpenTK to add cross-platform 3d graphics, audio, compute and haptics to your C# application. Integrate it into your existing user interface or use it standalone without any external dependencies.

Project website: http://www.opentk.com/

Expand All @@ -12,7 +14,7 @@ Features
========

- Create cutting-edge graphics with OpenGL 4.4 and OpenGL ES 3.0
- Spice up your GUI with 3d graphics
- Spice up your GUI with 3d acceleration
- Improve your code flow with strong types and inline documentation
- Write once run everywhere

Expand All @@ -24,79 +26,66 @@ OpenTK is available for Windows, Linux, Mac OS X, *BSD, SteamOS, Android and iOS
Instructions
============

The simplest way to use OpenTK in your project is to install the [NuGet package](http://www.nuget.org/packages/OpenTK/).
The simplest way to use OpenTK in your project is to install the [NuGet package](http://www.nuget.org/packages/OpenTK/).

Note what installing NuGet package will add reference to OpenTK.dll, but OpenTK.dll.config
will not be copied to the project output directory automatically, so you need to add it to your project
and then enable the "Copy to Output Directory" option (as in step 3 below).

Alternatively, download the [OpenTK binaries](http://www.opentk.com) and:

1. Copy OpenTK.dll and OpenTK.dll.config to your project directory
2. Use "Add reference" to add OpenTK.dll as a project reference
3. Use "Add files" to add OpenTK.dll.config to your project, and enable the "Copy to Output Directory" option.

If you wish to build OpenTK from source, simply double-click OpenTK.sln
To build OpenTK from source, simply double-click OpenTK.sln and build through your IDE.

Alternatively, open a command prompt and type:
```
git clone https://github.com/opentk/opentk # Download source code from git
cd opentk # Enter the source directory
msbuild /p:Configuration=Release OpenTK.sln # Build on .Net (Windows)
xbuild /p:Configuration=Release OpenTK.sln # Build on Mono (Linux / Mac OS X)
```


News
====

OpenTK 1.1.2 was released on 19 May 2014.
OpenTK 1.1.4c was released on 24 July 2014.

It contains performance and stability improvements and synchronizes the OpenGL and OpenGL ES bindings with the May 2014 Khronos specifications.
This is a hotfix release that improves stability on Mac OS X. Moreover, it synchronizes the GamePad configuration database with SDL 2.0.4 and fixes an invalid GUID introduced in 1.1.4b.

OpenTK 1.1.4 was released on 21 July 2014.

This release resolves a number of identified issues, adds experimental support for Linux/KMS and synchronizes the OpenGL and OpenGL ES bindings with the July 2014 Khronos specifications.

**Changelog:**

1. New Cocoa backend for Mac OS X, with support for OpenGL 4.x and retina displays. Huge thanks to [Ollhax](https://github.com/Ollhax) for implementing the backend from scratch, including the necessary Cocoa bindings!
2. Custom hardware cursors are now supported: `INativeWindow.Cursor = new MouseCursor(...)`
3. Up to 2000% improvement in binding loading speed. The exact numbers depend on the operating system and hardware configuration. On a Nvidia 650M GPU and a 2.3GHz processor:
- Linux: 6.5ms instead of 45ms
- MacOS: 9.5ms instead of 165ms
- Win64: 5.9ms instead of 108ms
4. Up to 1000% improvement in memory consumption. The object graph has been reduced from 9000 to 900 objects, consuming between 185-220KB of memory depending on the platform and hardware configuration.
5. Support for high-resolution X/Y scrolling on all platforms:
- `OpenTK.Input.MouseState.Scroll.X/Y`
6. Improved mouse input APIs:
- new INativeWindow.MouseMove, MouseUp, MouseDown and MouseWheel events
- new OpenTK.Mouse.GetCursorPos() API to retrieve the state of the system cursor
- all mouse event arguments now carry the current MouseState
7. Improved keyboard input APIs:
- support for non-US layouts on Linux/X11
- all keyboard event arguments now carry the current KeyboardState
- all keyboard event arguments now report the correct KeyModifiers state
8. New OpenGL extensions:
- AMD_gcn_shader
- AMD_gpu_shader_int64
- AMD_transform_feedback4
- EXT_shader_image_load_formatted
- NV_shader_thread_group
- NV_shader_thread_shuffle
9. New OpenGL ES extensions:
- ARM_shader_framebuffer_fetch
- ARM_shader_framebuffer_fetch_depth_stencil
- EXT_shader_pixel_local_storage
- KHR_blend_equation_advanced
- OES_sample_shading
- OES_sample_variables
- OES_shader_image_atomic
- OES_shader_multisample_interpolation
- OES_texture_stencil8
- OES_texture_storage_multisample_2d_array
10. Improved OpenGL ES documentation tooltips.
11. Improved stability when using EGL on Linux and Windows/ANGLE.
12. Improved stability when using SDL2 on 32bit platforms.
13. Improved the shutdown sequence on X11.
14. Fixed a marshaling issue affecting 2d and 3d arrays on Windows/.Net.


OpenTK 1.1.2 is backwards compatible with 1.1.1. Users of previous versions are encouraged to upgrade.
1. Fixed a memory leak in OpenGL functions accepting a string array.
2. Fixed an issue where `MakeCurrent()` might fail on Linux/X11 when using the Nvidia closed-source drivers.
3. Fixed an issue where `GameWindow` might remain open on Linux/X11 after calling `Close()` or `Dispose()`.
4. Fixed a potential crash on Mac OS X systems without hardware acceleration (e.g. virtual machines).
5. Fixed function parameters for the `OES_byte_coordinates` extension.
6. Fixed an issue where OpenTK would always perform a full rebuild even when a partial rebuild could work.
7. Fixed all compilation warnings on VS2013 and Mono 3.4.0.
8. Improved OpenGL and OpenGL ES documentation on 'count' parameters.
9. New platform: Linux/KMS. You can now run OpenTK applications on a Linux terminal without an X11 display server.
10. New OpenGL ES extensions:
- ANDROID_extension_pack_es31a

OpenTK 1.1.4 is backwards compatible with 1.1.3. Users of previous versions are **strongly** encouraged to upgrade.


Known issues
============

The SDL2 backend has a number of limitations compared to the native platform backends. In particular, SDL2 does not support:
- `OpenTK.GLControl`. OpenTK will automatically use a native platform backend instead.
1. The SDL2 backend has a number of limitations compared to the native platform backends. In particular, SDL2 does not support:
- `OpenTK.GLControl`. OpenTK will automatically switch to a native platform backend instead.
- `DisplayDevice.ChangeResolution()` without a fullscreen `INativeWindow`.
- changing `INativeWindow.WindowBorder` once a window is created.
- high-resolution mouse input. Additionally, it is limited to a single keyboard and mouse device.
- Switching between `WindowBorder.Fixed` and `WindowBorder.Resizable`.
- High-resolution mouse input. Additionally, it is limited to a single keyboard and mouse device.
2. OpenTK.Input.GamePad.SetVibration is currently not implemented. This API will be implemented in a future release.


Contributing
Expand All @@ -113,17 +102,16 @@ Some areas we could really use your help:
- Tutorials for OpenGL 3.x and 4.x. [Inspiration here](https://github.com/Groovounet/ogl-samples)
- New platforms:
- Native Client (NaCL)
- Raspberry PI (EGL without X11)
- Blackberry
- Wayland
- Mir
- WinRT (via ANGLE)
- New features:
- Multitouch
- Clipboard
- Input Method Editors (IMEs)
- USB HID joystick backend (Windows, Linux)
- Force feedback
- Improved joystick support (HID backend for Windows, Linux)

Further ideas for improvement are always welcome.
Further ideas for improvement are always welcome!


Requirements
Expand Down Expand Up @@ -164,6 +152,10 @@ http://www.opentk.com/project/license
API compatibility
=================

OpenTK 1.1.4 is backwards compatible with 1.1.3.

OpenTK 1.1.3 is backwards compatible with 1.1.2.

OpenTK 1.1.2 is backwards compatible with 1.1.1.

OpenTK 1.1.1 is backwards compatible with 1.1.0.
Expand Down Expand Up @@ -250,3 +242,10 @@ Change namespace:
- GL.DisableDriverControlQCOM -> GL.Qcom.DisableDriverControl
- GL.GetDriverControlsQCOM -> GL.Qcom.GetDriverControls
- GL.GetDriverControlStringQCOM -> GL.Qcom.GetDriverControlString


See also
========

[Delta Engine](http://deltaengine.net/), a high-level, open-source game engine.
[MonoGame](https://github.com/mono/monogame), an open-source, cross-platform implementation of XNA.
6 changes: 5 additions & 1 deletion Source/Bind/CSharpSpecWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ void WriteDocumentation(BindStreamWriter sw, Function f)
else
{
Console.Error.WriteLine(
"[Warning] Parameter '{0}' in function '{1}' not found in documentation '{{{3}}}'",
"[Warning] Parameter '{0}' in function '{1}' not found in documentation '{{{2}}}'",
param.Name, f.Name,
String.Join(",", docs.Parameters.Select(p => p.Name).ToArray()));
sw.WriteLine("/// <param name=\"{0}\">{1}</param>",
Expand Down Expand Up @@ -505,6 +505,10 @@ void WriteEnums(BindStreamWriter sw, EnumCollection enums, FunctionCollection wr
sw.WriteLine("/// </summary>");
}

if (@enum.IsObsolete)
sw.WriteLine("[Obsolete(\"{0}\")]", @enum.Obsolete);
if (!@enum.CLSCompliant)
sw.WriteLine("[CLSCompliant(false)]");
if (@enum.IsFlagCollection)
sw.WriteLine("[Flags]");
sw.WriteLine("public enum " + @enum.Name + " : " + @enum.Type);
Expand Down
2 changes: 2 additions & 0 deletions Source/Bind/ES/ES2Generator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public ES2Generator(Settings settings, string dirName)
Settings.DefaultDocPath = Path.Combine(
Settings.DefaultDocPath, "ES20");

Settings.OverridesFiles.Add("GL2/overrides.xml");

Profile = "gles2";
Version = "2.0";

Expand Down
41 changes: 41 additions & 0 deletions Source/Bind/ES/ES31Generator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml.XPath;
using Bind.GL2;
using Bind.Structures;
using Delegate=Bind.Structures.Delegate;
using Enum=Bind.Structures.Enum;

namespace Bind.ES
{
// Generation implementation for OpenGL ES 3.1
class ES31Generator : Generator
{
public ES31Generator(Settings settings, string dirName)
: base(settings, dirName)
{
Settings.DefaultOutputPath = Path.Combine(
Settings.DefaultOutputPath, "../ES31");
Settings.DefaultOutputNamespace = "OpenTK.Graphics.ES31";
Settings.DefaultImportsFile = "ES31.Core.cs";
Settings.DefaultDelegatesFile = "ES31.Delegates.cs";
Settings.DefaultEnumsFile = "ES31.Enums.cs";
Settings.DefaultWrappersFile = "ES31.cs";
Settings.DefaultDocPath = Path.Combine(
Settings.DefaultDocPath, "ES31");

Settings.OverridesFiles.Add("GL2/overrides.xml");
Settings.OverridesFiles.Add("GL2/ES/3.1");

Profile = "gles2";
Version = "2.0|3.0|3.1";

// For compatibility with OpenTK 1.0 and Xamarin, generate
// overloads using the "All" enum in addition to strongly-typed enums.
// This can be disabled by passing "-o:-keep_untyped_enums" as a cmdline parameter.
Settings.DefaultCompatibility |= Settings.Legacy.KeepUntypedEnums;
//Settings.DefaultCompatibility |= Settings.Legacy.UseDllImports;
}
}
}
2 changes: 2 additions & 0 deletions Source/Bind/ES/ES3Generator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public ES3Generator(Settings settings, string dirName)
Settings.DefaultDocPath = Path.Combine(
Settings.DefaultDocPath, "ES30");

Settings.OverridesFiles.Add("GL2/overrides.xml");

Profile = "gles2"; // The 3.0 spec reuses the gles2 apiname
Version = "2.0|3.0";

Expand Down
3 changes: 3 additions & 0 deletions Source/Bind/ES/ESGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ public ESGenerator(Settings settings, string dirName)
Settings.DefaultDocPath = Path.Combine(
Settings.DefaultDocPath, "ES20"); // no ES11 docbook sources available

Settings.OverridesFiles.Add("GL2/overrides.xml");
Settings.OverridesFiles.Add("GL2/ES/1.1/");

// Khronos releases a combined 1.0+1.1 specification,
// so we cannot distinguish between the two.
// Todo: add support for common and light profiles.
Expand Down
Loading