diff src/video/riscos/SDL_riscosvideo.c @ 1662:782fd950bd46 SDL-1.3

Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API. WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid. The code is now run through a consistent indent format: indent -i4 -nut -nsc -br -ce The headers are being converted to automatically generate doxygen documentation.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 28 May 2006 13:04:16 +0000
parents 066236f0cbf0
children 4da1ee79c9af
line wrap: on
line diff
--- a/src/video/riscos/SDL_riscosvideo.c	Sun May 21 17:27:13 2006 +0000
+++ b/src/video/riscos/SDL_riscosvideo.c	Sun May 28 13:04:16 2006 +0000
@@ -48,269 +48,289 @@
 #define RISCOSVID_DRIVER_NAME "riscos"
 
 /* Initialization/Query functions */
-static int RISCOS_VideoInit(_THIS, SDL_PixelFormat *vformat);
-static void RISCOS_VideoQuit(_THIS);
-
-static SDL_Rect **RISCOS_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags);
-static SDL_Surface *RISCOS_SetVideoMode(_THIS, SDL_Surface *current, int width, int height, int bpp, Uint32 flags);
+static int RISCOS_VideoInit (_THIS, SDL_PixelFormat * vformat);
+static void RISCOS_VideoQuit (_THIS);
 
-int RISCOS_GetWmInfo(_THIS, SDL_SysWMinfo *info);
+static SDL_Rect **RISCOS_ListModes (_THIS, SDL_PixelFormat * format,
+                                    Uint32 flags);
+static SDL_Surface *RISCOS_SetVideoMode (_THIS, SDL_Surface * current,
+                                         int width, int height, int bpp,
+                                         Uint32 flags);
 
-int RISCOS_ToggleFullScreen(_THIS, int fullscreen);
+int RISCOS_GetWmInfo (_THIS, SDL_SysWMinfo * info);
+
+int RISCOS_ToggleFullScreen (_THIS, int fullscreen);
 /* Mouse checking */
-void RISCOS_CheckMouseMode(_THIS);
-extern SDL_GrabMode RISCOS_GrabInput(_THIS, SDL_GrabMode mode);
+void RISCOS_CheckMouseMode (_THIS);
+extern SDL_GrabMode RISCOS_GrabInput (_THIS, SDL_GrabMode mode);
 
 /* Fullscreen mode functions */
-extern SDL_Surface *FULLSCREEN_SetVideoMode(_THIS, SDL_Surface *current, int width, int height, int bpp, Uint32 flags);
-extern void FULLSCREEN_BuildModeList(_THIS);
-extern void	FULLSCREEN_SetDeviceMode(_THIS);
-extern int FULLSCREEN_ToggleFromWimp(_THIS);
+extern SDL_Surface *FULLSCREEN_SetVideoMode (_THIS, SDL_Surface * current,
+                                             int width, int height, int bpp,
+                                             Uint32 flags);
+extern void FULLSCREEN_BuildModeList (_THIS);
+extern void FULLSCREEN_SetDeviceMode (_THIS);
+extern int FULLSCREEN_ToggleFromWimp (_THIS);
 
 /* Wimp mode functions */
-extern SDL_Surface *WIMP_SetVideoMode(_THIS, SDL_Surface *current,	int width, int height, int bpp, Uint32 flags);
-extern void WIMP_DeleteWindow(_THIS);
-extern int WIMP_ToggleFromFullScreen(_THIS);
+extern SDL_Surface *WIMP_SetVideoMode (_THIS, SDL_Surface * current,
+                                       int width, int height, int bpp,
+                                       Uint32 flags);
+extern void WIMP_DeleteWindow (_THIS);
+extern int WIMP_ToggleFromFullScreen (_THIS);
 
 /* Hardware surface functions - common to WIMP and FULLSCREEN */
-static int RISCOS_AllocHWSurface(_THIS, SDL_Surface *surface);
-static int RISCOS_LockHWSurface(_THIS, SDL_Surface *surface);
-static void RISCOS_UnlockHWSurface(_THIS, SDL_Surface *surface);
-static void RISCOS_FreeHWSurface(_THIS, SDL_Surface *surface);
+static int RISCOS_AllocHWSurface (_THIS, SDL_Surface * surface);
+static int RISCOS_LockHWSurface (_THIS, SDL_Surface * surface);
+static void RISCOS_UnlockHWSurface (_THIS, SDL_Surface * surface);
+static void RISCOS_FreeHWSurface (_THIS, SDL_Surface * surface);
 
 /* RISC OS driver bootstrap functions */
 
-static int RISCOS_Available(void)
+static int
+RISCOS_Available (void)
 {
-	return(1);
+    return (1);
 }
 
-static void RISCOS_DeleteDevice(SDL_VideoDevice *device)
+static void
+RISCOS_DeleteDevice (SDL_VideoDevice * device)
 {
-	SDL_free(device->hidden);
-	SDL_free(device);
+    SDL_free (device->hidden);
+    SDL_free (device);
 }
 
-static SDL_VideoDevice *RISCOS_CreateDevice(int devindex)
+static SDL_VideoDevice *
+RISCOS_CreateDevice (int devindex)
 {
-	SDL_VideoDevice *device;
-
-	/* Initialize all variables that we clean on shutdown */
-	device = (SDL_VideoDevice *)SDL_malloc(sizeof(SDL_VideoDevice));
-	if ( device ) {
-		SDL_memset(device, 0, (sizeof *device));
-		device->hidden = (struct SDL_PrivateVideoData *)
-				SDL_malloc((sizeof *device->hidden));
-	}
-	if ( (device == NULL) || (device->hidden == NULL) ) {
-		SDL_OutOfMemory();
-		if ( device ) {
-			SDL_free(device);
-		}
-		return(0);
-	}
-	SDL_memset(device->hidden, 0, (sizeof *device->hidden));
+    SDL_VideoDevice *device;
 
-	/* Set the function pointers */
-	device->VideoInit = RISCOS_VideoInit;
-	device->VideoQuit = RISCOS_VideoQuit;
+    /* Initialize all variables that we clean on shutdown */
+    device = (SDL_VideoDevice *) SDL_malloc (sizeof (SDL_VideoDevice));
+    if (device) {
+        SDL_memset (device, 0, (sizeof *device));
+        device->hidden = (struct SDL_PrivateVideoData *)
+            SDL_malloc ((sizeof *device->hidden));
+    }
+    if ((device == NULL) || (device->hidden == NULL)) {
+        SDL_OutOfMemory ();
+        if (device) {
+            SDL_free (device);
+        }
+        return (0);
+    }
+    SDL_memset (device->hidden, 0, (sizeof *device->hidden));
 
-	device->ListModes = RISCOS_ListModes;
-	device->SetVideoMode = RISCOS_SetVideoMode;
-	device->CreateYUVOverlay = NULL;
-	device->AllocHWSurface = RISCOS_AllocHWSurface;
-	device->CheckHWBlit = NULL;
-	device->FillHWRect = NULL;
-	device->SetHWColorKey = NULL;
-	device->SetHWAlpha = NULL;
-	device->LockHWSurface = RISCOS_LockHWSurface;
-	device->UnlockHWSurface = RISCOS_UnlockHWSurface;
-	device->FreeHWSurface = RISCOS_FreeHWSurface;
-	
-	device->FreeWMCursor = RISCOS_FreeWMCursor;
-	device->CreateWMCursor = RISCOS_CreateWMCursor;
-	device->CheckMouseMode = RISCOS_CheckMouseMode;
+    /* Set the function pointers */
+    device->VideoInit = RISCOS_VideoInit;
+    device->VideoQuit = RISCOS_VideoQuit;
+
+    device->ListModes = RISCOS_ListModes;
+    device->SetVideoMode = RISCOS_SetVideoMode;
+    device->CreateYUVOverlay = NULL;
+    device->AllocHWSurface = RISCOS_AllocHWSurface;
+    device->CheckHWBlit = NULL;
+    device->FillHWRect = NULL;
+    device->SetHWColorKey = NULL;
+    device->SetHWAlpha = NULL;
+    device->LockHWSurface = RISCOS_LockHWSurface;
+    device->UnlockHWSurface = RISCOS_UnlockHWSurface;
+    device->FreeHWSurface = RISCOS_FreeHWSurface;
+
+    device->FreeWMCursor = RISCOS_FreeWMCursor;
+    device->CreateWMCursor = RISCOS_CreateWMCursor;
+    device->CheckMouseMode = RISCOS_CheckMouseMode;
     device->GrabInput = RISCOS_GrabInput;
 
-	device->InitOSKeymap = RISCOS_InitOSKeymap;
+    device->InitOSKeymap = RISCOS_InitOSKeymap;
 
-	device->GetWMInfo = RISCOS_GetWmInfo;
+    device->GetWMInfo = RISCOS_GetWmInfo;
 
-	device->free = RISCOS_DeleteDevice;
+    device->free = RISCOS_DeleteDevice;
 
 /* Can't get Toggle screen to work if program starts up in Full screen mode so
    disable it here and re-enable it when a wimp screen is chosen */
-    device->ToggleFullScreen = NULL; /*RISCOS_ToggleFullScreen;*/
+    device->ToggleFullScreen = NULL;    /*RISCOS_ToggleFullScreen; */
 
-	/* Set other entries for fullscreen mode */
-	FULLSCREEN_SetDeviceMode(device);
+    /* Set other entries for fullscreen mode */
+    FULLSCREEN_SetDeviceMode (device);
 
-	/* Mouse pointer needs to use the WIMP ShowCursor version so
-	   that it doesn't modify the pointer until the SDL Window is
-	   entered or the application goes full screen */
-	device->ShowWMCursor = WIMP_ShowWMCursor;
+    /* Mouse pointer needs to use the WIMP ShowCursor version so
+       that it doesn't modify the pointer until the SDL Window is
+       entered or the application goes full screen */
+    device->ShowWMCursor = WIMP_ShowWMCursor;
 
-	return device;
+    return device;
 }
 
 VideoBootStrap RISCOS_bootstrap = {
-	RISCOSVID_DRIVER_NAME, "RISC OS video driver",
-	RISCOS_Available, RISCOS_CreateDevice
+    RISCOSVID_DRIVER_NAME, "RISC OS video driver",
+    RISCOS_Available, RISCOS_CreateDevice
 };
 
 
