Revision: 75286
          http://sourceforge.net/p/brlcad/code/75286
Author:   starseeker
Date:     2020-04-07 14:55:24 +0000 (Tue, 07 Apr 2020)
Log Message:
-----------
Move Dm_Init to libtclcad

Modified Paths:
--------------
    brlcad/trunk/include/dm/defines.h
    brlcad/trunk/include/dm.h
    brlcad/trunk/include/tclcad.h
    brlcad/trunk/src/libdm/CMakeLists.txt
    brlcad/trunk/src/libdm/dm-X.c
    brlcad/trunk/src/libdm/dm-generic.c
    brlcad/trunk/src/libdm/dm-rtgl.c
    brlcad/trunk/src/libdm/dm-tk.c
    brlcad/trunk/src/libtclcad/libfuncs.c

Removed Paths:
-------------
    brlcad/trunk/src/libdm/tcl.c

Modified: brlcad/trunk/include/dm/defines.h
===================================================================
--- brlcad/trunk/include/dm/defines.h   2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/include/dm/defines.h   2020-04-07 14:55:24 UTC (rev 75286)
@@ -34,6 +34,9 @@
 #  endif
 #endif
 
+/* TODO - global var, need to eliminate */
+DM_EXPORT extern int vectorThreshold;
+
 /** @} */
 /*
  * Local Variables:

Modified: brlcad/trunk/include/dm.h
===================================================================
--- brlcad/trunk/include/dm.h   2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/include/dm.h   2020-04-07 14:55:24 UTC (rev 75286)
@@ -238,7 +238,6 @@
 DM_EXPORT extern dm dm_qt;
 DM_EXPORT extern dm dm_osgl;
 
-DM_EXPORT extern int Dm_Init(void *interp);
 DM_EXPORT extern dm *dm_open(Tcl_Interp *interp,
                             int type,
                             int argc,

Modified: brlcad/trunk/include/tclcad.h
===================================================================
--- brlcad/trunk/include/tclcad.h       2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/include/tclcad.h       2020-04-07 14:55:24 UTC (rev 75286)
@@ -484,7 +484,8 @@
 tclcad_delete_io_handler(void *interp, void *chan, struct bu_process *p, int 
fd, void *data, ged_io_handler_callback_t callback);
 
 
-FB_EXPORT extern int Fb_Init(Tcl_Interp *interp);
+TCLCAD_EXPORT extern int Fb_Init(Tcl_Interp *interp);
+TCLCAD_EXPORT extern int Dm_Init(Tcl_Interp *interp);
 
 
 __END_DECLS

Modified: brlcad/trunk/src/libdm/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/libdm/CMakeLists.txt       2020-04-07 14:44:40 UTC (rev 
75285)
+++ brlcad/trunk/src/libdm/CMakeLists.txt       2020-04-07 14:55:24 UTC (rev 
75286)
@@ -115,7 +115,6 @@
   query.c
   rect.c
   scale.c
-  tcl.c
   vers.c
   )
 set_property(SOURCE dm_obj.c APPEND PROPERTY COMPILE_DEFINITIONS 
FB_USE_INTERNAL_API)

Modified: brlcad/trunk/src/libdm/dm-X.c
===================================================================
--- brlcad/trunk/src/libdm/dm-X.c       2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/src/libdm/dm-X.c       2020-04-07 14:55:24 UTC (rev 75286)
@@ -845,7 +845,7 @@
 HIDDEN int
 X_drawVList(struct dm_internal *dmp, struct bn_vlist *vp)
 {
-    extern int vectorThreshold;        /* defined in libdm/tcl.c */
+    extern int vectorThreshold;        /* defined in libdm/dm-generic.c */
 
     static vect_t spnt, lpnt, pnt;
     struct bn_vlist *tvp;

Modified: brlcad/trunk/src/libdm/dm-generic.c
===================================================================
--- brlcad/trunk/src/libdm/dm-generic.c 2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/src/libdm/dm-generic.c 2020-04-07 14:55:24 UTC (rev 75286)
@@ -36,6 +36,9 @@
 #include "dm-Null.h"
 #include "rt/solid.h"
 
