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

Reply via email to