[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00852] カラーでの縦画面表示について
- Subject: [WitchTech 00852] カラーでの縦画面表示について
- From: "Kentarou Hayashi" <grove@mbd.sphere.ne.jp>
- Date: Sun, 2 Sep 2001 22:14:49 +0900
お久しぶりです、Rinjianと申します。
今ごろになってカラーライブラリに手を出しました。
さて、今回は縦画面表示させるための回転データ作成の方法に
ついてよくわからないのでご教授いただければ幸いです。
bmpcnv -m0 -cで出力したデータを書き換えるプログラムにより、
右に90度回転させたデータを得ようとしましたが、
実際に表示させてみると、崩れてしまっています。
(つまり、書き換え方が誤っているという。)
以下が問題のプログラムで、カラーモードのデータを操作する
ものです。
書き換え対象のデータを指すポインタを関数に与え、演算を
施します。
例えば、
p = bmp_hoge;
for(i=0; i<64; i++){
ColorFontCnvRightAngle(p);
p = p+8;
}
などとして、64キャラクタを書き換えたりします。
(pはunsigned long *として宣言。bmp_hogeは
bmpcnvで生成した配列の名称です。)
void ColorFontCnvRightAngle(unsigned long *p)
{
int line,row;
unsigned long *lwp;
unsigned long tmp,longdata,mask;
unsigned long linedata[] = {
0,0,0,0,0,0,0,0,
};
lwp = p;
for(line=0; line<8; line++){
mask = 0x01010101;
longdata = *lwp;
for(row=0; row<8; row++){
tmp = (longdata&mask)>>row;
tmp = tmp<<(7-line);
linedata[row] |= tmp;
mask = mask<<1;
}
lwp++;
}
lwp = p;
for(line=0; line<8; line++){
*lwp = linedata[line];
lwp++;
}
}
上述のプログラムを呼び出さなければ、
横画面用のデータのままできちんと表示されます。
設定してあるモードとデータが食い違っているという
事ではありません。
マニュアル記載の「12.6カラーライブラリ概要」を元に
してはいるものの、とんでもない勘違いをしているのかも
知れないのですが・・・。
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
Rinjian
E-mail: rinjian@hotmail.com
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
ML Archives