Revision: 75446
http://sourceforge.net/p/brlcad/code/75446
Author: starseeker
Date: 2020-04-17 21:12:51 +0000 (Fri, 17 Apr 2020)
Log Message:
-----------
remove the last calls to xvars in MGED
Modified Paths:
--------------
brlcad/branches/dm-fb-merge/include/dm.h
brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c
brlcad/branches/dm-fb-merge/src/libdm/dm-generic.c
brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c
brlcad/branches/dm-fb-merge/src/libdm/include/calltable.h
brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp
brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp
brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c
brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c
brlcad/branches/dm-fb-merge/src/mged/doevent.c
Modified: brlcad/branches/dm-fb-merge/include/dm.h
===================================================================
--- brlcad/branches/dm-fb-merge/include/dm.h 2020-04-17 20:25:50 UTC (rev
75445)
+++ brlcad/branches/dm-fb-merge/include/dm.h 2020-04-17 21:12:51 UTC (rev
75446)
@@ -298,7 +298,12 @@
DM_EXPORT extern void dm_sync(struct dm *dmp);
// Return 1 if same, 0 if different and -1 if no dmp available
-DM_EXPORT extern int dm_event_type_cmp(struct dm *dmp, int etype);
+typedef enum {
+ DM_MOTION_NOTIFY,
+ DM_BUTTON_PRESS,
+ DM_BUTTON_RELEASE
+} dm_event_t;
+DM_EXPORT extern int dm_event_cmp(struct dm *dmp, dm_event_t type, int event);
/* TODO - dm_vp is supposed to go away, but until we figure it out
* expose it here to allow dm hiding */
Modified: brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c 2020-04-17 20:25:50 UTC
(rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c 2020-04-17 21:12:51 UTC
(rev 75446)
@@ -2026,6 +2026,26 @@
XSync(pub_vars->dpy, 0);
}
+int
+X_event_cmp(struct dm *dmp, dm_event_t type, int event)
+{
+ struct dm_Xvars *pubvars = (struct dm_Xvars *)dmp->i->dm_vars.pub_vars;
+ switch (type) {
+ case DM_MOTION_NOTIFY:
+ return (event == pubvars->devmotionnotify) ? 1 : 0;
+ break;
+ case DM_BUTTON_PRESS:
+ return (event == pubvars->devbuttonpress) ? 1 : 0;
+ break;
+ case DM_BUTTON_RELEASE:
+ return (event == pubvars->devbuttonrelease) ? 1 : 0;
+ break;
+ default:
+ return -1;
+ break;
+ };
+}
+
/* Display Manager package interface */
struct dm_impl dm_X_impl = {
X_close,
@@ -2072,7 +2092,7 @@
X_write_image,
X_flush,
X_sync,
- NULL,
+ X_event_cmp,
0,
0, /* no displaylist */
0, /* no stereo */
Modified: brlcad/branches/dm-fb-merge/src/libdm/dm-generic.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/dm-generic.c 2020-04-17 20:25:50 UTC
(rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/dm-generic.c 2020-04-17 21:12:51 UTC
(rev 75446)
@@ -210,6 +210,12 @@
(void)dmp->i->dm_internal_var(result, dmp, key);
}
+int
+dm_event_cmp(struct dm *dmp, dm_event_t type, int event)
+{
+ if (!dmp || !dmp->i->dm_event_cmp) return -1;
+ return dmp->i->dm_event_cmp(dmp, type, event);
+}
fastf_t
dm_Xx2Normal(struct dm *dmp, int x)
Modified: brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c 2020-04-17 20:25:50 UTC
(rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c 2020-04-17 21:12:51 UTC
(rev 75446)
@@ -2884,6 +2884,26 @@
return 0;
}
+int
+ogl_event_cmp(struct dm *dmp, dm_event_t type, int event)
+{
+ struct dm_glxvars *pubvars = (struct dm_glxvars *)dmp->i->dm_vars.pub_vars;
+ switch (type) {
+ case DM_MOTION_NOTIFY:
+ return (event == pubvars->devmotionnotify) ? 1 : 0;
+ break;
+ case DM_BUTTON_PRESS:
+ return (event == pubvars->devbuttonpress) ? 1 : 0;
+ break;
+ case DM_BUTTON_RELEASE:
+ return (event == pubvars->devbuttonrelease) ? 1 : 0;
+ break;
+ default:
+ return -1;
+ break;
+ };
+}
+
struct dm_impl dm_ogl_impl = {
ogl_close,
ogl_drawBegin,
@@ -2929,7 +2949,7 @@
ogl_write_image,
NULL,
NULL,
- NULL,
+ ogl_event_cmp,
0,
1, /* has displaylist */
0, /* no stereo by default */
Modified: brlcad/branches/dm-fb-merge/src/libdm/include/calltable.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/include/calltable.h 2020-04-17
20:25:50 UTC (rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/include/calltable.h 2020-04-17
21:12:51 UTC (rev 75446)
@@ -99,7 +99,7 @@
int (*dm_write_image)(struct bu_vls *msgs, FILE *fp, struct dm *dmp);
void (*dm_flush)(struct dm *dmp);
void (*dm_sync)(struct dm *dmp);
- int (*dm_event_type_cmp)(struct dm *dmp, int etype);
+ int (*dm_event_cmp)(struct dm *dmp, dm_event_t type, int event);
unsigned long dm_id; /**< @brief window id */
int dm_displaylist; /**< @brief !0 means device has
displaylist */
int dm_stereo; /**< @brief stereo flag */
Modified: brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp 2020-04-17
20:25:50 UTC (rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp 2020-04-17
21:12:51 UTC (rev 75446)
@@ -2518,6 +2518,26 @@
return 0;
}
+int
+osgl_event_cmp(struct dm *dmp, dm_event_t type, int event)
+{
+ struct dm_osglvars *pubvars = (struct dm_osglvars
*)dmp->i->dm_vars.pub_vars;
+ switch (type) {
+ case DM_MOTION_NOTIFY:
+ return (event == pubvars->devmotionnotify) ? 1 : 0;
+ break;
+ case DM_BUTTON_PRESS:
+ return (event == pubvars->devbuttonpress) ? 1 : 0;
+ break;
+ case DM_BUTTON_RELEASE:
+ return (event == pubvars->devbuttonrelease) ? 1 : 0;
+ break;
+ default:
+ return -1;
+ break;
+ };
+}
+
struct dm_impl dm_osgl_impl = {
osgl_close,
osgl_drawBegin,
@@ -2563,7 +2583,7 @@
NULL,
NULL,
NULL,
- NULL,
+ osgl_event_cmp,
0,
1, /* has displaylist */
0, /* no stereo by default */
Modified: brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp 2020-04-17 20:25:50 UTC
(rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp 2020-04-17 21:12:51 UTC
(rev 75446)
@@ -1022,6 +1022,25 @@
return 0;
}
+int
+qt_event_cmp(struct dm *dmp, dm_event_t type, int event)
+{
+ struct dm_qtvars *pubvars = (struct dm_qtvars *)dmp->i->dm_vars.pub_vars;
+ switch (type) {
+ case DM_MOTION_NOTIFY:
+ return (event == pubvars->devmotionnotify) ? 1 : 0;
+ break;
+ case DM_BUTTON_PRESS:
+ return (event == pubvars->devbuttonpress) ? 1 : 0;
+ break;
+ case DM_BUTTON_RELEASE:
+ return (event == pubvars->devbuttonrelease) ? 1 : 0;
+ break;
+ default:
+ return -1;
+ break;
+ };
+}
__END_DECLS
@@ -1071,6 +1090,7 @@
NULL,
NULL,
NULL,
+ qt_event_cmp,
0,
0, /* no displaylist */
0, /* no stereo */
Modified: brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c 2020-04-17 20:25:50 UTC
(rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c 2020-04-17 21:12:51 UTC
(rev 75446)
@@ -888,6 +888,25 @@
return 0;
}
+int
+tk_event_cmp(struct dm *dmp, dm_event_t type, int event)
+{
+ struct dm_tkvars *pubvars = (struct dm_tkvars *)dmp->i->dm_vars.pub_vars;
+ switch (type) {
+ case DM_MOTION_NOTIFY:
+ return (event == pubvars->devmotionnotify) ? 1 : 0;
+ break;
+ case DM_BUTTON_PRESS:
+ return (event == pubvars->devbuttonpress) ? 1 : 0;
+ break;
+ case DM_BUTTON_RELEASE:
+ return (event == pubvars->devbuttonrelease) ? 1 : 0;
+ break;
+ default:
+ return -1;
+ break;
+ };
+}
struct dm_impl dm_tk_impl = {
tk_close,
@@ -934,7 +953,7 @@
NULL,
NULL,
NULL,
- NULL,
+ tk_event_cmp,
0,
0, /* no displaylist */
0, /* no stereo */
Modified: brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c 2020-04-17 20:25:50 UTC
(rev 75445)
+++ brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c 2020-04-17 21:12:51 UTC
(rev 75446)
@@ -2166,6 +2166,26 @@
return 0;
}
+int
+wgl_event_cmp(struct dm *dmp, dm_event_t type, int event)
+{
+ struct dm_wglvars *pubvars = (struct dm_wglvars *)dmp->i->dm_vars.pub_vars;
+ switch (type) {
+ case DM_MOTION_NOTIFY:
+ return (event == pubvars->devmotionnotify) ? 1 : 0;
+ break;
+ case DM_BUTTON_PRESS:
+ return (event == pubvars->devbuttonpress) ? 1 : 0;
+ break;
+ case DM_BUTTON_RELEASE:
+ return (event == pubvars->devbuttonrelease) ? 1 : 0;
+ break;
+ default:
+ return -1;
+ break;
+ };
+}
+
struct dm_impl dm_wgl_impl = {
wgl_close,
wgl_drawBegin,
@@ -2211,7 +2231,7 @@
NULL,
NULL,
NULL,
- NULL,
+ wgl_event_cmp,
0,
1, /* has displaylist */
0, /* no stereo by default */
Modified: brlcad/branches/dm-fb-merge/src/mged/doevent.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/mged/doevent.c 2020-04-17 20:25:50 UTC
(rev 75445)
+++ brlcad/branches/dm-fb-merge/src/mged/doevent.c 2020-04-17 21:12:51 UTC
(rev 75446)
@@ -177,7 +177,7 @@
status = TCL_RETURN;
}
#ifdef IR_KNOBS
- else if (dm_get_xvars(DMP) != NULL && eventPtr->type == ((struct dm_xvars
*)dm_get_xvars(DMP))->devmotionnotify) {
+ else if (dm_event_cmp(DMP, DM_MOTION_NOTIFY, eventPtr->type) == 1) {
dials_event_handler((XDeviceMotionEvent *)eventPtr);
/* no further processing of this event */
@@ -185,12 +185,12 @@
}
#endif
#ifdef IR_BUTTONS
- else if (dm_get_xvars(DMP) != NULL && eventPtr->type == ((struct dm_xvars
*)dm_get_xvars(DMP))->devbuttonpress) {
+ else if (dm_event_cmp(DMP, DM_BUTTON_PRESS, eventPtr->type) == 1) {
buttons_event_handler((XDeviceButtonEvent *)eventPtr, 1);
/* no further processing of this event */
status = TCL_RETURN;
- } else if (dm_get_xvars(DMP) != NULL && eventPtr->type == ((struct
dm_xvars *)dm_get_xvars(DMP))->devbuttonrelease) {
+ } else if (dm_event_cmp(DMP, DM_BUTTON_RELEASE, eventPtr->type) == 1) {
buttons_event_handler((XDeviceButtonEvent *)eventPtr, 0);
/* no further processing of this event */
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits