]> git.eshelyaron.com Git - emacs.git/commitdiff
(struct w32_metric_cache): New struct.
authorJason Rumney <jasonr@gnu.org>
Tue, 8 Apr 2008 14:29:39 +0000 (14:29 +0000)
committerJason Rumney <jasonr@gnu.org>
Tue, 8 Apr 2008 14:29:39 +0000 (14:29 +0000)
(w32font_info): Use it.
(W32METRIC_NO_ATTEMPT, W32METRIC_SUCCESS, W32METRIC_FAIL)
(CACHE_BLOCKSIZE): New constants.

src/ChangeLog
src/w32font.h

index 4f1f087d00da084354e3dcc828cd46aa85961f4a..30ea46bc4703eb5f7e26e9659c4881062bcd4d64 100644 (file)
@@ -1,5 +1,10 @@
 2008-04-08  Jason Rumney  <jasonr@gnu.org>
 
+       * w32font.h (struct w32_metric_cache): New struct.
+       (w32font_info): Use it.
+       (W32METRIC_NO_ATTEMPT, W32METRIC_SUCCESS, W32METRIC_FAIL)
+       (CACHE_BLOCKSIZE): New constants.
+       
        * w32font.c (Qja, Qko, Qzh): New symbols.
        (syms_of_w32font): Initialise them.
        (font_matches_spec): Use them to filter by language.
index 9bd7546e057c311a52a9e1128125fd5e83572572..6345d59c71fffc4ec08019165b9686d16e1e0a81 100644 (file)
@@ -36,6 +36,16 @@ Boston, MA 02110-1301, USA.  */
 
 #define NTMFLAGS_OPENTYPE (NTM_PS_OPENTYPE | NTM_TT_OPENTYPE)
 
+struct w32_metric_cache
+{
+  short lbearing, rbearing, width;
+  unsigned char status;
+};
+
+#define W32METRIC_NO_ATTEMPT 0
+#define W32METRIC_SUCCESS 1
+#define W32METRIC_FAIL 2
+
 /* The actual structure for a w32 font, that can be cast to struct font.
    The Uniscribe backend extends this.  */
 struct w32font_info
@@ -43,9 +53,12 @@ struct w32font_info
   struct font font;
   TEXTMETRIC metrics;
   unsigned int glyph_idx;
-  struct font_metrics ascii_metrics[128];
+  struct w32_metric_cache **cached_metrics;
+  int n_cache_blocks;
 };
 
+#define CACHE_BLOCKSIZE 128
+
 Lisp_Object w32font_get_cache P_ ((FRAME_PTR fe));
 Lisp_Object w32font_list_internal P_ ((Lisp_Object frame,
                                        Lisp_Object font_spec,