Commit Graph

1571 Commits

Author SHA1 Message Date
Sam Lantinga
1bb14e405b Updated to libtool-1.5.22 2006-03-21 10:20:44 +00:00
Sam Lantinga
e4ef688966 Fixed bug #167
The configure script parses the value of $X_LIBS when looking at the
--enable-x11-shared, which is getting set on Ubuntu 5.10 to "-L/usr/X11R6/lib"
... however, Ubuntu stores all the Xlib stuff in /usr/lib.

The end result in SDL is that the dynamic X11 stuff gets disabled by default,
unless you override like this:

 ./configure --x-libraries=/usr/lib
2006-03-21 09:51:33 +00:00
Sam Lantinga
15e6a9aba3 *** empty log message *** 2006-03-21 09:40:01 +00:00
Sam Lantinga
2c5f72ddbf Good idea, renaming OpenBSD audio to BSD audio. 2006-03-21 09:33:54 +00:00
Sam Lantinga
4dcc7dca01 Allow adding to the INCLUDE path
Allow overriding the NASMFLAGS
2006-03-21 09:24:10 +00:00
Sam Lantinga
7978390e19 Fixed bug #52
Integrated most of the NetBSD and DragonFly patches at:
ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/devel/SDL/patches/

Thanks to Thomas Klausner for defailed information on the patches
2006-03-21 08:54:50 +00:00
Sam Lantinga
8043ef85fd Show an error message if autoconf isn't found 2006-03-21 07:02:34 +00:00
Sam Lantinga
351eafeef7 Fall back to autogen259 if autogen isn't available 2006-03-21 06:54:24 +00:00
Sam Lantinga
56345b8c5d Fixed bug #18
Reordered the audio thread loop so there's no initial wait.
2006-03-21 06:45:47 +00:00
Ryan C. Gordon
66c1ba436e Try to fill the hardware audio buffer immediately.
Fixes Bugzilla #18.
2006-03-21 00:56:10 +00:00
Ryan C. Gordon
0977bbb469 Keep mouse cursor state sane on focus change in Quartz driver.
Fixes Bugzilla #12.
2006-03-21 00:35:22 +00:00
Sam Lantinga
c138957110 ------- Comment #8 From Sergey Svishchev 2006-03-19 12:35 [reply] -------
I've made a similar patch to BSD-specific USB driver, please review it too.
2006-03-20 08:00:07 +00:00
Sam Lantinga
3180d2fb52 Fixed bug #113:
Date: Sat, 16 Apr 2005 08:39:22 +1000
From: "Eric Mangold"
Subject: [SDL] Window manager does not show SDL window titles

Hello,

I have an issue with SDL-using applications and the sawfish window manager.

The problem is that SDL windows do not show the window caption. My gnome
panel *does* show the window name, but the actual sawfish window frame
shows no caption at all. All other non-SDL applications that I use work
fine.

I tried a couple other window managers, and they *were* able to show the
SDL window captions correctly. Though there many be other WMs that can't.

I believe the problem is that SDL is using the UTF8_STRING type for the
window's WM_NAME and WM_ICON properties. In fact, WM_NAME and WM_ICON are
supposed to set to a TEXT type, usually STRING (ISO 8859-1).
The property names _NET_WM_NAME and _NET_WM_ICON_NAME should be used to
store the UTF8_STRING versions of the window title and icon name.

You can see the properties I refer to with a command like this:
xprop|grep -e "WM.*NAME"

Please note the freedesktop.org standard:
http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#id2506954

This page talks a little bit about the history of these properties. Just
search down the page for "WM_NAME".
http://www.cl.cam.ac.uk/~mgk25/unicode.html

Please let me know if I can be of any assistance in resolving this issue.

Thanks,
Eric Mangold
2006-03-20 07:31:36 +00:00
Sam Lantinga
a5aee75297 Fixed bug #90
The palette -> RGBA blit wasn't following the rule:
 * RGB->RGBA:
 *     SDL_SRCALPHA not set:
 *      copy RGB, set destination alpha to source per-surface alpha value.
