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