-int RISCOS_VideoInit(_THIS, SDL_PixelFormat *vformat)
+int
+RISCOS_VideoInit (_THIS, SDL_PixelFormat * vformat)
 {
-	_kernel_swi_regs regs;
-	int vars[4], vals[3];
+    _kernel_swi_regs regs;
+    int vars[4], vals[3];
 
-	if (RISCOS_InitTask() == 0)
-	{
-		SDL_SetError("Unable to start task");
-		return 0;
-	}
+    if (RISCOS_InitTask () == 0) {
+        SDL_SetError ("Unable to start task");
+        return 0;
+    }
 
-	vars[0] = 9;  /* Log base 2 bpp */
-	vars[1] = 11; /* XWndLimit - num x pixels -1 */
-	vars[2] = 12; /* YWndLimit - num y pixels -1 */
-	vars[3] = -1; /* Terminate list */
-	regs.r[0] = (int)vars;
-	regs.r[1] = (int)vals;
+    vars[0] = 9;                /* Log base 2 bpp */
+    vars[1] = 11;               /* XWndLimit - num x pixels -1 */
+    vars[2] = 12;               /* YWndLimit - num y pixels -1 */
+    vars[3] = -1;               /* Terminate list */
+    regs.r[0] = (int) vars;
+    regs.r[1] = (int) vals;
 
-	_kernel_swi(OS_ReadVduVariables, &regs, &regs);
-	vformat->BitsPerPixel = (1 << vals[0]);
+    _kernel_swi (OS_ReadVduVariables, &regs, &regs);
+    vformat->BitsPerPixel = (1 << vals[0]);
 
-	/* Determine the current screen size */
-	this->info.current_w = vals[1] + 1;
-	this->info.current_h = vals[2] + 1;
+    /* Determine the current screen size */
+    this->info.current_w = vals[1] + 1;
+    this->info.current_h = vals[2] + 1;
 
-	/* Minimum bpp for SDL is 8 */
-	if (vformat->BitsPerPixel < 8) vformat->BitsPerPixel = 8;
+    /* Minimum bpp for SDL is 8 */
+    if (vformat->BitsPerPixel < 8)
+        vformat->BitsPerPixel = 8;
 
 
-	switch (vformat->BitsPerPixel)
-	{
-		case 15:
-		case 16:
-			vformat->Bmask = 0x00007c00;
-			vformat->Gmask = 0x000003e0;
-			vformat->Rmask = 0x0000001f;
-			vformat->BitsPerPixel = 16; /* SDL wants actual number of bits used */
-			vformat->BytesPerPixel = 2;
-			break;
+    switch (vformat->BitsPerPixel) {
+    case 15:
+    case 16:
+        vformat->Bmask = 0x00007c00;
+        vformat->Gmask = 0x000003e0;
+        vformat->Rmask = 0x0000001f;
+        vformat->BitsPerPixel = 16;     /* SDL wants actual number of bits used */
+        vformat->BytesPerPixel = 2;
+        break;
 
-		case 24:
-		case 32:
-			vformat->Bmask = 0x00ff0000;
-			vformat->Gmask = 0x0000ff00;
-			vformat->Rmask = 0x000000ff;
-			vformat->BytesPerPixel = 4;
-			break;
+    case 24:
+    case 32:
+        vformat->Bmask = 0x00ff0000;
+        vformat->Gmask = 0x0000ff00;
+        vformat->Rmask = 0x000000ff;
+        vformat->BytesPerPixel = 4;
+        break;
 
-		default:
-			vformat->Bmask = 0;
-			vformat->Gmask = 0;
-			vformat->Rmask = 0;
-			vformat->BytesPerPixel = 1;			
-			break;
-	}
+    default:
+        vformat->Bmask = 0;
+        vformat->Gmask = 0;
+        vformat->Rmask = 0;
+        vformat->BytesPerPixel = 1;
+        break;
+    }
 
-	/* Fill in some window manager capabilities */
-	this->info.wm_available = 1;
+    /* Fill in some window manager capabilities */
+    this->info.wm_available = 1;
 
-	/* We're done! */
-	return(0);
+    /* We're done! */
+    return (0);
 }
 
 /* Note:  If we are terminated, this could be called in the middle of
    another SDL video routine -- notably UpdateRects.
 */