2006-03-20 06:37:58 +00:00
Sam Lantinga
562ac5c5fb Fixed bug #84
Actually implemented banked update for SVGAlib
2006-03-19 19:03:40 +00:00
Sam Lantinga
e53a0fc3a1 Fixed bug #89
Date: Sun, 23 Oct 2005 16:39:03 +0200
From: "A. Schmid" <sahib@phreaker.net>
Subject: [SDL] no software surfaces with svgalib driver?

Hi,

I noticed that the SDL (1.2.9) svgalib driver only makes use of linear
addressable (framebuffer) video modes. On older systems (like one of
mine), linear addressable modes are often not available.
Especially for cards with VESA VBE < 2.0 the svgalib vesa driver is
unusable, since VESA only supports framebuffering for VBE 2.0 and later.

The changes necessary to add support for software surfaces seem to be
relatively small. I only had to hack src/video/svga/SDL_svgavideo.c (see
attached patch). The code worked fine for me, but it is no more than a
proof of concept and should be reviewed (probably has a memory leak when
switching modes). It also uses the vgagl library (included in the
svgalib package) and needs to be linked against it.

-Alex
2006-03-19 12:05:16 +00:00
Sam Lantinga
eda562ddca Fixed bug #84
Date: Sun, 23 Oct 2005 16:39:03 +0200
From: "A. Schmid" <sahib@phreaker.net>
Subject: [SDL] no software surfaces with svgalib driver?

Hi,

I noticed that the SDL (1.2.9) svgalib driver only makes use of linear
addressable (framebuffer) video modes. On older systems (like one of
mine), linear addressable modes are often not available.
Especially for cards with VESA VBE < 2.0 the svgalib vesa driver is
unusable, since VESA only supports framebuffering for VBE 2.0 and later.

The changes necessary to add support for software surfaces seem to be
relatively small. I only had to hack src/video/svga/SDL_svgavideo.c (see
attached patch). The code worked fine for me, but it is no more than a
proof of concept and should be reviewed (probably has a memory leak when
switching modes). It also uses the vgagl library (included in the
svgalib package) and needs to be linked against it.

-Alex
2006-03-19 12:04:40 +00:00
Sam Lantinga
edf78177b4 Left the debug code more explicit 2006-03-19 10:48:48 +00:00
Sam Lantinga
c38db8be5b Fixed bug #79
Implemented snd_pcm_sw_params_set_start_threshold() and snd_pcm_sw_params_set_avail_min() in the ALSA 0.9 driver.
This doesn't actually change any latency for me, but it's the right thing to do...
2006-03-19 10:41:49 +00:00
Sam Lantinga
6a04e810c0 Fixed bug #4
[Note: I'm applying this patch since it's a cleaner version of what's already implemented, and supports this controller on older kernels.  I'll ask to make sure this doesn't break on the new kernels where it's no longer necessary]

Date: Mon, 21 Mar 2005 09:41:11 -0500
From: Chris Nelson
Subject: SDL Patch

Hey, Ryan.

I submitted the following patch about a year ago. It's just a simple
patch for the linux port, to make multiple joysticks each appear to SDL
as their own device, if they are on the same USB port (specifically,
these guys
<http://www.consoleplus.co.uk/product_info.php?pName=super-joybox-5-quad-joypad-converter>,

which allow 4 Playstation2 controllers to be accessed via a single USB
port). Without this patch, SDL pretty much drops the ball, and reports
that there are 4 joysticks available when less than that number  are
plugged in.

My work built upon the work of another person with the same device. When
I submitted the patch to the list, he tested it, but it didn't work for
him, so the patch was never accepted. Maybe about 3 times in the past
year, I've tried to email the guy, to see if he couldn't run my new
version, complete with debug code to diagnose the problem he was having.
He never got back  to me.

So, I'm attaching the patch. I wish I knew why it didn't work for him,
but I've been using it for the last year with no problems. Let me know
if you need any more information, or have any ideas as to how I could
test it. I'd like to see it in the tree, but I want to make sure it works.

