mcst-linux-kernel/patches-2024.06.26/SDL-1.2.15/0000-init.add.patch

580 lines
16 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*** a/include/SDL_config.h Mon Dec 31 06:17:05 2007
--- b/include/SDL_config.h Thu Apr 18 02:32:56 2019
***************
*** 1,3 ****
--- 1,4 ----
+ /* include/SDL_config.h. Generated from SDL_config.h.in by configure. */
/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2006 Sam Lantinga
***************
*** 23,45 ****
#ifndef _SDL_config_h
#define _SDL_config_h
#include "SDL_platform.h"
! /* Add any platform that doesn't build using the configure system */
! #if defined(__DREAMCAST__)
! #include "SDL_config_dreamcast.h"
! #elif defined(__MACOS__)
! #include "SDL_config_macos.h"
! #elif defined(__MACOSX__)
! #include "SDL_config_macosx.h"
! #elif defined(__SYMBIAN32__)
! #include "SDL_config_symbian.h" /* must be before win32! */
! #elif defined(__WIN32__)
! #include "SDL_config_win32.h"
! #elif defined(__OS2__)
! #include "SDL_config_os2.h"
#else
! #include "SDL_config_minimal.h"
! #endif /* platform config */
#endif /* _SDL_config_h */
--- 24,307 ----
#ifndef _SDL_config_h
#define _SDL_config_h
+ /* This is a set of defines to configure the SDL features */
+
+ /* General platform specific identifiers */
#include "SDL_platform.h"
! /* Make sure that this isn't included by Visual C++ */
! #ifdef _MSC_VER
! #error You should copy include/SDL_config.h.default to include/SDL_config.h
! #endif
!
! /* C language features */
! /* #undef const */
! /* #undef inline */
! /* #undef volatile */
!
! /* C datatypes */
! /* #undef size_t */
! /* #undef int8_t */
! /* #undef uint8_t */
! /* #undef int16_t */
! /* #undef uint16_t */
! /* #undef int32_t */
! /* #undef uint32_t */
! /* #undef int64_t */
! /* #undef uint64_t */
! /* #undef uintptr_t */
! #define SDL_HAS_64BIT_TYPE 1
!
! /* Endianness */
! #define SDL_BYTEORDER 1234
!
! /* Comment this if you want to build without any C library requirements */
! #define HAVE_LIBC 1
! #if HAVE_LIBC
!
! /* Useful headers */
! #define HAVE_ALLOCA_H 1
! #define HAVE_SYS_TYPES_H 1
! #define HAVE_STDIO_H 1
! #define STDC_HEADERS 1
! #define HAVE_STDLIB_H 1
! #define HAVE_STDARG_H 1
! #define HAVE_MALLOC_H 1
! #define HAVE_MEMORY_H 1
! #define HAVE_STRING_H 1
! #define HAVE_STRINGS_H 1
! #define HAVE_INTTYPES_H 1
! #define HAVE_STDINT_H 1
! #define HAVE_CTYPE_H 1
! #define HAVE_MATH_H 1
! #define HAVE_ICONV_H 1
! #define HAVE_SIGNAL_H 1
! /* #undef HAVE_ALTIVEC_H */
!
! /* C library functions */
! #define HAVE_MALLOC 1
! #define HAVE_CALLOC 1
! #define HAVE_REALLOC 1
! #define HAVE_FREE 1
! #define HAVE_ALLOCA 1
! #ifndef _WIN32 /* Don't use C runtime versions of these on Windows */
! #define HAVE_GETENV 1
! #define HAVE_PUTENV 1
! #define HAVE_UNSETENV 1
! #endif
! #define HAVE_QSORT 1
! #define HAVE_ABS 1
! #define HAVE_BCOPY 1
! #define HAVE_MEMSET 1
! #define HAVE_MEMCPY 1
! #define HAVE_MEMMOVE 1
! /* #undef HAVE_MEMCMP */
! #define HAVE_STRLEN 1
! /* #undef HAVE_STRLCPY */
! /* #undef HAVE_STRLCAT */
! #define HAVE_STRDUP 1
! /* #undef HAVE__STRREV */
! /* #undef HAVE__STRUPR */
! /* #undef HAVE__STRLWR */
! /* #undef HAVE_INDEX */
! /* #undef HAVE_RINDEX */
! #define HAVE_STRCHR 1
! #define HAVE_STRRCHR 1
! #define HAVE_STRSTR 1
! /* #undef HAVE_ITOA */
! /* #undef HAVE__LTOA */
! /* #undef HAVE__UITOA */
! /* #undef HAVE__ULTOA */
! #define HAVE_STRTOL 1
! #define HAVE_STRTOUL 1
! /* #undef HAVE__I64TOA */
! /* #undef HAVE__UI64TOA */
! #define HAVE_STRTOLL 1
! #define HAVE_STRTOULL 1
! #define HAVE_STRTOD 1
! #define HAVE_ATOI 1
! #define HAVE_ATOF 1
! #define HAVE_STRCMP 1
! #define HAVE_STRNCMP 1
! /* #undef HAVE__STRICMP */
! #define HAVE_STRCASECMP 1
! /* #undef HAVE__STRNICMP */
! #define HAVE_STRNCASECMP 1
! #define HAVE_SSCANF 1
! #define HAVE_SNPRINTF 1
! #define HAVE_VSNPRINTF 1
! #define HAVE_ICONV 1
! #define HAVE_SIGACTION 1
! #define HAVE_SETJMP 1
! #define HAVE_NANOSLEEP 1
! /* #undef HAVE_CLOCK_GETTIME */
! #define HAVE_DLVSYM 1
! #define HAVE_GETPAGESIZE 1
! #define HAVE_MPROTECT 1
!
#else
! /* We may need some replacement for stdarg.h here */
! #include <stdarg.h>
! #endif /* HAVE_LIBC */
!
! /* Allow disabling of core subsystems */
! /* #undef SDL_AUDIO_DISABLED */
! /* #undef SDL_CDROM_DISABLED */
! /* #undef SDL_CPUINFO_DISABLED */
! /* #undef SDL_EVENTS_DISABLED */
! /* #undef SDL_FILE_DISABLED */
! /* #undef SDL_JOYSTICK_DISABLED */
! /* #undef SDL_LOADSO_DISABLED */
! /* #undef SDL_THREADS_DISABLED */
! /* #undef SDL_TIMERS_DISABLED */
! /* #undef SDL_VIDEO_DISABLED */
!
! /* Enable various audio drivers */
! /* #undef SDL_AUDIO_DRIVER_ALSA */
! /* #undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC */
! /* #undef SDL_AUDIO_DRIVER_ARTS */
! /* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */
! /* #undef SDL_AUDIO_DRIVER_BAUDIO */
! /* #undef SDL_AUDIO_DRIVER_BSD */
! /* #undef SDL_AUDIO_DRIVER_COREAUDIO */
! /* #undef SDL_AUDIO_DRIVER_DART */
! /* #undef SDL_AUDIO_DRIVER_DC */
! #define SDL_AUDIO_DRIVER_DISK 1
! #define SDL_AUDIO_DRIVER_DUMMY 1
! /* #undef SDL_AUDIO_DRIVER_DMEDIA */
! /* #undef SDL_AUDIO_DRIVER_DSOUND */
! /* #undef SDL_AUDIO_DRIVER_PULSE */
! /* #undef SDL_AUDIO_DRIVER_PULSE_DYNAMIC */
! /* #undef SDL_AUDIO_DRIVER_ESD */
! /* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */
! /* #undef SDL_AUDIO_DRIVER_MINT */
! /* #undef SDL_AUDIO_DRIVER_MMEAUDIO */
! /* #undef SDL_AUDIO_DRIVER_NAS */
! #define SDL_AUDIO_DRIVER_OSS 1
! /* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */
! /* #undef SDL_AUDIO_DRIVER_PAUD */
! /* #undef SDL_AUDIO_DRIVER_QNXNTO */
! /* #undef SDL_AUDIO_DRIVER_SNDMGR */
! /* #undef SDL_AUDIO_DRIVER_SUNAUDIO */
! /* #undef SDL_AUDIO_DRIVER_WAVEOUT */
!
! /* Enable various cdrom drivers */
! /* #undef SDL_CDROM_AIX */
! /* #undef SDL_CDROM_BEOS */
! /* #undef SDL_CDROM_BSDI */
! /* #undef SDL_CDROM_DC */
! /* #undef SDL_CDROM_DUMMY */
! /* #undef SDL_CDROM_FREEBSD */
! #define SDL_CDROM_LINUX 1
! /* #undef SDL_CDROM_MACOS */
! /* #undef SDL_CDROM_MACOSX */
! /* #undef SDL_CDROM_MINT */
! /* #undef SDL_CDROM_OPENBSD */
! /* #undef SDL_CDROM_OS2 */
! /* #undef SDL_CDROM_OSF */
! /* #undef SDL_CDROM_QNX */
! /* #undef SDL_CDROM_WIN32 */
!
! /* Enable various input drivers */
! #define SDL_INPUT_LINUXEV 1
! /* #undef SDL_INPUT_TSLIB */
! /* #undef SDL_JOYSTICK_BEOS */
! /* #undef SDL_JOYSTICK_DC */
! /* #undef SDL_JOYSTICK_DUMMY */
! /* #undef SDL_JOYSTICK_IOKIT */
! #define SDL_JOYSTICK_LINUX 1
! /* #undef SDL_JOYSTICK_MACOS */
! /* #undef SDL_JOYSTICK_MINT */
! /* #undef SDL_JOYSTICK_OS2 */
! /* #undef SDL_JOYSTICK_RISCOS */
! /* #undef SDL_JOYSTICK_WINMM */
! /* #undef SDL_JOYSTICK_USBHID */
! /* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */
!
! /* Enable various shared object loading systems */
! /* #undef SDL_LOADSO_BEOS */
! /* #undef SDL_LOADSO_DLCOMPAT */
! #define SDL_LOADSO_DLOPEN 1
! /* #undef SDL_LOADSO_DUMMY */
! /* #undef SDL_LOADSO_LDG */
! /* #undef SDL_LOADSO_MACOS */
! /* #undef SDL_LOADSO_OS2 */
! /* #undef SDL_LOADSO_WIN32 */
!
! /* Enable various threading systems */
! /* #undef SDL_THREAD_BEOS */
! /* #undef SDL_THREAD_DC */
! /* #undef SDL_THREAD_OS2 */
! /* #undef SDL_THREAD_PTH */
! #define SDL_THREAD_PTHREAD 1
! #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
! /* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */
! /* #undef SDL_THREAD_SPROC */
! /* #undef SDL_THREAD_WIN32 */
!
! /* Enable various timer systems */
! /* #undef SDL_TIMER_BEOS */
! /* #undef SDL_TIMER_DC */
! /* #undef SDL_TIMER_DUMMY */
! /* #undef SDL_TIMER_MACOS */
! /* #undef SDL_TIMER_MINT */
! /* #undef SDL_TIMER_OS2 */
! /* #undef SDL_TIMER_RISCOS */
! #define SDL_TIMER_UNIX 1
! /* #undef SDL_TIMER_WIN32 */
! /* #undef SDL_TIMER_WINCE */
!
! /* Enable various video drivers */
! /* #undef SDL_VIDEO_DRIVER_AALIB */
! /* #undef SDL_VIDEO_DRIVER_BWINDOW */
! /* #undef SDL_VIDEO_DRIVER_DC */
! /* #undef SDL_VIDEO_DRIVER_DDRAW */
! #define SDL_VIDEO_DRIVER_DGA 1
! /* #undef SDL_VIDEO_DRIVER_DIRECTFB */
! /* #undef SDL_VIDEO_DRIVER_DRAWSPROCKET */
! #define SDL_VIDEO_DRIVER_DUMMY 1
! #define SDL_VIDEO_DRIVER_FBCON 1
! /* #undef SDL_VIDEO_DRIVER_GAPI */
! /* #undef SDL_VIDEO_DRIVER_GEM */
! /* #undef SDL_VIDEO_DRIVER_GGI */
! /* #undef SDL_VIDEO_DRIVER_IPOD */
! /* #undef SDL_VIDEO_DRIVER_NANOX */
! /* #undef SDL_VIDEO_DRIVER_OS2FS */
! /* #undef SDL_VIDEO_DRIVER_PHOTON */
! /* #undef SDL_VIDEO_DRIVER_PICOGUI */
! /* #undef SDL_VIDEO_DRIVER_PS2GS */
! /* #undef SDL_VIDEO_DRIVER_QTOPIA */
! /* #undef SDL_VIDEO_DRIVER_QUARTZ */
! /* #undef SDL_VIDEO_DRIVER_RISCOS */
! /* #undef SDL_VIDEO_DRIVER_SVGALIB */
! /* #undef SDL_VIDEO_DRIVER_TOOLBOX */
! /* #undef SDL_VIDEO_DRIVER_VGL */
! /* #undef SDL_VIDEO_DRIVER_WINDIB */
! /* #undef SDL_VIDEO_DRIVER_WSCONS */
! #define SDL_VIDEO_DRIVER_X11 1
! #define SDL_VIDEO_DRIVER_X11_DGAMOUSE 1
! #define SDL_VIDEO_DRIVER_X11_DPMS 1
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC */
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT */
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR */
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER */
! #define SDL_VIDEO_DRIVER_X11_VIDMODE 1
! #define SDL_VIDEO_DRIVER_X11_XINERAMA 1
! #define SDL_VIDEO_DRIVER_X11_XME 1
! #define SDL_VIDEO_DRIVER_X11_XRANDR 1
! #define SDL_VIDEO_DRIVER_X11_XV 1
! /* #undef SDL_VIDEO_DRIVER_XBIOS */
!
! /* Enable OpenGL support */
! #define SDL_VIDEO_OPENGL 1
! #define SDL_VIDEO_OPENGL_GLX 1
! /* #undef SDL_VIDEO_OPENGL_WGL */
! /* #undef SDL_VIDEO_OPENGL_OSMESA */
! /* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */
!
! /* Enable assembly routines */
! #define SDL_ASSEMBLY_ROUTINES 1
! /* #undef SDL_HERMES_BLITTERS */
! /* #undef SDL_ALTIVEC_BLITTERS */
#endif /* _SDL_config_h */
*** a/src/video/SDL_blit.h Mon Dec 31 04:48:13 2007
--- b/src/video/SDL_blit.h Thu Apr 18 02:32:56 2019
***************
*** 404,410 ****
/* This is a very useful loop for optimizing blitters */
! #if defined(_MSC_VER) && (_MSC_VER == 1300)
/* There's a bug in the Visual C++ 7 optimizer when compiling this code */
#else
#define USE_DUFFS_LOOP
--- 404,410 ----
/* This is a very useful loop for optimizing blitters */
! #if defined(_MSC_VER) && (_MSC_VER == 1300) || defined(__e2k__)
/* There's a bug in the Visual C++ 7 optimizer when compiling this code */
#else
#define USE_DUFFS_LOOP
***************
*** 495,500 ****
--- 495,501 ----
n--; \
} \
n=n>>1; \
+ _Pragma ("loop count(1000)") \
for(; n > 0; --n) { \
double_pixel_copy_increment; \
} \
***************
*** 514,519 ****
--- 515,521 ----
n -= 2; \
} \
n=n>>2; \
+ _Pragma ("loop count(1000)") \
for(; n > 0; --n) { \
quatro_pixel_copy_increment; \
} \
***************
*** 522,527 ****
--- 524,530 ----
/* Don't use Duff's device to unroll loops */
#define DUFFS_LOOP(pixel_copy_increment, width) \
{ int n; \
+ _Pragma ("loop count(1000)") \
for ( n=width; n > 0; --n ) { \
pixel_copy_increment; \
} \
*** a/src/video/SDL_blit_1.c Mon Dec 31 04:48:14 2007
--- b/src/video/SDL_blit_1.c Thu Apr 18 02:32:56 2019
***************
*** 230,238 ****
--- 230,243 ----
}
static void Blit1to4(SDL_BlitInfo *info)
{
+
+ #if defined(__e2k__)
+ int i;
+ #else
#ifndef USE_DUFFS_LOOP
int c;
#endif
+ #endif
int width, height;
Uint8 *src;
Uint32 *map, *dst;
***************
*** 247,252 ****
--- 252,272 ----
dstskip = info->d_skip/4;
map = (Uint32 *)info->table;
+ #if defined(__e2k__)
+
+ // При сборке библиотеки под e2k компилятор гораздо эффективнее справится с разворотом цикла самостоятельно,
+ // нежели при оптимизации уже развёрнутой реализации.
+
+ #pragma loop count(1000)
+ while ( height -- ) {
+ #pragma loop count(1000)
+ for( i = width; i > 0; i-- ){
+ *dst++ = map[*src++];
+ }
+ src += srcskip;
+ dst += dstskip;
+ }
+ #else
while ( height-- ) {
#ifdef USE_DUFFS_LOOP
DUFFS_LOOP(
***************
*** 271,276 ****
--- 292,298 ----
src += srcskip;
dst += dstskip;
}
+ #endif /* defined(__e2k__) */
}
static void Blit1to1Key(SDL_BlitInfo *info)
***************
*** 388,393 ****
--- 410,416 ----
/* Set up some basic variables */
dstskip /= 4;
+ #pragma loop count(1000)
while ( height-- ) {
DUFFS_LOOP(
{
***************
*** 459,464 ****
--- 482,488 ----
/* Set up some basic variables */
dstbpp = dstfmt->BytesPerPixel;
+ #pragma loop count(1000)
while ( height-- ) {
int sR, sG, sB;
int dR, dG, dB;
*** a/src/video/SDL_blit_A.c Mon Dec 31 04:48:14 2007
--- b/src/video/SDL_blit_A.c Thu Apr 18 02:32:56 2019
***************
*** 1442,1447 ****
--- 1442,1448 ----
Uint32 *dstp = (Uint32 *)info->d_pixels;
int dstskip = info->d_skip >> 2;
+ #pragma loop count(1000)
while(height--) {
DUFFS_LOOP4({
Uint32 s = *srcp++;
***************
*** 2691,2696 ****
--- 2692,2698 ----
(check all macros!)
It is unclear whether there is a good general solution that doesn't
need a branch (or a divide). */
+ #pragma loop count(1000)
while ( height-- ) {
DUFFS_LOOP4(
{
*** a/src/video/SDL_surface.c Mon Dec 31 04:48:14 2007
--- b/src/video/SDL_surface.c Thu Apr 18 02:32:56 2019
***************
*** 547,552 ****
--- 547,578 ----
return -1;
}
+ #if defined (__e2k__)
+
+ // собственная реализация быстрого memset
+
+ #define e2k_memset8(dst, val, len) \
+ do { \
+ Uint64 _value = (Uint64) val << 32; \
+ _value |= val; \
+ Uint32 _n = len; \
+ Uint32 * _ptr = ( Uint32* ) dst; \
+ if ( (Uint64) _ptr & 4 ) { \
+ *_ptr++ = val; \
+ _n--; \
+ } \
+ _Pragma("#pragma loop count(1000)") \
+ while ( _n >= 2 ) { \
+ * (Uint64 *) _ptr = _value; \
+ _ptr += 2; \
+ _n -= 2; \
+ } \
+ if (_n > 0) \
+ *_ptr = val; \
+ } while(0) \
+
+ #endif
+
/*
* This function performs a fast fill of the given rectangle with 'color'
*/
***************
*** 606,613 ****
--- 633,645 ----
x = dstrect->w*dst->format->BytesPerPixel;
if ( !color && !((uintptr_t)row&3) && !(x&3) && !(dst->pitch&3) ) {
int n = x >> 2;
+ #pragma loop count(1000)
for ( y=dstrect->h; y; --y ) {
+ #if defined(__e2k__)
+ e2k_memset8(row, 0, n);
+ #else
SDL_memset4(row, 0, n);
+ #endif
row += dst->pitch;
}
} else {
***************
*** 676,681 ****
--- 708,714 ----
} else
#endif /* __powerpc__ */
{
+ #pragma loop count(1000)
for(y = dstrect->h; y; y--) {
SDL_memset(row, color, x);
row += dst->pitch;
***************
*** 685,690 ****
--- 718,724 ----
} else {
switch (dst->format->BytesPerPixel) {
case 2:
+ #pragma loop count(1000)
for ( y=dstrect->h; y; --y ) {
Uint16 *pixels = (Uint16 *)row;
Uint16 c = (Uint16)color;
***************
*** 695,701 ****
--- 729,739 ----
n--;
}
if(n >> 1)
+ #if defined (__e2k__)
+ e2k_memset8(pixels, cc, n >> 1);
+ #else
SDL_memset4(pixels, cc, n >> 1);
+ #endif
if(n & 1)
pixels[n - 1] = c;
row += dst->pitch;
***************
*** 706,713 ****
--- 744,753 ----
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
color <<= 8;
#endif
+ #pragma loop count(1000)
for ( y=dstrect->h; y; --y ) {
Uint8 *pixels = row;
+ #pragma loop count(1000)
for ( x=dstrect->w; x; --x ) {
SDL_memcpy(pixels, &color, 3);
pixels += 3;
***************
*** 717,724 ****
--- 757,769 ----
break;
case 4:
+ #pragma loop count(1000)
for(y = dstrect->h; y; --y) {
+ #if defined (__e2k__)
+ e2k_memset8(row, color, dstrect->w);
+ #else
SDL_memset4(row, color, dstrect->w);
+ #endif
row += dst->pitch;
}
break;