Commit Graph

888 Commits

Author SHA1 Message Date
Sam Lantinga 3d5f4a6901 Fixed YUV texture update with a subrect in OpenGL ES 2.0 - thanks Sylvain! 2014-06-25 21:06:47 -07:00
David Ludwig 65023e0767 WinRT: Fixed game controller axis mappings
SDL/WinRT currently uses a separate XInput backend from SDL/Win32, as WinRT
has no support for DirectInput.  This change makes SDL/WinRT's XInput
code snag some recently-changed bits from the Win32-specific,
DirectInput + XInput backend, in order to get the SDL_GameController API
working again on WinRT, insofar that axes map to the correct parts.

TODO:
 - test all buttons, making sure WinRT maps buttons the same way that Win32 does
 - consider making the Win32 and WinRT codebases share more stuff, minus
   the sort of duplication happening via this change.  Maybe simulate, or
   stub-out, DirectInput calls when on WinRT?
2014-06-25 22:38:40 -04:00
David Ludwig a838a56d45 WinRT build fix 2014-06-25 22:03:05 -04:00
Ryan C. Gordon 95864f86d8 Patched to compile on Windows. 2014-06-25 17:24:06 -04:00
Ryan C. Gordon 4318910e02 Whoops, lost this in the merge. 2014-06-25 17:20:22 -04:00
Ryan C. Gordon 84cb232067 Patched to compile with -Werror=declaration-after-statement 2014-06-25 17:13:43 -04:00
Ryan C. Gordon b29740b88f Merged Ryan's SDL-gui-backend branch.
Adds three APIs, and implements them on X11, Cocoa, and Windows:

- SDL_CaptureMouse()
- SDL_GetGlobalMouseState()
- SDL_SetWindowHitTest()
2014-06-25 17:06:12 -04:00
Ryan C. Gordon 8436956711 Changed SDL_GetAbsoluteMouseState() to SDL_GetGlobalMouseState().
This matches naming conventions in the main repository, between
 SDL_GetRelativeMouseState() and SDL_WarpMouseGlobal().
2014-06-25 16:16:55 -04:00
Sam Lantinga 704d9bd30d Fixed bug 2525 - Keyboard focus crash
Todd Seiler

Call Stack:
#0  0x0000000101c29291 in Cocoa_StartTextInput at /Users/Todd/Desktop/codes/sources/SDL/src/video/cocoa/SDL_cocoakeyboard.m:512
#1  0x0000000101c110c5 in SDL_SetKeyboardFocus at /Users/Todd/Desktop/codes/sources/SDL/src/events/SDL_keyboard.c:643
#2  0x0000000101c32be4 in SetupWindowData at /Users/Todd/Desktop/codes/sources/SDL/src/video/cocoa/SDL_cocoawindow.m:981
#3  0x0000000101c32d2a in Cocoa_CreateWindowFrom at /Users/Todd/Desktop/codes/sources/SDL/src/video/cocoa/SDL_cocoawindow.m:1092
#4  0x0000000101c99999 in SDL_CreateWindowFrom_REAL at /Users/Todd/Desktop/codes/sources/SDL/src/video/SDL_video.c:1338
#5  0x0000000101ce1484 in SDL_CreateWindowFrom at /Users/Todd/Desktop/codes/sources/SDL/src/dynapi/SDL_dynapi_procs.h:547
#6  0x0000000100018a5e in SceneRenderer at /Users/Todd/Desktop/codes/sources/tseiler_Todds-MacBook-Pro_3405/AppName/src/SceneRenderer.cpp:138
#7  0x0000000100017ca5 in SceneRenderer at /Users/Todd/Desktop/codes/sources/tseiler_Todds-MacBook-Pro_3405/AppName/src/SceneRenderer.cpp:145
#8  0x000000010000cd96 in App::execute(int, char**) at /Users/Todd/Desktop/codes/sources/tseiler_Todds-MacBook-Pro_3405/AppName/src/App.cpp:28
#9  0x0000000100004402 in main at /Users/Todd/Desktop/codes/sources/tseiler_Todds-MacBook-Pro_3405/AppName/src/main.cpp:8


This issue occurred when using Ogre3D Graphics engine on Mac (cocoa) to create the window. Then handing the window handle off to SDL_CreateWindowFrom().

