読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

PSPで透過色を透過出来る様になりました。

C/C++ ガジェット

helloPSPのソースをいじりながらPSPプログラミングを勉強中です。pgBitBlt()少し改造してみました。

上記の画像の作成には、ぶーにゃんの部屋のPNG<>PSP画像形式のC変換ツールを使わせて頂きました。Windows付属のペイントとこのツールだけでPSPですぐ使えるものが作れるのでかなり便利です。

あとは、HOMEボタンを押したときのコードを追加すればデバッグもやりやすくなるはず。納期前で色々と忙しいけれど頑張れ俺!

/////////////////
//  透過色描画
/////////////////
void pgBitBlt_Percolation(unsigned long x,unsigned long y,
    unsigned long w,unsigned long h,unsigned long mag,
    const unsigned short *d, unsigned short pec_color)
{
  unsigned char *vptr0;    //pointer to vram
  unsigned char *vptr;    //pointer to vram
  unsigned long xx,yy,mx,my;
  const unsigned short *dd;
  
  vptr0=pgGetVramAddr(x,y);
  for (yy=0; yy<h; yy++) {
    for (my=0; my<mag; my++) {
      vptr=vptr0;
      dd=d;
      for (xx=0; xx<w; xx++) {
        for (mx=0; mx<mag; mx++) {
          /* 指定された透過色以外を描画する */
          if (*dd != pec_color)  *(unsigned short *)vptr = *dd;
          vptr+=PIXELSIZE*2;
        }
        dd++;
      }
      vptr0+=LINESIZE*2;
    }
    d+=w;
  }
  
}