-Chris
2006-03-19 06:31:34 +00:00
Sam Lantinga
b4a7fb3471 Fixed bug #166
From the autoconf obsolete macros documentation:
Macro: AC_CANONICAL_SYSTEM

    Determine the system type and set output variables to the names of the canonical system types. See section Getting the Canonical System Type, for details about the variables this macro sets.

    The user is encouraged to use either AC_CANONICAL_BUILD, or AC_CANONICAL_HOST, or AC_CANONICAL_TARGET, depending on the needs. Using AC_CANONICAL_TARGET is enough to run the two other macros.

From the documentation for the canonical environments:
case $target in
i386-*-mach* | i386-*-gnu*)
             obj_format=aout emulation=mach bfd_gas=yes ;;
i960-*-bout) obj_format=bout ;;
esac

Note that the above example uses $target because it's taken from a tool which can be built on some architecture ($build), run on another ($host), but yet handle data for a third architecture ($target). Such tools are usually part of a compiler suite, they generate code for a specific $target.

However $target should be meaningless for most packages. If you want to base a decision on the system where your program will be run, make sure you use the $host variable.
2006-03-19 05:27:22 +00:00
Sam Lantinga
ce4f2cc3d8 Implemented RISC OS and OS/2 desktop resolution code (thanks to Alan and Doodle) 2006-03-18 22:42:09 +00:00
Sam Lantinga
eacad52dc2 EXTRA_LDFLAGS are the linker flags and libraries needed to build SDL.
SDL_LIBS are the linker flags and libraries needed to build SDL applications.
SDL_STATIC_LIBS is set to SDL_LIBS by default.
2006-03-18 18:41:59 +00:00
Patrice Mandin
29e12046e6 I did not find in configure.in where SYSTEM_LIBS where set for other platforms, and why I did not have required extra libraries added in sdl-config, so I set it there 2006-03-17 19:54:39 +00:00
Sam Lantinga
886a75d257 *** empty log message *** 2006-03-16 00:35:21 +00:00
Sam Lantinga
e9e9f43bc0 Added current_w and current_h to the SDL_VideoInfo structure, which is set to the desktop resolution during video intialization, and then set to the current resolution when a video mode is set.
SDL_SetVideoMode() now accepts 0 for width or height and will use the current video mode (or the desktop mode if no mode has been set.)
2006-03-15 17:46:41 +00:00
Sam Lantinga
1eb921226d Fixed bug #33
Mike Frysinger wrote:
> with libsdl-1.2.9, some games (like bomberclone) started
> segfaulting in Gentoo
[...snip...]
> the last change in the last hunk:
[...snip...]
> if i change the statement to read:
> (table[which].blit_features & GetBlitFeatures()) == GetBlitFeatures()
> bomberclone no longer segfaults on my box

Alex Volkov wrote:
> The test "(table[which].blit_features & GetBlitFeatures()) ==
> table[which].blit_features)" is correct, and the previous
> "(table[which].cpu_mmx == SDL_HasMMX())" was actually broken.

I think there is potentially a slightly different cause of the above problem.
During the introduction of the Altivec code, the blit_table struct field
'alpha' got changed from a straightforward enum to a bitmask, which makes
perfect sense by itself. However, now the table driven blitter selection code
in SDL_CalculateBlitN() can choose the wrong blitters when searching for a
NO_ALPHA blitter because of the following code:
    int a_need = 0;
    ...
    (a_need & table[which].alpha) == a_need &&
When searching through the normal_blit_2[] table, a SET_ALPHA blitter (like
Blit_RGB565_ARGB8888) can now be selected instead of a NO_ALPHA one, causing
alpha channel bits to appear in a non-alpha destination surface. I suppose this
could theoretically be an indirect cause of the segfault mentioned above.

I *think* this can be fixed by changing to
    int a_need = NO_ALPHA;
2006-03-15 15:47:49 +00:00
Sam Lantinga
ad970913d7 From: "Alex Volkov"
Date: Thu, 10 Nov 2005 21:53:40 -0500
Subject: [SDL] BUG[?]: 32bpp RGBA->RGB colorkey blit, no SDL_SRCALPHA

