Revision: 75331
http://sourceforge.net/p/brlcad/code/75331
Author: starseeker
Date: 2020-04-10 12:06:50 +0000 (Fri, 10 Apr 2020)
Log Message:
-----------
void cast the Tcl_Interp for the dm container, so dm_open (public libdm api)
doesn't explicitly use the Tcl type
Modified Paths:
--------------
brlcad/trunk/include/dm.h
brlcad/trunk/src/adrt/isst.c
brlcad/trunk/src/libdm/dm-generic.c
brlcad/trunk/src/libdm/dm-ogl.c
brlcad/trunk/src/libdm/dm-osgl.cpp
brlcad/trunk/src/libdm/dm-plot.c
brlcad/trunk/src/libdm/dm-ps.c
brlcad/trunk/src/libdm/dm-tk.c
brlcad/trunk/src/libdm/dm-txt.c
brlcad/trunk/src/libdm/dm-wgl.c
brlcad/trunk/src/libdm/dm_obj.c
brlcad/trunk/src/libdm/dm_private.h
brlcad/trunk/src/libtclcad/tclcad_obj.c
brlcad/trunk/src/mged/attach.c
Modified: brlcad/trunk/include/dm.h
===================================================================
--- brlcad/trunk/include/dm.h 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/include/dm.h 2020-04-10 12:06:50 UTC (rev 75331)
@@ -239,7 +239,7 @@
DM_EXPORT extern dm dm_osgl;
DM_EXPORT extern int Dm_Init(void *interp);
-DM_EXPORT extern dm *dm_open(Tcl_Interp *interp,
+DM_EXPORT extern dm *dm_open(void *interp,
int type,
int argc,
const char *argv[]);
Modified: brlcad/trunk/src/adrt/isst.c
===================================================================
--- brlcad/trunk/src/adrt/isst.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/adrt/isst.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -547,7 +547,7 @@
{
char *av[] = { "Ogl_open", "-t", "0", "-n", ".w0", "-W", "800", "-N",
"600", NULL };
- dmp = dm_open(interp, dm_default_type(), sizeof(av)/sizeof(void*)-1,
(const char **)av);
+ dmp = dm_open((void *)interp, dm_default_type(),
sizeof(av)/sizeof(void*)-1, (const char **)av);
if (dmp == DM_NULL) {
printf("dm failed?\n");
Modified: brlcad/trunk/src/libdm/dm-generic.c
===================================================================
--- brlcad/trunk/src/libdm/dm-generic.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-generic.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -36,58 +36,52 @@
#include "dm-Null.h"
#include "rt/solid.h"
-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);
+extern dm *plot_open(void *interp, int argc, const char *argv[]);
+extern dm *ps_open(void *interp, int argc, const char *argv[]);
+extern dm *txt_open(void *interp, int argc, const char **argv);
#ifdef DM_X
# if defined(HAVE_TK)
-extern dm *X_open_dm(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *X_open_dm(void *interp, int argc, const char **argv);
# endif
#endif /* DM_X */
#ifdef DM_TK
-extern dm *tk_open_dm(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *tk_open_dm(void *interp, int argc, const char **argv);
#endif /* DM_TK */
#ifdef DM_OGL
# if defined(HAVE_TK)
-extern dm *ogl_open(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *ogl_open(void *interp, int argc, const char **argv);
extern void ogl_fogHint(dm *dmp, int fastfog);
extern int ogl_share_dlist(dm *dmp1, dm *dmp2);
# endif
#endif /* DM_OGL */
-#ifdef DM_OSG
-extern dm *osg_open(Tcl_Interp *interp, int argc, const char **argv);
-extern void osg_fogHint(dm *dmp, int fastfog);
-extern int osg_share_dlist(dm *dmp1, dm *dmp2);
-#endif /* DM_OSG*/
-
#ifdef DM_OSGL
-extern dm *osgl_open(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *osgl_open(void *interp, int argc, const char **argv);
extern void osgl_fogHint(dm *dmp, int fastfog);
extern int osgl_share_dlist(dm *dmp1, dm *dmp2);
#endif /* DM_OSGL*/
#ifdef DM_RTGL
-extern dm *rtgl_open(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *rtgl_open(void *interp, int argc, const char **argv);
extern void rtgl_fogHint(dm *dmp, int fastfog);
extern int rtgl_share_dlist(dm *dmp1, dm *dmp2);
#endif /* DM_RTGL */
#ifdef DM_WGL
-extern dm *wgl_open(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *wgl_open(void *interp, int argc, const char **argv);
extern void wgl_fogHint(dm *dmp, int fastfog);
extern int wgl_share_dlist(dm *dmp1, dm *dmp2);
#endif /* DM_WGL */
#ifdef DM_QT
-extern dm *qt_open(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *qt_open(void *interp, int argc, const char **argv);
#endif /* DM_QT */
HIDDEN dm *
-null_dm_open(Tcl_Interp *interp, int argc, const char *argv[])
+null_dm_open(void *interp, int argc, const char *argv[])
{
dm *dmp = DM_NULL;
@@ -104,7 +98,7 @@
dm *
-dm_open(Tcl_Interp *interp, int type, int argc, const char *argv[])
+dm_open(void *interp, int type, int argc, const char *argv[])
{
switch (type) {
case DM_TYPE_NULL:
Modified: brlcad/trunk/src/libdm/dm-ogl.c
===================================================================
--- brlcad/trunk/src/libdm/dm-ogl.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-ogl.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -102,7 +102,7 @@
#define IRBOUND 4095.9 /* Max magnification in Rot matrix */
#define PLOTBOUND 1000.0 /* Max magnification in Rot matrix */
-struct dm_internal *ogl_open(Tcl_Interp *interp, int argc, char **argv);
+struct dm_internal *ogl_open(Tcl_Interp *vinterp, int argc, char **argv);
HIDDEN int ogl_close(struct dm_internal *dmp);
HIDDEN int ogl_drawBegin(struct dm_internal *dmp);
HIDDEN int ogl_drawEnd(struct dm_internal *dmp);
@@ -655,11 +655,12 @@
*
*/
struct dm_internal *
-ogl_open(Tcl_Interp *interp, int argc, char **argv)
+ogl_open(Tcl_Interp *vinterp, int argc, char **argv)
{
static int count = 0;
GLfloat backgnd[4];
int make_square = -1;
+ Tcl_Interp *interp = (Tcl_Interp *)vinterp;
#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
int j, k;
Modified: brlcad/trunk/src/libdm/dm-osgl.cpp
===================================================================
--- brlcad/trunk/src/libdm/dm-osgl.cpp 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-osgl.cpp 2020-04-10 12:06:50 UTC (rev 75331)
@@ -80,7 +80,7 @@
#define PLOTBOUND 1000.0 /* Max magnification in Rot matrix */
extern "C" {
- struct dm_internal *osgl_open(Tcl_Interp *interp, int argc, char **argv);
+ struct dm_internal *osgl_open(void *vinterp, int argc, char **argv);
}
HIDDEN int osgl_close(struct dm_internal *dmp);
HIDDEN int osgl_drawBegin(struct dm_internal *dmp);
@@ -382,7 +382,7 @@
*
*/
extern "C" struct dm_internal *
-osgl_open(Tcl_Interp *interp, int argc, char **argv)
+osgl_open(Tcl_Interp *vinterp, int argc, char **argv)
{
static int count = 0;
GLfloat backgnd[4];
@@ -391,6 +391,7 @@
struct dm_internal *dmp = (struct dm_internal *)NULL;
struct modifiable_osgl_vars *mvars = NULL;
Tk_Window tkwin = (Tk_Window)NULL;
+ Tcl_Interp *interp = (Tcl_Interp *)vinterp;
struct dm_xvars *pubvars = NULL;
struct osgl_vars *privvars = NULL;
Modified: brlcad/trunk/src/libdm/dm-plot.c
===================================================================
--- brlcad/trunk/src/libdm/dm-plot.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-plot.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -132,9 +132,10 @@
if (!dmp)
return BRLCAD_ERROR;
+ Tcl_Interp *interp = (Tcl_Interp *)dmp->dm_interp;
struct plot_vars *privars = (struct plot_vars *)dmp->dm_vars.priv_vars;
- obj = Tcl_GetObjResult(dmp->dm_interp);
+ obj = Tcl_GetObjResult(interp);
if (Tcl_IsShared(obj))
obj = Tcl_DuplicateObj(obj);
@@ -156,7 +157,7 @@
MAT_COPY(privars->mod_mat, mat);
MAT_COPY(privars->plotmat, mat);
- Tcl_SetObjResult(dmp->dm_interp, obj);
+ Tcl_SetObjResult(interp, obj);
return BRLCAD_OK;
}
@@ -471,10 +472,10 @@
plot_debug(dm *dmp, int lvl)
{
Tcl_Obj *obj;
-
+ Tcl_Interp *interp = (Tcl_Interp *)dmp->dm_interp;
struct plot_vars *privars = (struct plot_vars *)dmp->dm_vars.priv_vars;
- obj = Tcl_GetObjResult(dmp->dm_interp);
+ obj = Tcl_GetObjResult(interp);
if (Tcl_IsShared(obj))
obj = Tcl_DuplicateObj(obj);
@@ -482,7 +483,7 @@
(void)fflush(privars->up_fp);
Tcl_AppendStringsToObj(obj, "flushed\n", (char *)NULL);
- Tcl_SetObjResult(dmp->dm_interp, obj);
+ Tcl_SetObjResult(interp, obj);
return BRLCAD_OK;
}
@@ -490,10 +491,10 @@
plot_logfile(dm *dmp, const char *filename)
{
Tcl_Obj *obj;
-
+ Tcl_Interp *interp = (Tcl_Interp *)dmp->dm_interp;
struct plot_vars *privars = (struct plot_vars *)dmp->dm_vars.priv_vars;
- obj = Tcl_GetObjResult(dmp->dm_interp);
+ obj = Tcl_GetObjResult(interp);
if (Tcl_IsShared(obj))
obj = Tcl_DuplicateObj(obj);
@@ -501,7 +502,7 @@
(void)fflush(privars->up_fp);
Tcl_AppendStringsToObj(obj, "flushed\n", (char *)NULL);
- Tcl_SetObjResult(dmp->dm_interp, obj);
+ Tcl_SetObjResult(interp, obj);
return BRLCAD_OK;
}
@@ -616,11 +617,12 @@
*
*/
dm *
-plot_open(Tcl_Interp *interp, int argc, const char *argv[])
+plot_open(void *vinterp, int argc, const char *argv[])
{
static int count = 0;
dm *dmp;
Tcl_Obj *obj;
+ Tcl_Interp *interp = (Tcl_Interp *)vinterp;
BU_ALLOC(dmp, struct dm_internal);
Modified: brlcad/trunk/src/libdm/dm-ps.c
===================================================================
--- brlcad/trunk/src/libdm/dm-ps.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-ps.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -127,8 +127,9 @@
ps_loadMatrix(dm *dmp, fastf_t *mat, int which_eye)
{
Tcl_Obj *obj;
+ Tcl_Interp *interp = (Tcl_Interp *)dmp->dm_interp;
- obj = Tcl_GetObjResult(dmp->dm_interp);
+ obj = Tcl_GetObjResult(interp);
if (Tcl_IsShared(obj))
obj = Tcl_DuplicateObj(obj);
@@ -151,7 +152,7 @@
MAT_COPY(mod_mat, mat);
MAT_COPY(psmat, mat);
- Tcl_SetObjResult(dmp->dm_interp, obj);
+ Tcl_SetObjResult(interp, obj);
return BRLCAD_OK;
}
@@ -586,11 +587,12 @@
*
*/
dm *
-ps_open(Tcl_Interp *interp, int argc, const char *argv[])
+ps_open(void *vinterp, int argc, const char *argv[])
{
static int count = 0;
dm *dmp;
Tcl_Obj *obj;
+ Tcl_Interp *interp = (Tcl_Interp *)vinterp;
BU_ALLOC(dmp, struct dm_internal);
Modified: brlcad/trunk/src/libdm/dm-tk.c
===================================================================
--- brlcad/trunk/src/libdm/dm-tk.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-tk.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -731,6 +731,7 @@
tk_configureWin_guts(struct dm_internal *dmp, int force)
{
int h, w;
+ Tcl_Interp *interp = (Tcl_Interp *)dmp->dm_interp;
/* nothing to do */
h = Tk_Height(((struct dm_xvars *)dmp->dm_vars.pub_vars)->xtkwin);
@@ -762,13 +763,13 @@
if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->tkfontset == 0) {
((struct dm_xvars *)dmp->dm_vars.pub_vars)->tkfontstruct =
- Tk_GetFont(dmp->dm_interp, ((struct dm_xvars
*)dmp->dm_vars.pub_vars)->xtkwin, FONT9);
+ Tk_GetFont(interp, ((struct dm_xvars
*)dmp->dm_vars.pub_vars)->xtkwin, FONT9);
if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->tkfontstruct == NULL) {
/* Try hardcoded backup font */
((struct dm_xvars *)dmp->dm_vars.pub_vars)->tkfontstruct =
- Tk_GetFont(dmp->dm_interp, ((struct dm_xvars
*)dmp->dm_vars.pub_vars)->xtkwin, FONTBACK);
+ Tk_GetFont(interp, ((struct dm_xvars
*)dmp->dm_vars.pub_vars)->xtkwin, FONTBACK);
if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->tkfontstruct ==
NULL) {
bu_log("dm-Tk: Can't open font '%s' or '%s'\n", FONT9,
FONTBACK);
@@ -907,21 +908,19 @@
};
-struct dm_internal *tk_open_dm(Tcl_Interp *interp, int argc, char **argv);
-
/* Display Manager package interface */
-
/*
* Fire up the display manager, and the display processor.
*
*/
struct dm_internal *
-tk_open_dm(Tcl_Interp *interp, int argc, char **argv)
+tk_open_dm(void *vinterp, int argc, char **argv)
{
static int count = 0;
int make_square = -1;
XGCValues gcv;
+ Tcl_Interp *interp = (Tcl_Interp *)vinterp;
struct bu_vls str = BU_VLS_INIT_ZERO;
struct bu_vls init_proc_vls = BU_VLS_INIT_ZERO;
Modified: brlcad/trunk/src/libdm/dm-txt.c
===================================================================
--- brlcad/trunk/src/libdm/dm-txt.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-txt.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -34,7 +34,7 @@
dm *
-txt_open(Tcl_Interp *interp, int argc, const char **argv)
+txt_open(void *interp, int argc, const char **argv)
{
dm *dmp;
Modified: brlcad/trunk/src/libdm/dm-wgl.c
===================================================================
--- brlcad/trunk/src/libdm/dm-wgl.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm-wgl.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -207,7 +207,7 @@
*
*/
dm *
-wgl_open(Tcl_Interp *interp, int argc, char *argv[])
+wgl_open(void *vinterp, int argc, char *argv[])
{
static int count = 0;
GLfloat backgnd[4];
@@ -216,10 +216,11 @@
struct bu_vls init_proc_vls = BU_VLS_INIT_ZERO;
struct modifiable_ogl_vars *mvars = NULL;
dm *dmp = (dm *)NULL;
+ Tcl_Interp *interp = (Tcl_Interp *)vinterp;
Tk_Window tkwin;
HWND hwnd;
HDC hdc;
- int gotvisual;
+ int gotvisual;
if ((tkwin = Tk_MainWindow(interp)) == NULL) {
return DM_NULL;
Modified: brlcad/trunk/src/libdm/dm_obj.c
===================================================================
--- brlcad/trunk/src/libdm/dm_obj.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm_obj.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -2989,7 +2989,7 @@
av[i+newargs] = argv[i];
av[i+newargs] = (const char *)NULL;
- if ((dmp = dm_open(interp, type, ac, av)) == DM_NULL) {
+ if ((dmp = dm_open((void *)interp, type, ac, av)) == DM_NULL) {
if (Tcl_IsShared(obj))
obj = Tcl_DuplicateObj(obj);
Modified: brlcad/trunk/src/libdm/dm_private.h
===================================================================
--- brlcad/trunk/src/libdm/dm_private.h 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/libdm/dm_private.h 2020-04-10 12:06:50 UTC (rev 75331)
@@ -141,7 +141,7 @@
int dm_fontsize; /**< @brief !0 override's the auto font size */
struct bu_structparse *vparse; /**< @brief Table listing settable
variables */
fb *fbp; /**< @brief Framebuffer associated with this
display instance */
- Tcl_Interp *dm_interp; /**< @brief Tcl interpreter */
+ void *dm_interp; /**< @brief interpreter */
};
__BEGIN_DECLS
Modified: brlcad/trunk/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/trunk/src/libtclcad/tclcad_obj.c 2020-04-09 21:17:10 UTC (rev
75330)
+++ brlcad/trunk/src/libtclcad/tclcad_obj.c 2020-04-10 12:06:50 UTC (rev
75331)
@@ -11588,7 +11588,7 @@
av[i+newargs] = argv[i];
av[i+newargs] = (const char *)NULL;
- new_gdvp->gdv_dmp = dm_open(current_top->to_interp, type, ac, av);
+ new_gdvp->gdv_dmp = dm_open((void *)current_top->to_interp, type, ac,
av);
if (new_gdvp->gdv_dmp == DM_NULL) {
bu_free((void *)new_gdvp->gdv_view, "ged_view");
bu_free((void *)new_gdvp, "ged_dm_view");
Modified: brlcad/trunk/src/mged/attach.c
===================================================================
--- brlcad/trunk/src/mged/attach.c 2020-04-09 21:17:10 UTC (rev 75330)
+++ brlcad/trunk/src/mged/attach.c 2020-04-10 12:06:50 UTC (rev 75331)
@@ -270,7 +270,7 @@
Tk_DeleteGenericHandler(doEvent, (ClientData)NULL);
#endif
- if ((DMP = dm_open(INTERP, dm_type, argc-1, argv)) == DM_NULL)
+ if ((DMP = dm_open((void *)INTERP, dm_type, argc-1, argv)) == DM_NULL)
return TCL_ERROR;
/*XXXX this eventually needs to move into Ogl's private structure */
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