Commit Graph

1845 Commits

Author SHA1 Message Date
Edgar Simo
22426af602 More verbosity and error checking. 2009-02-21 18:03:22 +00:00
Edgar Simo
2d0c76a026 Fixed haptic subsystem on linux 2.6.28 by lowering the EV_IsJoystick check (seems like some stuff was changed). Shouldn't break anything with earlier versions. Might need to be more robust if false positives show up. 2009-02-21 18:02:55 +00:00
Sam Lantinga
bcaf46aa36 indent 2009-02-19 06:49:59 +00:00
Sam Lantinga
8c01144b7f Implemented X11 maximized state control 2009-02-19 06:48:25 +00:00
Sam Lantinga
acb3ff50e3 Use the default arrow cursor until we implement the cursor API 2009-02-19 04:41:09 +00:00
Sam Lantinga
370ce67850 Fixed bug using SDL_WINDOWPOS_CENTERED with SDL_SetWindowPosition() 2009-02-19 04:15:04 +00:00
Darren Alton
d3abcab957 NDS compiles again, but may not yet work. Sprite support has been removed for the time being while it is re-worked. 2009-02-18 00:33:31 +00:00
Sam Lantinga
a59d71fd7e Fixed bug #684
Reworked Pierre's patch a little bit, which added SDL_WaitEventTimeout()
2009-02-17 05:59:40 +00:00
Sam Lantinga
34ec22eedd indent 2009-02-17 05:57:54 +00:00
Sam Lantinga
41cfcacafc Date: Thu, 27 Dec 2007 07:38:25 +0000
From: John Bartholomew
Subject: [SDL] SDL Semaphore implementation broken on Windows?
Hi,

Over the past couple of days, I've been battling with SDL, SDL_Mixer and SMPEG to try to find an audio hang bug.  I believe I've found the problem, which I think is a race condition inside SDL's semaphore implementation (at least the Windows implementation).  The semaphore code uses Windows' built in semaphore functions, but it also maintains a separate count value.  This count value is updated with bare increment and decrement operations in SemPost and SemWaitTimeout - no locking primitives to protect them.

In tracking down the apparent audio bug, I found that at some point a semaphore's count value was being decremented to -1, which is clearly not a valid value for it to take.

I'm still not certain exactly what sequence of operations is occuring for this to happen, but I believe that overall it's a race condition between a thread calling SemPost (which increments the count) and the thread on the other end calling SemWait (which decrements it).

I will try to make a test case to verify this, but I'm not sure if I'll be able to   (threading errors being difficult to reproduce even in the best    circumstances).

However, assuming this is the cause of my problems, there is a very
simple fix:
Windows provides InterlockedIncrement() and InterlockedDecrement()
functions to perform increments and decrements which are guaranteed to be atomic.  So the fix is in thread/win32/SDL_syssem.c: replace occurrences of --sem->count with InterlockedDecrement(&sem->count); and replace occurrences of ++sem->count with InterlockedIncrement(&sem->count);

This is using SDL v1.2.12, built with VC++ 2008 Express, running on a
Core 2 duo processor.
2009-02-17 05:39:18 +00:00
Sam Lantinga
2d957ea3af Fixed bug #633
Description From  Michael Stone   2008-09-25 19:27:29   (-) [reply]

To determine whether a pid is occupied with the kill(pid, 0) idiom, you have to
test

#include <signal.h>
#include <errno.h>
kill(pid, 0) < 0 && errno == ESRCH

not just

#include <signal.h>
kill(pid, 0) < 0

otherwise you get incorrect results when pid is running as a different user
(causing kill(pid, 0) to return -1 + EPERM).

src/audio/alsa/SDL_alsa_audio.c is certainly affected by this bug in both
1.2.13 and 1.3-trunk. It probably occurs in other places as well.
2009-02-17 05:17:51 +00:00
Sam Lantinga
5360d4d180 Fixed destination of XCopyArea() 2009-02-15 06:12:52 +00:00
Sam Lantinga
0524f9b916 Fixed off by one error in line drawing code 2009-02-12 06:01:54 +00:00
Sam Lantinga
5cdfe31db1 Throw a FIXME in there, we'll need to take care of this later. 2009-02-09 06:15:06 +00:00
Sam Lantinga
e141340a20 Added test program for SDL_CreateWindowFrom()
Make sure OpenGL library is loaded before working with OpenGL windows,
even those created with SDL_CreateWindowFrom()
2009-02-09 05:32:12 +00:00
Sam Lantinga
6878317fa0 Oh, Polyline() uses a pen, not a brush. Doh! :) 2009-02-08 15:35:06 +00:00
Sam Lantinga
b11ed7c9c5 indent 2009-02-07 18:03:46 +00:00
Sam Lantinga
c1d386b7fe Fixed alpha blending textures with the GDI renderer 2009-02-07 17:56:08 +00:00
Sam Lantinga
3a142d8a52 When creating a software texture, synchronize the surface with the texture.
When creating a texture from a surface, synchronize the texture with the surface.
2009-01-30 06:40:16 +00:00
Sam Lantinga
ea6f7b8f2d indent 2009-01-30 06:38:44 +00:00
Sam Lantinga
63dc0e4806 Fixed Altivec blitters for PPC 2009-01-25 05:14:29 +00:00
Sam Lantinga
874db0663d Fixed compilation on Mac OS X 10.3.9 2009-01-19 15:15:03 +00:00
Sam Lantinga
7ed3b5d46e Fix recommended by Eddy L O Jansson 2009-01-19 03:28:23 +00:00
Edgar Simo
bbcab32cb1 Some more safety around the SDL_HelperWindow stuff to avoid double creations. 2009-01-18 17:00:02 +00:00
Bob Pendleton
d3dee2dd2b Changes to hopefully handle the creation of a colormap for 8 bit PseudoColor visuals in X11 2009-01-15 21:35:42 +00:00
Sam Lantinga
bdbd0a16d6 Fixed OpenGL state issue reported by Dmytro Bogovych 2009-01-14 06:53:03 +00:00
Sam Lantinga
765fb4319c indent 2009-01-14 04:25:32 +00:00
Couriersud
966de9afa8 Fix fullscreen crash with DirectFB <= 1.2.0 2009-01-13 23:27:08 +00:00
Couriersud
745416da26 Fixed MakeSubSurface compiling issue for DirectFB <= 1.2.0 2009-01-13 22:59:02 +00:00
Couriersud
155e70d709 Added DFB_VERSION_ATLEAST macro
First attempt at replacing MakeSubSurface for pre 1.2.0 ==> Scaling not yet working
2009-01-13 21:17:38 +00:00
Bob Pendleton
42b61ebb9a Added
#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS NULL
#endif

