Commit Graph

1094 Commits

Author SHA1 Message Date
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
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
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
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
dc991f4f84 Updated MacOS Classic and MacOS X exports list 2006-03-14 07:55:40 +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
b6313a8a66 RFC 3629 restricted the range of characters encoded with UTF-8 to 0000-10FFFF (the UTF-16 accessible range) 2006-03-13 17:25:44 +00:00
Sam Lantinga
9e352303d7 Updated MacOS Classic build 2006-03-13 05:36:42 +00:00
Sam Lantinga
3f35ae60ac The exports file isn't necessary on BeOS anymore 2006-03-13 04:35:59 +00:00
Sam Lantinga
2650f98d04 *** empty log message *** 2006-03-13 02:26:47 +00:00
Sam Lantinga
3227f8dde8 Added _strnicmp support 2006-03-13 02:12:39 +00:00
Sam Lantinga
2b03f1c722 Win32 fixes 2006-03-13 02:06:33 +00:00
Sam Lantinga
576291efb0 The Win32 exports file isn't used by mingw anymore 2006-03-13 01:43:18 +00:00
Sam Lantinga
165dd0af40 Fixed bug #112
Added SDL_GetKeyRepeat()
2006-03-13 01:41:32 +00:00
Sam Lantinga
a50362ff8f Fixed bug #139
The text in SDL_WM_SetCaption() is in UTF-8 encoding.
2006-03-13 01:33:58 +00:00
Sam Lantinga
80b5071de2 props yo 2006-03-13 01:17:22 +00:00
Sam Lantinga
992d5b4402 UTF-32 by definition can't handle characters higher than 0x10FFFF 2006-03-13 01:16:16 +00:00
Sam Lantinga
48c546dc44 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability 2006-03-13 01:08:00 +00:00
Sam Lantinga
870a0b4ab6 Fixed bug #150
memory leak in SDL_thread.c
2006-03-12 01:18:29 +00:00
Sam Lantinga
7e824c4d92 Fixed bug #149 2006-03-12 00:57:50 +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
551ac822f6 *** empty log message *** 2006-03-11 23:44:21 +00:00
Sam Lantinga
0145498df7 Don't crash if SDL_Flip() is called with an OpenGL mode set 2006-03-09 16:12:34 +00:00
Sam Lantinga
887d7dce86 Cleaning up warnings on MacOS X 2006-03-09 06:33:21 +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
66b29f704f *** empty log message *** 2006-03-08 06:21:04 +00:00
Sam Lantinga
aedd3e4511 QNX changes from Mike Gorchak 2006-03-08 01:55:32 +00:00
Sam Lantinga
539d4ab5b3 Yet more Win64 tweaks 2006-03-07 16:02:59 +00:00
Sam Lantinga
18e8dad27d More Win64 updates 2006-03-07 05:21:32 +00:00
Sam Lantinga
007238280e Updated MacOS X support 2006-03-07 04:58:30 +00:00
Sam Lantinga
e007ca640c Fixed more Win64 portability issues 2006-03-06 08:11:10 +00:00
Sam Lantinga
0fa63c4bba Enabled libc support on Win32, so we don't break binary compatibility in 1.2 2006-03-06 07:42:36 +00:00
Sam Lantinga
d1d0afa53e Fixed declarations to match mingw includes 2006-03-06 06:00:45 +00:00
Sam Lantinga
223544e90d Updated WinCE support by Dmitry (with some tweaks)
Converted the disk audio driver to SDL_RWops for portability
2006-03-04 08:24:35 +00:00
Sam Lantinga
3a2b77fa89 *** empty log message *** 2006-03-04 05:13:03 +00:00
Sam Lantinga
f496c3b272 Updated for Dreamcast KOS June 2005 snapshot:
http://cadcdev.sourceforge.net/svn/snapshots/
http://gamedev.allusion.net/softprj/kos/dcsetup.php
2006-03-02 13:16:02 +00:00