・TODO
autoはずし

ライセンスや、ライブラリ、ドキュメントの詳細など、readmeを書き足す

sdlの最新版を入れる

math、openglの座標系のものを追加する、direct3dのものは残して共存させる

opengl, sdlのimportを使わないで利用できるように

wrlayersの描画に関係しない処理は別のモジュールにまとめる

TerminableCommandをForeTerminableCommand, BackTerminableCommandに分ける?
最初に描画するものと最後に描画するものに分けたほうがいい?

Controlをこちらに移す、Point Rectangleの実装
Networkを使って実装

rootControl

alive消せる

メソッドが別スレッドから呼ばれた場合エラーに




・init.rjについて
初期化に必要、caption, width, heightの設定が可能
resourceLimitは利用できるテクスチャと頂点バッファの限界値、
これを超えると、その次のupdateでこれらのリソースは全て開放される。
vram-(update間での最大使用リソース)が最適値
例
caption: test
width: 320
height: 240
totalResourceSizeLimit: 10_000_000
%%


・SdlInput.initInputRjについて
マウス、キーボード、ジョイスティックの入力をuint型に変換する
foreachで受け取ることができる
変換用のスクリプトはrj形式でinitInputRjに渡す
result: foreachで受け取る値
device: mouse, keyboard, joystick
state: on(offからonに遷移するとき), off(onからoffに遷移するとき)
code: それぞれのdeviceのボタン特有のコード

例
static assert(97 == 'a');
initInputRj = "
	result: 0
	device: mouse
	state: on
	code: 1
	%% mouse left on
	
	result: 3
	device: keyboard
	state: off
	code: 97
	%% 'a' off
	
	result: 4
	device: joystick
	state: on
	code: 0
	%% joystick up on
	
	result: 6
	device: joystick
	state: off
	code: 4
	%% joystick button 0 off
";


・ファイル名とテキスト文字列
テクスチャロードの利便性を考慮して、ごっちゃにして処理してます。
いったんロードしたファイル名と同じテキストをテクスチャとして使えないので注意。
同様の理由で、フォントの属性違いの同じ文字列を扱うこともできません。
例えば、"test.bmp"というファイルを先に読み込んだ場合には、"test.bmp"という文字列は使えなくなり、
"test.bmp"という文字を先に読み込むと、"test.bmp"イメージのテクスチャは使えなくなります。
"a" italic=true の文字列を先に読むと、"a" italic=falseという文字列は使えなくなります


・zipファイルの扱い
zipファイル内にあるtexture, vertexBufferを読み込めます。
今のところhdk.zipexで書き込んだもの限定でvertexBufferはpcnt, pcntmwだけ対応してます。
ファイル名として`foo.zip\hoge`という形で、foo.zip内のhogeデータという意味で使います。


・TerminableCommandについて
寿命つきのコマンドでこのコマンドはupdateの影響を受けません。
postTerminableCommandで入れた直後からオブジェクトのaliveがfalseになるまで描画され続けます。


・ドキュメントについて
make doc
で生成してindex.htmlで


・render state
以下のメソッドは描画に影響を与えるので、draw系メソッドを呼び出す前に設定しておく。
projection
modelView
depthTestWriting
cullingEnableFront
setShaderFloat
setShaderInt
setShaderVector
setShaderMatrixArray
