1 // $Header: x:/prj/tech/libsrc/dev2d/RCS/context.h 1.8 1997/01/27 11:20:25 KEVIN Exp $
12 #define gr_min(x,y) ((x) < (y) ? (x) : (y))
13 #define gr_max(x,y) ((x) > (y) ? (x) : (y))
15 #define gr_init_gc(c) \
17 grs_canvas *__c = (c); \
19 __c->gc.safe_clip.f.right=fix_make(__c->bm.w,0);\
20 __c->gc.safe_clip.f.bot =fix_make(__c->bm.h,0);\
21 __c->gc.clip = __c->gc.safe_clip; \
24 /* macros for setting the clipping region of a specified canvas. */
25 extern void gr_cset_fix_cliprect(grs_canvas
* c
, fix l
, fix t
, fix r
, fix b
);
27 #define gr_cset_cliprect(c, l, t, r, b) \
28 gr_cset_fix_cliprect(c,fix_make(l,0),fix_make(t,0),fix_make(r,0),fix_make(b,0))
30 #define gr_set_cliprect(l, t, r, b) \
31 gr_cset_cliprect(grd_canvas,l,t,r,b)
33 #define gr_set_fix_cliprect(l, t, r, b) \
34 gr_cset_fix_cliprect(grd_canvas,l,t,r,b)
36 extern void gr_safe_cset_fix_cliprect(grs_canvas
* c
, fix l
, fix t
, fix r
, fix b
);
38 #define gr_safe_cset_cliprect(canv, l, t, r, b) \
39 gr_safe_cset_fix_cliprect(canv,fix_make(l,0),fix_make(t,0),fix_make(r,0),fix_make(b,0))
41 #define gr_safe_set_cliprect(l, t, r, b) \
42 gr_safe_cset_cliprect(grd_canvas,l,t,r,b)
44 #define gr_safe_set_fix_cliprect(l, t, r, b) \
45 gr_safe_cset_fix_cliprect(grd_canvas,l,t,r,b)
47 #define gr_init_fix_clip(clip, l, t, r, b) \
48 (clip)->f.sten=NULL, \
49 (clip)->f.left=(l), (clip)->f.top=(t), \
50 (clip)->f.right=(r),(clip)->f.bot=(b)
52 #define gr_set_clipmask(t,b,mask) \
53 grd_clip.top=(t), grd_clip.bot=(b), \
54 grd_clip.sten = (mask)
56 /* macros for getting parts of the graphic context of the current canvas. */
57 #define gr_set_fcolor(color) (grd_canvas->gc.fcolor=color)
58 #define gr_set_fcolor8(col8) \
60 switch (grd_bm.type) { \
64 ((ushort *)pixpal)[col8]);\
67 gr_set_fcolor(col8); \
71 #define gr_get_fcolor() (grd_canvas->gc.fcolor)
72 #define gr_set_bcolor(color) (grd_canvas->gc.bcolor=color)
73 #define gr_get_bcolor() (grd_canvas->gc.bcolor)
74 #define gr_set_text_attr(attr) (grd_canvas->gc.text_attr=attr)
75 #define gr_get_text_attr() (grd_canvas->gc.text_attr)
77 #define gr_set_fill_type(_ft) (grd_canvas->gc.fill_type = _ft)
78 #define gr_get_fill_type() (grd_canvas->gc.fill_type)
80 #define gr_set_fill_parm(parm) \
81 (grd_canvas->gc.fill_parm=(long)(parm))
82 #define gr_get_fill_parm() (grd_canvas->gc.fill_parm)
84 #define gr_cset_clipmask(canvas,t,b,mask) \
85 (canvas)->gc.clip.i.top=(t), (canvas)->gc.clip.i.bot=(b), \
86 (canvas)->gc.clip.i.sten = (mask)
87 #define gr_cset_fcolor(canvas,color) ((canvas)->gc.fcolor=color)
88 #define gr_cget_fcolor(canvas) ((canvas)->gc.fcolor)
89 #define gr_cset_bcolor(canvas,color) ((canvas)->gc.bcolor=color)
90 #define gr_cget_bcolor(canvas) ((canvas)->gc.bcolor)
91 #define gr_cset_font(canvas,fnt) ((canvas)->gc.font=fnt)
92 #define gr_cget_font(canvas) ((canvas)->gc.font)
94 /* macros for getting part of the clipping region of the current canvas. */
95 #define gr_get_cliprect(l,t,r,b) (*(l)=grd_clip.left,*(t)=grd_clip.top, \
96 *(r)=grd_clip.right,*(b)=grd_clip.bot)
97 #define gr_get_fix_cliprect(l,t,r,b) (*(l)=grd_fix_clip.left, \
98 *(t)=grd_fix_clip.top,*(r)=grd_fix_clip.right,*(b)=grd_fix_clip.bot)
99 #define gr_get_clip_l() (grd_clip.left)
100 #define gr_get_clip_t() (grd_clip.top)
101 #define gr_get_clip_r() (grd_clip.right)
102 #define gr_get_clip_b() (grd_clip.bot)
103 #define gr_get_fclip_l() (grd_fix_clip.left)
104 #define gr_get_fclip_t() (grd_fix_clip.top)
105 #define gr_get_fclip_r() (grd_fix_clip.right)
106 #define gr_get_fclip_b() (grd_fix_clip.bot)
108 /* How about some handy macros to save and restore a cliprect */
109 #define gr_save_cliprect(save) *(save) = grd_clip
110 #define gr_restore_cliprect(save) grd_clip = *(save)
112 /* macros for getting part of the clipping region of a specified canvas. */
113 #define gr_cget_cliprect(c,l,t,r,b) (\
114 *(l)=(c)->gc.clip.i.left,*(t)=(c)->gc.clip.i.top,\
115 *(r)=(c)->gc.clip.i.right,*(b)=(c)->gc.clip.i.bot)
116 #define gr_cget_fix_cliprect(l,t,r,b) (\
117 *(l)=(c)->gc.clip.f.left,*(t)=(c)->gc.clip.f.top,\
118 *(r)=(c)->gc.clip.f.right,*(b)=(c)->gc.clip.f.bot)
119 #define gr_cget_clip_l(c) ((c)->gc.clip.i.left)
120 #define gr_cget_clip_t(c) ((c)->gc.clip.i.top)
121 #define gr_cget_clip_r(c) ((c)->gc.clip.i.right)
122 #define gr_cget_clip_b(c) ((c)->gc.clip.i.bot)
123 #define gr_cget_fclip_l(c) ((c)->gc.clip.f.left)
124 #define gr_cget_fclip_t(c) ((c)->gc.clip.f.top)
125 #define gr_cget_fclip_r(c) ((c)->gc.clip.f.right)
126 #define gr_cget_fclip_b(c) ((c)->gc.clip.f.bot)
128 #define gr_set_unpack_buf(buf) (grd_unpack_buf = (buf))
129 #define gr_get_unpack_buf() (grd_unpack_buf)
130 #define gr_set_unpack_buf_size(buf_size) (grd_unpack_buf_size = (buf_size))
131 #define gr_get_unpack_buf_size() (grd_unpack_buf_size)
132 #define gr_set_light_tab(ltab) (grd_light_table = (ltab))
133 #define gr_get_light_tab() (grd_light_table)
134 #define gr_set_light_tab_size(ltab_size) (grd_light_table_size = (ltab_size))
135 #define gr_get_light_tab_size() (grd_light_table_size)
140 #endif /* !__CTXMAC */