D3D9利用顶点缓冲区绘制三角形

这篇博客介绍了如何利用Direct3D 9(D3D9)的顶点缓冲区技术来绘制三角形,通过代码示例展示了具体的实现过程,并附带有实际效果展示。
摘要由CSDN通过智能技术生成
#include <d3d9.h>
//附加依赖项 d3d9.lib

//利用顶点缓冲区绘制三角形
const TCHAR szClassName[MAX_PATH] = TEXT("冒险岛class");
const TCHAR szTilteName[MAX_PATH] = TEXT("冒险岛");


LPDIRECT3D9 g_pD3D = NULL;				  //Direct3D对象
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;  //Direct3D设备对象
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL;	//顶点缓冲区对象

struct CUSTOMVERTEX
{
   
	FLOAT x, y,z, rhw;
	//
	DWORD color;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW| D3DFVF_DIFFUSE)


//顶点格式

HRESULT Init3D(HWND hwnd)
{
   
	if(NULL ==(g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))
		return E_FAIL;

	D3DPRESENT_PARAMETERS d3dpp;
	ZeroMemory(&d3dpp, sizeof(d3dpp));
	d3dpp.Windowed = TRUE; //是否窗口化
	d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
	d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

	if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
		D3DDEVTYPE_HAL, hwnd,
		D3DCREATE_SOFTWARE_VERTEXPROCESSING,
		&d3dpp, &g_pd3dDevice)))
		return E_FAIL;

	
	return S_OK;

}

HRESULT InitVB()
{
   
	CUSTOMVERTEX vertices[] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值