It seems there is either a documentation vs. reality mismatch or a real bug
in SDL_blit_N.c:BlitNtoNKey().
The exact blit in question is a 32bpp RGBA->RGB, where RGBA has SDL_COLORKEY
and *no* SDL_SRCALPHA flags. The doc in SDL_video.h states:
* RGBA->RGB:
*     SDL_SRCALPHA not set:
*       copy RGB.
*       if SDL_SRCCOLORKEY set, only copy the pixels matching the
*       RGB values of the source colour key, ignoring alpha in the
*       comparison.

BlitNtoNKey(), however, forgets to "ignore alpha in the comparison". The
documentation makes perfect sense, so I think it is the code that is faulty.

The attached patch corrects the code.
2006-03-15 15:43:15 +00:00
Sam Lantinga
6b1646bc1f Fixed bug #15
SDL_blit_A.mmx-speed.patch.txt --
        Speed improvements and a bugfix for the current GCC inline mmx
        asm code:
        - Changed some ops and removed some resulting useless ones.
        - Added some instruction parallelism (some gain)
        The resulting speed on my Xeon improved upto 35% depending on
        the function (measured in fps).
        - Fixed a bug where BlitRGBtoRGBSurfaceAlphaMMX() was
        setting the alpha component on the destination surfaces (to
        opaque-alpha) even when the surface had none.

SDL_blit_A.mmx-msvc.patch.txt --
        MSVC mmx intrinsics version of the same GCC asm code.
        MSVC compiler tries to parallelize the code and to avoid
        register stalls, but does not always do a very good job.
        Per-surface blending MSVC functions run quite a bit faster
        than their pure-asm counterparts (upto 55% faster for 16bit
        ones), but the per-pixel blending runs somewhat slower than asm.

- BlitRGBtoRGBSurfaceAlphaMMX and BlitRGBtoRGBPixelAlphaMMX (and all
variants) can now also handle formats other than (A)RGB8888. Formats
like RGBA8888 and some quite exotic ones are allowed -- like
RAGB8888, or actually anything having channels aligned on 8bit
boundary and full 8bit alpha (for per-pixel alpha blending).
The performance cost of this change is virtually 0 for per-surface
alpha blending (no extra ops inside the loop) and a single non-MMX
op inside the loop for per-pixel blending. In testing, the per-pixel
alpha blending takes a ~2% performance hit, but it still runs much
faster than the current code in CVS. If necessary, a separate function
with this functionality can be made.

This code requires Processor Pack for VC6.
2006-03-15 15:39:29 +00:00
Ryan C. Gordon
f24d7d8095 Quartz implementation for SDL_DisplayYUVOverlay() was returning non-zero on
error, instead of zero, contrary to documentation.

    Fixes Bugzilla #165.
2006-03-15 05:52:31 +00:00
Sam Lantinga
0f90b82189 Added disk/dummy audio and dummy video to the Visual CE projects 2006-03-15 04:32:49 +00:00
Sam Lantinga
03a8f8b159 *** empty log message *** 2006-03-15 04:29:35 +00:00
Sam Lantinga
4343a58138 *** empty log message *** 2006-03-15 03:50:34 +00:00
Ryan C. Gordon
52e237c438 Corrected dummy audio callback firing to be realistic, cleaned up tabs. 2006-03-14 19:12:49 +00:00
Sam Lantinga
2f442b4b09 WIN32 is no longer defined on Windows builds 2006-03-14 17:33:33 +00:00
Sam Lantinga
6f4de63dec Added disk and dummy drivers to the Visual C++ projects 2006-03-14 17:21:49 +00:00
Sam Lantinga
5cf1524725 *** empty log message *** 2006-03-14 16:20:28 +00:00
Sam Lantinga
9491ae58df By default all the real targets have dummy audio/video and disk audio. 2006-03-14 16:19:32 +00:00
Ryan C. Gordon
58b18d03af Implemented dummy audio driver.
Fixes Bugzilla #161.
2006-03-14 08:53:33 +00:00
Ryan C. Gordon
1d1702a6bd Fixed cut-and-paste error in DC audio target. 2006-03-14 08:35:39 +00:00
Sam Lantinga
0d42fc151d Updated CodeWarrior export list with SDL_iconv 2006-03-14 08:01:30 +00:00
Sam Lantinga
dc991f4f84 Updated MacOS Classic and MacOS X exports list 2006-03-14 07:55:40 +00:00
Sam Lantinga
04576001ed The check for UTF-* isn't needed anymore since UTF-8 has the same code range. 2006-03-14 07:45:15 +00:00
Sam Lantinga
f783145e4f Fixed bug #67
Re-enable OpenGL window resetting code for the windib driver
2006-03-14 07:40:33 +00:00
Sam Lantinga
9dca113b1c Fixed bug #124
Print Screen key events weren't reported on Windows
2006-03-14 07:06:06 +00:00
Sam Lantinga
a23a0d8b52 Fixed bug #38
I'm using SDL 1.2.9 with Visual C++ 7.0 on Windows 2000.

