|
From: <md...@us...> - 2007-08-30 13:41:54
|
Revision: 3755
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3755&view=rev
Author: mdboom
Date: 2007-08-30 06:41:52 -0700 (Thu, 30 Aug 2007)
Log Message:
-----------
Fixes bounding box bug with Agg backend.
Fixes spacing bug when using standard Ps fonts.
Reduces memory usage by not caching mathtext expressions for too long.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/mathtext.py
Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-30 13:38:22 UTC (rev 3754)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-30 13:41:52 UTC (rev 3755)
@@ -253,9 +253,9 @@
def render_glyph(self, ox, oy, info):
self._update_bbox(ox + info.metrics.xmin,
- oy + info.metrics.ymin,
+ oy - info.metrics.ymax,
ox + info.metrics.xmax,
- oy + info.metrics.ymax)
+ oy - info.metrics.ymin)
def render_rect_filled(self, x1, y1, x2, y2):
self._update_bbox(x1, y1, x2, y2)
@@ -265,7 +265,8 @@
bbox = self.bbox
bbox = [bbox[0] - 2, bbox[1] - 2, bbox[2] + 2, bbox[3] + 2]
self._switch_to_real_backend()
- self.fonts_object.set_canvas_size(bbox[2] - bbox[0], bbox[3] - bbox[1])
+ self.fonts_object.set_canvas_size(
+ bbox[2] - bbox[0], bbox[3] - bbox[1])
ship(-bbox[0], -bbox[1], box)
return self.fonts_object.get_results(box)
@@ -321,6 +322,8 @@
fontsize = info.fontsize
symbol_name = info.symbol_name
+ # TODO: Optimize out the font changes
+
ps = """/%(postscript_name)s findfont
%(fontsize)s scalefont
setfont
@@ -928,7 +931,7 @@
xmin, ymin, xmax, ymax = [val * scale
for val in font.get_bbox_char(glyph)]
metrics = Bunch(
- advance = (xmax-xmin),
+ advance = font.get_width_char(glyph) * scale,
width = font.get_width_char(glyph) * scale,
height = font.get_height_char(glyph) * scale,
xmin = xmin,
@@ -2439,6 +2442,7 @@
cacheKey = (s, dpi, hash(prop))
result = self._cache.get(cacheKey)
if result is not None:
+ del self._cache[cacheKey]
return result
if self._output == 'PS' and rcParams['ps.useafm']:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|