diff options
Diffstat (limited to 'TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util32.cpp')
-rw-r--r-- | TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util32.cpp | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util32.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util32.cpp new file mode 100644 index 00000000000..38a7926427d --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util32.cpp @@ -0,0 +1,81 @@ +/* $Id$ */ + +#include "ace/OS.h" +#include <stdio.h> +#include <X11/Xlib.h> +#include <X11/Xutil.h> +#include "video.h" +#include "proto.h" +#include "ui.h" /* include user interface */ + +ACE_RCSID(mpeg_client, util32, "$Id$") + +/* + * Return a pointer to a full color bit visual on the dpy + */ +Visual * +FindFullColorVisual (Display *dpy, int *depth) +{ + XVisualInfo vinfo; + XVisualInfo *vinfo_ret; + int numitems, maxdepth; + +#ifdef __cplusplus + vinfo.c_class = TrueColor; +#else + vinfo.class = TrueColor; +#endif + vinfo_ret = XGetVisualInfo(dpy, VisualClassMask, &vinfo, &numitems); + + if (numitems == 0) return NULL; + + maxdepth = 0; + while(numitems > 0) { + if (vinfo_ret[numitems-1].depth > maxdepth) { + maxdepth = vinfo_ret[numitems-1 ].depth; + } + numitems--; + } + XFree(vinfo_ret); + + if (maxdepth < 24) return NULL; + + if (XMatchVisualInfo(dpy, DefaultScreen(dpy), maxdepth, + TrueColor, &vinfo)) { + *depth = maxdepth; + return vinfo.visual; + } + + return NULL; +} + +Window +CreateFullColorWindow (Display *dpy, int x, int y, int w, int h) +{ + int depth; + Visual *visual; + XSetWindowAttributes xswa; + Window temp; + unsigned int mask; + unsigned int valclass; + int screen; + + screen = XDefaultScreen(dpy); + valclass = InputOutput; /* Could be InputOnly */ + visual = FindFullColorVisual (dpy, &depth); + if (visual == NULL) { + return 0; + } + mask = CWBackPixel | CWColormap | CWBorderPixel; + xswa.colormap = XCreateColormap(dpy, XRootWindow(dpy, screen), + visual, AllocNone); + xswa.background_pixel = BlackPixel(dpy, DefaultScreen(dpy)); + xswa.border_pixel = WhitePixel(dpy, DefaultScreen(dpy)); + + temp = XCreateWindow(dpy, MonitorWindow(), x, y, w, h, + 1, depth, valclass, visual, mask, &xswa); + + UISetwin(temp); + + return temp; +} |