J2SE 5.0 での
Java 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 VolatileImages のみがハードウェア高速化されます。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

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

    -Dsun.java2d.opengl=True

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

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

Solaris の OpenGL について

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

http://www.oracle.com/us/sun/index.htm 次の Sun のフレームバッファーは、OpenGL ベースの Java 2D パイプラインとともに機能します。

Solaris x86 プラットフォーム用の高速化 OpenGL ライブラリは、Sun のサイトから利用することができません。ただし、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 © 1993, 2013, Oracle and/or its affiliates. All rights reserved.