From 7726e6d7cd374d280b99b82c11afb62875f2babe Mon Sep 17 00:00:00 2001 From: stm <14291421+stephanmeesters@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:40:08 +0200 Subject: [PATCH 1/2] chore(ww3d2): Cleanup unused vertex_size parameter from FVFInfoClass --- .../Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.cpp | 4 ++-- GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.h | 2 +- .../Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp | 9 ++++----- .../Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.h | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.cpp index 3852472252e..eb8a22d5730 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.cpp @@ -48,10 +48,10 @@ static unsigned Get_FVF_Vertex_Size(unsigned FVF) return D3DXGetFVFVertexSize(FVF); } -FVFInfoClass::FVFInfoClass(unsigned FVF_, unsigned vertex_size) +FVFInfoClass::FVFInfoClass(unsigned FVF_) : FVF(FVF_), - fvf_size(FVF!=0 ? Get_FVF_Vertex_Size(FVF) : vertex_size) + fvf_size(Get_FVF_Vertex_Size(FVF)) { location_offset=0; blend_offset=location_offset; diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.h b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.h index e9137e93013..1e0dde9298f 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.h +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8fvf.h @@ -258,7 +258,7 @@ class FVFInfoClass : public W3DMPO unsigned diffuse_offset; unsigned specular_offset; public: - FVFInfoClass(unsigned FVF, unsigned vertex_size=0); + FVFInfoClass(unsigned FVF); unsigned Get_Location_Offset() const { return location_offset; } unsigned Get_Normal_Offset() const { return normal_offset; } diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp index cd9c5cdc958..48db8d52c51 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp @@ -74,7 +74,7 @@ static int _VertexBufferTotalSize; // // ---------------------------------------------------------------------------- -VertexBufferClass::VertexBufferClass(unsigned type_, unsigned FVF, unsigned short vertex_count_, unsigned vertex_size) +VertexBufferClass::VertexBufferClass(unsigned type_, unsigned FVF, unsigned short vertex_count_) : VertexCount(vertex_count_), type(type_), @@ -83,8 +83,7 @@ VertexBufferClass::VertexBufferClass(unsigned type_, unsigned FVF, unsigned shor WWMEMLOG(MEM_RENDERER); WWASSERT(VertexCount); WWASSERT(type==BUFFER_TYPE_DX8 || type==BUFFER_TYPE_SORTING); - WWASSERT((FVF!=0 && vertex_size==0) || (FVF==0 && vertex_size!=0)); - fvf_info=W3DNEW FVFInfoClass(FVF,vertex_size); + fvf_info=W3DNEW FVFInfoClass(FVF); _VertexBufferCount++; _VertexBufferTotalVertices+=VertexCount; @@ -307,9 +306,9 @@ SortingVertexBufferClass::~SortingVertexBufferClass() // bool dynamic=false,bool softwarevp=false); -DX8VertexBufferClass::DX8VertexBufferClass(unsigned FVF, unsigned short vertex_count_, UsageType usage, unsigned vertex_size) +DX8VertexBufferClass::DX8VertexBufferClass(unsigned FVF, unsigned short vertex_count_, UsageType usage) : - VertexBufferClass(BUFFER_TYPE_DX8, FVF, vertex_count_, vertex_size), + VertexBufferClass(BUFFER_TYPE_DX8, FVF, vertex_count_), VertexBuffer(nullptr) { Create_Vertex_Buffer(usage); diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.h b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.h index 202a587bec6..8694a867cdf 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.h +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.h @@ -79,7 +79,7 @@ class VertexBufferClass : public W3DMPO, public RefCountClass //W3DMPO_GLUE(VertexBufferClass) protected: - VertexBufferClass(unsigned type, unsigned FVF, unsigned short VertexCount, unsigned vertex_size=0); + VertexBufferClass(unsigned type, unsigned FVF, unsigned short VertexCount); virtual ~VertexBufferClass() override; public: @@ -211,7 +211,7 @@ class DX8VertexBufferClass : public VertexBufferClass USAGE_NPATCHES=4 }; - DX8VertexBufferClass(unsigned FVF, unsigned short VertexCount, UsageType usage=USAGE_DEFAULT, unsigned vertex_size=0); // Vertex size not used with FVF formats + DX8VertexBufferClass(unsigned FVF, unsigned short VertexCount, UsageType usage=USAGE_DEFAULT); DX8VertexBufferClass(const Vector3* vertices, const Vector3* normals, const Vector2* tex_coords, unsigned short VertexCount,UsageType usage=USAGE_DEFAULT); DX8VertexBufferClass(const Vector3* vertices, const Vector3* normals, const Vector4* diffuse, const Vector2* tex_coords, unsigned short VertexCount,UsageType usage=USAGE_DEFAULT); DX8VertexBufferClass(const Vector3* vertices, const Vector4* diffuse, const Vector2* tex_coords, unsigned short VertexCount,UsageType usage=USAGE_DEFAULT); From c23c23123dd86851948d95175b6f685b27c182df Mon Sep 17 00:00:00 2001 From: stm <14291421+stephanmeesters@users.noreply.github.com> Date: Sun, 19 Apr 2026 10:44:24 +0200 Subject: [PATCH 2/2] Add defensive assert --- Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp | 1 + .../Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp index 354d4490cdb..2de977daa02 100644 --- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp +++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp @@ -80,6 +80,7 @@ VertexBufferClass::VertexBufferClass(unsigned type_, unsigned FVF, unsigned shor { WWASSERT(VertexCount); WWASSERT(type==BUFFER_TYPE_DX8 || type==BUFFER_TYPE_SORTING); + WWASSERT(FVF != 0); fvf_info=W3DNEW FVFInfoClass(FVF); _VertexBufferCount++; diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp index 48db8d52c51..eb872540e96 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.cpp @@ -83,6 +83,7 @@ VertexBufferClass::VertexBufferClass(unsigned type_, unsigned FVF, unsigned shor WWMEMLOG(MEM_RENDERER); WWASSERT(VertexCount); WWASSERT(type==BUFFER_TYPE_DX8 || type==BUFFER_TYPE_SORTING); + WWASSERT(FVF != 0); fvf_info=W3DNEW FVFInfoClass(FVF); _VertexBufferCount++;