In Ogre3D application you do the following:
        window_ = root_->initialise(true, "Ogre Window 2");
        loadOgreResources();
        Ogre::WindowEventUtilities::addWindowEventListener(window_, this);

#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
        NSWindow* Data = 0;
        window_->getCustomAttribute("WINDOW", &Data);
        sdl_window_ = SDL_CreateWindowFrom((void*)Data);
#endif

It results in a crash in this function:
SDL_cocoakeyboard.m

void
Cocoa_StartTextInput(_THIS)
{
    SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    SDL_Window *window = SDL_GetKeyboardFocus();
    NSWindow *nswindow = nil;
    if (window)
        nswindow = ((SDL_WindowData*)window->driverdata)->nswindow;

    // ...
}

The crash occurred because "driverdata" was nil. Before this function call, a call to SetupWindowData is called:

SDL_cocoawindow.m

static int
SetupWindowData(_THIS, SDL_Window * window, NSWindow *nswindow, SDL_bool created)
{
    // ...

    if ([nswindow isKeyWindow]) {
        window->flags |= SDL_WINDOW_INPUT_FOCUS;
        SDL_SetKeyboardFocus(data->window);
    }

    /* Prevents the window's "window device" from being destroyed when it is
     * hidden. See http://www.mikeash.com/pyblog/nsopenglcontext-and-one-shot.html
     */
    [nswindow setOneShot:NO];

    /* All done! */
    [pool release];
    window->driverdata = data;
    return 0;
}

As you can see: "window->driverdata = data" is performed after the "SDL_SetKeyboardFocus()" call, which eventually leads to "Cocoa_StartTextInput()" where the crash occurs.
2014-06-25 02:08:37 -07:00
Sam Lantinga 724d9380ba Fixed compiler warning - HRESULT is set to FFERR_* values, but is an int 2014-06-25 01:43:58 -07:00
Sam Lantinga a8955f2640 Made the RLE code (semi) readable again 2014-06-25 01:35:17 -07:00
Sam Lantinga b4deeeba05 Fixed bug 2595 - Padded, non-contiguous YUV does not display correctly using OpenGL ES 2.0 renderer
Sylvain

Ok, I found out : GLES2_UpdateTexture is just not handling the YUV, I will attach a patch.
2014-06-25 00:58:40 -07:00
Sam Lantinga afe14829b8 Fixed bug 2556 - add compilation flag -Wshadow
Sylvain

here's the full patch for Blit + RLE.
2014-06-25 00:43:10 -07:00
Sam Lantinga 6a632eb23c Fixed bug 2603 - iOS: update joystick accelerometer code to use CoreMotion instead of the deprecated UIAccelerometer
Alex Szpakowski

SDL's code for exposing the accelerometer as a joystick on iOS currently uses UIAccelerometer, which was superseded by the CoreMotion framework and deprecated since iOS 5.

The UIAccelerometer code still works (for now), but it also throws deprecation warnings whenever SDL is built for iOS, since SDL's deployment target is no longer below iOS 5.

I've created a patch which replaces the old UIAccelerometer code with a replacement based on the CoreMotion framework. It has identical functionality (to SDL users), however iOS apps are now required to link to the CoreMotion framework when using SDL.
2014-06-25 00:20:21 -07:00
Sam Lantinga 52ec151fb0 Fixed bug 2553 - Add support to all XInput devices
This adds support for all XInput devices, exposed through the SDL joystick API.
The button and axis reporting for XInput devices has been changed to match DirectInput and other platforms.
The game controller xinput mapping has been updated so this change is seamless.
There is a new hint, SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING, for any applications that have hardcoded the old xinput button and axis set. This hint will be removed in SDL 2.1.
2014-06-24 13:31:25 -07:00
Sam Lantinga cbafb158b0 Fixed bug 2467 - bad memcpy in SDL_OpenAudio/open_audio_device/prepare_audiospec chain
Rainer Deyke

