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