Commit Graph

841 Commits

Author SHA1 Message Date
Sam Lantinga
75c57f8db7 Don't use D3D9Ex by default, since it can change behavior for games which rely on D3D9 classic. 2014-06-02 08:58:07 -07:00
Sam Lantinga
9d00f75a27 Fixed bug 2520 - Held double-click app startup creates a stuck MOUSEBUTTONDOWN event
snake5creator

When starting application with the usual "double click on file" method on Windows, only holding the last click, an unnecessary MOUSEBUTTONDOWN event is sent before the initial MOUSEMOTION event, and mouse button state is stuck in the sense that it takes a subsequent button release, followed by another press for the system to resume sending events (beginning with the next button release / MOUSEBUTTONUP event).

Input event log with held double-click startup: http://i.imgur.com/nypGKR2.png

Without: http://i.imgur.com/yaIqAvV.png
2014-05-31 14:03:04 -07:00
Sam Lantinga
70df9cd0cd Fullscreen to windowed mode switch
From Melesie

I noticed that when user switches from fullscreen mode to windowed mode and exits application while in windowed mode, Windows performs an additional change of display settings, even though desktop resolution is the same as current one. This causes short black screen to show up. The only way I know of avoiding this is to explicitly switch to default display settings found in registry. MSDN documentation for ChangeDisplaySettingsEx states:

Passing NULL for the lpDevMode parameter and 0 for the dwFlags parameter is the easiest way to return to the default mode after a dynamic mode change.
2014-05-31 12:21:55 -07:00
Sam Lantinga
18c31dec54 Fixed Direct3DCreate9Ex prototype 2014-05-31 11:53:19 -07:00
Sam Lantinga
0c6b99d576 Fixed cast 2014-05-31 11:48:52 -07:00
Sam Lantinga
49c53fd280 Use D3D9Ex when available
This hopefully works around crashes in Intel D3D9 support in Windows 8.1.
2014-05-31 11:37:12 -07:00
Sam Lantinga
52222db255 Fixed SDL error when filtering events after shutdown.
This can happen when restoring video modes during video system shutdown
2014-05-31 11:33:25 -07:00
Ryan C. Gordon
bb7a27fadd Fixed up SDL_CaptureMouse() on Windows to work like I expected.
This would have been a one-line patch to the documentation (specifying that
 captures only work as long as the left mouse button is pressed), but I didn't
 like that, so I got a little crazy about this instead.
2014-05-30 01:51:13 -04:00
Ryan C. Gordon
bcc2cc8722 Fixed hit-testing on Windows.
Needed to convert from screen to client coords.
2014-05-30 01:49:26 -04:00
Ryan C. Gordon
4ef6eddaf7 Make some printf() calls into SDL_Log() so I can see them on Windows. :) 2014-05-30 01:48:08 -04:00
Ryan C. Gordon
89ad793407 First shot (not even compiled) at Windows hit-testing support. 2014-05-29 13:39:02 -04:00
Ryan C. Gordon
98c03f391d Changed drag area API to a hit-testing API.
There were several good arguments for this: it's how Windows works with
 WM_NCHITTEST, SDL doesn't need to manage a list of rects, it allows more
 control over the regions (how do you use rects to cleanly surround a circular
 button?), the callback can be more optimized than a iterating a list of
 rects, and you don't have to send an updated list of rects whenever the
 window resizes or layout changes.
2014-05-28 01:22:47 -04:00
Ryan C. Gordon
7a4ddcd8c6 Don't hardcode an 8 here. 2014-05-27 15:47:25 -04:00
Ryan C. Gordon
20ac4bae89 Some updates for the X11 drag areas work. 2014-05-27 15:40:03 -04:00
Damian Kaczmarek
2744c0195a Initial work on X11 implementation of SDL_SetWindowDragAreas(). 2014-05-27 14:41:16 -04:00
Ryan C. Gordon
3cbc83ef11 First shot at SDL_SetWindowDragAreas().
Only Cocoa implemented right now.
2014-05-27 01:27:42 -04:00
Ryan C. Gordon
dd5277d65c Fixed stack overflow in X11_CreateWindow() (thanks, rapha and Brad!).
This should be a "long" which on a 64-bit system is likely to be > 32-bits,
 causing XGetICValues() to write past the end of the variable (and stack).