If 'SDL_OpenAudio' is called with 'obtained == NULL', 'prepare_audiospec' performs a bad 'memcpy' with the destination and source pointing to the same block of memory.  The problem appears to be on in 'SDL_OpenAudio', which calls open_audio_device with 'obtained = desired' when 'obtained == NULL'.  'open_audio_device' cannot deal with 'desired' and 'obtained' pointing to the same block of memory but can deal with 'obtained == NULL'
2014-06-24 01:38:21 -07:00
Sam Lantinga 3344db40ff Don't redefine standard macros, use SDL specific macros instead to avoid compiler warnings 2014-06-23 11:06:50 -07:00
Sam Lantinga 67e55655a3 Fixed grab interaction with Windows Classic theme
Testing:
* For each theme in Windows 7, Windows 7 Basic, and Windows 7 Classic:
- Ran testsprite2
- Pressed Ctrl-G to grab the mouse
- Alt-tabbed away, verified mouse is no longer grabbed
- Alt-tabbed back, verified that mouse was grabbed
- Alt-tabbed away
- Clicked in the window, verified mouse was grabbed
- Alt-tabbed away
- Grabbed the title bar and dragged the window around successfully, verified that mouse was grabbed when move modal loop completed
- Alt-tabbed away
- Clicked the minimize button on the title bar, the window was successfully minimized
- Clicked on the icon in the task bar, the window was restored and the mouse grabbed again
- Alt-tabbed away
- Clicked the close button on the title bar, the window was successfully closed
2014-06-23 10:09:15 -07:00
Sam Lantinga 9e2a2639f8 Added names for some theme related windows messages 2014-06-23 10:09:13 -07:00
Gabriel Jacobo e63e1a5e64 Fixes OpenGL ES 2 renderer (Thanks Sylvain Becker) 2014-06-23 09:25:27 -03:00
Gabriel Jacobo 620510b337 Fix compiler warning 2014-06-23 09:18:31 -03:00
Sam Lantinga 553028c9ec Partial fix for bug 2556 - add compilation flag -Wshadow
I added -Wshadow and then turned it off again because of massive variable shadowing in the blit macros.

Feel free to go through that code and fix these if you want. Just uncomment CheckWarnShadow in configure.in if you want to try this.
2014-06-22 11:02:56 -07:00
Sam Lantinga 9f5e3ed7e7 Fixed bug 1673 - BEXT wave files only have extra metadata that you can easily skip through
bill

In SDL_wave.c, BEXT wave files with "bext" instead of "fmt " are choked on

    if (chunk.magic != FMT) {
        SDL_SetError("Complex WAVE files not supported");
        was_error = 1;
        goto done;
    }

BEXT files http://en.wikipedia.org/wiki/Broadcast_Wave_Format actually playback the same as regular waves.  All they have is (A LOT OF) extra header info.

To open them, just SKIP the "bext" chunk, and the "fmt " chunk will be a couple of hundred bytes later.

The "fmt " chunk is also bloated, but if you skip past the extra information to the "data" chunk, there is nothing different about a BEXT wave file than a "normal" one.

You can then load the data and proceed as normal.
2014-06-22 10:05:59 -07:00
Sam Lantinga cff9eac637 Fixed bug 2579 - SDL fails to compile on Windows when only EGL+OpenGL ES defined
callow.mark

Compiling with SDL_VIDEO_RENDER_OGL=0, SDL_VIDEO_OPENGL=0, SDL_VIDEO_OPENGL_WGL=0, SDL_VIDEO_RENDER_OGL_ES2=1, SDL_VIDEO_OPENGL_ES2=1 and SDL_VIDEO_OPENGL_EGL=1 set in SDL_config_windows.h fails.

A patch is attached. See bug #2570 for reasons you might want to compile this way.
2014-06-22 09:48:46 -07:00
Sam Lantinga 1b3d4e6d0e 565 textures have higher priority than 555 textures 2014-06-22 09:42:43 -07:00
Sam Lantinga d65ac7785f Restore window OpenGL state if creating an OpenGL renderer fails 2014-06-22 02:48:43 -07:00
Sam Lantinga b7b6d8ab7a Fixed crash initializing OpenGL ES renderer if OpenGL renderer fails 2014-06-22 02:30:36 -07:00
Sam Lantinga 5df11f8aa1 Made SDL_PIXELFORMAT_ARGB8888 the default texture format for consistency across renderer implementations. 2014-06-21 21:46:42 -07:00
Sam Lantinga 7b7828a46e You shouldn't get axis and hat events when your application doesn't have focus (unless you use the SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS hint) 2014-06-21 21:30:49 -07:00
Sam Lantinga f8b75b1a14 Fixed bug 2562 - SDL_hapticlist/_tail not set correctly
Zachary L

SDL_hapticlist and SDL_hapticlist_tail are not set correctly when quitting the subsystem. This matters because they are represented as global variables. In the case you quit and reinitialize the subsystems, problems with dangling pointers arise.

