Stefanos A
4ced172bdc
Minor code cleanup
2013-12-22 14:15:45 +01:00
Stefanos A
613ca93d89
Use gdi32 implementations of functions
...
Several functions are defined in both gdi32 and opengl32. Using the
opengl32/wgl versions did not appear to help with issue #19 . Let's use
the gdi32 version instead, as suggested here:
https://www.opengl.org/wiki/Platform_specifics:_Windows#The_WGL_functions
2013-12-22 14:15:45 +01:00
Stefanos A
3413271d8a
Load opengl32.dll before gdi32.dll
...
According to
http://stackoverflow.com/questions/199016/wglcreatecontext-in-c-sharp-failing-but-not-in-managed-c ,
opengl32.dll must be loaded before gdi32.dll. Affect issue #19 .
2013-12-22 14:15:45 +01:00
Stefanos A
954b1e98b6
Minor code cleanup
...
No need to wrap Wgl.DescribePixelFormat, just call it directly.
2013-12-22 14:15:44 +01:00
Stefanos A
1c8e7bc993
Use opengl32 instead of gdi32 throughout
...
Since we are dynamically loading opengl32.dll, we are supposed to use
the wgl version of functions that exist in both opengl32 and gdi32 dlls.
2013-12-22 14:15:44 +01:00
Stefanos A
234c15e9c9
Corrected the entrypoint for wglChoosePixelFormat
2013-12-22 14:15:43 +01:00
thefiddler
c8989f3e0d
Implemented new GamePad interface (WIP)
2013-12-19 16:28:20 +01:00
thefiddler
9374b6b41b
Implemented GamePadButtons
2013-12-19 16:27:57 +01:00
thefiddler
a4d7d79b95
Updated internal IGamePadDriver interface
2013-12-19 16:27:26 +01:00
thefiddler
9b98228240
Implemented GameController API bindings
2013-12-19 10:42:12 +01:00
thefiddler
9dd97cb3e1
Use SDL2 event API for joystick devices
2013-12-18 17:16:29 +01:00
thefiddler
427b3641a0
Implemented SDL2 Joystick and GameController events
2013-12-18 15:50:59 +01:00
Stefanos A.
809799aa90
Clean up shader error detection
2013-12-17 12:09:00 +01:00
Stefanos A.
f4360beb74
Use 16bit depth in GraphicsMode.Default
...
16bits appear to be better supported than 24bits on virtual machines.
2013-12-16 10:44:37 +01:00
Stefanos A.
3c6682e080
GraphicsContext cannot be released by finalizer
...
On many/most platforms, GraphicsContexts can only be released by the
thread where they are current. This means that the user must call
GraphicsContext.Dispose() or risk a resource leak.
Since we cannot release contexts on the finalizer thread, we should keep
strong references, instead of weak references, until the user explicitly
calls Dispose().
This patch fixes issues with SDL2 crashing when running the MonoGame
WindowsGL test suite.
2013-12-16 10:43:56 +01:00
Stefanos A.
498f16c2bd
Improved diagnostics
...
This helps when tracking down GraphicsContext-related issues in SDL2.
2013-12-16 10:39:54 +01:00
Stefanos A.
6ad91dcc5b
Added hack for MonoGame compatibility
...
MonoGame uses reflection to access internal APIs. We need to keep these
available until this is fixed downstream.
2013-12-16 10:39:11 +01:00
Stefanos A.
1392d48ec0
Protect against recursion in Closing event
...
Misbehaving clients that shall not be named here may call
GameWindow.Close() inside the GameWindow.Closing event. This causes
recursion in SDL2, crashing the application.
This patch adds a guard to protect against recursion when calling
GameWindow.Close().
2013-12-16 10:37:59 +01:00
Stefanos A
39a216f1ac
Added overloads for compatibility with svn r3127
...
Several projects are still using the last svn revision from the
sourceforge repository (r3127). These overloads provide an upgrade path
from r3127 to OpenTK 1.1.
2013-12-16 01:55:05 +01:00
Stefanos A
6e110cb820
Normalized xml doc file paths
2013-12-15 23:24:17 +01:00
Stefanos A
a46f895cda
Fixed build in Nsis configuration
2013-12-15 22:33:28 +01:00
Stefanos A
78acd27c4c
Updated OpenGL documentation to Khronos r24522
2013-12-15 22:32:32 +01:00
Stefanos A
14d815dc8b
Fixed deprecation warning
2013-12-15 22:02:32 +01:00
Stefanos A
0db58e36bc
Eliminated cls-compliance warnings in BlittableValueType
2013-12-15 22:02:21 +01:00
Stefanos A
f579d0fd81
Eliminated cls-compliance warnings in the math library
2013-12-15 22:02:08 +01:00
Stefanos A
aeb7a72d79
Eliminated CLS-compliance warnings in the bindings
2013-12-15 22:01:45 +01:00
Stefanos A
e9f54dc61e
Fixed memory corruption on string return type marshaling
2013-12-15 20:57:25 +01:00
parallels
b31e0e8474
Compatibility fixes for Mono 2.10
...
The Mono 2.10 compiler fails when compiling extern methods that are not
marked as DllImport. We fix that by adding a method body that throws a
NotImplementedException instead.
Additionally, MonoDevelop 2.8 cannot open sln files with ToolsVersion 12.
The fix is to change ToolsVersion to 11.
2013-12-15 18:27:24 +01:00
Stefanos A
d0e52f6de7
Maintain backwards compatibility with 1.1
2013-12-15 16:58:33 +01:00
Stefanos A
dfd683ef49
Merge master into no-reflect
2013-12-15 16:36:37 +01:00
Stefanos A
5b48564ec2
Ignore missing comments warning
...
The OpenGL manpages do not include extension methods. Ignore this
warning to let more important ones shine through.
2013-12-06 19:33:03 +01:00
Stefanos A
1d26917758
Updated license information
2013-12-06 09:23:56 +01:00
Stefanos A
f1e93005b9
Added methods for 1.0 compatibility
2013-12-06 09:23:43 +01:00
Stefanos A.
a4f59f7384
Split binaries for library and supporting tools
...
Tools now go to the Binaries/Tools/[Debug|Release] directory. OpenTK
remains at BInaries/OpenTK/[Debug|Release].
Mono.Cecil and IKVM now reside under the Dependencies/managed/
directory.
2013-12-05 18:43:47 +01:00
Stefanos A
0bdb871e90
Merge remote-tracking branch 'origin/master' into no-reflect
2013-12-05 14:53:37 +01:00
Stefanos A
ca5a5b4d16
Reduce temporary string allocations
...
Instead of modifying the name of an OpenGL symbol on the managed side,
before copying it to the unmanaged side, we perform the modification
directly on the unmanaged side. This reduces the total amount of
allocations in OpenTK by ~30% (673496 bytes in 10750 objects compared
to 930272 bytes in 15243 objects before this modification.)
2013-12-05 11:20:58 +01:00
Stefanos A
b2911267c2
Added debug arguments in release builds
2013-12-05 09:14:13 +01:00
Stefanos A
d942986d17
Generate debug symbols in release builds
2013-12-05 09:13:50 +01:00
Stefanos A.
455a02299e
Updated project files
...
Generate debug symbols on release builds. Remove unused resx file that
referenced WinForms.
2013-12-05 09:03:12 +01:00
Stefanos A
e59405dab3
Implemented manual marshaling of string parameters
2013-12-04 22:32:56 +01:00
Stefanos A
7487aab4d9
Correct convenience wrapper implementation
2013-12-04 22:26:30 +01:00
Stefanos A
e2801c8c6c
Convert string[] callsites to IntPtr
...
This fixes the signature mismatch between the new marshaling code and
the callsites.
2013-12-04 21:22:33 +01:00
Stefanos A
f15c9ecb95
Implemented marshaling for string arrays
...
This allows functions such as GL.ShaderSource to run on Mono without
crashing.
2013-12-04 20:33:19 +01:00
Stefanos A
406de0b846
Regenerated bindings
2013-12-03 09:10:45 +01:00
Stefanos A
4286b47d6f
Clean up wrapper generation
...
We can now apply multiple WrapperTypes values to a single parameter.
2013-12-03 09:10:36 +01:00
Stefanos A
e178f306eb
Update WrapperTypes values for [Flags]
2013-12-03 09:09:19 +01:00
Stefanos A
33874c2d6d
Removed duplicate ldarg
2013-12-03 08:59:48 +01:00
Stefanos A.
ca36c6f26a
Workaround for #5
...
WS_CLIPCHILDREN and WS_CLIPSIBLINGS appear to cause flickering on
specific video cards. OpenGL appears to work correctly without these, so
we'll disable them to return to OpenTK 1.0 behavior.
2013-12-02 23:39:36 +01:00
Stefanos A.
58ab194ba8
Fixed centering for non DPI-aware applications
2013-12-02 23:37:22 +01:00
Stefanos A.
c480911843
DPI-scaling should affect resolution
...
The correct resolution will now be reported depending on whether the
application is DPI-aware.
2013-12-02 23:37:00 +01:00