Fixes Bugzilla #2513.
2014-05-24 21:06:40 -04:00
Ryan C. Gordon
ded970f70f Flip this around to do the simpler condition first. 2014-05-24 18:23:56 -04:00
Ryan C. Gordon
668025c239 Implement SDL_CaptureMouse() for Mac OS X. 2014-05-24 18:23:39 -04:00
Ryan C. Gordon
b7d2c0e9d6 Implemented SDL_CaptureMouse(). 2014-05-24 01:30:37 -04:00
Ryan C. Gordon
846a3e0776 Added some FIXMEs. 2014-05-24 01:27:19 -04:00
Ryan C. Gordon
f0e0f4ca15 Fixed whitespace. 2014-05-24 01:25:27 -04:00
Ryan C. Gordon
a2710516ef Generated dynapi stuff for the new WinRT entry points. 2014-05-24 01:23:57 -04:00
stopiccot
3cdae42d65 Fixing issues discovered by Philipp Wiesemann 2014-04-23 03:42:32 +03:00
stopiccot
612f4a69db inital apk extension support 2014-04-07 21:20:39 +03:00
Sam Lantinga
d5c109b2f4 Fail if we couldn't create the specified renderer 2014-04-05 16:25:30 -07:00
Philipp Wiesemann
83200a3225 Removed empty statements. 2014-04-05 23:50:09 +02:00
Philipp Wiesemann
2d8b86bb07 Fixed unused local variable warning. 2014-04-05 23:24:33 +02:00
Sam Lantinga
c3c24a335d Fixed the joystick side of XInput haptic detection on Windows 8 2014-03-31 10:38:26 -07:00
Sam Lantinga
764aa147ad Fixed XInput haptic support on Windows 8
It turns out the XBox 360 controller driver never reports force feedback capability, so we'll try to set 0 state and see if that succeeds.
2014-03-29 12:29:38 -07:00
Ryan C. Gordon
17a8d2934d Changed a C++ single-line comment to /* */ style. 2014-03-26 16:19:52 -04:00
Pierre-Loup A. Griffais
833cfe534a Remove the RaiseWindow call from OnWindowRestored for now.
It seems like a net improvement in all the scenarios Sam and I could
think of, and looking at hg history it was added for fullscreen
window management specifically. Much of that code has changed since
then, but maybe it needs to stay there for that and simply be moved
to a fullscreen condition check.

It would solve this issue:

https://bugzilla.libsdl.org/show_bug.cgi?id=2439

As well as cases where on SteamOS, we hide/show specific Steam
overlay windows while expecting them to stay in the background, since
changing the window stacking order really angers the NVIDIA driver.

CR: Sam.
2014-03-26 12:54:51 -07:00
Brandon Schaefer
8938c2b5db Ignore unused mir event functions, need headers in Ubuntu 14.04 to use them. 2014-03-25 15:24:43 -07:00
Brandon Schaefer
2298ed170f Remove two unused variables, causing compiler warnings. 2014-03-25 15:18:18 -07:00
David Ludwig
a99bf4d705 WinRT: Call IDXGIDevice3::Trim before app-suspend, as required on Windows 8.1
Thanks to Sylvain Becker for pointing this out!
2014-03-24 22:51:03 -04:00
David Ludwig
cbf718461c WinRT: Line ending fixes (CRLF to LF) 2014-03-24 22:12:38 -04:00
Gabriel Jacobo
1f92c9dcac Emit SDL_RENDER_DEVICE_RESET on Android when the GLES context is recreated 2014-03-24 11:04:42 -03:00
Ryan C. Gordon
dd81dad1ad Added an assert to help static analyzer. 2014-03-24 07:12:26 -04:00
Sam Lantinga
26823b1bb4 Added an event SDL_RENDER_DEVICE_RESET, which is triggered on Direct3D 11 when the device has been lost and all textures need to be recreated. 2014-03-23 23:09:22 -07:00
Sam Lantinga
3317e4340d Fixing Alt-Enter handling, submitted by Nader Golbaz
I encountered a little issue: DXGI monitors application's message queue and this behavior interferes with SDL if the application already handles Alt-Enter sequence. I think it is necessary to disable this behavior.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb174540%28v=vs.85%29.aspx
2014-03-23 22:53:50 -07:00
David Ludwig
119dff5546 WinRT: Implemented SDL_ShowMessageBox for Windows 8.x/RT hosts
This change does not include message box support for Windows Phone 8, which does
not offer the same message box APIs that Windows 8.x/RT does.
2014-03-23 22:07:01 -04:00
Ryan C. Gordon
6ab50a5e2e Tossed in some SDL_asserts to make static analyzer happier.
(Most of its complaints here are that these ints can be negative, although
they wouldn't been in sane cases. Checking sanity is what assertions do, and
it placates the analyzer appropriately.)
2014-03-23 18:56:47 -04:00
David Ludwig
46a80b04d8 D3D11: Fixed a crash after a GPU device-reset on Win32 2014-03-23 16:08:32 -04:00
David Ludwig
6ce684e92b D3D11: Added code to handle GPU-device-removed scenarios
These scenarios can happen when a GPU is switched, its driver updated, or in
some virtual machines (such as Parallels) are suspended and then resumed.  In
these cases, all GPU resources will already be lost, and it's up to the app to
recover.