+/* TODO: this doesn't belong in here, move to a globals.c or eliminate */
+int vectorThreshold = 100000;
+
 extern dm *plot_open(Tcl_Interp *interp, int argc, const char *argv[]);
 extern dm *ps_open(Tcl_Interp *interp, int argc, const char *argv[]);
 extern dm *txt_open(Tcl_Interp *interp, int argc, const char **argv);

Modified: brlcad/trunk/src/libdm/dm-rtgl.c
===================================================================
--- brlcad/trunk/src/libdm/dm-rtgl.c    2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/src/libdm/dm-rtgl.c    2020-04-07 14:55:24 UTC (rev 75286)
@@ -76,7 +76,7 @@
 
 #define USE_VECTOR_THRESHOLD 0
 #if USE_VECTOR_THRESHOLD
-extern int vectorThreshold;    /* defined in libdm/tcl.c */
+extern int vectorThreshold;    /* defined in libdm/dm-generic.c */
 #endif
 
 static int rtgl_actively_drawing;

Modified: brlcad/trunk/src/libdm/dm-tk.c
===================================================================
--- brlcad/trunk/src/libdm/dm-tk.c      2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/src/libdm/dm-tk.c      2020-04-07 14:55:24 UTC (rev 75286)
@@ -71,7 +71,7 @@
 static fastf_t min_short = (fastf_t)SHRT_MIN;
 static fastf_t max_short = (fastf_t)SHRT_MAX;
 
-extern int vectorThreshold;    /* defined in libdm/tcl.c */
+extern int vectorThreshold;    /* defined in libdm/dm-generic.c */
 
 
 /**

Deleted: brlcad/trunk/src/libdm/tcl.c
===================================================================
--- brlcad/trunk/src/libdm/tcl.c        2020-04-07 14:44:40 UTC (rev 75285)
+++ brlcad/trunk/src/libdm/tcl.c        2020-04-07 14:55:24 UTC (rev 75286)
@@ -1,164 +0,0 @@
-/*                           T C L . C
- * BRL-CAD
- *
- * Copyright (c) 2004-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libdm/tcl.c
- *
- * LIBDM's tcl interface.
- *
- */
-
-#include "common.h"
-
-#include <math.h>
-#include "tcl.h"
-#include "vmath.h"
-#include "dm.h"
-#include "bu/cmd.h"
-
-/* private headers */
-#include "brlcad_version.h"
-
-
-/* from libdm/query.c */
-extern int dm_validXType(const char *dpy_string, const char *name);
-extern char *dm_bestXType(const char *dpy_string);
-
-/* from libdm/dm_obj.c */
-extern int Dmo_Init(Tcl_Interp *interp);
-
-/* TODO: this doesn't belong in here, move to a globals.c or eliminate */
-int vectorThreshold = 100000;
-
-
-HIDDEN int
-dm_validXType_tcl(void *clientData, int argc, const char **argv)
-{
-    Tcl_Interp *interp = (Tcl_Interp *)clientData;
-    struct bu_vls vls = BU_VLS_INIT_ZERO;
-    Tcl_Obj *obj;
-
-    if (argc != 3) {
-       bu_vls_printf(&vls, "helplib dm_validXType");
-       Tcl_Eval(interp, bu_vls_addr(&vls));
-       bu_vls_free(&vls);
-       return BRLCAD_ERROR;
-    }
-
-    bu_vls_printf(&vls, "%d", dm_validXType(argv[1], argv[2]));
-    obj = Tcl_GetObjResult(interp);
-    if (Tcl_IsShared(obj))
-       obj = Tcl_DuplicateObj(obj);
-    Tcl_AppendStringsToObj(obj, bu_vls_addr(&vls), (char *)NULL);
-    bu_vls_free(&vls);
-
-    Tcl_SetObjResult(interp, obj);
-    return BRLCAD_OK;
-}
-
-
-HIDDEN int
-dm_bestXType_tcl(void *clientData, int argc, const char **argv)
-{
-    Tcl_Interp *interp = (Tcl_Interp *)clientData;
-    Tcl_Obj *obj;
-    const char *best_dm;
-    char buffer[256] = {0};
-
-    if (argc != 2) {
-       struct bu_vls vls = BU_VLS_INIT_ZERO;
-
-       bu_vls_printf(&vls, "helplib dm_bestXType");
-       Tcl_Eval(interp, bu_vls_addr(&vls));
-       bu_vls_free(&vls);
-       return BRLCAD_ERROR;
-    }
-
-    obj = Tcl_GetObjResult(interp);
-    if (Tcl_IsShared(obj))
-       obj = Tcl_DuplicateObj(obj);
-    snprintf(buffer, 256, "%s", argv[1]);
-    best_dm = dm_bestXType(buffer);
-    if (best_dm) {
-       Tcl_AppendStringsToObj(obj, best_dm, (char *)NULL);
-       Tcl_SetObjResult(interp, obj);
-       return BRLCAD_OK;
-    }
-    return BRLCAD_ERROR;
-}
-
-
-static int
-wrapper_func(ClientData data, Tcl_Interp *interp, int argc, const char *argv[])
-{
-    struct bu_cmdtab *ctp = (struct bu_cmdtab *)data;
-
-    return ctp->ct_func(interp, argc, argv);
-}
-
-
-static void
-register_cmds(Tcl_Interp *interp, struct bu_cmdtab *cmds)
-{
-    struct bu_cmdtab *ctp = NULL;
-
-    for (ctp = cmds; ctp->ct_name != (char *)NULL; ctp++) {
-       (void)Tcl_CreateCommand(interp, ctp->ct_name, wrapper_func, 
(ClientData)ctp, (Tcl_CmdDeleteProc *)NULL);
-    }
-}
-
-
-int
-Dm_Init(void *interpreter)
-{
-    Tcl_Interp *interp = (Tcl_Interp *)interpreter;
-
-    static struct bu_cmdtab cmdtab[] = {
-       {"dm_validXType", dm_validXType_tcl},
-       {"dm_bestXType", dm_bestXType_tcl},
-       {(const char *)NULL, BU_CMD_NULL}
-    };
-
-    struct bu_vls vls = BU_VLS_INIT_ZERO;
-
-    /* register commands */
-    register_cmds(interp, cmdtab);
-
-    bu_vls_strcpy(&vls, "vectorThreshold");
-    Tcl_LinkVar(interp, bu_vls_addr(&vls), (char *)&vectorThreshold,
-               TCL_LINK_INT);
-    bu_vls_free(&vls);
-
-    /* initialize display manager object code */
-    Dmo_Init(interp);
-
-    Tcl_PkgProvide(interp,  "Dm", brlcad_version());
-
-    return BRLCAD_OK;
-}
-
-
-/*
- * Local Variables:
- * mode: C
- * tab-width: 8
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */

