diff src/video/photon/SDL_ph_modes.c @ 309:2de77f7b7a28

*** empty log message ***
author Sam Lantinga <slouken@libsdl.org>
date Mon, 11 Mar 2002 17:38:56 +0000
parents f6ffac90895c
children 3333b6e68289
line wrap: on
line diff
--- a/src/video/photon/SDL_ph_modes.c	Sun Mar 10 03:55:45 2002 +0000
+++ b/src/video/photon/SDL_ph_modes.c	Mon Mar 11 17:38:56 2002 +0000
@@ -155,54 +155,52 @@
 
 SDL_Rect **ph_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags)
 {
-	int i = 0;
-	int j = 0;
-	SDL_Rect Amodelist[PH_MAX_VIDEOMODES];
+    int i = 0;
+    int j = 0;
+    SDL_Rect Amodelist[PH_MAX_VIDEOMODES];
 
-        for (i=0; i<PH_MAX_VIDEOMODES; i++)
-        {
-           SDL_modearray[i]=&SDL_modelist[i];
-        }
+    for (i=0; i<PH_MAX_VIDEOMODES; i++)
+    {
+        SDL_modearray[i]=&SDL_modelist[i];
+    }
 
-	if (PgGetVideoModeList( &mode_list ) < 0)
-	{
-	   fprintf(stderr,"error: PgGetVideoModeList failed\n");
-	   return NULL;
-	}
+    if (PgGetVideoModeList( &mode_list ) < 0)
+    {
+       fprintf(stderr,"error: PgGetVideoModeList failed\n");
+       return NULL;
+    }
 
-	mode_info.bits_per_pixel = 0;
+    mode_info.bits_per_pixel = 0;
 
-	for (i=0; i < mode_list.num_modes; i++) 
-	{
-            if (PgGetVideoModeInfo(mode_list.modes[i], &mode_info) < 0)
-            {
-                fprintf(stderr,"error: PgGetVideoModeInfo failed on mode: 0x%x\n",
-                        mode_list.modes[i]);
-                return NULL;
-            }
+    for (i=0; i < mode_list.num_modes; i++) 
+    {
+        if (PgGetVideoModeInfo(mode_list.modes[i], &mode_info) < 0)
+        {
+            fprintf(stderr,"error: PgGetVideoModeInfo failed on mode: 0x%x\n", mode_list.modes[i]);
+            return NULL;
+        }
+        if(mode_info.bits_per_pixel == format->BitsPerPixel)
+        {
+            Amodelist[j].w = mode_info.width;
+            Amodelist[j].h = mode_info.height;
+            Amodelist[j].x = 0;
+            Amodelist[j].y = 0;
+            j++;	
+        }
+    }
+	
+    /* reorder biggest for smallest, assume width dominates */
 
-            if(mode_info.bits_per_pixel == format->BitsPerPixel)
-            {
-		Amodelist[j].w = mode_info.width;
-		Amodelist[j].h = mode_info.height;
-		Amodelist[j].x = 0;
-		Amodelist[j].y = 0;
-		j++;	
-            }
-	}
+    for(i=0; i<j; i++)
+    {
+        SDL_modelist[i].w = Amodelist[j - i -1].w;
+        SDL_modelist[i].h = Amodelist[j - i -1].h;
+        SDL_modelist[i].x = Amodelist[j - i -1].x;
+        SDL_modelist[i].y = Amodelist[j - i -1].y;
+    }
+    SDL_modearray[j]=NULL;
 	
-	//reorder biggest for smallest, assume width dominates
-
-	for(i=0; i< j ; i++)
-	{
-	    SDL_modelist[i].w = Amodelist[j - i -1].w;
-	    SDL_modelist[i].h = Amodelist[j - i -1].h;
-	    SDL_modelist[i].x = Amodelist[j - i -1].x;
-	    SDL_modelist[i].y = Amodelist[j - i -1].y;
-	}
-        SDL_modearray[j]=NULL;
-	
-	return SDL_modearray;
+    return SDL_modearray;
 }
 
 void ph_FreeVideoModes(_THIS)
