[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48567] branches/soc-2011-tomato/source: most keyboard events working again, but no scrub

Campbell Barton ideasman42 at gmail.com
Wed Jul 4 00:11:02 CEST 2012


Revision: 48567
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48567
Author:   campbellbarton
Date:     2012-07-03 22:10:59 +0000 (Tue, 03 Jul 2012)
Log Message:
-----------
most keyboard events working again, but no scrub

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c
    branches/soc-2011-tomato/source/creator/creator.c

Modified: branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c
===================================================================
--- branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c	2012-07-03 22:04:06 UTC (rev 48566)
+++ branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c	2012-07-03 22:10:59 UTC (rev 48567)
@@ -139,58 +139,52 @@
 }
 
 /* implementation */
-#if 0
-static int qreadN(short *val)
+static void playanim_event_qual_update(void)
 {
-#if 0 // XXX25
-	char ascii;
-	int event = screen_qread(val, &ascii);
-#else
-	int event = 123456789;
-#endif
+	int val;
 
-	switch (event) {
-		case LEFTMOUSE:
-			if (*val) qualN |= LMOUSE;
-			else qualN &= ~LMOUSE;
-			break;
-		case MIDDLEMOUSE:
-			if (*val) qualN |= MMOUSE;
-			else qualN &= ~MMOUSE;
-			break;
-		case RIGHTMOUSE:
-			if (*val) qualN |= RMOUSE;
-			else qualN &= ~RMOUSE;
-			break;
-		case LEFTSHIFTKEY:
-			if (*val) qualN |= LSHIFT;
-			else qualN &= ~LSHIFT;
-			break;
-		case RIGHTSHIFTKEY:
-			if (*val) qualN |= RSHIFT;
-			else qualN &= ~RSHIFT;
-			break;
-		case LEFTCTRLKEY:
-			if (*val) qualN |= LCTRL;
-			else qualN &= ~LCTRL;
-			break;
-		case RIGHTCTRLKEY:
-			if (*val) qualN |= RCTRL;
-			else qualN &= ~RCTRL;
-			break;
-		case LEFTALTKEY:
-			if (*val) qualN |= LALT;
-			else qualN &= ~LALT;
-			break;
-		case RIGHTALTKEY:
-			if (*val) qualN |= RALT;
-			else qualN &= ~RALT;
-			break;
-	}
+	/* Shift */
+	GHOST_GetModifierKeyState(g_system, GHOST_kModifierKeyLeftShift, &val);
+	if (val) qualN |=  LSHIFT;
+	else     qualN &= ~LSHIFT;
 
-	return(event);
+	GHOST_GetModifierKeyState(g_system, GHOST_kModifierKeyRightShift, &val);
+	if (val) qualN |=  RSHIFT;
+	else     qualN &= ~RSHIFT;
+
+	/* Control */
+	GHOST_GetModifierKeyState(g_system, GHOST_kModifierKeyLeftControl, &val);
+	if (val) qualN |=  LCTRL;
+	else     qualN &= ~LCTRL;
+
+	GHOST_GetModifierKeyState(g_system, GHOST_kModifierKeyRightControl, &val);
+	if (val) qualN |=  RCTRL;
+	else     qualN &= ~RCTRL;
+
+	/* Alt */
+	GHOST_GetModifierKeyState(g_system, GHOST_kModifierKeyLeftAlt, &val);
+	if (val) qualN |=  LCTRL;
+	else     qualN &= ~LCTRL;
+
+	GHOST_GetModifierKeyState(g_system, GHOST_kModifierKeyRightAlt, &val);
+	if (val) qualN |=  RCTRL;
+	else     qualN &= ~RCTRL;
+
+	/* LMB */
+	GHOST_GetButtonState(g_system, GHOST_kButtonMaskLeft, &val);
+	if (val) qualN |=  LMOUSE;
+	else     qualN &= ~LMOUSE;
+
+	/* MMB */
+	GHOST_GetButtonState(g_system, GHOST_kButtonMaskMiddle, &val);
+	if (val) qualN |=  MMOUSE;
+	else     qualN &= ~MMOUSE;
+
+	/* RMB */
+	GHOST_GetButtonState(g_system, GHOST_kButtonMaskRight, &val);
+	if (val) qualN |=  RMOUSE;
+	else     qualN &= ~RMOUSE;
 }
