Commit Graph

142 Commits

Author SHA1 Message Date
Ryan C. Gordon
2ef51927fe 1.3 API CHANGE: Add support for naming threads. 2011-10-02 00:29:16 -04:00
Sam Lantinga
6196aa221e SDL 1.3 is now under the zlib license. 2011-04-08 13:03:26 -07:00
Sam Lantinga
791472902d NDS update
Frank Zago to SDL

I've cleaned up a few bugs in the nds code. A few more tests now pass.
There's still a few things to do, but overall I think it's starting to be in a
good shape.

The patch also includes a bug fix for SDL_ConvertSurfaceFormat() (gcc warning).
2011-03-26 21:26:05 -07:00
Sam Lantinga
56c4464487 Added high resolution timing API: SDL_GetPerformanceCounter(), SDL_GetPerformanceFrequency() 2011-03-25 14:45:04 -07:00
Sam Lantinga
362639036a Frank Zago to sdl
The following patch fixes some of the bitrot for the Nintendo DS port.
The support is still basic at the moment, but it allows to run the "general"
test under the current head of tree (parent: 5269:11bd1585efb5 tip).
Most of the patch is mine, but I integrated a couple changes that John
Magnotti posted on Feb 1st.
2011-02-12 11:36:56 -08:00
Sam Lantinga
a2cdcf5486 Happy 2011! :) 2011-02-11 22:37:15 -08:00
Sam Lantinga
d6a6503537 Added cache line size info in SDL_cpuinfo.h
I also added an implementation to dynamically query it, but didn't expose it since most x86 CPUs have an L1 cache line size of 64 bytes.
2011-01-27 16:46:15 -08:00
Sam Lantinga
050fce366d Fixed compiling under Visual Studio 2011-01-27 15:31:00 -08:00
Sam Lantinga
9b5a15bc30 Improved timer implementation
The new timer model is formalized as using a separate thread to handle timer callbacks.  This was the case on almost every platform before, but it's now a requirement, and simplifies the implementation and makes it perform consistently across platforms.

Goals:
 * Minimize timer thread blocking
 * Dispatch timers as accurately as possible
 * SDL_AddTimer() and SDL_RemoveTimer() are completely threadsafe
 * SDL_RemoveTimer() doesn't crash with a timer that's expired or removed
2011-01-27 14:45:06 -08:00
Sam Lantinga
9195b9f922 Nobody is maintaining RISC OS code, so I'm removing it for now. 2011-01-27 00:06:36 -08:00
Sam Lantinga
01fa14dc42 Include windows.h in a single point in the source, so we can be consistent about the definition of UNICODE and have core utility functions for Windows that all modules can share.
I think this also fixes the bug relating to non-latin characters in filenames, since UNICODE wasn't defined in SDL_rwops.c
2011-01-24 21:20:30 -08:00
Sam Lantinga
65280ffd21 Fixed bug in timer when the list of timers changed.
Fix contributed by Michael Bicha
2011-01-22 00:33:37 -08:00
Sam Lantinga
08ad787807 Fixed bug #925
Changed "win32" to "windows"
2011-01-20 18:04:05 -08:00
Sam Lantinga
753ad58277 Fixed compile warnings 2010-07-13 22:26:50 -07:00
Sam Lantinga
7052036491 Fixed bug #926
Updated copyright to LGPL version 2.1 and year 2010
2010-01-24 21:10:53 +00:00
Sam Lantinga
102fd54847 Fixed bug #935
Patrice Mandin

Hello,

I originally added pth support for threads in SDL 1.2 because on the Atari
platform we did not have any thread library.

I think pth support could be removed from SDL 1.3 for two reasons:

- Atari platform removed

- pth does not provides real (preemptive) threads, because it is user space,
and expect the application to call one of its function to give CPU to another
thread. So it is not exactly useful for applications, that expect threads to
run simultaneously.
2010-01-24 20:47:20 +00:00
Sam Lantinga
75e75ae0c3 Fixed bug #741
The thread ID is an unsigned long so it can hold pthread_t so people can do naughty things with it.