@@ -281,82 +279,53 @@
     }
 }
 
-/*
-static void get_real_resolution(_THIS, int* w, int* h)
-{
-
-    if ( use_vidmode ) {
-        //PgDisplaySettings_t settings;
-	    PgVideoModeInfo_t		current_mode_info;
-	    	PgHWCaps_t my_hwcaps;
-//        int unused;
-		
-//        if (PgGetVideoMode( &settings ) >= 0) {
-//			*w = settings.xres;
-//			*h = settings.yres;
-//            return;
-//        }
-            if (PgGetGraphicsHWCaps(&my_hwcaps) >= 0)
-         	{
-                 if (PgGetVideoModeInfo(my_hwcaps.current_video_mode, &current_mode_info) < 0)
-           		 {
-                fprintf(stderr,"get_real_resolution:  PgGetVideoModeInfo failed\n");
-            		 }
-				*w = current_mode_info.width;
-				*h = current_mode_info.height;            
-            }
-    }
-//    *w = DisplayWidth(SDL_Display, SDL_Screen);
-//    *h = DisplayHeight(SDL_Display, SDL_Screen);
-}
-*/
-
 int ph_ResizeFullScreen(_THIS)
 {
-
-    if ( currently_fullscreen ) {
+    if (currently_fullscreen) {
         set_best_resolution(this, current_w, current_h);
     }
-    return(1);
+    return (1);
 }
 
+/* return the mode associated with width, height and bpp */
+/* if there is no mode then zero is returned             */
 int get_mode(int width, int height, int bpp)
-/* return the mode associated with width, height and bpp */
-/* if there is no mode then zero is returned */
 {
-	int i;
-
+    int i;
 
-if(width <640)
-   width = 640;
-if(height < 480)
-  height = 480;
-
-
-	if (PgGetVideoModeList( &mode_list ) < 0)
-	{
-	    fprintf(stderr,"error: PgGetVideoModeList failed\n");
-    	return -1;
-	}
+    if(width<640)
+    {
+        width=640;
+    }
+    if(height<480)
+    {
+        height=480;
+    }
 
-	// search list for exact match
-	for (i=0;i<mode_list.num_modes;i++)
-	{
-		if (PgGetVideoModeInfo(mode_list.modes[i], &mode_info) < 0)
-		{
-			fprintf(stderr,"error: PgGetVideoModeInfo failed\n");
-			return 0;
-		}
-		
-		
-		if ((mode_info.width == width) && 
-			(mode_info.height == height) && 
-			(mode_info.bits_per_pixel == bpp))
-			{
-			return mode_list.modes[i];
-			}
-	}
-	return (i == mode_list.num_modes) ? 0 : mode_list.modes[i];
+    if (PgGetVideoModeList(&mode_list) < 0)
+    {
+        fprintf(stderr,"error: PgGetVideoModeList failed\n");
+        return -1;
+    }
+
+    /* search list for exact match */
+    for (i=0;i<mode_list.num_modes;i++)
+    {
+        if (PgGetVideoModeInfo(mode_list.modes[i], &mode_info) < 0)
+        {
+            fprintf(stderr,"error: PgGetVideoModeInfo failed\n");
+            return 0;
+        }
+
+        if ((mode_info.width == width) && 
+            (mode_info.height == height) && 
+            (mode_info.bits_per_pixel == bpp))
+        {
+            return mode_list.modes[i];
+        }
+    }
+
+    return (i == mode_list.num_modes) ? 0 : mode_list.modes[i];
 }
 
 int get_mode_any_format(int width, int height, int bpp)
@@ -421,7 +390,7 @@
 		return mode_list.modes[ closest ];
 	}
 	else
-		return 0;
+    return 0;
 }
 
 void ph_WaitMapped(_THIS);
