Commit Graph

2652 Commits

Author SHA1 Message Date
Sam Lantinga
eb3fc668d0 Added SDL_GetColorKey() 2009-04-03 13:27:33 +00:00
Sam Lantinga
9f9eefc08b Oops 2009-03-28 06:00:42 +00:00
Sam Lantinga
5bb17acb5c Added credits for OpenGL 3.0 support 2009-03-24 10:46:18 +00:00
Sam Lantinga
991689c791 Date: Sun, 22 Mar 2009 12:52:29 +0000
From: Luke Benstead
Subject: OpenGL 3.0 Context Creation

I've attached a patch which implements OpenGL 3.x context creation on
the latest SVN. I've added two options to SDL_GL_SetAttribute, these
are SDL_GL_CONTEXT_MAJOR_VERSION and SDL_GL_CONTEXT_MINOR_VERSION.
These default to 2 and 1 respectively. If the major version is less
than 3 then the current context creation method is used, otherwise the
appropriate new context creation function is called (depending on the
platform).

Sample code:

    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        printf("Unable to initialize SDL: %s\n", SDL_GetError());
        return 1;
    }

    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); //Without these 2 lines, SDL will create a GL 2.x context
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

    SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_OPENGL | SDL_FULLSCREEN );


I've implemented context creation on both Win32 and X and run basic
tests on both. This patch doesn't provide access to all the options
allowed by the new context creation (e.g. shared contexts, forward
compatible contexts) but they can be added pretty easily.
2009-03-24 10:43:53 +00:00
Sam Lantinga
3532a3491b Date: Mon, 23 Mar 2009 09:17:24 +0200
From: "Mike Gorchak"
Subject: New QNX patches

Please apply patch qnx4.diff, which is attached. What has been done:
1)Added back OpenGL ES renderer for QNX target. Added few corrections to
OpenGL ES renderer to let it work under QNX. OpenGL ES renderer do not
support textures under QNX, so I think some additional work must be done.
2) Added GL_OES_query_matrix extension to SDL_opengles.h header file, which
required by OpenGL ES 1.1 specification.
3) Added attribute clearing at the entrance of function
SDL_GL_GetAttribure(). Added error checking into the function
SDL_GL_GetAttribure(), because some attributes can't be obtained in OpenGL
ES 1.0.
4) Porting testdyngles to OpenGL ES 1.0 (1.1 has glColor4ub() and
glColor4f() functions, but 1.0 has glColor4f() only).
5) Added error checking after obtaining attributes using
SDL_GL_GetAttribute() function to the testgl2 and testgles.
6) Small correction to testmultiaudio with printing errors.
7) Added software and accelerated OpenGL ES 1.0 support into the QNX GF
driver.

Please remove ./src/audio/nto directory - it will not be used anymore.
Please create ./src/audio/qsa directory and add content of the archive
qsa.tar.gz into this directory. I rewrote some sound code, added support for
multiple audio cards, enumeration, etc. Added initial support for capture.

As far as I can understand SDL 1.3 is not supporting audio capture right now
? Sam, Am I right ? Or audio capture must be supported through the
PlayDevice routine ?

And last, please put file SDL_gf_opengles.c to  the ./src/video/qnxgf
directory. It is OpenGL ES 1.1 emulation layer for some functions, which are
not supported by OpenGL ES 1.0.
2009-03-24 10:33:12 +00:00
Sam Lantinga
c7a043cbf4 Date: Thu, 05 Feb 2009 17:27:54 +0100
From: Stefan Klug
Subject: [SDL] SDL_SetVideoMode compatibility fix

SDL_SetVideoMode(0,0,0,flags) used to be valid in SDL 1.2
Attached is a patch to replicate this behaviour in SDL 1.3

Cheers Stefan
2009-03-23 05:37:45 +00:00
Sam Lantinga
20020814db Date: Thu, 05 Feb 2009 18:07:35 +0100
From: Stefan Klug
Subject: [SDL] SDL 1.3 WinCE backend