For now, SDL's D3D11 renderer will handle this by freeing all GPU resources,
including all textures, and then sending a SDL_RENDER_TARGETS_RESET event.
It's currently up to an app to intercept this event, destroy all of its
textures, then recreate them from scratch.
2014-03-23 13:48:16 -04:00
Sam Lantinga
c3d1037665 Better keyboard detection when some of the keys are remapped, thanks to Lewis Wall 2014-03-23 09:44:04 -07:00
David Ludwig
c2243092d7 WinRT: Miscellaneous app-backgrounding/restoring event fixes and additions
SDL_WINDOWEVENT_FOCUS_LOST is now sent when an app's native window is hidden.
Likewise, SDL_WINDOWEVENT_FOCUS_GAINED is sent when an app's window is shown.
This mimicks behavior seen on iOS and Android.

SDL_WINDOWEVENT_MINIMIZED and SDL_WINDOWEVENT_RESTORED are now sent when the
app's native window is hidden and shown.  Previously, these were sent when an
app was suspended and resumed.  On Windows 8.x/RT, an app may be sent to the
background without being suspended, which previously meant that
SDL_WINDOWEVENT_MINIMIZED might never have been sent.  (On Windows Phone 8,
however, this seems to be different, whereby apps sent to the background appear
to always get suspended.)
2014-03-23 11:04:47 -04:00
David Ludwig
50ee99ecb2 WinRT: Made app-backgrounded events get sent at separate, distinct times.
SDL_APP_WILLENTERBACKGROUND is now sent as soon as the app is told that it is
about to go to the background.  SDL_APP_DIDENTERBACKGROUND is sent via a WinRT
'deferral operation', which is how WinRT gives apps a bit of extra time
(multiple seconds worth) to prepare for an app-backgrounding.

The distinction may be important as the deferral operation's code is always run
in a separate thread.  For Direct3D-only apps, this means that between the
two SDL app-backgrounded events, SDL_APP_WILLENTERBACKGROUND will be the only
one run from the main thread.  Given that some WinRT operations can only be done
on the main thread (operations to the CoreWindow fall into this category), this
could be important.

It is important to note that pre-deferral code may only have a very short bit of
time to execute code, less so than code run in the deferral operation (where
SDL_APP_DIDENTERBACKGROUND is sent from), which usually gets several seconds to
run.
2014-03-23 08:56:52 -04:00
David Ludwig
823bf72130 WinRT globals cleanup: Removed WINRT_GlobalSDLVideoDevice 2014-03-22 21:08:05 -04:00
David Ludwig
b51a3206c8 WinRT: Got OpenGL ES 2 working with the latest version of ANGLE/WinRT.
SDL/WinRT did have support for OpenGL ES 2 via an older version of ANGLE/WinRT,
however its API changed a few months ago, and SDL/WinRT would crash when trying
to use it.  It would also occasionally crash when using the older version.

This changeset should make SDL/WinRT work with the latest version, as
available via MS Open Tech's git repository of it at
https://github.com/msopentech/angle