@@ -430,78 +399,88 @@
 
 int ph_ToggleFullScreen(_THIS, int on)
 {
-
-   if(currently_fullscreen)
-        ph_LeaveFullScreen(this);
-   else
-        ph_EnterFullScreen(this);
+    if (currently_fullscreen)
+    {
+        return ph_LeaveFullScreen(this);
+    }
+    else
+    {
+        return ph_EnterFullScreen(this);
+    }
       
-   return 0;     
-
+    return 0;     
 }
 
 int ph_EnterFullScreen(_THIS)
 {
-	if ( ! currently_fullscreen ) 
-	{
-
-		if (old_video_mode==-1)
-		{
-			PgGetGraphicsHWCaps(&graphics_card_caps);
-			old_video_mode=graphics_card_caps.current_video_mode;
-			old_refresh_rate=graphics_card_caps.current_rrate;
-		}
-
+    if (!currently_fullscreen)
+    {
+        if ((this->screen->flags & SDL_OPENGL)==SDL_OPENGL)
+        {
+#ifdef HAVE_OPENGL
+#endif /* HAVE_OPENGL */
+           return 0;
+        }
+        else
+        {
+            if (old_video_mode==-1)
+            {
+                PgGetGraphicsHWCaps(&graphics_card_caps);
+                old_video_mode=graphics_card_caps.current_video_mode;
+                old_refresh_rate=graphics_card_caps.current_rrate;
+            }
 
-		if(OCImage.direct_context == NULL)
-       	 OCImage.direct_context=(PdDirectContext_t*)PdCreateDirectContext();
-        if( !OCImage.direct_context )
-             fprintf(stderr, "error: Can't create direct context\n" );
-             
-       
-		/* Remove the cursor if in full screen mode */		
-/*
-		region_info.cursor_type = Ph_CURSOR_NONE;
-		region_info.rid=PtWidgetRid(window);
-		PhRegionChange(Ph_REGION_CURSOR,0,&region_info,NULL,NULL);
-*/
+            if(OCImage.direct_context == NULL)
+            {
+                OCImage.direct_context=(PdDirectContext_t*)PdCreateDirectContext();
+            }
+            if(!OCImage.direct_context)
+            {
+                fprintf(stderr, "error: Can't create direct context\n" );
+            }
 
-	 	PdDirectStart( OCImage.direct_context );
+            PdDirectStart(OCImage.direct_context);
 
-		currently_fullscreen = 1;
-		}
+            currently_fullscreen = 1;
+        }
+    }
 
-
-		
-	return 1;
+    return 1;
 }
 
 int ph_LeaveFullScreen(_THIS )
 {
-   PgDisplaySettings_t mymode_settings;
+    PgDisplaySettings_t mymode_settings;
        
-	if ( currently_fullscreen )
-	{
-		PdDirectStop(OCImage.direct_context);
-		PdReleaseDirectContext(OCImage.direct_context);
+    if (currently_fullscreen)
+    {
+        if ((this->screen->flags & SDL_OPENGL)==SDL_OPENGL)
+        {
+#ifdef HAVE_OPENGL
+#endif /* HAVE_OPENGL */
+           return 0;
+        }
+        else
+        {
+            PdDirectStop(OCImage.direct_context);
+            PdReleaseDirectContext(OCImage.direct_context);
 
-		//Restore old video mode	
-		if (old_video_mode != -1)
-		{
-			mymode_settings.mode= (unsigned short) old_video_mode;
-			mymode_settings.refresh= (unsigned short) old_refresh_rate;
-			mymode_settings.flags = 0;
-			if(PgSetVideoMode(&mymode_settings) < 0)
-                        {
-                           fprintf(stderr,"error: PgSetVideoMode failed\n");
-        	        }
-		}
-	
-		old_video_mode=-1;
-		old_refresh_rate=-1;	
-	
-		// Restore cursor	
-	
-	}
-	return 1;
+            /* Restore old video mode */
+            if (old_video_mode != -1)
+            {
+                mymode_settings.mode= (unsigned short) old_video_mode;
+                mymode_settings.refresh= (unsigned short) old_refresh_rate;
+                mymode_settings.flags = 0;
+                if (PgSetVideoMode(&mymode_settings) < 0)
+                {
+                    fprintf(stderr,"error: PgSetVideoMode failed\n");
+                }
+            }
+
+            old_video_mode=-1;
+            old_refresh_rate=-1;	
+        }
+
+    }
+    return 1;
 }