|
|
各位大大好~~
我现在想用StretchRect()缩小一张TEXTURE的像素
相关代码是这样的
int size = 128;
int level = 7;
LPDIRECT3DTEXTURE9 pSamMap[8];
for ( int i = 0; i <= level; ++i )
{
if( FAILED( ms.GetDevice()->CreateTexture( size, size, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &pSamMap, NULL )))
return;
size /= 2;
}
//渲染代码 ......
for ( int i = 1; i <= level ; ++i )
{
if( FAILED( pSamMap->GetSurfaceLevel(0, &pDstSurface) ))
return;
if( FAILED( pSamMap[i - 1]->GetSurfaceLevel(0, &pSrcSurface)))
return;
if( FAILED( ms.GetDevice()->StretchRect( pSrcSurface, NULL, pDstSurface, NULL, D3DTEXF_LINEAR ) ) )
return;
pSrcSurface->Release();
pDstSurface->Release();
}
在StretchRect这里出错
出错提示是
Direct3D9: (ERROR) river does not support D3DTEXF_LINEAR when shrinking. StretchRect fails
我也查过DX的文档 RT-TEXTURE 到 RT-TEXTURE 应该是支持的吧
我有另一个网上下载的代码用了同样的方法去做 但是没有出错啊
请指教~
|
|