Skip to content

Commit

Permalink
Wrong pixel size for source buffer for old drivers
Browse files Browse the repository at this point in the history
  • Loading branch information
pmandin committed Dec 2, 2004
1 parent 08935ce commit fe0142a
Showing 1 changed file with 15 additions and 12 deletions.
27 changes: 15 additions & 12 deletions src/video/ataricommon/SDL_atarigl.c
Expand Up @@ -545,8 +545,8 @@ static int InitOld(_THIS, SDL_Surface *current)
switch (pixel_format->BitsPerPixel) {
case 15:
/* 15 bits unsupported */
gl_pixelsize = 2;
if (tinygl_present) {
gl_pixelsize = 3;
osmesa_format = VDI_RGB;
if (redmask == 31<<10) {
gl_copyshadow = CopyShadowRGBTo555;
Expand All @@ -555,6 +555,7 @@ static int InitOld(_THIS, SDL_Surface *current)
gl_convert = Convert565To555le;
}
} else {
gl_pixelsize = 4;
osmesa_format = OSMESA_ARGB;
if (redmask == 31<<10) {
gl_copyshadow = CopyShadow8888To555;
Expand All @@ -566,15 +567,16 @@ static int InitOld(_THIS, SDL_Surface *current)
break;
case 16:
/* 16 bits unsupported */
gl_pixelsize = 2;
if (tinygl_present) {
gl_pixelsize = 3;
osmesa_format = VDI_RGB;
gl_copyshadow = CopyShadowRGBTo565;
if (redmask != 31<<11) {
/* 565, little endian, unsupported */
gl_convert = Convert565le;
}
} else {
gl_pixelsize = 4;
osmesa_format = OSMESA_ARGB;
gl_copyshadow = CopyShadow8888To565;
if (redmask != 31<<11) {
Expand All @@ -601,8 +603,8 @@ static int InitOld(_THIS, SDL_Surface *current)
}
break;
case 32:
gl_pixelsize = 4;
if (tinygl_present) {
gl_pixelsize = 3;
osmesa_format = VDI_RGB;
gl_copyshadow = CopyShadowRGBToARGB;
if (redmask == 255) {
Expand All @@ -613,6 +615,7 @@ static int InitOld(_THIS, SDL_Surface *current)
gl_convert = CopyShadowRGBToRGBA;
}
} else {
gl_pixelsize = 4;
gl_copyshadow = CopyShadowDirect;
if (redmask == 255<<16) {
osmesa_format = OSMESA_ARGB;
Expand Down Expand Up @@ -698,7 +701,7 @@ static void CopyShadowRGBTo555(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol;

srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3;
srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels;
dstpitch = surface->pitch >>1;

Expand Down Expand Up @@ -726,7 +729,7 @@ static void CopyShadowRGBTo565(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol;

srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3;
srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels;
dstpitch = surface->pitch >>1;

Expand Down Expand Up @@ -755,7 +758,7 @@ static void CopyShadowRGBSwap(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol;

srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3;
srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels;
dstpitch = surface->pitch;

Expand All @@ -782,7 +785,7 @@ static void CopyShadowRGBToARGB(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol;

srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3;
srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels;
dstpitch = surface->pitch >>2;

Expand Down Expand Up @@ -812,7 +815,7 @@ static void CopyShadowRGBToABGR(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol;

srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3;
srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels;
dstpitch = surface->pitch >>2;

Expand Down Expand Up @@ -842,7 +845,7 @@ static void CopyShadowRGBToBGRA(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol;

srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3;
srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels;
dstpitch = surface->pitch >>2;

Expand Down Expand Up @@ -872,7 +875,7 @@ static void CopyShadowRGBToRGBA(_THIS, SDL_Surface *surface)
Uint8 *srcline, *srccol;

srcline = (Uint8 *)gl_shadow;
srcpitch = surface->w *3;
srcpitch = surface->w * gl_pixelsize;
dstline = surface->pixels;
dstpitch = surface->pitch >>2;

Expand Down Expand Up @@ -902,7 +905,7 @@ static void CopyShadow8888To555(_THIS, SDL_Surface *surface)
Uint32 *srcline, *srccol;

srcline = (Uint32 *)gl_shadow;
srcpitch = surface->w;
srcpitch = (surface->w * gl_pixelsize) >>2;
dstline = surface->pixels;
dstpitch = surface->pitch >>1;

Expand Down Expand Up @@ -932,7 +935,7 @@ static void CopyShadow8888To565(_THIS, SDL_Surface *surface)
Uint32 *srcline, *srccol;

srcline = (Uint32 *)gl_shadow;
srcpitch = surface->w;
srcpitch = (surface->w * gl_pixelsize) >> 2;
dstline = surface->pixels;
dstpitch = surface->pitch >>1;

Expand Down

0 comments on commit fe0142a

Please sign in to comment.