Skip site navigation (1)Skip section navigation (2)
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>

next in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011104110559.4cf7d0b0.roddierod>