Modified: brlcad/trunk/src/libtclcad/libfuncs.c
===================================================================
--- brlcad/trunk/src/libtclcad/libfuncs.c       2020-04-07 14:44:40 UTC (rev 
75285)
+++ brlcad/trunk/src/libtclcad/libfuncs.c       2020-04-07 14:55:24 UTC (rev 
75286)
@@ -2643,7 +2643,7 @@
 
 
 static int
-wrapper_func(ClientData data, Tcl_Interp *interp, int argc, const char *argv[])
+fb_wrapper_func(ClientData data, Tcl_Interp *interp, int argc, const char 
*argv[])
 {
     struct bu_cmdtab *ctp = (struct bu_cmdtab *)data;
 
@@ -2657,7 +2657,7 @@
     struct bu_cmdtab *ctp = NULL;
 
     for (ctp = cmds; ctp->ct_name != (char *)NULL; ctp++) {
-       (void)Tcl_CreateCommand(interp, ctp->ct_name, wrapper_func, 
(ClientData)ctp, (Tcl_CmdDeleteProc *)NULL);
+       (void)Tcl_CreateCommand(interp, ctp->ct_name, fb_wrapper_func, 
(ClientData)ctp, (Tcl_CmdDeleteProc *)NULL);
     }
 }
 
@@ -2689,6 +2689,122 @@
 
 
 /*
+ * LIBDM's tcl interface.
+ */
+
+/* from libdm/query.c */
+extern int dm_validXType(const char *dpy_string, const char *name);
+extern char *dm_bestXType(const char *dpy_string);
+
+/* from libdm/dm_obj.c */
+extern int Dmo_Init(Tcl_Interp *interp);
+
+HIDDEN int
+dm_validXType_tcl(void *clientData, int argc, const char **argv)
+{
+    Tcl_Interp *interp = (Tcl_Interp *)clientData;
+    struct bu_vls vls = BU_VLS_INIT_ZERO;
+    Tcl_Obj *obj;
+
+    if (argc != 3) {
+       bu_vls_printf(&vls, "helplib dm_validXType");
+       Tcl_Eval(interp, bu_vls_addr(&vls));
+       bu_vls_free(&vls);
+       return BRLCAD_ERROR;
+    }
+
+    bu_vls_printf(&vls, "%d", dm_validXType(argv[1], argv[2]));
+    obj = Tcl_GetObjResult(interp);
+    if (Tcl_IsShared(obj))
+       obj = Tcl_DuplicateObj(obj);
+    Tcl_AppendStringsToObj(obj, bu_vls_addr(&vls), (char *)NULL);
+    bu_vls_free(&vls);
+
+    Tcl_SetObjResult(interp, obj);
+    return BRLCAD_OK;
+}
+
+
+HIDDEN int
+dm_bestXType_tcl(void *clientData, int argc, const char **argv)
+{
+    Tcl_Interp *interp = (Tcl_Interp *)clientData;
+    Tcl_Obj *obj;
+    const char *best_dm;
+    char buffer[256] = {0};
+
+    if (argc != 2) {
+       struct bu_vls vls = BU_VLS_INIT_ZERO;
+
+       bu_vls_printf(&vls, "helplib dm_bestXType");
+       Tcl_Eval(interp, bu_vls_addr(&vls));
+       bu_vls_free(&vls);
+       return BRLCAD_ERROR;
+    }
+
+    obj = Tcl_GetObjResult(interp);
+    if (Tcl_IsShared(obj))
+       obj = Tcl_DuplicateObj(obj);
+    snprintf(buffer, 256, "%s", argv[1]);
+    best_dm = dm_bestXType(buffer);
+    if (best_dm) {
+       Tcl_AppendStringsToObj(obj, best_dm, (char *)NULL);
+       Tcl_SetObjResult(interp, obj);
+       return BRLCAD_OK;
+    }
+    return BRLCAD_ERROR;
+}
+
+
+static int
+dm_wrapper_func(ClientData data, Tcl_Interp *interp, int argc, const char 
*argv[])
+{
+    struct bu_cmdtab *ctp = (struct bu_cmdtab *)data;
+
+    return ctp->ct_func(interp, argc, argv);
+}
+
+
+static void
+register_cmds(Tcl_Interp *interp, struct bu_cmdtab *cmds)
+{
+    struct bu_cmdtab *ctp = NULL;
+
+    for (ctp = cmds; ctp->ct_name != (char *)NULL; ctp++) {
+       (void)Tcl_CreateCommand(interp, ctp->ct_name, dm_wrapper_func, 
(ClientData)ctp, (Tcl_CmdDeleteProc *)NULL);
+    }
+}
+
+
+int
+Dm_Init(Tcl_Interp *interp)
+{
+    static struct bu_cmdtab cmdtab[] = {
+       {"dm_validXType", dm_validXType_tcl},
+       {"dm_bestXType", dm_bestXType_tcl},
+       {(const char *)NULL, BU_CMD_NULL}
+    };
+
+    struct bu_vls vls = BU_VLS_INIT_ZERO;
+
+    /* register commands */
+    register_cmds(interp, cmdtab);
+
+    bu_vls_strcpy(&vls, "vectorThreshold");
+    Tcl_LinkVar(interp, bu_vls_addr(&vls), (char *)&vectorThreshold,
+               TCL_LINK_INT);
+    bu_vls_free(&vls);
+
+    /* initialize display manager object code */
+    Dmo_Init(interp);
+
+    Tcl_PkgProvide(interp,  "Dm", brlcad_version());
+
+    return BRLCAD_OK;
+}
+
+
+/*
  * Local Variables:
  * mode: C
  * tab-width: 8

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