Commit Graph

3017 Commits

Author SHA1 Message Date
Ryan C. Gordon
a2878205f5 Simplified Windows RunThread().
Removed checks for things that are always true, free unneeded struct before
 calling thread entry point, instead of after thread completes.
2011-09-20 17:42:58 -04:00
Ryan C. Gordon
ef9602f026 Implemented x86 and x86-64 spinlock inline asm.
Favor it over Mac OS X API for Intel systems (but not GCC atomic intrinsics).

This might get us a little further on Cygwin builds, too.
2011-09-18 03:19:41 -04:00
Ryan C. Gordon
62cdeb1783 Use an actual #error instead of a bogus symbol if there's no spinlock support. 2011-09-18 02:55:45 -04:00
Ryan C. Gordon
b5688aca8a Patched to compile on some platforms. 2011-09-18 02:09:20 -04:00
Andreas Schiffler
a76b8e0292 Add special cases for empty rectangles in SDL_Rect functions 2011-09-17 22:35:57 -07:00
Ryan C. Gordon
a01b9d69d6 Removed some FIXMEs (Nathan's changes were, in fact, correct). 2011-09-15 23:55:36 -04:00
Ryan C. Gordon
fe04e23133 Merged Nathan Heisey's Haiku work into the main SDL 1.3 branch.
This was a Google Summer of Code 2011 project, sponsored by the Haiku project.

We thank Nathan and the other Haiku developers for their support!
2011-09-15 23:51:07 -04:00
Ryan C. Gordon
b84e7104b1 Clean up the win32 compiler warnings for SDL threads, in the 1.3 branch. 2011-09-12 13:36:38 -04:00
Andreas Schiffler
d8556266a2 Fix regression introducted by added parameter check in SDL_EnclosePoints. Add special case to speedup when no result was requested. 2011-09-12 09:00:01 -07:00
Ryan C. Gordon
079d39970c More work on cleaning out compiler warnings. 2011-09-11 04:02:40 -04:00
Ryan C. Gordon
54294f986d Some MMX fixes from Patrick Baggett.
Original email...

Date: Sat, 10 Sep 2011 13:01:20 -0500
From: Patrick Baggett
To: SDL Development List <sdl@lists.libsdl.org>
Subject: Re: [SDL] SDL_memcpyMMX uses SSE instructions

In SDL_blit_copy.c, the function SDL_memcpyMMX() actually use SSE
instructions.

It is called in this context:

#ifdef __MMX__
    if (SDL_HasMMX() &&
        !((uintptr_t) src & 7) && !(srcskip & 7) &&
        !((uintptr_t) dst & 7) && !(dstskip & 7)) {
        while (h--) {
            SDL_memcpyMMX(dst, src, w);
            src += srcskip;
            dst += dstskip;
        }
        _mm_empty();
        return;
    }
#endif

This implies that the minimum CPU features are just MMX. There is a
separate SDL_memcpySSE() function.


The SDL_memcpyMMX() function does:

#ifdef __SSE__
        _mm_prefetch(src, _MM_HINT_NTA);
#endif

...which tests at compile time if SSE intrinsics are available, not at run
time. It generates the PREFETCHNTA instruction. It also uses _mm_stream_pi()
intrinsic, which generates the MOVNTQ instruction.

If you replace the "MMX" code with:

__m64* d64 = (__m64*)dst;
__m64* s64 = (__m64*)src;
 for(i= len / 64; i--;) {
   d64[0] = s64[0];
   d64[1] = s64[1];
   d64[2] = s64[2];
   d64[3] = s64[3];
   d64[4] = s64[4];
   d64[5] = s64[5];
   d64[6] = s64[6];
   d64[7] = s64[7];
   d64 += 8;
   s64 += 8;
 }

Then MSVC generates the correct movq instructions. GCC (4.5.0) seems to
think that using 2x movl is still better, but then again, GCC isn't actually
that good at optimizing intrinsics as I've found. At least the code won't
crash on my P2 though. :)

Also, there is no requirement for MMX to be aligned to the 8th byte. I
think the author assumed that SSE's 16 byte alignment requirement must
retroactively mean that MMX requires 8 byte alignment. Attached is the full
patch.

Patrick
2011-09-11 01:54:54 -04:00
Ryan C. Gordon
7adf4f848a Fixed a compiler warning. 2011-09-09 04:48:45 -04:00
Ryan C. Gordon
e612bfc336 Added a newline to the end of a file to quiet old versions of GCC. 2011-09-09 02:43:04 -04:00
Ryan C. Gordon
82df1959c1 Removed legacy Mac OS X dlcompat code.
It was only needed for Mac OS X 10.0 through 10.2, so it seems silly to keep
 it around for SDL 1.3.

I'll leave it in the 1.2 branch for now, though.
2011-09-09 00:34:48 -04:00
Ryan C. Gordon
4efdd10e16 Fixed compiler warning on 32-bit Mac OS X. 2011-09-07 10:54:14 -04:00
Andreas Schiffler
15eed4cdc2 Added input parameter validation to some SDL_rect functions 2011-09-04 20:34:48 -07:00
Ryan C. Gordon
9b301501da Fixed a compiler warning on Mac OS X.
Thanks to Mattias Holm for the patch!
2011-09-02 14:00:57 -04:00
Ryan C. Gordon
8ad5dc2b68 Fixed a NSLog() format string.
Thanks to Mattias Holm for the patch!
2011-09-02 14:00:10 -04:00
Ryan C. Gordon
95221a071a Patched to compile. 2011-09-01 14:02:12 -04:00
Ryan C. Gordon
d3c8a17a2d Called method on wrong object in Android exception handler.
Fixes Bugzilla #1297.