For instance, SDL_hapticlist_tail will not be null on second initialization and because of the check on line 298, it will fail to set SDL_hapticlist appropriately. This can cause a few things to go wrong, like feeding SDL_strcmp a null fname which can cause a segfault.
2014-06-21 20:40:00 -07:00
Sam Lantinga e8d84fbfaa Merged changes from Alexey Petruchik to support Android obb files
http://developer.android.com/google/play/expansion-files.html
2014-06-21 20:35:36 -07:00
Sam Lantinga b56b37cde6 Fixed warning when building without ibus 2014-06-21 17:25:59 -07:00
Sam Lantinga 62bdecc80c Fixed compiler warning with new OpenGL ES header files 2014-06-21 12:45:54 -07:00
Sam Lantinga d7924c73d6 Fixed bug 2563 - Remove obsolete code for supporting iOS < 5
Alex Szpakowski

Now that SDL for iOS requires at least iOS 5.1 at runtime, there are several old codepaths in the UIKit backend which can be removed. I've attached a patch which does so.
2014-06-21 12:43:57 -07:00
Sam Lantinga e8f8e6727a Fixed bug 2595 - Padded, non-contiguous YUV does not display correctly using OpenGL ES 2.0 renderer
Alvin

The new OpenGL ES 2.0 YUV Texture support does not correctly display padded, non-contiguous YUV data.

I am using SDL2 95bd3d33482e (as provided by 'hg id --id') from Mercurial.

The YUV data I am using is provided by the FFMPEG family of libraries. According to FFMPEG's documentation, "The linesize [pitch] may be larger than the size of usable data -- there may be extra padding present for performance reasons."

The dimensions of the video file that I am using are 480x360. What I get from FFMPEG is a Ypitch of 512, and Upitch and Vpitch are both 256.

When I pack new Y, U and V buffers with only the "usable" data (Ypitch is 480 and Upitch and Vpitch are both 240), and use those new buffers, the image is display correctly.

It appears that the Ypitch, Upitch and Vpitch parameters are not being used by SDL_UpdateYUVTexture().

I use SDL_PIXELFORMAT_YV12 for my YUV texture, however, the same results are seen when I use SDL_PIXELFORMAT_IYUV.

Not sure if this is related or not, but when I render the YUV texture (padded and unpadded) to a RGB24 texture, the resulting image is greyscale (or could by just the Y channel).

The URL field for this bug entry is set to my email (SDL mailing list archive) which includes an example image of what I see when rendering padded, non-contiguous YUV data.
2014-06-21 12:38:46 -07:00
Alex Baines 41a39837ca Add IBus IME Support, move DBus code to its own file. (v3.3 squashed) 2014-06-18 20:11:39 +01:00
Sam Lantinga 0d673844ac Fixed bug 2596 - SDL_SetError fails on on NULL on systems with vsnprintf
sfalexrog

On systems with vsnprintf call SDL_SetError fails when passed a NULL as an argument. SDL's implementation checks for NULL (as seen in the commit: https://hg.libsdl.org/SDL/rev/835403a6aec8), but system implementation may crash.
2014-06-21 11:52:53 -07:00
Sam Lantinga 80e401ab08 Added NaCl to SDL_GetPlatform() 2014-06-21 11:48:12 -07:00
Sam Lantinga 8ef5651185 Fixed compiler warning 2014-06-21 11:36:00 -07:00
Gabriel Jacobo 3b217eefd7 Fix another NaCl warning 2014-06-20 11:50:31 -03:00
Sam Clegg 7e52722dfd Fix compiler warnings in Native Client and Linux builds. 2014-06-20 11:10:16 -03:00
Gabriel Jacobo 6c5cb5400f Ooops, code that resists erasure, I've seen that in a movie. 2014-06-20 11:01:05 -03:00
Gabriel Jacobo 553cc07e9d Initialize nacl_io, removes SDL_NaClMount/Umount
It's just easier to use nacl_io's mount/umount directly.
2014-06-20 10:59:51 -03:00
Gabriel Jacobo 715a9829b9 Fix file name typo, thanks Sam Clegg! 2014-06-18 10:04:21 -03:00
Gabriel Jacobo ab238dc6e4 Assorted fixes for NaCl. Hat tip to Sylvain Becker 2014-06-16 09:54:33 -03:00
Gabriel Jacobo 9e55ace818 Fixes #2583, clean up EGL initialization 2014-06-16 09:47:23 -03:00
Sam Lantinga 260549d1ca Fixed bug 2567 - x11: Local dropped files are not URI-decoded
Melker Narikka

