|
|

楼主 |
发表于 2007-3-31 10:28:00
|
显示全部楼层
Re:初学ID3DXSprite,遇到几个问题
3,4问题我自己解决了。不过问题4,我从dll创建纹理比从文件创建纹理的绘图速度要慢几十帧,但是dll里的图和文件的图是一样的。
以下是我从dll创建纹理方法和从文件创建纹理的方法,请各位给解释一下
从dll创建纹理:
HINSTANCE hins = LoadLibraryEx( "Image.dll", NULL, LOAD_LIBRARY_AS_DATAFILE );
HRSRC hres = FindResource( hins, MAKEINTRESOURCE( 100 ), " NG" );
DWORD dwLen = SizeofResource(hins, hres);
BYTE* lpRsrc = (BYTE*)LoadResource(hins, hres);
HGLOBAL hMem = GlobalAlloc(GMEM_FIXED, dwLen);
BYTE* pmem = (BYTE*)GlobalLock(hMem);
memcpy(pmem,lpRsrc,dwLen);
D3DXIMAGE_INFO d3dImageInfo = { 0 };
D3DXCreateTextureFromFileInMemoryEx(m_pd3dDevice,pmem,dwLen,
D3DX_DEFAULT, D3DX_DEFAULT, 0, 0, D3DFMT_UNKNOWN,
D3DPOOL_MANAGED, D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR,
D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR, 0, &d3dImageInfo,
NULL, &m_pBackgroundTexture );
GlobalUnlock(hMem);
GlobalFree(hMem);
FreeLibrary( hins );
从文件创建纹理:
D3DXCreateTextureFromFileEx( m_pd3dDevice, _T("Player (0).png"),
D3DX_DEFAULT, D3DX_DEFAULT, 0, 0, D3DFMT_UNKNOWN,
D3DPOOL_MANAGED, D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR,
D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR, 0, &d3dImageInfo,
NULL, &m_pBackgroundTexture ); |
|