Revision: 75295
          http://sourceforge.net/p/brlcad/code/75295
Author:   starseeker
Date:     2020-04-08 16:14:44 +0000 (Wed, 08 Apr 2020)
Log Message:
-----------
More propagation of the context

Modified Paths:
--------------
    brlcad/trunk/include/dm.h
    brlcad/trunk/src/libdm/dm-Null.c
    brlcad/trunk/src/libdm/dm-Null.h
    brlcad/trunk/src/libdm/dm-X.c
    brlcad/trunk/src/libdm/dm-generic.c
    brlcad/trunk/src/libdm/dm-ogl.c
    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_private.h
    brlcad/trunk/src/libtclcad/dm_tcl.c
    brlcad/trunk/src/libtclcad/tclcad_obj.c
    brlcad/trunk/src/mged/attach.c
    brlcad/trunk/src/mged/mged.c
    brlcad/trunk/src/util/plot3-dm.c

Modified: brlcad/trunk/include/dm.h
===================================================================
--- brlcad/trunk/include/dm.h   2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/include/dm.h   2020-04-08 16:14:44 UTC (rev 75295)
@@ -229,7 +229,7 @@
  * initialize and manipulate the display context */
 typedef void * dm_win;
 typedef void * dm_dpy;
-typedef void * dm_cmap;
+typedef long unsigned int dm_cmap;
 typedef void * dm_visual_info;
 struct dm_context {
     /* Tk_MainWindow */
@@ -258,6 +258,10 @@
     void (*dm_window_geom)(dm *, dm_win, int *width, int *height);
     /* Tk_Display */
     dm_dpy (*dm_display)(dm *, dm_win);
+    /* Tk_GetPixmap */
+    // TODO
+    /* Tk_SetWindowBackground */
+    // TODO
 };
 
 __BEGIN_DECLS
@@ -374,7 +378,7 @@
 DM_EXPORT extern unsigned long dm_get_id(dm *dmp);
 DM_EXPORT extern void dm_set_id(dm *dmp, unsigned long new_id);
 DM_EXPORT extern int dm_get_displaylist(dm *dmp);
-DM_EXPORT extern int dm_close(dm *dmp);
+DM_EXPORT extern int dm_close(dm *dmp, struct dm_context *context);
 DM_EXPORT extern unsigned char *dm_get_bg(dm *dmp);
 DM_EXPORT extern int dm_set_bg(dm *dmp, unsigned char r, unsigned char g, 
unsigned char b);
 DM_EXPORT extern unsigned char *dm_get_fg(dm *dmp);

Modified: brlcad/trunk/src/libdm/dm-Null.c
===================================================================
--- brlcad/trunk/src/libdm/dm-Null.c    2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-Null.c    2020-04-08 16:14:44 UTC (rev 75295)
@@ -35,7 +35,7 @@
 
 
 int
-null_close(struct dm_internal *UNUSED(dmp))
+null_close(struct dm_internal *UNUSED(dmp), struct dm_context *UNUSED(context))
 {
     return 0;
 }

Modified: brlcad/trunk/src/libdm/dm-Null.h
===================================================================
--- brlcad/trunk/src/libdm/dm-Null.h    2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-Null.h    2020-04-08 16:14:44 UTC (rev 75295)
@@ -35,7 +35,7 @@
 
 
 DM_EXPORT extern int
-null_close(dm *dmp);
+null_close(dm *dmp, struct dm_context *context);
 
 
 DM_EXPORT extern int

Modified: brlcad/trunk/src/libdm/dm-X.c
===================================================================
--- brlcad/trunk/src/libdm/dm-X.c       2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-X.c       2020-04-08 16:14:44 UTC (rev 75295)
@@ -376,7 +376,7 @@
  * Gracefully release the display.
  */
 HIDDEN int
