#include<d3d9.h>
#include
using namespace std;
#pragma comment(lib, “d3d9.lib”)
#pragma comment(lib, “d3dx9d.lib”)
#define WINDOW_CLASS “UGPDX”
#define WINDOW_NAME “Blank D3D Window”
// Function Prototypes…
bool InitializeD3D(HWND hWnd, bool fullscreen); //链接函数
bool set();
void RenderScene();
void Shutdown();
// Direct3D object and device.
LPDIRECT3D9 g_D3D = NULL;
LPDIRECT3DDEVICE9 g_D3DDevice = NULL;
LPDIRECT3DVERTEXBUFFER9 dd = 0;
struct vertex {
float x, y, z;
};
#define D3DFVF_VERTEX (D3DFVF_XYZ)
…
窗口
…
//开始创建顶点缓存
bool set() {
g_D3DDevice->CreateVertexBuffer( //创立静态顶点缓存
3 * sizeof(vertex),
0,
D3DFVF_XYZ,
D3DPOOL_MANAGED,
&dd,
0
);
vertex* str;
dd->Lock(0, 0, (void**)&str, 0);
str[0] = vertex{ -1.0f, 0.0f, 2.0f };
str[1] = vertex{ 0.0f, 1.0f, 2.0f };
str[3] = vertex{ 1.0f, 0.0f, 2.0f };
dd->Unlock();
return true;
}
void RenderScene()
{
// Clear the backbuffer.
g_D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
g_D3DDevice->BeginScene(); //渲染开始
g_D3DDevice->SetStreamSource(0, dd, 0, sizeof(vertex));
g_D3DDevice->SetFVF(D3DFVF_VERTEX);
g_D3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0,1);
g_D3DDevice->EndScene();
g_D3DDevice->Present(0, 0, 0, 0);
}
void Shutdown() { //清除
if (g_D3DDevice != NULL) g_D3DDevice->Release();
if (g_D3D != NULL) g_D3D->Release();
if (dd != NULL) dd->Release();
g_D3DDevice = NULL;
g_D3D = NULL;
dd = NULL;
}
不知道什么问题,三角形就是不出来