Revision: 76668
          http://sourceforge.net/p/brlcad/code/76668
Author:   starseeker
Date:     2020-08-06 16:34:01 +0000 (Thu, 06 Aug 2020)
Log Message:
-----------
Remove the last use of DM_* ifdefs from MGED

Modified Paths:
--------------
    brlcad/trunk/include/dm.h
    brlcad/trunk/src/libdm/X/dm-X.c
    brlcad/trunk/src/libdm/dm-generic.c
    brlcad/trunk/src/libdm/dm_plugins.cpp
    brlcad/trunk/src/libdm/glx/dm-ogl.c
    brlcad/trunk/src/libdm/include/calltable.h
    brlcad/trunk/src/libdm/null/dm-Null.c
    brlcad/trunk/src/libdm/osgl/dm-osgl.cpp
    brlcad/trunk/src/libdm/plot/dm-plot.c
    brlcad/trunk/src/libdm/postscript/dm-ps.c
    brlcad/trunk/src/libdm/qt/dm-qt.cpp
    brlcad/trunk/src/libdm/tk/dm-tk.c
    brlcad/trunk/src/libdm/txt/dm-txt.c
    brlcad/trunk/src/libdm/wgl/dm-wgl.c
    brlcad/trunk/src/mged/attach.c
    brlcad/trunk/src/mged/mged.c

Modified: brlcad/trunk/include/dm.h
===================================================================
--- brlcad/trunk/include/dm.h   2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/include/dm.h   2020-08-06 16:34:01 UTC (rev 76668)
@@ -173,8 +173,8 @@
                             const char *argv[]);
 DM_EXPORT extern void dm_list_types(struct bu_vls *list, const char 
*separator);
 DM_EXPORT const char *dm_bestXType(const char *dpy_string);
+DM_EXPORT extern int dm_have_graphics();
 
-
 /* functions to make a dm struct hideable - will need to
  * sort these out later */
 
@@ -190,6 +190,7 @@
 DM_EXPORT extern void dm_geometry_request(struct dm *dmp, int width, int 
height);
 DM_EXPORT extern void dm_internal_var(struct bu_vls *result, struct dm *dmp, 
const char *key); // ick
 DM_EXPORT extern fastf_t dm_get_aspect(struct dm *dmp);
+DM_EXPORT extern int dm_graphical(const struct dm *dmp);
 DM_EXPORT extern const char *dm_get_type(struct dm *dmp);
 DM_EXPORT extern unsigned long dm_get_id(struct dm *dmp);
 DM_EXPORT extern void dm_set_id(struct dm *dmp, unsigned long new_id);

Modified: brlcad/trunk/src/libdm/X/dm-X.c
===================================================================
--- brlcad/trunk/src/libdm/X/dm-X.c     2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/libdm/X/dm-X.c     2020-08-06 16:34:01 UTC (rev 76668)
@@ -2120,8 +2120,9 @@
     NULL,
     NULL,
     0,
+    1,                         /* is graphical */
     0,                         /* no displaylist */
-    0,                            /* no stereo */
+    0,                          /* no stereo */
     PLOTBOUND,                 /* zoom-in limit */
     1,                         /* bound flag */
     "X",

Modified: brlcad/trunk/src/libdm/dm-generic.c
===================================================================
--- brlcad/trunk/src/libdm/dm-generic.c 2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/libdm/dm-generic.c 2020-08-06 16:34:01 UTC (rev 76668)
@@ -219,6 +219,12 @@
     dmp->i->dm_height = height;
 }
 
+int
+dm_graphical(const struct dm *dmp)
+{
+    if (UNLIKELY(!dmp)) return 0;
+    return dmp->i->dm_graphical;
+}
 
 const char *
 dm_get_type(struct dm *dmp)

Modified: brlcad/trunk/src/libdm/dm_plugins.cpp
===================================================================
--- brlcad/trunk/src/libdm/dm_plugins.cpp       2020-08-06 16:11:47 UTC (rev 
76667)
+++ brlcad/trunk/src/libdm/dm_plugins.cpp       2020-08-06 16:34:01 UTC (rev 
76668)
@@ -61,6 +61,23 @@
     return dmp;
 }
 
