Java

J2SE 5.0 での Java 2DTM の新機能

2D 目次


すべての BufferedImage のキャッシュ

J2SE 5.0 では、BufferedImage コンストラクタで作成されたすべてのイメージが管理対象のイメージとなり、ビデオメモリ内にキャッシュすることができるようになりました。または、リモート X サーバの場合、X サーバ側にキャッシュできます。以前の実装では、Component createImage(int, int) メソッドまたは GraphicsConfiguration createCompatibleImage メソッドで作成された互換性のあるイメージのみを管理していました。管理されるイメージは、管理されないイメージに比べて、一般的にパフォーマンスが良好です。

イメージのハードウェア高速化を制御するメソッド

この変更に対応するバグレポートは、4881082 です。

Image クラスには、ハードウェアの高速化に関連する 3 つの新しいメソッドがあります。以前は VolatileImage 内でのみ定義された getCapabilities メソッドによって、イメージが現在高速化されているかどうかを判断できるようになります。ほかの 2 つの setAccelerationPriority メソッドおよび getAccelerationPriority メソッドでは、イメージの高速化の重要性の程度についてのヒントを設定または取得することができます。

GraphicsConfiguration クラスには、透明な VolatileImage を作成できる 2 つの新メソッド、createCompatibleVolatileImage(int, int, int) および createCompatibleVolatileImage(int, int, ImageCapabilities, int) があります。


注: J2SE 5.0 の段階では、これらのメソッドは完全に機能しません。setAccelerationPriority によって設定された値は無視され、createCompatibleVolatileImage メソッドで作成されたイメージは常にハードウェアの高速化が行われるわけではありません。Linux および Solaris システムでは、OPAQUE VolatileImage のみがハードウェア高速化されます。Microsoft Windows システムの場合、J2SE 5.0 の createCompatibleVolatileImage で作成されたイメージのハードウェアの高速化が行われるのは、ハードウェアが高速化をサポートし、しかも次の条件の 1 つが真の場合のみです。 これらのメソッドは、今後のリリースで完全に実装されることが期待されます。

ハードウェア高速化レンダリングに対する OpenGL によるサポート

この変更に関連するバグレポート: 4607536 および 5008045

J2SE 5.0 には、Java 2D 用の新しい OpenGL ベースのパイプラインが含まれています。このパイプラインにより、テキスト、イメージ、ライン、塗りつぶしのプリミティブなどの単純なレンダリング操作と同様に、複雑な変換、ペイント、合成およびクリッピングなどの操作にもハードウェアの高速化が提供されます。このパイプラインは、Solaris、Linux、および Microsoft Windows など、すべてのプラットフォームで利用可能で、現在のところ、デフォルトでは無効にされています。

メッセージを表示させないで OpenGL ベースのパイプラインを有効にするには、コマンド行に次のシステムプロパティを指定します。

    -Dsun.java2d.opengl=true

特定の 1 つのスクリーンに対する、OpenGL ベースのパイプラインが正常に初期化されたかどうかに関する、コンソールへの詳細な出力を行うには、次のようにして、大文字の「T」を使用して、「True」を指定します。

    -Dsun.java2d.opengl=True

Solaris/Linux の場合、最小の要件は次のとおりです。

Microsoft Windows の場合、最小の要件は次のとおりです。

Solaris の OpenGL について

Solaris SPARC プラットフォーム用の高速化 OpenGL ライブラリは、次のサンのサイトから直接利用することができます。

http://wwws.sun.com/software/graphics/opengl/index.html
以下のサンのフレームバッファは、OpenGL ベースの Java 2D パイプラインとともに機能します。

Solaris x86 プラットフォーム用の高速化 OpenGL ライブラリは、サンのサイトから利用することができません。ただし、Xi Graphics などのサードパーティは、Solaris x86 用の OpenGL ライブラリをサポートします。

Linux の OpenGL について

