サイログ。

~雑多な記事置き場~

再びMiyako2.0計画の現状

Miyakoのソースに快感を覚えだしてヤバい状態のサイロスです。

現在、Miyako2.0の機能追加を行っています。概要は以下の通りです。

・Drawingモジュールの実装(画面やスプライトに線形描画を行うモジュール)*1
・(できれば)ROPモジュール(ラスタオペレーションモジュール)とPixel構造体(RGBA情報が入っている構造体)の追加
・Bitmapの転送メソッドを破壊的メソッドに変更(各メソッドの最後尾に"!"が付く)(←今ここ)
・(できれば)to_spriteメソッドを、画像複製を含むdupメソッドのようなものにする*2
・ ・・・他(たぶん)

今までの転送・変形メソッドは、どうしてもメモリの面で影響が大きいので、破壊的メソッドがメインの方が扱いやすいと思ったのですが、いかがでしょうか?

あと、ラスタオペレーションについて。たとえば、転送時にピクセルに変化を与えたいときなどに、

  @spr.render do |pix| # pix はピクセルデータ構造体
    ROP.hue!(pix, 30) # 色相を30度移動
    ROP.white_out!(pix, 0.1) # 10パーセントのホワイトアウト
  end

とやれば、Rubyっぽいラスタオペレーションができるんじゃないかと思ったわけで。いかがでしょ?*3

*1:Drawingクラスは要らないなと思ったけど、Miyako2.0で画面に直接線形描画できるから、モジュールにした方が扱いやすいという理由です。Spriteクラスの線形描画メソッドは廃止

*2:Partsクラスなどは、呼び出した時点のすべての部品が貼り付けられたSpriteインスタンスが得られる

*3:たんなる自己満足じゃなきゃいいけど・・・