+extern "C" int 
+dm_have_graphics()
+{
+    int ret = 0;
+    std::map<std::string, const struct dm *> *dmb = (std::map<std::string, 
const struct dm *> *)dm_backends;
+    std::map<std::string, const struct dm *>::iterator d_it;
+    for (d_it = dmb->begin(); d_it != dmb->end(); d_it++) {
+       std::string key = d_it->first;
+       const struct dm *d = d_it->second;
+       if (dm_graphical(d)) {
+           ret = 1;
+           break;
+       }
+    }
+    return ret;
+}
+
 extern "C" void
 dm_list_types(struct bu_vls *list, const char *separator)
 {

Modified: brlcad/trunk/src/libdm/glx/dm-ogl.c
===================================================================
--- brlcad/trunk/src/libdm/glx/dm-ogl.c 2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/libdm/glx/dm-ogl.c 2020-08-06 16:34:01 UTC (rev 76668)
@@ -3058,6 +3058,7 @@
     ogl_fogHint,
     ogl_share_dlist,
     0,
+    1,                         /* is graphical */
     1,                         /* has displaylist */
     0,                          /* no stereo by default */
     1.0,                       /* zoom-in limit */

Modified: brlcad/trunk/src/libdm/include/calltable.h
===================================================================
--- brlcad/trunk/src/libdm/include/calltable.h  2020-08-06 16:11:47 UTC (rev 
76667)
+++ brlcad/trunk/src/libdm/include/calltable.h  2020-08-06 16:34:01 UTC (rev 
76668)
@@ -109,6 +109,7 @@
     void (*dm_fogHint)(struct dm *dmp, int fastfog);
     int (*dm_share_dlist)(struct dm *dmp1, struct dm *dmp2);
     unsigned long dm_id;          /**< @brief window id */
+    int dm_graphical;          /**< @brief !0 means device supports 
interactive graphics */
     int dm_displaylist;                /**< @brief !0 means device has 
displaylist */
     int dm_stereo;                /**< @brief stereo flag */
     double dm_bound;           /**< @brief zoom-in limit */

Modified: brlcad/trunk/src/libdm/null/dm-Null.c
===================================================================
--- brlcad/trunk/src/libdm/null/dm-Null.c       2020-08-06 16:11:47 UTC (rev 
76667)
+++ brlcad/trunk/src/libdm/null/dm-Null.c       2020-08-06 16:34:01 UTC (rev 
76668)
@@ -359,6 +359,7 @@
     NULL,
     NULL,
     0,
+    0,                         /* not graphical */
     0,                         /* no displaylist */
     0,                         /* no stereo */
     0.0,                       /* zoom-in limit */

Modified: brlcad/trunk/src/libdm/osgl/dm-osgl.cpp
===================================================================
--- brlcad/trunk/src/libdm/osgl/dm-osgl.cpp     2020-08-06 16:11:47 UTC (rev 
76667)
+++ brlcad/trunk/src/libdm/osgl/dm-osgl.cpp     2020-08-06 16:34:01 UTC (rev 
76668)
@@ -2708,6 +2708,7 @@
     NULL,
     NULL,
     0,
+    1,                         /* is graphical */
     1,                         /* has displaylist */
     0,                          /* no stereo by default */
     1.0,                       /* zoom-in limit */

Modified: brlcad/trunk/src/libdm/plot/dm-plot.c
===================================================================
--- brlcad/trunk/src/libdm/plot/dm-plot.c       2020-08-06 16:11:47 UTC (rev 
76667)
+++ brlcad/trunk/src/libdm/plot/dm-plot.c       2020-08-06 16:34:01 UTC (rev 
76668)
@@ -717,6 +717,7 @@
     NULL,
     NULL,
     0,
+    0,                         /* not graphical */
     0,                         /* no displaylist */
     0,                         /* no stereo */
     PLOTBOUND,                 /* zoom-in limit */

Modified: brlcad/trunk/src/libdm/postscript/dm-ps.c
===================================================================
--- brlcad/trunk/src/libdm/postscript/dm-ps.c   2020-08-06 16:11:47 UTC (rev 
76667)
+++ brlcad/trunk/src/libdm/postscript/dm-ps.c   2020-08-06 16:34:01 UTC (rev 
76668)
@@ -786,8 +786,9 @@
     NULL,
     NULL,
     0,
+    0,                         /* not graphical */
     0,                         /* no displaylist */
-    0,                            /* no stereo */
+    0,                          /* no stereo */
     PLOTBOUND,                 /* zoom-in limit */
     1,                         /* bound flag */
     "ps",

Modified: brlcad/trunk/src/libdm/qt/dm-qt.cpp
===================================================================
--- brlcad/trunk/src/libdm/qt/dm-qt.cpp 2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/libdm/qt/dm-qt.cpp 2020-08-06 16:34:01 UTC (rev 76668)
@@ -1360,6 +1360,7 @@
     NULL,
     NULL,
     0,
+    1,                         /* is graphical */
     0,                         /* no displaylist */
     0,                         /* no stereo */
     0.0,                       /* zoom-in limit */

Modified: brlcad/trunk/src/libdm/tk/dm-tk.c
===================================================================
--- brlcad/trunk/src/libdm/tk/dm-tk.c   2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/libdm/tk/dm-tk.c   2020-08-06 16:34:01 UTC (rev 76668)
@@ -1159,6 +1159,7 @@
     NULL,
     NULL,
     0,
+    1,                         /* is graphical */
     0,                         /* no displaylist */
     0,                         /* no stereo */
     PLOTBOUND,                 /* zoom-in limit */

Modified: brlcad/trunk/src/libdm/txt/dm-txt.c
===================================================================
--- brlcad/trunk/src/libdm/txt/dm-txt.c 2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/libdm/txt/dm-txt.c 2020-08-06 16:34:01 UTC (rev 76668)
@@ -408,6 +408,7 @@
     NULL,
     NULL,
     0,
+    0,                         /* not graphical */
     0,                         /* no displaylist */
     0,                         /* no stereo */
     0.0,                       /* zoom-in limit */

Modified: brlcad/trunk/src/libdm/wgl/dm-wgl.c
===================================================================
--- brlcad/trunk/src/libdm/wgl/dm-wgl.c 2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/libdm/wgl/dm-wgl.c 2020-08-06 16:34:01 UTC (rev 76668)
@@ -2344,6 +2344,7 @@
     wgl_fogHint,
     wgl_share_dlist,
     0,
+    1,                         /* is graphical */
     1,                         /* has displaylist */
     0,                          /* no stereo by default */
     1.0,                       /* zoom-in limit */

Modified: brlcad/trunk/src/mged/attach.c
===================================================================
--- brlcad/trunk/src/mged/attach.c      2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/mged/attach.c      2020-08-06 16:34:01 UTC (rev 76668)
@@ -587,48 +587,9 @@
            bu_vls_free(&vls);
            return TCL_ERROR;
        }