I'm going to be adding additional useful thread API functions, but this should prevent crashes in people's existing code on 64-bit architectures.
2009-12-16 04:48:11 +00:00
Sam Lantinga
2d97efbd4d Removed outdated Atari support 2009-09-20 04:15:19 +00:00
Sam Lantinga
6bb854b1d4 Removed outdated Dreamcast support 2009-09-19 07:21:22 +00:00
Sam Lantinga
5bee043a89 Removed outdated OS/2 support 2009-09-19 06:43:45 +00:00
Sam Lantinga
befb0f7f42 Updated copyright date 2008-12-08 00:27:32 +00:00
Sam Lantinga
9c4b835e49 Final merge of Google Summer of Code 2008 work...
Port SDL 1.3 to the Nintendo DS
by Darren Alton, mentored by Sam Lantinga
2008-08-27 15:10:03 +00:00
Patrice Mandin
04c06e94eb Use correct function 2007-07-14 00:07:37 +00:00
Ryan C. Gordon
04d6e513a9 Removed EPOC port from the 1.3 branch. 2007-06-15 15:54:07 +00:00
Sam Lantinga
b6ab6bf6d5 make indent 2007-06-14 13:21:29 +00:00
Patrice Mandin
982014481e Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt 2007-06-09 19:58:41 +00:00
Patrice Mandin
9aeba59294 Set supervisor as volatile as it is modified from an interrupt 2007-06-08 21:44:55 +00:00
Ryan C. Gordon
b94f08253a Removed AmigaOS code for 1.3 branch. 2006-10-29 04:09:17 +00:00
Sam Lantinga
c91d18d6ad indent is evil 2006-10-28 16:48:03 +00:00
Patrice Mandin
4b82340a21 Also save/restore fpu register in vbl interrupt 2006-10-21 18:56:35 +00:00
Ryan C. Gordon
7f17eb8863 Merged SDL-ryan-multiple-audio-device branch r2803:2871 into the trunk. 2006-10-17 09:15:21 +00:00
Sam Lantinga
4d17a22012 MacOS Classic is no longer supported. 2006-08-10 14:54:23 +00:00
Sam Lantinga
6bc598ea61 SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head. 2006-07-10 21:04:37 +00:00
Sam Lantinga
0e9999cdab Fixed thread callback calling conventions, updated OS/2 DLL name to SDL12.dll 2006-05-17 18:57:04 +00:00
Sam Lantinga
2c1976a764 Fixed MacOS Classic build 2006-05-11 06:06:21 +00:00
Sam Lantinga
90f1c175ac Fixed bug #225
Making the old code limp along, for Carbon builds.
2006-05-11 03:19:03 +00:00
Sam Lantinga
252e8f2a56 Fixed bug #144
Make sure we don't crash or deadlock if someone tries to free a timer after
the timer subsystem has been shut down.
2006-05-09 07:16:38 +00:00
Sam Lantinga
4ffa1daabc Make sure code is only compiled if the appropriate subsystem is enabled 2006-04-14 04:46:47 +00:00
Sam Lantinga
b0519469db Fixes bug #195:
The proper name of Apple's operating system is "Mac OS X" not "MacOS X", as can
bee seen in many places, for example http://www.apple.com/macosx/). This
contrasts the naming of the old operating system, which was called "MacOS" and
today is often refered to as "MacOS Classic".

The attached patches fixes the misuse of the name "MacOS X" in both the SDL12
and sdlweb CVS modules.
2006-04-13 13:08:26 +00:00
Sam Lantinga
e1ae9a0b81 Fixed bug #175
Removed obsolete .cvsignore files... whee!
2006-03-23 21:39:58 +00:00
Sam Lantinga
967ecbf1e0 Need time.h for nanosleep too... 2006-03-23 08:37:36 +00:00
Sam Lantinga
bba47a076b Fixes from Dmitry Yakimov:
fixed bugs 159 and 160:

+ added threaded timers support
! fixed restoring sdl window focus (AV in windows message handler)
! disabled forgotten cdrom and joystick in config file.
* disabled minimizing sdl window while loosing focus.
  PocketPC does not have a task bar, so it is an inconvenient and unusual
  behaviour for PPC users.
+ added WIN_Paint handler for GAPI
! fixed loosing focus while using GAPI videi driver

+ added TestTimer project
* removed unnecessary macros (ENABLE_WINDIB ...) from projects
2006-03-11 23:46:45 +00:00
Sam Lantinga
339f03befc Added documentation on how to build a completely useless SDL library. :) 2006-03-08 08:30:17 +00:00
Sam Lantinga
18e8dad27d More Win64 updates 2006-03-07 05:21:32 +00:00
Sam Lantinga
aaf71291d0 Updated OS/2 build, yay! 2006-02-26 19:30:21 +00:00
Sam Lantinga
2861771aa5 SDL_windows.h is no longer necessary 2006-02-25 22:18:25 +00:00
Sam Lantinga
190b425364 Use consistent identifiers for the various platforms we support.
Make sure every source file includes SDL_config.h, so the proper system
headers are chosen.
2006-02-21 08:46:50 +00:00
Patrice Mandin
13fff1e268 Add missing include directories 2006-02-20 20:53:52 +00:00
Sam Lantinga
35a29575fc NetBSD support 2006-02-20 03:57:03 +00:00
Sam Lantinga
f05187e232 New configure-based build system. Still work in progress, but much improved 2006-02-16 10:11:48 +00:00
Sam Lantinga
769424426d More header massaging... works great on Windows. ;-) 2006-02-10 06:48:43 +00:00
Sam Lantinga
1e037cc218 Removed uses of stdlib.h and string.h 2006-02-07 09:29:18 +00:00
Sam Lantinga
02cc6c0f11 Use SDL_ prefixed versions of C library functions.
FIXME:
Change #include <stdlib.h> to #include "SDL_stdlib.h"
Change #include <string.h> to #include "SDL_string.h"
Make sure nothing else broke because of this...
2006-02-07 06:59:48 +00:00
Sam Lantinga
82bfaee73a It's now possible to build SDL without any C runtime at all on Windows,
using Visual C++ 2005
2006-02-06 08:28:51 +00:00
Sam Lantinga
dbfa71e7a3 From: Hayashi Naoyuki
I tried to compile with gcc on Tru64, and got the following error.
SDL_systimer.c:45:45: error: operator '&&' has no right operand

It succeeds if changing
#if (defined _POSIX_TIMERS && _POSIX_TIMERS > 0)
to
#if (defined _POSIX_TIMERS && _POSIX_TIMERS + 0 > 0)
2006-02-03 07:43:42 +00:00
Sam Lantinga
808a16717c Updated copyright information and removed rcs id lines (problematic in branch merges)
I batch edited these files, so please let me know if I've accidentally removed anybody's
credit here.
2006-02-01 06:32:25 +00:00
Ryan C. Gordon
406ef7dae9 OS/2 port!
This was mostly, if not entirely, written by "Doodle" and "Caetano":
    doodle@scenergy.dfmk.hu
    daniel@caetano.eng.br

--ryan.
2005-11-23 07:29:56 +00:00
Ryan C. Gordon
74440fdd5f From: Tyler Montbriand <tsm@accesscomm.ca>
To: sdl@libsdl.org
Date: Fri, 30 Sep 2005 02:24:50 -0600
Subject: [SDL] WinCE timers, continued

Here's a strange timer for Windows CE that doesn't ignore time across
suspends.  It uses GetSystemTime to keep the time continuous, and GetTicks to
get finer-grained readings than 1 second.  It detects the difference between
the GetTicks time and GetSystemTime time on power-on to keep the error within
one second max.

It's not a patch on the current win32 timer code -- took one look at that and
figured it had more than enough #ifdefs already.  It's windows-ce specific.

