Revision: 75434
http://sourceforge.net/p/brlcad/code/75434
Author: starseeker
Date: 2020-04-17 14:16:09 +0000 (Fri, 17 Apr 2020)
Log Message:
-----------
Start stubbing in the callback versions of dm_internal_var
Modified Paths:
--------------
brlcad/branches/dm-fb-merge/src/libdm/X/color.c
brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c
brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.h
brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c
brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.h
brlcad/branches/dm-fb-merge/src/libdm/include/dm_xvars.h
brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp
brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.h
brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp
brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.h
brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c
brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.h
brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c
Modified: brlcad/branches/dm-fb-merge/src/libdm/X/color.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/X/color.c 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/X/color.c 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -34,7 +34,7 @@
#include "vmath.h"
#include "bu/malloc.h"
-#include "../include/dm_xvars.h"
+#include "./dm-X.h"
/* Return the allocated pixel value that most closely represents
the color requested. */
Modified: brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.c 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -1715,6 +1715,35 @@
{"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}
};
+struct bu_structparse dm_Xvars_vparse[] = {
+ {"%x", 1, "dpy", XVARS_MV_O(dpy),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "win", XVARS_MV_O(win),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "top", XVARS_MV_O(top),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "tkwin", XVARS_MV_O(xtkwin),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "depth", XVARS_MV_O(depth),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "cmap", XVARS_MV_O(cmap),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "vip", XVARS_MV_O(vip),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "fontstruct", XVARS_MV_O(fontstruct),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devmotionnotify", XVARS_MV_O(devmotionnotify),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonpress", XVARS_MV_O(devbuttonpress),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonrelease", XVARS_MV_O(devbuttonrelease),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
+};
+
+int
+X_internal_var(struct bu_vls *result, struct dm *dmp, const char *key)
+{
+ if (!dmp || !result) return -1;
+ if (!key) {
+ // Print all current vars
+ bu_vls_struct_print2(result, "dm internal X variables",
dm_Xvars_vparse, (const char *)dmp->i->dm_vars.pub_vars);
+ return 0;
+ }
+ // Print specific var
+ bu_vls_struct_item_named(result, dm_Xvars_vparse, key, (const char
*)dmp->i->dm_vars.pub_vars, ',');
+ return 0;
+}
+
/* Display Manager package interface */
struct dm_impl dm_X_impl = {
X_close,
Modified: brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.h 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/X/dm-X.h 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -34,6 +34,8 @@
#define NUM_PIXELS 216 /* CUBE_DIMENSION * CUBE_DIMENSION * CUBE_DIMENSION
*/
#define ColormapNull (Colormap *)NULL
+#define INIT_XCOLOR(c) memset((c), 0, sizeof(XColor))
+
struct x_vars {
GC gc;
Pixmap pix;
Modified: brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.c 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -2584,6 +2584,45 @@
{"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
};
+int
+ogl_geometry_request(struct dm *dmp, int width, int height)
+{
+ if (!dmp) return -1;
+ Tk_GeometryRequest(((struct dm_glxvars
*)dmp->i->dm_vars.pub_vars)->xtkwin, width, height);
+ return 0;
+}
+
+#define GLXVARS_MV_O(_m) offsetof(struct dm_glxvars, _m)
+
+struct bu_structparse dm_glxvars_vparse[] = {
+ {"%x", 1, "dpy", GLXVARS_MV_O(dpy),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "win", GLXVARS_MV_O(win),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "top", GLXVARS_MV_O(top),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "tkwin", GLXVARS_MV_O(xtkwin),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "depth", GLXVARS_MV_O(depth),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "cmap", GLXVARS_MV_O(cmap),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "vip", GLXVARS_MV_O(vip),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "fontstruct", GLXVARS_MV_O(fontstruct),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devmotionnotify", GLXVARS_MV_O(devmotionnotify),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonpress", GLXVARS_MV_O(devbuttonpress),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonrelease",
GLXVARS_MV_O(devbuttonrelease), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
+};
+
+int
+ogl_internal_var(struct bu_vls *result, struct dm *dmp, const char *key)
+{
+ if (!dmp || !result) return -1;
+ if (!key) {
+ // Print all current vars
+ bu_vls_struct_print2(result, "dm internal GLX variables",
dm_glxvars_vparse, (const char *)dmp->i->dm_vars.pub_vars);
+ return 0;
+ }
+ // Print specific var
+ bu_vls_struct_item_named(result, dm_glxvars_vparse, key, (const char
*)dmp->i->dm_vars.pub_vars, ',');
+ return 0;
+}
+
struct dm_impl dm_ogl_impl = {
ogl_close,
ogl_drawBegin,
@@ -2624,8 +2663,8 @@
ogl_openFb,
ogl_get_internal,
ogl_put_internal,
- NULL,
- NULL,
+ ogl_geometry_request,
+ ogl_internal_var,
0,
1, /* has displaylist */
0, /* no stereo by default */
Modified: brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.h 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/glx/dm-ogl.h 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -54,6 +54,20 @@
GLclampf r, g, b;
};
+struct dm_glxvars {
+ Display *dpy;
+ Window win;
+ Tk_Window top;
+ Tk_Window xtkwin;
+ int depth;
+ Colormap cmap;
+ XVisualInfo *vip;
+ XFontStruct *fontstruct;
+ int devmotionnotify;
+ int devbuttonpress;
+ int devbuttonrelease;
+};
+
__BEGIN_DECLS
extern void ogl_fogHint();
Modified: brlcad/branches/dm-fb-merge/src/libdm/include/dm_xvars.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/include/dm_xvars.h 2020-04-17
13:24:03 UTC (rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/include/dm_xvars.h 2020-04-17
14:16:09 UTC (rev 75434)
@@ -53,8 +53,6 @@
#define XVARS_MV_O(_m) offsetof(struct dm_xvars, _m)
-#define INIT_XCOLOR(c) memset((c), 0, sizeof(XColor))
-
/* FIXME: this structure really should not be variable-width and it
* does not allow multiple interfaces to be simultaneously compiled.
*/
Modified: brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp 2020-04-17
13:24:03 UTC (rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.cpp 2020-04-17
14:16:09 UTC (rev 75434)
@@ -2482,6 +2482,43 @@
{"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
};
+int
+osgl_geometry_request(struct dm *dmp, int width, int height)
+{
+ if (!dmp) return -1;
+ Tk_GeometryRequest(((struct dm_osglvars
*)dmp->i->dm_vars.pub_vars)->xtkwin, width, height);
+ return 0;
+}
+
+#define OSGLVARS_MV_O(_m) offsetof(struct dm_osglvars, _m)
+
+struct bu_structparse dm_osglvars_vparse[] = {
+ {"%x", 1, "dpy", OSGLVARS_MV_O(dpy),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "win", OSGLVARS_MV_O(win),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "top", OSGLVARS_MV_O(top),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "tkwin", OSGLVARS_MV_O(xtkwin),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "depth", OSGLVARS_MV_O(depth),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "cmap", OSGLVARS_MV_O(cmap),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devmotionnotify",
OSGLVARS_MV_O(devmotionnotify), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonpress", OSGLVARS_MV_O(devbuttonpress),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonrelease",
OSGLVARS_MV_O(devbuttonrelease), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
+};
+
+int
+osgl_internal_var(struct bu_vls *result, struct dm *dmp, const char *key)
+{
+ if (!dmp || !result) return -1;
+ if (!key) {
+ // Print all current vars
+ bu_vls_struct_print2(result, "dm internal OSGL variables",
dm_osglvars_vparse, (const char *)dmp->i->dm_vars.pub_vars);
+ return 0;
+ }
+ // Print specific var
+ bu_vls_struct_item_named(result, dm_osglvars_vparse, key, (const char
*)dmp->i->dm_vars.pub_vars, ',');
+ return 0;
+}
+
struct dm_impl dm_osgl_impl = {
osgl_close,
osgl_drawBegin,
@@ -2522,8 +2559,8 @@
osgl_openFb,
osgl_get_internal,
osgl_put_internal,
- NULL,
- NULL,
+ osgl_geometry_request,
+ osgl_internal_var,
0,
1, /* has displaylist */
0, /* no stereo by default */
Modified: brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.h 2020-04-17
13:24:03 UTC (rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/osgl/dm-osgl.h 2020-04-17
14:16:09 UTC (rev 75434)
@@ -121,6 +121,18 @@
#endif
};
+struct dm_osglvars {
+ Display *dpy;
+ Window win;
+ Tk_Window top;
+ Tk_Window xtkwin;
+ int depth;
+ Colormap cmap;
+ int devmotionnotify;
+ int devbuttonpress;
+ int devbuttonrelease;
+};
+
__BEGIN_DECLS
#ifdef __cplusplus
Modified: brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.cpp 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -985,6 +985,46 @@
{"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}
};
+
+int
+qt_geometry_request(struct dm *dmp, int width, int height)
+{
+ if (!dmp) return -1;
+ Tk_GeometryRequest(((struct dm_qtvars *)dmp->i->dm_vars.pub_vars)->xtkwin,
width, height);
+ return 0;
+}
+
+#define QTVARS_MV_O(_m) offsetof(struct dm_qtvars, _m)
+
+struct bu_structparse dm_qtvars_vparse[] = {
+ {"%x", 1, "dpy", QTVARS_MV_O(dpy),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "win", QTVARS_MV_O(win),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "top", QTVARS_MV_O(top),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "tkwin", QTVARS_MV_O(xtkwin),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "depth", QTVARS_MV_O(depth),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "cmap", QTVARS_MV_O(cmap),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devmotionnotify", QTVARS_MV_O(devmotionnotify),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonpress", QTVARS_MV_O(devbuttonpress),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonrelease", QTVARS_MV_O(devbuttonrelease),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
+};
+
+int
+qt_internal_var(struct bu_vls *result, struct dm *dmp, const char *key)
+{
+ if (!dmp || !result) return -1;
+ if (!key) {
+ // Print all current vars
+ bu_vls_struct_print2(result, "dm internal Qt variables",
dm_qtvars_vparse, (const char *)dmp->i->dm_vars.pub_vars);
+ return;
+ }
+ // Print specific var
+ bu_vls_struct_item_named(result, dm_qtvars_vparse, key, (const char
*)dmp->i->dm_vars.pub_vars, ',');
+
+ return 0;
+}
+
+
__END_DECLS
struct dm_impl dm_qt_impl = {
@@ -1027,8 +1067,8 @@
qt_openFb,
NULL,
NULL,
- NULL,
- NULL,
+ qt_geometry_request,
+ qt_internal_var,
0,
0, /* no displaylist */
0, /* no stereo */
Modified: brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.h 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/qt/dm-qt.h 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -80,6 +80,19 @@
const char *name;
};
+struct qt_xvars {
+ Display *dpy;
+ Window win;
+ Tk_Window top;
+ Tk_Window xtkwin;
+ int depth;
+ Colormap cmap;
+ int devmotionnotify;
+ int devbuttonpress;
+ int devbuttonrelease;
+};
+
+
#endif /* DM_QT */
#endif /* DM_QT_H */
Modified: brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -852,6 +852,44 @@
{"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}
};
+int
+tk_geometry_request(struct dm *dmp, int width, int height)
+{
+ if (!dmp) return -1;
+ Tk_GeometryRequest(((struct dm_xvars *)dmp->i->dm_vars.pub_vars)->xtkwin,
width, height);
+ return 0;
+}
+
+#define TKVARS_MV_O(_m) offsetof(struct dm_tkvars, _m)
+
+struct bu_structparse dm_tkvars_vparse[] = {
+ {"%x", 1, "dpy", TKVARS_MV_O(dpy),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "win", TKVARS_MV_O(win),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "top", TKVARS_MV_O(top),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "tkwin", TKVARS_MV_O(xtkwin),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "depth", TKVARS_MV_O(depth),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "cmap", TKVARS_MV_O(cmap),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devmotionnotify", TKVARS_MV_O(devmotionnotify),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonpress", TKVARS_MV_O(devbuttonpress),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonrelease", TKVARS_MV_O(devbuttonrelease),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
+};
+
+int
+tk_internal_var(struct bu_vls *result, struct dm *dmp, const char *key)
+{
+ if (!dmp || !result) return -1;
+ if (!key) {
+ // Print all current vars
+ bu_vls_struct_print2(result, "dm internal Tk variables",
dm_tkvars_vparse, (const char *)dmp->i->dm_vars.pub_vars);
+ return 0;
+ }
+ // Print specific var
+ bu_vls_struct_item_named(result, dm_tkvars_vparse, key, (const char
*)dmp->i->dm_vars.pub_vars, ',');
+ return 0;
+}
+
+
struct dm_impl dm_tk_impl = {
tk_close,
tk_drawBegin,
@@ -892,8 +930,8 @@
null_openFb,
NULL,
NULL,
- NULL,
- NULL,
+ tk_geometry_request,
+ tk_internal_var,
0,
0, /* no displaylist */
0, /* no stereo */
Modified: brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.h 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.h 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -34,6 +34,8 @@
#define NUM_PIXELS 216 /* CUBE_DIMENSION * CUBE_DIMENSION * CUBE_DIMENSION
*/
#define ColormapNull (Colormap *)NULL
+#define INIT_XCOLOR(c) memset((c), 0, sizeof(XColor))
+
struct tk_vars {
GC gc;
Pixmap pix;
@@ -49,6 +51,18 @@
fastf_t ppmm_y; /* pixel per mm in y */
};
+struct dm_tkvars {
+ Display *dpy;
+ Window win;
+ Tk_Window top;
+ Tk_Window xtkwin;
+ int depth;
+ Colormap cmap;
+ int devmotionnotify;
+ int devbuttonpress;
+ int devbuttonrelease;
+};
+
#endif /* DM_TK_H */
/** @} */
/*
Modified: brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c 2020-04-17 13:24:03 UTC
(rev 75433)
+++ brlcad/branches/dm-fb-merge/src/libdm/wgl/dm-wgl.c 2020-04-17 14:16:09 UTC
(rev 75434)
@@ -2127,6 +2127,47 @@
{"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
};
+
+int
+wgl_geometry_request(struct dm *dmp, int width, int height)
+{
+ if (!dmp) return -1;
+ Tk_GeometryRequest(((struct dm_xvars *)dmp->i->dm_vars.pub_vars)->xtkwin,
width, height);
+ return 0;
+}
+
+#define WGLVARS_MV_O(_m) offsetof(struct dm_wglvars, _m)
+
+struct bu_structparse dm_wglvars_vparse[] = {
+ {"%x", 1, "dpy", WGLVARS_MV_O(dpy),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "win", WGLVARS_MV_O(win),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "top", WGLVARS_MV_O(top),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "tkwin", WGLVARS_MV_O(xtkwin),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "depth", WGLVARS_MV_O(depth),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "cmap", WGLVARS_MV_O(cmap),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "vip", WGLVARS_MV_O(vip),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "fontstruct", WGLVARS_MV_O(fontstruct),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%x", 1, "hdc", WGLVARS_MV_O(hdc),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devmotionnotify", WGLVARS_MV_O(devmotionnotify),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonpress", WGLVARS_MV_O(devbuttonpress),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"%d", 1, "devbuttonrelease",
WGLVARS_MV_O(devbuttonrelease), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL },
+ {"", 0, (char *)0, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }
+};
+
+int
+wgl_internal_var(struct bu_vls *result, struct dm *dmp, const char *key)
+{
+ if (!dmp || !result) return -1;
+ if (!key) {
+ // Print all current vars
+ bu_vls_struct_print2(result, "dm internal WGL variables",
dm_wglvars_vparse, (const char *)dmp->i->dm_vars.pub_vars);
+ return 0;
+ }
+ // Print specific var
+ bu_vls_struct_item_named(result, dm_wglvars_vparse, key, (const char
*)dmp->i->dm_vars.pub_vars, ',');
+ return 0;
+}
+
struct dm_impl dm_wgl_impl = {
wgl_close,
wgl_drawBegin,
@@ -2167,8 +2208,8 @@
wgl_openFb,
wgl_get_internal,
wgl_put_internal,
- NULL,
- NULL,
+ wgl_geometry_request,
+ wgl_internal_var,
0,
1, /* has displaylist */
0, /* no stereo by default */
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