diff src/video/gem/SDL_gemmouse.c @ 1895:c121d94672cb

SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 10 Jul 2006 21:04:37 +0000
parents 417f2af2bd52
children 091bb215baf9
line wrap: on
line diff
--- a/src/video/gem/SDL_gemmouse.c	Thu Jul 06 18:01:37 2006 +0000
+++ b/src/video/gem/SDL_gemmouse.c	Mon Jul 10 21:04:37 2006 +0000
@@ -33,7 +33,6 @@
 #include "../../events/SDL_events_c.h"
 #include "../SDL_cursor_c.h"
 #include "SDL_gemmouse_c.h"
-#include "SDL_gemvideo.h"
 
 /* Defines */
 
@@ -42,144 +41,138 @@
 #define MAXCURWIDTH 16
 #define MAXCURHEIGHT 16
 
-void GEM_FreeWMCursor(_THIS, WMcursor *cursor)
+/* The implementation dependent data for the window manager cursor */
+struct WMcursor
 {
-#ifdef DEBUG_VIDEO_GEM
-	printf("sdl:video:gem: free cursor\n");
-#endif
+    MFORM *mform_p;
+};
+
 
-	if (cursor == NULL)
-		return;
-	
-	graf_mouse(ARROW, NULL);
+void
+GEM_FreeWMCursor(_THIS, WMcursor * cursor)
+{
+    if (cursor == NULL)
+        return;
 
-	if (cursor->mform_p != NULL)
-		SDL_free(cursor->mform_p);
+    graf_mouse(ARROW, NULL);
 
-	SDL_free(cursor);
+    if (cursor->mform_p != NULL)
+        SDL_free(cursor->mform_p);
+
+    SDL_free(cursor);
 }
 
-WMcursor *GEM_CreateWMCursor(_THIS,
-		Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y)
+WMcursor *
+GEM_CreateWMCursor(_THIS,
+                   Uint8 * data, Uint8 * mask, int w, int h, int hot_x,
+                   int hot_y)
 {
-	WMcursor *cursor;
-	MFORM *new_mform;
-	int i;
+    WMcursor *cursor;
+    MFORM *new_mform;
+    int i;
+
+    /* Check the size */
+    if ((w > MAXCURWIDTH) || (h > MAXCURHEIGHT)) {
+        SDL_SetError("Only cursors of dimension (%dx%d) are allowed",
+                     MAXCURWIDTH, MAXCURHEIGHT);
+        return (NULL);
+    }
+
+    /* Allocate the cursor memory */
+    cursor = (WMcursor *) SDL_malloc(sizeof(WMcursor));
+    if (cursor == NULL) {
+        SDL_OutOfMemory();
+        return (NULL);
+    }
+
+    /* Allocate mform */
+    new_mform = (MFORM *) SDL_malloc(sizeof(MFORM));
+    if (new_mform == NULL) {
+        SDL_free(cursor);
+        SDL_OutOfMemory();
+        return (NULL);
+    }
+
+    cursor->mform_p = new_mform;
+
+    new_mform->mf_xhot = hot_x;
+    new_mform->mf_yhot = hot_y;
+    new_mform->mf_nplanes = 1;
+    new_mform->mf_fg = 0;
+    new_mform->mf_bg = 1;
+
+    for (i = 0; i < MAXCURHEIGHT; i++) {
+        new_mform->mf_mask[i] = 0;
+        new_mform->mf_data[i] = 0;
+    }
+
+    if (w <= 8) {
+        for (i = 0; i < h; i++) {
+            new_mform->mf_mask[i] = mask[i] << 8;
+            new_mform->mf_data[i] = data[i] << 8;
+        }
+    } else {
+        for (i = 0; i < h; i++) {
+            new_mform->mf_mask[i] = mask[i << 1] << 8 | mask[(i << 1) + 1];
+            new_mform->mf_data[i] = data[i << 1] << 8 | data[(i << 1) + 1];
+        }
+    }
 
 #ifdef DEBUG_VIDEO_GEM
-	Uint16 *data1, *mask1;
+    for (i = 0; i < h; i++) {
+        printf("sdl:video:gem: cursor, line %d = 0x%04x\n", i,
+               new_mform->mf_mask[i]);
+    }
 
-	printf("sdl:video:gem: create cursor\n");
+    printf("sdl:video:gem: CreateWMCursor(): done\n");
 #endif
 
-	/* Check the size */
-	if ( (w > MAXCURWIDTH) || (h > MAXCURHEIGHT) ) {
-		SDL_SetError("Only cursors of dimension (%dx%d) are allowed",
-							MAXCURWIDTH, MAXCURHEIGHT);
-		return(NULL);
-	}
-
-	/* Allocate the cursor memory */
-	cursor = (WMcursor *)SDL_malloc(sizeof(WMcursor));
-	if ( cursor == NULL ) {
-		SDL_OutOfMemory();
-		return(NULL);
-	}
-
-	/* Allocate mform */
-	new_mform = (MFORM *)SDL_malloc(sizeof(MFORM));		
-	if (new_mform == NULL) {
-		SDL_free(cursor);
-		SDL_OutOfMemory();
-		return(NULL);
-	}
-
-	cursor->mform_p = new_mform;
-
-	new_mform->mf_xhot = hot_x;
-	new_mform->mf_yhot = hot_y;
-	new_mform->mf_nplanes = 1;
-	new_mform->mf_fg = 0;
-	new_mform->mf_bg = 1;
-
-	for (i=0;i<MAXCURHEIGHT;i++) {
-		new_mform->mf_mask[i]=0;
-		new_mform->mf_data[i]=0;
-#ifdef DEBUG_VIDEO_GEM
-		data1 = (Uint16 *) &data[i<<1];
-		mask1 = (Uint16 *) &mask[i<<1];
-		printf("sdl:video:gem: source: line %d: data=0x%04x, mask=0x%04x\n",
-			i, data1[i], mask1[i]);
-#endif
-	}
-
-	if (w<=8) {
-		for (i=0;i<h;i++) {
-			new_mform->mf_mask[i]= mask[i]<<8;
-			new_mform->mf_data[i]= data[i]<<8;
-		}
-	} else {
-		for (i=0;i<h;i++) {
-			new_mform->mf_mask[i]= (mask[i<<1]<<8) | mask[(i<<1)+1];
-			new_mform->mf_data[i]= (data[i<<1]<<8) | data[(i<<1)+1];
-		}
-	}
-
-#ifdef DEBUG_VIDEO_GEM
-	for (i=0; i<h ;i++) {
-		printf("sdl:video:gem: cursor: line %d: data=0x%04x, mask=0x%04x\n",
-			i, new_mform->mf_data[i], new_mform->mf_mask[i]);
-	}
-
-	printf("sdl:video:gem: CreateWMCursor(): done\n");
-#endif
-
-	return cursor;
+    return cursor;
 }
 
