Commit graph

179 commits

Author SHA1 Message Date
Michael Sartain
8f081103e5 Add SDL_CreateSystemCursor for Windows and Linux. 2012-11-19 15:11:10 -08:00
Sam Lantinga
b9ad4410f8 SDL no longer grabs the keyboard by default on X11.
You can re-enable that functionality by setting a new hint SDL_HINT_GRAB_KEYBOARD
2012-11-07 15:55:43 -08:00
Sam Lantinga
f8a4c99701 Added Windows message box implementation, but it needs a little work on layout. 2012-10-30 18:59:56 -07:00
Sam Lantinga
6f2480d364 Fixed bug where SDL thought the window was shown and it wasn't actually.
From Rick Johnson:

Here's the call pattern:

Create the window hidden
The game tells it to adjust the window position
Make the window visible.

A problem arises from the SetWindowsPos() - the default behavior of that would cause a WM_ACTIVATE message to be passed, of which SDL interprets that as the window now becoming visible and sets the flags.  The window is not visible though.  Now, when you try to call ShowWindow() - SDL sees those flags as indicating that the window is visible and early returns.

My proposed fix was that if we are calling set windows position and we aren't visible, add on the flag SWP_NOACTIVATE, which tells windows to not send down the WM_ACTIVATE flag.
2012-10-02 10:38:10 -07:00
Sam Lantinga
b6fe53e5ea Fixed bug 1593 - SDL_DROPFILE event doesn't work on Windows
Philipp Wiesemann 2012-09-30 05:56:09 PDT

I attached a patch which tries to implement the dropfile support for Microsoft
Windows. If applied SDL_DROPFILE events should be sent for single or multiple
files which are dropped on window.

The handling on Windows side is always activated (cursor will change and so on)
because there is no connection between SDL_EventState() and the window setup. I
assumed this additional overhead would be small and can be ignored.
2012-09-30 11:10:17 -07:00
Sam Lantinga
8c71219642 The gl_data is optional for the driver, so don't early out of the context delete call if it doesn't exist. 2012-09-30 01:08:48 -07:00
Sam Lantinga
f380ecb137 Removed executable bit from source files 2012-09-27 14:35:28 -07:00
Ryan C. Gordon
5c732d6324 Removed Windows CE support from SDL 2.0.
It's a long-dead platform, and we don't have any way to build for, test, or
maintain it, so there's no sense in doing acrobatics to support it.

If you need Windows CE support, use SDL 1.2. If you need Windows Phone support,
send SDL 2.0 patches for the newer Windows Mobile platform.
2012-09-15 10:59:39 -04:00
Ryan C. Gordon
93cdb45727 Made Windows version of SDL_SetWindowBordered() mostly work.
The sizing still isn't quite right.
2012-09-14 13:14:20 -04:00
Ryan C. Gordon
3535fe0b91 Consolidate some code in the Windows video target. 2012-09-14 13:13:47 -04:00
Ryan C. Gordon
8835a0dacb Added SDL_SetWindowBordered() API.
--HG--
extra : rebase_source : 11750f0d8e7b59af26d97c778a332c0b4b72ea4b
2012-09-13 01:43:53 -04:00
Ryan C. Gordon
e5f91113a3 Fixed wglShareLists() call that used the wrong variable. 2012-08-25 16:49:05 -04:00
Ryan C. Gordon
816523a285 Fixed a bunch of compiler warnings with Cygwin/MingW. 2012-08-24 19:34:28 -04:00
Sam Lantinga
99502c82fd Fixed bug 1565 - some small GL context creation enhancements
Matthias Bentrup 2012-08-09 12:53:17 PDT

With OpenGL 4.3 the ARB added a new context flag for context reset isolation
and renamed the existing ES2 profile bit to ES profile bit, as it can be used
to request GLES 3 compatible contexts, too.

This patch adds these changes to SDL on Linux and Windows.