Another thing I've noticed is that the Windows CE 4.0 and newer API has
functions warn processes about suspends.  This is something SDL REALLY needs
for audio in particular, because turning it off while it's playing causes
anything that uses audio to hardlock the system on power-on.  Unfortunately I
don't have 4.0 to play with.  :(
2005-11-22 07:10:07 +00:00
Ryan C. Gordon
41b267a0b5 POSIX clock_gettime() isn't available on Linux before 2.6, and the symbol may
just be flat out missing from glibc, so force use of previous gettimeofday()
 behaviour for now.
2005-10-11 20:05:54 +00:00
Ryan C. Gordon
12d328aee3 Date: Mon, 10 Oct 2005 13:09:32 +0300
From: Tommi Kyntola <tommi.kyntola@ray.fi>
To: sdl@libsdl.org
Subject: [SDL] [RFC] get_ticks broken on linux

It uses gettimeofday to calculate the timedifference.
Gettimeofday returns current time which is seldom monotonous.
This breaks SDL timer subsystem. (time callbacks and all that
get borked when the time difference ms is suddenly ~ 2^32)

I posted a message about this earlier but got no response.
Some thoughts on this matter would be appreciated.
(Or even an explanation for the lack of interest.)

A patch below would use the posix timers that have been around
since posix 93 and do provide a good source of monotonous time
on linux boxes (and on few others too).

The following patch is also availabe at:
http://www.hut.fi/u/tkyntola/SDL-1.2.9-clockfix.patch

It's against 1.2.9, but I can easily rediffit against
the cvs branch is needed.

cheers,
Tommi Kyntola            tommi.kyntola@ray.fi
2005-10-11 18:16:12 +00:00
Ryan C. Gordon
8ea076d0b9 Date: Tue, 11 Oct 2005 16:58:12 +0300 (EEST)
From: =?ISO-8859-1?Q?Martin_Storsj=F6?= <martin@martin.st>
To: sdl@libsdl.org
Subject: [SDL] [PATCH] Use nanosleep on OS X

Hi,

The current version of SDL_Delay on OS X seems to always sleep at least 10
msec. OS X has nanosleep(), which performs shorter sleeps well. The
attached patch makes it use that one instead of select() as currently.

// Martin
2005-10-11 17:33:03 +00:00
Ryan C. Gordon
0ac2e89e4e From: Jim Paris <jim_jtan_com>
To: sdl@libsdl.org
Date: Sat, 9 Jul 2005 13:59:33 -0400
Subject: [PATCH] fix locking in src/timer/SYS_timer.c

SDL_SetTimer has a typo in CVS.  This code was added since 1.2.8.  The
result is that the SDL_timer_mutex is locked twice and never unlocked,
breaking systems that use a threaded timer implementation.

-jim
2005-08-17 00:19:45 +00:00
Patrice Mandin
ceeecf9382 Release CPU when waiting 2005-04-01 15:19:26 +00:00
Sam Lantinga
f37d4736d9 Date: Wed, 26 Jan 2005 13:37:09 GMT
From: Peter Naulls
Subject: RISC OS SDL Patches

Sam, I've attached a diff of the latest changes to libSDL for RISC OS
support.  These changes are by Alan Buckley and myself.

The most significant of these are:

  Optimised assembler blit rountines - I've attached the file
   src/video/riscos/SDL_riscosASM.s which is needed for this.

  Move to using /dev/dsp instead of its own audio implementation.
  This means that src/audio/riscos/SDL_drenderer.c should be removed

  Typo fixes.  Mainly correct spelling of "RISC OS", but some from elsewhere
  too.
2005-02-12 18:01:31 +00:00
Sam Lantinga
3457abf6ba Fix various problems with the timer code.
* SDL_timer_running wasn't always updated correctly.
* Fixed occasional crash in SDL_SetTimer() when clearing threaded timers
* It was possible to get both the timer thread and event thread running
* Other misc. cleanup
2005-01-13 23:24:56 +00:00
Sam Lantinga
7e956b2b3d Fix potential use of freed memory in the threaded timer system 2005-01-04 19:05:32 +00:00
Sam Lantinga
ea38599d62 Date: Fri, 25 Jun 2004 13:29:15 +0100
From: "alan buckley"
Subject: Modification for RISC OS version of SDL

