|
|
WinXP 系统上用Exceed链接SGI 工作站 运行X程序 如下:
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
Window create_simple_win(Display *display, int win_x,int win_y,unsigned int win_width,unsigned int win_height){
int screen_num;
unsigned int border_width;
unsigned long border;
unsigned long background;
Window win;
screen_num = DefaultScreen(display);
border_width = 2;
border = BlackPixel(display,screen_num);
background = WhitePixel(display,screen_num);
win = XCreateSimpleWindow(display,RootWindow(display,screen_num),
win_x,win_y,win_width,win_height,
border_width,border,background);
XMapWindow(display,win);
XFlush(display);
return win;
}
GC create_gc(Display *display,Window win,int reverse_vedio){
GC gc;
XGCValues values;
int screen_num;
unsigned int line_width = 2;
int line_style = LineSolid;
int cap_style = CapButt;
int join_style = JoinBevel;
unsigned long valuemask = 0;
screen_num = DefaultScreen(display);
gc = XCreateGC(display,win,valuemask,&values);
if(reverse_vedio){
XSetForeground(display,gc,WhitePixel(display,screen_num));
XSetBackground(display,gc,BlackPixel(display,screen_num));
}else{
XSetForeground(display,gc,BlackPixel(display,screen_num));
XSetBackground(display,gc,WhitePixel(display,screen_num));
};
XSetLineAttributes(display,gc,line_width,line_style,cap_style,join_style);
XMapWindow(display,win);
return gc;
}
main(int argc , char *argv[])
{
Display *display;
Window win;
GC gc;
Drawable d;
unsigned int win_width;
unsigned int win_height;
int win_x;
int win_y;
int screen_num;
char *display_name = getenv("DISPLAY");
display = XOpenDisplay(display_name);
screen_num = DefaultScreen(display);
if(display != NULL)
printf("happy \n");
win_width = DisplayWidth(display,screen_num)/3;
win_height = DisplayHeight(display,screen_num)/3;
win_x = win_y = 20;
win = create_simple_win(display,win_x,win_y,win_width,win_height);
win_x=win_y=40;
win_width = DisplayWidth(display,screen_num)/5;
win_height = DisplayHeight(display,screen_num)/5;
win = create_simple_win(display,win_x,win_y,win_width,win_height);
gc = create_gc(display, win, 1);
XSync(display,False);
d = win;
XDrawPoint(display,win,gc,5,5);
XDrawPoint(display,win,gc,7,10);
XDrawLine(display,d,gc,50,50,40,100);
sleep(100);
XCloseDisplay(display);
}
编译: cc -o mm m.c -lX11 |
|