as promised, I've started to work on the WinCE backend of SDL 1.3
I've modified the win32 video backend and the gdi renderer, to work
properly in WinCE.
The results till now are great, but there is still some work to do.

Attached are two patches with my changes.
I would be happy if someone could review and propably commit them.

The first one (configure.in.patch) should be straight forward without
any side effects.

The second one does the necessary changes to the win32 backend. I was
really unhappy to start slicing this shiny new backend with
#ifdef/#endif but I saw no other option.

The most problematic issues are:
- WinCe has no GetDIBits, so its practically impossible to fill a
BITMAPINFO with correct values. I therefore removed the bmi member from
the GDI_RenderData in SDL_gdirender.c to prevent usage of a not or not
properly initialized  bmi.
- In SDL_win32window.c I exchanged some ASCII function by their general
counterparts, (In CE only the Unicode versions are available). I don't
know if this has a negative effect when running in win32


Cheers
Stefan
2009-03-23 05:35:21 +00:00
Sam Lantinga
be3e33ab11 Date: Tue, 17 Feb 2009 14:00:25 +0100
From: Stefan Klug
Subject: [SDL] Possible bug, paused audio playing garbage

On my WinCE device a paused audio device plays random garbage.
This might also be the issue in the thread "sound cracks with SDL_mixer
and AUDIO_S16LSB"

I don't have that much knowledge of the SDL audio part, but the attached
patch fixes it for me, and collapses two redundant ifs.

I'm not sure if this is the correct way to fix this.
Shouldn't the complete stream conversion part of the RunAudio loop be
dependent on the paused property of the device? (not only the call to
(*fill)(udata, istream, istream_len).

Anyways. Would be great if the patch or a fix could find its way to SVN ;-)

Cheers
Stefan
2009-03-23 05:21:40 +00:00
Sam Lantinga
30371dcf49 Date: Sat, 21 Mar 2009 19:41:52 -0700 (PDT)
From: Mason Wheeler
Subject: [SDL] Critical SDL 1.3 patch

Displaying a window created with SDL_CreateWindowFrom was causing stack overf
lows for me under certain conditions.  After far too much work trying to get
Visual Studio's debugger to play nice with a program written in Delphi, I tra
cked it down to a nasty reentrancy cycle in the WndProc handling.  Here's a p
atch that fixes the problem
2009-03-23 02:02:30 +00:00
Sam Lantinga
983362f89f Fixed potential crash in testbitmap 2009-03-22 06:56:37 +00:00
Sam Lantinga
f5a8296e36 Fixed iPhone demos 2009-03-17 03:56:21 +00:00
Sam Lantinga
63523106d8 Date: Thu, 12 Mar 2009 15:14:38 +0200
From: "Mike Gorchak"
Subject: New QNX patches

In photon.tar.gz there are new files to be placed into ./src/video/photon/
directory.

qnx3.diff - new patches for QNX support. Since I've found a lot of bugs in
the new GF QNX Graphics Framework and I'm suspended development for GF
driver until already found bugs will be fixed and switched to Photon driver
implementation.

sdl.diff - I've found that renderer creation result has not been checked and
SDL shows error like: "there is no current renderer", now SDL will show
correct error which was set be renderer.
2009-03-17 03:24:22 +00:00
Sam Lantinga
2994e1aeef Fixed return value for SDL_CreateRenderer() 2009-03-15 15:50:18 +00:00
Sam Lantinga
160ca01b9a Fixed OpenGL library linking issue 2009-03-12 03:51:39 +00:00
Sam Lantinga
dce3870c54 Fixed potential double-free crash 2009-03-06 05:53:33 +00:00
Sam Lantinga
eeac299e47 Reverted dangerous change that could remove /bin/sh :) 2009-03-06 05:48:52 +00:00
Sam Lantinga
4df57c1da2 Date: Wed, 4 Mar 2009 15:38:22 +0200
From: "Mike Gorchak"
Subject: Re: About QNX support in SDL 1.3

