mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	clean up SDL2 video interface code
This commit is contained in:
		
							parent
							
								
									0aaaf067e3
								
							
						
					
					
						commit
						57c1fd602c
					
				
					 1 changed files with 23 additions and 130 deletions
				
			
		|  | @ -125,8 +125,10 @@ static      SDL_Surface *vidSurface = NULL; | |||
| static      SDL_Surface *bufSurface = NULL; | ||||
| static      SDL_Surface *icoSurface = NULL; | ||||
| static      SDL_Color    localPalette[256]; | ||||
| #if 0 | ||||
| static      SDL_Rect   **modeList = NULL; | ||||
| static       Uint8       BitsPerPixel = 16; | ||||
| #endif | ||||
| static       Uint16      realwidth = BASEVIDWIDTH; | ||||
| static       Uint16      realheight = BASEVIDHEIGHT; | ||||
| static const Uint32      surfaceFlagsW = 0/*|SDL_RESIZABLE*/; | ||||
|  | @ -499,8 +501,11 @@ static void VID_Command_NumModes_f (void) | |||
| 
 | ||||
| static void SurfaceInfo(const SDL_Surface *infoSurface, const char *SurfaceText) | ||||
| { | ||||
| #if 1 | ||||
| 	(void)infoSurface; | ||||
| 	(void)SurfaceText; | ||||
| 	SDL2STUB(); | ||||
| #if 0 | ||||
| #else | ||||
| 	INT32 vfBPP; | ||||
| 	const SDL_Surface *VidSur = SDL_GetVideoSurface(); | ||||
| 
 | ||||
|  | @ -557,13 +562,14 @@ static void SurfaceInfo(const SDL_Surface *infoSurface, const char *SurfaceText) | |||
| 		CONS_Printf("%s", M_GetText(" Colorkey RLE acceleration blit\n")); | ||||
| 	if (infoSurface->flags&SDL_SRCALPHA) | ||||
| 		CONS_Printf("%s", M_GetText(" Use alpha blending acceleration blit\n")); | ||||
| 
 | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| static void VID_Command_Info_f (void) | ||||
| { | ||||
| #if 0 | ||||
| 	SDL2STUB(); | ||||
| #else | ||||
| #if 0 | ||||
| 	const SDL_VideoInfo *videoInfo; | ||||
| 	videoInfo = SDL_GetVideoInfo(); //Alam: Double-Check
 | ||||
|  | @ -600,6 +606,9 @@ static void VID_Command_Info_f (void) | |||
| 			CONS_Printf("%s", M_GetText(" There no video memory for SDL\n")); | ||||
| 		//*vfmt
 | ||||
| 	} | ||||
| #else | ||||
| 	if (!M_CheckParm("-noblit")) videoblitok = SDL_TRUE; | ||||
| #endif | ||||
| 	SurfaceInfo(bufSurface, M_GetText("Current Engine Mode")); | ||||
| 	SurfaceInfo(vidSurface, M_GetText("Current Video Mode")); | ||||
| #endif | ||||
|  | @ -668,6 +677,7 @@ static void VID_Command_Mode_f (void) | |||
| #endif | ||||
| } | ||||
| 
 | ||||
