昨日、processingの最新版はAndroidでも動作するらしい、という記事を見かけたので、自分にはtsukimiという自分の実装があるんだからそれを使ってC#で動かせるはずだし難しくないはずだと思い立って、挑戦してみることにした。
ただ、実際に移植してみると、tsukimiはSilverlight 2.0の頃に作られたものなので、いろいろと古いし制約が大きい。WritableBitmapは存在していなかったし、Linqのexpression treeもかろうじて存在していただけで、また詳しくもなかったので、コード生成は別途行っていた。
まず、tsukimiのWPF/Eベースの描画バックエンドを、SurfaceViewに移植するところから始めることになった。SurfaceViewは2年ほど前にちょっといじった程度で、もう覚えていない。適当にAPIを眺めながら実装した。
そしてアプリケーションのスタートアップの仕組みが、Silverlightとは異なるので、その辺りを試行錯誤しながら実装した。ここが一番ハマったと思う。結局今はSurfaceViewの派生クラスもActivityの派生クラスも作成して、その上にユーザーコードを派生させるという仕組みになっているのだけど、そうでない状態で動かなかったからそうしているだけで、改善の余地は大きい。
誰でも使える実装ができたわけではないけど、とりあえず1つだけサンプルが動いて、仕組みとして動くらしいことは分かったので、後は他のタスクを優先して、気が向いた時に改善しようと思う。
Leave a comment