D - Fullscreen in Dig
- J Anderson (44/44) Oct 19 2003 I don't know if this is a bug in dig or not, but (for me at least), it
I don't know if this is a bug in dig or not, but (for me at least), it
was producing fullscreen windows with *title bars* in windows XP.
Parhaps this is the intended behavior? Anyways, to anyone this may
help, here's my solution. I simply overloaded the method, but it could
be placed directly into the class for a permanent fix (although the
other CanvasGL should be changed as well).
//For CanvasGL in net.BurtonRadons.dig.
override void digPlatformRecreate () //Modified to do a fullscreen,
like it should be.
{
digPlatformStyle = WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN |
WS_CLIPSIBLINGS;
if (digPlatformFullscreen)
digPlatformStyle = WS_VISIBLE | WS_MAXIMIZE | WS_POPUP;
wglMakeCurrent ((HANDLE) 0, (HANDLE) 0);
wglDeleteContext (digPlatformGLRC);
DestroyWindow (digPlatformHWND);
delete digPlatformHWNDToControl [digPlatformHWND];
//hwndCreate (0, className, setCaption, style, null);
HANDLE parent;
int vleft = CW_USEDEFAULT;
int vtop = CW_USEDEFAULT;
int vwidth = width ();
int vheight = height ();
if (this.parent () !== null)
parent = this.parent ().digPlatformHWND;
if (digPlatformFullscreen)
{
parent = (HANDLE) 0;
vleft = 0;
vtop = 0;
}
digPlatformHWNDCreate(WS_EX_APPWINDOW |
(digPlatformFullscreen)?WS_EX_TOPMOST:0, digPlatformClassName,
digPlatformCaption, digPlatformStyle, vleft, vtop, vwidth, vheight,
parent, (HANDLE) 0, hinst, null);
digPlatformCreateContext ();
digPlatformMoved ();
childIterate (delegate void (Control child) {
child.digPlatformRecreate (); });
makeCurrent ();
}
Note, that it also places fullscreen windows at the top.
-Joel Anderson
Oct 19 2003








J Anderson <anderson badmama.com.au.REMOVE>