†PlusGは組込みLinux上で動作するグラフィカルなアプリケーションを作成するライブラリとツールのキットです。ライブラリはコアエンジンに「DirectFB」を使用しています。「DirectFB」はCPUパワーを必要とするX-Windowシステムなどを使わずに直接フレームバッファに描画するライブラリで、CPUパワーの低い組込み機器でもストレスなく動作させることができます。ウィンドウシステムやボタン、画像、タイマー機能などを備えたイベントドリブン型GUIプログラムを簡単に作成することが可能です。生成しますのでデザインも思いのままです。ライブラリの他、開発ツールとして、プロジェクト管理機能付き高機能エディタ(統合開発環境SWEET)、ダイアログエディタ、カラーパレットエディタ(減色、共通パレット)が付いています。PlusGとPlusGが必要とするライブラリは全てソースコードが付いていますのでLinuxが動く環境であればアーキテクチャに依存することなくいろいろな環境で使用可能です。†コンパイルや動作確認など開発は全てWindows上で行うことが出来ます。LinuxOSやビルド環境をWindowsの仮想PCソフトウェア上で行うことにより、全ての開発をWindowsパソコン1台で行うことができます。ターゲット機(試作機)の完成を待つことなく、アプリケーションの先行開発も可能です。ターゲット機が1台でも複数のメンバで開発できます。ダイアログなどのデザイン、プログラミング作業、その他、付属のツールは全てWindowsアプリケーションです。※「仮想PCソフトウェア」はVirtualBoxを採用しています。x86の仮想化ソフトウェアで、サンマイクロシステムズ社が提供するソフトウェアです。※開発環境をインストールしたVirtualBox用の仮想ハードディスクファイルを提供しますのでWindowsPCがあればすぐに開発が開始できます。†ウィンドウフレーム、ボタン、エディットボックスなどのオブジェクトはユーザが作成したオリジナル画像から生成されますので、アプリケーションの全てのデザインが自由に設計できます。作成したオブジェクトは付属のダイアログエディタでデザインできますのでマウス操作で簡単にダイアログが作成できます。オブジェクト画像は実行時にロードするので、アプリケーションのスキンをいくつか用意し動的に切り替えることも簡単に行えます。付属のダイアログエディタは、作成したオブジェクトを配置しダイアログをデザインするツールです。このソフトウェアはオブジェクトのレイアウト情報を元にC++のソースコードを生成します。生成されたソースコードには、ボタンのクリック、タイマーの発生などイベント処理用の空関数が多数自動作成されますので、このイベント関数に、アクション、ページ遷移などを書き加えコンパイルすればGUIアプリケーションの完成です。次の9種類のオブジェクトが存在します。ボタンプッシュボタン、ラジオボタン、チェックボックス、タブページなどの動作を行います。エディットボックス文字列の編集(挿入、削除、キャレット移動など)、管理を行います。フレームウィンドウやダイアログの枠、タブページの枠、リストやメニュー表示の枠などの表示を行います。テキスト文字列を表示します。書体、サイズ、色、寄せ、マージンなどの属性を持っています。アイコン・ピクチャーアイコンとピクチャーは非常によく似たオブジェクトです。イラスト画像や写真画像の表示を行います。ピクチャーはパレットの管理が可能です。りつぶしなどDraw系のデータを処理します。ベクトルデータを表示することが可能です。キーボードキーボードや外部スイッチなどが押されたことを通知するオブジェクトです。グループ複数のオブジェクトをグループ管理するオブジェクトです。グループ管理することで、一括に移動や消去などの属性変更などができます。ラジオボタンのような、トグル選択機能も提供します。†PlusGはソースコード提供ですので、Linuxが動作する環境とフレームバッファがあれば動作します。等アーキテクチャを選びません。†CPUパワーの低い組込み機器で動作することを前提に開発されていますので、256色のインデックスカラー表示しかサポートしていない機器にも対応しています。付属のカラーパレット作成ツールでフルカラーリソースの高品質な減色、共通パレットの作成など、市販のグラフィックエディタでは難しいパレット作成が簡単にできます。このエディタは、減色による画像の劣化を最小限に抑える為の「ディザ」や「誤差拡散」などの機能も備えています。※256色(8ビット/ピクセル)環境で1画面に表示する画像(ボタンやフレーム、写真など)は全て同一のパレットを使用する必要があります。したがって全ての画像を高品質に表示するには、256のパレットの一部を共通領域、一部を独立領域とするなどの工夫が必要です。†PlusGを使って作成するアプリケーションはメッセージドリブン型です。PlusGのダイアログクラスにはいくつかのメッセージ処理用のコールバック関数(Virtual)が用意されています。オブジェクトやデバイス、タイマーなどからイベントを受け取ると、それらの関数をコールバックします。代表的なイベント通知関数に次のものがあります。param);※本解説では「メッセージドリブン」という表現を採用していますが、一般的には「イベントドリブン」「イベント駆動」という呼び方の方が多く使われているようです。†キャンバスオブジェクトは2次元ベクトルデータの描画機能を備えています。2次元ベクトルデータを基本とした有名なファイルフォーマットにPostScriptやPDFがありますが、キャンバスオブジェクトの描画機能はこのPostScriptやPDFと同じような機能をサポートしています。豊富な機能を備えています。※描画エンジンとしてCairoを使用しています。†8Bit/Pixelのフレームバッファを使用する際は256色パレットを使用します。1つのデバイスには1つのパレットしか使用することができませんので、画面上に表示される全てのオブジェクトは同一のパレットを使用する必要があります。PlusGでは256あるパレットを特色、共通色(抽出)、固有色と3つに分け、使用するリソース画像から使用される全ての色を抽出し、使用頻度の高い重要な色を抽出し、自動的にパレットを作成する機能があります。この機能により256色のフレームバッファで高品質に画像(写真)を表示することが可能になっています。少ない色数で多くの色を表現する手法としてディザリングという方法があります。写真画像には少なくとも数千、場合によっては数百万の色が使われています。減色したパレットで写真画像を表示する場合そのまま表示すると著しく劣化する場合があります。この様な場合にディザリングを行うと擬似的に表現色数が増え品質が向上します。PlusGに付属のパレットエディタは高品質な減色機能に加え、ディザリング機能も備えています。†PlusGライブラリはTrueTypeやType1などのアウトラインフォントをサポートしています。※FreeType2フォントライブラリを使用しています。†PlusGライブラリ内部で使用する文字コードはUFT8です。コーディングファイルはUTF8を使用して下さい。開発は仮想PCの中で行います。プログラミングやデザインなどの各エディタはWindowsアプリケーションですが、編集するファイルは仮想PCの内部にあります。仮想PCは生成・編集されたソースコードのビルドを行い、仮想PC上で実行、動作検証を行います。(同一ソースを)クロスビルドすることでターゲット機で動作するバイナリの生成も行います。SWEETエディタには、仮想PCでのビルド・実行とターゲット機でのビルド・実行の切り替えをボタンひとつで切り替える機能がついています。Windows開発機、Linux仮想PC、Linuxターゲット機はそれぞれLANでつながっています。※Telnet、NFS、Sambaなどを使用します。†Photoshopなど画像編集ソフトを使ってボタンなどの部品のデザインを行います。各部品は、状態の違いにより数パターンの画像が必要です。+選択、無効、フォーカスと6種類登録可能で必要に応じて作成します。ボタンとエディットボックスは、高さの伸長ができませんので、高さの変化に応じた画像を用意します。†PlusG付属のダイアログエディタを使い、作成した画像をオブジェクトとして登録します。登録したオブジェクトを使用しダイアログを作成します。位置、サイズはマウス操作で簡単に編集できます。設計は必要な全てのダイアログの数だけ行います。†ダイアログエディタを使い、登録オブジェクトや、作成したダイアログのレイアウト情報を元にC++のソースコードを生成します。生成されたソースコードには、ボタンのクリック、タイマーの発生などイベント処理用の空関数が多数自動作成されます。†PlusG付属のソースコードエディタを使いコーディングを行います。SWEETは複数ソースファイルのプロジェクトとしての管理機能や、Makefileの自動作成、Telnet、ソフトウェアデバッガなど、組み込みプリケーション作成に必要な機能が全て揃っています。自動生成されたソースコードのイベント処理用空関数に必要なコードを記述します。通常のアプリケーション開発同様、ビルド、テスト、デバッグを行います。SWEETはMakefileの作成、GCCコンパイラの実行、GDBを使ったステップ実行などが出来ます。?、?を繰り返し行いダイアログなどのユーザインターフェース部分を完成させます。外部からの信号の取込や、速度など実機でしか行えない部分のコーディングと検証を行います。†PlusGが必要とする全てのライブラリは非GPLライセンスですので、出荷の際にお客様の作成したアプリケーションのソースコードを開示する必要はありません。†PlusGのライセンスは、開発プロジェクト単位になっており、開発者の人数、使用するマシン数に制限はありません。ランタイムライセンスも不要ですので出荷台数にも影響しません。サポートとして、関数の使い方はもちろん、お客様のアプリケーション機能に応じたサンプルプロクラムの作成や、お客様のターゲットボード用の開発環境の構築に関するサポートやLinuxに関する一般的な質問などにも対応致します。液晶キット」が用意されています。キットにはソースコード付きサンプルプログラムがインストール済みです。サンプルを参考に導入からすぐに開発が始められます。†アプリケーションの開発、外部H/Wとの連携、通信などの開発、Linuxデバイスドライバの作成、Linuxの移植など、一部または全部をお手伝いさせて頂くことも可能です。プラスG担当者宛て)お気軽にお問い合わせください。