Mercurial > sdl-ios-xcode
comparison src/video/SDL_yuv_sw.c @ 1413:40edc79b0926
FIXME:
This code needs to be rewritten to reference the static data using relocatable addresses (e.g. http://www.gentoo.org/proj/en/hardened/pic-fix-guide.xml or http://nasm.sourceforge.net/doc/html/nasmdoc8.html#section-8.2)
This code currently breaks on systems with readonly text segments (hardened Linux / Intel Mac)
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 21 Feb 2006 22:12:55 +0000 |
parents | d910939febfa |
children | 5f52867ba65c |
comparison
equal
deleted
inserted
replaced
1412:a8181c4040b8 | 1413:40edc79b0926 |
---|---|
119 }; | 119 }; |
120 | 120 |
121 | 121 |
122 /* The colorspace conversion functions */ | 122 /* The colorspace conversion functions */ |
123 | 123 |
124 #if 0 /*defined(__GNUC__) && defined(__i386__) && SDL_ASSEMBLY_ROUTINES*/ | |
124 extern void Color565DitherYV12MMX1X( int *colortab, Uint32 *rgb_2_pix, | 125 extern void Color565DitherYV12MMX1X( int *colortab, Uint32 *rgb_2_pix, |
125 unsigned char *lum, unsigned char *cr, | 126 unsigned char *lum, unsigned char *cr, |
126 unsigned char *cb, unsigned char *out, | 127 unsigned char *cb, unsigned char *out, |
127 int rows, int cols, int mod ); | 128 int rows, int cols, int mod ); |
128 extern void ColorRGBDitherYV12MMX1X( int *colortab, Uint32 *rgb_2_pix, | 129 extern void ColorRGBDitherYV12MMX1X( int *colortab, Uint32 *rgb_2_pix, |
129 unsigned char *lum, unsigned char *cr, | 130 unsigned char *lum, unsigned char *cr, |
130 unsigned char *cb, unsigned char *out, | 131 unsigned char *cb, unsigned char *out, |
131 int rows, int cols, int mod ); | 132 int rows, int cols, int mod ); |
133 #endif | |
132 | 134 |
133 static void Color16DitherYV12Mod1X( int *colortab, Uint32 *rgb_2_pix, | 135 static void Color16DitherYV12Mod1X( int *colortab, Uint32 *rgb_2_pix, |
134 unsigned char *lum, unsigned char *cr, | 136 unsigned char *lum, unsigned char *cr, |
135 unsigned char *cb, unsigned char *out, | 137 unsigned char *cb, unsigned char *out, |
136 int rows, int cols, int mod ) | 138 int rows, int cols, int mod ) |
1057 /* You have chosen wisely... */ | 1059 /* You have chosen wisely... */ |
1058 switch (format) { | 1060 switch (format) { |
1059 case SDL_YV12_OVERLAY: | 1061 case SDL_YV12_OVERLAY: |
1060 case SDL_IYUV_OVERLAY: | 1062 case SDL_IYUV_OVERLAY: |
1061 if ( display->format->BytesPerPixel == 2 ) { | 1063 if ( display->format->BytesPerPixel == 2 ) { |
1062 #if defined(__GNUC__) && defined(__i386__) && SDL_ASSEMBLY_ROUTINES | 1064 #if 0 /*defined(__GNUC__) && defined(__i386__) && SDL_ASSEMBLY_ROUTINES*/ |
1063 /* inline assembly functions */ | 1065 /* inline assembly functions */ |
1064 if ( SDL_HasMMX() && (Rmask == 0xF800) && | 1066 if ( SDL_HasMMX() && (Rmask == 0xF800) && |
1065 (Gmask == 0x07E0) && | 1067 (Gmask == 0x07E0) && |
1066 (Bmask == 0x001F) && | 1068 (Bmask == 0x001F) && |
1067 (width & 15) == 0) { | 1069 (width & 15) == 0) { |
1079 if ( display->format->BytesPerPixel == 3 ) { | 1081 if ( display->format->BytesPerPixel == 3 ) { |
1080 swdata->Display1X = Color24DitherYV12Mod1X; | 1082 swdata->Display1X = Color24DitherYV12Mod1X; |
1081 swdata->Display2X = Color24DitherYV12Mod2X; | 1083 swdata->Display2X = Color24DitherYV12Mod2X; |
1082 } | 1084 } |
1083 if ( display->format->BytesPerPixel == 4 ) { | 1085 if ( display->format->BytesPerPixel == 4 ) { |
1084 #if defined(__GNUC__) && defined(__i386__) && SDL_ASSEMBLY_ROUTINES | 1086 #if 0 /*defined(__GNUC__) && defined(__i386__) && SDL_ASSEMBLY_ROUTINES*/ |
1085 /* inline assembly functions */ | 1087 /* inline assembly functions */ |
1086 if ( SDL_HasMMX() && (Rmask == 0x00FF0000) && | 1088 if ( SDL_HasMMX() && (Rmask == 0x00FF0000) && |
1087 (Gmask == 0x0000FF00) && | 1089 (Gmask == 0x0000FF00) && |
1088 (Bmask == 0x000000FF) && | 1090 (Bmask == 0x000000FF) && |
1089 (width & 15) == 0) { | 1091 (width & 15) == 0) { |