From: Han-Wen Nienhuys Date: Fri, 31 Dec 2004 12:33:21 +0000 (+0000) Subject: (LY_DEFINE): use scm_c_make_hash_table(). X-Git-Tag: release/2.5.14~331 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=fce447b68f92a29ba4a94f45fb134c15b90ae121;p=lilypond.git (LY_DEFINE): use scm_c_make_hash_table(). --- diff --git a/lily/include/pango-font.hh b/lily/include/pango-font.hh index de98e8194a..8b832dcbc4 100644 --- a/lily/include/pango-font.hh +++ b/lily/include/pango-font.hh @@ -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; diff --git a/lily/modified-font-metric.cc b/lily/modified-font-metric.cc index b424590e54..1c854147fd 100644 --- a/lily/modified-font-metric.cc +++ b/lily/modified-font-metric.cc @@ -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); diff --git a/lily/pango-font.cc b/lily/pango-font.cc index 52b7dd9bba..6957e8d00c 100644 --- a/lily/pango-font.cc +++ b/lily/pango-font.cc @@ -12,6 +12,7 @@ #include +#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); diff --git a/lily/text-metrics.cc b/lily/text-metrics.cc index 604c7ef956..b11b7876b0 100644 --- a/lily/text-metrics.cc +++ b/lily/text-metrics.cc @@ -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; diff --git a/scm/output-ps.scm b/scm/output-ps.scm index de24d38063..70140b3624 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -174,16 +174,17 @@ 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) "")