diff --git a/Core/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt b/Core/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
index 64020339598..c2ae0ab774e 100644
--- a/Core/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
+++ b/Core/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
@@ -20,8 +20,6 @@ set(WW3D2_SRC
bmp2d.h
#boxrobj.cpp
#boxrobj.h
- bwrender.cpp
- bwrender.h
#camera.cpp
#camera.h
#classid.h # unused
diff --git a/Core/Libraries/Source/WWVegas/WW3D2/bwrender.cpp b/Core/Libraries/Source/WWVegas/WW3D2/bwrender.cpp
deleted file mode 100644
index 4b508def314..00000000000
--- a/Core/Libraries/Source/WWVegas/WW3D2/bwrender.cpp
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
-** Command & Conquer Generals Zero Hour(tm)
-** Copyright 2025 Electronic Arts Inc.
-**
-** This program is free software: you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation, either version 3 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program. If not, see .
-*/
-
-/***********************************************************************************************
- *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
- ***********************************************************************************************
- * *
- * Project Name : ww3d2 *
- * *
- * $Archive:: /Commando/Code/ww3d2/bwrender.cpp $*
- * *
- * Original Author:: Jani Penttinen *
- * *
- * $Author:: Greg_h $*
- * *
- * $Modtime:: 4/04/01 10:14a $*
- * *
- * $Revision:: 2 $*
- * *
- *---------------------------------------------------------------------------------------------*
- * Functions: *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-
-#include "bwrender.h"
-#include "WWMath/vp.h"
-
-
-BWRenderClass::Buffer::Buffer(unsigned char* buffer_, int scale_)
- :
- buffer(buffer_),
- scale(scale_),
- minv(3),
- maxv(scale_-3)
-{
-}
-
-BWRenderClass::Buffer::~Buffer()
-{
-}
-
-void BWRenderClass::Buffer::Set_H_Line(int start_x, int end_x, int y)
-{
- if (y=maxv || end_x=maxv) return;
- if (start_x=maxv) end_x=maxv-1;
- unsigned char* ptr=buffer+scale*y+start_x;
- int w=end_x-start_x;
- if (w) {
- ::memset(ptr,0x00,w);
-
-/* // Blurring (test)
- *(ptr-1)&=0x80;
- *(ptr-2)&=0xc0;
- *(ptr+w)&=0x80;
- *(ptr+w+1)&=0xc0;
- for (int a=0;a(vertices),
- half_scale,
- half_scale,
- count*2);
-}
-
-// --------------------------------------------------------------------
-
-static inline bool Cull(
- const Vector2& c1,
- const Vector2& c2,
- const Vector2& c3)
-{
- float x1=c2[0]-c1[0];
- float y1=c2[1]-c1[1];
- float x2=c3[0]-c1[0];
- float y2=c3[1]-c1[1];
- float r=x1*y2-x2*y1;
- if (r<0) return false;
- return true;
-}
-
-void BWRenderClass::Render_Triangle_Strip(const unsigned long* indices,int index_count)
-{
- index_count-=2;
- bool b=false;
- for (int n=0;nx_step_2) {
- float t=x_step_1;
- x_step_1=x_step_2;
- x_step_2=t;
- }
-
- while (ycnt>0) {
- pixel_buffer.Set_H_Line(WWMath::Float_To_Long(x_left),WWMath::Float_To_Long(x_right),y);
-
- x_left+=x_step_1;
- x_right+=x_step_2;
- ycnt--;
- y++;
- }
- }
- else {
- if (xcf[0]0) {
- pixel_buffer.Set_H_Line(WWMath::Float_To_Long(x_left),WWMath::Float_To_Long(x_right),y);
- x_left+=x_step_1;
- x_right+=x_step_2;
- ycnt--;
- y++;
- }
- }
-
-}
-
diff --git a/Core/Libraries/Source/WWVegas/WW3D2/bwrender.h b/Core/Libraries/Source/WWVegas/WW3D2/bwrender.h
deleted file mode 100644
index 806097cf657..00000000000
--- a/Core/Libraries/Source/WWVegas/WW3D2/bwrender.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-** Command & Conquer Generals Zero Hour(tm)
-** Copyright 2025 Electronic Arts Inc.
-**
-** This program is free software: you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation, either version 3 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program. If not, see .
-*/
-
-/***********************************************************************************************
- *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
- ***********************************************************************************************
- * *
- * Project Name : ww3d2 *
- * *
- * $Archive:: /Commando/Code/ww3d2/bwrender.h $*
- * *
- * Original Author:: Jani Penttinen *
- * *
- * $Author:: Greg_h $*
- * *
- * $Modtime:: 4/04/01 10:36a $*
- * *
- * $Revision:: 2 $*
- * *
- *---------------------------------------------------------------------------------------------*
- * Functions: *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-#pragma once
-
-#include "WWLib/always.h"
-#include "WWMath/vector2.h"
-#include "WWMath/vector3.h"
-#include "WWMath/Vector3i.h"
-
-/**
-** BWRenderClass
-** This class implements a simple black-and-white triangle rasterizer which
-** can be used to generate shadow textures. It is faster than a general purpose
-** software renderer due to the fact that no z-buffering or sorting is needed and
-** texturing isn't supported.
-** (gth) 04/02/2001 - I'm going to add render-to-texture code to Renegade so this
-** class may be obsolete.
-*/
-class BWRenderClass
-{
- // Internal pixel buffer used by the triangle renderer
- // The buffer is not allocated or freed by this class.
- class Buffer
- {
- unsigned char* buffer;
- int scale;
- int minv;
- int maxv;
- public:
- Buffer(unsigned char* buffer, int scale);
- ~Buffer();
-
- void Set_H_Line(int start_x, int end_x, int y);
- void Fill(unsigned char c);
- int Scale() const { return scale; }
- } pixel_buffer;
-
- Vector2* vertices;
-
- void Render_Preprocessed_Triangle(Vector3& xcf,Vector3i& yci);
-
-public:
- BWRenderClass(unsigned char* buffer, int scale);
- ~BWRenderClass();
-
- void Fill(unsigned char c);
- void Set_Vertex_Locations(Vector2* vertices,int count); // Warning! Contents are modified!
- void Render_Triangles(const unsigned long* indices,int index_count);
- void Render_Triangle_Strip(const unsigned long* indices,int index_count);
-};
diff --git a/Core/Libraries/Source/WWVegas/WW3D2/texproject.cpp b/Core/Libraries/Source/WWVegas/WW3D2/texproject.cpp
index 017fff3efa1..e8d2277196a 100644
--- a/Core/Libraries/Source/WWVegas/WW3D2/texproject.cpp
+++ b/Core/Libraries/Source/WWVegas/WW3D2/texproject.cpp
@@ -82,7 +82,6 @@
#include "rinfo.h"
#include "camera.h"
#include "matpass.h"
-#include "bwrender.h"
#include "assetmgr.h"
#include "dx8wrapper.h"
@@ -1168,17 +1167,6 @@ bool TexProjectClass::Compute_Texture
return renderResult == WW3D_ERROR_OK;
}
-#if 0
-
- /*
- ** Render the object with the BW Renderer into our color surface
- */
- BWRenderClass bwr((unsigned char*)shadow_surface->getDataPtr(),tex_size);
- bwr.Fill(0xff);
- context->BWRenderer = &bwr;
- model->Special_Render(*context);
- context->BWRenderer = nullptr;
-#endif
return true;
}
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt b/Generals/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
index b76acf6ea41..9008f2f2360 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
@@ -19,8 +19,6 @@ set(WW3D2_SRC
#bmp2d.h
boxrobj.cpp
boxrobj.h
- #bwrender.cpp
- #bwrender.h
camera.cpp
camera.h
#classid.h
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp
index 9b19d2fc9c6..875eef2b800 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp
@@ -1059,14 +1059,6 @@ void MeshClass::Special_Render(SpecialRenderInfoClass & rinfo)
}
rinfo.VisRasterizer->Enable_Two_Sided_Rendering(false);
}
-
- if (rinfo.RenderType == SpecialRenderInfoClass::RENDER_SHADOW) {
- const HTreeClass * htree = nullptr;
- if (Container!=nullptr) {
- htree = Container->Get_HTree();
- }
- Model->Shadow_Render(rinfo,Transform,htree);
- }
}
void MeshClass::Replace_Texture(TextureClass* texture,TextureClass* new_texture)
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp
index ef8d884fdfd..69e4b941313 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp
@@ -2088,40 +2088,3 @@ void MeshGeometryClass::get_deformed_vertices(Vector3 *dst_vert, Vector3 *dst_no
vi=cnt;
}
}
-
-// Destination pointers MUST point to arrays large enough to hold all vertices
-void MeshGeometryClass::get_deformed_screenspace_vertices(Vector4 *dst_vert,const RenderInfoClass & rinfo,const Matrix3D & mesh_transform,const HTreeClass * htree)
-{
- Matrix4x4 prj = rinfo.Camera.Get_Projection_Matrix() * rinfo.Camera.Get_View_Matrix() * mesh_transform;
-
- Vector3 * src_vert = Vertex->Get_Array();
- int vertex_count=Get_Vertex_Count();
-
- if (Get_Flag(SKIN) && VertexBoneLink && htree) {
- uint16 * bonelink = VertexBoneLink->Get_Array();
- for (int vi = 0; vi < vertex_count;) {
- int idx=bonelink[vi];
-
- Matrix4x4 tm = prj * htree->Get_Transform(idx);
-
- // Count equal matrices (the vertices should be pre-sorted by matrices they use)
- int cnt = vi;
- for (; cnt < vertex_count; cnt++) if (idx!=bonelink[cnt]) break;
-
- // Transform to screenspace (x,y,z,w)
- VectorProcessorClass::Transform(
- dst_vert+vi,
- src_vert+vi,
- tm,
- cnt-vi);
-
- vi=cnt;
- }
- } else {
- VectorProcessorClass::Transform(
- dst_vert,
- src_vert,
- prj,
- vertex_count);
- }
-}
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h
index 257e22fd8e5..15e339545dd 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h
@@ -221,7 +221,6 @@ class MeshGeometryClass : public RefCountClass, public MultiListObjectClass
// Destination pointers MUST point to arrays large enough to hold all vertices
void get_deformed_vertices(Vector3 *dst_vert, Vector3 *dst_norm, const HTreeClass * htree);
void get_deformed_vertices(Vector3 *dst_vert, const HTreeClass * htree);
- void get_deformed_screenspace_vertices(Vector4 *dst_vert,const RenderInfoClass & rinfo,const Matrix3D & mesh_tm,const HTreeClass * htree);
// General info
ShareBufferClass * MeshName;
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp
index da6eb68d016..9778d8eddca 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp
@@ -44,7 +44,6 @@
#include "WWMath/vp.h"
#include "visrasterizer.h"
#include "dx8polygonrenderer.h"
-#include "bwrender.h"
#include "camera.h"
#include "dx8renderer.h"
#include "WWLib/hashtemplate.h"
@@ -58,7 +57,6 @@
*/
static DynamicVectorClass _TempVertexBuffer;
static DynamicVectorClass _TempNormalBuffer;
-static DynamicVectorClass _TempTransformedVertexBuffer;
static DynamicVectorClass _TempClipFlagBuffer;
@@ -259,23 +257,6 @@ DX8FVFCategoryContainer* MeshModelClass::Peek_FVF_Category_Container()
return fvf_category;
}
-void MeshModelClass::Shadow_Render(SpecialRenderInfoClass & rinfo,const Matrix3D & tm,const HTreeClass * htree)
-{
- if (rinfo.BWRenderer != nullptr) {
- if (_TempTransformedVertexBuffer.Length() < VertexCount) _TempTransformedVertexBuffer.Resize(VertexCount);
- Vector4* transf_ptr=&(_TempTransformedVertexBuffer[0]);
- get_deformed_screenspace_vertices(transf_ptr,rinfo,tm,htree);
-
- Vector2* tptr = reinterpret_cast(transf_ptr);
- Vector4* optr = transf_ptr;
- for (int a=0;aSet_Vertex_Locations(reinterpret_cast(transf_ptr),VertexCount);
- rinfo.BWRenderer->Render_Triangles(reinterpret_cast(Poly->Get_Array()),PolyCount*3);
- return;
- }
-}
-
void MeshModelClass::Make_Geometry_Unique()
{
WWASSERT(Vertex);
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h
index 895c846b113..86160676b28 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h
@@ -158,7 +158,6 @@ class MeshModelClass : public MeshGeometryClass
MeshModelClass & operator = (const MeshModelClass & that);
void Reset(int polycount,int vertcount,int passcount);
void Register_For_Rendering();
- void Shadow_Render(SpecialRenderInfoClass & rinfo,const Matrix3D & tm,const HTreeClass * htree);
/////////////////////////////////////////////////////////////////////////////////////
// Material interface, All of these functions call through to the current
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp
index 09b57edd8d0..719e2d8c40e 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp
@@ -128,8 +128,7 @@ RenderInfoClass::RINFO_OVERRIDE_FLAGS & RenderInfoClass::Current_Override_Flags(
SpecialRenderInfoClass::SpecialRenderInfoClass(CameraClass & cam,int render_type) :
RenderInfoClass(cam),
RenderType(render_type),
- VisRasterizer(nullptr),
- BWRenderer(nullptr)
+ VisRasterizer(nullptr)
{
}
diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h b/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h
index 40b4be0f2b0..9227c7a7712 100644
--- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h
+++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h
@@ -52,7 +52,6 @@
class MaterialPassClass;
class LightEnvironmentClass;
class VisRasterizerClass;
-class BWRenderClass;
class TexProjectClass;
const unsigned MAX_ADDITIONAL_MATERIAL_PASSES=32;
@@ -145,10 +144,6 @@ class SpecialRenderInfoClass : public RenderInfoClass
// RENDER_VIS variables and methods:
VisRasterizerClass * VisRasterizer;
- // RENDER_SHADOW variables and methods:
- // NOTE: this is somewhat obsolete now that we have hardware render-to-texture.
- BWRenderClass * BWRenderer; // Black & white non-textured renderer
-
private:
// Not implemented...
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
index d80ec07910e..cd5bd0a2902 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
@@ -19,8 +19,6 @@ set(WW3D2_SRC
#bmp2d.h
boxrobj.cpp
boxrobj.h
- #bwrender.cpp
- #bwrender.h
camera.cpp
camera.h
#classid.h
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp
index eb60894d322..eec4a52d3f8 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp
@@ -1059,14 +1059,6 @@ void MeshClass::Special_Render(SpecialRenderInfoClass & rinfo)
}
rinfo.VisRasterizer->Enable_Two_Sided_Rendering(false);
}
-
- if (rinfo.RenderType == SpecialRenderInfoClass::RENDER_SHADOW) {
- const HTreeClass * htree = nullptr;
- if (Container!=nullptr) {
- htree = Container->Get_HTree();
- }
- Model->Shadow_Render(rinfo,Transform,htree);
- }
}
void MeshClass::Replace_Texture(TextureClass* texture,TextureClass* new_texture)
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp
index 4ba0b1f04c1..eabe693fe9c 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.cpp
@@ -2088,40 +2088,3 @@ void MeshGeometryClass::get_deformed_vertices(Vector3 *dst_vert, Vector3 *dst_no
vi=cnt;
}
}
-
-// Destination pointers MUST point to arrays large enough to hold all vertices
-void MeshGeometryClass::get_deformed_screenspace_vertices(Vector4 *dst_vert,const RenderInfoClass & rinfo,const Matrix3D & mesh_transform,const HTreeClass * htree)
-{
- Matrix4x4 prj = rinfo.Camera.Get_Projection_Matrix() * rinfo.Camera.Get_View_Matrix() * mesh_transform;
-
- Vector3 * src_vert = Vertex->Get_Array();
- int vertex_count=Get_Vertex_Count();
-
- if (Get_Flag(SKIN) && VertexBoneLink && htree) {
- uint16 * bonelink = VertexBoneLink->Get_Array();
- for (int vi = 0; vi < vertex_count;) {
- int idx=bonelink[vi];
-
- Matrix4x4 tm = prj * htree->Get_Transform(idx);
-
- // Count equal matrices (the vertices should be pre-sorted by matrices they use)
- int cnt = vi;
- for (; cnt < vertex_count; cnt++) if (idx!=bonelink[cnt]) break;
-
- // Transform to screenspace (x,y,z,w)
- VectorProcessorClass::Transform(
- dst_vert+vi,
- src_vert+vi,
- tm,
- cnt-vi);
-
- vi=cnt;
- }
- } else {
- VectorProcessorClass::Transform(
- dst_vert,
- src_vert,
- prj,
- vertex_count);
- }
-}
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h
index 84161f703f5..0a9d9d15a0f 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h
@@ -221,7 +221,6 @@ class MeshGeometryClass : public RefCountClass, public MultiListObjectClass
// Destination pointers MUST point to arrays large enough to hold all vertices
void get_deformed_vertices(Vector3 *dst_vert, Vector3 *dst_norm, const HTreeClass * htree);
void get_deformed_vertices(Vector3 *dst_vert, const HTreeClass * htree);
- void get_deformed_screenspace_vertices(Vector4 *dst_vert,const RenderInfoClass & rinfo,const Matrix3D & mesh_tm,const HTreeClass * htree);
// General info
ShareBufferClass * MeshName;
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp
index 82dbe8a9298..90819ceb3a3 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp
@@ -44,7 +44,6 @@
#include "WWMath/vp.h"
#include "visrasterizer.h"
#include "dx8polygonrenderer.h"
-#include "bwrender.h"
#include "camera.h"
#include "dx8renderer.h"
#include "WWLib/hashtemplate.h"
@@ -58,7 +57,6 @@
*/
static DynamicVectorClass _TempVertexBuffer;
static DynamicVectorClass _TempNormalBuffer;
-static DynamicVectorClass _TempTransformedVertexBuffer;
static DynamicVectorClass _TempClipFlagBuffer;
@@ -259,23 +257,6 @@ DX8FVFCategoryContainer* MeshModelClass::Peek_FVF_Category_Container()
return fvf_category;
}
-void MeshModelClass::Shadow_Render(SpecialRenderInfoClass & rinfo,const Matrix3D & tm,const HTreeClass * htree)
-{
- if (rinfo.BWRenderer != nullptr) {
- if (_TempTransformedVertexBuffer.Length() < VertexCount) _TempTransformedVertexBuffer.Resize(VertexCount);
- Vector4* transf_ptr=&(_TempTransformedVertexBuffer[0]);
- get_deformed_screenspace_vertices(transf_ptr,rinfo,tm,htree);
-
- Vector2* tptr = reinterpret_cast(transf_ptr);
- Vector4* optr = transf_ptr;
- for (int a=0;aSet_Vertex_Locations(reinterpret_cast(transf_ptr),VertexCount);
- rinfo.BWRenderer->Render_Triangles(reinterpret_cast(Poly->Get_Array()),PolyCount*3);
- return;
- }
-}
-
void MeshModelClass::Make_Geometry_Unique()
{
WWASSERT(Vertex);
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h
index 293ac575a37..d1e8e38c1e8 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h
@@ -158,7 +158,6 @@ class MeshModelClass : public MeshGeometryClass
MeshModelClass & operator = (const MeshModelClass & that);
void Reset(int polycount,int vertcount,int passcount);
void Register_For_Rendering();
- void Shadow_Render(SpecialRenderInfoClass & rinfo,const Matrix3D & tm,const HTreeClass * htree);
/////////////////////////////////////////////////////////////////////////////////////
// Material interface, All of these functions call through to the current
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp
index 21e710c59d9..f42db3abe7e 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.cpp
@@ -139,8 +139,7 @@ RenderInfoClass::RINFO_OVERRIDE_FLAGS & RenderInfoClass::Current_Override_Flags(
SpecialRenderInfoClass::SpecialRenderInfoClass(CameraClass & cam,int render_type) :
RenderInfoClass(cam),
RenderType(render_type),
- VisRasterizer(nullptr),
- BWRenderer(nullptr)
+ VisRasterizer(nullptr)
{
}
diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h
index d1f93dda8fc..04162b3ec4c 100644
--- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h
+++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/rinfo.h
@@ -52,7 +52,6 @@
class MaterialPassClass;
class LightEnvironmentClass;
class VisRasterizerClass;
-class BWRenderClass;
class TexProjectClass;
const unsigned MAX_ADDITIONAL_MATERIAL_PASSES=32;
@@ -145,10 +144,6 @@ class SpecialRenderInfoClass : public RenderInfoClass
// RENDER_VIS variables and methods:
VisRasterizerClass * VisRasterizer;
- // RENDER_SHADOW variables and methods:
- // NOTE: this is somewhat obsolete now that we have hardware render-to-texture.
- BWRenderClass * BWRenderer; // Black & white non-textured renderer
-
private:
// Not implemented...