@ -1218,6 +1218,19 @@ void PollInputEvents(void)  
															
														 
														
													
														
															
																 
																 
																/ /  Module  Internal  Functions  Definition  
																 
																 
																/ /  Module  Internal  Functions  Definition  
															
														 
														
													
														
															
																 
																 
																/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
																 
																 
																/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																static  void  SetDimensionsFromMonitor ( GLFWmonitor  * monitor )  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																{  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																  const  GLFWvidmode  * mode  =  glfwGetVideoMode ( monitor ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																  / /  Default  display  resolution  to  that  of  the  current  mode   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																  CORE . Window . display . width  =  mode - > width ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																  CORE . Window . display . height  =  mode - > height ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																  / /  Set  screen  width / height  to  the  display  width / height  if  they  are  0   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																  if  ( CORE . Window . screen . width  = =  0 )  CORE . Window . screen . width  =  CORE . Window . display . width ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																  if  ( CORE . Window . screen . height  = =  0 )  CORE . Window . screen . height  =  CORE . Window . display . height ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																}  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																/ /  Initialize  platform :  graphics ,  inputs  and  more  
																 
																 
																/ /  Initialize  platform :  graphics ,  inputs  and  more  
															
														 
														
													
														
															
																 
																 
																int  InitPlatform ( void )  
																 
																 
																int  InitPlatform ( void )  
															
														 
														
													
														
															
																 
																 
																{  
																 
																 
																{  
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1358,26 +1371,22 @@ int InitPlatform(void)  
															
														 
														
													
														
															
																 
																 
																    / /  REF :  https : / / github . com / raysan5 / raylib / issues / 1554   
																 
																 
																    / /  REF :  https : / / github . com / raysan5 / raylib / issues / 1554   
															
														 
														
													
														
															
																 
																 
																    glfwSetJoystickCallback ( NULL ) ;   
																 
																 
																    glfwSetJoystickCallback ( NULL ) ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																    / /  Find  monitor  resolution   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    GLFWmonitor  * monitor  =  glfwGetPrimaryMonitor ( ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    if  ( ! monitor )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																    GLFWmonitor  * monitor  =  NULL ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																    if  ( CORE . Window . fullscreen )   
															
														 
														
													
														
															
																 
																 
																    {   
																 
																 
																    {   
															
														 
														
													
														
															
																 
																 
																        TRACELOG ( LOG_WARNING ,  " GLFW: Failed to get primary monitor " ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																        return  - 1 ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    }   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  According  to  glfwCreateWindow ( ) ,  if  the  user  does  not  have  a  choice ,  fullscreen  applications   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  should  default  to  the  primary  monitor .   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																    const  GLFWvidmode  * mode  =  glfwGetVideoMode ( monitor ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    CORE . Window . display . width  =  mode - > width ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    CORE . Window . display . height  =  mode - > height ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        monitor  =  glfwGetPrimaryMonitor ( ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        if  ( ! monitor )   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        {   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																          TRACELOG ( LOG_WARNING ,  " GLFW: Failed to get primary monitor " ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																          return  - 1 ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        }   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																    / /  Set  screen  width / height  to  the  display  width / height  if  they  are  0   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    if  ( CORE . Window . screen . width  = =  0 )  CORE . Window . screen . width  =  CORE . Window . display . width ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    if  ( CORE . Window . screen . height  = =  0 )  CORE . Window . screen . height  =  CORE . Window . display . height ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        SetDimensionsFromMonitor ( monitor ) ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																    if  ( CORE . Window . fullscreen )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																    {   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																        / /  Remember  center  for  switchinging  from  fullscreen  to  window   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  Remember  center  for  switching  from  fullscreen  to  window   
															
														 
														
													
														
															
																 
																 
																        if  ( ( CORE . Window . screen . height  = =  CORE . Window . display . height )  & &  ( CORE . Window . screen . width  = =  CORE . Window . display . width ) )   
																 
																 
																        if  ( ( CORE . Window . screen . height  = =  CORE . Window . display . height )  & &  ( CORE . Window . screen . width  = =  CORE . Window . display . width ) )   
															
														 
														
													
														
															
																 
																 
																        {   
																 
																 
																        {   
															
														 
														
													
														
															
																 
																 
																            / /  If  screen  width / height  equal  to  the  display ,  we  can ' t  calculate  the  window  pos  for  toggling  full - screened / windowed .   
																 
																 
																            / /  If  screen  width / height  equal  to  the  display ,  we  can ' t  calculate  the  window  pos  for  toggling  full - screened / windowed .   
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -1396,7 +1405,7 @@ int InitPlatform(void)  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																        / /  Obtain  recommended  CORE . Window . display . width / CORE . Window . display . height  from  a  valid  videomode  for  the  monitor   
																 
																 
																        / /  Obtain  recommended  CORE . Window . display . width / CORE . Window . display . height  from  a  valid  videomode  for  the  monitor   
															
														 
														
													
														
															
																 
																 
																        int  count  =  0 ;   
																 
																 
																        int  count  =  0 ;   
															
														 
														
													
														
															
																 
																 
																        const  GLFWvidmode  * modes  =  glfwGetVideoModes ( glfwGetPri maryM onitor( ) ,  & count ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        const  GLFWvidmode  * modes  =  glfwGetVideoModes ( monitor ,  & count ) ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																        / /  Get  closest  video  mode  to  desired  CORE . Window . screen . width / CORE . Window . screen . height   
																 
																 
																        / /  Get  closest  video  mode  to  desired  CORE . Window . screen . width / CORE . Window . screen . height   
															
														 
														
													
														
															
																 
																 
																        for  ( int  i  =  0 ;  i  <  count ;  i + + )   
																 
																 
																        for  ( int  i  =  0 ;  i  <  count ;  i + + )   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1426,21 +1435,55 @@ int InitPlatform(void)  
															
														 
														
													
														
															
																 
																 
																        / /  HighDPI  monitors  are  properly  considered  in  a  following  similar  function :  SetupViewport ( )   
																 
																 
																        / /  HighDPI  monitors  are  properly  considered  in  a  following  similar  function :  SetupViewport ( )   
															
														 
														
													
														
															
																 
																 
																        SetupFramebuffer ( CORE . Window . display . width ,  CORE . Window . display . height ) ;   
																 
																 
																        SetupFramebuffer ( CORE . Window . display . width ,  CORE . Window . display . height ) ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																        platform . handle  =  glfwCreateWindow ( CORE . Window . display . width ,  CORE . Window . display . height ,  ( CORE . Window . title  ! =  0 ) ?  CORE . Window . title  :  "   " ,  glfwGetPri maryM onitor( ) ,  NULL ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        platform . handle  =  glfwCreateWindow ( CORE . Window . display . width ,  CORE . Window . display . height ,  ( CORE . Window . title  ! =  0 ) ?  CORE . Window . title  :  "   " ,  monitor ,  NULL ) ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																        / /  NOTE :  Full - screen  change ,  not  working  properly . . .   
																 
																 
																        / /  NOTE :  Full - screen  change ,  not  working  properly . . .   
															
														 
														
													
														
															
																 
																 
																        / / glfwSetWindowMonitor ( platform . handle ,  glfwGetPrimaryMonitor ( ) ,  0 ,  0 ,  CORE . Window . screen . width ,  CORE . Window . screen . height ,  GLFW_DONT_CARE ) ;   
																 
																 
																        / / glfwSetWindowMonitor ( platform . handle ,  glfwGetPrimaryMonitor ( ) ,  0 ,  0 ,  CORE . Window . screen . width ,  CORE . Window . screen . height ,  GLFW_DONT_CARE ) ;   
															
														 
														
													
														
															
																 
																 
																    }   
																 
																 
																    }   
															
														 
														
													
														
															
																 
																 
																    else   
																 
																 
																    else   
															
														 
														
													
														
															
																 
																 
																    {   
																 
																 
																    {   
															
														 
														
													
														
															
																 
																 
																        / /  If  we  are  windowed  fullscreen ,  ensures  that  window  does  not  minimize  when  focus  is  lost   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																        if  ( ( CORE . Window . screen . height  = =  CORE . Window . display . height )  & &  ( CORE . Window . screen . width  = =  CORE . Window . display . width ) )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  No - fullscreen  window  creation   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        bool  wantWindowedFullscreen  =  ( CORE . Window . screen . height  = =  0 )  & &  ( CORE . Window . screen . width  = =  0 ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  If  we  are  windowed  fullscreen ,  ensures  that  window  does  not  minimize  when  focus  is  lost .   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  This  hinting  code  will  not  work  if  the  user  already  specified  the  correct  monitor  dimensions ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  at  this  point  we  don ' t  know  the  monitor ' s  dimensions .  ( Though ,  how  did  the  user  then ? )   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        if  ( wantWindowedFullscreen )   
															
														 
														
													
														
															
																 
																 
																        {   
																 
																 
																        {   
															
														 
														
													
														
															
																 
																 
																            glfwWindowHint ( GLFW_AUTO_ICONIFY ,  0 ) ;   
																 
																 
																            glfwWindowHint ( GLFW_AUTO_ICONIFY ,  0 ) ;   
															
														 
														
													
														
															
																 
																 
																        }   
																 
																 
																        }   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																        / /  No - fullscreen  window  creation   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																        platform . handle  =  glfwCreateWindow ( CORE . Window . screen . width ,  CORE . Window . screen . height ,  ( CORE . Window . title  ! =  0 ) ?  CORE . Window . title  :  "   " ,  NULL ,  NULL ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  Default  to  at  least  one  pixel  in  size ,  as  creation  with  a  zero  dimension  is  not  allowed .   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        int  creationWidth  =  CORE . Window . screen . width  ! =  0  ?  CORE . Window . screen . width  :  1 ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        int  creationHeight  =  CORE . Window . screen . height  ! =  0  ?  CORE . Window . screen . height  :  1 ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        platform . handle  =  glfwCreateWindow ( creationWidth ,  creationHeight ,  ( CORE . Window . title  ! =  0 ) ?  CORE . Window . title  :  "   " ,  NULL ,  NULL ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  After  the  window  was  created ,  determine  the  monitor  that  the  window  manager  assigned .   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        / /  Derive  display  sizes ,  and ,  if  possible ,  window  size  in  case  it  was  zero  at  beginning .   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        int  monitorCount  =  0 ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        int  monitorIndex  =  GetCurrentMonitor ( ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        GLFWmonitor  * * monitors  =  glfwGetMonitors ( & monitorCount ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        if  ( monitorIndex  <  monitorCount )   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        {   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            monitor  =  monitors [ monitorIndex ] ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            SetDimensionsFromMonitor ( monitor ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            TRACELOG ( LOG_INFO ,  " wantWindowed: %d, size: %dx%d " ,  wantWindowedFullscreen ,  CORE . Window . screen . width ,  CORE . Window . screen . height ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            if  ( wantWindowedFullscreen )   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            {   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																                glfwSetWindowSize ( platform . handle ,  CORE . Window . screen . width ,  CORE . Window . screen . height ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            }   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        }   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        else   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        {   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            / /  The  monitor  for  the  window - manager - created  window  can  not  be  determined ,  so  it  can  not  be  centered .   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            glfwTerminate ( ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            TRACELOG ( LOG_WARNING ,  " GLFW: Failed to determine Monitor to center Window " ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																            return  - 1 ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        }   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																        if  ( platform . handle )   
																 
																 
																        if  ( platform . handle )   
															
														 
														
													
														
															
																 
																 
																        {   
																 
																 
																        {   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1524,8 +1567,8 @@ int InitPlatform(void)  
															
														 
														
													
														
															
																 
																 
																        int  monitorHeight  =  0 ;   
																 
																 
																        int  monitorHeight  =  0 ;   
															
														 
														
													
														
															
																 
																 
																        glfwGetMonitorWorkarea ( monitor ,  & monitorX ,  & monitorY ,  & monitorWidth ,  & monitorHeight ) ;   
																 
																 
																        glfwGetMonitorWorkarea ( monitor ,  & monitorX ,  & monitorY ,  & monitorWidth ,  & monitorHeight ) ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																        int  posX  =  monitorX  +  ( monitorWidth  -  CORE . Window . screen . width ) / 2 ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																        int  posY  =  monitorY  +  ( monitorHeight  -  CORE . Window . screen . height ) / 2 ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        int  posX  =  monitorX  +  ( monitorWidth  -  p">( int ) CORE . Window . screen . width ) / 2 ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																        int  posY  =  monitorY  +  ( monitorHeight  -  p">( int ) CORE . Window . screen . height ) / 2 ;   
															
														 
														
													
														
															
																 
																 
																        if  ( posX  <  monitorX )  posX  =  monitorX ;   
																 
																 
																        if  ( posX  <  monitorX )  posX  =  monitorX ;   
															
														 
														
													
														
															
																 
																 
																        if  ( posY  <  monitorY )  posY  =  monitorY ;   
																 
																 
																        if  ( posY  <  monitorY )  posY  =  monitorY ;   
															
														 
														
													
														
															
																 
																 
																        SetWindowPosition ( posX ,  posY ) ;   
																 
																 
																        SetWindowPosition ( posX ,  posY ) ;