##### Ninja Library - テクスチャ関数

# njReadRectangleTexturePartNum

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

### 書式

> `Sint32 njReadRectangleTexturePartNum( n, texaddr, p )
> Uint32 n
> Sint8 *texaddr
> Uint32 *p
> `

### 引数

> n | カレントテクスチャリストのテクスチャ番号
> texaddr | ファイル名又はテクスチャメモリのアドレス
> p | 矩形領域の情報を格納したデータのポインタ

### 戻り値

> 1 | 成功
> -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 */
>     njReadRectangleTexturePartNum(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 */
>     njReLoadRectTexturePartNum(0,texbuf,p);

### 参照

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

njReadRectangleTexturePartNum

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000