Local files that are dropped onto a window under X11
are not going through a URI decoding step, resulting in the following
in my test application:

Dropped file /home/meklu/Pictures/Screenshot%20from%202013-10-30%2014:04:50.png
Couldn't load /home/meklu/Pictures/Screenshot%20from%202013-10-30%2014:04:50.png

Expected result:

Dropped file /home/meklu/Pictures/Screenshot from 2013-10-30 14:04:50.png
Loaded /home/meklu/Pictures/Screenshot from 2013-10-30 14:04:50.png successfully

I've attached a patch that fixes the issue by doing URI decoding in-place on
the file string buffer.
2014-06-15 18:31:30 -07:00
Sam Lantinga af50403e50 Fixed bug 2575 - Current GL context tracking fails
Ronie Salgado

The GL Renderer current context tracking fails when one window is used with an SDL renderer but another separate window is used with a user handled OpenGL context.

Attached is a small program that reproduces this bug, at least in some Linux machines where an OpenGL renderer is provided by default.

Expected Output:
-"First window" should be blue.
-"Second window" should be green.

Gotten Output:
- "First window" black.
- "Second window" blue.

What happened:
The renderer created for the "first window" ends rendering into the "second window" OpenGL context.

Bug location:

SDL_render_gl.c - line 286 on hg:
static SDL_GLContext SDL_CurrentContext = NULL;

When making SDL_GL_MakeCurrent from the user perspective, that variable or the GL renderer is not notified about the OpenGL context change.

Solution proposal:
- Move the current GL context cache into another place global.
2014-06-15 18:09:39 -07:00
Sam Lantinga 2a082c07f6 Fixed bug 2580 - sndio backend improvements
Brad Smith

Attached is patch from the OpenBSD ports tree to add 24-bit support to the sndio backend and to make use of the sio_open() option SIO_DEVANY.
2014-06-15 17:26:30 -07:00
Sam Lantinga 6146fe85cc Fixed 2584 - Memory leak in Cocoa_GetDisplayName
Diego

The Xcode Instruments Leak tool reports a leak from IODisplayCreateInfoDictionary in Cocoa_GetDisplayName.
This happened after upgrading to Xcode 5.
2014-06-15 17:18:05 -07:00
Sam Lantinga 54771080f3 Add controller mapping for Bluetooth DualShock 4 controllers on Linux
Frank Praznik

Add a gamepad mapping entry for Bluetooth DualShock 4 controllers on Linux.
The button mapping is the same as the USB controller, but the GUID is
different.
2014-06-15 13:05:30 -07:00
Ryan C. Gordon 39bad809c3 Mac: Fixed crash when returning from a fullscreen Space on shutdown. 2014-06-15 11:59:16 -04:00
Ryan C. Gordon 446d19c4de Removed SDL_SYS_JoystickNeedsPolling().
It was simpler to just have the polling (actually: hotplug detection)
 functions return immediately if it's not an appropriate time to poll.

Note that previously, if any joystick/controller was opened, we would poll
 every time anyhow, skipping this function.
