|
|
我用D3DXCreateTextureFromFileInMemoryEx函数加载内存中的纹理为什么总是失败。
我是这么作的
BITMAPFILEHEADER bmpheader;
BITMAPINFOHEADER bmpinfo;
BYTE* bmpdata;
FILE* fp;
fp = fopen(filename,"rb");
if(NULL == fp)
{
return;
}
fread(&bmpheader,sizeof(BITMAPFILEHEADER),1,fp);
fread(&bmpinfo,sizeof(BITMAPINFOHEADER),1,fp);
bmpdata= new BYTE[bmpinfo.biWidth*bmpinfo.biHeight/*bmpinfo.biSizeImage*/];
fseek(fp,bmpheader.bfOffBits,0);
fread(bmpdata,bmpinfo.biWidth*bmpinfo.biHeight/*bmpinfo.biSizeImage*/,1,fp);
D3DXCreateTextureFromFileInMemoryEx (g_d3ddevice,(LPVOID*)bmpdata,bmpinfo.biWidth*bmpinfo.biHeight,
bmpinfo.biWidth, bmpinfo.biHeight, 1, 0, D3DFMT_A8R8G8B8,
D3DPOOL_MANAGED, D3DX_FILTER_BOX, D3DX_DEFAULT,
color, NULL, NULL, &g_texture);
这是不是这种方式。还是要将数据转成HBITMAP呀 [em24] [em24] |
|