Ninja Library - テクスチャ関数

njReadRectangleTexturePartNumG

グローバルインデックス番号によるテクスチャの矩形領域をメインメモリへ転送

書式

Sint32 njReadRectangleTexturePartNumG( globalIndex, texaddr, p )
Uint32 globalIndex
Sint8 *texaddr
Uint32 *p

引数

globalIndex   グローバルインデックス番号
texaddr   ファイル名又はテクスチャメモリへのポインタ
 矩形領域の情報を格納したデータのポインタ

戻り値

 成功
-1   失敗

解説

指定したグローバルインデックス番号のテクスチャをメインメモリに転送します。

読み込み可能なテクスチャはRectangle形式かStride形式のテクスチャです。 矩形領域の情報を格納したポインタを示す引数 pは、Uint32の7個のデータを持つ配列へのポインタです。 配列データにはそれぞれ次の内容を格納してください。

 配列   内容 
 p[0]   width 転送領域幅 
 p[1]   height 転送領域高さ 
 p[2]   src_x 転送元スタートX座標(左0) 
 p[3]   src_y 転送元スタートY座標(上0) 
 p[4]   dst_x 転送先スタートX座標(左0) 
 p[5]   dst_y 転送先スタートY座標(上0) 
 p[6]   dst_w 転送先テクスチャ幅 

転送元の矩形領域は(src_x,src_y)-(src_x+width,src_y+height)です。

転送先の矩形領域は(dst_x,dst_y)-(dst_x+width,dst_y+height)としdst_wに転送先のテクスチャの幅を指定します。 dst_wが0の場合、転送先のテクスチャ幅は widthの値、高さは heightの値になります。 この場合は dst_x、dst_y は無視されます。


用例


p[0] = 128; /* width */
p[1] = 128; /* height */
p[2] = 100; /* src_x */
p[3] = 100; /* src_y */
p[4] = 100; /* dst_x */
p[5] = 100; /* dst_y */
p[6] = 256; /* dst_w */
/* Read rectangle area */
njReadRectangleTexturePartNumG( 0, texbuf, p );
/* Swap RED bit with BLUE bit */
for( j=100; j<228; j++ ){
    for( i=100; i<228; i++ ){
        color = *(Sint16*)((Uint32)texbuf + i*2 + j*256);
        r = (color >> 11)& 0x1F;
        b = (color & 0x1F);
        *(Sint16*)((Uint32)texbuf + i*2 + j*256)
            = (color & 0x07E0) | (b << 11)|(r);
    }
}
/* Reload texture */
njReLoadRectTexturePartNumG( 0, texbuf, p );

参照

njReadRectangleTexturePartNum() テクスチャ番号によるテクスチャの矩形領域をメインメモリへ転送

njReadRectangleTexturePartNumG
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000