diff src/video/xbios/SDL_xbios.c @ 1101:c8a51d169579

Revert back screen centering when using c2p
author Patrice Mandin <patmandin@gmail.com>
date Thu, 21 Jul 2005 22:21:51 +0000
parents 5012b97142ac
children f0919504adfd
line wrap: on
line diff
--- a/src/video/xbios/SDL_xbios.c	Thu Jul 21 21:33:15 2005 +0000
+++ b/src/video/xbios/SDL_xbios.c	Thu Jul 21 22:21:51 2005 +0000
@@ -724,8 +724,17 @@
 	surface = this->screen;
 
 	if ((surface->format->BitsPerPixel) == 8) {
+		void *destscr;
+		int destx;
 		int i;
 
+		/* Center on destination screen */
+		destscr = XBIOS_screens[XBIOS_fbnum];
+		destscr += XBIOS_pitch * ((XBIOS_height - surface->h) >> 1);
+		destx = (XBIOS_width - surface->w) >> 1;
+		destx &= ~15;
+		destscr += destx;
+
 		for (i=0;i<numrects;i++) {
 			void *source,*destination;
 			int x1,x2;
@@ -740,16 +749,19 @@
 			source += surface->pitch * rects[i].y;
 			source += x1;
 
-			destination = XBIOS_screens[XBIOS_fbnum];
+			destination = destscr;
 			destination += XBIOS_pitch * rects[i].y;
 			destination += x1;
 
 			/* Convert chunky to planar screen */
 			SDL_Atari_C2pConvert(
-				source, destination,
-				x2-x1, rects[i].h,
+				source,
+				destination,
+				x2-x1,
+				rects[i].h,
 				XBIOS_doubleline,
-				surface->pitch, XBIOS_pitch
+				surface->pitch,
+				XBIOS_pitch
 			);
 		}
 	}
@@ -770,12 +782,25 @@
 static int XBIOS_FlipHWSurface(_THIS, SDL_Surface *surface)
 {
 	if ((surface->format->BitsPerPixel) == 8) {
+		void *destscr;
+		int destx;
+			
+		/* Center on destination screen */
+		destscr = XBIOS_screens[XBIOS_fbnum];
+		destscr += XBIOS_pitch * ((XBIOS_height - surface->h) >> 1);
+		destx = (XBIOS_width - surface->w) >> 1;
+		destx &= ~15;
+		destscr += destx;
+
 		/* Convert chunky to planar screen */
 		SDL_Atari_C2pConvert(
-			surface->pixels, XBIOS_screens[XBIOS_fbnum],
-			surface->w, surface->h,
+			surface->pixels,
+			destscr,
+			surface->w,
+			surface->h,
 			XBIOS_doubleline,
-			surface->pitch, XBIOS_pitch
+			surface->pitch,
+			XBIOS_pitch
 		);
 	}