Thanks to jon @ rafkind for the patch!
2011-09-01 04:42:09 -04:00
Ryan C. Gordon
03425cf382 Removed unused variable. 2011-09-01 04:34:05 -04:00
Ryan C. Gordon
439009a9d5 Clean up any opened joysticks during SDL_JoystickQuit().
Otherwise, these leak memory and maybe operating system handles.
2011-09-01 04:25:15 -04:00
Ryan C. Gordon
370cdc709c Automated merge with https://bitbucket.org/Markusk/sdl-gsoc 2011-08-29 13:17:07 -04:00
Tim Angus
edc8ca6ac0 * Fix many memory leaks in Android FS code
* Set SDL error string with Java exception details when one occurs
* Fix tabulation of SDLActivity::getContext
2011-08-26 13:11:53 +01:00
Ryan C. Gordon
1248146aa2 Removed the MAC_OS_X_VERSION_10_x macros from the 1.3 branch. 2011-08-25 03:11:28 -04:00
Ryan C. Gordon
d58d3cf9d0 Patched to compile on Windows. 2011-08-23 16:47:22 -04:00
Ryan C. Gordon
a52dac6020 Cleaned out functions deprecated in Mac OS X 10.6 SDK. 2011-08-23 15:17:44 -04:00
Ryan C. Gordon
043d6961da Fixed wrong datatype for shaders and programs.
This is a pointer on Mac OS X, so it risked losing data in 64-bit builds.
2011-08-23 06:27:04 -04:00
Nathan Heisey
2922ec5c93 Fixed static misnomers 2011-08-22 21:07:16 +00:00
Nathan Heisey
cd1d00c8bc Partially cleaned out code 2011-08-22 11:02:05 +00:00
Nathan Heisey
66b34b9372 Temporary mode-setting hack works 2011-08-20 15:16:13 +00:00
Kees Bakker
1a888b5860 Split off SDL_uikitviewcontroller in its own module 2011-08-17 23:26:58 +02:00
Ryan C. Gordon
27c0f06736 Further XAudio2 build test cleanups. 2011-08-22 14:56:46 -04:00
Ryan C. Gordon
3bd23ad70f Removed SDL_xaudio2.h ... no real need for this to be separate. 2011-08-22 14:37:45 -04:00
Ryan C. Gordon
8dddad9b87 Let XAudio2 target be removed from the build by removing it from SDL_config.h 2011-08-22 14:30:49 -04:00
Ryan C. Gordon
9ef6d797b4 Apple's C runtime has the non-const iconv(), too. 2011-08-22 14:25:11 -04:00
Ryan C. Gordon
1230f810bd Fixed compiler warning on 64-bit builds. 2011-08-22 13:41:35 -04:00
Ryan C. Gordon
8948722528 RLE: Don't trash alpha channel in copy_32().
It was being set to (mask|value) instead of (value).

Thanks to li zhuo for the bug report!
2011-08-22 13:34:58 -04:00
Ryan C. Gordon
89b8d559fd Apparently glXSwapIntervalEXT() _does_ return a value.
Revision 6 of the GLX_EXT_swap_control spec has a typo; the function
signature they list is void, but the docs talk about a return value, and the
glxext.h headers list "int".
2011-08-22 02:26:11 -04:00
Ryan C. Gordon
a13987a2cc Fix SDL_GL_ACCELERATED_VISUAL on Windows in the 1.3 branch.
Fixes Bugzilla #1254.

Thanks to Thilo Schulz for the patch!
2011-08-21 12:24:27 -04:00
Ryan C. Gordon
979f801b08 Ported ALSA minimum-sample-count fix from 1.2 branch to 1.3. 2011-08-21 11:52:21 -04:00
Ryan C. Gordon
da15752375 Make sure XAudio2 is supported by the DirectX headers at compile time. 2011-08-21 02:35:13 -04:00
Kees Bakker
0495a4f9da Convert a few TABs into spaces 2011-08-18 22:43:37 +02:00
Nathan Heisey
04be166879 Fixed some problems with switching to/from fullscreen 2011-08-17 13:31:18 +00:00
Ryan C. Gordon
d71e865584 Patched to compile. 2011-08-15 02:51:13 -04:00
Sam Lantinga
f60d3a845a Don't lose the icon surface if it's freed immediately after SDL_WM_SetIcon()
This is a memory leak, but we don't have a good place to free the icon surface a the moment.
2011-08-14 21:57:50 -04:00
Nathan Heisey
3979f76d39 Reduced SEGFAULT occurence on resize? 2011-08-12 16:58:54 +00:00
Nathan Heisey
c5f9b27f63 Fixed OpenGL library loading functions 2011-08-09 16:34:25 +00:00
Nathan Heisey
58e7261c23 Some video fixes 2011-08-08 17:00:38 +00:00
Ryan C. Gordon
de42332c37 Patched to compile on Mac OS X. 2011-08-06 02:15:23 -04:00