-void RISCOS_VideoQuit(_THIS)
+void
+RISCOS_VideoQuit (_THIS)
 {
-	RISCOS_ExitTask();
+    RISCOS_ExitTask ();
 
-	if (this->hidden->alloc_bank) SDL_free(this->hidden->alloc_bank);
-	this->hidden->alloc_bank = 0;
+    if (this->hidden->alloc_bank)
+        SDL_free (this->hidden->alloc_bank);
+    this->hidden->alloc_bank = 0;
 }
 
 
-SDL_Rect **RISCOS_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags)
+SDL_Rect **
+RISCOS_ListModes (_THIS, SDL_PixelFormat * format, Uint32 flags)
 {
-	if (flags & SDL_FULLSCREEN)
-	{
-		/* Build mode list when first required. */
-		if (SDL_nummodes[0] == 0) FULLSCREEN_BuildModeList(this);
+    if (flags & SDL_FULLSCREEN) {
+        /* Build mode list when first required. */
+        if (SDL_nummodes[0] == 0)
+            FULLSCREEN_BuildModeList (this);
 
-		return(SDL_modelist[((format->BitsPerPixel+7)/8)-1]);
-	} else
-		return (SDL_Rect **)-1;
+        return (SDL_modelist[((format->BitsPerPixel + 7) / 8) - 1]);
+    } else
+        return (SDL_Rect **) - 1;
 }
 
 
 /* Set up video mode */
