OpenVG-Registry

OpenVG-Registry

 

OpenVG のリファレンス実装(サンプル実装)のアーカイブファイルが最近クロノスの Web サイトからダウンロードできなくなっていることに気づきました。

 

 

 

OpenVG のリファレンス実装は、OpenVG をソフトウェア実装したもので、Windows で動作します。(もちろんOpenVG適合テストも合格する実装です。) GPU を用いたハードウェア実装ではないので、描画性能は低くく実用的なものではありません。OpenVG API の勉強用、OpenVG の実装例といった位置づけのものになります。また、ソースコードも公開されており、Windows 以外のプラットフォームに移植できるようにもなっています。

 

Screenshot of www.khronos.org

 

OpenVG のリファレンス実装は、上記 Web サイトの OpenVG 1.1 Sample Implementation, OpenVG 1.0.1 Sample Implementation のリンクから入手可能なはずですが、残念ながら現在どちらもリンク切れになっています。

ミスか何かだろうとは思うので、そのうち復活するとは思いますが、すぐに入手できずに困っている方もいるかもしれません。

幸いこれらのファイルは GitHub にも置かれているので、こちらからダウンロードすることが可能です。

 

Screenshot of github.com

 

 

OpenVG 1.1 リファレンス実装(サンプル実装)

 

https://github.com/KhronosGroup/OpenVG-Registry/blob/master/ri/openvg-1.1-ri.zip

OpenVG 1.1 と EGL 1.3 のライブラリとサンプルプログラムです。ソースコードと Windows 用のバイナリファイルが含まれています。

サンプルプログラムは、1.0.1 の方とほぼ同じ Tiger です。使用している OpenVG API は全く同じで OpenVG 1.1 で追加された機能は使われていません。違いは GLUT を使わない実装に変更されているぐらいです。(このため、拡大表示機能は削除されています。)

OpenVG 1.0.1 のTigerより描画は速いのですが、OpenVG 以外の処理が異なっているのが主な原因と考えられます。

 

 

libOpenVG.dll の他、tiger.exe も含まれているため、自分でビルドしなくとも実行することができます。(VC++ のランタイムはスタティックリンクされているようです)

 

OpenVG 1.0.1 リファレンス実装(サンプル実装)

 

https://github.com/KhronosGroup/OpenVG-Registry/blob/master/ri/openvg-1_0_1-ri.zip

 

OpenVG 1.0.1 と EGL 1.2 のライブラリとサンプルプログラムです。ソースコードと Windows 用のバイナリファイルが含まれています。

 

 

GLUT を使っているため、libOpenVG.dll, tiger.exe の他、glut32.dll も含まれていますが、実行するには VC++ 6.0 のランタイム(しかも Debug 版) が必要なため、現在このバイナリを動かせる人はほとんどいないでしょう。私は新しいバージョンの VC++ でバイナリファイルを作り直して動かしました。

プロジェクトは古い VC++6.0 で作られているので、最近の Windows でビルドするには、より新しいバージョンの VC++ を使う必要があります。その場合、新しい VC++ でビルドするには多少の手直しが必要になるかもしれません。また、ビルドするには、GLUT のヘッダファイルと glext.h を用意する必要があります。

OpenVG 1.1 の Tiger より描画は遅いのですが、’1’〜’4′ のキーを押すと1〜16倍に拡大表示する機能が付いています。(OpenGL 1.2 以上をサポートする GPU が必要)

 

拡大表示機能

 

拡大表示機能は OpenVG の機能を使って実現したものではないことに注意してください。ただ、この拡大機能は OpenVG でパスがどのように塗りつぶされているか、どのように線が引かれているかを確認するのには便利な機能です。