]> git.eshelyaron.com Git - emacs.git/commitdiff
The following changes consolidate some of the gui-independent
authorKim F. Storm <storm@cua.dk>
Sun, 16 Mar 2003 20:44:55 +0000 (20:44 +0000)
committerKim F. Storm <storm@cua.dk>
Sun, 16 Mar 2003 20:44:55 +0000 (20:44 +0000)
parts of the processing and drawing of "glyph strings" from
xterm.c, w32term.c, and macterm.c into xdisp.c.

src/ChangeLog

index 3aa05b6bcdbf3c084e565885e4c15f31949e804d..afe2c938d97adcfe122992903596b6a02b5fb714 100644 (file)
@@ -1,3 +1,84 @@
+2003-03-16  Kim F. Storm  <storm@cua.dk>
+
+       The following changes consolidate some of the gui-independent
+       parts of the processing and drawing of "glyph strings" from
+       xterm.c, w32term.c, and macterm.c into xdisp.c.
+       
+       * dispextern.h (struct glyph): Reduce face_id member from 22 to
+       21 bits (this reduces number of faces from 4M to 2M).
+       Replace W32 specific w32_font_type member (2 bits) by generic
+       font_type member (3 bits) for portability.
+       (FONT_TYPE_UNKNOWN): New define, default for font_type member.
+       (enum draw_glyphs_face): Define here.
+       (struct glyph_string): Define here.  Merge W32 and X versions.
+       (struct redisplay_interface): New members per_char_metric,
+       encode_char, compute_glyph_string_overhangs, draw_glyph_string.
+       (VCENTER_BASELINE_OFFSET): Define here.
+       (dump_glyph_string, x_get_glyph_overhangs, x_produce_glyphs)
+       (x_draw_glyphs, notice_overwritten_cursor): Declare prototypes here.
+
+       * xdisp.c: Consolidate gui-independent "glyph string" code here.
+       (dump_glyph_string): Moved here.
+       (init_glyph_string, append_glyph_string_lists, append_glyph_string)
+       (prepend_glyph_string_lists, get_glyph_face_and_encoding)
+       (fill_composite_glyph_string, fill_glyph_string)
+       (fill_image_glyph_string, fill_stretch_glyph_string)
+       (left_overwritten, left_overwriting, right_overwritten)
+       (right_overwriting, get_char_face_and_encoding)
+       (set_glyph_string_background_width, compute_overhangs_and_x)
+       (append_glyph, append_composite_glyph, produce_image_glyph)
+       (take_vertical_position_into_account, append_stretch_glyph)
+       (produce_stretch_glyph): New generic functions (based on X version).
+       Call platform specific functions through rif.
+       (INIT_GLYPH_STRING): New macro, hides W32 details.
+       (BUILD_STRETCH_GLYPH_STRING, BUILD_IMAGE_GLYPH_STRING)
+       (BUILD_CHAR_GLYPH_STRINGS, BUILD_COMPOSITE_GLYPH_STRING)
+       (BUILD_GLYPH_STRINGS): Generic macros (based on X version).
+       (x_draw_glyphs, x_get_glyph_overhangs, x_produce_glyphs)
+       (notice_overwritten_cursor):
+       Generic functions exported to platform modules.  Users changed.
+
+       * xterm.h (FONT_DESCENT, FRAME_X_OUTPUT, FRAME_BASELINE_OFFSET)
+       (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE)
+       (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
+       New macro for consolidated code.
+       * xterm.c: Remove consolidated defines and code.
+       (x_per_char_metric, x_encode_char)
+       (x_compute_glyph_string_overhangs): Adapt to RIF requirements.
+       (x_redisplay_interface): Add new members.
+
+       * w32gui.h (Display): Add dummy typedef for consolidation.
+       (XChar2b): Define alias for wchar_t for consolidation.
+       (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): New macros.
+
+       * w32term.h (FRAME_X_OUTPUT, FRAME_X_WINDOW, FRAME_X_DISPLAY)
+       (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE): 
+       New macros for consolidation.
+
+       * w32term.c Remove consolidated defines and code.
+       (BUILD_WCHAR_T, BYTE1, BYTE2): Macros removed; callers changed
+       to use STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2 instead.
+       (w32_per_char_metric): Change font_type arg to int for RIF.
+       (w32_encode_char): Return int according to RIF requirements.
+       (w32_compute_glyph_string_overhangs): Adapt to RIF.
+       (w32_get_glyph_overhangs): New function for RIF.  Uses generic
+       x_get_glyph_overhangs.
+       (w32_redisplay_interface): Add new members.
+
+       * macgui.h (XChar2b): Move typedef here for consolidation.
+       (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): New macros.
+
+       * macterm.h (FRAME_X_OUTPUT, FRAME_X_WINDOW, FRAME_X_DISPLAY):
+       (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE): New macros for
+       consolidation.
+
+       * macterm.c: Remove consolidated defines and code.
+       (mac_per_char_metric): New function for RIF.
+       (mac_encode_char): Adapted to new RIF requirements.
+       (mac_compute_glyph_string_overhangs): Adapt for RIF.
+       (x_redisplay_interface): Add new members.
+
 2003-03-14  Richard M. Stallman  <rms@gnu.org>
 
        * lread.c (read1): After #!, exit loop on eof.
 
 2003-03-12  Kim F. Storm  <storm@cua.dk>
 
-       The following changes consolidates the fringe handling from
+       The following changes consolidate the fringe handling from
        xterm.c, w32term.c, and macterm.c into xdisp.c.
 
        * xdisp.c: Consolidate fringe handling code here.