-#endif
 
 typedef struct PlayAnimPict {
 	struct PlayAnimPict *next, *prev;
@@ -244,8 +238,7 @@
 
 	pupdate_time();
 
-	//if (picture && (qualN & (SHIFT | LMOUSE))) {
-	if (picture && fontid != -1) {
+	if (picture && (qualN & (SHIFT | LMOUSE)) && (fontid != -1)) {
 		char str[32 + FILE_MAX];
 		cpack(-1);
 //		glRasterPos2f(0.02f, 0.03f);
@@ -402,279 +395,271 @@
 static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr ps_void)
 {
 	PlayState *ps = (PlayState *)ps_void;
-	{
-		GHOST_TEventType type = GHOST_GetEventType(evt);
-		int val;
-		int event;
 
-		/* convert ghost event into value keyboard or mouse */
-		val = ELEM(type, GHOST_kEventKeyDown, GHOST_kEventButtonDown);
+	GHOST_TEventType type = GHOST_GetEventType(evt);
+	int val;
 
-		if (ps->wait2 && ps->stopped) {
-			ps->stopped = FALSE;
-		}
+	playanim_event_qual_update();
 
-		switch (type) {
-			case GHOST_kEventWindowSize:
-			case GHOST_kEventWindowMove:
-			{
-				int sizex, sizey;
+	/* convert ghost event into value keyboard or mouse */
+	val = ELEM(type, GHOST_kEventKeyDown, GHOST_kEventButtonDown);
 
-				playanim_window_get_size(&sizex, &sizey);
-				GHOST_ActivateWindowDrawingContext(g_window);
+	if (ps->wait2 && ps->stopped) {
+		ps->stopped = FALSE;
+	}
 
-				glViewport(0, 0, sizex, sizey);
-				glScissor(0, 0, sizex, sizey);
+	switch (type) {
+		case GHOST_kEventKeyDown:
+		case GHOST_kEventKeyUp:
+		{
+			GHOST_TEventKeyData *key_data;
 
-				zoomx = (float) sizex / ps->ibufx;
-				zoomy = (float) sizey / ps->ibufy;
-				zoomx = floor(zoomx + 0.5);
-				zoomy = floor(zoomy + 0.5);
-				if (zoomx < 1.0) zoomx = 1.0;
-				if (zoomy < 1.0) zoomy = 1.0;
-
-				sizex = zoomx * ps->ibufx;
-				sizey = zoomy * ps->ibufy;
-
-				glPixelZoom(zoomx, zoomy);
-				glEnable(GL_DITHER);
-				ptottime = 0.0;
-				toscreen(ps->picture, ps->curframe_ibuf, ps->fontid);
-//XXX25				while (qtest()) qreadN(&val);
-
-				break;
-			}
-			case GHOST_kEventQuit:
-			case GHOST_kEventWindowClose:
-			{
-				ps->go = FALSE;
-				break;
-			}
-			default:
-				/* quiet warnings */
-				break;
-		}
-
-		return 1; // XXX25
-
-		event = -1;
-
-
-//XXX25		int event = qreadN(&val);
-		/* printf("%d %d\n", event, val); */
-
-		if (ps->wait2) {
-			pupdate_time();
-			ptottime = 0;
-		}
-		switch (event) {
-			case AKEY:
-				if (val)
-					ps->noskip = !ps->noskip;
-				break;
-			case PKEY:
-				if (val)
-					ps->pingpong = !ps->pingpong;
-				break;
-			case SLASHKEY:
-				if (val) {
-					if (qualN & SHIFT) {
-						if (ps->curframe_ibuf)
-							printf(" Name: %s | Speed: %.2f frames/s\n", ps->curframe_ibuf->name, fstep / swaptime);
+			key_data = (GHOST_TEventKeyData *)GHOST_GetEventData(evt);
+			switch (key_data->key) {
+				case GHOST_kKeyA:
+					if (val) ps->noskip = !ps->noskip;
+					break;
+				case GHOST_kKeyP:
+					if (val) ps->pingpong = !ps->pingpong;
+					break;
+				case GHOST_kKeyNumpad1:
+					if (val) swaptime = fstep / 60.0;
+					break;
+				case GHOST_kKeyNumpad2:
+					if (val) swaptime = fstep / 50.0;
+					break;
+				case GHOST_kKeyNumpad3:
+					if (val) swaptime = fstep / 30.0;
+					break;
+				case GHOST_kKeyNumpad4:
+					if (qualN & SHIFT)
+						swaptime = fstep / 24.0;
+					else
+						swaptime = fstep / 25.0;
+					break;
+				case GHOST_kKeyNumpad5:
+					if (val) swaptime = fstep / 20.0;
+					break;
+				case GHOST_kKeyNumpad6:
+					if (val) swaptime = fstep / 15.0;
+					break;
+				case GHOST_kKeyNumpad7:
+					if (val) swaptime = fstep / 12.0;
+					break;
+				case GHOST_kKeyNumpad8:
+					if (val) swaptime = fstep / 10.0;
+					break;
+				case GHOST_kKeyNumpad9:
+					if (val) swaptime = fstep / 6.0;
+					break;
+				case GHOST_kKeyLeftArrow:
+					if (val) {
+						ps->sstep = TRUE;
+						ps->wait2 = FALSE;
+						if (qualN & SHIFT) {
+							ps->picture = picsbase->first;
+							ps->next = 0;
+						}
+						else {
+							ps->next = -1;
+						}
 					}
-					else {
-						swaptime = fstep / 5.0;
+					break;
+				case GHOST_kKeyDownArrow:
+					if (val) {
+						ps->wait2 = FALSE;
+						if (qualN & SHIFT) {
+							ps->next = ps->direction = -1;
+						}
+						else {
+							ps->next = -10;
+							ps->sstep = TRUE;
+						}
 					}
-				}
-				break;
-			case LEFTARROWKEY:
-				if (val) {
-					ps->sstep = TRUE;
-					ps->wait2 = FALSE;
-					if (qualN & SHIFT) {
-						ps->picture = picsbase->first;
-						ps->next = 0;
+					break;
+				case GHOST_kKeyRightArrow:
+					if (val) {
+						ps->sstep = TRUE;
+						ps->wait2 = FALSE;
+						if (qualN & SHIFT) {
+							ps->picture = picsbase->last;
+							ps->next = 0;
+						}
+						else {
+							ps->next = 1;
+						}
 					}
-					else {
-						ps->next = -1;
+					break;
+				case GHOST_kKeyUpArrow:
+					if (val) {
+						ps->wait2 = FALSE;
+						if (qualN & SHIFT) {
+							ps->next = ps->direction = 1;
+						}
+						else {
+							ps->next = 10;
+							ps->sstep = TRUE;
+						}
 					}
-				}
-				break;
-			case DOWNARROWKEY:
-				if (val) {
-					ps->wait2 = FALSE;
-					if (qualN & SHIFT) {
-						ps->next = ps->direction = -1;
+					break;
+
+				case GHOST_kKeySlash:
+				case GHOST_kKeyNumpadSlash:
+					if (val) {
+						if (qualN & SHIFT) {
+							if (ps->curframe_ibuf)
+								printf(" Name: %s | Speed: %.2f frames/s\n", ps->curframe_ibuf->name, fstep / swaptime);
+						}
+						else {
+							swaptime = fstep / 5.0;
+						}
 					}
-					else {
-						ps->next = -10;
+					break;
+#if 0
+				case LEFTMOUSE:
+				case MOUSEX:
+					if (qualN & LMOUSE) {
+						int sizex, sizey;
+						int i;
+						playanim_window_get_size(&sizex, &sizey);
+						ps->picture = picsbase->first;
+						i = 0;
+						while (ps->picture) {
+							i++;
+							ps->picture = ps->picture->next;
+						}
+						i = (i * val) / sizex;
+						ps->picture = picsbase->first;
+						for (; i > 0; i--) {
+							if (ps->picture->next == NULL) break;
+							ps->picture = ps->picture->next;
+						}
 						ps->sstep = TRUE;
-					}
-				}
-				break;
-			case RIGHTARROWKEY:
-				if (val) {
-					ps->sstep = TRUE;
-					ps->wait2 = FALSE;
-					if (qualN & SHIFT) {
-						ps->picture = picsbase->last;
+						ps->wait2 = FALSE;
 						ps->next = 0;
 					}
-					else {
-						ps->next = 1;
+					break;
+#endif
+				case GHOST_kKeyEqual:
+					if (val) {
+						if (qualN & SHIFT) {
+							ps->pause++;
+							printf("pause:%d\n", ps->pause);
+						}
+						else {
+							swaptime /= 1.1;
+						}
 					}
-				}
-				break;
-			case UPARROWKEY:
-				if (val) {
-					ps->wait2 = FALSE;
-					if (qualN & SHIFT) {
-						ps->next = ps->direction = 1;
+					break;
+				case GHOST_kKeyMinus:
+					if (val) {
+						if (qualN & SHIFT) {
+							ps->pause--;
+							printf("pause:%d\n", ps->pause);
+						}
+						else {
+							swaptime *= 1.1;
+						}
 					}
-					else {
-						ps->next = 10;
-						ps->sstep = TRUE;
+					break;
+				case GHOST_kKeyNumpad0:
+					if (val) {
+						if (ps->once) {
+							ps->once = ps->wait2 = FALSE;
+						}
+						else {
+							ps->picture = NULL;
+							ps->once = TRUE;
+							ps->wait2 = FALSE;
+						}
 					}
-				}
-				break;
-			case LEFTMOUSE:
-			case MOUSEX:
-				if (qualN & LMOUSE) {
-					int sizex, sizey;
-					int i;
-					playanim_window_get_size(&sizex, &sizey);
-					ps->picture = picsbase->first;
-					i = 0;
-					while (ps->picture) {
-						i++;
-						ps->picture = ps->picture->next;
+					break;
+				case GHOST_kKeyEnter:
+				case GHOST_kKeyNumpadEnter:
+					if (val) {
+						ps->wait2 = ps->sstep = FALSE;
 					}
-					i = (i * val) / sizex;
-					ps->picture = picsbase->first;
-					for (; i > 0; i--) {
-						if (ps->picture->next == NULL) break;
-						ps->picture = ps->picture->next;
+					break;
+				case GHOST_kKeyNumpadPeriod:
+					if (val) {
+						if (ps->sstep) ps->wait2 = FALSE;
+						else {
+							ps->sstep = TRUE;
+							ps->wait2 = !ps->wait2;
+						}
 					}

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list