Commit graph

5379 commits

Author SHA1 Message Date
Stefanos A b81aaf9a12 No point in using 16bpp color 2013-12-22 14:15:47 +01:00
Stefanos A c42090835f Cleaned up temporary context construction
The temporary context is now retained until the actual context has been
constructed. If we don't do this, then WGL_ARB_create_context may fail
to work correctly on specific GPUs (e.g. Intel). This may affect issue
#19.
2013-12-22 14:15:46 +01:00
Stefanos A 146e8f3fb1 Fixed GetModesARB implementation
The correct way to query number of available pixel formats is to use
Wgl.Arb.GetPixelFormatAttrib(NumberPixelFormatsArb), not
Wgl.Arb.ChoosePixelFormats. This fixes an issue where Intel drivers
would fail to report any pixel formats in GetModesARB, even when
WGL_ARB_pixel_format is supported.
2013-12-22 14:15:46 +01:00
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. 3ee6d1dbbd Updated author information (2/2) 2013-12-16 12:43:11 +01:00
Stefanos A. f54bee95e1 Updated author information 2013-12-16 11:07:05 +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 1490c8460f Removed lib/ and *.nupkg from zip archive 2013-12-15 23:08:53 +01:00
Stefanos A 1102ccb943 Fixed build order in Nsis configuration 2013-12-15 23:08:19 +01:00
Stefanos A f17541156e Added Dependencies folder to Nsis installer 2013-12-15 23:07:56 +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
Stefanos A 4b3aac38b6 Merge branch 'no-reflect' of https://github.com/opentk/opentk
Conflicts:
	OpenTK.sln
2013-12-15 18:30:47 +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 87030c0e68 Merge branch 'no-reflect'
Conflicts:
	OpenTK.sln
	Source/Bind/FuncProcessor.cs
	Source/OpenTK/Graphics/ES11/ES11.cs
	Source/OpenTK/Graphics/ES11/ES11Core.cs
	Source/OpenTK/Graphics/ES11/ES11Delegates.cs
	Source/OpenTK/Graphics/ES20/ES20.cs
	Source/OpenTK/Graphics/OpenGL/GL.cs
	Source/OpenTK/Graphics/OpenGL/GLCore.cs
	Source/OpenTK/Graphics/OpenGL/GLDelegates.cs
	Source/OpenTK/Graphics/OpenGL/GLObsolete.cs
2013-12-15 17:37:25 +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. 146208ad81 Build UpdateVersion before OpenTK 2013-12-15 15:36:24 +01:00
Stefanos A. 9a49008cc1 Generate debug symbols in release builds 2013-12-15 15:36:12 +01:00
Stefanos A. d022e4c020 Improved WindowState changes on SDL2 backend
SDL2 fails to report several different WindowState changes. OpenTK uses
a number of hacks to make it work to some extent, however real fixes
will have to be implemented upstream.
2013-12-15 15:35:57 +01:00
Stefanos A bc95084804 Merge branch 'sdlres' 2013-12-15 13:51:29 +01:00
Stefanos A. 9407b61116 Updated solution to VS2013 format. 2013-12-15 13:47:29 +01:00
Stefanos A. 72e919c0b5 Added nuget.exe to project items 2013-12-15 13:47:19 +01:00
Stefanos A. 1701f923ca Committed nuget cmdline tool to source control
This appears to be the simplest (only?) way to use nuget in a
cross-platform manner.
2013-12-15 13:36:00 +01:00
Stefanos A 38821d0a0e Merge branch 'nuget' 2013-12-15 13:23:16 +01:00
Stefanos A 1af4f60c45 Add OpenTK.dll.config as content 2013-12-15 13:21:22 +01:00
Stefanos A bf1a43be4f MonoDevelop insists on making these changes 2013-12-15 13:05:06 +01:00