CVSROOT: /cvsroot/lilypond
Module name: lilypond
Branch:
Changes by: Han-Wen Nienhuys <[EMAIL PROTECTED]> 05/08/25 16:46:03
Modified files:
. : ChangeLog
lily : pango-font.cc
lily/include : pango-font.hh
scm : output-ps.scm
Log message:
(text_stencil): don't translate glyphs in
unscaled transform, just translate stencils.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.4085&tr2=1.4086&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/pango-font.cc.diff?tr1=1.41&tr2=1.42&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/pango-font.hh.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/output-ps.scm.diff?tr1=1.150&tr2=1.151&r1=text&r2=text
Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.4085 lilypond/ChangeLog:1.4086
--- lilypond/ChangeLog:1.4085 Thu Aug 25 16:20:21 2005
+++ lilypond/ChangeLog Thu Aug 25 16:46:01 2005
@@ -1,5 +1,8 @@
2005-08-25 Han-Wen Nienhuys <[EMAIL PROTECTED]>
+ * lily/pango-font.cc (text_stencil): don't translate glyphs in
+ unscaled transform, just translate stencils.
+
* ly/performer-init.ly: init timing to #t. Fixes bar checks in
MIDI.
Index: lilypond/lily/include/pango-font.hh
diff -u lilypond/lily/include/pango-font.hh:1.15
lilypond/lily/include/pango-font.hh:1.16
--- lilypond/lily/include/pango-font.hh:1.15 Sun Apr 17 09:38:04 2005
+++ lilypond/lily/include/pango-font.hh Thu Aug 25 16:46:02 2005
@@ -25,6 +25,7 @@
PangoFontDescription *pango_description_;
PangoAttrList *attribute_list_;
Real scale_;
+ Real output_scale_;
SCM physical_font_tab_;
public:
@@ -38,7 +39,7 @@
SCM font_file_name () const;
void register_font_file (String, String);
Stencil text_stencil (String) const;
- Stencil pango_item_string_stencil (PangoItem *, String, Real) const;
+ Stencil pango_item_string_stencil (PangoItem *, String) const;
virtual void derived_mark () const;
};
Index: lilypond/lily/pango-font.cc
diff -u lilypond/lily/pango-font.cc:1.41 lilypond/lily/pango-font.cc:1.42
--- lilypond/lily/pango-font.cc:1.41 Thu Aug 25 15:15:41 2005
+++ lilypond/lily/pango-font.cc Thu Aug 25 16:46:02 2005
@@ -44,6 +44,7 @@
--hwn
*/
+ output_scale_ = output_scale;
scale_ = INCH_TO_BP / (Real (PANGO_SCALE) * Real (PANGO_RESOLUTION) *
output_scale);
/*
@@ -76,7 +77,7 @@
}
Stencil
-Pango_font::pango_item_string_stencil (PangoItem *item, String str, Real dx)
const
+Pango_font::pango_item_string_stencil (PangoItem *item, String str) const
{
const int GLYPH_NAME_LEN = 256;
char glyph_name[GLYPH_NAME_LEN];
@@ -126,12 +127,11 @@
}
else
char_id = scm_makfrom0str (glyph_name);
- *tail = scm_cons (scm_list_3 (scm_from_double (ggeo.x_offset * scale_
- + dx),
+
+ *tail = scm_cons (scm_list_3 (scm_from_double (ggeo.x_offset * scale_),
scm_from_double (ggeo.y_offset * scale_),
char_id),
SCM_EOL);
- dx = 0.0;
tail = SCM_CDRLOC (*tail);
}
@@ -214,18 +214,15 @@
GList *ptr = items;
Stencil dest;
- Real x = 0.0;
+
+ Real last_x = 0.0;
while (ptr)
{
PangoItem *item = (PangoItem *) ptr->data;
- Stencil item_stencil = pango_item_string_stencil (item, str, x);
-
-
- /*
- UGH. Is this correct for bidi?
- */
- x = item_stencil.extent (X_AXIS)[RIGHT];
+ Stencil item_stencil = pango_item_string_stencil (item, str);
+ item_stencil.translate_axis (last_x, X_AXIS);
+ last_x = item_stencil.extent (X_AXIS)[RIGHT];
#if 0 /* Check extents. */
if (!item_stencil.extent_box ()[X_AXIS].is_empty ())
Index: lilypond/scm/output-ps.scm
diff -u lilypond/scm/output-ps.scm:1.150 lilypond/scm/output-ps.scm:1.151
--- lilypond/scm/output-ps.scm:1.150 Wed Aug 24 20:19:06 2005
+++ lilypond/scm/output-ps.scm Thu Aug 25 16:46:03 2005
@@ -138,29 +138,13 @@
size cid?
x-y-named-glyphs)
- (define (encoding-vector-hack glyphs)
-
- ;; GS fucks up with glyphs that are not in the
- ;; encoding vector.
- (define (inner j glyphs)
- (if (or (null? glyphs) (> j 256))
- '()
- (cons (format "dup ~a /~a put\n"
- j (car glyphs))
- (inner (1+ j) (cdr glyphs)))))
-
- (format "256 array 0 1 255 { 1 index exch /.notdef put} for\n ~a
-/EncHack reencode-font /EncHack findfont"
- (apply string-append (inner 32 glyphs))))
- ;; END HACK.
-
(format #f "gsave 1 output-scale div 1 output-scale div scale
/~a ~a ~a scalefont setfont\n~a grestore"
postscript-font-name
(if cid?
" /CIDFont findresource "
" findfont")
-
+
size
(apply
string-append
_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs