Commit 4fbd9480 authored by Patrice Mandin's avatar Patrice Mandin

Wrong pixel size for source buffer for old drivers

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401003
parent 5fad184d
...@@ -545,8 +545,8 @@ static int InitOld(_THIS, SDL_Surface *current) ...@@ -545,8 +545,8 @@ static int InitOld(_THIS, SDL_Surface *current)
switch (pixel_format->BitsPerPixel) { switch (pixel_format->BitsPerPixel) {
case 15: case 15:
/* 15 bits unsupported */ /* 15 bits unsupported */
gl_pixelsize = 2;
if (tinygl_present) { if (tinygl_present) {
gl_pixelsize = 3;
osmesa_format = VDI_RGB; osmesa_format = VDI_RGB;
if (redmask == 31<<10) { if (redmask == 31<<10) {
gl_copyshadow = CopyShadowRGBTo555; gl_copyshadow = CopyShadowRGBTo555;
...@@ -555,6 +555,7 @@ static int InitOld(_THIS, SDL_Surface *current) ...@@ -555,6 +555,7 @@ static int InitOld(_THIS, SDL_Surface *current)
gl_convert = Convert565To555le; gl_convert = Convert565To555le;
} }
} else { } else {
gl_pixelsize = 4;
osmesa_format = OSMESA_ARGB; osmesa_format = OSMESA_ARGB;
if (redmask == 31<<10) { if (redmask == 31<<10) {
gl_copyshadow = CopyShadow8888To555; gl_copyshadow = CopyShadow8888To555;
...@@ -566,8 +567,8 @@ static int InitOld(_THIS, SDL_Surface *current) ...@@ -566,8 +567,8 @@ static int InitOld(_THIS, SDL_Surface *current)
break; break;
case 16: case 16:
/* 16 bits unsupported */ /* 16 bits unsupported */
gl_pixelsize = 2;
if (tinygl_present) { if (tinygl_present) {
gl_pixelsize = 3;
osmesa_format = VDI_RGB; osmesa_format = VDI_RGB;
gl_copyshadow = CopyShadowRGBTo565; gl_copyshadow = CopyShadowRGBTo565;
if (redmask != 31<<11) { if (redmask != 31<<11) {
...@@ -575,6 +576,7 @@ static int InitOld(_THIS, SDL_Surface *current) ...@@ -575,6 +576,7 @@ static int InitOld(_THIS, SDL_Surface *current)
gl_convert = Convert565le; gl_convert = Convert565le;
} }
} else { } else {
gl_pixelsize = 4;
osmesa_format = OSMESA_ARGB; osmesa_format = OSMESA_ARGB;
gl_copyshadow = CopyShadow8888To565; gl_copyshadow = CopyShadow8888To565;
if (redmask != 31<<11) { if (redmask != 31<<11) {
...@@ -601,8 +603,8 @@ static int InitOld(_THIS, SDL_Surface *current) ...@@ -601,8 +603,8 @@ static int InitOld(_THIS, SDL_Surface *current)
} }
break; break;
case 32: case 32:
gl_pixelsize = 4;
if (tinygl_present) { if (tinygl_present) {
gl_pixelsize = 3;
osmesa_format = VDI_RGB; osmesa_format = VDI_RGB;
gl_copyshadow = CopyShadowRGBToARGB; gl_copyshadow = CopyShadowRGBToARGB;
if (redmask == 255) { if (redmask == 255) {
...@@ -613,6 +615,7 @@ static int InitOld(_THIS, SDL_Surface *current) ...@@ -613,6 +615,7 @@ static int InitOld(_THIS, SDL_Surface *current)
gl_convert = CopyShadowRGBToRGBA; gl_convert = CopyShadowRGBToRGBA;
} }
} else { } else {
gl_pixelsize = 4;
gl_copyshadow = CopyShadowDirect; gl_copyshadow = CopyShadowDirect;
if (redmask == 255<<16) { if (redmask == 255<<16) {
osmesa_format = OSMESA_ARGB; osmesa_format = OSMESA_ARGB;
...@@ -698,7 +701,7 @@ static void CopyShadowRGBTo555(_THIS, SDL_Surface *surface) ...@@ -698,7 +701,7 @@ static void CopyShadowRGBTo555(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol; Uint8 *srcline, *srccol;
srcline = (Uint8 *)gl_shadow; srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3; srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>1; dstpitch = surface->pitch >>1;
...@@ -726,7 +729,7 @@ static void CopyShadowRGBTo565(_THIS, SDL_Surface *surface) ...@@ -726,7 +729,7 @@ static void CopyShadowRGBTo565(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol; Uint8 *srcline, *srccol;
srcline = (Uint8 *)gl_shadow; srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3; srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>1; dstpitch = surface->pitch >>1;
...@@ -755,7 +758,7 @@ static void CopyShadowRGBSwap(_THIS, SDL_Surface *surface) ...@@ -755,7 +758,7 @@ static void CopyShadowRGBSwap(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol; Uint8 *srcline, *srccol;
srcline = (Uint8 *)gl_shadow; srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3; srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch; dstpitch = surface->pitch;
...@@ -782,7 +785,7 @@ static void CopyShadowRGBToARGB(_THIS, SDL_Surface *surface) ...@@ -782,7 +785,7 @@ static void CopyShadowRGBToARGB(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol; Uint8 *srcline, *srccol;
srcline = (Uint8 *)gl_shadow; srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3; srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>2; dstpitch = surface->pitch >>2;
...@@ -812,7 +815,7 @@ static void CopyShadowRGBToABGR(_THIS, SDL_Surface *surface) ...@@ -812,7 +815,7 @@ static void CopyShadowRGBToABGR(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol; Uint8 *srcline, *srccol;
srcline = (Uint8 *)gl_shadow; srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3; srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>2; dstpitch = surface->pitch >>2;
...@@ -842,7 +845,7 @@ static void CopyShadowRGBToBGRA(_THIS, SDL_Surface *surface) ...@@ -842,7 +845,7 @@ static void CopyShadowRGBToBGRA(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol; Uint8 *srcline, *srccol;
srcline = (Uint8 *)gl_shadow; srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3; srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>2; dstpitch = surface->pitch >>2;
...@@ -872,7 +875,7 @@ static void CopyShadowRGBToRGBA(_THIS, SDL_Surface *surface) ...@@ -872,7 +875,7 @@ static void CopyShadowRGBToRGBA(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol; Uint8 *srcline, *srccol;
srcline = (Uint8 *)gl_shadow; srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3; srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>2; dstpitch = surface->pitch >>2;
...@@ -902,7 +905,7 @@ static void CopyShadow8888To555(_THIS, SDL_Surface *surface) ...@@ -902,7 +905,7 @@ static void CopyShadow8888To555(_THIS, SDL_Surface *surface)
Uint32 *srcline, *srccol; Uint32 *srcline, *srccol;
srcline = (Uint32 *)gl_shadow; srcline = (Uint32 *)gl_shadow;
srcpitch = surface->w; srcpitch = (surface->w * gl_pixelsize) >>2;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>1; dstpitch = surface->pitch >>1;
...@@ -932,7 +935,7 @@ static void CopyShadow8888To565(_THIS, SDL_Surface *surface) ...@@ -932,7 +935,7 @@ static void CopyShadow8888To565(_THIS, SDL_Surface *surface)
Uint32 *srcline, *srccol; Uint32 *srcline, *srccol;
srcline = (Uint32 *)gl_shadow; srcline = (Uint32 *)gl_shadow;
srcpitch = surface->w; srcpitch = (surface->w * gl_pixelsize) >> 2;
dstline = surface->pixels; dstline = surface->pixels;
dstpitch = surface->pitch >>1; dstpitch = surface->pitch >>1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment