gnu.java.awt.font.opentype
Class Scaler
An common superclass for all font scalers. The main task of font
scaler is to retrieve a scaled and hinted outline for a glyph.
To make text more legible, high-quality fonts contain
instructions (sometimes also called “hints”) for
moving the scaled control points towards the coordinate grid of the
display device.
Lack of Thread Safety: Font scalers are intentionally
not safe to access from multiple concurrent
threads. Synchronization needs to be performed externally. Usually,
the font that uses this scaler already has obtained a lock before
calling the scaler.
abstract void | getAdvance(int glyphIndex, float pointSize, AffineTransform transform, boolean antialias, boolean fractionalMetrics, boolean horizontal, Point2D advance) - Determines the advance width and height for a glyph.
|
abstract float | getAscent(float pointSize, AffineTransform transform, boolean antialias, boolean fractionalMetrics, boolean horizontal) - Determines the distance between the base line and the highest
ascender.
|
abstract float | getDescent(float pointSize, AffineTransform transform, boolean antialiased, boolean fractionalMetrics, boolean horizontal) - Determines the distance between the base line and the lowest
descender.
|
abstract GeneralPath | getOutline(int glyph, float pointSize, AffineTransform transform, boolean antialias, boolean fractionalMetrics, Hinter hinter, int type) - Retrieves the scaled outline of a glyph, adjusting control points
to the raster grid if necessary.
|
abstract Zone | getRawOutline(int glyph, AffineTransform transform) - Returns the raw outline data.
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
getAdvance
public abstract void getAdvance(int glyphIndex,
float pointSize,
AffineTransform transform,
boolean antialias,
boolean fractionalMetrics,
boolean horizontal,
Point2D advance)
Determines the advance width and height for a glyph.
glyphIndex
- the glyph whose advance width is to be
determined.pointSize
- the point size of the font.transform
- a transform that is applied in addition to
scaling to the specified point size. This is often used for
scaling according to the device resolution. Those who lack any
aesthetic sense may also use the transform to slant or stretch
glyphs.antialias
- true
for anti-aliased rendering,
false
for normal rendering. For hinted fonts,
this parameter may indeed affect the result.fractionalMetrics
- true
for fractional metrics,
false
for rounding the result to a pixel boundary.horizontal
- true
for horizontal line layout,
false
for vertical line layout.advance
- a point whose x
and y
fields will hold the advance in each direction. It is well
possible that both values are non-zero, for example for rotated
text or for Urdu fonts.
getAscent
public abstract float getAscent(float pointSize,
AffineTransform transform,
boolean antialias,
boolean fractionalMetrics,
boolean horizontal)
Determines the distance between the base line and the highest
ascender.
pointSize
- the point size of the font.transform
- a transform that is applied in addition to
scaling to the specified point size. This is often used for
scaling according to the device resolution. Those who lack any
aesthetic sense may also use the transform to slant or stretch
glyphs.antialias
- true
for anti-aliased rendering,
false
for normal rendering. For hinted fonts,
this parameter may indeed affect the result.fractionalMetrics
- true
for fractional metrics,
false
for rounding the result to a pixel boundary.horizontal
- true
for horizontal line layout,
false
for vertical line layout.
- the ascent, which usually is a positive number.
getDescent
public abstract float getDescent(float pointSize,
AffineTransform transform,
boolean antialiased,
boolean fractionalMetrics,
boolean horizontal)
Determines the distance between the base line and the lowest
descender.
pointSize
- the point size of the font.transform
- a transform that is applied in addition to
scaling to the specified point size. This is often used for
scaling according to the device resolution. Those who lack any
aesthetic sense may also use the transform to slant or stretch
glyphs.antialiased
- true
for anti-aliased rendering,
false
for normal rendering. For hinted fonts,
this parameter may indeed affect the result.fractionalMetrics
- true
for fractional metrics,
false
for rounding the result to a pixel boundary.horizontal
- true
for horizontal line layout,
false
for vertical line layout.
- the descent, which usually is a nagative number.
getOutline
public abstract GeneralPath getOutline(int glyph,
float pointSize,
AffineTransform transform,
boolean antialias,
boolean fractionalMetrics,
Hinter hinter,
int type)
Retrieves the scaled outline of a glyph, adjusting control points
to the raster grid if necessary.
glyph
- the glyph number whose outline is retrieved.pointSize
- the point size of the font.transform
- a transform that is applied in addition to
scaling to the specified point size. This is often used for
scaling according to the device resolution. Those who lack any
aesthetic sense may also use the transform to slant or stretch
glyphs.antialias
- whether or not the rasterizer will perform
anti-aliasing on the returned path.fractionalMetrics
- false
for adjusting glyph
positions to the raster grid of device space.
- the scaled and grid-fitted outline of the specified
glyph, or
null
for bitmap fonts.
getRawOutline
public abstract Zone getRawOutline(int glyph,
AffineTransform transform)
Returns the raw outline data. This is used for the autofitter atm.
glyph
- the glyph indextransform
- the transform to apply
Scaler.java -- Common superclass for font scalers.
Copyright (C) 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.