本文整理汇总了Java中java.awt.Font.isTransformed方法的典型用法代码示例。如果您正苦于以下问题:Java Font.isTransformed方法的具体用法?Java Font.isTransformed怎么用?Java Font.isTransformed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.awt.Font
的用法示例。
在下文中一共展示了Font.isTransformed方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getStrike
import java.awt.Font; //导入方法依赖的package包/类
public FontStrike getStrike(Font font, FontRenderContext frc) {
AffineTransform at = frc.getTransform();
double ptSize = font.getSize2D();
at.scale(ptSize, ptSize);
if (font.isTransformed()) {
at.concatenate(font.getTransform());
if (at.getTranslateX() != 0 || at.getTranslateY() != 0) {
at.setTransform(at.getScaleX(),
at.getShearY(),
at.getShearX(),
at.getScaleY(),
0.0, 0.0);
}
}
int aa = FontStrikeDesc.getAAHintIntVal(this, font, frc);
int fm = FontStrikeDesc.getFMHintIntVal(frc.getFractionalMetricsHint());
FontStrikeDesc desc = new FontStrikeDesc(frc.getTransform(),
at, font.getStyle(),
aa, fm);
return getStrike(desc, false);
}
示例2: setFont
import java.awt.Font; //导入方法依赖的package包/类
public void setFont(Font font) {
/* replacing the reference equality test font != this.font with
* !font.equals(this.font) did not yield any measurable difference
* in testing, but there may be yet to be identified cases where it
* is beneficial.
*/
if (font != null && font!=this.font/*!font.equals(this.font)*/) {
/* In the GASP AA case the textpipe depends on the glyph size
* as determined by graphics and font transforms as well as the
* font size, and information in the font. But we may invalidate
* the pipe only to find that it made no difference.
* Deferring pipe invalidation to checkFontInfo won't work because
* when called we may already be rendering to the wrong pipe.
* So, if the font is transformed, or the graphics has more than
* a simple scale, we'll take that as enough of a hint to
* revalidate everything. But if they aren't we will
* use the font's point size to query the gasp table and see if
* what it says matches what's currently being used, in which
* case there's no need to invalidate the textpipe.
* This should be sufficient for all typical uses cases.
*/
if (textAntialiasHint == SunHints.INTVAL_TEXT_ANTIALIAS_GASP &&
textpipe != invalidpipe &&
(transformState > TRANSFORM_ANY_TRANSLATE ||
font.isTransformed() ||
fontInfo == null || // Precaution, if true shouldn't get here
(fontInfo.aaHint == SunHints.INTVAL_TEXT_ANTIALIAS_ON) !=
FontUtilities.getFont2D(font).
useAAForPtSize(font.getSize()))) {
textpipe = invalidpipe;
}
this.font = font;
this.fontMetrics = null;
this.validFontInfo = false;
}
}
示例3: StandardGlyphVector
import java.awt.Font; //导入方法依赖的package包/类
public StandardGlyphVector(Font font, FontRenderContext frc, int[] glyphs, float[] positions,
int[] indices, int flags) {
initGlyphVector(font, frc, glyphs, positions, indices, flags);
// this code should go into layout
float track = getTracking(font);
if (track != 0) {
track *= font.getSize2D();
Point2D.Float trackPt = new Point2D.Float(track, 0); // advance delta
if (font.isTransformed()) {
AffineTransform at = font.getTransform();
at.deltaTransform(trackPt, trackPt);
}
// how do we know its a base glyph
// for now, it is if the natural advance of the glyph is non-zero
Font2D f2d = FontUtilities.getFont2D(font);
FontStrike strike = f2d.getStrike(font, frc);
float[] deltas = { trackPt.x, trackPt.y };
for (int j = 0; j < deltas.length; ++j) {
float inc = deltas[j];
if (inc != 0) {
float delta = 0;
for (int i = j, n = 0; n < glyphs.length; i += 2) {
if (strike.getGlyphAdvance(glyphs[n++]) != 0) { // might be an inadequate test
positions[i] += delta;
delta += inc;
}
}
positions[positions.length-2+j] += delta;
}
}
}
}
示例4: getAAHintIntVal
import java.awt.Font; //导入方法依赖的package包/类
public static int getAAHintIntVal(Font2D font2D, Font font,
FontRenderContext frc) {
Object aa = frc.getAntiAliasingHint();
if (aa == VALUE_TEXT_ANTIALIAS_OFF ||
aa == VALUE_TEXT_ANTIALIAS_DEFAULT) {
return INTVAL_TEXT_ANTIALIAS_OFF;
} else if (aa == VALUE_TEXT_ANTIALIAS_ON) {
return INTVAL_TEXT_ANTIALIAS_ON;
} else if (aa == VALUE_TEXT_ANTIALIAS_GASP) {
/* FRC.isIdentity() would have been useful */
int ptSize;
AffineTransform tx = frc.getTransform();
if (tx.isIdentity() && !font.isTransformed()) {
ptSize = font.getSize();
} else {
/* one or both transforms is not identity */
float size = font.getSize2D();
if (tx.isIdentity()) {
tx = font.getTransform();
tx.scale(size, size);
} else {
tx.scale(size, size);
if (font.isTransformed()) {
tx.concatenate(font.getTransform());
}
}
double shearx = tx.getShearX();
double scaley = tx.getScaleY();
if (shearx != 0) {
scaley = Math.sqrt(shearx * shearx + scaley * scaley);
}
ptSize = (int)(Math.abs(scaley)+0.5);
}
if (font2D.useAAForPtSize(ptSize)) {
return INTVAL_TEXT_ANTIALIAS_ON;
} else {
return INTVAL_TEXT_ANTIALIAS_OFF;
}
} else if (aa == VALUE_TEXT_ANTIALIAS_LCD_HRGB ||
aa == VALUE_TEXT_ANTIALIAS_LCD_HBGR) {
return INTVAL_TEXT_ANTIALIAS_LCD_HRGB;
} else if (aa == VALUE_TEXT_ANTIALIAS_LCD_VRGB ||
aa == VALUE_TEXT_ANTIALIAS_LCD_VBGR) {
return INTVAL_TEXT_ANTIALIAS_LCD_VRGB;
} else {
return INTVAL_TEXT_ANTIALIAS_OFF;
}
}