00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef SEEN_DM_PEX
00027 #define SEEN_DM_PEX
00028
00029
00030
00031
00032
00033
00034 #define GED_TO_Xx(_dmp, x) ((int)(((x)/4096.0+0.5)*((struct pex_vars *)((_dmp)->dmr_vars))->width))
00035 #define GED_TO_Xy(_dmp, x) ((int)((0.5-(x)/4096.0)*((struct pex_vars *)((_dmp)->dmr_vars))->height))
00036 #define Xx_TO_GED(_dmp, x) ((int)(((x)/(double)((struct pex_vars *)((_dmp)->dmr_vars))->width - 0.5) * 4095))
00037 #define Xy_TO_GED(_dmp, x) ((int)((0.5 - (x)/(double)((struct pex_vars *)((_dmp)->dmr_vars))->height) * 4095))
00038
00039 #define TRY_DEPTHCUE 0
00040 #define Pex_MV_O(_m) offsetof(struct modifiable_pex_vars, _m)
00041
00042 struct modifiable_pex_vars {
00043 #if TRY_DEPTHCUE
00044 int cue;
00045 #endif
00046 int perspective_mode;
00047 int dummy_perspective;
00048 };
00049
00050 struct pex_vars {
00051 struct bu_list l;
00052 Display *dpy;
00053 Window win;
00054 Tk_Window xtkwin;
00055 int width;
00056 int height;
00057 int omx, omy;
00058 unsigned int mb_mask;
00059 int perspective_angle;
00060 XFontStruct *fontstruct;
00061 GC gc;
00062 #ifdef DOUBLE_BUFFERING_WITH_PIXMAPS
00063 Pixmap pix;
00064 int pix_width, pix_height;
00065 #endif
00066 PEXRenderer renderer;
00067 PEXRendererAttributes rattrs;
00068 int is_monochrome;
00069 unsigned long black,gray,white,yellow,red,blue;
00070 unsigned long bd, bg, fg;
00071 struct modifiable_pex_vars mvars;
00072 };
00073
00074 extern void Pex_configure_window_shape();
00075 extern void Pex_establish_perspective();
00076 extern void Pex_set_perspective();
00077 extern struct pex_vars head_pex_vars;
00078
00079 #endif
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090