Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
#include "W3DDevice/GameClient/W3DWater.h"
#include "W3DDevice/GameClient/W3DShroud.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/light.h"
#include "WW3D2/scene.h"
#include "W3DDevice/GameClient/W3DPoly.h"
Expand Down Expand Up @@ -2296,7 +2297,7 @@ void BaseHeightMapRenderObjClass::renderShoreLines(CameraClass *pCamera)
return;

//Check if video card is capable of using this effect
if (DX8Wrapper::getBackBufferFormat() != WW3D_FORMAT_A8R8G8B8)
if (WW3D::Get_Render_Backend()->Get_Back_Buffer_Format() != WW3D_FORMAT_A8R8G8B8)
return; //can't apply effect on cards without destination alpha

Int vertexCount = 0;
Expand All @@ -2318,7 +2319,7 @@ void BaseHeightMapRenderObjClass::renderShoreLines(CameraClass *pCamera)
DX8Wrapper::Set_Material(vmat);
REF_PTR_RELEASE(vmat);
DX8Wrapper::Set_Texture(0,m_destAlphaTexture);
DX8Wrapper::Set_Transform(D3DTS_WORLD,Matrix3D(true));
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Matrix3D(true));
//Enabled writes to destination alpha only
DX8Wrapper::Set_DX8_Render_State(D3DRS_COLORWRITEENABLE,D3DCOLORWRITEENABLE_ALPHA);
DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_TEXCOORDINDEX, 0);
Expand Down Expand Up @@ -2461,7 +2462,7 @@ void BaseHeightMapRenderObjClass::renderShoreLinesSorted(CameraClass *pCamera)
return;

//Check if video card is capable of using this effect
if (DX8Wrapper::getBackBufferFormat() != WW3D_FORMAT_A8R8G8B8)
if (WW3D::Get_Render_Backend()->Get_Back_Buffer_Format() != WW3D_FORMAT_A8R8G8B8)
return; //can't apply effect on cards without destination alpha

Int vertexCount = 0;
Expand Down Expand Up @@ -2504,7 +2505,7 @@ void BaseHeightMapRenderObjClass::renderShoreLinesSorted(CameraClass *pCamera)
DX8Wrapper::Set_Material(vmat);
REF_PTR_RELEASE(vmat);
DX8Wrapper::Set_Texture(0,m_destAlphaTexture);
DX8Wrapper::Set_Transform(D3DTS_WORLD,Matrix3D(true));
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Matrix3D(true));
//Enabled writes to destination alpha only
DX8Wrapper::Set_DX8_Render_State(D3DRS_COLORWRITEENABLE,D3DCOLORWRITEENABLE_ALPHA);
DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_TEXCOORDINDEX, 0);
Expand Down Expand Up @@ -2808,7 +2809,7 @@ void BaseHeightMapRenderObjClass::renderTrees(CameraClass * camera)
if (m_map==nullptr) return;
if (Scene==nullptr) return;
if (m_treeBuffer) {
DX8Wrapper::Set_Transform(D3DTS_WORLD,Transform);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Transform);
DX8Wrapper::Set_Material(m_vertexMaterialClass);
RTS3DScene *pMyScene = (RTS3DScene *)Scene;
RefRenderObjListIterator pDynamicLightsIterator(pMyScene->getDynamicLights());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@
#include "W3DDevice/GameClient/W3DWater.h"
#include "W3DDevice/GameClient/W3DShroud.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/light.h"
#include "WW3D2/scene.h"
#include "W3DDevice/GameClient/W3DPoly.h"
Expand Down Expand Up @@ -493,7 +494,7 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo)
DX8Wrapper::Set_Texture(1,nullptr);
ShaderClass::Invalidate();

DX8Wrapper::Set_Transform(D3DTS_WORLD,Transform);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Transform);


DX8Wrapper::Set_Material(m_vertexMaterialClass);
Expand Down Expand Up @@ -537,7 +538,7 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo)
W3DShaderManager::setTexture(2,m_stageTwoTexture); //cloud
W3DShaderManager::setTexture(3,m_stageThreeTexture);//noise
//Disable writes to destination alpha channel (if there is one)
if (DX8Wrapper::getBackBufferFormat() == WW3D_FORMAT_A8R8G8B8) {
if (WW3D::Get_Render_Backend()->Get_Back_Buffer_Format() == WW3D_FORMAT_A8R8G8B8) {
DX8Wrapper::Set_DX8_Render_State(D3DRS_COLORWRITEENABLE,D3DCOLORWRITEENABLE_BLUE|D3DCOLORWRITEENABLE_GREEN|D3DCOLORWRITEENABLE_RED);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
#include "W3DDevice/GameClient/W3DWater.h"
#include "W3DDevice/GameClient/W3DShroud.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/light.h"
#include "WW3D2/scene.h"
#include "W3DDevice/GameClient/W3DPoly.h"
Expand Down Expand Up @@ -1931,7 +1932,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo)
DX8Wrapper::Set_Texture(1,nullptr);
ShaderClass::Invalidate();

DX8Wrapper::Set_Transform(D3DTS_WORLD,Transform);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Transform);

