Commit Graph

7461 Commits

Author SHA1 Message Date
Sam Lantinga d76c2cc1da Add a new hint SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT that allows SDL_CreateWindowFrom() to set the pixel format of another SDL_Window (and also will set the SDL_WINDOW_OPENGL flag on the window created with SDL_CreateWindowFrom()).
The reasoning behind this change is that source2 in -tools mode has a single OpenGL context that is used with multiple different windows.  Some of those windows are created outside the engine (i.e. with Qt) and therefore we need to use SDL_CreateWindowFrom() to get an SDL_Window for those.  The requirement for sharing an OpenGL context across multiple different windows is that each window has the same pixel format.  To facilitate this, I now set SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT for the main window before calling SDL_CreateWindowFrom().  When I do this, SDL_CreateWindowFrom() will:

1. Set the pixel format of the returned window to the same pixel format as this SDL_Window passed in with the hint
2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for OpenGL rendering.

I only currently implemented this for Win32/WGL so implementing it for other platforms (i.e. X11) remains a TODO.

CR: SamL

Some pseudocode that shows how this is used in Source2:

HWND hExternalHwnd; // HWND that was established outside of SDL

// Create main window (happens inside platwindow.cpp)
SDL_Window *mainWindow = SDL_CreateWindow( , SDL_WINDOW_OPENGL .. );
// Create GL context, happens inside rendersystemgl
SDL_GLContext onlyContext = SDL_GL_CreateContext( mainWindow );

// Now I need to create another window from hEternalHwnd for my swap chain that will have the same pixel format as mainWindow, so set the hint
SDL_SetHint( SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT, CFmtStr( %p, mainWindow) );

// Create the secondary window.  This returned window will have SDL_WINDOW_OPENGL set and share a pixel format with mainWindow from the hint
SDL_Window *secondaryWindow = SDL_CreateWindowFrom( hExternalHwnd );

// To render to the main window:
SDL_GL_MakeCurrent( mainWindow, onlyContext );
// Do some rendering to main window

// To render to the secondary window:
SDL_GLMakeCurrent( secondaryWindow, onlyContext );
// Do some rendering to secondary window
2014-01-30 12:30:40 -08:00
Sam Lantinga dbd4a917e0 Document Michael's changes adding TranslateMessage() back to the SDL message loop. 2014-01-30 12:27:24 -08:00
Sam Lantinga 5c58bd6877 * Added TranslateMessage call to SDL default message pump - was causing problems in S2 tools mode apps that used Qt. Qt relies on the WM_CHAR message generated by TranslateMessage and keyboard input was showing up in the UI as mixed-case. (Depending on which message pump got a given message - both SDL and Qt pump messages for the entire process.) Sam will review and possibly tweak this change before propagating to public SDL, but I'm checking this version in so I can integrate into S2 and fix the issue there. 2014-01-30 12:27:00 -08:00
J?rgen P. Tjern? 366b1727bb Mac: [NSApp keyWindow] is not valid in windowDidBecomeKey:
This fixes weird behavior on Mac where our first responder reverts to the window
itself, rather than the SDLTranslatorResponder, after the window has lost focus
once. This causes Escape to call cancelOperation: on the NSWindow, which by
default removes our fullscreen-ness.

When someone has turned off SDL_TEXTINPUT we should probably set another initial
responder that handles the Escape behavior, so that SDL_TEXTINPUT doesn't change
fullscreen behavior (and possibly other behavior) like it does now.
2014-01-29 18:37:23 -08:00
dbrady 109fe0e0dc fixed hat code validation. 2014-01-28 15:28:20 -08:00
Philipp Wiesemann 68f2fe6499 Fixed spaces in source file license comment. 2014-01-29 00:29:14 +01:00
Philipp Wiesemann 62b17e7edb Fixed comments in joystick implementation files claiming to be headers.
It seems comments were originally copied from SDL_sysjoystick.h.
2014-01-29 00:27:54 +01:00
Ryan C. Gordon 4f1b8a4067 Move to no-argument version of "endif()" in CMakeLists.txt. 2014-01-28 12:42:01 -05:00
Ryan C. Gordon 2de3b01c61 Some CMake fixes for static linking on Windows from the OpenFL project. 2014-01-28 12:37:04 -05:00
Gabriel Jacobo f52d7f5eea [Wayland] Fixes segfault when mouse enters window 2014-01-28 11:39:37 -03:00
Gabriel Jacobo 682bc47bc5 Preserve binary compatibility in SDL_SYSWM_TYPE (thanks Gerry JJ!)
Also moved Wayland structures to the bottom of the union for OCD related issues.
2014-01-28 09:13:46 -03:00
Ryan C. Gordon 9d85cdb1a6 CMake: Enable missing timer subsystem on Mac OS X and Haiku. 2014-01-28 00:05:23 -05:00
J?rgen P. Tjern? 2efa2dc227 X11: Don't redraw dialog box when mouse moves.
This fixes bug #2343. (https://bugzilla.libsdl.org/show_bug.cgi?id=2343)