so that the X code would compile. It looked like it was needed
2009-01-13 19:31:06 +00:00
Sam Lantinga
6d79f1f7ac Removed Rafal Bursig's MMX RLE code, at his request. 2009-01-13 07:20:55 +00:00
Sam Lantinga
1f99ca8e72 Fixed NULL pointer dereference 2009-01-13 03:53:22 +00:00
Sam Lantinga
00db62df34 Fixed Visual C++ build 2009-01-12 08:46:28 +00:00
Sam Lantinga
b9aa239ff3 Don't complain when the GNOME screensaver isn't running (or available) 2009-01-12 08:28:17 +00:00
Sam Lantinga
081e30b877 This is so wrong, it hurts.
Instead of the GNOME screensaver respecting the MIT-SCREEN-SAVER extension
and registering for the screensaver idle event, it uses a completely different
control mechanism.  Our alternatives are to use dbus (very complicated) or
this really painful hack.
2009-01-12 08:26:24 +00:00
Sam Lantinga
06bfd7d230 Re-enable the screensaver at exit, just in case it's needed... 2009-01-12 08:23:47 +00:00
Sam Lantinga
5670d9e19e Don't disable the screen saver by default for windows applications 2009-01-12 08:23:12 +00:00
Sam Lantinga
42a8aa5af2 Reverted SDL_LoadICO_RW() addition, this should go in SDL_image 2009-01-12 06:21:34 +00:00
Sam Lantinga
276a01a55e Added an API to enable/disable the screen saver.
The screensaver is disabled by default when using SDL 1.2 compatibility.
Use the new XScreenSaver extension, removed unused DPMS extension.
2009-01-12 06:19:05 +00:00
Couriersud
1cd0eb7eba Add SDL_LoadICO_RW to SDL. Loads best quality icon from *.ico file. 2009-01-11 23:56:19 +00:00
Couriersud
30b61cd697 DirectFB cleanups & simple window manager
- use SDL_getenv, not getenv ...
- no more support for 0.9.25 - not even mentioned any longer on directfb.org
- fix fullscreen issues
- add a simple window manager unless the directfb team comes up with a working wm.

The driver has support for a very, very basic window manager you may
want to use when runnning with "wm=default". Use

export SDL_DIRECTFB_WM=1

to enable basic window borders including icon support. In order to have the window title rendered,
you need to have the following font installed:

/usr/share/fonts/truetype/freefont/FreeSans.ttf
2009-01-11 23:49:23 +00:00
Couriersud
cb4074788c Fix a 64bit issue in linux/SDL_sysjoystick (int != long on 64bit) 2009-01-11 23:39:11 +00:00
Ryan C. Gordon
7b1b655f97 First shot at new audio resampling code. 2009-01-11 04:46:42 +00:00
Ryan C. Gordon
691269eeef NULL-terminate the lists of autogenerated converters. 2009-01-11 04:46:14 +00:00
Ryan C. Gordon
9d2f640b65 Allow builds that reduce or eliminate the converters/resamplers.
We should probably give options to drop resamplers by channels, too, for
 developers that know they'll never need more than stereo, etc.
2009-01-11 04:39:09 +00:00
Sam Lantinga
e46e02cf96 Removed extra debug output 2009-01-10 23:57:12 +00:00
Sam Lantinga
19b003367c Reverted Bob's indent checkin 2009-01-10 21:50:26 +00:00
Sam Lantinga
22938ecdfb Fixed Visual C++ release build for Visual C++ 2005
* Some math functions become intrinsic in release mode, so we need to
  convert all the math functions into SDL math functions, like we did
  with the stdlib functions.
* Constant initializers of 8-bit values become calls to memset() in
  release mode, but memset() itself is an intrinsic when explicitly
  called.  So we'll just explicitly call memset() in those cases.
2009-01-10 18:32:24 +00:00
Bob Pendleton
68ff2ab932 I ran a global "make indent" it modified the following files. 2009-01-09 20:43:30 +00:00