EyesP.h revision 26df5c7c
1a1d141d5Smrg
2a1d141d5Smrg#ifndef _EyesP_h
3a1d141d5Smrg#define _EyesP_h
4a1d141d5Smrg
5a1d141d5Smrg#include "Eyes.h"
6a1d141d5Smrg#include <X11/CoreP.h>
72ddb6cf1Smrg#ifdef XRENDER
82ddb6cf1Smrg#include <X11/extensions/Xrender.h>
92ddb6cf1Smrg#endif
10a1d141d5Smrg#include "transform.h"
1126df5c7cSmrg#ifdef PRESENT
1226df5c7cSmrg#include <X11/Xlib-xcb.h>
1326df5c7cSmrg#include <xcb/xcb.h>
1426df5c7cSmrg#include <xcb/present.h>
1526df5c7cSmrg#include <xcb/xfixes.h>
1626df5c7cSmrg#include <xcb/damage.h>
1726df5c7cSmrg#endif
18a1d141d5Smrg
19a1d141d5Smrg#define SEG_BUFF_SIZE		128
20a1d141d5Smrg
21a1d141d5Smrg/* New fields for the eyes widget instance record */
22a1d141d5Smrgtypedef struct {
232ddb6cf1Smrg	 Pixel		pixel[PART_SHAPE];
242ddb6cf1Smrg	 GC		gc[PART_MAX];
25a1d141d5Smrg/* start of graph stuff */
26a1d141d5Smrg	 int		backing_store;	/* backing store variety */
27a1d141d5Smrg	 Boolean	reverse_video;	/* swap fg and bg pixels */
28a1d141d5Smrg	 Boolean	shape_window;	/* use SetWindowShapeMask */
29a1d141d5Smrg	 int		update;		/* current timeout index */
30a1d141d5Smrg	 TPoint		mouse;		/* old mouse position */
31a1d141d5Smrg	 TPoint		pupil[2];	/* pupil position */
32a1d141d5Smrg	 Transform	t;
33a1d141d5Smrg	 Transform	maskt;
34a1d141d5Smrg	 XtIntervalId	interval_id;
35a1d141d5Smrg	 Pixmap		shape_mask;	/* window shape */
3626df5c7cSmrg         Boolean        has_xi2;
372ddb6cf1Smrg#ifdef XRENDER
382ddb6cf1Smrg	 Boolean    	render;
392ddb6cf1Smrg	 Picture	picture;
402ddb6cf1Smrg	 Picture	fill[PART_SHAPE];
4126df5c7cSmrg#endif
4226df5c7cSmrg#ifdef PRESENT
4326df5c7cSmrg         Pixmap         back_buffer;
4426df5c7cSmrg         xcb_damage_damage_t back_damage;
4526df5c7cSmrg         xcb_xfixes_region_t back_region;
4626df5c7cSmrg         Boolean        present;
472ddb6cf1Smrg#endif
482ddb6cf1Smrg	 Boolean    	distance;
49a1d141d5Smrg   } EyesPart;
50a1d141d5Smrg
5126df5c7cSmrg#define xt_xcb(w)       (XGetXCBConnection(XtDisplay(w)))
5226df5c7cSmrg
53a1d141d5Smrg/* Full instance record declaration */
54a1d141d5Smrgtypedef struct _EyesRec {
55a1d141d5Smrg   CorePart core;
56a1d141d5Smrg   EyesPart eyes;
57a1d141d5Smrg   } EyesRec;
58a1d141d5Smrg
59a1d141d5Smrg/* New fields for the Eyes widget class record */
60a1d141d5Smrgtypedef struct {int dummy;} EyesClassPart;
61a1d141d5Smrg
62a1d141d5Smrg/* Full class record declaration. */
63a1d141d5Smrgtypedef struct _EyesClassRec {
64a1d141d5Smrg   CoreClassPart core_class;
65a1d141d5Smrg   EyesClassPart eyes_class;
66a1d141d5Smrg   } EyesClassRec;
67a1d141d5Smrg
68a1d141d5Smrg/* Class pointer. */
69a1d141d5Smrgextern EyesClassRec eyesClassRec;
70a1d141d5Smrg
71a1d141d5Smrg#endif /* _EyesP_h */
72