ほとんどの Linux 配布版には、The Mesa 3D Graphics Library が含まれています。このライブラリは、OpenGL 仕様のソフトウェアの実装です。Mesa はハードウェア高速化を利用しないため、OpenGL ベースの Java 2D パイプラインは、デフォルトの X11 ベースのパイプラインに比べてかなり低速で実行されることになります。そのため、OpenGL ベースのパイプラインで適切なパフォーマンスを実現するために、お使いのグラフィックスハードウェア業者提供の、高速化 OpenGL ドライバをインストールすることをお薦めします。

次の Web サイトには、ダウンロード可能な高速化 OpenGL ドライバがあります。

Microsoft Windows の OpenGL について

OpenGL ベースのパイプラインで適切なパフォーマンスを実現するために、お使いのグラフィックスハードウェア業者提供の、高速化 OpenGL ドライバをインストールすることをお薦めします。次の Web サイトには、OpenGL ベースの Java 2D パイプラインとともに機能する、ダウンロード可能な高速化 OpenGL ドライバがあります。

注: Microsoft Windows で使用する Nvidia および ATI 両方の最新のドライバは、お使いのアプリケーションの描画機能に悪影響を及ぼす可能性があることが確認されています。これらのバグについては現在調査中であり、将来ドライバを更新するときに改善できるように製造元と協働しています。

CUPS プリンタに対する Solaris および Linux のサポート

この変更に関連するバグレポート: 4641868 および 4683270

Solaris および Linux システムで、CUPS (共通 UNIX プリンタシステム) プリンタとして設定されたプリンタを使用できるようになりました。この機能拡張によって、ほとんどの PostScript プリンタとレーザプリンタも含めて、CUPS にサポートされるすべてのプリンタが、Java プラットフォームで使用できるようになりました。つまり、Linux とともに低価格のプリンタを簡単に使用できます。CUPS は、IPP (インターネットプリンティングプロトコル、Internet Printing Protocol) に基づいています。

詳細については、http://www.cups.org を参照してください。

バイキュービック補間処理

この変更に対応するバグレポートは、4200154 です。

2D の実装では、バイキュービック補間処理がサポートされるようになり、要求に応じていつでも使うことができます。以前のバージョンでは、RenderingHints クラスによって定義された VALUE_INTERPOLATION_BICUBIC ヒントが優先されず、代わりにバイリニア補間処理が使用されました。現在では、バイキュービックレンダリングのヒントが優先され、新しい定数の TYPE_BICUBICAffineTransformOp に追加されました。

ファイルとストリームからのフォントの作成

この変更に関連するバグレポート: 4390880 および 4468862

現在では、Type 1 フォントから Font オブジェクトを作成することと、Type 1 または TrueType フォントデータのどちらかを含むファイルから直接 Font オブジェクトを作成することが可能になりました。

この新しい機能をサポートするために、Font クラスには、ファイルから Font オブジェクトを作成する新しい createFont メソッドがあります。既存の createFont メソッドは、ストリームから Font オブジェクトを作成します。新しい定数の Font.TYPE1_FONT で、どちらかの createFont メソッドに Type 1 フォントを指定します。

テキストレンダリングのパフォーマンスと信頼性の向上

この変更に対応するバグレポートは、4641861 です。

テキストレンダリングのコードに対する多くの内部的な変更によって、コードの堅牢さ、パフォーマンス、およびスケーラビリティが著しく向上しました。

多言語のテキストレンダリング

この変更に対応するバグレポートは、4097028 です。

論理フォントを使用する 2D テキストレンダリングでは、多言語テキストをレンダリングするために、サポートされるすべての書記法がインストール済みのホスト OS フォントを利用できるようになりました。たとえば、タイ語のロケール環境で実行中でありながら韓国語のフォントがインストールされている場合は、タイ語と韓国語の両方がレンダリングされます。


Copyright © 1995-2004 Sun Microsystems, Inc. All Rights Reserved.

「Java 2D Feedback」ページを使ってコメントを送付してください。
 Sun Microsystems, Inc
Java ソフトウェア