Misya (Shia Graphic System)

Misya

概要

MisyaはShiaの画面描画環境の名称です。
色々を抽象化しています。

内部にScreenObjectsやScreenObjectScriptを含み、
Shiaから半ば独立して動きます。

Misyaは描画系を抽象化することで間に通信を挟んだ
サーバ・クライアント型の分割実行を実現…する予定です。
*シンクライアント思想

経緯

Shia v0.3においてShiaGSが策定された際に、将来的な拡張として
OpenGLなエンジンを追加するモジュールとして計画されたのがMisyaの始まりです。

で、Shia v0.4においてNew ShiaGraphicSystemとして、処理系とより独立したモノが必要となり
名前をそのままに、中身をちょっと変えてみた物が今のMisyaです。

特徴

旧ShiaGS(v0.3)の名前違いな感じで動作し、描画系の抽象化を行います。
この抽象化はより汎用的な限定環境下での動作を想定したものです。

As a Graphic system

ShiaGS

MisyaはShiaのGraphic Systemであり、Shiaの描画を担います。

基本的にはScreenObjectsを礎としますが、画面切替なども受け持ちます。

制御単位は、スクリーン、グループ、オブジェクトです。

Screen

一つの表示域を表す単位です。
複数を用いる事が出来ますが、アクティブなScreenだけが表示されます。
v0.3時ではモジュールグループと呼ばれていました。
Screenはスタック構造で保持されます。

Group

表示域上の、複数のオブジェクトをまとめて扱う為の集合です。
Groupの指定は明確に区別されるのではなく、Objectの属性のひとつとして扱われます。
主にScreen上のObjectから特定Groupを抜き出して処理対象にする、といった使い方をします。
複数項目を一括制御する為の単位です。

Object

表示の単位です。
v0.3時ではSOModule以下のElementとして扱われていました。
TSBSOではSOObjectに当たります。


Misya Order

MisyaOrderはMisyaの抽象化描画命令です。
より汎用的な環境で動作させる為の抽象命令で、
ShiaObject等から、Misyaに対して発行されます。
Misyaが受け取ったOrderは順次、具体命令なMisyaScript及び
各端末用の専用命令に変換、実行されます。

現状、いまいち動いていません。

Misya Script / SOScript

MisyaScriptはMisya制御用のスクリプトです。
Misya内部でScreenObjectの操作を受け持ちます。
内容はShiaGS(v0.3)におけるSOScriptを若干拡張したものです。

MisyaScript?SOScript?
名称はどちらでも良いです。
全体の整合性からはMisya、過去からはSOとなります。

As a ShiaObject

ShiaMessage

shianamegs
orderargsreturns
explain
ScreenObject
[gs.so.runso: スクリプト名
as:child/replace
-
SOファイルをロードし、スタックに積みます。
[gs.so.close--
カレントのスクリーンをスタックから取り除きます。
[gs.so.clear--
スタックをクリアします。
SOScript
[gs.script.loadscript: スクリプト名-
SOスクリプトファイルをロードし、SOScenarioのキューに入れます。
[gs.script.exec-(実行結果)
キュー内のSOスクリプトを1つ実行します。
[gs.script.runcode:スクリプトコード
target: ターゲットオブジェクト
(実行結果)
SOスクリプトを実行します。