Revision: 75293
          http://sourceforge.net/p/brlcad/code/75293
Author:   starseeker
Date:     2020-04-07 23:41:10 +0000 (Tue, 07 Apr 2020)
Log Message:
-----------
First tentative test of context

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

Modified: brlcad/trunk/src/libdm/dm-generic.c
===================================================================
--- brlcad/trunk/src/libdm/dm-generic.c 2020-04-07 23:30:24 UTC (rev 75292)
+++ brlcad/trunk/src/libdm/dm-generic.c 2020-04-07 23:41:10 UTC (rev 75293)
@@ -61,7 +61,7 @@
 
 #ifdef DM_OGL
 #  if defined(HAVE_TK)
-extern dm *ogl_open(Tcl_Interp *interp, int argc, const char **argv);
+extern dm *ogl_open(Tcl_Interp *interp, struct dm_context *context, int argc, 
const char **argv);
 extern void ogl_fogHint(dm *dmp, int fastfog);
 extern int ogl_share_dlist(dm *dmp1, dm *dmp2);
 #  endif
@@ -113,7 +113,7 @@
 
 
 dm *
-dm_open(Tcl_Interp *interp, struct dm_context *UNUSED(context), int type, int 
argc, const char *argv[])
+dm_open(Tcl_Interp *interp, struct dm_context *context, int type, int argc, 
const char *argv[])
 {
     switch (type) {
        case DM_TYPE_NULL:
@@ -137,7 +137,7 @@
 #ifdef DM_OGL
 #  if defined(HAVE_TK)
        case DM_TYPE_OGL:
-           return ogl_open(interp, argc, argv);
+           return ogl_open(interp, context, argc, argv);
 #  endif
 #endif
 #ifdef DM_OSG

Modified: brlcad/trunk/src/libdm/dm-ogl.c
===================================================================
--- brlcad/trunk/src/libdm/dm-ogl.c     2020-04-07 23:30:24 UTC (rev 75292)
+++ brlcad/trunk/src/libdm/dm-ogl.c     2020-04-07 23:41:10 UTC (rev 75293)
@@ -102,7 +102,6 @@
 #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);
 HIDDEN int ogl_close(struct dm_internal *dmp);
 HIDDEN int ogl_drawBegin(struct dm_internal *dmp);
 HIDDEN int ogl_drawEnd(struct dm_internal *dmp);
@@ -638,7 +637,7 @@
  *
  */
 struct dm_internal *
-ogl_open(Tcl_Interp *interp, int argc, char **argv)
+ogl_open(Tcl_Interp *interp, struct dm_context *context, int argc, char **argv)
 {
     static int count = 0;
     GLfloat backgnd[4];
@@ -660,16 +659,12 @@
     Display *tmp_dpy = (Display *)NULL;
     struct dm_internal *dmp = (struct dm_internal *)NULL;
     struct modifiable_ogl_vars *mvars = NULL;
-    Tk_Window tkwin = (Tk_Window)NULL;
+    dm_win tkwin = NULL;
     int screen_number = -1;
 
     struct dm_xvars *pubvars = NULL;
     struct ogl_vars *privvars = NULL;
 
-    if ((tkwin = Tk_MainWindow(interp)) == NULL) {
-       return DM_NULL;
-    }
-
     BU_GET(dmp, struct dm_internal);
 
     *dmp = dm_ogl; /* struct copy */
@@ -680,6 +675,10 @@
     dmp->dm_bits_per_channel = 8;
     bu_vls_init(&(dmp->dm_log));
 
+    if ((tkwin = (*context->dm_window_main)(dmp)) == NULL) {
+       return DM_NULL;
+    }
+
     BU_ALLOC(dmp->dm_vars.pub_vars, struct dm_xvars);
     if (dmp->dm_vars.pub_vars == (void *)NULL) {
        bu_free(dmp, "ogl_open: dmp");
@@ -790,7 +789,7 @@
        /* Make xtkwin a toplevel window */
        pubvars->xtkwin =
            Tk_CreateWindowFromPath(interp,
-                                   tkwin,
+                                   (Tk_Window)tkwin,
                                    bu_vls_addr(&dmp->dm_pathName),
                                    bu_vls_addr(&dmp->dm_dName));
        pubvars->top = pubvars->xtkwin;
@@ -799,7 +798,7 @@
 
        cp = strrchr(bu_vls_addr(&dmp->dm_pathName), (int)'.');
        if (cp == bu_vls_addr(&dmp->dm_pathName)) {
-           pubvars->top = tkwin;
+           pubvars->top = (Tk_Window)tkwin;
        } else {
            struct bu_vls top_vls = BU_VLS_INIT_ZERO;
 
@@ -806,7 +805,7 @@
            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), tkwin);
+               Tk_NameToWindow(interp, bu_vls_addr(&top_vls), 
(Tk_Window)tkwin);
            bu_vls_free(&top_vls);
        }
 

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