Also SDL lacks the ability to create shared contexts. This patch also adds a
new GL attribute to enable context sharing. As casting a GL context to int is
not portable, I added only a boolean attribute
SDL_GL_SHARE_WITH_CURRENT_CONTEXT, which makes the new context share resources
with the context current on the creating thread.
2012-08-12 11:16:24 -07:00
Ryan C. Gordon
68a98ad796 Patched to compile on Windows. 2012-08-01 21:03:46 -04:00
Ryan C. Gordon
55a52db07d Cleanups to Windows WGL_EXT_swap_control_tear code. 2012-08-01 20:57:03 -04:00
Ryan C. Gordon
2cd5fc4e97 Add support for (GLX|WGL)_EXT_swap_control_tear.
This required a small public API change: SDL_GL_SetSwapInterval() now accepts
 negative values, and SDL_GL_GetSwapInterval() doesn't report errors anymore
 (if it can't work, it'll return zero as a reasonable default).

If you need to test for errors, such as a lack of swap_control_tear support,
 check the results of SDL_GL_SetSwapInterval() when you set your desired
 value.
2012-08-01 20:29:36 -04:00
Kajetan Swierk
a82bdaf85d Fixed typo in one of WGL definition 2012-07-22 21:47:56 +02:00
Sam Lantinga
c7a5aa5128 Patrick Baggett implemented relative mouse mode on Win32
Here is my first rough attempt. "testrelative" feels right to me, but I'd like it someone else tested this, especially compared to Linux/OSX. The "Ctrl+r" to switch between relative and normal mouse movements seems to work flawlessly. With relative mouse movement, the only way to change focus is via keyboard. I'm not sure if that is the correct approach, but that would seem to be the most useful mode for games. Still, if my assumption is wrong, I can fix that no problem.
2012-07-03 23:52:02 -04:00
Sam Lantinga
38463b3a0c Add OpenGL 3.X context creation support
Matthias Bentrup 2011-10-30 03:58:24 PDT

I've updated the context creation patch to include the bugfixes by Martin
Schreiber and also included a profile bit to request a ES2 compatible profile.

