comparison src/glyphs.h @ 3092:141c2920ea48

[xemacs-hg @ 2005-11-25 01:41:31 by crestani] Incremental Garbage Collector
author crestani
date Fri, 25 Nov 2005 01:42:08 +0000
parents 1e7cc382eb16
children d674024a8674
comparison
equal deleted inserted replaced
3091:c22d8984148c 3092:141c2920ea48
1065 /************************************************************************/ 1065 /************************************************************************/
1066 1066
1067 typedef struct glyph_cachel glyph_cachel; 1067 typedef struct glyph_cachel glyph_cachel;
1068 struct glyph_cachel 1068 struct glyph_cachel
1069 { 1069 {
1070 #ifdef NEW_GC
1071 struct lrecord_header header;
1072 #endif /* not NEW_GC */
1070 Lisp_Object glyph; 1073 Lisp_Object glyph;
1071 1074
1072 unsigned int dirty :1; /* I'm copying faces here. I'm not 1075 unsigned int dirty :1; /* I'm copying faces here. I'm not
1073 sure why we need two dirty 1076 sure why we need two dirty
1074 flags. Maybe because an image 1077 flags. Maybe because an image
1079 1082
1080 unsigned short width; 1083 unsigned short width;
1081 unsigned short ascent; 1084 unsigned short ascent;
1082 unsigned short descent; 1085 unsigned short descent;
1083 }; 1086 };
1087
1088 #ifdef NEW_GC
1089 typedef struct glyph_cachel Lisp_Glyph_Cachel;
1090
1091 DECLARE_LRECORD (glyph_cachel, Lisp_Glyph_Cachel);
1092
1093 #define XGLYPH_CACHEL(x) \
1094 XRECORD (x, glyph_cachel, Lisp_Glyph_Cachel)
1095 #define wrap_glyph_cachel(p) wrap_record (p, glyph_cachel)
1096 #define GLYPH_CACHEL_P(x) RECORDP (x, glyph_cachel)
1097 #define CHECK_GLYPH_CACHEL(x) CHECK_RECORD (x, glyph_cachel)
1098 #define CONCHECK_GLYPH_CACHEL(x) CONCHECK_RECORD (x, glyph_cachel)
1099 #endif /* NEW_GC */
1084 1100
1085 #define CONT_GLYPH_INDEX (glyph_index) 0 1101 #define CONT_GLYPH_INDEX (glyph_index) 0
1086 #define TRUN_GLYPH_INDEX (glyph_index) 1 1102 #define TRUN_GLYPH_INDEX (glyph_index) 1
1087 #define HSCROLL_GLYPH_INDEX (glyph_index) 2 1103 #define HSCROLL_GLYPH_INDEX (glyph_index) 2
1088 #define CONTROL_GLYPH_INDEX (glyph_index) 3 1104 #define CONTROL_GLYPH_INDEX (glyph_index) 3
1177 int unmap_subwindow_instance_cache_mapper (Lisp_Object key, 1193 int unmap_subwindow_instance_cache_mapper (Lisp_Object key,
1178 Lisp_Object value, void* finalize); 1194 Lisp_Object value, void* finalize);
1179 1195
1180 struct expose_ignore 1196 struct expose_ignore
1181 { 1197 {
1198 #ifdef NEW_GC
1199 struct lrecord_header header;
1200 #endif /* NEW_GC */
1182 int x, y; 1201 int x, y;
1183 int width, height; 1202 int width, height;
1184 struct expose_ignore *next; 1203 struct expose_ignore *next;
1185 }; 1204 };
1186 1205
1206 #ifdef NEW_GC
1207 DECLARE_LRECORD (expose_ignore, struct expose_ignore);
1208 #define XEXPOSE_IGNORE(x) XRECORD (x, expose_ignore, struct expose_ignore)
1209 #define wrap_expose_ignore(p) wrap_record (p, expose_ignore)
1210 #define EXPOSE_IGNOREP(x) RECORDP (x, expose_ignore)
1211 #define CHECK_EXPOSE_IGNORE(x) CHECK_RECORD (x, expose_ignore)
1212 #define CONCHECK_EXPOSE_IGNORE(x) CONCHECK_RECORD (x, expose_ignore)
1213 #endif /* NEW_GC */
1214
1187 int check_for_ignored_expose (struct frame* f, int x, int y, int width, 1215 int check_for_ignored_expose (struct frame* f, int x, int y, int width,
1188 int height); 1216 int height);
1189 extern int hold_ignored_expose_registration; 1217 extern int hold_ignored_expose_registration;
1190 1218
1191 #define ROUND_UP(arg, unit) (((int)((arg) + (unit) - 1) / (int)(unit)) * (int)(unit)) 1219 #define ROUND_UP(arg, unit) (((int)((arg) + (unit) - 1) / (int)(unit)) * (int)(unit))