Ive attached a zip file with the changes to this email, it contains the
following:

The file sdldiff.txt is the output from cvs diff u.  .
The directory thread/riscos contains all the new files to support threading.

Readme.riscos is a new readme file to add.
2004-09-17 13:20:10 +00:00
Sam Lantinga
32719e7429 Updated copyright information for 2004 (Happy New Year!) 2004-01-04 16:49:27 +00:00
Sam Lantinga
268729cc33 Fixed "dist" make target for newer versions of automake 2003-12-14 06:25:53 +00:00
Sam Lantinga
041169aa8b Added initial support for RISC OS (thanks Peter Naulls!) 2003-05-29 04:44:13 +00:00
Sam Lantinga
d1a8d6261c Updated Atari port for new system headers (thanks Patrice!) 2002-12-07 06:54:47 +00:00
Sam Lantinga
1df07d56fb Fixed building timer code on Windows CE 2002-10-07 15:19:17 +00:00
Sam Lantinga
fd756e4973 Added initial support for Dreamcast (thanks HERO!) 2002-10-05 16:50:56 +00:00
Sam Lantinga
8cbbab0b2e Updated for embedded Visual C++ 4.0 2002-08-20 00:20:06 +00:00
Sam Lantinga
b86936a882 Fixed building with pthreads and the pth library 2002-06-13 21:36:25 +00:00
Sam Lantinga
947f8c0b8f *** empty log message *** 2002-06-13 17:52:43 +00:00
Sam Lantinga
7cdf1b000c *** empty log message *** 2002-06-04 22:30:40 +00:00
Sam Lantinga
070ded6c1b Disabled QueryPerformanceCounter(), due to problems on Win2K 2002-03-31 03:34:11 +00:00
Sam Lantinga
d982cbac62 *** empty log message *** 2002-03-24 01:12:57 +00:00
Sam Lantinga
b72574a05f Added UNIX RDTSC code by Lompak (disabled by default) 2002-03-23 20:54:17 +00:00
Sam Lantinga
df4885048e Updated copyright information for 2002 2002-03-06 11:23:08 +00:00
Sam Lantinga
2c0dc59125 From: Patrice Mandin <pmandin@caramail.com>
Subject: [SDL] [PATCH] Little cleanups for Atari port
2002-02-27 16:15:34 +00:00
Sam Lantinga
78006c91ad Added initial support for Atari (thanks Patrice!) 2002-02-17 19:54:28 +00:00
Sam Lantinga
5cf27bf3f5 Updated Amiga port by Gabriele Greco 2001-12-16 20:00:27 +00:00
Sam Lantinga
acfcfd3e44 Updated the source with the correct e-mail address 2001-12-14 12:38:15 +00:00
Sam Lantinga
c0412c2a37 Added initial support for EPOC/Symbian OS (thanks Hannu!) 2001-09-11 20:38:49 +00:00
Sam Lantinga
e51e5b7d1e Fixed Solaris nitpicks (thanks Mattias!) 2001-09-04 22:48:09 +00:00
Sam Lantinga
be67787cfb Applied Paul Jenner's patches to fix "make distcheck" and "make rpm" 2001-08-09 05:31:32 +00:00
Sam Lantinga
59275d4691 Added Holger Schemel's fix for SDL_GetTicks() on W2K
This adds QueryPerformanceCounter() support, which is probably a good thing.
2001-07-07 08:03:34 +00:00
Sam Lantinga
dc74cc4c2e Updated the Amiga OS port of SDL (thanks Gabriele) 2001-05-10 20:13:29 +00:00
Sam Lantinga
ffae27155e Changes since SDL 1.2.0 release 2001-04-26 16:50:19 +00:00
Sam Lantinga
5d2015c741 Initial revision 2001-04-26 16:45:43 +00:00