Date: Sun, 4 Nov 2001 11:05:59 -0500 From: Rod Person <roddierod@hotpop.com> To: Hackers FreeBSD <freebsd-hackers@freebsd.org> Subject: Trying to learn X programming. Message-ID: <20011104110559.4cf7d0b0.roddierod@hotpop.com>
index | next in thread | raw e-mail
This is a little Linux code that changes resolution of X on the fly.
There seems to be some differences in the Linux and FreeBSD use of XOpenDisplay. I read the man pages and tried changing the code a few different ways but it won't compile. Here's how I try to compile....
gcc -o wmres wmres.c -I/usr/X11R6/include -IXmu -IX11
Any pointers or a good reference on the web somewhere. All I have are man pages and code at this point.
#include <X11/Xlib.h>
#include <X11/extensions/xf86dga.h>
#include <X11/extensions/xf86vmode.h>
#include <stdio.h>
int main (int argc, char *argv[])
{
Display *dpy;
XF86VidModeModeInfo **vm_modelines;
int vm_count;
int i;
int width, height;
dpy=XOpenDisplay(DefaultScreen(0));
XF86VidModeGetAllModeLines(dpy,XDefaultScreen(dpy),&vm_count,&vm_modelines);
if(!(vm_count)) {
fprintf(stderr,"error: no video modes found\n");
exit(1);
}
if(argc > 2) {
width = atoi(argv[1]);
height = atoi(argv[2]);
for(i=0; i < vm_count; i++) {
if(vm_modelines[i]->hdisplay==width && vm_modelines[i]->vdisplay==height) {
XF86VidModeSwitchToMode(dpy,XDefaultScreen(dpy),vm_modelines[i]);
XFlush(dpy);
return 0;
}
}
}
printf("\"Resolutions\" MENU\n");
for(i=0; i < vm_count; i++) {
printf("\"%dx%d\" EXEC %s %d %d\n",vm_modelines[i]->hdisplay,vm_modelines[i]->vdisplay, argv[0], vm_modelines[i]->hdisplay, vm_modelines[i]->vdisplay);
}
printf("\"Resolutions\" END\n");
return 0;
}
thanks
Rod
roddierod@hotpop.com
http://storm.prohosting.com/osbeef/osbeef.htm
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011104110559.4cf7d0b0.roddierod>