Thanks to Melker Narikka for the patch.
2014-01-27 13:43:04 -08:00
Ryan C. Gordon aff44ccdb5 Patched to compile...uh, everywhere. :) 2014-01-27 16:13:13 -05:00
Ryan C. Gordon 87cfee27d0 Patched to compile on Windows when not supporting Direct3D. 2014-01-27 16:10:15 -05:00
Gabriel Jacobo 33479316c7 [Android] Fixes Bug 2370, don't send accelerometer changes when
Android_JNI_GetAccelerometerValues return SDL_FALSE (thanks to Jairo Luiz)
2014-01-27 17:59:19 -03:00
Philipp Wiesemann 037475670f Removed unused variable from Java class for Android.
The audio thread was moved to native side and "protected" prevented a warning.
2014-01-26 23:50:35 +01:00
Philipp Wiesemann 6234415872 Fixed typo in documentation. 2014-01-26 23:42:25 +01:00
Edward Rudd 815c6c3b60 quick fix for CMAKE SOVERSION number so it matches what is output by the configure script 2014-01-25 16:08:39 -05:00
Edward Rudd f186314aef correct grammar on UNIX missing dependency status notice. 2014-01-25 15:13:16 -05:00
Edward Rudd 5071cb5c15 autoconf script tweaks
- fix up chmodding sdl2-config
- remove duplicate enable_atomic section
- add pretty summary of what was found/enabled
2014-01-25 15:05:44 -05:00
Gabriel Jacobo e78be5dafd Bug 2358 - [Android] Sort joystick axes - Fix by David Brady 2014-01-24 09:54:04 -03:00
Gabriel Jacobo 50befa6201 Bug 2358 - [Android] Joystick Button Mappings are strange (fix by David Brady) 2014-01-23 08:44:25 -03:00
Ryan C. Gordon ecc0df0661 Fix detection of iOS for disabling dynamic API. 2014-01-22 12:39:34 -05:00
Ryan C. Gordon f02ef2985d Fixed XF86 VidMode extension dynamic loading with CMake project. 2014-01-21 16:28:53 -05:00
Gabriel Jacobo b131e74be4 Fixes 2356, [Android] SDL_JoystickGetAttached does not function
Also fix a potential NULL pointer access in android/SDL_SYS_JoystickGetGUID
2014-01-21 18:20:12 -03:00
Ryan C. Gordon beee1c4424 Fixed dynamic loading of NAS in CMake project. 2014-01-21 13:58:15 -05:00
Gabriel Jacobo cf9828a2a6 Move Wayland driver above dummy, check for driver availability before creation 2014-01-20 20:25:43 -03:00
Ryan C. Gordon 2ddd0c58c9 Patched to compile if Wayland is disabled via SDL_config.h (thanks, Martin!).
Fixes Bugzilla #2351.
2014-01-20 12:53:44 -05:00
Sam Lantinga 9e90acdfcf Make sure you clean up the associated renderer when destroying a window. 2014-01-18 11:47:03 -08:00
Gabriel Jacobo 129640af7a Fixes prototype declaration for wl_proxy_marshal_constructor [Wayland 1.4] 2014-01-16 15:02:41 -03:00
Gabriel Jacobo 838e76c699 Fix to compile against the Wayland v1.4 headers 2014-01-16 11:33:39 -03:00
J?rgen P. Tjern? 12e7fdcbb6 Don't minimize fullscreen windows when destroying them.
Previously, we'd minimize fullscreen windows (if
SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS was set) during SDL_DestroyWindow if they
had keyboard focus, because we call SDL_SetKeyboardFocus(NULL) which yields a
OnWindowsFocusLost event.

Related to https://bugzilla.libsdl.org/show_bug.cgi?id=1840
2014-01-15 11:34:03 -08:00
J?rgen P. Tjern? bc92383eea Mac: Don't give windows focus back when we're closing them.
Fixes bug #1840 (https://bugzilla.libsdl.org/show_bug.cgi?id=1840)
2014-01-15 11:31:56 -08:00
J?rgen P. Tjern? a0c9e649f5 Allow switching between FS and desktop FS.
This should fix bug #2057 (https://bugzilla.libsdl.org/show_bug.cgi?id=2057)
2014-01-15 11:17:09 -08:00
J?rgen P. Tjern? a442f121e6 Test: Add Shift-Enter to switch between FS and desktop FS. 2014-01-15 11:08:55 -08:00
J?rgen P. Tjern? a6a56af91b Tests: Refactor key modifier checking. 2014-01-15 10:40:14 -08:00
Gabriel Jacobo 56355f3ffe Adds README-dynapi.txt based on Ryan's G+ post (lightly edited)
Original post: https://plus.google.com/103391075724026391227/posts/TB8UfnDYu4U
2014-01-15 12:29:17 -03:00
J?rgen P. Tjern? 8f660a4627 Mac: Trigger SDL_FINGERUP for all touches.
Fixes bug #2348. Thanks to Alex Szpakowski for the patch!
2014-01-14 17:33:24 -08:00
Gabriel Jacobo c0d86b9237 Make EGL loading more resilient.
Lesson learned while trying to run L4D2 under Wayland :)
2014-01-14 21:29:38 -03:00
Gabriel Jacobo 272ebb8efb Dynamic loading support for Wayland 2014-01-09 13:56:21 -03:00
Edward Rudd 5fd5567c4c define a font-size for the "unicode" message box font so the text isn't unreadable on linux systems 2014-01-08 14:53:08 -05:00
Edward Rudd 93fd65f762 some fixes to the testshape.c code so it more correctly works. 2014-01-08 14:18:11 -05:00
Ryan C. Gordon d75665c776 Maybe fix Cygwin. 2014-01-08 01:07:57 -05:00
Ryan C. Gordon 960458e58c Patched to compile on Cygwin. 2014-01-08 00:58:03 -05:00
Ryan C. Gordon e9689e8df6 Another Android fix. 2014-01-08 00:51:31 -05:00
Ryan C. Gordon d16e630160 Updated Dynamic API jumptable. 2014-01-08 00:46:39 -05:00
Ryan C. Gordon e9be2d0b59 Add Dynamic API to Android makefile. 2014-01-08 00:45:29 -05:00
Ryan C. Gordon afd0f32314 Patched to compile on Android (I think). 2014-01-08 00:40:48 -05:00
Ryan C. Gordon d5c977adb7 Patched to compile on OpenBSD. 2014-01-08 00:31:19 -05:00