//Apply the shader and material

Expand Down Expand Up @@ -2019,7 +2020,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo)
W3DShaderManager::setTexture(2,m_stageTwoTexture); //cloud
W3DShaderManager::setTexture(3,m_stageThreeTexture);//noise
//Disable writes to destination alpha channel (if there is one)
if (DX8Wrapper::getBackBufferFormat() == WW3D_FORMAT_A8R8G8B8)
if (WW3D::Get_Render_Backend()->Get_Back_Buffer_Format() == WW3D_FORMAT_A8R8G8B8)
DX8Wrapper::Set_DX8_Render_State(D3DRS_COLORWRITEENABLE,D3DCOLORWRITEENABLE_BLUE|D3DCOLORWRITEENABLE_GREEN|D3DCOLORWRITEENABLE_RED);
}

Expand Down Expand Up @@ -2149,7 +2150,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo)
///Performs additional terrain rendering pass, blending in the black shroud texture.
void HeightMapRenderObjClass::renderTerrainPass(CameraClass *pCamera)
{
DX8Wrapper::Set_Transform(D3DTS_WORLD,Matrix3D(true));
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Matrix3D(true));

//Apply the shader and material

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
#include "GameLogic/GameLogic.h"
#include "Common/MapObject.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"

#if defined(RTS_DEBUG)

Expand Down Expand Up @@ -221,7 +222,7 @@ void W3DDebugIcons::Render(RenderInfoClass & rinfo)
DX8Wrapper::Set_Texture(0, nullptr);
DX8Wrapper::Apply_Render_State_Changes();

DX8Wrapper::Set_Transform(D3DTS_WORLD,Transform);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Transform);

Int numRect = m_numDebugIcons;
static Real offset = 30;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ static void drawFramerateBar();
#include "WWMath/wwmath.h"
#include "WWLib/registry.h"
#include "WW3D2/ww3d.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/predlod.h"
#include "WW3D2/part_emt.h"
#include "WW3D2/part_ldr.h"
Expand Down Expand Up @@ -549,7 +550,7 @@ void W3DDisplay::setGamma(Real gamma, Real bright, Real contrast, Bool calibrate
if (m_windowed)
return; //we don't allow gamma to change in window because it would affect desktop.

DX8Wrapper::Set_Gamma(gamma,bright,contrast,calibrate, false);
WW3D::Get_Render_Backend()->Set_Gamma(gamma,bright,contrast,calibrate, false);
}

/** Set resolution of display */
Expand Down Expand Up @@ -2936,7 +2937,7 @@ VideoBuffer* W3DDisplay::createVideoBuffer()

// first try to use the native format

WW3DFormat displayFormat = DX8Wrapper::getBackBufferFormat();
WW3DFormat displayFormat = WW3D::Get_Render_Backend()->Get_Back_Buffer_Format();

if ( DX8Wrapper::Get_Current_Caps()->Support_Texture_Format( displayFormat ))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
//-----------------------------------------------------------------------------

#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/assetmgr.h"
#include "Lib/BaseType.h"
#include "Common/file.h"
Expand Down Expand Up @@ -2906,7 +2907,7 @@ void W3DShaderManager::startRenderToTexture()
DX8Wrapper::Set_DX8_Render_State(D3DRS_COLORWRITEENABLE,D3DCOLORWRITEENABLE_RED|D3DCOLORWRITEENABLE_GREEN|D3DCOLORWRITEENABLE_BLUE); //disable writes to alpha
}
else //normal clear that overwrites everything.
DX8Wrapper::Clear(true, false, Vector3( 0.0f, 0.0f, 0.0f ), TheWaterTransparency->m_minWaterOpacity);
WW3D::Get_Render_Backend()->Clear(true, false, Vector3( 0.0f, 0.0f, 0.0f ), TheWaterTransparency->m_minWaterOpacity);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include "WW3D2/texture.h"
#include "WW3D2/dx8indexbuffer.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/rinfo.h"
#include "WW3D2/camera.h"
#include "WW3D2/sortingrenderer.h"
Expand Down Expand Up @@ -446,8 +447,8 @@ void W3DSmudgeManager::render(RenderInfoClass &rinfo)
REF_PTR_RELEASE(backBuffer);

Matrix4x4 identity(true);
DX8Wrapper::Set_Transform(D3DTS_WORLD,identity);
DX8Wrapper::Set_Transform(D3DTS_VIEW,identity);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,identity);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_VIEW,identity);

DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0);
//DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueSpriteShader);
Expand Down
5 changes: 3 additions & 2 deletions Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSnow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "W3DDevice/GameClient/HeightMap.h"
#include "GameClient/View.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/rinfo.h"
#include "WW3D2/camera.h"
#include "WW3D2/assetmgr.h"
Expand Down Expand Up @@ -397,7 +398,7 @@ void W3DSnowManager::render(RenderInfoClass &rinfo)
m_heightTraveled=m_time*m_velocity+cameraOffset; //height that snow flake traveled this frame.

Matrix4x4 identity(true);
DX8Wrapper::Set_Transform(D3DTS_WORLD,identity);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,identity);

DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader);

Expand Down Expand Up @@ -488,7 +489,7 @@ void W3DSnowManager::renderAsQuads(RenderInfoClass &rinfo, Int cubeOriginX, Int
}

Matrix4x4 identity(true);
DX8Wrapper::Set_Transform(D3DTS_VIEW,identity);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_VIEW,identity);

DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
#include "WW3D2/camera.h"
#include "WW3D2/assetmgr.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/scene.h"
#include "GameLogic/TerrainLogic.h"
#include "GameLogic/Object.h"
Expand Down Expand Up @@ -906,7 +907,7 @@ Try improving the fit to vertical surfaces like cliffs.

trackStartIndex=0;
mod=m_usedModules;
DX8Wrapper::Set_Transform(D3DTS_WORLD,mod->Transform);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,mod->Transform);
while (mod)
{
if (mod->m_activeEdgeCount >= 2 && mod->Is_Really_Visible())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ enum
#include "W3DDevice/GameClient/W3DProjectedShadow.h"
#include "WW3D2/camera.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/dx8renderer.h"
#include "WW3D2/matinfo.h"
#include "WW3D2/mesh.h"
Expand Down Expand Up @@ -1628,7 +1629,7 @@ void W3DTreeBuffer::drawTrees(CameraClass * camera, RefRenderObjListIterator *pD
DX8Wrapper::Set_Vertex_Buffer(vb_access);

Matrix3D tm(1);
DX8Wrapper::Set_Transform(D3DTS_WORLD,tm);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,tm);

DX8Wrapper::Draw_Triangles( 0,2, 0, 4); //draw a quad, 2 triangles, 4 verts
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@
#include "WW3D2/light.h"
#include "WW3D2/predlod.h"
#include "WW3D2/ww3d.h"
#include "WW3D2/IRenderBackend.h"

#include "W3DDevice/GameClient/CameraShakeSystem.h"

Expand Down Expand Up @@ -1916,7 +1917,7 @@ void W3DView::draw()
//The pass that rendered into a texture may have left the z-buffer in a weird state
//so clear it before rendering normal scene.
///@todo: Don't clear z-buffer unless shader uses z-bias or anything else that would cause <= z to fail on normal render.
DX8Wrapper::Clear(false, true, Vector3(0.0f,0.0f,0.0f), TheWaterTransparency->m_minWaterOpacity); // Clear z but not color
WW3D::Get_Render_Backend()->Clear(false, true, Vector3(0.0f,0.0f,0.0f), TheWaterTransparency->m_minWaterOpacity); // Clear z but not color
W3DDisplay::m_3DScene->setCustomPassMode(SCENE_PASS_DEFAULT);
W3DDisplay::m_3DScene->doRender( m_3DCamera );
Coord2D deltaScroll;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#include "WW3D2/camera.h"
#include "WW3D2/scene.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"
#include "WW3D2/light.h"
#include "d3dx8math.h"
#include "WWLib/simplevec.h"
Expand Down Expand Up @@ -1711,7 +1712,7 @@ void WaterRenderObjClass::Render(RenderInfoClass & rinfo)
rinfo.Camera.Apply(); //force an update of all the camera dependent parameters like frustum clip planes

//clear the z-buffer to remove changes made by objects inside mirror
DX8Wrapper::Clear(false,true,Vector3(0.1f,0.1f,0.1f));
WW3D::Get_Render_Backend()->Clear(false,true,Vector3(0.1f,0.1f,0.1f));
}
#endif

Expand Down Expand Up @@ -1817,7 +1818,7 @@ void WaterRenderObjClass::drawSea(RenderInfoClass & rinfo)
matWW3D._23=1.0f;
matWW3D._44=1.0f;

DX8Wrapper::Set_Transform(D3DTS_WORLD,Transform); //position the water surface
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Transform); //position the water surface
DX8Wrapper::Set_Texture(0,nullptr); //we'll be setting our own textures, so reset W3D
DX8Wrapper::Set_Texture(1,nullptr); //we'll be setting our own textures, so reset W3D

