src/video/xbios/SDL_xbios.c
changeset 287 e4bd0cf95506
parent 281 c5010ab8ba35
child 297 f6ffac90895c
equal deleted inserted replaced
286:3ea69fd0b095 287:e4bd0cf95506
   488 
   488 
   489 		if (XBIOS_shadowscreen == NULL) {
   489 		if (XBIOS_shadowscreen == NULL) {
   490 			SDL_SetError("XBIOS_SetVideoMode: Not enough memory for shadow surface");
   490 			SDL_SetError("XBIOS_SetVideoMode: Not enough memory for shadow surface");
   491 			return (NULL);
   491 			return (NULL);
   492 		}
   492 		}
       
   493 		memset(XBIOS_shadowscreen, 0, new_screen_size);
   493 	}
   494 	}
   494 
   495 
   495 	/* Output buffer needs to be twice in size for the software double-line mode */
   496 	/* Output buffer needs to be twice in size for the software double-line mode */
   496 	XBIOS_doubleline = SDL_FALSE;
   497 	XBIOS_doubleline = SDL_FALSE;
   497 	if (new_video_mode->doubleline) {
   498 	if (new_video_mode->doubleline) {
   504 	if (XBIOS_screensmem[0]==NULL) {
   505 	if (XBIOS_screensmem[0]==NULL) {
   505 		XBIOS_FreeBuffers(this);
   506 		XBIOS_FreeBuffers(this);
   506 		SDL_SetError("XBIOS_SetVideoMode: Not enough memory for video buffer");
   507 		SDL_SetError("XBIOS_SetVideoMode: Not enough memory for video buffer");
   507 		return (NULL);
   508 		return (NULL);
   508 	}
   509 	}
       
   510 	memset(XBIOS_screensmem[0], 0, new_screen_size);
   509 
   511 
   510 	XBIOS_screens[0]=(void *) (( (long) XBIOS_screensmem[0]+256) & 0xFFFFFF00UL);
   512 	XBIOS_screens[0]=(void *) (( (long) XBIOS_screensmem[0]+256) & 0xFFFFFF00UL);
   511 
   513 
   512 	/* Double buffer ? */
   514 	/* Double buffer ? */
   513 	if (flags & SDL_DOUBLEBUF) {
   515 	if (flags & SDL_DOUBLEBUF) {
   516 		if (XBIOS_screensmem[1]==NULL) {
   518 		if (XBIOS_screensmem[1]==NULL) {
   517 			XBIOS_FreeBuffers(this);
   519 			XBIOS_FreeBuffers(this);
   518 			SDL_SetError("XBIOS_SetVideoMode: Not enough memory for double buffer");
   520 			SDL_SetError("XBIOS_SetVideoMode: Not enough memory for double buffer");
   519 			return (NULL);
   521 			return (NULL);
   520 		}
   522 		}
       
   523 		memset(XBIOS_screensmem[1], 0, new_screen_size);
   521 
   524 
   522 		XBIOS_screens[1]=(void *) (( (long) XBIOS_screensmem[1]+256) & 0xFFFFFF00UL);
   525 		XBIOS_screens[1]=(void *) (( (long) XBIOS_screensmem[1]+256) & 0xFFFFFF00UL);
   523 		modeflags |= SDL_DOUBLEBUF;
   526 		modeflags |= SDL_DOUBLEBUF;
   524 	}
   527 	}
   525 	
   528