Older versions of ANGLE/WinRT (from either https://github.com/stammen/angleproject
or https://bitbucket.org/DavidLudwig/angleproject) will need to be updated to
MS Open Tech's latest version.
2014-03-22 20:48:18 -04:00
Ryan C. Gordon
cc52939853 Static analysis fix: more cleanups of unused variables, etc, in blitters. 2014-03-21 10:40:15 -04:00
Ryan C. Gordon
7bf36abfc0 Static analysis fix: more dead stores. 2014-03-21 00:57:43 -04:00
Ryan C. Gordon
ba4b3aa944 Patched to compile on C89 compilers, removed more streamer code. 2014-03-20 18:00:41 -04:00
Ryan C. Gordon
e177b1cc49 Static analysis fix: clean up unused variables and dead stores in blitters. 2014-03-20 17:55:24 -04:00
Ryan C. Gordon
6d6fba4b0a #ifdef'd out the audio streamer code.
It's been hardcoded out forever now, but I've now forcibly removed it with
the preprocessor so static analysis doesn't complain about it for now.

Eventually I want to rewrite or remove this code.
2014-03-20 17:00:33 -04:00
Ryan C. Gordon
a43dbfad0d Static analysis fix: Removed unused variable.
(We don't care if closing the device fails anyhow).
2014-03-20 16:56:37 -04:00
Ryan C. Gordon
3aae0ed2c5 Static analysis fix: uninitialized data.
(This is Clang not knowing that SDL_SetError() always returns -1.)
2014-03-20 16:54:20 -04:00
Ryan C. Gordon
d7a253b5ec Static analysis fix: uninitialized data.
(Clang doesn't know that "_this" was already checked for NULLness elsewhere.)
2014-03-20 16:25:30 -04:00
Ryan C. Gordon
93ba5bd899 Static analysis fix: uninitialized value.
(A false positive: clang doesn't know SDL_SetError() always returns -1.)
2014-03-20 16:23:18 -04:00
Ryan C. Gordon
a25bd63cc5 Static analysis fix: leaking Objective-C object. 2014-03-20 16:05:57 -04:00
Ryan C. Gordon
84b919a2a7 Static analysis fix: dereference of a NULL pointer. 2014-03-20 11:22:57 -04:00
Ryan C. Gordon
b99a6253da Static analysis fix: let clang know _this->displays isn't NULL. 2014-03-20 11:14:02 -04:00
Ryan C. Gordon
415675bef0 Static analysis fix: division by zero. 2014-03-20 11:14:44 -04:00
Ryan C. Gordon
b659c70080 Static analysis fix: uninitialized variables.
This is actually a false-positive, in this case, since Clang doesn't know
 that SDL_SetError() only ever returns -1. Feature request to improve that,
 with explanation about these specific SDL patches, is here:

   http://llvm.org/bugs/show_bug.cgi?id=19208
2014-03-20 10:41:47 -04:00
Ryan C. Gordon
1a2a3e9c8b Static analysis fix: Fixed leaking Objective-C object. 2014-03-20 10:04:23 -04:00
Ryan C. Gordon
bcc2ed09b5 Static analysis fix: bad release.
(object is already init'd at this point, so -[obj init] destroys
 existing reference count.)
2014-03-19 23:19:34 -04:00
Andreas Schiffler
f018ca4694 Add input validation to SDL_getenv/SDL_setenv; update Stdlib testsuite; add Hints testsuite 2014-03-19 21:39:55 -07:00
Ryan C. Gordon
e84fc5a368 Static analysis fix: division by zero. 2014-03-19 18:25:21 -04:00
Ryan C. Gordon
546cb8901e Static analysis fix: Value stored to '[bcd]' is never read. 2014-03-19 16:55:38 -04:00
Ryan C. Gordon
faaaf6c572 Static analysis fix: "Value stored to 'p' is never read" 2014-03-19 16:52:26 -04:00
Ryan C. Gordon
7b893acdc1 Don't overwrite SDL_dynapi.h in checker-buildbot.sh. 2014-03-19 16:02:25 -04:00
Ryan C. Gordon
18c9a4e96b Fixed SDL_HapticNewEffect() failing on various DirectInput devices. 2014-03-18 17:16:28 -04:00
Ryan C. Gordon
2a2fb611d5 Fixed PS4 game controller config on Windows. 2014-03-18 12:53:01 -04:00
Ryan C. Gordon
978566a65b Whitespace fix. 2014-03-18 12:52:51 -04:00
Ryan C. Gordon
7eaf899796 Fixed SDL_HapticOpenFromJoystick() with DirectInput devices. 2014-03-17 19:11:18 -04:00
Sam Lantinga
d4f2f01580 Fixed iOS build 2014-03-15 19:30:52 -07:00
Sam Lantinga
56b40ce046 Fixed bug 2450 - Crosscompiling for Win32 with MinGW fails due to WM_UNICHAR undeclared 2014-03-15 16:32:45 -07:00
Sam Lantinga
9245c93044 Only show the window if it's supposed to be shown. 2014-03-15 16:27:06 -07:00
Ryan C. Gordon
c663d731f1 Mac: Make sure window is still showing when we exit a fullscreen space. 2014-03-15 15:35:15 -04:00
David Ludwig
f25ee50b03 Fixed broken rotation detection routines on WinRT
Rotation detection and handling should now work across all, publicly-released,
WinRT-based platforms (Windows 8.0, Windows 8.1, and Windows Phone 8.0).
2014-03-15 14:54:23 -04:00
David Ludwig
5281f9f1ea Fixed a crash on Windows Phone 8 that occurred after rotating a device
This changeset prevents IDXGISwapChain::ResizeBuffers from being invoked on
Windows Phone 8, a function that isn't available on the platform (but is
available on other Windows platforms).  The call would fail, which ultimately
led to a crash.

This changeset also attempts to make sure that the D3D11 swap chain is created
at the correct size, when using Windows Phone 8.

Still TODO: make sure rotation-querying works across relevant Windows
platforms (that support Direct3D 11.x).
2014-03-15 13:27:18 -04:00
David Ludwig
205266fa03 Fixed a build error when including WinRT's SDLmain file directly in an app 2014-03-15 10:37:40 -04:00
Sam Lantinga
26e8e387e1 Fixed Mac OS X window level when leaving fullscreen mode 2014-03-14 18:06:09 -07:00
David Ludwig
2216ab93dc Added a missing file related to WinRT power management/reporting. 2014-03-14 01:36:05 -04:00
Sam Lantinga
f9a5896819 Added missing copyright notices 2014-03-13 21:21:26 -07:00
Sam Lantinga
ed02f61da1 Fixed the copyright date on files contributed by David Ludwig 2014-03-13 00:40:08 -07:00
David Ludwig
646cdedb18 Fixed line endings (CRLF to LF) in WinRT source code 2014-03-12 12:14:47 -04:00
David Ludwig
4cd5ed7ba2 Merged various WinRT build fixes 2014-03-12 12:12:20 -04:00
David Ludwig
b68b6e23d1 Fixed various build and runtime errors when using WinRT with VS2012. 2014-03-12 11:57:15 -04:00
Sam Lantinga
641ba09975 Fixed compiling Windows RT code on Visual Studio 2013 2014-03-12 07:26:07 -07:00
David Ludwig
36e7c8d92d Fixed compiler errors in the D3D11 renderer when building for WinRT
Still TODO: fix other build errors, especially linker errors, when building
SDL/WinRT, then fix any runtime errors that pop up.
2014-03-11 12:40:31 -04:00
David Ludwig
ce3c5b842f Made VS2012 build the D3D11 renderer
This change is currently limited to Win32/Windows-Desktop builds.  Build fixes
for WinRT + VS2012 are still pending.
2014-03-10 22:53:03 -04:00
Andreas Schiffler
7a36070a95 Fix bug/add test coverage for SDLTest_GenerateRunSeed helper; improve test harness adding output of repro steps for failures; improve negative test for SDL_GetError/SDL_SetError 2014-03-11 07:17:56 -07:00
Sam Lantinga
b677d1d883 Fixed Mac OS X OpenGL context creation to match other backends, where we only care about the actual version we request if it's 3.0 or newer or a special profile context.
Eventually we'll probably move the version checking to higher level code and report the actual version of context that got created, but to avoid breakage we'll leave it like this for now.
2014-03-10 19:59:06 -07:00
Sam Lantinga
28398109a1 Fixed regression causing the renderer to recreate its window since it's not getting an OpenGL 2.1 context anymore. 2014-03-10 18:45:07 -07:00
David Ludwig
e8eb142748 build fixes for most WinRT-related files
Still TODO: getting the D3D11 renderer back up and running in VC 2012.
2014-03-10 21:21:35 -04:00
Sam Lantinga
2c558ca24d Fixed D3D9 initialization on Windows 8, which doesn't have D3DX 2014-03-10 17:19:19 -07:00
Sam Lantinga
9c2fb684af Implemented fullscreen <-> windowed transition on Windows 8 2014-03-10 15:00:59 -07:00
Sam Lantinga
7e8b25534d Fixed line endings 2014-03-10 14:35:37 -07:00
Sam Lantinga
3df586cef5 Fixed creating the rendering context on a specific device 2014-03-10 12:49:15 -07:00
Sam Lantinga
9aa5b1d457 Implemented YV12 and IYUV texture support for the D3D11 renderer 2014-03-10 05:44:34 -07:00
Sam Lantinga
965cdf10d4 Minor style tweaks 2014-03-10 02:13:44 -07:00
Sam Lantinga
1a35f32b68 Converted David Ludwig's D3D11 renderer to C and optimized it.
The D3D11 renderer is now slightly faster than D3D9 on my Windows 8 machine (testsprite2 runs at 3400 FPS vs 3100 FPS)
This will need tweaking to fix the Windows RT build.
2014-03-10 01:51:03 -07:00
Sam Lantinga
a8f540fe4a Fixed renderer flags to include support for target textures after the renderer is created. 2014-03-09 22:48:38 -07:00
Ryan C. Gordon
8c7ee701a1 Removed unused variable. 2014-03-10 00:48:41 -04:00
Ryan C. Gordon
89648a9a3c Drop the default requested OpenGL version to 1.2.
Fixes default context creation on Mac OS X <= 10.6.
2014-03-10 00:01:14 -04:00
Sam Lantinga
1fe7b27a96 Fixed 64-bit warnings 2014-03-09 12:27:31 -07:00
Sam Lantinga
1367bf8748 Integrated David Ludwig's support for Windows RT 2014-03-09 11:36:47 -07:00
Sam Lantinga
05c23063bb Fixed line endings on WinRT source code 2014-03-09 11:06:11 -07:00
Sam Lantinga
c167d1f6a8 Updated SDL to version 2.0.3 2014-03-09 10:38:30 -07:00
Ryan C. Gordon
db568d69d8 Patched to compile with MingW64 on case-sensitive systems (thanks, Martin!).
Fixes Bugzilla #2440.
2014-03-09 11:52:52 -04:00
Ryan C. Gordon
5755fa4b9e Patched to compile on C89 compilers. 2014-03-08 15:34:54 -05:00
Sam Lantinga
e9eb7ecd08 Fixed bug 2430 - Missing initialization of the variable 'centroid' inside SDL_GestureAddTouch
klose

File: SDL_gesture.c
Method: SDL_GestureAddTouch

When a new SDL_GestureTouch element is added to the global SDL_gestureTouch array the variable 'centroid' of the new element is not initialized.

The problem is that this variable is read isndie SDL_GestureProcessEvent when a SDL_FINGERDOWN event occurs.
2014-03-06 20:02:17 -08:00
David Ludwig
61ae0c1b50 WinRT: emit SDL_APP_TERMINATING 2014-03-04 19:49:11 -05:00
David Ludwig
844ad50018 WinRT: emit SDL_APP_WILLENTER* and SDL_APP_DIDENTER* events 2014-03-04 19:30:36 -05:00
Ryan C. Gordon
9e67444a36 Mac: Added a hint to opt-out of new Spaces code. 2014-03-03 21:25:16 -05:00
Ryan C. Gordon
3889d47887 Removed unused variable. 2014-03-02 22:55:12 -05:00
Ryan C. Gordon
0e5cc8dff4 Mac: Don't lose the menu/dock when switching back to a resizable window Space. 2014-03-02 22:51:31 -05:00
Ryan C. Gordon
86be83215a Mac: only programmatically create Spaces if we're FULLSCREEN_DESKTOP.
(coming back from fullscreen in any state is okay).
2014-03-02 22:16:49 -05:00
Ryan C. Gordon
460f97ff96 A bunch of fixes for the new Spaces code. 2014-03-02 16:36:40 -05:00
Sam Lantinga
da324233e2 Fixed dictionary initialization 2014-03-02 13:06:51 -08:00
Sam Lantinga
0f9bb0cda6 Updated to build on Mac OS X 10.7 with Xcode 4.6 2014-03-02 12:58:00 -08:00
Ryan C. Gordon
5eccbac4b9 Mac: Manage menubar and dock as FULLSCREEN_DESKTOP windows become/resign key. 2014-03-02 15:35:24 -05:00
Bastien Nocera
4ca76b3e59 Add support for the freedesktop.org Idle Inhibition specification,
as per:
http://people.freedesktop.org/~hadess/idle-inhibition-spec/

This makes screensaver inhibition work with GNOME 3 and other
desktop environments that implement the specification.

https://bugzilla.libsdl.org/show_bug.cgi?id=2169
2014-03-02 14:59:06 -05:00
Sam Lantinga
c2c08f68e4 Backed out changeset 9357a2ca3473 2014-03-02 11:10:00 -08:00
Sam Lantinga
2cf453dd3e Make sure we return version 0 if XInput detection fails 2014-03-02 11:08:05 -08:00
Ryan C. Gordon
51faf449bb Reworked fullscreen policy on Mac OS X.
- SDL_WINDOW_FULLSCREEN works as always (change resolution, lock to window).
- SDL_WINDOW_FULLSCREEN_DESKTOP now puts the window in its own Space, and
  hides the menu bar, but you can slide between Spaces and Command-Tab between
  apps without the window minimizing, etc.
- SDL_WINDOW_RESIZABLE windows will get the new 10.7+ "toggle fullscreen"
  window decoration and menubar item. As far as the app is concerned, this is
  no different than resizing a window, but it gives the end-user more power.
- The hint for putting fullscreen windows into the Spaces system is gone,
  since Spaces can't enforce the requested resolution. It's a perfect match
  for FULLSCREEN_DESKTOP, though, so this is all automated now.
2014-03-02 12:45:51 -05:00
Ryan C. Gordon
afc74d9843 Better attempt to detect available X11 XInput2 features.
Fixes Bugzilla #2306.
2014-03-02 02:00:40 -05:00
Ryan C. Gordon
1005c93402 Windows: Fixed crash if quitting without closing an XInput haptic device. 2014-03-02 00:02:56 -05:00
Ryan C. Gordon
754067db7e Added a FIXME. 2014-03-01 22:27:21 -05:00
Ryan C. Gordon
7fa4eece25 Fixed a typo in a comment. 2014-03-01 22:27:13 -05:00
Ryan C. Gordon
bafa4c7ae8 Dynamically load glGetString(), to avoid direct dependency on OpenGL. 2014-03-01 21:33:48 -05:00
Ryan C. Gordon
73936208b0 Added some FIXMEs. 2014-03-01 20:59:43 -05:00
Ryan C. Gordon
99583397e6 Mac OS X: Make OpenGL context selection more robust, avoid software fallback.
Fixes Bugzilla #2197.
2014-03-01 20:46:45 -05:00
Ryan C. Gordon
3e541f306d Force Windows version of SDL_GetPrefPath() to Unicode, create missing dirs.
Fixes Bugzilla #2273.
2014-03-01 20:28:40 -05:00
David Ludwig
6687ece1d5 WinRT: cleaned up some hard-to-read SDL_DisplayMode management code 2014-03-01 16:37:30 -05:00
David Ludwig
f4a5a0fad1 WinRT: fixed a crash in SDL_Quit
SDL was expected that each SDL_DisplayMode had a driverdata field that was SDL_malloc'ed, and was calling SDL_free on them.  This change moves WinRT's driverdata content into a SDL_malloc'ed field.
2014-03-01 16:08:16 -05:00
Sam Lantinga
63106e4729 Changed SDL_HINT_ACCEL_AS_JOY to SDL_HINT_ACCELEROMETER_AS_JOYSTICK to be more clear. 2014-03-01 12:21:15 -08:00
Sam Lantinga
54ba385b4e Fixed compiler warning 2014-03-01 11:42:12 -08:00
Sam Lantinga
86655b64ef Fixed compiler warning 2014-03-01 11:40:41 -08:00
Sam Lantinga
c916f388d4 Fixed bug 2368 - Security Software is blocking RegisterRawInputDevices()
Yamagi

A customer of mine had the strange problem, that SDL_SetRelativeMouseMode() was failing for him on Windows 7. Luckily he was willing to provide some debug informations. We could track this problem down to RegisterRawInputDevices() failing due to security software running on his system (Norton Internet Security to be precise, but there are reports of similar problems with other products. For example [1]). Working around this issue with SDL_WarpMouseInWindow() is easy, and while I don't think that SDL2 can provide an internal workaround it would be really nice and helpfull if this could be documentated somewhere.

1: http://forums.codeguru.com/showthread.php?498374-How-to-run-a-very-long-SQL-statement
2014-03-01 09:59:06 -08:00
Sam Lantinga
e663b4eb76 Fixed bug 2423 - timeBeginPeriod & timeEndPeriod mismatch
Coriiander

In src\timer\windows\SDL_systimer.c there is an error with regards to timeBeginPeriod and timeEndPeriod. These functions typically get called when no high resolution timer is available, and GetTickCount is not used.

According to MSDN (link: http://msdn.microsoft.com/en-us/library/windows/desktop/dd757624(v=vs.85).aspx), for every call to timeBeginPeriod a subsequent call to timeEndPeriod is required. While SDL is currently doing this, it fails to call timeEndPeriod when cleaning up/shutting down SDL. Please note that these functions affect things on a system level. Failing to call timeEndPeriod, disables applications for using WINMM-timers after usage&shutdown of SDL, as effectively they the mechanism is now broken.

Solution:
Ensure this code gets called when shutting down the timer subsystem:

#ifndef USE_GETTICKCOUNT
if (!hires_timer_available)
{
    timeSetPeriod(0);
}
#endif
2014-03-01 09:50:52 -08:00
Sam Lantinga
ab9345a896 Null termnate the pUserMappings variable to prevent memory corruption. 2014-02-28 16:24:41 -08:00
Sam Lantinga
e56bbe3f71 Added a hint to enable the screensaver by default 2014-02-28 14:23:41 -08:00
Ryan C. Gordon
ac32352f09 Disable the screensaver by default.
Fixes Bugzilla #2218.
2014-02-27 22:06:41 -05:00
Gabriel Jacobo
f61602b434 Improve window recreation logic in OpenGL* renderers 2014-02-27 20:21:46 -03:00
J?rgen P. Tjern?
0d5957dfee Mac: Forgot return value in last commit. 2014-02-26 16:27:03 -08:00
J?rgen P. Tjern?
dd94c5fa54 Mac: Don't disassociate cursor if window is moving / doesn't have focus.
Bug: https://bugzilla.libsdl.org/show_bug.cgi?id=2396
2014-02-26 16:10:52 -08:00
J?rgen P. Tjern?
4850d25988 Mac: Redo cursor warp handling.
This fixes bugs related to getting unnaturally large xrel/yrel for
SDL_MOUSEMOTION after warps and enabling / disabling relative mode.

Bug: https://bugzilla.libsdl.org/show_bug.cgi?id=1836
2014-02-26 11:35:02 -08:00
J?rgen P. Tjern?
52a63e823f Mac: Improve moving relative mode windows.
This makes it possible to move windows by their title bar, even if they're in
relative mode, if you click the title bar when the window does not have focus.

Bug: https://bugzilla.libsdl.org/show_bug.cgi?id=2396
2014-02-25 17:27:41 -08:00
J?rgen P. Tjern?
98d8737961 Mac: Fix error message for haptic subsystem.
We were calling SDL_Error instead of SDL_SetError when the haptic subsystem
wasn't initialized.
2014-02-25 17:25:49 -08:00