source: trunk/source/geometry/solids/test/X11RayTracer/xdemo.c@ 1353

Last change on this file since 1353 was 1350, checked in by garnier, 15 years ago

update to last version 4.9.4

File size: 1.8 KB
RevLine 
[1350]1#include "xdemo.h"
2
3void init_x () {
4
5 dis = XOpenDisplay ( NULL );
6 if ( dis == NULL)
7 {
8 fprintf ( stderr , "Display: connection impossible\n");
9 exit (1);
10 }
11
12 screen = DefaultScreen ( dis );
13 depth = DefaultDepth ( dis , screen );
14 width = DisplayWidth ( dis , screen );
15 height = DisplayHeight ( dis , screen );
16
17 if ( depth != 24 )
18 {
19 fprintf ( stderr , "This code works only in 24 bpp..\n" );
20 XCloseDisplay ( dis );
21 exit (1);
22 }
23
24 winRoot = DefaultRootWindow ( dis );
25 winAttr.border_pixel = BlackPixel ( dis , screen );
26 winAttr.background_pixel = BlackPixel ( dis , screen );
27 winMask = CWBackPixel | CWBorderPixel;
28
29 win = XCreateWindow ( dis , winRoot , X , Y , W , H , BORDER , depth ,
30 InputOutput , CopyFromParent , winMask , &winAttr );
31
32 XStoreName ( dis , win , NAME );
33
34 XSelectInput ( dis , win , KeyPressMask );
35
36 winHint.flags = PPosition | PMinSize | PMaxSize ;
37 winHint.x = X;
38 winHint.y = Y;
39 winHint.max_width = winHint.min_width = W;
40 winHint.max_height = winHint.min_height = H;
41 XSetWMNormalHints ( dis , win , &winHint );
42
43 XClearWindow ( dis , win );
44 XMapRaised ( dis , win );
45 XFlush ( dis );
46
47 buffer = ( char * ) malloc ( 4*W*H );
48 xim = XCreateImage ( dis , CopyFromParent , depth , ZPixmap , 0 ,
49 buffer , W , H , 32 , W*4 );
50
51 gcVal.foreground = 0;
52 gcVal.background = 0;
53 gcMask = GCForeground | GCBackground;
54
55 gc = XCreateGC ( dis , win , gcMask , &gcVal );
56
57}
58
59
60int event_x () {
61
62 XEvent XEv;
63
64 return ( ! XCheckWindowEvent ( dis , win , KeyPressMask , &XEv ) );
65
66}
67
68
69void close_x () {
70
71 XFreeGC ( dis , gc );
72 XDestroyImage ( xim );
73 XDestroyWindow ( dis , win );
74 XCloseDisplay ( dis );
75
76};
77
Note: See TracBrowser for help on using the repository browser.