-X_close(struct dm_internal *dmp)
+X_close(struct dm_internal *dmp, struct dm_context *UNUSED(context))
 {
     struct dm_xvars *pubvars = (struct dm_xvars *)dmp->dm_vars.pub_vars;
     struct x_vars *privars = (struct x_vars *)dmp->dm_vars.priv_vars;
@@ -420,7 +420,7 @@
  *
  */
 struct dm_internal *
-X_open_dm(Tcl_Interp *interp, int argc, char **argv)
+X_open_dm(Tcl_Interp *interp, struct dm_context *context, int argc, char 
**argv)
 {
     static int count = 0;
     int make_square = -1;
@@ -527,7 +527,7 @@
 
     if (pubvars->xtkwin == NULL) {
        bu_log("X_open_dm: Failed to open %s\n", 
bu_vls_addr(&dmp->dm_pathName));
-       (void)X_close(dmp);
+       (void)X_close(dmp, context);
        return DM_NULL;
     }
 
@@ -542,7 +542,7 @@
 
     if (Tcl_Eval(interp, bu_vls_addr(&str)) == BRLCAD_ERROR) {
        bu_vls_free(&str);
-       (void)X_close(dmp);
+       (void)X_close(dmp, context);
        return DM_NULL;
     }
 
@@ -557,7 +557,7 @@
     /* make sure there really is a display before proceeding. */
     if (!pubvars->dpy) {
        bu_log("ERROR: Unable to attach to display (%s)\n", 
bu_vls_addr(&dmp->dm_pathName));
-       (void)X_close(dmp);
+       (void)X_close(dmp, context);
        return DM_NULL;
     }
 
@@ -573,7 +573,7 @@
     /* make sure there really is a screen before processing. */
     if (!screen) {
        bu_log("ERROR: Unable to attach to screen (%s)\n", 
bu_vls_addr(&dmp->dm_pathName));
-       (void)X_close(dmp);
+       (void)X_close(dmp, context);
        return DM_NULL;
     }
 
@@ -618,7 +618,7 @@
     /* must do this before MakeExist */
     if ((pubvars->vip = X_choose_visual(dmp)) == NULL) {
        bu_log("X_open_dm: Can't get an appropriate visual.\n");
-       (void)X_close(dmp);
+       (void)X_close(dmp, context);
        return DM_NULL;
     }
 

Modified: brlcad/trunk/src/libdm/dm-generic.c
===================================================================
--- brlcad/trunk/src/libdm/dm-generic.c 2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-generic.c 2020-04-08 16:14:44 UTC (rev 75295)
@@ -439,10 +439,10 @@
 }
 
 int
-dm_close(dm *dmp)
+dm_close(dm *dmp, struct dm_context *context)
 {
     if (UNLIKELY(!dmp)) return 0;
-    return dmp->dm_close(dmp);
+    return dmp->dm_close(dmp, context);
 }
 
 unsigned char *

Modified: brlcad/trunk/src/libdm/dm-ogl.c
===================================================================
--- brlcad/trunk/src/libdm/dm-ogl.c     2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-ogl.c     2020-04-08 16:14:44 UTC (rev 75295)
@@ -102,7 +102,7 @@
 #define IRBOUND 4095.9 /* Max magnification in Rot matrix */
 #define PLOTBOUND 1000.0       /* Max magnification in Rot matrix */
 
-HIDDEN int ogl_close(struct dm_internal *dmp);
+HIDDEN int ogl_close(struct dm_internal *dmp, struct dm_context *context);
 HIDDEN int ogl_drawBegin(struct dm_internal *dmp);
 HIDDEN int ogl_drawEnd(struct dm_internal *dmp);
 HIDDEN int ogl_normal(struct dm_internal *dmp);
@@ -604,7 +604,7 @@
  * Gracefully release the display.
  */
 HIDDEN int
-ogl_close(struct dm_internal *dmp)
+ogl_close(struct dm_internal *dmp, struct dm_context *UNUSED(context))
 {
     if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy) {
        if (((struct ogl_vars *)dmp->dm_vars.priv_vars)->glxc) {
@@ -743,7 +743,7 @@
 
     if ((tmp_dpy = XOpenDisplay(bu_vls_addr(&dmp->dm_dName))) == NULL) {
        bu_vls_free(&init_proc_vls);
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -753,7 +753,7 @@
 
        if (!XQueryExtension(tmp_dpy, "GLX", &return_val, &return_val, 
&return_val)) {
            bu_vls_free(&init_proc_vls);
-           (void)ogl_close(dmp);
+           (void)ogl_close(dmp, context);
            return DM_NULL;
        }
     }
@@ -818,7 +818,7 @@
     if (pubvars->xtkwin == NULL) {
        bu_log("dm-Ogl: Failed to open %s\n", bu_vls_addr(&dmp->dm_pathName));
        bu_vls_free(&init_proc_vls);
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -832,7 +832,7 @@
     if (Tcl_Eval(interp, bu_vls_addr(&str)) == BRLCAD_ERROR) {
        bu_vls_free(&init_proc_vls);
        bu_vls_free(&str);
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -846,7 +846,7 @@
     if (!(pubvars->dpy)) {
        bu_vls_free(&init_proc_vls);
        bu_vls_free(&str);
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -857,7 +857,7 @@
     /* must do this before MakeExist */
     if ((pubvars->vip=ogl_choose_visual(dmp, pubvars->xtkwin)) == NULL) {
        bu_log("ogl_open: Can't get an appropriate visual.\n");
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -872,7 +872,7 @@
     if ((privvars->glxc =
         glXCreateContext(pubvars->dpy, pubvars->vip, (GLXContext)NULL, 
GL_TRUE))==NULL) {
        bu_log("ogl_open: couldn't create glXContext.\n");
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -941,7 +941,7 @@
 
     if (!glXMakeCurrent(pubvars->dpy, pubvars->win, privvars->glxc)) {
        bu_log("ogl_open: Couldn't make context current\n");
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -948,7 +948,7 @@
     /* display list (fontOffset + char) will display a given ASCII char */
     if ((privvars->fontOffset = glGenLists(128))==0) {
        bu_log("dm-ogl: Can't make display lists for font.\n");
-       (void)ogl_close(dmp);
+       (void)ogl_close(dmp, context);
        return DM_NULL;
     }
 

Modified: brlcad/trunk/src/libdm/dm-plot.c
===================================================================
--- brlcad/trunk/src/libdm/dm-plot.c    2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-plot.c    2020-04-08 16:14:44 UTC (rev 75295)
@@ -72,7 +72,7 @@
  * Gracefully release the display.
  */
 HIDDEN int
-plot_close(dm *dmp)
+plot_close(dm *dmp, struct dm_context *UNUSED(context))
 {
     if (!dmp)
        return BRLCAD_ERROR;
@@ -652,7 +652,7 @@
                break;
            default:
                Tcl_AppendStringsToObj(obj, "bad PLOT option ", argv[0], "\n", 
(char *)NULL);
-               (void)plot_close(dmp);
+               (void)plot_close(dmp, NULL);
 
                Tcl_SetObjResult(interp, obj);
                return DM_NULL;
@@ -661,7 +661,7 @@
     }
     if (argv[0] == (char *)0) {
        Tcl_AppendStringsToObj(obj, "no filename or filter specified\n", (char 
*)NULL);
-       (void)plot_close(dmp);
+       (void)plot_close(dmp, NULL);
 
        Tcl_SetObjResult(interp, obj);
        return DM_NULL;
@@ -683,7 +683,7 @@
        if ((((struct plot_vars *)dmp->dm_vars.priv_vars)->up_fp =
             popen(bu_vls_addr(&((struct plot_vars 
*)dmp->dm_vars.priv_vars)->vls), "w")) == NULL) {
            perror(bu_vls_addr(&((struct plot_vars 
*)dmp->dm_vars.priv_vars)->vls));
-           (void)plot_close(dmp);
+           (void)plot_close(dmp, NULL);
            Tcl_SetObjResult(interp, obj);
            return DM_NULL;
        }
@@ -695,7 +695,7 @@
        if ((((struct plot_vars *)dmp->dm_vars.priv_vars)->up_fp =
             fopen(bu_vls_addr(&((struct plot_vars 
*)dmp->dm_vars.priv_vars)->vls), "wb")) == NULL) {
            perror(bu_vls_addr(&((struct plot_vars 
*)dmp->dm_vars.priv_vars)->vls));
-           (void)plot_close(dmp);
+           (void)plot_close(dmp, NULL);
            Tcl_SetObjResult(interp, obj);
            return DM_NULL;
        }

Modified: brlcad/trunk/src/libdm/dm-ps.c
===================================================================
--- brlcad/trunk/src/libdm/dm-ps.c      2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-ps.c      2020-04-08 16:14:44 UTC (rev 75295)
@@ -68,7 +68,7 @@
  * Gracefully release the display.
  */
 HIDDEN int
-ps_close(dm *dmp)
+ps_close(dm *dmp, struct dm_context *UNUSED(context))
 {
     if (!((struct ps_vars *)dmp->dm_vars.priv_vars)->ps_fp)
        return BRLCAD_ERROR;
@@ -634,7 +634,7 @@
                    argv++;
                    if (argv[0] == (char *)0 || argv[0][0] == '-') {
                        Tcl_AppendStringsToObj(obj, ps_usage, (char *)0);
-                       (void)ps_close(dmp);
+                       (void)ps_close(dmp, NULL);
 
                        Tcl_SetObjResult(interp, obj);
                        return DM_NULL;
@@ -649,7 +649,7 @@
                    argv++;
                    if (argv[0] == (char *)0 || argv[0][0] == '-') {
                        Tcl_AppendStringsToObj(obj, ps_usage, (char *)0);
-                       (void)ps_close(dmp);
+                       (void)ps_close(dmp, NULL);
 
                        Tcl_SetObjResult(interp, obj);
                        return DM_NULL;
@@ -664,7 +664,7 @@
                    argv++;
                    if (argv[0] == (char *)0 || argv[0][0] == '-') {
                        Tcl_AppendStringsToObj(obj, ps_usage, (char *)0);
-                       (void)ps_close(dmp);
+                       (void)ps_close(dmp, NULL);
 
                        Tcl_SetObjResult(interp, obj);
                        return DM_NULL;
@@ -682,7 +682,7 @@
                        argv++;
                        if (argv[0] == (char *)0 || argv[0][0] == '-') {
                            Tcl_AppendStringsToObj(obj, ps_usage, (char *)0);
-                           (void)ps_close(dmp);
+                           (void)ps_close(dmp, NULL);
 
                            Tcl_SetObjResult(interp, obj);
                            return DM_NULL;
@@ -700,7 +700,7 @@
                    argv++;
                    if (argv[0] == (char *)0 || argv[0][0] == '-') {
                        Tcl_AppendStringsToObj(obj, ps_usage, (char *)0);
-                       (void)ps_close(dmp);
+                       (void)ps_close(dmp, NULL);
 
                        Tcl_SetObjResult(interp, obj);
                        return DM_NULL;
@@ -713,7 +713,7 @@
                break;
            default:
                Tcl_AppendStringsToObj(obj, ps_usage, (char *)0);
-               (void)ps_close(dmp);
+               (void)ps_close(dmp, NULL);
 
                Tcl_SetObjResult(interp, obj);
                return DM_NULL;
@@ -723,7 +723,7 @@
 
     if (argv[0] == (char *)0) {
        Tcl_AppendStringsToObj(obj, "no filename specified\n", (char *)NULL);
-       (void)ps_close(dmp);
+       (void)ps_close(dmp, NULL);
 
        Tcl_SetObjResult(interp, obj);
        return DM_NULL;
@@ -736,7 +736,7 @@
        Tcl_AppendStringsToObj(obj, "f_ps: Error opening file - ",
                               ((struct ps_vars 
*)dmp->dm_vars.priv_vars)->fname,
                               "\n", (char *)NULL);
-       (void)ps_close(dmp);
+       (void)ps_close(dmp, NULL);
 
        Tcl_SetObjResult(interp, obj);
        return DM_NULL;

Modified: brlcad/trunk/src/libdm/dm-tk.c
===================================================================
--- brlcad/trunk/src/libdm/dm-tk.c      2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-tk.c      2020-04-08 16:14:44 UTC (rev 75295)
@@ -80,7 +80,7 @@
  * Gracefully release the display.
  */
 HIDDEN int
-tk_close(struct dm_internal *dmp)
+tk_close(struct dm_internal *dmp, struct dm_context *UNUSED(context))
 {
     if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy) {
        if (((struct x_vars *)dmp->dm_vars.priv_vars)->gc)
@@ -907,7 +907,7 @@
 };
 
 
-struct dm_internal *tk_open_dm(Tcl_Interp *interp, int argc, char **argv);
+struct dm_internal *tk_open_dm(Tcl_Interp *interp, struct dm_context *context, 
int argc, char **argv);
 
 /* Display Manager package interface */
 
@@ -917,7 +917,7 @@
  *
  */
 struct dm_internal *
-tk_open_dm(Tcl_Interp *interp, int argc, char **argv)
+tk_open_dm(Tcl_Interp *interp, struct dm_context *context, int argc, char 
**argv)
 {
     static int count = 0;
     int make_square = -1;
@@ -1007,7 +1007,7 @@
 
     if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->xtkwin == NULL) {
        bu_log("tk_open: Failed to open %s\n", bu_vls_addr(&dmp->dm_pathName));
-       (void)tk_close(dmp);
+       (void)tk_close(dmp, context);
        return DM_NULL;
     }
 
@@ -1020,7 +1020,7 @@
 
     if (Tcl_Eval(interp, bu_vls_addr(&str)) == BRLCAD_ERROR) {
        bu_vls_free(&str);
-       (void)tk_close(dmp);
+       (void)tk_close(dmp, context);
 
        return DM_NULL;
     }
@@ -1034,7 +1034,7 @@
 
     /* make sure there really is a display before proceeding. */
     if (!dpy) {
-       (void)tk_close(dmp);
+       (void)tk_close(dmp, context);
        return DM_NULL;
     }
 

Modified: brlcad/trunk/src/libdm/dm-txt.c
===================================================================
--- brlcad/trunk/src/libdm/dm-txt.c     2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-txt.c     2020-04-08 16:14:44 UTC (rev 75295)
@@ -53,7 +53,7 @@
 
 
 HIDDEN int
-txt_close(dm *UNUSED(dmp))
+txt_close(dm *UNUSED(dmp), struct dm_context *UNUSED(context))
 {
     bu_log("close called\n");
     return 0;

Modified: brlcad/trunk/src/libdm/dm-wgl.c
===================================================================
--- brlcad/trunk/src/libdm/dm-wgl.c     2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm-wgl.c     2020-04-08 16:14:44 UTC (rev 75295)
@@ -207,7 +207,7 @@
  *
  */
 dm *
-wgl_open(Tcl_Interp *interp, int argc, char *argv[])
+wgl_open(Tcl_Interp *interp, struct dm_context *context, int argc, char 
*argv[])
 {
     static int count = 0;
     GLfloat backgnd[4];
@@ -344,7 +344,7 @@
     if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->xtkwin == NULL) {
        bu_log("open_gl: Failed to open %s\n", bu_vls_addr(&dmp->dm_pathName));
        bu_vls_free(&init_proc_vls);
-       (void)wgl_close(dmp);
+       (void)wgl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -359,7 +359,7 @@
        bu_log("open_wgl: _init_dm failed\n");
        bu_vls_free(&init_proc_vls);
        bu_vls_free(&str);
-       (void)wgl_close(dmp);
+       (void)wgl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -371,7 +371,7 @@
 
     /* make sure there really is a display before proceeding. */
     if (!((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy) {
-       (void)wgl_close(dmp);
+       (void)wgl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -392,7 +392,7 @@
        gotvisual = wgl_choose_visual(dmp, ((struct dm_xvars 
*)dmp->dm_vars.pub_vars)->xtkwin);
     if (!gotvisual) {
        bu_log("wgl_open: Can't get an appropriate visual.\n");
-       (void)wgl_close(dmp);
+       (void)wgl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -402,7 +402,7 @@
     if ((((struct wgl_vars *)dmp->dm_vars.priv_vars)->glxc =
         wglCreateContext(((struct dm_xvars 
*)dmp->dm_vars.pub_vars)->hdc))==NULL) {
        bu_log("wgl_open: couldn't create glXContext.\n");
-       (void)wgl_close(dmp);
+       (void)wgl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -409,7 +409,7 @@
     if (!wglMakeCurrent(((struct dm_xvars *)dmp->dm_vars.pub_vars)->hdc,
                        ((struct wgl_vars *)dmp->dm_vars.priv_vars)->glxc)) {
        bu_log("wgl_open: couldn't make context current\n");
-       (void)wgl_close(dmp);
+       (void)wgl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -416,7 +416,7 @@
     /* display list (fontOffset + char) will display a given ASCII char */
     if ((((struct wgl_vars *)dmp->dm_vars.priv_vars)->fontOffset = 
glGenLists(128))==0) {
        bu_log("wgl_open: couldn't make display lists for font.\n");
-       (void)wgl_close(dmp);
+       (void)wgl_close(dmp, context);
        return DM_NULL;
     }
 
@@ -653,7 +653,7 @@
  *  Gracefully release the display.
  */
 HIDDEN int
-wgl_close(dm *dmp)
+wgl_close(dm *dmp, struct dm_context *UNUSED(context))
 {
     if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy) {
        if (((struct wgl_vars *)dmp->dm_vars.priv_vars)->glxc) {

Modified: brlcad/trunk/src/libdm/dm_private.h
===================================================================
--- brlcad/trunk/src/libdm/dm_private.h 2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libdm/dm_private.h 2020-04-08 16:14:44 UTC (rev 75295)
@@ -63,7 +63,7 @@
  * Interface to a specific Display Manager
  */
 struct dm_internal {
-    int (*dm_close)(struct dm_internal *dmp);
+    int (*dm_close)(struct dm_internal *dmp, struct dm_context *);
     int (*dm_drawBegin)(struct dm_internal *dmp);      /**< @brief formerly 
dmr_prolog */
     int (*dm_drawEnd)(struct dm_internal *dmp);                /**< @brief 
formerly dmr_epilog */
     int (*dm_normal)(struct dm_internal *dmp);

Modified: brlcad/trunk/src/libtclcad/dm_tcl.c
===================================================================
--- brlcad/trunk/src/libtclcad/dm_tcl.c 2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/libtclcad/dm_tcl.c 2020-04-08 16:14:44 UTC (rev 75295)
@@ -50,6 +50,7 @@
 #include "rt/geom.h"
 #include "rt/solid.h"
 #include "dm.h"
+#include "tclcad.h"
 
 #ifdef DM_X
 #  include "dm/dm_xvars.h"
@@ -2568,7 +2569,7 @@
 #endif
 
     bu_vls_free(&dmop->dmo_name);
-    (void)dm_close(dmop->dmo_dmp);
+    (void)dm_close(dmop->dmo_dmp, &dm_tk_context);
     BU_LIST_DEQUEUE(&dmop->l);
     bu_free((void *)dmop, "dmo_deleteProc: dmop");
 
@@ -2712,9 +2713,9 @@
 static int
 tk_window_set_visual(dm *UNUSED(dmp), dm_win win, dm_visual_info visual, 
dm_cmap cmap)
 {
-    Colormap *color_map = (Colormap *)cmap;
+    Colormap color_map = (Colormap )cmap;
     XVisualInfo *xvis = (XVisualInfo *)visual;
-    return Tk_SetWindowVisual((Tk_Window)(win), xvis->visual, xvis->depth, 
*color_map);
+    return Tk_SetWindowVisual((Tk_Window)(win), xvis->visual, xvis->depth, 
color_map);
 }
 
 /* Tk_DestroyWindow */

Modified: brlcad/trunk/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/trunk/src/libtclcad/tclcad_obj.c     2020-04-08 15:53:37 UTC (rev 
75294)
+++ brlcad/trunk/src/libtclcad/tclcad_obj.c     2020-04-08 16:14:44 UTC (rev 
75295)
@@ -6090,7 +6090,7 @@
     bu_vls_free(&gdvp->gdv_name);
     bu_vls_free(&gdvp->gdv_callback);
     bu_vls_free(&gdvp->gdv_edit_motion_delta_callback);
-    (void)dm_close(gdvp->gdv_dmp);
+    (void)dm_close(gdvp->gdv_dmp, &dm_tk_context);
     bu_free((void *)gdvp->gdv_view, "ged_view");
     to_close_fbs(gdvp);
     bu_free((void *)gdvp, "ged_dm_view");

Modified: brlcad/trunk/src/mged/attach.c
===================================================================
--- brlcad/trunk/src/mged/attach.c      2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/mged/attach.c      2020-04-08 16:14:44 UTC (rev 75295)
@@ -389,7 +389,7 @@
        curr_dm_list->dml_tie->cl_tie = (struct dm_list *)NULL;
 
     if (need_close)
-       dm_close(DMP);
+       dm_close(DMP, &dm_tk_context);
 
     RT_FREE_VLIST(&curr_dm_list->dml_p_vlist);
     BU_LIST_DEQUEUE(&curr_dm_list->l);

Modified: brlcad/trunk/src/mged/mged.c
===================================================================
--- brlcad/trunk/src/mged/mged.c        2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/mged/mged.c        2020-04-08 16:14:44 UTC (rev 75295)
@@ -2460,7 +2460,7 @@
        BU_LIST_DEQUEUE(&(p->l));
 
        if (p && p->dml_dmp) {
-           dm_close(p->dml_dmp);
+           dm_close(p->dml_dmp, &dm_tk_context);
            RT_FREE_VLIST(&p->dml_p_vlist);
            mged_slider_free_vls(p);
            bu_free(p, "release: curr_dm_list");

Modified: brlcad/trunk/src/util/plot3-dm.c
===================================================================
--- brlcad/trunk/src/util/plot3-dm.c    2020-04-08 15:53:37 UTC (rev 75294)
+++ brlcad/trunk/src/util/plot3-dm.c    2020-04-08 16:14:44 UTC (rev 75295)
@@ -985,7 +985,7 @@
 cmd_exit(ClientData UNUSED(clientData), Tcl_Interp *UNUSED(interp), int 
UNUSED(argc), char **UNUSED(argv))
 {
     if (dmp != DM_NULL)
-       dm_close(dmp);
+       dm_close(dmp, &dm_tk_context);
 
     bu_exit (0, NULL);
 

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