The wgl context creation may use 2 call to wglChoosePixelFormat if no
acceleration attribute is selected, this should work around a bug with buggy
AMD drivers (see #1254).
2012-02-20 23:37:57 -05:00
Sam Lantinga
1dafe0e989 Fixed bug 1333 - segfault if opengl window could not get created
When the window couldn't be created, the normal window destruction process happens, which among other things, destroys the framebuffer, if any.
2012-01-07 22:52:41 -05:00
Sam Lantinga
028e5dcdbd Happy New Year! 2011-12-31 09:28:07 -05:00
Sam Lantinga
f9a731d576 Fixed whitespace 2011-11-10 06:38:26 -05:00
Sam Lantinga
ad2a21d404 Lots of fixes importing SDL source wholesale into a new iOS project
--HG--
rename : src/libm/math.h => src/libm/math_libm.h
2011-10-31 05:56:58 -04:00
Andreas Schiffler
c5e05365c6 Update SDL_HasClipboardText functions to return value based on clipboard content; Fix memory leak in fallback SetClipboard implementation 2011-10-29 23:43:59 -07:00
Ryan C. Gordon
cf1adee2e4 Make sure window->driverdata is set before we might need it.
Thanks to Mako_energy for the fix!
2011-10-12 20:01:09 -04:00
Ryan C. Gordon
d7cb5c41ca More work on cleaning out compiler warnings.
--HG--
extra : rebase_source : ab97ecaafc5a22451ea1bf8d4740380cf56f2f98
2011-09-11 04:02:40 -04:00
Ryan C. Gordon
c3366d1756 Patched to compile on Windows. 2011-08-23 16:47:22 -04:00
Ryan C. Gordon
f9268ec876 Fix SDL_GL_ACCELERATED_VISUAL on Windows in the 1.3 branch.
Fixes Bugzilla #1254.

Thanks to Thilo Schulz for the patch!
2011-08-21 12:24:27 -04:00
Ryan C. Gordon
8fa65eea5c Cleaned up CoInitialize() politics on Windows. 2011-08-03 04:22:47 -04:00
Ryan C. Gordon
58faae483b Patched to compile (I hope). 2011-07-27 18:07:40 -04:00
Ryan C. Gordon
d8d485370c If we didn't create win32 window, restore its event procedure on destruction. 2011-07-25 15:03:42 -07:00
Sam Lantinga
b0660ba5ff SDL 1.3 is now under the zlib license. 2011-04-08 13:03:26 -07:00
Sam Lantinga
1e83a51bfd Removed obsolete window positioning code. 2011-03-15 21:44:56 -07:00
Sam Lantinga
4952e5686b Fixed accidental line deletion. 2011-03-15 21:40:57 -07:00
Sam Lantinga
fbc49beee3 Removed unreferenced variable 2011-03-13 11:17:11 -07:00
Sam Lantinga
0eb0a30eca Fixed bug 1167 (SDL_WINDOWPOS_CENTERED doesn't work if used right after fullscreen -> windowed switch)
The top level code handles SDL_WINDOWPOS_CENTERED now, and the Cocoa SetWindowPosition call will clear the moveHack before adjusting the window position.
2011-03-11 16:54:43 -08:00
Sam Lantinga
3b5aaf8974 We can assume ARGB surface format when creating cursors (enforced by higher level API) 2011-03-11 13:59:52 -08:00
Sam Lantinga
45d991f20d Fixed permissions for C source files 2011-03-11 11:52:41 -08:00
Sam Lantinga
7dd0385c57 Gamma support is back!
New API functions:
	SDL_SetWindowBrightness()
	SDL_GetWindowBrightness()
	SDL_SetWindowGammaRamp()
	SDL_GetWindowGammaRamp()
	SDL_CalculateGammaRamp()
2011-03-11 08:49:20 -08:00
Sam Lantinga
5f55b90cbd Fixed linking x64 with Visual Studio 2010. 2011-03-08 22:48:21 -08:00
Sam Lantinga
150d58413e Fixed bug 1161 (Setting GL_ACCELERATED_VISUAL to 1 forces software rendering in Windows XP)
Jesse Anders      2011-03-05 23:30:09 PST

It seems that in Windows XP, setting SDL_GL_ACCELERATED_VISUAL to 1 actually
disables hardware acceleration and puts OpenGL in software mode.

In the source code, the corresponding WGL attribute is first set here:

*iAttr++ = WGL_ACCELERATION_ARB;
*iAttr++ = WGL_FULL_ACCELERATION_ARB;

Later, this code:

if (_this->gl_config.accelerated >= 0) {
    *iAttr++ = WGL_ACCELERATION_ARB;
    *iAttr++ =
        (_this->gl_config.accelerated ? WGL_GENERIC_ACCELERATION_ARB :
         WGL_NO_ACCELERATION_ARB);
}

Sets it again if SDL_GL_ACCELERATED_VISUAL has a value other than the default.

More importantly, the documentation I found states that
WGL_GENERIC_ACCELERATION_ARB asks for an MDC driver, which, although I don't
know much about this topic, doesn't seem like the correct choice here. As
mentioned previously, the end effect is that requesting hardware acceleration
in Windows XP actually forces the renderer into software mode (on my system at
least), which I'm guessing isn't the desired behavior.
2011-03-07 14:06:46 -08:00
Sam Lantinga
2368a3301a Added support for Windows cursors 2011-02-28 23:50:32 -08:00
Sam Lantinga
8457ab1e62 You can use SDL_ConvertSurfaceFormat() now
Also, icon is guaranteed not to be NULL going into this function.
2011-02-28 21:58:37 -08:00
Sam Lantinga
10c875b184 Fullscreen doesn't automatically grab the cursor. 2011-02-28 20:19:28 -08:00
Sam Lantinga
fbdf7429d5 Restore the windowed position and size when coming back from fullscreen.
Also fixed problem where Cocoa would move the windows in response to the fullscreen mode change.
2011-02-26 10:11:09 -08:00
Sam Lantinga
0f6925189c Simplified Windows window creation. 2011-02-21 22:27:19 -08:00
Sam Lantinga
baf813b8c1 Our minimum Windows version is Windows 2000, so it's okay to directly call InitializeCriticalSectionAndSpinCount().. 2011-02-17 09:26:15 -08:00
Sam Lantinga
6c726ca475 Fixed a host of issues with Windows fullscreen modes. Toggling fullscreen OpenGL works now in my test environment. 2011-02-15 23:07:14 -08:00
Sam Lantinga
c804b92b9e Changed the concept of a render clip rect to a render viewport.
The render viewport is automatically re-centered when the window changes size, so applications that don't care will not have to handle recalculating their rendering coordinates.

Fixed API for drawing and filling multiple rectangles - the parameter should be an array of rects, not an array of pointers to rects.

Fixed API for updating window rects for consistency with other APIs - the order is pointer to array followed by count in array.
2011-02-15 13:59:59 -08:00