セギ

セギ
原作者ポール・D・ターナー
開発者CEGUIチーム
初回リリース2004年12月 (2004年12月
安定版リリース0.8.7 (2016年4月28日) [±] [ 1 ] ( 2016-04-28 )
書かれたC++
オペレーティング·システムLinuxOS XWindows
タイプウィジェットツールキット
ライセンスMITバージョン0.5.0以前: GNU LGPL [ 2 ]
Webサイトcegui .org .uk
リポジトリ

Crazy Eddie's GUI ( CEGUI ) は、プログラミング言語C++用のグラフィカルユーザーインターフェース(GUI)ライブラリです。ビデオゲームのニーズに合わせて設計されていますが、アプリケーションやツールなど、ゲーム以外の用途にも使用できます。ルックアンドフィールの柔軟性を重視し、ユーザーが選択したツールやオペレーティングシステムに適応できるように設計されています。

構成可能性

CEGUIの強みは、その堅牢性[ 3 ]と設定の柔軟性です。システムは直接ファイルを読み込んだり、ウィンドウをレンダリングしたり、テキストを直接表示したり、システムから入力を取得したりすることはありません。CEGUIはユーザー定義コードを介してこれらのインターフェースを提供しますが、ソースコードパッケージには特定のコンポーネントやライブラリを使用するためのモジュールが多数含まれています。

この自由度により、CEGUI はあらゆる種類のリソース管理システムやオペレーティング環境で使用できます。入力はユーザーのコードによって収集され、必要に応じてフィルタリングされた後、CEGUI に渡されてウィンドウ処理が行われます。

CEGUI には、平均的なウィジェット ツールキットのウィジェットに匹敵する適切なウィジェット セットが付属しています。

ツール

CEGUIは、標準的な画像、XML、コード編集ツールを使用して完全にカスタマイズできます。また、CEGUIベースのインターフェースの設計と開発を支援するツールも提供しています。

0.8より前のCEGUIバージョンでは、インターフェースのさまざまな側面を編集するための個別のツールが提供されていました。その中で最も注目すべきは、イメージセットエディタとレイアウトエディタです。

CEGUI 0.8以降、CEGUI統合エディタ(CEED)と呼ばれる新しい統合編集ツールが登場し、活発に開発が進められています。[ 4 ]このツールは、GUI開発のあらゆる側面を1つのツールに統合しています。

レンダリング

レンダリングはバックエンドのレンダリングモジュールによって実行されます。CEGUIは、Direct3DOpenGLOGRE 3Dエンジン、Irrlichtエンジン用のモジュールを提供します。カスタムエンジン用のモジュールも作成可能です。

CEGUIのGUIコンポーネントはツリー(グラフ)[ 5 ]に編成されており、ツリーのトラバーサル順にレンダリングされます。

リソース管理

ファイルの読み込みとリソース管理は、バックエンドの「リソースプロバイダーモジュール」によって処理されます。ユーザーはカスタムモジュールを作成して、リソースへのアクセス方法を定義できます。これにより、このライブラリはほぼあらゆるオペレーティング環境で使用できます。デフォルトのリソースプロバイダーはクロスプラットフォームであり、リソースの読み込みに標準的なファイルアクセスメカニズムを提供します。オプションのminizipモジュールを使用すると、zipアーカイブからのリソース読み込みが可能になります。

メモリ管理

CEGUIは柔軟なメモリ管理システムを備えています。このシステムはOGREをベースとしており、クライアントは異なるタイプのアロケータを異なるタイプのオブジェクトにマッピングできます。デフォルトでは、すべてのオブジェクトはオペレーティングシステムのデフォルトアロケータを使用します。CEGUIはOGREとnedmallocアロケータをサポートしています。

スクリプト

CEGUIにはオプションのバックエンドスクリプトモジュールがあります。CEGUIでは、 LuaおよびPythonスクリプトモジュールが提供されています。CEGUIの完全なアプリケーションプログラミングインターフェース(API)はスクリプト経由で利用できるため、クライアントはスクリプト環境内でウィンドウの作成、リレーションシップの定義、イベント処理などをすべて行うことができます。

見た目と感触

CEGUIは、様々なウィジェットのルックアンドフィールを定義するための強力なシステムを備えています。Falagardと呼ばれるこのシステムでは、ユーザーが希望する場合はXMLファイルまたはC++コードを使用してウィジェットの外観を定義できます。また、任意のウィジェットのレイアウト動作を変更することもできます。

アニメーション

CEGUIにはアニメーションシステムが組み込まれています。このシステムにより、ウィンドウの移動やサイズ変更から、色変換や画像のシーケンスまで、多くの標準的なトランジション効果を実現できます。アニメーションはXMLで定義し、任意のイベントによってトリガーできます。クライアントは、ウィンドウのプロパティをキーフレームとして指定し、フレーム間のトランジション方法とフレーム間のトランジション時間を指定できます。

ユニコード

CEGUI はUnicodeに対応しており、オプションのバックエンドBidi モジュールを介して双方向言語をサポートします。このサポートはMiniBidiまたはFriBidiによって提供されます。

ライブラリ依存関係

CEGUIは外部ライブラリに依存せずに構築できます。ただし、一般的な構成では、FreeType、レンダリングモジュール、XMLパーサーモジュール、画像コーデックモジュールが必要です。CEGUIはモジュール設計により、既に複数の外部ライブラリをサポートしています。

CEGUI でサポートされている外部ライブラリ
タイプ 名前 追加情報
レンダリングモジュール OpenGL 3.2+ コアプロファイルプログラマブルレンダリングパイプラインを使用し、非推奨ではない機能のみを使用するため、OpenGLコアプロファイルコンテキスト(OpenGL 3.2以降で利用可能)と互換性があります。必要な機能が利用可能であれば、古いバージョンのOpenGLや互換性プロファイルでも使用できます。
オープンGL固定機能レンダリングパイプラインを使用します。OpenGL拡張機能を使用することで、OpenGL 1.2などの非常に初期のOpenGLバージョンとの互換性を確保するように設計されています。
マイクロソフト Direct3DMicrosoft Direct3D 9、10、および 11 は、個別のモジュールを使用してサポートされます。
リリースでは最新の安定した Ogre バージョンがサポートされています。
イルリヒトエンジンリリースでは、最新の安定した Irrlicht バージョンがサポートされています。
画像コーデックモジュール シンプルな画像読み込みライブラリ(SILLY) SILLYライブラリをベースにしたデフォルトの画像コーデック。多くのフォーマットをサポートしています。[ 6 ]
悪魔DevIL ライブラリに基づく画像コーデック。
無料画像FreeImage ライブラリに基づく画像コーデック。
OGRE の画像読み込み機能を介してデータを読み込む画像コーデック。
リソースプロバイダーモジュール デフォルト CEGUIの内部リソースプロバイダーは、追加モジュールを必要とせずに使用できます。標準的なクロスプラットフォームのファイルアクセスを使用します。
OgreユーザーはCEGUIのOgre ResourceManagerを使用できます。これにより、CEGUIのリソースの場所を、Ogreリソースの場合と同じ方法で指定できます。
ミニジップCEGUI の MinizipResourceProvider を使用すると、.zip ファイル内の場所からリソース ファイルを読み込む機能が提供されます。
XMLパーサーモジュール 外国人居住者CEGUI のデフォルトの XML パーサー。XML解析には Expatライブラリを使用します。
LibXML2XML 解析には LibXML2ライブラリを使用します。
ラピッドXML XML 解析には RapidXml ライブラリを使用します。
タイニーXMLXML 解析には TinyXMLライブラリを使用します。
Xerces -C++ XML解析にはXerces-C++ライブラリを使用します。CEGUIのリソースで提供される.xsdファイルを使用してスキーマを検証できます。
フォントモジュール フリータイプFreeTypeは CEGUI のデフォルトのフォント ライブラリであり、現在唯一公式にサポートされているフォント ライブラリです。
正規表現モジュール Perl互換正規表現(PCRE) デフォルトの正規表現ライブラリであり、現在唯一公式にサポートされているライブラリです。PCRE を使用します。
スクリプトモジュール ルアtolua++ を使用して lua バインディングを提供します。
パイソン公式のPythonバインディングはPyCEGUI [ 7 ]から利用可能である。
メモリ管理 Ogre のメモリ アロケータは、オプションで CEGUI のメモリ管理に使用できます。
ネドマロックnedmalloc はオプションでメモリアロケータとして使用できます。
双方向言語モジュール ミニBIDICEGUI の Bidi ビジュアル マッピングの MiniBIDIベースの実装。
金曜日[ 8 ]CEGUI の Bidi ビジュアル マッピングの FriBIDIベースの実装。

Ogre3DライブラリはUIにCEGUIライブラリに依存していましたが[ 9 ]、Ogre3Dはその後、よりスリムですが機能も少なくなっている独自のUIソリューションを組み込むように変更されました。

リリース履歴

バージョン 発売日
0.1.0 2004年12月19日[ 10 ]
0.1.1 2005年1月23日
0.2.0 2005年2月17日
0.2.1 2005年5月30日
0.3.0 2005年6月30日
0.4.0 2005年9月7日
0.4.1 2005年11月26日
0.5.0 2006年11月6日
0.6.0 2008年3月27日
0.6.2 2008年12月3日
0.7.0 2009年9月20日
0.7.1 2009年10月26日
0.7.2 2010年8月29日
0.7.3 2010年10月8日
0.7.4 2010年10月11日
0.7.5 2010年11月20日
0.7.6 2012年1月22日
0.7.7 2012年6月23日
0.7.8 2013年1月8日
0.7.9 2013年1月13日
0.8.0 2013年5月26日
0.8.1 2013年6月5日
0.8.2 2013年6月12日
0.8.3 2013年12月7日
0.8.4 2014年7月7日
0.8.5 2016年3月12日

参照

参考文献

  1. ^ https://github.com/cegui/cegui/releases/tag/v0-8-7
  2. ^ 「Simple DirectMedia Layer - ライセンス」
  3. ^マクドナルド、ミッキー 2018年1月29日)『C++ゲーム開発をマスターする:C++でプロフェッショナルかつリアルな3Dゲームを作る』17ページ。バーミンガム、イギリス。ISBN 978-1-78862-983-6. OCLC  1023864109 .{{cite book}}: CS1 メンテナンス: 場所の発行元が見つかりません (リンク)
  4. ^シード
  5. ^パーベイシブ・コンピューティングとネットワーク化された世界:合同国際会議、ICPCA/SWS 2012、トルコ、イスタンブール、2012年11月28日~30日、改訂選抜論文。Zu, Qiaohong., Hu, Bo., Elçi, Atilla., IEEE Symposium on Web Society (2012 : イスタンブール、トルコ)。ベルリン:Springer。2013年。ISBN 978-3-642-37015-1. OCLC  830532405 .{{cite book}}: CS1 メンテナンス: その他 (リンク)
  6. ^ 「SILLY - CEGUI Wiki - Crazy Eddie の GUI システム (オープンソース)」
  7. ^ 「PyCEGUI - CEGUI Wiki - Crazy Eddie の GUI システム (オープンソース)」
  8. ^ホーム」 .fribidi.org .
  9. ^ Thorn, Alan. (2008).クロスプラットフォームゲーム開発. テキサス州プラノ: Wordware Pub. ISBN 978-1-59822-056-8. OCLC  213408662 .
  10. ^ 「Crazy Eddies GUI システム (CEGUI) - SourceForge.net で /CEGUI Mk-2/0.1.0 を参照」