| #if 0 | ||||
| #if defined(RPC_NO_WINDOWS_H) | ||||
| static VOID MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) | ||||
| { | ||||
|  | @ -682,6 +692,7 @@ static VOID MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) | |||
| 	} | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| static inline void SDLJoyRemap(event_t *event) | ||||
| { | ||||
|  | @ -1350,8 +1361,6 @@ void I_FinishUpdate(void) | |||
| 	if (render_soft == rendermode && screens[0]) | ||||
| 	{ | ||||
| 		SDL_Rect rect; | ||||
| 		SDL_PixelFormat *vidformat = vidSurface->format; | ||||
| 		int lockedsf = 0, blited = 0; | ||||
| 
 | ||||
| 		rect.x = 0; | ||||
| 		rect.y = 0; | ||||
|  | @ -1365,125 +1374,16 @@ void I_FinishUpdate(void) | |||
| 		{ | ||||
| 			Impl_VideoSetupSDLBuffer(); | ||||
| 		} | ||||
| #if 0 | ||||
| 		if (SDLmatchVideoformat() && !vid.direct)//Alam: DOS Way
 | ||||
| 		{ | ||||
| 			if (SDL_MUSTLOCK(vidSurface)) lockedsf = SDL_LockSurface(vidSurface); | ||||
| 			if (lockedsf == 0) | ||||
| 			{ | ||||
| 				if (vidSurface->pixels > vid.height) | ||||
| 				{ | ||||
| 					UINT8 *ptr = vidSurface->pixels; | ||||
| 					size_t half_excess = vidSurface->pitch*(vidSurface->height-vid.height)/2; | ||||
| 					memset(ptr, 0x1F, half_excess); | ||||
| 					ptr += half_excess; | ||||
| 					VID_BlitLinearScreen(screens[0], ptr, vid.width*vid.bpp, vid.height, | ||||
| 					                     vid.rowbytes, vidSurface->pitch); | ||||
| 					ptr += vid.height*vidSurface->pitch; | ||||
| 					memset(ptr, 0x1F, half_excess); | ||||
| 				} | ||||
| 				else | ||||
| 				VID_BlitLinearScreen(screens[0], vidSurface->pixels, vid.width*vid.bpp, | ||||
| 				                     vid.height, vid.rowbytes, vidSurface->pitch ); | ||||
| 				if (SDL_MUSTLOCK(vidSurface)) SDL_UnlockSurface(vidSurface); | ||||
| 			} | ||||
| 		} | ||||
| 		else | ||||
| #endif | ||||
| 		if (bufSurface) //Alam: New Way to send video data
 | ||||
| 		{ | ||||
| 			blited = SDL_BlitSurface(bufSurface, NULL, vidSurface, &rect); | ||||
| 			SDL_BlitSurface(bufSurface, NULL, vidSurface, &rect); | ||||
| 			SDL_UpdateTexture(texture, NULL, vidSurface->pixels, realwidth * 4); | ||||
| 		} | ||||
| #if 0 | ||||
| 		else if (vid.bpp == 1 && !vid.direct) | ||||
| 		{ | ||||
| 			Uint8 *bP,*vP; //Src, Dst
 | ||||
| 			Uint16 bW, vW; // Pitch Remainder
 | ||||
| 			Sint32 pH, pW; //Height, Width
 | ||||
| 			bP = (Uint8 *)screens[0]; | ||||
| 			bW = (Uint16)(vid.rowbytes - vid.width); | ||||
| 			//I_OutputMsg("Old Copy Code\n");
 | ||||
| 			if (SDL_MUSTLOCK(vidSurface)) lockedsf = SDL_LockSurface(vidSurface); | ||||
| 			vP = (Uint8 *)vidSurface->pixels; | ||||
| 			vW = (Uint16)(vidSurface->pitch - vidSurface->w*vidformat->BytesPerPixel); | ||||
| 			if (vidSurface->h > vid.height) | ||||
| 				vP += vidSurface->pitch*(vidSurface->h-vid.height)/2; | ||||
| 			if (lockedsf == 0 && vidSurface->pixels) | ||||
| 			{ | ||||
| 				if (vidformat->BytesPerPixel == 2) | ||||
| 				{ | ||||
| 					for (pH=0;pH < vidSurface->h;pH++) | ||||
| 					{ | ||||
| 						for (pW=0;pW < vidSurface->w;pW++) | ||||
| 						{ | ||||
| 							*((Uint16 *)(void *)vP) = (Uint16)SDL_MapRGB(vidformat, | ||||
| 								localPalette[*bP].r,localPalette[*bP].g,localPalette[*bP].b); | ||||
| 							bP++; | ||||
| 							vP += 2; | ||||
| 						} | ||||
| 						bP += bW; | ||||
| 						vP += vW; | ||||
| 					} | ||||
| 				} | ||||
| 				else if (vidformat->BytesPerPixel == 3) | ||||
| 				{ | ||||
| 					for (pH=0;pH < vidSurface->h;pH++) | ||||
| 					{ | ||||
| 						for (pW=0;pW < vidSurface->w;pW++) | ||||
| 						{ | ||||
| 							*((Uint32 *)(void *)vP) = SDL_MapRGB(vidformat, | ||||
| 								localPalette[*bP].r,localPalette[*bP].g,localPalette[*bP].b); | ||||
| 							bP++; | ||||
| 							vP += 3; | ||||
| 						} | ||||
| 						bP += bW; | ||||
| 						vP += vW; | ||||
| 					} | ||||
| 				} | ||||
| 				else if (vidformat->BytesPerPixel == 4) | ||||
| 				{ | ||||
| 					for (pH=0;pH < vidSurface->h;pH++) | ||||
| 					{ | ||||
| 						for (pW=0;pW < vidSurface->w;pW++) | ||||
| 						{ | ||||
| 							*((Uint32 *)(void *)vP) = SDL_MapRGB(vidformat, | ||||
| 								localPalette[*bP].r,localPalette[*bP].g,localPalette[*bP].b); | ||||
| 							bP++; | ||||
| 							vP += 4; | ||||
| 						} | ||||
| 						bP += bW; | ||||
| 						vP += vW; | ||||
| 					} | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 					;//NOP
 | ||||
| 				} | ||||
| 			} | ||||
| 			if (SDL_MUSTLOCK(vidSurface)) SDL_UnlockSurface(vidSurface); | ||||
| 		} | ||||
| 		else /// \todo 15t15,15tN, others?
 | ||||
| 		{ | ||||
| 			;//NOP
 | ||||
| 		} | ||||
| #endif | ||||
| 
 | ||||
| #if 0 | ||||
| 		if (lockedsf == 0 && blited == 0 && vidSurface->flags&SDL_DOUBLEBUF) | ||||
| 			SDL_Flip(vidSurface); | ||||
| 		else if (blited != -2 && lockedsf == 0) //Alam: -2 for Win32 Direct, yea, i know
 | ||||
| 			SDL_UpdateRect(vidSurface, rect.x, rect.y, 0, 0); //Alam: almost always
 | ||||
| 		else | ||||
| 			I_OutputMsg("%s\n",SDL_GetError()); | ||||
| 		// Blit buffer to texture
 | ||||
| 		SDL_RenderClear(renderer); | ||||
| 		SDL_RenderCopy(renderer, texture, NULL, NULL); | ||||
| 		SDL_RenderPresent(renderer); | ||||
| 	} | ||||
| #endif | ||||
| 	// Blit buffer to texture
 | ||||
| 	 | ||||
| 	SDL_RenderClear(renderer); | ||||
| 	SDL_RenderCopy(renderer, texture, NULL, NULL); | ||||
| 	SDL_RenderPresent(renderer); | ||||
| } | ||||
| 
 | ||||
