# include  "system/ui/raylib/util.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  <array> 
 
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  <filesystem> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# undef GREEN 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# undef RED 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# undef YELLOW 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  "common/swaglog.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  "system/hardware/hw.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								constexpr  std : : array < const  char  * ,  static_cast < int > ( FontWeight : : Count ) >  FONT_FILE_PATHS  =  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-Black.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-Bold.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-ExtraBold.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-ExtraLight.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-Medium.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-Regular.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-SemiBold.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    " ../../selfdrive/assets/fonts/Inter-Thin.ttf " , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Texture2D  LoadTextureResized ( const  char  * fileName ,  int  size )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Image  img  =  LoadImage ( fileName ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ImageResize ( & img ,  size ,  size ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Texture2D  texture  =  LoadTextureFromImage ( img ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  return  texture ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								App  * pApp  =  nullptr ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								App : : App ( const  char  * title ,  int  fps )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  // Ensure the current dir matches the exectuable's directory
  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  auto  self_path  =  util : : readlink ( " /proc/self/exe " ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  auto  exe_dir  =  std : : filesystem : : path ( self_path ) . parent_path ( ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  chdir ( exe_dir . c_str ( ) ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Hardware : : set_display_power ( true ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Hardware : : set_brightness ( 65 ) ; 
 
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  // SetTraceLogLevel(LOG_NONE);
  
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  InitWindow ( 2160 ,  1080 ,  title ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  SetTargetFPS ( fps ) ; 
 
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  // Load fonts
  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fonts_ . reserve ( FONT_FILE_PATHS . size ( ) ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  for  ( int  i  =  0 ;  i  <  FONT_FILE_PATHS . size ( ) ;  + + i )  { 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fonts_ . push_back ( LoadFontEx ( FONT_FILE_PATHS [ i ] ,  120 ,  nullptr ,  250 ) ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  } 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  pApp  =  this ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								App : : ~ App ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  for  ( auto  & font  :  fonts_ )  { 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    UnloadFont ( font ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  } 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  CloseWindow ( ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  pApp  =  nullptr ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								const  Font  & App : : getFont ( FontWeight  weight )  const  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  return  fonts_ [ static_cast < int > ( weight ) ] ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}