关闭

困惑了很久的函数D3DXCreateTextureFromFileInMemoryEx

标签: D3DXCreateTextureFrod3d
69人阅读 评论(0) 收藏 举报

最近研究某游戏的时候发现通过D3DXCreateTextureFromFileInMemoryEx这个函数加载的dds贴图 于是乎 就各种找资料 各种不知道怎么用的。 对d3d不熟悉 各种找教程 今天终于加载成功了。 我的目的很简单 就在我的demo里面可以加载成功 然后进行反汇编 去看游戏的 。。。


贴出代码 


LPDIRECT3DTEXTURE9 g_pTexture   = NULL;    // 纹理接口对象

void Initializebmp()
{
	FILE* pFile = fopen("E:\\dxts1.jpg", "rb");
	fseek(pFile, 0, SEEK_END);
	int FileLen = ftell(pFile);
	fseek(pFile, 0, SEEK_SET);

	char* pData = new char[FileLen];
	fread(pData, FileLen, 1, pFile);

	D3DXIMAGE_INFO info;
	D3DCOLOR colorkey = 0x000000ff;
	D3DXCreateTextureFromFileInMemoryEx(
		g_pd3dDevice,
		pData,
		FileLen,
		0,
		0,
		0,
		0,
		D3DFMT_UNKNOWN,
		D3DPOOL_MANAGED,
		D3DX_DEFAULT,
		D3DX_DEFAULT,
		D3DCOLOR_XRGB(0, 0, 0),
		&info,
		NULL,
		&g_pTexture);

}


  其实到最后才发现 不管是通过什么方法加载的  

D3DXCreateTextureFromFile 原始是直接加载本地图片  但是在游戏里面很少用到这个函数的 基本都是在内存中加载纹理的

	//--------------------------------------------------------------------------------------
	// 【纹理绘制四步曲之三】:纹理的创建
	//--------------------------------------------------------------------------------------
	//D3DXCreateTextureFromFile(g_pd3dDevice, L"pal5q.jpg", &g_pTexture);
	Initializebmp();
	// 设置材质


然后下面启用纹理就好了。

<pre name="code" class="cpp">g_pd3dDevice->BeginScene();                     // 开始绘制

	//--------------------------------------------------------------------------------------
	// 【Direct3D渲染五步曲之三】:正式绘制,利用顶点缓存绘制图形
	//--------------------------------------------------------------------------------------

	g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, 0, sizeof(CUSTOMVERTEX) );//把包含的几何体信息的顶点缓存和渲染流水线相关联
	g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );//指定我们使用的灵活顶点格式的宏名称
	g_pd3dDevice->SetIndices(g_pIndexBuffer);//设置索引缓存
	//--------------------------------------------------------------------------------------
	// 【纹理绘制四步曲之四】:纹理的启用
	//--------------------------------------------------------------------------------------
	g_pd3dDevice->SetTexture(0, g_pTexture);  //启用纹理

	g_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 24, 0, 12);//利用索引缓存配合顶点缓存绘制图形






1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:284次
    • 积分:42
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档