首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

为啥texture无法清理干净呢

2012-11-05 
为什么texture无法清理干净呢?C/C++ codepTexture-GetLevelDesc( NULL,&PicDes )long tWidth PicDes.W

为什么texture无法清理干净呢?

C/C++ code
        pTexture->GetLevelDesc( NULL,&PicDes );        long tWidth = PicDes.Width;        long tHight = PicDes.Height;        TextureLimit = tWidth * tHight;        Texture = pTexture;        hr = Texture->LockRect(0,&LockedRect,NULL,D3DLOCK_NOOVERWRITE);        if( hr != S_OK )        {            TextureError( T_Normal );        }        DWORD *Data = (DWORD*)LockedRect.pBits;        ZeroMemory( Data,TextureLimit );

为什么还有一些画屏的现象

[解决办法]
对啊,我也在愁呢

[解决办法]
TextureLimit = tWidth * tHight;
ZeroMemory( Data,TextureLimit );

这里大小是错误的,应该是 单行的字节数*纹理高 。
列如32位的图片应该是 tWidth * 4 * tHight;
[解决办法]
1.lock参数错误,你传递的参数是不会重写贴图的意思。
2.size计算错误,ls已经说了
3.texture是否有miplevel,如果有的话,看看是否必须对每一层都清除。

热点排行