From 7aa8e8e79c91ff9247f2181f62afefb1ab88d55c Mon Sep 17 00:00:00 2001 From: David Hackbarth Date: Wed, 10 Sep 2025 16:08:11 +0200 Subject: [PATCH] add mesh creation (WIP) --- GDP/D3D9/D3D9.vcxproj | 1 + GDP/D3D9/D3D9.vcxproj.filters | 3 +++ GDP/D3D9/Mesh.cpp | 16 ++++++++++++++++ GDP/D3D9/Vertex.h | 14 ++++++++++++++ 4 files changed, 34 insertions(+) create mode 100644 GDP/D3D9/Vertex.h diff --git a/GDP/D3D9/D3D9.vcxproj b/GDP/D3D9/D3D9.vcxproj index ba356b8..0bfee2a 100644 --- a/GDP/D3D9/D3D9.vcxproj +++ b/GDP/D3D9/D3D9.vcxproj @@ -194,6 +194,7 @@ + diff --git a/GDP/D3D9/D3D9.vcxproj.filters b/GDP/D3D9/D3D9.vcxproj.filters index 8b4a2f3..a081ecc 100644 --- a/GDP/D3D9/D3D9.vcxproj.filters +++ b/GDP/D3D9/D3D9.vcxproj.filters @@ -68,5 +68,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/GDP/D3D9/Mesh.cpp b/GDP/D3D9/Mesh.cpp index 443ec79..2c47363 100644 --- a/GDP/D3D9/Mesh.cpp +++ b/GDP/D3D9/Mesh.cpp @@ -1,5 +1,6 @@ #include "Mesh.h" #include "Utilities.h" +#include "Vertex.h" UINT Mesh::init(IDirect3DDevice9* pD3DDevice) { @@ -30,6 +31,21 @@ void Mesh::deInit() UINT Mesh::createVertexBuffer(IDirect3DDevice9* pD3DDevice) { + // 1. define mesh structure + _vertexCount = 3; + _vertexStride = sizeof(Vertex); + + // 2. create vertex buffer WITHOUT data + HRESULT hr = pD3DDevice->CreateVertexBuffer( + _vertexCount * _vertexStride, // vertex buffer byte length + D3DUSAGE_WRITEONLY, // vertex buffer access mode + FVF, // FVF - Flexible Vertex Format + D3DPOOL_MANAGED, // video memory management + &_pVertexBuffer, + nullptr // not used anymore + ); + + // 3. fill vertex buffer with data return 0; } diff --git a/GDP/D3D9/Vertex.h b/GDP/D3D9/Vertex.h new file mode 100644 index 0000000..2b87067 --- /dev/null +++ b/GDP/D3D9/Vertex.h @@ -0,0 +1,14 @@ +#pragma once +#include + +#define FVF D3DFVF_XYZ + +struct Vertex +{ + FLOAT x; + FLOAT y; + FLOAT z; + + Vertex() : x(0.0f), y(0.0f), z(0.0f) {} + Vertex(FLOAT _x, FLOAT _y, FLOAT _z) : x(_x), y(_y), z(_z) {} +}; \ No newline at end of file