-#ifdef DM_X
-       if (BU_STR_EQUAL(argv[argc-1], "X")) {
-           Tcl_AppendResult(interpreter, "X", (char *)NULL);
+       if (dm_valid_type(argv[argc-1], NULL)) {
+           Tcl_AppendResult(interpreter, argv[argc-1], (char *)NULL);
        }
-#endif /* DM_X */
-#if 0
-#ifdef DM_TK
-       if (BU_STR_EQUAL(argv[argc-1], "tk")) {
-           Tcl_AppendResult(interpreter, "tk", (char *)NULL);
-       }
-#endif /* DM_TK */
-#endif
-#ifdef DM_WGL
-       if (BU_STR_EQUAL(argv[argc-1], "wgl")) {
-           Tcl_AppendResult(interpreter, "wgl", (char *)NULL);
-       }
-#endif /* DM_WGL */
-#ifdef DM_OGL
-       if (BU_STR_EQUAL(argv[argc-1], "ogl")) {
-           Tcl_AppendResult(interpreter, "ogl", (char *)NULL);
-       }
-#endif /* DM_OGL */
-#ifdef DM_OSG
-       if (BU_STR_EQUAL(argv[argc-1], "osg")) {
-           Tcl_AppendResult(interpreter, "osg", (char *)NULL);
-       }
-#endif /* DM_OSG*/
-#ifdef DM_OSGL
-       if (BU_STR_EQUAL(argv[argc-1], "osgl")) {
-           Tcl_AppendResult(interpreter, "osgl", (char *)NULL);
-       }
-#endif /* DM_OSGL*/
-#ifdef DM_GLX
-       if (BU_STR_EQUAL(argv[argc-1], "glx")) {
-           Tcl_AppendResult(interpreter, "glx", (char *)NULL);
-       }
-#endif /* DM_GLX */
-#ifdef DM_QT
-       if (BU_STR_EQUAL(argv[argc-1], "qt")) {
-           Tcl_AppendResult(interpreter, "qt", (char *)NULL);
-       }
-#endif /* DM_QT */
        return TCL_OK;
     }
 

Modified: brlcad/trunk/src/mged/mged.c
===================================================================
--- brlcad/trunk/src/mged/mged.c        2020-08-06 16:11:47 UTC (rev 76667)
+++ brlcad/trunk/src/mged/mged.c        2020-08-06 16:34:01 UTC (rev 76668)
@@ -145,15 +145,7 @@
 int interactive = 1;   /* >0 means interactive */
 int cbreak_mode = 0;        /* >0 means in cbreak_mode */
 
-#if defined(DM_X) || defined(DM_TK) || defined(DM_OGL) || defined(DM_WGL) || 
defined(DM_OSGL)
-# if defined(HAVE_TK)
-int classic_mged=0;
-#  else
 int classic_mged=1;
-#  endif
-#else
-int classic_mged=1;
-#endif
 
 /* The old mged gui is temporarily the default. */
 int old_mged_gui=1;
@@ -1062,6 +1054,12 @@
        RTG.rtg_parallel = 1;
     }
 
+#if defined(HAVE_TK)
+    if (dm_have_graphics()) {
+       classic_mged = 0;
+    }
+#endif
+
     bu_optind = 1;
     while ((c = bu_getopt(argc, argv, "a:d:hbicorx:X:v?")) != -1) {
        if (bu_optopt == '?') c='h';

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to