2014-06-14 23:31:23 -04:00
Ryan C. Gordon 9e5504f89d Mac: Run the CFRunLoop in joystick mode during SDL_SYS_JoystickNeedsPolling().
This fixes hotplugging failing to detect devices.
2014-06-13 14:52:26 -04:00
Alfred Reynolds 8c2c744ad5 - fixed crash if you removed a device twice, the deviceRef is invalid if removed from the removed device callback (added in http://hg.libsdl.org/SDL/rev/d4e4d0fcda03 ). 2014-06-13 10:50:24 -07:00
Ryan C. Gordon 2cce7b2ed3 Implemented Cocoa GetAbsoluteMouseState(). 2014-06-11 00:40:19 -04:00
Ryan C. Gordon 4676705de0 Implement Windows GetAbsoluteMouseState(). 2014-06-11 00:12:19 -04:00
Ryan C. Gordon c8c55a01f4 This should probably query async button state. 2014-06-11 00:12:06 -04:00
Ryan C. Gordon 8719a76535 Regenerated SDL_audiotypecvt.c with updated perl script. 2014-06-10 19:39:33 -04:00
Ryan C. Gordon 91b7fb00d0 Fix audio resampling in some cases.
Fixes Bugzilla #2389.
2014-06-10 19:37:59 -04:00
Gabriel Jacobo efa2d0581d Fixes audio for Native Client, and other fixes...
- SDL_NaClMount, SDL_NaClUmount
- Default mounting of https at / in SDL's main function
- More documentation in README-nacl.txt
2014-06-08 18:18:13 -03:00
Sam Lantinga 5ae12b46b5 The NaCL mount/unmount functions need to be in SDL_system.h and specific to NaCL 2014-06-08 12:05:17 -07:00
Philipp Wiesemann d2220917e0 Fixed typo in log message. 2014-06-08 13:03:45 +02:00
Sam Lantinga 47e0aa0e6a Fixed building on command line Mac OS X 2014-06-07 20:43:12 -07:00
Sam Lantinga 6101e4b20e Added SDL_sqrtf(), SDL_tan(), SDL_tanf() 2014-06-07 18:20:01 -07:00
Sam Lantinga 40538446d9 Fixed crash with SDL_SetError(NULL) 2014-06-07 17:31:50 -07:00
Sam Lantinga 9fb2cc10c0 dront78 implemented YUV texture support for OpenGL ES 2.0 2014-06-07 11:36:08 -07:00
Gabriel Jacobo 1e352d7929 Chrome's Native Client backend implementation 2014-06-06 15:45:59 -03:00
Brandon Schaefer 04a0836b1a Turns out visualstudio does not like PRIu64, soo lets just cast it to llu. 2014-06-05 15:37:33 -07:00
Brandon Schaefer 1f71676906 Fix warnings, only major one being an SDL_SetError not providing enough arguments. 2014-06-05 15:29:23 -07:00
Sam Lantinga 6671aa2a08 Code analysis annotations found a legitimate bug! 2014-06-05 09:49:45 -07:00
Ryan C. Gordon c8cf407ea3 Wired up Windows resize hit testing. 2014-06-05 00:54:43 -04:00
Ionut Leonte 2d38a71a1f Added SDL_HITTEST_RESIZE_*, and implemented for X11. 2014-06-05 00:45:16 -04:00
Ryan C. Gordon b861efde14 Implemented SDL_GetAbsoluteMouseState().
X11 only for now, but this should be doable on every platform, I think.
2014-06-05 00:03:33 -04:00
Ryan C. Gordon 264eb4bbed Added some (harmlessly) missing braces. 2014-06-05 00:02:42 -04:00
Brandon Schaefer d829af786e Assume all motion events are mouse events unless tool_type states otherwise. 2014-06-04 12:55:18 -07:00
Sam Lantinga 4fd03b9582 Setting the window size changes the fullscreen display mode, unless a window display mode has been set.
Testing:
* Ran testsprite2 --fullscreen, used Ctrl+ and Ctrl- to change window sizes, verified that the display mode changed as well.
2014-06-04 10:57:52 -07:00
Sam Lantinga c15e26d77d Fixed crash and lost pixel data when recovering from a lost device situation (e.g. alt-tab from fullscreen) 2014-06-04 10:57:40 -07:00
Sam Lantinga 947a0b8bae Ryan C. Gordon <icculus@icculus.org> 2014-05-24 01:23 -0400
Generated dynapi stuff for the new WinRT entry points.
http://hg.libsdl.org/SDL/rev/d54306e2b8a7
2014-06-04 10:57:12 -07:00
Sam Lantinga da6d9a9f2a Added annotations to help code analysis tools
CR: Bruce Dawson
2014-06-04 10:56:56 -07:00
Sam Lantinga 529bcf6293 Fixed bug 2526, but regressed delivering dead key presses 2014-06-04 10:56:43 -07:00
Sam Lantinga 4750fe7390 When the window fullscreen mode changes, update the display resolution 2014-06-04 10:56:37 -07:00
Sam Lantinga 707fd9f071 Fixed bug where changing the window border would change the window size on Windows. 2014-06-04 10:56:30 -07:00
Sam Lantinga 1e00c03f14 Fixed Mac OS X build 2014-06-04 10:56:17 -07:00
Sam Lantinga 45ed5ee494 Added an API function to warp the mouse cursor in global screen space: SDL_WarpMouseGlobal() 2014-06-04 10:55:26 -07:00
Sam Lantinga 3e3b34adc9 Added a hint to disable windows message processing in SDL_PumpEvents()
SDL_SetHint( SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP, "0" );
2014-06-04 10:52:34 -07:00
Sam Lantinga 0d1f0fed71 Added a hint to disable window frame and title bar interaction when the cursor is hidden 2014-06-04 10:50:32 -07:00
J?rgen P. Tjern? d623c0b443 SDL_opengl: Fix Mac build with new glext.h 2014-06-04 09:59:10 -07:00
Sam Lantinga 65133ebc1b Wait for the fullscreen transition to complete before allowing the application to continue.
This fixes Alt-Enter in the Steam streaming client, which sets the window size and position immediately after switching out of fullscreen mode.
2014-06-04 09:39:08 -07:00
Sam Lantinga 16360b1979 Fixed escape cancelling fullscreen mode now that the SDL window is the first res
ponder.
2014-06-04 01:56:14 -07:00
J?rgen P. Tjern? c1e11f699e X11: Provide specific X error when SDL_GL_CreateContext fails.
This makes the X error handler used for GL context creation handle *all* errors
and provide the user with specific error messages when SDL_GL_CreateContext
fails.

CR: icculus@icculus.org
2014-06-03 21:13:00 -07:00
Sam Lantinga ece2a9bf06 Hopefully really fixed the Android build 2014-06-02 09:20:09 -07:00
Sam Lantinga 5186be4a12 Fixed Android build 2014-06-02 09:12:51 -07:00
Sam Lantinga a8fcbc466a Fixed bug 2534 - Mac: black bar at top of screen in SDL_WINDOW_FULLSCREEN mode
Alex Szpakowski

Patch to fix the y component of the position of fullscreen windows in OS X.

In Mac OS X with the latest Mercurial code, when a window is in exclusive-fullscreen the y component of its position is offset by the same amount that is normally taken up by the menubar, resulting in a black bar at the top of the screen.

The recent changes to the internal ConvertNSRect function make it treat the bottom of the menubar as 0 for the y component of window positions, even when the window is fullscreen and 'above' the menubar.

I have attached a patch which fixes the issue by only making the window position relative to the menubar in windowed modes.
2014-06-02 09:09:40 -07:00
Sam Lantinga 6b90d7f58a Fixed bug 2550 - [OS X 10.9] Enabling SDL_WINDOW_FULLSCREEN after relative mouse mode leaves cursor visible
Eric Wasylishen

Steps to reproduce:

- Run testwm2 app in the SDLTest Xcode project
- Press Control+R to enable relative mouse mode. The mouse cursor should disappear.
- Press Control+Enter to enter fullscreen.
- Expected: a black screen with no cursor visible. Observed: a black screen, but the mouse cursor is visible in the middle of the screen. It doesn't move when I move the mouse.

Reproduced with latest sdl2 hg (changeset f6010ead184f) on OS X 10.9.2. Can't reproduce the problem on OS X 10.6.8 or 10.7.5.

I'm speculating that this really an Apple bug.. but anyway, the attached workaround seems to fix it for me, and I think it's fairly safe.

A more obvious idea, sticking a call SDL_SetCursor(NULL) at the end of Cocoa_SetWindowFullscreen, didn't work.
2014-06-02 09:06:38 -07:00
Sam Lantinga 32665131f6 Added a way to get the native Android window and EGL context 2014-06-02 09:01:26 -07:00
Sam Lantinga 3905b910f3 Fixed bug 2479 - [OS X] SDL_SetWindowFullscreen fails to switch to windowed
Eric Wasylishen

The problem seems to be the spaces handling code in -setFullscreenSpace: (SDL_cocoawindow.m) is incorrectly reporting that the SDL_WINDOW_FULLSCREEN -> windowed transition has already happened.

i.e. I saw this case was getting hit when trying to leave SDL_WINDOW_FULLSCREEN:

"else if (state == isFullscreenSpace) {
    return YES;  /* already there. */
}"

With the attached patch, both Control+Enter (SDL_WINDOW_FULLSCREEN toggle) and Option+Enter (SDL_WINDOW_FULLSCREEN_DESKTOP toggle) work in an sdl test app (I tried testwm2). Tested on OS X 10.9.2.
2014-06-02 09:01:10 -07:00
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