Log

Author Commit Date CI Message
Sam Lantinga a329c7f1 2013-10-18T00:13:51 Fixed bug 2139 - SDL_CreateWindow/WIN_GL_LoadLibrary fails due to external iconv not being able to convert path J?nis R?cis Brief history: We recently ported a game from SDL 1.2 to SDL 2. While doing Windows testing, I soon discovered that the game exits without opening a window with my cross-compiled SDL2.dll, but works great with the SDL2.dll from the MinGW SDK on libsdl.org. It was as simple as swapping out the DLLs to make it work. Running the game in Wine showed that the game actually does run, up until the call to SDL_CreateWindow, which fails and leads the game to print out an error: Failure to create window (LoadLibrary("OPENGL32.DLL"): (null)) Which basically says that there was no error, but maybe that's a Wine quirk. The error string originates in SDL_windowsopengl.c, in WIN_GL_LoadLibrary, which contains this piece of code: wpath = WIN_UTF8ToString(path); _this->gl_config.dll_handle = LoadLibrary(wpath); SDL_free(wpath); if (!_this->gl_config.dll_handle) { char message[1024]; SDL_snprintf(message, SDL_arraysize(message), "LoadLibrary(\"%s\")", path); return WIN_SetError(message); } After some digging, I discovered the culprit: WIN_UTF8ToString returns NULL. Why? Because it calls iconv_open from an iconv.dll that does not support the UCS-2-INTERNAL encoding. Why does the official SDL2.dll work? Because it calls no external iconv functions at all. It turns out that the Fedora MinGW infrastructure (from which I obtained the conventiently prebuilt iconv.dll) does not provide a DLL from libiconv, but instead provides a DLL from a minimal Windows library called win-iconv. Which knows a good bit, but doesn't know anything about UCS-2-INTERNAL: http://code.google.com/p/win-iconv/source/browse/trunk/win_iconv.c#155 So there are two problems here: 1) The error message is clearly useless, because LoadLibrary is an innocent bystander. Instead wpath should probably checked for NULL, and a more appropriate error should be set. Ideally something that makes it clear than an external iconv is causing trouble. 2) SDL doomed itself at the ./configure step, by finding an existing iconv and happily using it without confirming support for the mandatory encodings required by SDL. There are certainly a few easy ways out of the situation (although I didn't yet manage to figure out how to prevent ./configure from looking for external iconv), but this had me completely stomped for a good while, so I figured it's worth writing down if anything. (Search also found this, which talks a little about using UTF-16LE instead of UCS-2-INTERNAL: https://bugzilla.libsdl.org/show_bug.cgi?id=2075)
Sam Lantinga 7ae171d1 2013-10-17T23:44:30 Fixed bug 2155 - automatically remap accelerometer coordinates according to screen orientation on Android Denis Bernard Background information: http://android-developers.blogspot.fr/2010/09/one-screen-turn-deserves-another.html and http://developer.android.com/reference/android/hardware/SensorEvent.html Right now, the Android accelerometer event handler feeds raw accelerometer data to the SDL Joystick driver. The result is that for landscape-only applications, the axis need to be swapped if running on a portrait device (like a phone), and vice-versa: running a portrait only app on a landscape device like a tablet. The purpose of this patch is to perform coordinate remapping of the accelerometer data before feeding it to the SDL joystick driver so that the X axis of the joystick is always aligned with the X axis of the display, same for the Y axis. This has been tested on applications that support screen orientation changes as well as applications with fixed screen orientations, both on phones and tablets.
Sam Lantinga 7ad441a3 2013-10-17T23:40:13 Fixed bug 2069 - Device addition/removal queries all USB devices rather than only HID devices. Andreas Ertelt SDL_dxjoystick.c is setting the classguid for device (dis)connect events to USB Devices in general: dbh.dbcc_classguid = GUID_DEVINTERFACE_USB_DEVICE; Wouldn't it make more sense to have it just subscribe to Hid device events? This would mean less meaningless events reaching the application.
Sam Lantinga 3f8df109 2013-10-17T23:15:27 Fixed 1598 - Mingwin build fails on src/audio/xaudio2/SDL_xaudio2.c
Sam Lantinga 888d807a 2013-10-17T23:05:40 Removed redundant #ifdef
Sam Lantinga 12ca3ce3 2013-10-17T23:02:29 Fixed building using MinGW Our SDL_windows.h needed to be included before anything else so UNICODE is defined.
Ryan C. Gordon a2bd8970 2013-10-18T01:36:41 Don't supply duplicate X11 symbols inside SDL. Fixes static linking when something else also uses X11.
Sam Lantinga 95dc9940 2013-10-17T20:49:30 Fix to unbreak SDL_GetSystemRAM() on FreeBSD Marcus von Appen Revision eecbcfed77c9 of the SDL hg repo introduces the new SDL_GetSystemRAM() function, which breaks the build on FreeBSD. Find attached a patch, which unbreaks the build and also should (for most cases) properly implement the sysctl support it.
Sam Lantinga 14e13e13 2013-10-17T17:38:55 Fixed compiler warning if dynamic X11 loading isn't enabled.
Sam Lantinga 7db31223 2013-10-17T17:37:23 Fixed using the wrong variable when reporting a missing SDL scancode mapping.
Sam Lantinga 2e6b4b96 2013-10-17T11:56:33 Fixed compiling on Mac OS X, added a system RAM test
Sam Lantinga 8b79cbad 2013-10-17T11:32:56 Added an API to get the amount of system RAM
Sam Lantinga 852004a2 2013-10-17T11:32:14 The _SC_PHYS_PAGES method of calculating RAM works on Linux.
Sam Lantinga 01164655 2013-10-14T09:15:41 Merged
Sam Lantinga 64e1b1ca 2013-10-14T09:14:09 Fixed project conflict during commit
Sam Lantinga 6435a82d 2013-10-14T09:12:30 Backed out revision fb5ab0e91c56, the platform specific messagebox functions don't have the right prototype since they're designed to be used standalone.
Sam Lantinga 4b603abf 2013-10-14T08:56:55 For some reason, trying to raise the window programmatically while it's alt-tabbed away will minimize it. Added a workaround for this.
Sam Lantinga fea2699c 2013-10-14T08:56:50 Fixed the windows message debug output so it works without HAVE_LIBC
Sam Lantinga e7e86c6d 2013-10-14T08:56:45 Adding static lib to SDL builds on Windows. CR: SamL
Sam Lantinga 06cab857 2013-10-14T08:56:37 Added support for SDL_PIXELFORMAT_UYVY surfaces on Mac OS X
Sam Lantinga 8ec3ba38 2013-10-13T19:59:40 Fixed accumulating mouse wheel motion for the Microsoft Wireless Mouse 5000
Sam Lantinga 080c919b 2013-10-13T19:51:58 Fixed function feature test for Visual Studio 2012 norfanin Fixes the version check for some functions that are only present with the MSVC 2013 CRT libraries. I did my testing wrong and failed to see that 2012 doesn't have these functions. Microsoft implemented them in their upcoming 2013 version, though. The attached patch changes it to the check for the next version. I also removed the HAVE_ITOA because that would require linking with oldnames.lib and it's easier to just let the SDL implementation take over.
Sam Lantinga 2337a684 2013-10-13T19:49:45 Fixed bug 2149 - Don't search for libusbhid except on BSD Joseph Carter There's a whole set of configure tests for BSD's libusbhid, and they only matter on BSD. However, if you have the library on Linux, it gets pulled in as library bloat. And it's bloat of the highest order since not a single function call to the library is ever made unless you're on a *BSD.
Sam Lantinga a7b2db05 2013-10-13T19:48:45 Added an assert to catch init/quit call mismatch that might bite people.
Gabriel Jacobo e9d21339 2013-10-13T17:15:43 Prevent keystrokes from leaking through to the console when using evdev. This uses the same method Weston and X use. Sadly, to be fully effective when launching remotely, this needs root permissions.
Gabriel Jacobo 074a1c4c 2013-10-12T16:29:34 Fixes X11 video backend compilation when no GL is available For example, in our Raspberry Pi sysroot.
Edward Rudd 7bc98157 2013-10-12T11:21:40 added simple Drag & drop test
Gabriel Jacobo f6fa4158 2013-10-12T11:35:47 Updates the Raspberry Pi README
Ryan C. Gordon 9a0954c5 2013-10-11T10:58:05 Do a full sysroot for the Raspberry Pi buildbot. This gets us ALSA and X11, etc.
Sam Lantinga 4349cb57 2013-10-10T21:51:39 Fixed bug 2146 - Enable static linking of libSDL on Android Denis Bernard This patch to Android.mk adds support for static linking of libSDL for Android applications. A patched readme with static build instructions is also provided. It does not break existing build environments setup according to the README-android.txt since the static library version will not be built in not required. The static build uses the Android NDK module system (see docs/IMPORT-MODULE.html in the NDK folder and step 5 in the instructions below). Instructions: 1. Copy the android-project directory wherever you want to keep your projects and rename it to the name of your project. 2. Create a symlink to SDL/src/main/android/SDL_android_main.c as <project>/jni/src/SDL_android_main.c 3. Rename <project>/jni/src/Android_static.mk to <project>/jni/src/Android.mk (overwrite the existing one) 4. Edit <project>/jni/src/Android.mk to include your source files 5. create and export an environment variable named NDK_MODULE_PATH that points to the parent directory of this SDL directory. e.g.: export NDK_MODULE_PATH="$PWD"/.. 6. Edit <project>/src/org/libsdl/app/SDLActivity.java and remove the call to System.loadLibrary("SDL2") line 42. 7. Run 'ndk-build' (a script provided by the NDK). This compiles the C source Although this requires an environment variable to be setup, it can be added once and for all to the main Android.mk of the project.
Sam Lantinga a7e1fddd 2013-10-10T21:50:25 Updated SDL to version 2.0.1
Sam Lantinga 15682c0c 2013-10-10T20:58:20 Report joystick added/removed events even if we don't have udev. T. Joseph Carter As discussed (possibly to death), the Linux joystick driver does not actually report events for added or removed joysticks when you haven't got udev support. We simply cannot know about removed joysticks without udev. But we can (and we should) report adding them. This brings the legacy case in line with pretty much the rest of SDL's joystick drivers.
Ryan C. Gordon 69e1e779 2013-10-10T02:37:36 Raspberry Pi build script: let caller specify final tarball name.
Ryan C. Gordon f7e0a9b2 2013-10-10T02:21:41 Patched to compile in C90 mode.
Ryan C. Gordon 6b2291d1 2013-10-10T02:06:14 Fixed tarball name in Raspberry Pi build script.
Ryan C. Gordon 4f305b85 2013-10-10T01:46:39 Added script that the buildbot will use for cross-compiling to Raspberry Pi.
Gabriel Jacobo 89131435 2013-10-10T00:49:57 Adds gl_profile_mask to test framework, uses it in testgles
Gabriel Jacobo d0fddfab 2013-10-10T00:30:03 Fixes Bug 2134 - [Android] Black screen after resume (sometimes)
Gabriel Jacobo eaa4300f 2013-10-09T11:30:01 Fixes testgles and testgl
Gabriel Jacobo 24f23771 2013-10-09T10:29:01 Adds test framework to Android.mk and a simple utility to build Android projects
J?rgen P. Tjern? 2568a367 2013-10-07T16:01:40 Mac: Better handling when someone else is the app delegate.
J?rgen P. Tjern? c455f729 2013-10-07T14:16:38 Fix SDL_SetWindowPosition on fullscreen windows. This reverts http://hg.libsdl.org/SDL/rev/7cdeb64faa72 and fixes it in the correct way. If you call SDL_SetWindowPosition on a fullscreen window, it would update the x & y variables for the window, but not actually move the window (since it was fullscreen). That would make the internal state of the SDL_Window incorrect, causing SDL_WarpMouseInWindow to offset incorrectly. This makes it so SDL_SetWindowPosition updates the `windowed' x & y coordinates, which take effect when you revert from fullscreen.
Sam Lantinga cca09422 2013-10-06T20:39:23 Only allocate a joystick instance ID once we know it's a joystick. This fixes compatibility with code that assumes 0 based joystick instance IDs.
Sam Lantinga 11c45c4e 2013-10-06T13:50:36 Removed unused variables (thanks Joseph!)
Sam Lantinga 8f46bcfd 2013-10-06T13:49:23 Check for NULL joystick in SDL_JoystickGetGUID()
Sam Lantinga 90a219a3 2013-10-05T21:15:55 Fixed bug where a Logitech wireless keyboard with built-in mouse touchpad didn't get recongized as both devices.
Sam Lantinga 52966427 2013-10-05T19:09:03 Fixed bug 2132 - Tests may use invalid SDL_window pointers when windows are closed norfanin Some of the tests keep using the pointers of a destroyed SDL_Window when the common event handling handled the close event. The event handler itself does not NULL the pointer after the destruction. The attached patch adds a loop in the handler that will assign NULL to the destroyed window. It also adds checks to some of the tests so they skip those windows by checking for NULL.
Sam Lantinga 36b75917 2013-10-05T12:29:05 Do a 32-bit compare on RGBA values. Thsi should be inlined in optimized builds.
Philipp Wiesemann 0db36f51 2013-10-05T17:08:19 Added detection of touch devices before first touch events happen on Android. On Android available touch devices are now added with video initialization (like the keyboard). This fixes SDL_GetNumTouchDevices() returning 0 before any touch events happened although there is a touch screen available. The adding of touch devices after a touch event was received is still active to allow connecting devices later (if this is possible) and to provide a fallback if the new init did not work somehow. For the implementation JNI was used and API level 9 is required. There seems to be nothing in the Android NDK's input header (input.h) to implement everything on C side without communication with Java side.
Ryan C. Gordon 5607cc45 2013-10-05T00:29:57 Avoid redundant state changes in the GLES2 renderer.
Ryan C. Gordon 500e4f6f 2013-10-04T11:25:14 Removed "u_colorTable" uniform from the GLES2 renderer. It's not used anywhere.
Gabriel Jacobo 9c489c7c 2013-10-04T08:23:37 Fix EGL/OpenGL ES paths
Sam Lantinga 9cbd05df 2013-10-03T21:41:09 Report an error if creating a render target fails
Sam Lantinga 50989846 2013-10-03T20:48:52 Added optional error checking for OpenGL ES 2.0 in the same style as the OpenGL renderer. You can enable it like this: SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG);
Sam Lantinga e5ef978e 2013-10-03T20:42:43 Fixed a potential double-free bug if glGenTextures() failed.
Gabriel Jacobo b39a4daf 2013-10-03T10:28:10 SDL_TEXTINPUT support for EVDEV
Sam Lantinga 1f21484b 2013-10-03T03:31:05 Fixed const/non-const warning
Sam Lantinga 8fbd7dc7 2013-10-03T00:54:58 Fixed bug 2130 - Two members of Windows WindowData not initialized norfanin SetupWindowData in SDL_windowswindow.c doesn't initialize two members of SDL_WindowData with NULL. This is an issue because other parts of the SDL code seem to make the assumption that this is the case. WIN_DestroyWindowFramebuffer for example uses data->mdc and data->hbm if they're not NULL.
Ryan C. Gordon ce45fa28 2013-10-02T22:18:04 SDLK_DELETE should probably be SDLK_BACKSPACE on iOS. The key on the software keyboard works like backspace, at least. Not sure what happens with a bluetooth keyboard here.
Ryan C. Gordon 958640e5 2013-10-02T22:16:11 Get rid of glGetError() calls in GLES2 renderer. It's not usually useful, and it causes pipeline stalls.
Gabriel Jacobo 57e09318 2013-10-01T08:47:06 Uses SDL_UDEV for Linux joystick hotplugging
Sam Lantinga 69a4351e 2013-09-30T22:35:32 Fixed bug 2121 - GCC throws error on SDL_FORCE_INLINE when compiling with -ansi
Sam Lantinga 22a972a4 2013-09-30T22:16:14 Fixed bug 2122 - SDL_CreateTexture allows illegal texture sizes Lloyd Bryant SDL_CreateTexture() is succeeding (i.e. returning a valid pointer) when the requested horizontal or vertical size of the texture exceeds the maximum allowed by the render. This results in hard-to-understand errors showing up when later attempting to use that texture (such as with SDL_SetRenderTarget()).
Sam Lantinga 058aba08 2013-09-30T21:57:03 Fixed bug 2119 - compiler warnings (-pedantic) SDL_video.h:111:42
Gabriel Jacobo 889b6bd7 2013-09-28T19:23:59 Removes unused property use_egl from internal structure gl_config
Gabriel Jacobo c691de00 2013-09-28T19:17:27 Fix: SDL_EVDEV_device_removed does not need UDEV
Sam Lantinga 202528a4 2013-09-28T14:07:17 Call AddRef() on the device so it doesn't accidentally get released from underneath the caller.
Sam Lantinga 25f607a3 2013-09-28T14:07:14 Make it clear we're just returning a D3D9 device, allowing for new functions to get other D3D versions
Sam Lantinga cf5e5a83 2013-09-28T14:07:08 Added a hint to create the D3D device in thread-safe mode: SDL_HINT_RENDER_DIRECT3D_THREADSAFE
Sam Lantinga 803965bc 2013-09-28T14:07:05 Added platform specific call: SDL_RenderGetD3DDevice()
Sam Lantinga 9f390e79 2013-09-28T14:06:59 Moved SDL_Direct3D9GetAdapterIndex() to SDL_windowsvideo.c since it doesn't belong in the window code.
Sam Lantinga 89c31bb4 2013-09-28T14:06:55 Implemented SDL_UpdateYUVTexture() for Direct3D
Sam Lantinga 17c9ff85 2013-09-28T14:06:51 Added missing SDL_assert.h
Sam Lantinga 57bd5147 2013-09-28T14:06:47 Added optimized YUV texture upload path with SDL_UpdateYUVTexture()
Sam Lantinga d0a57ea2 2013-09-28T14:06:39 Rolled back my LoadLibrary change. The first failed call causes a dialog to pop up in Windows apps (but not console apps) and that's really bad. I'll have to deal with this in my app.
Sam Lantinga dfa53e7e 2013-09-28T14:06:31 SDL_LoadObject on Windows now calls LoadLibrary a second time in its EX form whenever the first load fails. This second call uses the "altered" search path for DLL dependencies, which includes searching the directory that the DLL itself lives in.
Sam Lantinga b6be1435 2013-09-28T14:06:20 Moved D3D_LoadDLL and SDL_Direct3D9GetAdapterIndex to SDL_windowswindow.c at Jorgen's insistence. That file is wrapped in a more appropriate define check so it will work if somebody builds a binary without D3D support. Added a reference to SDL_Direct3D9GetAdapterIndex to SDL_test_common.c so SDL will fail to compile if the new symbol isn't included properly. CR: Jorgen
Gabriel Jacobo 1ccbad96 2013-09-28T15:48:32 Do not use UDEV references in EVDEV if UDEV has not been detected
Sam Lantinga 99789c71 2013-09-28T10:30:51 Fixed bug 1820 - building SDL as a static library with static runtime doesn't compile/link with visual studio norfanin Adds a condition so only the MSVC 2012 compiler defines the macros for the functions of its version. Attaching a patch that adds a condition so that the HAVE_X supported by MSVC 2012 only get defined with that compiler. MSVC 2008 and 2010 will then build without any modification to the SDL source code. Also moved HAVE_M_PI to a separate check. The Microsoft headers require _USE_MATH_DEFINES to be defined before they define the constants.
Gabriel Jacobo 9ceed73d 2013-09-28T13:28:19 Raspberry Pi support (also unified UDEV and EVDEV support)
Philipp Wiesemann b9a22308 2013-09-28T12:55:32 Fixed doxygen warning.
Philipp Wiesemann 90afb94e 2013-09-28T12:48:26 Corrected name of SDL_Color field from unused to a.
Sam Lantinga 8b6ad7ff 2013-09-27T23:47:57 Fixed bug 2101 - CWBackPixel causes weird window flickering on window resize aBothe I tried to experiment a bit with SDL2 and OpenGL today and noticed that something caused some weird flickering when resizing my nicely drawn SDL2/OpenGL window: Just after resizing, the background went black and I had to let my OpenGL code redraw the contents.. However, after some hours spent with googling I found out that in OpenGL examples where this CWBackPixel flag was not used when creating X windows, there was no flickering while resizing the window. See http://www.sbin.org/doc/Xlib/chapt_04.html @ "The Window Background" for more info.
Sam Lantinga b9567776 2013-09-27T23:35:17 # User Darren Salt <devspam@moreofthesa.me.uk> # Date 1379621782 -3600 # Thu Sep 19 21:16:22 2013 +0100 Work around a false-positive in the X11 mouse wheel code This false positive occurs when one particular button on my mouse is pressed. The kernel which I'm using is patched to cause a release event to be synthesised immediately when the mouse says that this button is pressed because the mouse doesn't signal release until the button is next pressed. (Also documents a false negative, observed with the horizontal scroll wheel on the same mouse.)
Sam Lantinga c95761e0 2013-09-27T23:29:05 Fixed bug 2100 - directfb fails to build
Sam Lantinga 3ef5a977 2013-09-27T23:19:22 Fixed the name of the environment variable to match the name of the hint.
Sam Lantinga 0103bc0b 2013-09-27T22:09:51 Default to OpenGL ES 2.0 instead of 1.0 when it's available.
Edward Rudd 869a7076 2013-09-20T13:43:00 add in High DPI support (aka Retina) - based on J?rgen's patch with a few bug fixes
Sam Lantinga d3d6f9ad 2013-09-14T11:25:52 Fixed syntax error in C style block comment.
Ryan C. Gordon bfe1b1d0 2013-09-14T01:30:57 Don't incorrectly report success for negative swap intervals on Mac OS X.
Sam Lantinga fae4190d 2013-09-13T17:42:46 Added SDL_Direct3D9GetAdapterIndex(), which returns the adapter index you would pass into CreateDevice to get your device on the right monitor in full screen mode. This fixes the default adapter in SDL_render_d3d.c, which means that tests will work fullscreen off the main monitor now. CR: Sam
Sam Lantinga 49d64d52 2013-09-13T17:42:38 Fix X11_RestoreWindow() and X11_RaiseWindow() to properly do window activation. X11_RestoreWindow() had a call ordering problem that prevented activation, and X11_RaiseWindow() wasn't attempting activation. Windows and OS X both activate in these cases. CR: saml
Sam Lantinga 67c02a28 2013-09-13T17:42:31 Mac: Translate Ctrl-Left click to right click.
Sam Lantinga e231d5b4 2013-09-13T17:41:17 Mac: Turn off momentum-based scrolling.
Sam Lantinga 37509cf3 2013-09-13T17:40:41 Mac: Fix cast warning.
pgriffais a9166450 2013-09-10T18:25:13 [SDL] X11+GL: Allow Visual override for GL windows. SDL provides an SDL_VIDEO_X11_VISUALID environment variable that lets you override window visuals, but it wasn't being checked for OpenGL windows. CR: Sam.
Ryan C. Gordon 5081b5d3 2013-09-07T13:57:20 Workaround for compiling with /W4 warnings on Visual C++.
Ryan C. Gordon 83383c65 2013-09-07T13:47:14 Disable thread naming on Win64 for now. We can't use _try/_except without the C runtime, and we can't use inline asm with the Win64 compiler. We'll need to move this to an .asm file or something later.
Sam Lantinga dc9ddf1f 2013-09-06T20:54:14 Fixed bug 2090 - Some joystick inputs are delayed on FreeBSD kikuchan Some joysticks with high sampling rate need to be read() more fast, otherwise it delay user inputs due to internal queue. Especially, an app that issues SDL_PollEvent() not so frequent
Sam Lantinga 10ffa28a 2013-09-06T20:45:08 Fixed time comparison and explicitly delay 1 ms instead of an arbitrary scheduled time.