|
|
发表于 2006-5-15 10:20:00
|
显示全部楼层
Re:如何将一个纹理中的内容拷到另一个纹理的相应区域?
我也有一些疑问,我通过CreateTexture创建出来的一个Texture,通过调用GetSurfaceLevel可以获取到他的Surface.但是,我再用UpdateSurface把一个有资源的纹理向其Copy时,虽然UpdateSurface返回成功,但我LockRect这个Texture时,却是空的,绘制出来也是错误的.
不知道为什么,还望回答.
LPDIRECT3DTEXTURE9 lpTexBuf;
LPDIRECT3DTEXTURE9 lpTexSrc;
//创建2个texture
m_lpDev->CreateTexture( 128, 128, 1, 0, D3DFMT_A8R8G8B8,
D3DPOOL_DEFAULT, &lpTexBuf, NULL );
D3DXCreateTextureFromFileEx(....., &lpTexSrc);
//UpdateSurface
LPDIRECT3DSURFACE9 lpSurfaceSrc;
lpTexSrc->GetSurfaceLevel( 0, &lpSurfaceSrc );
LPDIRECT3DSURFACE9 lpSurfaceBuf;
lpTexBuf->GetSurfaceLevel( 0, &lpSurfaceBuf );
RECT rect;
POINT pos;
pos.x = 0; pos.y = 0;
SetRect( &rect, 0, 0, 64, 64 );
m_lpDev->UpdateSurface( lpSurfaceSrc, &rect, lpSurfaceBuf, &pos );
不知道怎么会事.后面把Texture绘制出来就是没东西.
|
|