It seems that the following bug report (Bug Id: 4498972) has disappeared from
the Bug Database... And unfortunately this problem still occurs with java 1.4-
Beta3.
Has anyone experienced the same problem ?
Any ideas for fast glyph drawing are welcome.
Thank's in advance,
Emmanuel
> ----------------- Original Bug Report-------------------
>
> category : java
> subcategory : classes_2D
> release : merlin-beta2
> type : bug
> synopsis : Performance regression for drawGlyphVector
> description : java version "1.4.0-beta2"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta2-b77)
> Java HotSpot(TM) Client VM (build 1.4.0-beta2-b77, mixed mode)
>
> When running Java2D with JDK1.4Beta/Beta2, I experienced a major
> performance regression in comparison with JDK1.3.1 for glyphs rendering.
>
> -----------
>
> Environnement : Windows 2000sp2 / 384 MO RAM / ATI Rage Mobility 8Meg
> (with the DX8 & latest drivers)
>
> Here are the benchmark results, of the following test case, I got from my
> machine - Average time in milli-seconds -
> jdk 1.3.1 / jdk 1.4Beta2
> 1011 ms / 2474 ms +144% / Anti-Alias Off
> 2254 ms / 3666 ms +62% / Anti-Alias ON
>
> ------------------
>
> import java.awt.*;
> import javax.swing.*;
> import java.awt.font.* ;
>
> public class Render extends JFrame {
>
> GlyphVector [] gvs ;
> Font font ;
> FontRenderContext frc ;
> RenderingHints rq ;
>
> boolean firstTime = true ;
>
> JPanel panel = new JPanel() {
> protected void paintComponent(Graphics g) {
> super.paintComponent(g) ;
> Graphics2D g2 = (Graphics2D) g ;
>
> if ( firstTime ) {
> firstTime = false ;
>
> rq = new RenderingHints
> (RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_SPEED)
> ;;
> rq.put(RenderingHints.KEY_FRACTIONALMETRICS,
> RenderingHints.VALUE_FRACTIONALMETRICS_ON) ; // or OFF
> rq.put(RenderingHints.KEY_TEXT_ANTIALIASING,
> RenderingHints.VALUE_TEXT_ANTIALIAS_ON) ; // or OFF
> g2.setRenderingHints(rq) ;
>
> gvs = new GlyphVector [(128-32) * (48-6)] ; // 672
> frc = g2.getFontRenderContext() ;
>
> int l=0 ;
> for ( int i=0; i<2; i++ ) {
> for ( int k=6; k<48; k=k+2 ) {
> font = new Font("Serif", Font.PLAIN, k) ;
> for ( int j=32; j<128; j++ ) {
> gvs[l++] = font.createGlyphVector(frc,new char [] {(char)j
> }) ;
> }
> }
> }
> }
>
> long before = System.currentTimeMillis();
> for ( int i=0; i<gvs.length; i++ ) {
> g2.drawGlyphVector(gvs[i],40,50);
> }
> long after = System.currentTimeMillis();
> System.out.println(" ellapsed time (milli-sec) : " + (after -
> before));
> }
> } ;
>
> public Render() {
> super("Render") ;
> setBounds(100, 100, 100, 100);
> getContentPane().add(panel) ;
> setVisible(true) ;
> }
>
> public static void main(String argv[]) {
> new Render() ;
> }
> }
> workaround :
> suggested_val :
> cust_name : Deviller
> cust_email : [EMAIL PROTECTED]
> jdcid :
> keyword : webbug
> company : NS
> hardware : x86
> OSversion : windows_2000
> bugtraqID : 0
> dateCreated : 2001-08-31 11:17:25.8
> dateEvaluated : 2001-08-31 17:19:12.38
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".