Expand Down Expand Up @@ -2137,7 +2138,7 @@ void WaterRenderObjClass::renderSky()

Matrix3D tm(1);
tm.Set_Translation(Vector3(0,0,0));
DX8Wrapper::Set_Transform(D3DTS_WORLD,tm);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,tm);

DX8Wrapper::Draw_Triangles( 0,2, 0, 4); //draw a quad, 2 triangles, 4 verts
}
Expand Down Expand Up @@ -2179,7 +2180,7 @@ void WaterRenderObjClass::renderSkyBody(Matrix3D *mat)
tm.Adjust_Translation(Vector3(SKYBODY_X,SKYBODY_Y,SKYBODY_HEIGHT));


DX8Wrapper::Set_Transform(D3DTS_WORLD,tm);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,tm);


VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE);
Expand Down Expand Up @@ -2388,7 +2389,7 @@ void WaterRenderObjClass::renderWaterMesh()

m_vertexBufferD3D->Unlock();

DX8Wrapper::Set_Transform(D3DTS_WORLD,Transform); //position the water surface
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,Transform); //position the water surface
DX8Wrapper::Set_Material(m_meshVertexMaterialClass);

ShaderClass::CullModeType oldCullMode=m_shaderClass.Get_Cull_Mode();
Expand Down Expand Up @@ -2912,7 +2913,7 @@ void WaterRenderObjClass::drawRiverWater(PolygonTrigger *pTrig)

Matrix3D tm(1);

DX8Wrapper::Set_Transform(D3DTS_WORLD,tm); //position the water surface
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,tm); //position the water surface
DX8Wrapper::Set_Index_Buffer(ib_access,0);
DX8Wrapper::Set_Vertex_Buffer(vb_access);
DX8Wrapper::Set_Texture(0,m_riverTexture); //set to blue
Expand Down Expand Up @@ -3276,14 +3277,14 @@ void WaterRenderObjClass::drawTrapezoidWater(Vector3 points[4])

Matrix3D tm(1);

DX8Wrapper::Set_Transform(D3DTS_WORLD,tm); //position the water surface
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,tm); //position the water surface
DX8Wrapper::Set_Index_Buffer(ib_access,0);
DX8Wrapper::Set_Vertex_Buffer(vb_access);

setupFlatWaterShader();// lorenzen sez use the alpha shader

//If video card supports it and it's enabled, feather the water edge using destination alpha
if (DX8Wrapper::getBackBufferFormat() == WW3D_FORMAT_A8R8G8B8 && TheGlobalData->m_showSoftWaterEdge && TheWaterTransparency->m_transparentWaterDepth !=0)
if (WW3D::Get_Render_Backend()->Get_Back_Buffer_Format() == WW3D_FORMAT_A8R8G8B8 && TheGlobalData->m_showSoftWaterEdge && TheWaterTransparency->m_transparentWaterDepth !=0)
{ DX8Wrapper::Set_DX8_Render_State(D3DRS_SRCBLEND, D3DBLEND_DESTALPHA );
if (!TheWaterTransparency->m_additiveBlend)
DX8Wrapper::Set_DX8_Render_State(D3DRS_DESTBLEND, D3DBLEND_INVDESTALPHA );
Expand Down Expand Up @@ -3441,7 +3442,7 @@ void WaterRenderObjClass::renderSkyBody(Matrix3D *mat)
Matrix3D tm(1);
//set position of skybody in world
// tm.Set_Translation(Vector3(40,0,0));
DX8Wrapper::Set_Transform(D3DTS_WORLD,tm);
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,tm);

DX8Wrapper::Draw_Triangles( 0,2, 0, 4); //draw a quad, 2 triangles, 4 verts
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
#include "WW3D2/camera.h"
#include "WW3D2/assetmgr.h"
#include "WW3D2/dx8wrapper.h"
#include "WW3D2/IRenderBackend.h"

//number of vertex pages allocated - allows double buffering of vertex updates.
//while one is being rendered, another is being updated. Improves HW parallelism.
Expand Down Expand Up @@ -898,7 +899,7 @@ Try improving the fit to vertical surfaces like cliffs.
diffuseLight=REAL_TO_INT(shadeB) | (REAL_TO_INT(shadeG) << 8) | (REAL_TO_INT(shadeR) << 16);

Matrix3D tm(1); ///set to identity
DX8Wrapper::Set_Transform(D3DTS_WORLD,tm); //position the water surface
WW3D::Get_Render_Backend()->Set_Transform(RB_TRANSFORM_WORLD,tm); //position the water surface

DX8Wrapper::Set_Material(m_vertexMaterialClass);
DX8Wrapper::Set_Shader(m_shaderClass);
Expand Down
Loading
Loading