首先头文件d3dUtility.h里面:
Init3D函数:里面实现了Direct3D初始化的整个过程:包括获取接口Direct3D9的指针,检验设备的顶点运算,填充设备属性结构体的内容,创建IDirect3DDevice9的接口等。
EnterMsgLoop函数:该函数接受了一个显示函数的函数指针,然后将应用程序的消息循环进行封装,穿进去的显示函数就是进行绘制的函数,然后EnterMsgLoop函数需要知道什么时候去调用这个显示函数进行显示。
Release模板和Delete模板:资源销毁的时候调用。
头文件可以在这篇博客中找到,直接复制就能用。
还有就是d3dUtility.cpp文件,里面具体实现了刚才我们在d3dUtility.h文件中声明的两个函数。
同样也可以在这篇博客中找到,直接复制拷贝就可以用。
然后在源文件中我们还需要我们的主文件,也就是绘制Triangle的文件:triangle.cpp。我们在代码中以注释的方式进行讲解,会比较明了一点。
//包含我们刚才创建的d3dUtility.h头文件
#include "d3dUtility.h"
//定义一个用来指向设备的指针
IDirect3DDevice9* Device = 0;
//设置好我们窗口的宽和高
const int Width = 640;
const int Height = 480;
//定义一个用来顶点缓存的指针,用来指向我们的三角形顶点的数据
IDirect3DVertexBuffer9* Triangle = 0;
//定义一个点的结构,有x,y,z的坐标,构造函数,还有灵活顶点格式
struct Vertex
{
Vertex() {}
Vertex(float x, fl

这篇博客详细介绍了如何在屏幕上使用Direct3D进行图形绘制,特别是通过顶点缓存来绘制三角形。首先,文章讲解了d3dUtility.h文件中的Init3D函数,该函数负责Direct3D的初始化过程。接着,EnterMsgLoop函数用于封装应用程序的消息循环,并在适当时候调用绘制函数。此外,还提供了资源释放的模板函数。在d3dUtility.cpp文件中,实现了这些声明的功能。主文件triangle.cpp包含了具体的绘制代码,通过注释清晰解释了绘制流程,同时引用了相关博客以深入理解顶点缓存和索引缓存的概念及绘制流水线。
&spm=1001.2101.3001.5002&articleId=84258909&d=1&t=3&u=4e6f3912ceb64626b393388c3969cf7a)
1万+

被折叠的 条评论
为什么被折叠?



