困惑了很久的函数D3DXCreateTextureFromFileInMemoryEx

原创 2016年08月28日 14:30:58

最近研究某游戏的时候发现通过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);//利用索引缓存配合顶点缓存绘制图形






版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/qq_24423595/article/details/52345544

D3DXCreateTextureFromFileEx中参数介绍

D3DXCreateTextureFromFileEx这个函数有14个参数,在MSDN中的原型(后面中文解释为本人理解,仅供参考,原文请查看MSDN): HRESULT D3DXCreateText...
  • trandy
  • trandy
  • 2011-11-16 14:15:19
  • 6139

D3DXCreateTextureFromFileInMemoryEx函数

注:限于翻译水平限制,详情请查阅MSDN
  • prsniper
  • prsniper
  • 2013-07-25 22:23:40
  • 2271

一个迷惑我很久的问题

1 #include 2 #include 3 4 void main() 5 { 6 int *a; 7 int b; 8 //a=malloc...
  • demonDHXQ
  • demonDHXQ
  • 2018-01-17 09:40:45
  • 56

D3DXCreateTextureFromFileInMemory() 使用总结

D3DXCreateTextureFromFileInMemory从内存数据中创建一张d3d纹理HRESULT D3DXCreateTextureFromFileInMemory( LPDIRECT...
  • tianhai110
  • tianhai110
  • 2007-04-19 00:04:00
  • 5725

D3DXCreateTextureFromFileInMemoryEx

D3DXCreateTextureFromFileInMemoryEx
  • linuxheik
  • linuxheik
  • 2014-12-22 16:35:07
  • 492

python下进行lda主题挖掘(三)——计算困惑度perplexity

到2018年3月7日为止,本系列三篇文章已写完,可能后续有新的内容的话会继续更新。 python下进行lda主题挖掘(一)——预处理(英文) python下进行lda主题挖掘(二)——...
  • qq_23926575
  • qq_23926575
  • 2018-03-07 17:07:19
  • 555

语言模型的评估-困惑度

语言模型评价 语言模型构造完成后,如何确定好坏呢? 目前主要有两种评价方法: 实用方法:通过查看该模型在实际应用(如拼写检查、机器翻译)中的表现来评价,优点是直观、实用,缺点是缺乏针对性、...
  • lujiandong1
  • lujiandong1
  • 2016-11-21 15:25:57
  • 6213

2017.06.22:LDA与困惑度代码

LDA代码: class LDAModel(object): def __init__(self, dpre): self.dpre = dpre # 获取预处理参数 # # 模...
  • coco_cai
  • coco_cai
  • 2017-06-22 11:12:28
  • 990

Perplexity(困惑度)

转载请注明出处,谢谢。 质量不佳,请多包涵。什么是Perplexity(困惑度)?在信息论中,perplexity(困惑度)用来度量一个概率分布或概率模型预测样本的好坏程度。它也可以用来比较两个概...
  • jiaqiang_ruan
  • jiaqiang_ruan
  • 2017-09-15 11:08:49
  • 2094

蓝桥杯 ADV-11 算法提高 Torry的困惑(提高型)

算法提高 Torry的困惑(提高型) 问题描述   Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、100...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:21:04
  • 493
收藏助手
不良信息举报
您举报文章:困惑了很久的函数D3DXCreateTextureFromFileInMemoryEx
举报原因:
原因补充:

(最多只允许输入30个字)