Here is another batch of patches.

1) Makefile.in - added SDL_opengles.h header as header to install.
2) configure.in - Added special define to detect Common Lite OpenGL ES
library in case if Common library is not installed. Added check for
clock_gettime in libc (in QNX it is in libc).
3) SDL_config.h.in - Added SDL_VIDEO_RENDER_OPENGL_ES and
SDL_VIDEO_OPENGL_ES declarations for configure script autodetection.
4) SDL_opengles.h - Added GL_API definition if it is not defined. Added
extension GL_OES_draw_texture because OpenGL ES Renderer uses it without
declaration. Added GL_OES_vertex_buffer_object extension, which is supported
under QNX OpenGL ES. Added GL_OES_single_precision extension.
5) To the test directory I've added building OpenGL ES test applications
through the autotools suite. Was support for iPhone IDE building only.
2009-03-04 15:10:47 +00:00
Sam Lantinga
988ff74920 Updated config.guess and config.sub 2009-03-04 09:35:32 +00:00
Sam Lantinga
1bc362b160 Updated libtool from version 1.5.22 to 2.2.6a, so it works on current QNX 2009-03-04 08:57:30 +00:00
Sam Lantinga
7c23ebb7e1 Mac OS X and iPhoneOS have the full math library 2009-03-03 09:48:00 +00:00
Sam Lantinga
96c916c759 Date: Mon, 2 Mar 2009 16:27:42 +0200
From: "Mike Gorchak"
Subject: About QNX support in SDL 1.3

Right now I'm working on QNX SDL 1.3 drivers implementation and looks like a
lot of code must be completely reworked. But I'm ready for it :) Also I want
to add QNX Graphics Framework SDL driver, which is fullscreen graphics
framework, with support of hardware accelerated OpenGL ES implementations.
This Graphics Framework (called GF in QNX) could also use QNX Photon (window
manager GUI) as window manager.

In the attachment initial patch for QNX support in SDL 1.3
2009-03-03 04:21:51 +00:00
Sam Lantinga
31ca492b29 Removed unicows dependency, at least for now... 2009-02-27 09:51:55 +00:00
Sam Lantinga
1e48145122 Missing API function 2009-02-27 09:39:39 +00:00
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
Sam Lantinga
9695d7f91c Added missing files 2009-02-19 04:03:05 +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
17a7c7045f Fixed bug #681
Description From  Philipp   2009-01-16 20:50:01   (-) [reply]

The File test/README from the svn says this:

    testgl        A very simple example of using OpenGL with SDL
    testgl2        Improved version of testgl

It is actually exchanged.

testgl.c is the improved version right now and testgl2.c the simple one.
2009-02-17 05:44:49 +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
e6a40c7de4 Fixed bug #537
Description From  esigra   2008-01-07 16:20:21   (-) [reply]

I try to get a clean compile for a project using SDL. But I get warnings
from SDL headers when I use -Wold-style-cast. This is especially bad
because I plan to build the software with -Werror=old-style-cast when we
have switched over to GCC 4.2, which has that option.

But this problem can be fixed in the SDL headers. I checked out the SVN
version and made some patches. See the attached patch.
2009-02-17 04:57:39 +00:00
Sam Lantinga
5360d4d180 Fixed destination of XCopyArea() 2009-02-15 06:12:52 +00:00
Sam Lantinga
4e38974403 Added reminder for shaped windows 2009-02-14 15:56:26 +00:00
Sam Lantinga
5ebf6fd4ba Suggestion from the mailing list 2009-02-14 15:53: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
a29abef54f We need to figure out whether we should handle events on foreign windows 2009-02-09 06:45:03 +00:00
Sam Lantinga
33ba78ff59 More of the same 2009-02-09 06:42:38 +00:00
Sam Lantinga
5dcf7511db Implemented Win32 version of the native window test 2009-02-09 06:41:49 +00:00
Sam Lantinga
8cb6792622 Whoops, missed a file 2009-02-09 06:28:45 +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