-int GEM_ShowWMCursor(_THIS, WMcursor *cursor)
+int
+GEM_ShowWMCursor(_THIS, WMcursor * cursor)
 {
-	GEM_cursor = cursor;
+/*
 	if (cursor == NULL) {
 		graf_mouse(M_OFF, NULL);
-		GEM_cursor = (void *) -1;
 	} else if (cursor->mform_p) {
 		graf_mouse(USER_DEF, cursor->mform_p);
 	}
-
+*/
 #ifdef DEBUG_VIDEO_GEM
-	printf("sdl:video:gem: ShowWMCursor(0x%08x)\n", (long) cursor);
+    printf("sdl:video:gem: ShowWMCursor(0x%08x)\n", (long) cursor);
 #endif
 
-	return 1;
+    return 1;
 }
 
 #if 0
-void GEM_WarpWMCursor(_THIS, Uint16 x, Uint16 y)
+void
+GEM_WarpWMCursor(_THIS, Uint16 x, Uint16 y)
 {
-	/* This seems to work only on AES 3.4 (Falcon) */
+    /* This seems to work only on AES 3.4 (Falcon) */
 
-	EVNTREC	warpevent;
-	
-	warpevent.ap_event = APPEVNT_MOUSE; 
-	warpevent.ap_value = (x << 16) | y;
+    EVNTREC warpevent;
 
-	appl_tplay(&warpevent, 1, 1000);
+    warpevent.ap_event = APPEVNT_MOUSE;
+    warpevent.ap_value = (x << 16) | y;
+
+    appl_tplay(&warpevent, 1, 1000);
 }
 #endif
 
-void GEM_CheckMouseMode(_THIS)
+void
+GEM_CheckMouseMode(_THIS)
 {
-#ifdef DEBUG_VIDEO_GEM
-	printf("sdl:video:gem: check mouse mode\n");
-#endif
+    /* If the mouse is hidden and input is grabbed, we use relative mode */
+    if ((!(SDL_cursorstate & CURSOR_VISIBLE)) &&
+        /*(this->input_grab != SDL_GRAB_OFF) && *//* Damn GEM can not grab */
+        (SDL_GetAppState() & SDL_APPACTIVE)) {
+        GEM_mouse_relative = SDL_TRUE;
+    } else {
+        GEM_mouse_relative = SDL_FALSE;
+    }
+}
 
-	/* If the mouse is hidden and input is grabbed, we use relative mode */
-	if ( (!(SDL_cursorstate & CURSOR_VISIBLE)) &&
-		/*(this->input_grab != SDL_GRAB_OFF) && */ /* Damn GEM can not grab */
-             (SDL_GetAppState() & SDL_APPACTIVE) ) {
-		GEM_mouse_relative = SDL_TRUE;
-	} else {
-		GEM_mouse_relative = SDL_FALSE;
-	}
-}
+/* vi: set ts=4 sw=4 expandtab: */