酢ろぐ!

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

PSPで矩形出ました

標準関数が使えないのでどうやって攻略していけばよいかわかりません。STGを作りたいけど矩形描画で悩んでいる段階ではたして出来るのかどうか……

矩形描画の関数を書いてみました。今のところこんな感じです。結構 無駄な処理をしてそうですね、もっと高速化出来そうです。

/*****************************************************/
/* @function : draw_rect()                           */
/* @note     : VRAMに矩形を描画する                  */
/*****************************************************/
void draw_rect(int startx, int starty, int targetx, int targety, int color)
{
    unsigned short *vram_ptr, *write_ptr;
    int loop_x, loop_y;

    pspDisplaySetFrameBuf(pg_vramtop, LINESIZE, PIXELSIZE, 1);

    /* 先頭画像を求める */
    vram_ptr = (unsigned short *)(pg_vramtop + 0x40000000 + ((starty * LINESIZE + startx) * 2));

    loop_y = targety;
    while (loop_y--)
    {
        write_ptr = vram_ptr;

        loop_x = targetx;
        while (loop_x--)
        {
            *write_ptr++ = color;
        }
        
        vram_ptr += (LINESIZE);
    }
}