2015年05月29日

HSPでColorRef型を簡単に扱う

ColorRef 型とは、RGBの色情報を 3 つの変数で管理するのではなく、
1 つの変数で管理するための変数型です。
HSP では 色情報(0〜255) を扱うのにも 4 バイトの int が使用されてしまうため、
色情報をたくさん扱うときはメモリを大量に無駄遣いしてしまうことになります。

このモジュールを使えば、それをある程度緩和できます。

//--------------------------------------------------------------------------------------------------
//= COLORREF Module type1 (RGB)
//--------------------------------------------------------------------------------------------------
#define ctype RgbToRef(%1,%2,%3) (%1<<16)|(%2<<8)|%3
#define ColorRef(%1) color 0xff&(%1>>16), 0xff&(%1>>8), 0xff&%1
#define ctype RefToR(%1) (0xff&(%1>>16))
#define ctype RefToG(%1) (0xff&(%1>>8))
#define ctype RefToB(%1) (0xff&%1)

//--------------------------------------------------------------------------------------------------
//= 以下サンプル
//--------------------------------------------------------------------------------------------------
#if 0
bgcolor = RgbToRef(180, 196, 255)
textcolor = RgbToRef(255, 64, 80)

ColorRef bgcolor
boxf

ColorRef textcolor
mes "bgcolor:"+bgcolor
mes "RefToR(bgcolor):"+RefToR(bgcolor)
mes "RefToG(bgcolor):"+RefToG(bgcolor)
mes "RefToB(bgcolor):"+RefToB(bgcolor)
mes ""
mes "textcolor:"+textcolor
mes "RefToR(textcolor):"+RefToR(textcolor)
mes "RefToG(textcolor):"+RefToG(textcolor)
mes "RefToB(textcolor):"+RefToB(textcolor)
#endif


posted by ひじき at 00:28| Comment(0) | ソースコード | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。