]> git.donarmstrong.com Git - lilypond.git/commitdiff
(LY_DEFINE): use scm_c_make_hash_table().
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 31 Dec 2004 12:33:21 +0000 (12:33 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 31 Dec 2004 12:33:21 +0000 (12:33 +0000)
lily/include/pango-font.hh
lily/modified-font-metric.cc
lily/pango-font.cc
lily/text-metrics.cc
scm/output-ps.scm

index de98e8194a3638b480ceb4ae6fe3578b2ecaeef3..8b832dcbc44d3ae6ec8f5d6cce651067ed144188 100644 (file)
@@ -34,7 +34,7 @@ public:
   SCM font_file_name () const;
   void register_font_file (String, String);
   Stencil text_stencil (String) const;
-  Stencil pango_item_string_stencil (PangoItem*, String) const;
+  Stencil pango_item_string_stencil (PangoItem*, String, Real) const;
 
   virtual SCM sub_fonts () const;
   virtual void derived_mark () const;
index b424590e54a21b4b318e14f84dfc76d57fc2ae12..1c854147fd43193fda05dae4c298a26f0922227a 100644 (file)
@@ -12,6 +12,7 @@
 #include "text-metrics.hh"
 #include "warn.hh"
 #include "stencil.hh"
+#include "lookup.hh"
 
 Modified_font_metric::Modified_font_metric (Font_metric *fm,
                                            Real magnification,
@@ -248,7 +249,8 @@ Modified_font_metric::text_stencil (String text) const
       Box b = stc.extent_box ();
 
       b.scale (magnification_);
-      return Stencil (b, stc.expr());
+      Stencil scaled(b, stc.expr());
+      return scaled;
     }
 
   return Font_metric::text_stencil (text);
index 52b7dd9bba43cd3802dd9638f08b3ee3b5b86923..6957e8d00c3b18fdbc3251a24aa49e77445aafeb 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <pango/pangoft2.h>
 
+#include "lookup.hh"
 #include "dimensions.hh"
 #include "pango-font.hh"
 
@@ -58,7 +59,7 @@ Pango_font::derived_mark () const
 }
 
 Stencil
-Pango_font::pango_item_string_stencil (PangoItem *item, String str) const
+Pango_font::pango_item_string_stencil (PangoItem *item, String str, Real dx) const
 {      
   const int GLYPH_NAME_LEN = 256;
   char glyph_name[GLYPH_NAME_LEN];
@@ -94,10 +95,11 @@ Pango_font::pango_item_string_stencil (PangoItem *item, String str) const
       PangoGlyphGeometry ggeo = pgi->geometry;
 
       FT_Get_Glyph_Name (ftface, pg, glyph_name, GLYPH_NAME_LEN);
-      *tail = scm_cons (scm_list_3 (scm_from_double (ggeo.x_offset * scale_),
+      *tail = scm_cons (scm_list_3 (scm_from_double (ggeo.x_offset * scale_ + dx),
                                    scm_from_double (ggeo.y_offset * scale_),
                                    scm_makfrom0str (glyph_name)),
                        SCM_EOL);
+      dx = 0.0;
       tail = SCM_CDRLOC (*tail);
     }
 
@@ -118,6 +120,7 @@ Pango_font::pango_item_string_stencil (PangoItem *item, String str) const
                         ly_quote_scm (glyph_exprs));
 
   Stencil item_stencil (b, expr);
+
   return item_stencil;  
 }
 
@@ -128,7 +131,6 @@ Pango_font::text_stencil (String str) const
                                str.to_str0 (),
                                0, str.length (), attribute_list_,
                                NULL);
-
   
   GList *ptr = items;
   Stencil dest;
@@ -137,10 +139,9 @@ Pango_font::text_stencil (String str) const
     {
       PangoItem *item = (PangoItem*) ptr->data;
 
-      Stencil item_stencil = pango_item_string_stencil (item, str);
+      Stencil item_stencil = pango_item_string_stencil (item, str, x);
 
-      item_stencil.translate_axis (x, X_AXIS);
-      x += item_stencil.extent (X_AXIS)[RIGHT];
+      x = item_stencil.extent (X_AXIS)[RIGHT];
       
       dest.add_stencil (item_stencil);
       
index 604c7ef956d159f0506480c932d827ab351ea7e1..b11b7876b002ef18ec35226db3b7f1a4a7499b43 100644 (file)
@@ -51,7 +51,7 @@ LY_DEFINE(ly_load_text_dimensions, "ly:load-text-dimensions",
   if (!text_dimension_hash_tab)
     {
       text_dimension_hash_tab =
-       scm_gc_protect_object (scm_make_hash_table (scm_from_int (113)));
+       scm_gc_protect_object (scm_c_make_hash_table (113));
     }
 
   for (SCM s = dimension_alist;
index de24d380638f707fe917321717beb4e2a7d81fa5..70140b3624056fa5933e7ea84b3f3b4803f05bb2 100644 (file)
         postscript-font-name
         size
         x-y-named-glyphs)
+  (format #f "gsave 1 output-scale div 1 output-scale div scale
+  /~a findfont ~a scalefont setfont\n~a grestore" postscript-font-name size
   (apply
    string-append
-   (cons
-    (format #f " /~a findfont ~a output-scale div scalefont setfont " postscript-font-name size)
-    (map (lambda  (item)
-          (format #f " ~a ~a rmoveto /~a glyphshow "
-                  (car item)
-                  (cadr item)
-                  (caddr item)))
-        x-y-named-glyphs))))
+   (map (lambda  (item)
+         (format #f " ~a ~a rmoveto /~a glyphshow "
+                 (car item)
+                 (cadr item)
+                 (caddr item)))
+       x-y-named-glyphs))
+  ))
 
 (define (grob-cause grob)
   "")