Revision: 75298
          http://sourceforge.net/p/brlcad/code/75298
Author:   starseeker
Date:     2020-04-08 16:31:52 +0000 (Wed, 08 Apr 2020)
Log Message:
-----------
Start easing in the context calls.  Need to test as I go here, because any step 
could break things and too many changes will make debugging impractical.

Modified Paths:
--------------
    brlcad/trunk/src/libdm/dm-ogl.c

Modified: brlcad/trunk/src/libdm/dm-ogl.c
===================================================================
--- brlcad/trunk/src/libdm/dm-ogl.c     2020-04-08 16:22:51 UTC (rev 75297)
+++ brlcad/trunk/src/libdm/dm-ogl.c     2020-04-08 16:31:52 UTC (rev 75298)
@@ -604,21 +604,21 @@
  * Gracefully release the display.
  */
 HIDDEN int
-ogl_close(struct dm_internal *dmp, struct dm_context *UNUSED(context))
+ogl_close(struct dm_internal *dmp, struct dm_context *context)
 {
-    if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy) {
-       if (((struct ogl_vars *)dmp->dm_vars.priv_vars)->glxc) {
-           glXMakeCurrent(((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy, 
None, NULL);
-           glXDestroyContext(((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy,
-                             ((struct ogl_vars 
*)dmp->dm_vars.priv_vars)->glxc);
+    struct dm_xvars *pubvars = (struct dm_xvars *)dmp->dm_vars.pub_vars;
+    struct ogl_vars *privvars = (struct ogl_vars *)dmp->dm_vars.priv_vars;
+    if (pubvars->dpy) {
+       if (privvars->glxc) {
+           glXMakeCurrent(pubvars->dpy, None, NULL);
+           glXDestroyContext(pubvars->dpy, privvars->glxc);
        }
 
-       if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->cmap)
-           XFreeColormap(((struct dm_xvars *)dmp->dm_vars.pub_vars)->dpy,
-                         ((struct dm_xvars *)dmp->dm_vars.pub_vars)->cmap);
+       if (pubvars->cmap)
+           XFreeColormap(pubvars->dpy, pubvars->cmap);
 
-       if (((struct dm_xvars *)dmp->dm_vars.pub_vars)->xtkwin)
-           Tk_DestroyWindow(((struct dm_xvars 
*)dmp->dm_vars.pub_vars)->xtkwin);
+       if (pubvars->xtkwin)
+           (*context->dm_window_destroy)(dmp, pubvars->xtkwin);
     }
 
     bu_vls_free(&dmp->dm_pathName);
@@ -787,11 +787,8 @@
 
     if (dmp->dm_top) {
        /* Make xtkwin a toplevel window */
-       pubvars->xtkwin =
-           Tk_CreateWindowFromPath(interp,
-                                   (Tk_Window)tkwin,
-                                   bu_vls_addr(&dmp->dm_pathName),
-                                   bu_vls_addr(&dmp->dm_dName));
+       pubvars->xtkwin = 
(Tk_Window)(*context->dm_window_create_from_path)(dmp, tkwin,
+               bu_vls_cstr(&dmp->dm_pathName), bu_vls_cstr(&dmp->dm_dName));
        pubvars->top = pubvars->xtkwin;
     } else {
        char *cp;
@@ -804,15 +801,12 @@
 
            bu_vls_strncpy(&top_vls, (const char 
*)bu_vls_addr(&dmp->dm_pathName), cp - bu_vls_addr(&dmp->dm_pathName));
 
-           pubvars->top =
-               Tk_NameToWindow(interp, bu_vls_addr(&top_vls), 
(Tk_Window)tkwin);
+           pubvars->top = (Tk_Window)(*context->dm_window_from_name)(dmp, 
bu_vls_cstr(&top_vls), tkwin);
            bu_vls_free(&top_vls);
        }
 
        /* Make xtkwin an embedded window */
-       pubvars->xtkwin =
-           Tk_CreateWindow(interp, pubvars->top,
-                           cp + 1, (char *)NULL);
+       pubvars->xtkwin = (Tk_Window)(*context->dm_window_create_embedded)(dmp, 
pubvars->top, cp + 1);
     }
 
     if (pubvars->xtkwin == 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