Import GNU Classpath (classpath-0_97_2-release).
libjava/ 2008-06-28 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (classpath-0_97_2-release). * Regenerate class and header files. * Regenerate auto* files. * gcj/javaprims.h: Define jobjectRefType. * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only). (_Jv_JNIFunctions): Initialize GetObjectRefType. * gnu/classpath/jdwp/VMVirtualMachine.java, java/security/VMSecureRandom.java: Merge from classpath. * HACKING: Fix typo. * ChangeLog-2007: New file. * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath. libjava/classpath/ 2008-06-28 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_javac.m4: Disable check for JAVAC, when not configured with --enable-java-maintainer-mode. * aclocal.m4, configure: Regenerate. * native/jni/gstreamer-peer/Makefile.am: Do not link with libclasspathnative. * native/jni/gstreamer-peer/Makefile.in: Regenerate. * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting JCOMPILER, drop flags not understood by gcj. From-SVN: r137223
This commit is contained in:
@@ -37,6 +37,8 @@ exception statement from your version. */
|
||||
|
||||
package gnu.java.awt.font;
|
||||
|
||||
import gnu.java.awt.java2d.ShapeWrapper;
|
||||
|
||||
import java.awt.Font;
|
||||
import java.awt.font.FontRenderContext;
|
||||
import java.awt.font.GlyphMetrics;
|
||||
@@ -82,6 +84,10 @@ public class GNUGlyphVector
|
||||
private AffineTransform[] transforms;
|
||||
private int layoutFlags;
|
||||
|
||||
/**
|
||||
* The cached non-transformed outline of this glyph vector.
|
||||
*/
|
||||
private Shape cleanOutline;
|
||||
|
||||
/**
|
||||
* Constructs a new GNUGlyphVector.
|
||||
@@ -257,7 +263,6 @@ public class GNUGlyphVector
|
||||
*/
|
||||
public Shape getOutline()
|
||||
{
|
||||
validate();
|
||||
return getOutline(0.0f, 0.0f);
|
||||
}
|
||||
|
||||
@@ -273,16 +278,33 @@ public class GNUGlyphVector
|
||||
{
|
||||
validate();
|
||||
|
||||
GeneralPath outline = new GeneralPath();
|
||||
int len = glyphs.length;
|
||||
for (int i = 0; i < len; i++)
|
||||
Shape outline;
|
||||
if (cleanOutline == null)
|
||||
{
|
||||
GeneralPath p = new GeneralPath(getGlyphOutline(i));
|
||||
outline.append(p, false);
|
||||
GeneralPath path = new GeneralPath();
|
||||
int len = glyphs.length;
|
||||
for (int i = 0; i < len; i++)
|
||||
{
|
||||
GeneralPath p = new GeneralPath(getGlyphOutline(i));
|
||||
path.append(p, false);
|
||||
}
|
||||
// Protect the cached instance from beeing modified by application
|
||||
// code.
|
||||
cleanOutline = new ShapeWrapper(path);
|
||||
outline = cleanOutline;
|
||||
}
|
||||
else
|
||||
{
|
||||
outline = cleanOutline;
|
||||
}
|
||||
if (x != 0 || y != 0)
|
||||
{
|
||||
GeneralPath path = new GeneralPath(outline);
|
||||
AffineTransform t = new AffineTransform();
|
||||
t.translate(x, y);
|
||||
path.transform(t);
|
||||
outline = path;
|
||||
}
|
||||
AffineTransform t = new AffineTransform();
|
||||
t.translate(x, y);
|
||||
outline.transform(t);
|
||||
return outline;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user