困惑了很久的函数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);//利用索引缓存配合顶点缓存绘制图形






版权声明:本文为博主原创文章,转载请注明出处

2017.06.22:LDA与困惑度代码

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

学习中的困惑

已经很长时间没有进行更新了,感觉写不出来什么了。这些天一直在反思在学习过程中哪里出现了问题,第一点原因:浮躁。我一天要学习三四个小时,然而总是“看”而未注重“学”,看视频的时候没有做好笔记导致写博客的...
  • Hanfeng_1999
  • Hanfeng_1999
  • 2016年06月01日 16:46
  • 761

吐槽一下,5年的程序员的一些困惑

首先想说下,我喜欢编程。所以我能坚持,每天下班后依然能写各种代码两小时,并且现在在老婆的强制要求下,可以在晚上10点前睡眠。早晨6点起床后,我依然可以拿出一个小时编程。 另外申明下,我并不是单纯的程...
  • bsbsxll
  • bsbsxll
  • 2013年12月16日 10:58
  • 1627

算法训练 Torry的困惑(基本型)

算法训练 Torry的困惑(基本型)   时间限制:1.0s   内存限制:512.0MB      问题描述   Torry从小喜爱数学。一天,老师告诉他,像2、3、...
  • hpugym
  • hpugym
  • 2015年01月13日 22:15
  • 859

工作两年感悟和困惑

不知不觉中,已经工作了两年,看到公司今年新招的应届生,请不禁止的想起了当时的自己。当年意气风发,激情四射,对社会充满着好奇,对工作充满的向往,心里想:终于可以走出大学的象牙塔了,终于可以融入社会,可以...
  • prettyice2005
  • prettyice2005
  • 2013年07月26日 20:17
  • 905

BZOJ 2186 SDOI2008 沙拉公主的困惑 数论

题目大意:给定询问组数T和取模数P,每次询问给定两个整数n和m,求1~(n!)的数中与m!互质的数个个数模P (m 首先T 首先我们知道,若x与y互质,则x+y与y也互质,x+2y与y也互质。。。...
  • PoPoQQQ
  • PoPoQQQ
  • 2014年10月10日 09:28
  • 2604

Torry的困惑(基本型)

问题描述   Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告...
  • YaYan233
  • YaYan233
  • 2017年02月15日 17:31
  • 64

SRILM使用之训练无平滑语言模型

【语料准备】 训练语料wget http://idiom.ucsd.edu/~rlevy/teaching/2015winter/lign165/lectures/lecture13/toy-exa...
  • baiziyuandyufei
  • baiziyuandyufei
  • 2016年08月28日 22:39
  • 444

算法提高 Torry的困惑(提高型)

1010: 算法提高 Torry的困惑(提高型) 时间限制: 1 Sec  内存限制: 512 MB 提交: 25  解决: 4 [提交][状态][讨论版] 题目描述 Torry从小喜爱数学。一天,...
  • xunalove
  • xunalove
  • 2017年01月26日 15:22
  • 951

由 “敏捷开发”PK“CMMI”引起的思考和困惑

我曾是CMMI咨询师,离开“CMMI 咨询”这个圈子也有一、两年了,久不参加行业内的活动,很想了解行业动态。因此,上个月积极参加了软件行业协会的过程改进年会,见到过去的老同事,老朋友、老同行,非常高兴...
  • joeyon
  • joeyon
  • 2014年12月31日 10:35
  • 908
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:困惑了很久的函数D3DXCreateTextureFromFileInMemoryEx
举报原因:
原因补充:

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