Ninja Library - テクスチャ関数

njSetFrameBufferTextureNum

フレームバッファテクスチャの設定

書式

Sint32 njSetFrameBufferTextureNum( n, pWorkAddr, nUpper, nLower)
Uint32 n
void *pWorkAddr
Uint32 nUpper
Uint32 nLower

引数

 テクスチャ番号
pWorkAddr   ワークアドレス
nUpper   上辺スキップライン数(nUpper>=0)
nLower   下辺スキップライン数(nLower>=0)

戻り値

 1   成功
−1   失敗

解説

カレントテクスチャリストのテクスチャ番号nをフレームバッファテクスチャとします。 前々回のフレームバッファ(現在表示中)の内容を一旦メインメモリに読み込んだ後 テクスチャメモリへ転送します。テクスチャを描画するのはユーザーです。 また、フレームバッファテクスチャの横幅はフレームバッファと一致させておく必要が あります。必然的にストライドテクスチャを使用することになります。


用例

NJS_TEXINFO texinfo;
NJS_TEXNAME texname;
NJS_TEXLIST texlist = { &texname, 1 };

void *pWork;
	
Sint32	UserInit(void)
{
	pWork = syMalloc(1024*512*2);
	
	njSetTextureInfo(&texinfo , NULL, NJD_TEXFMT_RGB_565 | NJD_TEXFMT_STRIDE, 1024,512);
	njSetTextureName(&texname , &texinfo, 0, NJD_TEXATTR_TYPE_SURFACE | NJD_TEXATTR_GLOBALINDEX);
	nuLoadTexture( &texlist );
	njSetTexture( &texlist );
	
	njSetRenderWidth( 640 );
	njSetFrameBufferTextureNum( 0, pWork, UPPER, LOWER );
	njFrameBufferTextureTurboMode( ON );
	return USER_CONTINUE;
}
Sint32	UserExit(void)
{
	njStopFrameBufferTexture();
	njReleaseTexture( &stexlist );
	syFree( pWork );
	return USER_CONTINUE;
}
Sint32	UserMain(void)
{
	
		...
	
	njSetTexture( &texlist );
	njSetTextureNum( 0 );
	njDrawTextureEx( vtx, 4, TRUE );
	
		...
	
}

備考

フレームバッファがARGB8888のときは使用できません。


参照

njFrameBufferTextureTurboMode() フレームバッファテクスチャの転送モードを設定します
njSetFrameBufferTextureNumG() グローバルインデックス番号によるフレームバッファテクスチャの設定
njStopFrameBufferTexture() フレームバッファテクスチャの停止

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