| #ifdef HWRENDER | ||||
| 	else | ||||
|  | @ -1708,11 +1608,13 @@ static void SDLWMSet(void) | |||
| #endif | ||||
| } | ||||
| 
 | ||||
| #if 0 | ||||
| static void* SDLGetDirect(void) | ||||
| { | ||||
| 	// you can not use the video memory in pixels member in fullscreen mode
 | ||||
| 	return NULL; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| INT32 VID_SetMode(INT32 modeNum) | ||||
| { | ||||
|  | @ -1879,7 +1781,7 @@ static void Impl_SetWindowName(const char *title) | |||
| 	SDL_SetWindowTitle(window, title); | ||||
| } | ||||
| 
 | ||||
| static void Impl_SetWindowIcon() | ||||
| static void Impl_SetWindowIcon(void) | ||||
| { | ||||
| 	if (window == NULL || icoSurface == NULL) | ||||
| 	{ | ||||
|  | @ -1889,7 +1791,7 @@ static void Impl_SetWindowIcon() | |||
| 	SDL_SetWindowIcon(window, icoSurface); | ||||
| } | ||||
| 
 | ||||
| static void Impl_VideoSetupSDLBuffer() | ||||
| static void Impl_VideoSetupSDLBuffer(void) | ||||
| { | ||||
| 	if (bufSurface != NULL) | ||||
| 	{ | ||||
|  | @ -1917,7 +1819,7 @@ static void Impl_VideoSetupSDLBuffer() | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| static void Impl_VideoSetupBuffer() | ||||
| static void Impl_VideoSetupBuffer(void) | ||||
| { | ||||
| 	// Set up game's software render buffer
 | ||||
| 	if (rendermode == render_soft) | ||||
|  | @ -1938,9 +1840,6 @@ static void Impl_VideoSetupBuffer() | |||
| 
 | ||||
| void I_StartupGraphics(void) | ||||
| { | ||||
| 	static char SDLNOMOUSE[] = "SDL_NOMOUSE=1"; | ||||
| 	static char SDLVIDEOMID[] = "SDL_VIDEO_CENTERED=center"; | ||||
| 
 | ||||
| 	if (dedicated) | ||||
| 	{ | ||||
| 		rendermode = render_none; | ||||
|  | @ -1956,12 +1855,6 @@ void I_StartupGraphics(void) | |||
| 	CV_RegisterVar (&cv_vidwait); | ||||
| 	CV_RegisterVar (&cv_stretch); | ||||
| 	disable_mouse = M_CheckParm("-nomouse"); | ||||
| 	if (disable_mouse) | ||||
| 		I_PutEnv(SDLNOMOUSE); | ||||
| 	/*
 | ||||
| 	if (!I_GetEnv("SDL_VIDEO_CENTERED")) | ||||
| 		I_PutEnv(SDLVIDEOMID); | ||||
| 	*/ | ||||
| 	disable_fullscreen = M_CheckParm("-win") ? 1 : 0; | ||||
| 
 | ||||
| 	keyboard_started = true; | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Alam Ed Arias
						Alam Ed Arias