Here's the setup: my game starts in a window, with
SDL_WM_GrabInput(SDL_GRAB_ON) to constrain the cursor to the game window. The
mouse cursor is outside of the window when the game launches, and when the
window appears the cursor is grabbed and placed at the top left corner of the
inside of the game window. At this point, if I click the mouse without moving
it, the SDL_MOUSEBUTTONDOWN event's mouse coordinates are (65535,65535).
2006-03-14 06:00:30 +00:00
Sam Lantinga
b12fa835ee Fixed bug #46
Date: Fri, 13 Jan 2006 18:09:45 -0500
From: mhall4400 vipmail kvcc edu
Subject: Possible SDL bug

Greetings

I believe Ive come across a bug in your SDL product (1.2.9), in the CD-ROM
control portion of the library.

When calling the SDL_CDPlay() function to play the last track of a CD using the
offset and length from an SDL_CD structure generated by SDL_CDOpen(), I get the
following error from a call to SDL_Error():

mciSendCommand() error: The specified parameter is out of range for the
specified command.

The code returning the error is:
SDL_CDPlay(g_playingDriveSDLCD,
g_playingDriveSDLCD->track[trackNumberInt].offset,
g_playingDriveSDLCD->track[trackNumberInt].length)

Subtracting one from the length of the provided length seems to repair the
problem:
SDL_CDPlay(g_playingDriveSDLCD,
g_playingDriveSDLCD->track[trackNumberInt].offset,
(g_playingDriveSDLCD->track[trackNumberInt].length) - 1)

Ive replicated this problem on Windows 98 SE (several months since last
patch), fully-patched Window ME, seldom-patched Windows XP SP1, and
fully-patched Windows XP SP2.

While investigating the issue, I came across a line in your librarys win32
source code in file \src\cdrom\win32\SDL_syscdrom.c (source code zip archive
from your download page), function: SDL_SYS_CDGetTOC(), line 226 where you add
1 to the value for length to fix MCI last track length bug.  This may be the
source of the issue (because subtracting 1 from the length seems to resolve the
issue).  Microsoft may have patched the referenced bug since you wrote that
line.

Mike Hall
2006-03-14 05:34:39 +00:00
Sam Lantinga
15ec416643 (patch tweaked a bit)
Date: Tue, 14 Mar 2006 03:30:11 +0000
From: Peter Mulholland
Subject: [SDL] Windows MessageBox() strangeness fixes

Hello all,

I *think* this should fix the issues that people were seeing with
MessageBox() not working and therefore assert() on mingw/msvc. Forgive
me if i've screwed up making the diff file - I'm a total newb when it
comes to things like CVS and diff.

It modifies a few files as I saw that FlushMessageQueue() was in both
the windx5 and windib driver, so I moved this into wincommon. It was
also in the gapi driver, so I changed that too. The function is now
WIN_FlushMessageQueue() in src/video/wincommon/SDL_syswm.c
2006-03-14 04:00:03 +00:00
Sam Lantinga
43f3300313 *** empty log message *** 2006-03-14 03:04:50 +00:00
Sam Lantinga
84f5e115fd CFLAGS are separate from EXTRA_CFLAGS
Fixed iconv.h detection on Cygwin32
2006-03-14 02:46:26 +00:00