thefiddler [Tue, 18 Feb 2014 15:43:47 +0000 (16:43 +0100)]
[SDL2] Implemented cursor APIs
Affects issue #9
thefiddler [Tue, 18 Feb 2014 15:43:21 +0000 (16:43 +0100)]
[Core] Added MouseCursor class
This branch marks the beginning of hardware cursor support (affects
issue #9)
thefiddler [Sun, 27 Apr 2014 07:53:22 +0000 (09:53 +0200)]
[ES][GL] Synced with April Khronos specification
thefiddler [Sat, 26 Apr 2014 18:27:00 +0000 (20:27 +0200)]
[X11] Set WM_CLASS property
This allows Ubuntu Unity and Gnome Shell to detect and display
the correct application name.
thefiddler [Sat, 26 Apr 2014 17:26:07 +0000 (19:26 +0200)]
Merge pull request #103 from thefiddler/memopt
Memory optimizations. Memory consumption reduced by up to 80% and memory allocations reduced by up to 70%, depending on the platform.
thefiddler [Sat, 26 Apr 2014 17:13:03 +0000 (19:13 +0200)]
[GL] Only print debug info in debug mode
thefiddler [Sat, 26 Apr 2014 17:12:49 +0000 (19:12 +0200)]
[GL] Removed unused code
thefiddler [Sat, 26 Apr 2014 16:28:51 +0000 (18:28 +0200)]
[OpenTK] Removed reflection binding loading
This code is no longer in use.
thefiddler [Sat, 26 Apr 2014 16:24:13 +0000 (18:24 +0200)]
[X11] Implemented new-style bindings for GLX
Replaced delegates with call instructions and completely removed the
old extension loading code.
thefiddler [Sat, 26 Apr 2014 16:22:50 +0000 (18:22 +0200)]
[Win] Fixed warnings
Protected object in static class and wrong parameter names in
documentation
thefiddler [Sat, 26 Apr 2014 12:23:52 +0000 (14:23 +0200)]
[GL][ES] Regenerated bindings
thefiddler [Sat, 26 Apr 2014 12:23:29 +0000 (14:23 +0200)]
[GL][ES] Do not break public API
Even if that API is not meant to be used by applications.
thefiddler [Sat, 26 Apr 2014 12:22:37 +0000 (14:22 +0200)]
[Bind] Do not generate DllImports
These break dynamic loading of OpenGL ES and bloat OpenTK.dll with
duplicated strings. The new extension loading mechanism is now fast
enough to make DllImports unnecessary.
thefiddler [Sat, 26 Apr 2014 12:21:26 +0000 (14:21 +0200)]
[Mac] Sped up extension loading
From ~200ms down to ~65ms on a rMBP with Nvidia 650M and Mac OS X
10.9.2.
thefiddler [Sat, 26 Apr 2014 12:20:17 +0000 (14:20 +0200)]
[Graphics] GetAddress(string) is no longer needed
thefiddler [Sat, 26 Apr 2014 12:19:19 +0000 (14:19 +0200)]
[Graphics] Redirect GetAddress(string)
GetAddress(string) now calls GetAddress(IntPtr) internally. This
reduces the number of APIs that must be implemented for each platform.
thefiddler [Fri, 25 Apr 2014 19:55:00 +0000 (21:55 +0200)]
[X11] Optimized XKey translation
thefiddler [Fri, 25 Apr 2014 15:25:20 +0000 (17:25 +0200)]
[Bind][ES][GL] Output entry points as byte[]
Moving from string[] to byte[] reduces startup memory allocations
tremendously (up to 70% lower memory use on Windows!)
thefiddler [Fri, 25 Apr 2014 15:23:06 +0000 (17:23 +0200)]
[Win] Wgl no longer inherits GraphicsBindingsBase
This is a necessary step for the next commit.
thefiddler [Fri, 25 Apr 2014 12:50:55 +0000 (14:50 +0200)]
[ES] ES10 does not require initialization
It consists solely of DllImports that will be initialized on first use,
regardless of the existence of an OpenGL context.
thefiddler [Fri, 25 Apr 2014 12:15:06 +0000 (14:15 +0200)]
[Input] Use Key.LastKey instead of Enum.GetValues
This avoids unnecessary memory allocations in the KeyboardDevice
constructor.
thefiddler [Fri, 25 Apr 2014 12:13:55 +0000 (14:13 +0200)]
[Win] Replaced KeyMap dictionary with switch
This reduces the amount of allocations on the startup path.
thefiddler [Fri, 25 Apr 2014 11:38:53 +0000 (13:38 +0200)]
[OpenTK] Rebased on develop
thefiddler [Wed, 2 Apr 2014 11:19:41 +0000 (13:19 +0200)]
[Bind] Do not generate slots for OpenGL <= v1.1
We can use DllImports for OpenGL functions <= v1.1 on all platforms,
including Windows. This allows us to reduce the number of required
GetProcAddress calls by 474, reducing startup time and memory
consumption.
This setting can be turned off through Settings.Legacy.UseDllImports
and UseWindowsCompatibleGL.
thefiddler [Wed, 2 Apr 2014 11:17:07 +0000 (13:17 +0200)]
[OpenTK] Fixed DllImport library for OpenGL on Mac OS X
thefiddler [Wed, 2 Apr 2014 11:16:45 +0000 (13:16 +0200)]
[Examples] Improved ExternalContext test
Also added documentation
thefiddler [Wed, 2 Apr 2014 09:03:51 +0000 (11:03 +0200)]
[SDL2] Optimized Sdl2KeyCode translation
Also fixed Key.WinLeft, WinRight and Menu translation.
thefiddler [Wed, 2 Apr 2014 08:33:06 +0000 (10:33 +0200)]
[Mac] Optimized MacOSKeyCode translation
This also reduces memory allocations on startup by ~10K.
thefiddler [Fri, 25 Apr 2014 09:11:42 +0000 (11:11 +0200)]
[GL] Added missing GetPName.MaxPatchVertices
thefiddler [Thu, 24 Apr 2014 07:22:46 +0000 (09:22 +0200)]
[Mac] Removed most legacy Carbon code
thefiddler [Thu, 24 Apr 2014 07:09:11 +0000 (09:09 +0200)]
[Mac] Removed unused Carbon APIs
thefiddler [Wed, 23 Apr 2014 23:14:40 +0000 (01:14 +0200)]
[Mac] Migrated AglContext to OpenTK.GLControl
thefiddler [Wed, 23 Apr 2014 20:14:09 +0000 (22:14 +0200)]
[Mac] Mouse coordinates are reported in pixels
thefiddler [Wed, 23 Apr 2014 20:13:53 +0000 (22:13 +0200)]
[Mac] SendFloat should use _fpret on i386
thefiddler [Wed, 23 Apr 2014 19:20:18 +0000 (21:20 +0200)]
[Mac] Use scrollFactor variable
thefiddler [Wed, 23 Apr 2014 19:17:58 +0000 (21:17 +0200)]
[Mac] Fixed a warning related to volatile UniqueId
Also changed the class name to OpenTK_GameWindow
thefiddler [Wed, 23 Apr 2014 19:00:24 +0000 (21:00 +0200)]
[Mac] Window should be invisible on startup
Also fixes the initial position of the window.
thefiddler [Thu, 24 Apr 2014 11:45:17 +0000 (13:45 +0200)]
Merge branch 'pr/101' into develop
Olle Håkansson [Wed, 23 Apr 2014 18:15:09 +0000 (20:15 +0200)]
Licensed files under MIT/X11.
thefiddler [Tue, 22 Apr 2014 22:05:34 +0000 (00:05 +0200)]
[Mac] Avoid class conflicts for multiple windows
When creating multiple windows, their classes must have different class
names or they will fail to construct.
This commit ensures their names are unique. It also fixes a potential
memory leak in the Icon setter.
thefiddler [Tue, 22 Apr 2014 22:03:07 +0000 (00:03 +0200)]
[Mac] Add CocoaContext.GetGraphicsMode via CGL
Once the context is constructed, we use GetGraphicsMode to retrieve the
exact GraphicsMode that was selected by CocoaContext.
Olle Håkansson [Tue, 22 Apr 2014 19:39:17 +0000 (21:39 +0200)]
Fixed too high mouse scrolling speed.
Olle Håkansson [Tue, 22 Apr 2014 19:29:03 +0000 (21:29 +0200)]
Much improved handling of window/border states.
Olle Håkansson [Tue, 22 Apr 2014 18:02:05 +0000 (20:02 +0200)]
Fixed missing Mode value in CocoaContext.
Crashed E.g. GameWindow States example.
Olle Håkansson [Tue, 22 Apr 2014 18:01:22 +0000 (20:01 +0200)]
Fixed the HelloGL3 example for the Mac.
Upped versions to make it work on Mac; think this should not be a
problem for most other machines.
Olle Håkansson [Mon, 21 Apr 2014 19:14:32 +0000 (21:14 +0200)]
Added a helper for creating cocoa window infos.
Olle Håkansson [Mon, 21 Apr 2014 18:37:36 +0000 (20:37 +0200)]
Register mouse drag as well as move.
Olle Håkansson [Mon, 21 Apr 2014 18:32:16 +0000 (20:32 +0200)]
Closing should occur in ProcessEvents.
Olle Håkansson [Mon, 21 Apr 2014 17:41:45 +0000 (19:41 +0200)]
Cleanups.
Olle Håkansson [Mon, 21 Apr 2014 17:41:36 +0000 (19:41 +0200)]
Fixed mouse position not being received.
Olle Håkansson [Mon, 21 Apr 2014 17:40:44 +0000 (19:40 +0200)]
Fixed crashes from callbacks.
Olle Håkansson [Sun, 20 Apr 2014 21:30:37 +0000 (23:30 +0200)]
Better handling of maximized window.
Used the “zoom” command before, but it has some limitations (e.g. no
event when zoom is done).
Olle Håkansson [Sun, 20 Apr 2014 21:15:56 +0000 (23:15 +0200)]
Disabled capturing when changing resolution.
Might be off here, but without capturing it seems like we get a
behaviour closer to that of the PC.
Olle Håkansson [Sun, 20 Apr 2014 20:26:26 +0000 (22:26 +0200)]
Bug fixes.
Olle Håkansson [Sun, 20 Apr 2014 17:56:23 +0000 (19:56 +0200)]
Better fullscreen handling.
Olle Håkansson [Sun, 20 Apr 2014 08:08:44 +0000 (10:08 +0200)]
Restored most window functionality.
Olle Håkansson [Sat, 19 Apr 2014 11:36:44 +0000 (13:36 +0200)]
Fixed swap interval.
Olle Håkansson [Sat, 19 Apr 2014 10:17:14 +0000 (12:17 +0200)]
Setup listening for window events.
Olle Håkansson [Fri, 18 Apr 2014 20:30:50 +0000 (22:30 +0200)]
Cocoa bindings through libobjc.dylib
thefiddler [Wed, 2 Apr 2014 07:27:23 +0000 (09:27 +0200)]
Merge branch 'es_docs' into develop
thefiddler [Tue, 1 Apr 2014 07:49:56 +0000 (09:49 +0200)]
[Examples] Test mouse input under heavy load
thefiddler [Tue, 1 Apr 2014 07:39:48 +0000 (09:39 +0200)]
Merge remote-tracking branch 'frassle/issue76' into develop
thefiddler [Mon, 31 Mar 2014 16:20:08 +0000 (18:20 +0200)]
[Math] Replaced tab characters with spaces
thefiddler [Mon, 31 Mar 2014 16:19:18 +0000 (18:19 +0200)]
Merge branch 'pr/84' into develop
thefiddler [Mon, 31 Mar 2014 15:40:15 +0000 (17:40 +0200)]
[Bind] Corrected CSharpSpecWriter output and warning messages
CSharpSpecWriter now correctly outputs doc summaries on ARB_imaging
functions that do not have a version/deprecation string. Additionally,
it no longer warns about documentation parameter mismatches for
parameters matching C# keywords.
thefiddler [Mon, 31 Mar 2014 15:09:30 +0000 (17:09 +0200)]
[Bind] Move documentation generation to DocProcessor class
This de-duplicates a large amount of code that is shared between the
various ISpecWriter implementations.
thefiddler [Mon, 31 Mar 2014 08:10:56 +0000 (10:10 +0200)]
[Bind] Make documentation output closer to previous xslt implementation
thefiddler [Mon, 31 Mar 2014 08:09:33 +0000 (10:09 +0200)]
[Bind] Propagate ComputeSize attribute in cloned Parameters
thefiddler [Mon, 31 Mar 2014 07:51:15 +0000 (09:51 +0200)]
[Bind] More aggressive trimming of documentation strings
thefiddler [Mon, 31 Mar 2014 07:50:51 +0000 (09:50 +0200)]
[Bind] Add NoIndent option to BindStreamWriter
thefiddler [Sun, 30 Mar 2014 17:16:30 +0000 (19:16 +0200)]
[Bind] Do not skip parameters in documentation
Multiple parameters may share a single description. The DocProcessor
will now correctly generate DocumentationParameters for each of them.
thefiddler [Sun, 30 Mar 2014 09:01:30 +0000 (11:01 +0200)]
[Compatibility] Don't generate xml documentation
thefiddler [Sun, 30 Mar 2014 09:01:03 +0000 (11:01 +0200)]
[Bind] Remove xmlns to simplify xpath processing
thefiddler [Sun, 30 Mar 2014 08:43:30 +0000 (10:43 +0200)]
[Bind] Use DocumentationParameter instead of KeyValuePair
thefiddler [Sun, 30 Mar 2014 08:29:50 +0000 (10:29 +0200)]
[Bind] Merge GL2 and GL4 documentation into one
thefiddler [Sun, 30 Mar 2014 08:29:11 +0000 (10:29 +0200)]
[Bind] Concatenate multiline documentation
thefiddler [Fri, 28 Mar 2014 19:08:38 +0000 (20:08 +0100)]
[Bind] Process documentation from subdirectories
Instead of using xslt, we now process the documentation in code. This
allows us to fix mismatches from e.g. invalid parameter names that
sometimes creep in the specs.
thefiddler [Fri, 28 Mar 2014 19:06:55 +0000 (20:06 +0100)]
[Bind] Added documentation files for OpenGL ES
Fraser Waters [Sun, 23 Mar 2014 22:31:32 +0000 (22:31 +0000)]
Use Marshal.GetLastWin32Error instead of GetLastError.
Also removes magic number 1171 and replaces with constant.
Fraser Waters [Sun, 23 Mar 2014 16:26:24 +0000 (16:26 +0000)]
Use GetMouseMovePointsEx to smooth mouse input.
Uses GetMouseMovePointsEx to get mouse move history so mouse events aren't dropped even with low framerates.
Fixes #76.
thefiddler [Tue, 18 Mar 2014 13:29:41 +0000 (14:29 +0100)]
[Build] Updated copyright information
thefiddler [Tue, 18 Mar 2014 13:28:52 +0000 (14:28 +0100)]
[Build] Set revision to 0 outside source control
This ensures that properly built packages take precedence to incorrectly
built packages.
thefiddler [Tue, 18 Mar 2014 11:08:02 +0000 (12:08 +0100)]
[GL] Added missing [Rgba]16Snorm texture formats
See https://www.opengl.org/sdk/docs/man4/html/glTexImage2D.xhtml or the
4.4 spec, section 8.5, table "Sized internal color formats".
thefiddler [Tue, 18 Mar 2014 08:50:03 +0000 (09:50 +0100)]
Merge pull request #85 from csantosbh/develop
Centering the cursor at (width/2, height/2) when the mouse is hidden
csantos [Tue, 18 Mar 2014 04:44:52 +0000 (01:44 -0300)]
Centering the cursor at (width/2, height/2), effectively fixing
the issue described in https://github.com/mono/MonoGame/issues/2283
Phyyl [Mon, 17 Mar 2014 20:59:09 +0000 (16:59 -0400)]
Added multiplication operator to all vectors
thefiddler [Sun, 16 Mar 2014 23:58:48 +0000 (00:58 +0100)]
[Docs] Removed Changelog.txt from Build.Docs project
thefiddler [Sun, 16 Mar 2014 23:56:04 +0000 (00:56 +0100)]
[Docs] Removed Changelog.txt
A complete changelog can be found using git or by browsing github
thefiddler [Sun, 16 Mar 2014 23:53:46 +0000 (00:53 +0100)]
[Docs] Updated documentation for 1.1.1 release
thefiddler [Sun, 16 Mar 2014 23:51:28 +0000 (00:51 +0100)]
Merge remote-tracking branch 'origin/issue64' into develop
thefiddler [Sun, 16 Mar 2014 23:43:36 +0000 (00:43 +0100)]
[Win] Invert vertical axes to match 1.0 API
The 1.0 API defines +y as up and -y as down. This matches XInput but
disagrees with WinMM, where we have to invert the vertical axes.
thefiddler [Sun, 16 Mar 2014 23:30:19 +0000 (00:30 +0100)]
[Input] LegacyJoystickDriver now reports hat pos
thefiddler [Sun, 16 Mar 2014 23:30:04 +0000 (00:30 +0100)]
[Input] JoystickHatState is now IEquatable
thefiddler [Sun, 16 Mar 2014 23:29:45 +0000 (00:29 +0100)]
[Input] JoystickState.ToString now prints hat pos
thefiddler [Sun, 16 Mar 2014 23:29:12 +0000 (00:29 +0100)]
[Win] Joystick driver now reports hat positions
thefiddler [Sun, 16 Mar 2014 22:29:21 +0000 (23:29 +0100)]
[Docs] Updated documentation for 1.1.1 release
thefiddler [Sun, 16 Mar 2014 21:50:12 +0000 (22:50 +0100)]
[SDL2] On Mac, OpenGL 3.0 or 3.1 should create 3.2 context
SDL2/Mac fails to create a 3.0 or 3.1 OpenGL context. We implicitly
bump version to 3.2, otherwise 3.0 or 3.1 would give a 2.1 context.
thefiddler [Sun, 16 Mar 2014 18:40:49 +0000 (19:40 +0100)]
[ES] Fixed loading of OpenGL ES core API
eglGetProcAddress cannot be used to retrieve
entry points of core functions. Instead, we
use [DllImport] for core functions and function
pointers for extension functions.
Squashed commit of the following:
commit
0b84aa6ef78dfa3600b81fc412eb192f2a87e40c
Author: thefiddler <stapostol@gmail.com>
Date: Sat Mar 15 02:24:58 2014 +0100
[Examples] Rolled back changes to Example browser
commit
1acfbaac3d17184debdbbe872c58ac07d1b37c0a
Author: thefiddler <stapostol@gmail.com>
Date: Sat Mar 15 02:20:57 2014 +0100
[Examples] Rolled back WinForms example
commit
835d9d6035a890bd3426566929fbfd25c493eca0
Author: thefiddler <stapostol@gmail.com>
Date: Sat Mar 15 01:15:01 2014 +0100
[Examples] Rolled back erroneous GLControl mods
commit
056418014f0e835e83fb85b54b8749519a555364
Author: thefiddler <stapostol@gmail.com>
Date: Fri Mar 14 23:11:11 2014 +0100
[Rewrite] Remove calli prototypes
When a function is called indirectly via a function pointer, its
prototype is not required (the prototype is added as a callsite at the
calli invocation.) Removing these prototypes reduces binary size by
roughly 400KB.
commit
353a16ec2836c597150d2fab28581e7c264b2b39
Author: thefiddler <stapostol@gmail.com>
Date: Fri Mar 14 22:31:25 2014 +0100
[Rewrite] Call DllImports directly
When a function does not have an allocated slot (i.e. slot = -1), then
we will call its DllImport signature directly.
commit
9a5313e4b7afb10b698d255e4b5637887bf71cf3
Author: thefiddler <stapostol@gmail.com>
Date: Fri Mar 14 22:30:04 2014 +0100
[Bind] Do not allocate slots for DllImports
commit
6ac5342409363cac0e59f9dc669948b319bd20a9
Author: thefiddler <stapostol@gmail.com>
Date: Fri Mar 14 22:29:07 2014 +0100
[Bind] Added option to use DllImports
This is necessary for the core functionality of OpenGL ES, where
eglGetProcAddress returns null or garbage (the latter on Android.)
thefiddler [Thu, 13 Mar 2014 18:51:29 +0000 (19:51 +0100)]
[Graphics] Init OpenTK when creating external context
Fixes issue #52
thefiddler [Thu, 13 Mar 2014 18:44:33 +0000 (19:44 +0100)]
[Graphics] Regenerated with newest generator