-SDL_Surface *RISCOS_SetVideoMode(_THIS, SDL_Surface *current,
-				int width, int height, int bpp, Uint32 flags)
+SDL_Surface *
+RISCOS_SetVideoMode (_THIS, SDL_Surface * current,
+                     int width, int height, int bpp, Uint32 flags)
 {
-	if (flags & SDL_FULLSCREEN)
-	{
-	    RISCOS_StoreWimpMode();
-		/* Dump wimp window on switch to full screen */
-  	    if (this->hidden->window_handle) WIMP_DeleteWindow(this);
+    if (flags & SDL_FULLSCREEN) {
+        RISCOS_StoreWimpMode ();
+        /* Dump wimp window on switch to full screen */
+        if (this->hidden->window_handle)
+            WIMP_DeleteWindow (this);
 
-		return FULLSCREEN_SetVideoMode(this, current, width, height, bpp, flags);
-	} else
-	{
-	    RISCOS_RestoreWimpMode();
-		return WIMP_SetVideoMode(this, current, width, height, bpp, flags);
-	}
+        return FULLSCREEN_SetVideoMode (this, current, width, height, bpp,
+                                        flags);
+    } else {
+        RISCOS_RestoreWimpMode ();
+        return WIMP_SetVideoMode (this, current, width, height, bpp, flags);
+    }
 }
 
 
 /* We don't actually allow hardware surfaces other than the main one */
-static int RISCOS_AllocHWSurface(_THIS, SDL_Surface *surface)
+static int
+RISCOS_AllocHWSurface (_THIS, SDL_Surface * surface)
 {
-	return(-1);
+    return (-1);
 }
-static void RISCOS_FreeHWSurface(_THIS, SDL_Surface *surface)
+static void
+RISCOS_FreeHWSurface (_THIS, SDL_Surface * surface)
 {
-	return;
+    return;
 }
 
 /* We need to wait for vertical retrace on page flipped displays */
-static int RISCOS_LockHWSurface(_THIS, SDL_Surface *surface)
+static int
+RISCOS_LockHWSurface (_THIS, SDL_Surface * surface)
 {
-	return(0);
+    return (0);
 }
 
-static void RISCOS_UnlockHWSurface(_THIS, SDL_Surface *surface)
+static void
+RISCOS_UnlockHWSurface (_THIS, SDL_Surface * surface)
 {
-	return;
+    return;
 }
 
 
-int RISCOS_GetWmInfo(_THIS, SDL_SysWMinfo *info)
+int
+RISCOS_GetWmInfo (_THIS, SDL_SysWMinfo * info)
 {
-	SDL_VERSION(&(info->version));
-	info->wimpVersion = RISCOS_GetWimpVersion();
-	info->taskHandle = RISCOS_GetTaskHandle();
-	info->window = this->hidden->window_handle;
+    SDL_VERSION (&(info->version));
+    info->wimpVersion = RISCOS_GetWimpVersion ();
+    info->taskHandle = RISCOS_GetTaskHandle ();
+    info->window = this->hidden->window_handle;
 
-	return 1;
+    return 1;
 }
+
 /* Toggle full screen mode.
    Returns 1 if successful otherwise 0
 */
 
-int RISCOS_ToggleFullScreen(_THIS, int fullscreen)
+int
+RISCOS_ToggleFullScreen (_THIS, int fullscreen)
 {
-    if (fullscreen)
-    {
-       return FULLSCREEN_ToggleFromWimp(this);
-    } else
-    {
-       return WIMP_ToggleFromFullScreen(this);
+    if (fullscreen) {
+        return FULLSCREEN_ToggleFromWimp (this);
+    } else {
+        return WIMP_ToggleFromFullScreen (this);
     }
 
-   return 0;
+    return 0;
 }
 
+/* vi: set ts=4 sw=4 expandtab: */