diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp index 5b4e4aa683d..aae457c294f 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp @@ -2313,11 +2313,11 @@ void BaseHeightMapRenderObjClass::renderShoreLines(CameraClass *pCamera) ShaderClass unlitShader=ShaderClass::_PresetOpaque2DShader; unlitShader.Set_Depth_Compare(ShaderClass::PASS_LEQUAL); - DX8Wrapper::Set_Shader(unlitShader); + Renderer::Set_Shader(unlitShader); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Set_Texture(0,m_destAlphaTexture); + Renderer::Set_Texture(0,m_destAlphaTexture); Renderer::Set_Transform(RenderTransform_World,Matrix3D(true)); //Enabled writes to destination alpha only DX8Wrapper::Set_DX8_Render_State(D3DRS_COLORWRITEENABLE,D3DCOLORWRITEENABLE_ALPHA); @@ -2499,11 +2499,11 @@ void BaseHeightMapRenderObjClass::renderShoreLinesSorted(CameraClass *pCamera) ShaderClass unlitShader=ShaderClass::_PresetOpaque2DShader; unlitShader.Set_Depth_Compare(ShaderClass::PASS_LEQUAL); - DX8Wrapper::Set_Shader(unlitShader); + Renderer::Set_Shader(unlitShader); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Set_Texture(0,m_destAlphaTexture); + Renderer::Set_Texture(0,m_destAlphaTexture); Renderer::Set_Transform(RenderTransform_World,Matrix3D(true)); //Enabled writes to destination alpha only DX8Wrapper::Set_DX8_Render_State(D3DRS_COLORWRITEENABLE,D3DCOLORWRITEENABLE_ALPHA); @@ -2809,7 +2809,7 @@ void BaseHeightMapRenderObjClass::renderTrees(CameraClass * camera) if (Scene==nullptr) return; if (m_treeBuffer) { Renderer::Set_Transform(RenderTransform_World,Transform); - DX8Wrapper::Set_Material(m_vertexMaterialClass); + Renderer::Set_Material(m_vertexMaterialClass); RTS3DScene *pMyScene = (RTS3DScene *)Scene; RefRenderObjListIterator pDynamicLightsIterator(pMyScene->getDynamicLights()); m_treeBuffer->drawTrees(camera, &pDynamicLightsIterator); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/FlatHeightMap.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/FlatHeightMap.cpp index dd7c77732bc..d3830aaca84 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/FlatHeightMap.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/FlatHeightMap.cpp @@ -486,19 +486,19 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) } #endif - DX8Wrapper::Set_Light_Environment(rinfo.light_environment); + Renderer::Set_Light_Environment(rinfo.light_environment); // Force shaders to update. m_stageTwoTexture->restore(); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); ShaderClass::Invalidate(); Renderer::Set_Transform(RenderTransform_World,Transform); - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); st=W3DShaderManager::ST_FLAT_TERRAIN_BASE; //set default shader @@ -550,8 +550,8 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) for (pass=0; passrestore(); ShaderClass::Invalidate(); if (!ShaderClass::Is_Backface_Culling_Inverted()) { - DX8Wrapper::Set_Material(m_vertexMaterialClass); + Renderer::Set_Material(m_vertexMaterialClass); if (Scene) { RTS3DScene *pMyScene = (RTS3DScene *)Scene; RefRenderObjListIterator pDynamicLightsIterator(pMyScene->getDynamicLights()); @@ -606,17 +606,17 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) } #endif - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); m_stageTwoTexture->restore(); drawScorches(); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); m_stageTwoTexture->restore(); ShaderClass::Invalidate(); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); m_bridgeBuffer->drawBridges(&rinfo.Camera, m_disableTextures, m_stageTwoTexture); @@ -624,18 +624,18 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) TheTerrainTracksRenderObjClassSystem->flush(); ShaderClass::Invalidate(); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); m_waypointBuffer->drawWaypoints(rinfo); m_bibBuffer->renderBibs(); #endif // We do some custom blending, so tell the shader class to reset everything. - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); m_stageTwoTexture->restore(); ShaderClass::Invalidate(); - DX8Wrapper::Set_Material(nullptr); + Renderer::Set_Material(nullptr); } diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp index 849035dcc13..a15ef415d6b 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp @@ -1922,12 +1922,12 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) } #endif - DX8Wrapper::Set_Light_Environment(rinfo.light_environment); + Renderer::Set_Light_Environment(rinfo.light_environment); // Force shaders to update. m_stageTwoTexture->restore(); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); ShaderClass::Invalidate(); Renderer::Set_Transform(RenderTransform_World,Transform); @@ -1960,11 +1960,11 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) { //wireframe pass //Set to vertex diffuse lighting - DX8Wrapper::Set_Material(m_vertexMaterialClass); + Renderer::Set_Material(m_vertexMaterialClass); //Set shader to non-textured solid color from vertex - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueSolidShader); + Renderer::Set_Shader(ShaderClass::_PresetOpaqueSolidShader); devicePasses=1; //one pass solid, next in wireframe. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_COLORARG2, D3DTA_TFACTOR ); DX8Wrapper::Set_DX8_Render_State(D3DRS_TEXTUREFACTOR,0xff808080); doMultiPassWireFrame=TRUE; @@ -1975,8 +1975,8 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) } else { - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); st=W3DShaderManager::ST_TERRAIN_BASE; //set default shader @@ -2029,8 +2029,8 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) if (!doMultiPassWireFrame) //multi-pass wireframe doesn't use regular shaders. { if (m_disableTextures ) { - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaque2DShader); - DX8Wrapper::Set_Texture(0,nullptr); + Renderer::Set_Shader(ShaderClass::_PresetOpaque2DShader); + Renderer::Set_Texture(0,nullptr); } else { W3DShaderManager::setShader(st, pass); } @@ -2043,13 +2043,13 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) #ifdef PRE_TRANSFORM_VERTEX if (m_xformedVertexBuffer && pass==0) { // Note - m_xformedVertexBuffer should only be used for non T&L hardware. jba. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); int code = DX8Wrapper::_Get_D3D_Device8()->ProcessVertices(0, 0, numVertex, m_xformedVertexBuffer[j*m_numVBTilesX+i], 0); ::OutputDebugString("did process vertex\n"); } if (m_xformedVertexBuffer) { // Note - m_xformedVertexBuffer should only be used for non T&L hardware. jba. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::_Get_D3D_Device8()->SetStreamSource( 0, m_xformedVertexBuffer[j*m_numVBTilesX+i], @@ -2081,13 +2081,13 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) Int xCoordMin = m_map->getDrawOrgX(); Int xCoordMax = m_x+m_map->getDrawOrgX()-1; #ifdef DO_ROADS - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); m_stageTwoTexture->restore(); ShaderClass::Invalidate(); if (!ShaderClass::Is_Backface_Culling_Inverted()) { - DX8Wrapper::Set_Material(m_vertexMaterialClass); + Renderer::Set_Material(m_vertexMaterialClass); if (Scene) { RTS3DScene *pMyScene = (RTS3DScene *)Scene; RefRenderObjListIterator pDynamicLightsIterator(pMyScene->getDynamicLights()); @@ -2099,17 +2099,17 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) if (m_propBuffer) { m_propBuffer->drawProps(rinfo); } - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); m_stageTwoTexture->restore(); drawScorches(); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); m_stageTwoTexture->restore(); ShaderClass::Invalidate(); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); m_bridgeBuffer->drawBridges(&rinfo.Camera, m_disableTextures, doCloud?m_stageTwoTexture:nullptr); @@ -2124,7 +2124,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) } ShaderClass::Invalidate(); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); } else m_bridgeBuffer->drawBridges(&rinfo.Camera, m_disableTextures, m_stageTwoTexture); @@ -2135,11 +2135,11 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) m_bibBuffer->renderBibs(); // We do some custom blending, so tell the shader class to reset everything. - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); m_stageTwoTexture->restore(); ShaderClass::Invalidate(); - DX8Wrapper::Set_Material(nullptr); + Renderer::Set_Material(nullptr); } @@ -2161,13 +2161,13 @@ void HeightMapRenderObjClass::renderTerrainPass(CameraClass *pCamera) #ifdef PRE_TRANSFORM_VERTEX if (m_xformedVertexBuffer && pass==0) { // Note - m_xformedVertexBuffer should only be used for non T&L hardware. jba. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); int code = DX8Wrapper::_Get_D3D_Device8()->ProcessVertices(0, 0, numVertex, m_xformedVertexBuffer[j*m_numVBTilesX+i], 0); ::OutputDebugString("did process vertex\n"); } if (m_xformedVertexBuffer) { // Note - m_xformedVertexBuffer should only be used for non T&L hardware. jba. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::_Get_D3D_Device8()->SetStreamSource( 0, m_xformedVertexBuffer[j*m_numVBTilesX+i], @@ -2338,18 +2338,18 @@ void HeightMapRenderObjClass::renderExtraBlendTiles() DX8Wrapper::Set_Index_Buffer(ib_access,0); DX8Wrapper::Set_Vertex_Buffer(vb_access); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); ShaderClass shader=ShaderClass::_PresetOpaqueShader; shader.Set_Depth_Mask(ShaderClass::DEPTH_WRITE_DISABLE); //disable writes to z - DX8Wrapper::Set_Shader(shader); + Renderer::Set_Shader(shader); if (TheGlobalData->m_use3WayTerrainBlends == 2) { shader.Set_Primary_Gradient(ShaderClass::GRADIENT_DISABLE); //disable lighting. shader.Set_Texturing(ShaderClass::TEXTURING_DISABLE); //disable texturing. - DX8Wrapper::Set_Shader(shader); - DX8Wrapper::Set_Texture(0,nullptr); //debug mode which draws terrain tiles in white. + Renderer::Set_Shader(shader); + Renderer::Set_Texture(0,nullptr); //debug mode which draws terrain tiles in white. if (Is_Hidden() == 0) { DX8Wrapper::Draw_Triangles( 0,indexCount/3, 0, vertexCount); //draw a quad, 2 triangles, 4 verts m_numVisibleExtraBlendTiles += indexCount/6; diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp index 41f01e4e42b..f7fb42b28c1 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp @@ -216,11 +216,11 @@ void W3DDebugIcons::Render(RenderInfoClass & rinfo) // Bool anyVanished = false; if (m_numDebugIcons==0) return; - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Texture(0, nullptr); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Texture(0, nullptr); + Renderer::Apply_Render_State_Changes(); Renderer::Set_Transform(RenderTransform_World,Transform); @@ -303,7 +303,7 @@ void W3DDebugIcons::Render(RenderInfoClass & rinfo) } } if (numVertex == 0) break; - DX8Wrapper::Set_Shader(ShaderClass(SC_ALPHA)); + Renderer::Set_Shader(ShaderClass(SC_ALPHA)); DX8Wrapper::Set_Index_Buffer(ib_access,0); DX8Wrapper::Set_Vertex_Buffer(vb_access); DX8Wrapper::Draw_Triangles( 0,curIndex/3, 0, numVertex); //draw a quad, 2 triangles, 4 verts diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DScorch.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DScorch.cpp index 1a44e3e8fa4..dfb18130bb1 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DScorch.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DScorch.cpp @@ -25,6 +25,7 @@ #include "W3DDevice/GameClient/TerrainTex.h" #include "W3DDevice/GameClient/WorldHeightMap.h" #include "WW3D2/dx8wrapper.h" +#include "WW3D2/Renderer.h" W3DScorch::W3DScorch(bool deduplicateScorches) : m_vertexScorch(nullptr) @@ -124,9 +125,9 @@ void W3DScorch::drawScorches(WorldHeightMap& map) } DX8Wrapper::Set_Index_Buffer(m_indexScorch, 0); DX8Wrapper::Set_Vertex_Buffer(m_vertexScorch); - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader); + Renderer::Set_Shader(ShaderClass::_PresetAlphaShader); - DX8Wrapper::Set_Texture(0, m_scorchTexture); + Renderer::Set_Texture(0, m_scorchTexture); DX8Wrapper::Draw_Triangles(0, m_curNumScorchIndices / 3, 0, m_curNumScorchVertices); } diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DShaderManager.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DShaderManager.cpp index d0390f4eaf6..4fd55d1eb6a 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DShaderManager.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DShaderManager.cpp @@ -234,15 +234,15 @@ Bool ScreenDefaultFilter::postRender(FilterModes mode, Coord2D &scrollDelta,Bool Int ScreenDefaultFilter::set(FilterModes mode) { VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Texture(0,nullptr); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices DX8Wrapper::Set_DX8_Render_State(D3DRS_ZFUNC,D3DCMP_ALWAYS); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZWRITEENABLE,FALSE); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices return true; } @@ -250,7 +250,7 @@ Int ScreenDefaultFilter::set(FilterModes mode) void ScreenDefaultFilter::reset() { DX8Wrapper::_Get_D3D_Device8()->SetTexture(0,nullptr); //previously rendered frame inside this texture - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } /*========= ScreenBWFilter =============================================================*/ @@ -415,15 +415,15 @@ Int ScreenBWFilter::set(FilterModes mode) } VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Texture(0,nullptr); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices DX8Wrapper::Set_DX8_Render_State(D3DRS_ZFUNC,D3DCMP_ALWAYS); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZWRITEENABLE,FALSE); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices hr=DX8Wrapper::_Get_D3D_Device8()->SetPixelShader(m_dwBWPixelShader); DX8Wrapper::_Get_D3D_Device8()->SetPixelShaderConstant(0, D3DXVECTOR4(0.3f, 0.59f, 0.11f, 1.0f), 1); @@ -474,7 +474,7 @@ void ScreenBWFilter::reset() { DX8Wrapper::_Get_D3D_Device8()->SetTexture(0,nullptr); //previously rendered frame inside this texture DX8Wrapper::_Get_D3D_Device8()->SetPixelShader(0); //turn off pixel shader - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } Int ScreenBWFilter::shutdown() @@ -590,8 +590,8 @@ Bool ScreenBWFilterDOT3::postRender(FilterModes mode, Coord2D &scrollDelta,Bool ShaderClass::Invalidate(); //reset DOT3 blend from above. ShaderClass shader=ShaderClass::_PresetAlphaShader; shader.Set_Depth_Compare(ShaderClass::PASS_ALWAYS); - DX8Wrapper::Set_Shader(shader); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(shader); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices //replace texture alpha with vertex alpha DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2); @@ -644,15 +644,15 @@ Int ScreenBWFilterDOT3::set(FilterModes mode) } VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Texture(0,nullptr); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices DX8Wrapper::Set_DX8_Render_State(D3DRS_ZFUNC,D3DCMP_ALWAYS); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZWRITEENABLE,FALSE); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices return true; } @@ -662,7 +662,7 @@ Int ScreenBWFilterDOT3::set(FilterModes mode) void ScreenBWFilterDOT3::reset() { DX8Wrapper::_Get_D3D_Device8()->SetTexture(0,nullptr); //previously rendered frame inside this texture - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } Int ScreenBWFilterDOT3::shutdown() @@ -868,12 +868,12 @@ Int ScreenCrossFadeFilter::set(FilterModes mode) { //rendering a quad with redirected rendering surface VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(ShaderClass::_PresetAlphaShader); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP); DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP); @@ -906,7 +906,7 @@ void ScreenCrossFadeFilter::reset() DX8Wrapper::Set_DX8_Texture_Stage_State( 1, D3DTSS_COLOROP, D3DTOP_DISABLE ); DX8Wrapper::Set_DX8_Texture_Stage_State( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); DX8Wrapper::_Get_D3D_Device8()->SetTexture(0,nullptr); //previously rendered frame inside this texture - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } Int ScreenCrossFadeFilter::shutdown() @@ -1007,7 +1007,7 @@ Bool ScreenMotionBlurFilter::postRender(FilterModes mode, Coord2D &scrollDelta,B DX8Wrapper::Set_DX8_Render_State(D3DRS_ALPHABLENDENABLE,false); //draw polygons like this is very inefficient but for only 2 triangles, it's //not worth bothering with index/vertex buffers. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); pDev->SetVertexShader(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1); Coord2D center; @@ -1078,7 +1078,7 @@ Bool ScreenMotionBlurFilter::postRender(FilterModes mode, Coord2D &scrollDelta,B pDev->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, v, sizeof(_TRANS_LIT_TEX_VERTEX)); DX8Wrapper::Set_DX8_Render_State(D3DRS_ALPHABLENDENABLE,true); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); { Int limit = m_maxCount; if (m_maxCount>30) limit = 30; @@ -1160,16 +1160,16 @@ Int ScreenMotionBlurFilter::set(FilterModes mode) //rendering a quad with redirected rendering surface motion blurred VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices DX8Wrapper::Set_DX8_Render_State(D3DRS_ZFUNC,D3DCMP_ALWAYS); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZWRITEENABLE,FALSE); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices } return TRUE; } @@ -1177,7 +1177,7 @@ Int ScreenMotionBlurFilter::set(FilterModes mode) void ScreenMotionBlurFilter::reset() { DX8Wrapper::_Get_D3D_Device8()->SetTexture(0,nullptr); //previously rendered frame inside this texture - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } Int ScreenMotionBlurFilter::shutdown() @@ -1220,22 +1220,22 @@ Int ShroudTextureShader::set(Int stage) { //force WW3D2 system to set it's states so it won't later overwrite our custom settings. VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. - DX8Wrapper::Set_Texture(stage, W3DShaderManager::getShaderTexture(0)); //shroud always stored in texture 0 + Renderer::Set_Texture(stage, W3DShaderManager::getShaderTexture(0)); //shroud always stored in texture 0 if (stage == 0) { #if defined(RTS_DEBUG) if (TheGlobalData && TheGlobalData->m_fogOfWarOn) - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaSpriteShader); + Renderer::Set_Shader(ShaderClass::_PresetAlphaSpriteShader); else - DX8Wrapper::Set_Shader(ShaderClass::_PresetMultiplicativeSpriteShader); + Renderer::Set_Shader(ShaderClass::_PresetMultiplicativeSpriteShader); #else - DX8Wrapper::Set_Shader(ShaderClass::_PresetMultiplicativeSpriteShader); + Renderer::Set_Shader(ShaderClass::_PresetMultiplicativeSpriteShader); #endif } - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::Set_DX8_Texture_Stage_State(stage, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION); DX8Wrapper::Set_DX8_Texture_Stage_State(stage, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2); @@ -1285,7 +1285,7 @@ Int ShroudTextureShader::set(Int stage) void ShroudTextureShader::reset() { - DX8Wrapper::Set_Texture(m_stageOfSet,nullptr); + Renderer::Set_Texture(m_stageOfSet,nullptr); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); DX8Wrapper::Set_DX8_Texture_Stage_State(m_stageOfSet, D3DTSS_TEXCOORDINDEX, m_stageOfSet); DX8Wrapper::Set_DX8_Texture_Stage_State(m_stageOfSet, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE); @@ -1322,7 +1322,7 @@ Int FlatShroudTextureShader::set(Int stage) { //force WW3D2 system to set it's states so it won't later overwrite our custom settings. if (stage < 2) - DX8Wrapper::Set_Texture(stage, W3DShaderManager::getShaderTexture(stage)); + Renderer::Set_Texture(stage, W3DShaderManager::getShaderTexture(stage)); else //stages larger than 1 are not supported by W3D so set them directly DX8Wrapper::Set_DX8_Texture(stage, W3DShaderManager::getShaderTexture(stage)->Peek_D3D_Texture()); @@ -1380,7 +1380,7 @@ Int FlatShroudTextureShader::set(Int stage) void FlatShroudTextureShader::reset() { if (m_stageOfSet < MAX_TEXTURE_STAGES) - DX8Wrapper::Set_Texture(m_stageOfSet,nullptr); + Renderer::Set_Texture(m_stageOfSet,nullptr); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); DX8Wrapper::Set_DX8_Texture_Stage_State(m_stageOfSet, D3DTSS_TEXCOORDINDEX, m_stageOfSet); DX8Wrapper::Set_DX8_Texture_Stage_State(m_stageOfSet, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE); @@ -1421,15 +1421,15 @@ Int MaskTextureShader::set(Int pass) //force WW3D2 system to set it's states so it won't later overwrite our custom settings. VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. //For now we're always going to project the texture coming from the crossfade effect - DX8Wrapper::Set_Texture(0, ScreenCrossFadeFilter::getCurrentMaskTexture()); + Renderer::Set_Texture(0, ScreenCrossFadeFilter::getCurrentMaskTexture()); ShaderClass shader=ShaderClass::_PresetOpaqueShader; shader.Set_Primary_Gradient(ShaderClass::GRADIENT_DISABLE); - DX8Wrapper::Set_Shader(shader); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Set_Shader(shader); + Renderer::Apply_Render_State_Changes(); D3DXMATRIX curView; DX8Wrapper::_Get_DX8_Transform(D3DTS_VIEW, curView); @@ -1488,7 +1488,7 @@ Int MaskTextureShader::set(Int pass) void MaskTextureShader::reset() { - DX8Wrapper::Set_Texture(0,nullptr); + Renderer::Set_Texture(0,nullptr); DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_TEXCOORDINDEX, 0); DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE); } @@ -1653,7 +1653,7 @@ void TerrainShader2Stage::updateNoise2(D3DXMATRIX *destMatrix,D3DXMATRIX *curVie Int TerrainShader2Stage::set(Int pass) { //force WW3D2 system to set it's states so it won't later overwrite our custom settings. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); if (TheGlobalData && (TheGlobalData->m_bilinearTerrainTex || TheGlobalData->m_trilinearTerrainTex)) { DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR); @@ -1824,7 +1824,7 @@ Int TerrainShader8Stage::set(Int pass) if (pass == 0) { //force WW3D2 system to set it's states so it won't later overwrite our custom settings. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP); DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP); @@ -1930,7 +1930,7 @@ Int TerrainShader8Stage::set(Int pass) DX8Wrapper::Set_DX8_Texture_Stage_State( 2, D3DTSS_ALPHAOP, D3DTOP_DISABLE); DX8Wrapper::Set_DX8_Texture_Stage_State( 3, D3DTSS_COLOROP, D3DTOP_DISABLE); DX8Wrapper::Set_DX8_Texture_Stage_State( 3, D3DTSS_ALPHAOP, D3DTOP_DISABLE); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); terrainShader2Stage.set(2); } @@ -1948,7 +1948,7 @@ void TerrainShader8Stage::reset() DX8Wrapper::_Get_D3D_Device8()->SetTexture(0, nullptr); DX8Wrapper::_Get_D3D_Device8()->SetTexture(1, nullptr); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } Int TerrainShaderPixelShader::shutdown() @@ -2024,7 +2024,7 @@ Int TerrainShaderPixelShader::init() Int TerrainShaderPixelShader::set(Int pass) { //force WW3D2 system to set it's states so it won't later overwrite our custom settings. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); //setup base pass DX8Wrapper::_Get_D3D_Device8()->SetTexture(0, W3DShaderManager::getShaderTexture(0)->Peek_D3D_Texture()); @@ -2155,7 +2155,7 @@ void TerrainShaderPixelShader::reset() DX8Wrapper::Set_DX8_Texture_Stage_State( 3, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_PASSTHRU|3); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } ///Cloud layer rendering shader - used for objects similar to terrain which only need the cloud layer. @@ -2305,9 +2305,9 @@ Int RoadShaderPixelShader::init() Int RoadShaderPixelShader::set(Int pass) { - DX8Wrapper::Set_Texture(0,W3DShaderManager::getShaderTexture(0)); + Renderer::Set_Texture(0,W3DShaderManager::getShaderTexture(0)); //force WW3D2 system to set it's states so it won't later overwrite our custom settings. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); //tell pixel shader which UV set to use for each stage DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_TEXCOORDINDEX, 0 ); @@ -2346,8 +2346,8 @@ Int RoadShaderPixelShader::set(Int pass) DX8Wrapper::Set_DX8_Texture_Stage_State(2, D3DTSS_ADDRESSU, D3DTADDRESS_WRAP); DX8Wrapper::Set_DX8_Texture_Stage_State(2, D3DTSS_ADDRESSV, D3DTADDRESS_WRAP); - DX8Wrapper::Set_Texture(1,W3DShaderManager::getShaderTexture(1)); - DX8Wrapper::Set_Texture(2,W3DShaderManager::getShaderTexture(2)); + Renderer::Set_Texture(1,W3DShaderManager::getShaderTexture(1)); + Renderer::Set_Texture(2,W3DShaderManager::getShaderTexture(2)); DX8Wrapper::_Get_D3D_Device8()->SetPixelShader(m_dwBaseNoise2PixelShader); @@ -2388,7 +2388,7 @@ void RoadShaderPixelShader::reset() DX8Wrapper::Set_DX8_Texture_Stage_State( 3, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_PASSTHRU|3); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } Int RoadShader2Stage::init() @@ -2409,9 +2409,9 @@ Int RoadShader2Stage::init() Int RoadShader2Stage::set(Int pass) { //First stage always contains base texture. - DX8Wrapper::Set_Texture(0,W3DShaderManager::getShaderTexture(0)); + Renderer::Set_Texture(0,W3DShaderManager::getShaderTexture(0)); //Force system to apply world/view transforms. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZWRITEENABLE,FALSE); @@ -2465,7 +2465,7 @@ Int RoadShader2Stage::set(Int pass) if (W3DShaderManager::getCurrentShader() == W3DShaderManager::ST_ROAD_BASE_NOISE12) { //full shader, apply noise 1 in pass 0. - DX8Wrapper::Set_Texture(1,W3DShaderManager::getShaderTexture(1)); + Renderer::Set_Texture(1,W3DShaderManager::getShaderTexture(1)); DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MINFILTER, D3DTEXF_LINEAR); DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MAGFILTER, D3DTEXF_LINEAR); @@ -2478,7 +2478,7 @@ Int RoadShader2Stage::set(Int pass) if (W3DShaderManager::getCurrentShader() == W3DShaderManager::ST_ROAD_BASE_NOISE1) { //cloud map - DX8Wrapper::Set_Texture(1,W3DShaderManager::getShaderTexture(1)); + Renderer::Set_Texture(1,W3DShaderManager::getShaderTexture(1)); terrainShader2Stage.updateNoise1(&curView, &inv, false); //update curView with texture matrix DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MINFILTER, D3DTEXF_LINEAR); DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MAGFILTER, D3DTEXF_LINEAR); @@ -2486,7 +2486,7 @@ Int RoadShader2Stage::set(Int pass) else { //light map - DX8Wrapper::Set_Texture(1,W3DShaderManager::getShaderTexture(2)); + Renderer::Set_Texture(1,W3DShaderManager::getShaderTexture(2)); terrainShader2Stage.updateNoise2(&curView,&inv, false); //update curView with texture matrix DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MINFILTER, D3DTEXF_POINT); DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MAGFILTER, D3DTEXF_LINEAR); @@ -2516,7 +2516,7 @@ Int RoadShader2Stage::set(Int pass) else DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MIPFILTER, D3DTEXF_POINT); - DX8Wrapper::Set_Texture(1,W3DShaderManager::getShaderTexture(2)); + Renderer::Set_Texture(1,W3DShaderManager::getShaderTexture(2)); terrainShader2Stage.updateNoise2(&curView, &inv, false); //update curView with texture matrix DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_MINFILTER, D3DTEXF_POINT); @@ -2897,10 +2897,10 @@ void W3DShaderManager::startRenderToTexture() ShaderClass shader=ShaderClass::_PresetOpaqueSolidShader; shader.Set_Depth_Compare(ShaderClass::PASS_ALWAYS); shader.Set_Depth_Mask(ShaderClass::DEPTH_WRITE_DISABLE); - DX8Wrapper::Set_Shader(shader); + Renderer::Set_Shader(shader); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. drawViewport(0x00ffffff | (((Int)(TheWaterTransparency->m_minWaterOpacity*255.0f)) <<24)); @@ -3242,7 +3242,7 @@ Int W3DShaderManager::setShroudTex(Int stage) W3DShroud *shroud; if ((shroud=TheTerrainRenderObject->getShroud()) != nullptr) { - DX8Wrapper::Set_Texture(stage, shroud->getShroudTexture()); + Renderer::Set_Texture(stage, shroud->getShroudTexture()); DX8Wrapper::Set_DX8_Texture_Stage_State(stage, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION); DX8Wrapper::Set_DX8_Texture_Stage_State(stage, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2); @@ -3326,7 +3326,7 @@ void FlatTerrainShader2Stage::reset() Int FlatTerrainShader2Stage::set(Int pass) { //force WW3D2 system to set it's states so it won't later overwrite our custom settings. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); if (TheGlobalData && (TheGlobalData->m_bilinearTerrainTex || TheGlobalData->m_trilinearTerrainTex)) { DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR); @@ -3605,10 +3605,10 @@ Int FlatTerrainShaderPixelShader::set(Int pass) DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP); DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP); - DX8Wrapper::Set_Texture(0, W3DShaderManager::getShaderTexture(2)); - DX8Wrapper::Set_Texture(1, W3DShaderManager::getShaderTexture(2)); + Renderer::Set_Texture(0, W3DShaderManager::getShaderTexture(2)); + Renderer::Set_Texture(1, W3DShaderManager::getShaderTexture(2)); //force WW3D2 system to set it's states so it won't later overwrite our custom settings. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); @@ -3747,7 +3747,7 @@ Int FlatTerrainShaderPixelShader::set(Int pass) DX8Wrapper::_Get_D3D_Device8()->SetPixelShader(m_dwBaseNoise2PixelShader); } DX8Wrapper::_Get_D3D_Device8()->SetRenderState(D3DRS_ALPHABLENDENABLE, false); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::_Get_D3D_Device8()->SetTexture(curStage, W3DShaderManager::getShaderTexture(3)->Peek_D3D_Texture()); return TRUE; } @@ -3775,7 +3775,7 @@ void FlatTerrainShaderPixelShader::reset() DX8Wrapper::Set_DX8_Texture_Stage_State( 3, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_PASSTHRU|3); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSmudge.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSmudge.cpp index da66895ef4c..55a42180732 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSmudge.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSmudge.cpp @@ -223,15 +223,15 @@ Bool W3DSmudgeManager::testHardwareSupport() } VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //no need to keep a reference since it's a preset. ShaderClass shader=ShaderClass::_PresetOpaqueShader; shader.Set_Depth_Compare(ShaderClass::PASS_ALWAYS); shader.Set_Depth_Mask(ShaderClass::DEPTH_WRITE_DISABLE); - DX8Wrapper::Set_Shader(shader); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(shader); + Renderer::Set_Texture(0,nullptr); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices struct _TRANS_LIT_TEX_VERTEX { Vector4 p; @@ -453,9 +453,9 @@ void W3DSmudgeManager::render(RenderInfoClass &rinfo) DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); //DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueSpriteShader); - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader); + Renderer::Set_Shader(ShaderClass::_PresetAlphaShader); - DX8Wrapper::Set_Texture(0,m_backgroundTexture); + Renderer::Set_Texture(0,m_backgroundTexture); //Need these states in case texture is non-power-of-2 DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP); DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP); @@ -464,9 +464,9 @@ void W3DSmudgeManager::render(RenderInfoClass &rinfo) DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR); DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_MIPFILTER, D3DTEXF_NONE); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); //Disable reading texture alpha since it's undefined. //DX8Wrapper::Set_DX8_Texture_Stage_State(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSnow.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSnow.cpp index 1cab794ddfb..c9836a4b127 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSnow.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DSnow.cpp @@ -397,10 +397,10 @@ void W3DSnowManager::render(RenderInfoClass &rinfo) Matrix4x4 identity(true); Renderer::Set_Transform(RenderTransform_World,identity); - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader); + Renderer::Set_Shader(ShaderClass::_PresetAlphaShader); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); //make sure we have all the resources we need @@ -410,7 +410,7 @@ void W3DSnowManager::render(RenderInfoClass &rinfo) if (!usePointSprites && !m_indexBuffer) ReAcquireResources(); - DX8Wrapper::Set_Texture(0,m_snowTexture); + Renderer::Set_Texture(0,m_snowTexture); if (!usePointSprites) { @@ -420,7 +420,7 @@ void W3DSnowManager::render(RenderInfoClass &rinfo) Vector3 snowCenter; - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); // Set the render states for using point sprites DX8Wrapper::Set_DX8_Render_State( D3DRS_POINTSPRITEENABLE, TRUE ); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainBackground.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainBackground.cpp index 04e637acd33..4ef894febdb 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainBackground.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainBackground.cpp @@ -55,6 +55,7 @@ #include "W3DDevice/GameClient/TerrainTex.h" #include "W3DDevice/GameClient/HeightMap.h" #include "WW3D2/dx8wrapper.h" +#include "WW3D2/Renderer.h" #include "WW3D2/dx8renderer.h" #include "WW3D2/camera.h" @@ -767,11 +768,11 @@ void W3DTerrainBackground::drawVisiblePolys(RenderInfoClass & rinfo, Bool disabl DX8Wrapper::Set_Vertex_Buffer(m_vertexTerrain); if (!disableTextures) { if (m_terrainTexture4X) { - DX8Wrapper::Set_Texture(1, m_terrainTexture4X); + Renderer::Set_Texture(1, m_terrainTexture4X); } else if (m_terrainTexture2X) { - DX8Wrapper::Set_Texture(1, m_terrainTexture2X); + Renderer::Set_Texture(1, m_terrainTexture2X); } else { - DX8Wrapper::Set_Texture(1, m_terrainTexture); + Renderer::Set_Texture(1, m_terrainTexture); } } DX8Wrapper::Draw_Triangles( 0, m_curNumTerrainIndices/3, 0, m_curNumTerrainVertices); @@ -787,11 +788,11 @@ void W3DTerrainBackground::drawVisiblePolys(RenderInfoClass & rinfo, Bool disabl DX8Wrapper::Set_Vertex_Buffer(m_vertexTerrain); if (!disableTextures) { if (m_terrainTexture4X) { - DX8Wrapper::Set_Texture(0, m_terrainTexture4X); + Renderer::Set_Texture(0, m_terrainTexture4X); } else if (m_terrainTexture2X) { - DX8Wrapper::Set_Texture(0, m_terrainTexture2X); + Renderer::Set_Texture(0, m_terrainTexture2X); } else { - DX8Wrapper::Set_Texture(0, m_terrainTexture); + Renderer::Set_Texture(0, m_terrainTexture); } } DX8Wrapper::Draw_Triangles( 0, m_curNumTerrainIndices/3, 0, m_curNumTerrainVertices); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainTracks.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainTracks.cpp index 2d68bdb127c..b7532d2d034 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainTracks.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainTracks.cpp @@ -900,8 +900,8 @@ Try improving the fit to vertical surfaces like cliffs. if (m_edgesToFlush >= 2) { ShaderClass::Invalidate(); - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBuffer); @@ -912,7 +912,7 @@ Try improving the fit to vertical surfaces like cliffs. { if (mod->m_activeEdgeCount >= 2 && mod->Is_Really_Visible()) { - DX8Wrapper::Set_Texture(0,mod->m_stageZeroTexture); + Renderer::Set_Texture(0,mod->m_stageZeroTexture); DX8Wrapper::Set_Index_Buffer_Index_Offset(trackStartIndex); DX8Wrapper::Draw_Triangles( 0,(mod->m_activeEdgeCount-1)*2, 0, mod->m_activeEdgeCount*2); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp index 9ebc508789c..033919cb09d 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp @@ -1574,8 +1574,8 @@ void W3DTreeBuffer::drawTrees(CameraClass * camera, RefRenderObjListIterator *pD //#define DEBUG_TEXTURE 1 #ifdef DEBUG_TEXTURE // Draw the combined texture for debugging. jba. [4/21/2003] // Setup the vertex buffer, shader & texture. - DX8Wrapper::Set_Shader(detailAlphaShader); - DX8Wrapper::Set_Texture(0,m_treeTexture); + Renderer::Set_Shader(detailAlphaShader); + Renderer::Set_Texture(0,m_treeTexture); DynamicIBAccessClass ib_access(BUFFER_TYPE_DYNAMIC_DX8, 6); //draw an infinite sky plane DynamicVBAccessClass vb_access(BUFFER_TYPE_DYNAMIC_DX8, DX8_FVF_XYZNDUV2, 4); @@ -1640,16 +1640,16 @@ void W3DTreeBuffer::drawTrees(CameraClass * camera, RefRenderObjListIterator *pD if (m_curNumTreeIndices[0] == 0) { return; } - DX8Wrapper::Set_Shader(detailAlphaShader); + Renderer::Set_Shader(detailAlphaShader); - DX8Wrapper::Set_Texture(0,m_treeTexture); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,m_treeTexture); + Renderer::Set_Texture(1,nullptr); DX8Wrapper::Set_DX8_Texture_Stage_State(0, D3DTSS_TEXCOORDINDEX, 0); DX8Wrapper::Set_DX8_Texture_Stage_State(1, D3DTSS_TEXCOORDINDEX, 1); // Draw all the trees. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); W3DShaderManager::setShroudTex(1); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); if (m_dwTreeVertexShader) { D3DXMATRIX matProj, matView, matWorld; @@ -1718,7 +1718,7 @@ void W3DTreeBuffer::drawTrees(CameraClass * camera, RefRenderObjListIterator *pD DX8Wrapper::Set_Index_Buffer(m_indexTree[bNdx],0); DX8Wrapper::Set_Vertex_Buffer(m_vertexTree[bNdx]); // Render the waving grass - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); if (m_dwTreeVertexShader) { DX8Wrapper::_Get_D3D_Device8()->SetVertexShader(m_dwTreeVertexShader); DX8Wrapper::_Get_D3D_Device8()->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0); @@ -1730,7 +1730,7 @@ void W3DTreeBuffer::drawTrees(CameraClass * camera, RefRenderObjListIterator *pD DX8Wrapper::Set_Vertex_Shader(DX8_FVF_XYZNDUV1); DX8Wrapper::Set_Pixel_Shader(0); - DX8Wrapper::Invalidate_Cached_Render_States(); //code above mucks around with W3D states so make sure we reset + Renderer::Invalidate_Cached_Render_States(); //code above mucks around with W3D states so make sure we reset } diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp index b2e4e86aabc..de9c9efee4f 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp @@ -206,12 +206,12 @@ static Bool wireframeForDebug = 0; void WaterRenderObjClass::setupJbaWaterShader() { if (!TheWaterTransparency->m_additiveBlend) - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader); + Renderer::Set_Shader(ShaderClass::_PresetAlphaShader); else - DX8Wrapper::Set_Shader(ShaderClass::_PresetAdditiveShader); + Renderer::Set_Shader(ShaderClass::_PresetAdditiveShader); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); m_riverTexture->Get_Filter().Set_Mag_Filter(TextureFilterClass::FILTER_TYPE_BEST); m_riverTexture->Get_Filter().Set_Min_Filter(TextureFilterClass::FILTER_TYPE_BEST); @@ -221,7 +221,7 @@ void WaterRenderObjClass::setupJbaWaterShader() // Setting *setting=&m_settings[m_tod]; - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices DX8Wrapper::Set_DX8_Texture_Stage_State( 0, D3DTSS_ALPHAOP, D3DTOP_ADD ); if (!m_riverAlphaEdge->Is_Initialized()) m_riverAlphaEdge->Init(); @@ -1647,7 +1647,7 @@ void WaterRenderObjClass::Render(RenderInfoClass & rinfo) m_alphaClippingTexture->Set_Mag_Filter(TextureClass::FILTER_TYPE_NONE); m_alphaClippingTexture->Set_Mip_Mapping(TextureClass::FILTER_TYPE_NONE); - DX8Wrapper::Set_Texture(0,m_alphaClippingTexture); + Renderer::Set_Texture(0,m_alphaClippingTexture); //TODO: Will have to make sure that the shader system is not resetting my stage 1 setup //while rendering the scene @@ -1718,8 +1718,8 @@ void WaterRenderObjClass::Render(RenderInfoClass & rinfo) //Clean up after any pixel shaders. //Force render state apply so that the null texture gets applied to D3D, thus releasing shroud reference count. - DX8Wrapper::Apply_Render_State_Changes(); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Apply_Render_State_Changes(); + Renderer::Invalidate_Cached_Render_States(); if (m_waterTrackSystem) m_waterTrackSystem->flush(rinfo); @@ -1789,11 +1789,11 @@ void WaterRenderObjClass::drawSea(RenderInfoClass & rinfo) matWW3D._44=1.0f; Renderer::Set_Transform(RenderTransform_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 + Renderer::Set_Texture(0,nullptr); //we'll be setting our own textures, so reset W3D + Renderer::Set_Texture(1,nullptr); //we'll be setting our own textures, so reset W3D - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices Vector3 camTran; @@ -1946,7 +1946,7 @@ void WaterRenderObjClass::drawSea(RenderInfoClass & rinfo) m_pDev->SetPixelShader(0); //turn off pixel shader m_pDev->SetVertexShader(DX8_FVF_XYZDUV1); //turn off custom vertex shader - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); if (TheTerrainRenderObject->getShroud()) { @@ -2054,7 +2054,7 @@ void WaterRenderObjClass::renderSky() VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); ShaderClass m_shader2=ShaderClass::_PresetOpaqueShader; @@ -2062,9 +2062,9 @@ void WaterRenderObjClass::renderSky() m_shader2.Set_Depth_Compare(ShaderClass::PASS_ALWAYS); //no need to check against z-buffer, sky always rendered first. m_shader2.Set_Depth_Mask(ShaderClass::DEPTH_WRITE_DISABLE); //sky is always behind everything so no need to update z-buffer - DX8Wrapper::Set_Shader(m_shader2); + Renderer::Set_Shader(m_shader2); - DX8Wrapper::Set_Texture(0,setting->skyTexture); + Renderer::Set_Texture(0,setting->skyTexture); //draw an infinite sky plane DynamicVBAccessClass vb_access(BUFFER_TYPE_DYNAMIC_DX8,dynamic_fvf_type,4); @@ -2154,7 +2154,7 @@ void WaterRenderObjClass::renderSkyBody(Matrix3D *mat) VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); ShaderClass m_shader2=ShaderClass::_PresetAlphaShader; @@ -2162,13 +2162,13 @@ void WaterRenderObjClass::renderSkyBody(Matrix3D *mat) m_shader2.Set_Depth_Compare(ShaderClass::PASS_ALWAYS); //no need to check against z-buffer, sky always rendered first. m_shader2.Set_Depth_Mask(ShaderClass::DEPTH_WRITE_DISABLE); //sky is always behind everything so no need to update z-buffer - DX8Wrapper::Set_Shader(m_shader2); + Renderer::Set_Shader(m_shader2); // DX8Wrapper::Set_Shader(ShaderClass::/*_PresetAdditiveShader*//*_PresetOpaqueShader*/_PresetAlphaShader); // DX8Wrapper::Set_Texture(0,setting->skyBodyTexture); - DX8Wrapper::Set_Texture(0,m_alphaClippingTexture); + Renderer::Set_Texture(0,m_alphaClippingTexture); //draw an infinite sky plane DynamicVBAccessClass vb_access(BUFFER_TYPE_DYNAMIC_DX8,dynamic_fvf_type,4); @@ -2360,7 +2360,7 @@ void WaterRenderObjClass::renderWaterMesh() m_vertexBufferD3D->Unlock(); Renderer::Set_Transform(RenderTransform_World,Transform); //position the water surface - DX8Wrapper::Set_Material(m_meshVertexMaterialClass); + Renderer::Set_Material(m_meshVertexMaterialClass); ShaderClass::CullModeType oldCullMode=m_shaderClass.Get_Cull_Mode(); @@ -2369,25 +2369,25 @@ void WaterRenderObjClass::renderWaterMesh() m_shaderClass.Set_Cull_Mode(ShaderClass::CULL_MODE_ENABLE); //water should be visible from both sides - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Shader(m_shaderClass); #if 1 setupFlatWaterShader(); #else //DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Texture(0,setting->waterTexture); - DX8Wrapper::Set_Texture(1,setting->waterTexture); + Renderer::Set_Texture(0,setting->waterTexture); + Renderer::Set_Texture(1,setting->waterTexture); - DX8Wrapper::Set_Light(0,*m_meshLight); - DX8Wrapper::Set_Light(1,nullptr); - DX8Wrapper::Set_Light(2,nullptr); - DX8Wrapper::Set_Light(3,nullptr); + Renderer::Set_Light(0,*m_meshLight); + Renderer::Clear_Light(1); + Renderer::Clear_Light(2); + Renderer::Clear_Light(3); /* DX8Wrapper::Set_DX8_Render_State(D3DRS_AMBIENT,0); //turn off scene ambient DX8Wrapper::Set_DX8_Render_State(D3DRS_SPECULARENABLE,TRUE); DX8Wrapper::Set_DX8_Render_State(D3DRS_LOCALVIEWER,TRUE); */ - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices #endif @@ -2429,8 +2429,8 @@ void WaterRenderObjClass::renderWaterMesh() m_vertexBufferD3DOffset += mx*my; //advance past vertices already in buffer - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Set_Texture(1,nullptr); + Renderer::Set_Texture(0,nullptr); + Renderer::Set_Texture(1,nullptr); ShaderClass::Invalidate(); m_shaderClass.Set_Cull_Mode(oldCullMode); //water should be visible from both sides @@ -2699,7 +2699,7 @@ Real WaterRenderObjClass::getWaterHeight(Real x, Real y) //------------------------------------------------------------------------------------------------- void WaterRenderObjClass::drawRiverWater(PolygonTrigger *pTrig) { - DX8Wrapper::Invalidate_Cached_Render_States(); ///@todo: Figure out why rivers don't draw without reset of all states. + Renderer::Invalidate_Cached_Render_States(); ///@todo: Figure out why rivers don't draw without reset of all states. Int rectangleCount = pTrig->getNumPoints()/2; rectangleCount--; @@ -2893,7 +2893,7 @@ void WaterRenderObjClass::drawRiverWater(PolygonTrigger *pTrig) Renderer::Set_Transform(RenderTransform_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 + Renderer::Set_Texture(0,m_riverTexture); //set to blue setupJbaWaterShader(); @@ -2931,20 +2931,20 @@ void WaterRenderObjClass::drawRiverWater(PolygonTrigger *pTrig) void WaterRenderObjClass::setupFlatWaterShader() { - DX8Wrapper::Set_Texture(0,m_riverTexture); + Renderer::Set_Texture(0,m_riverTexture); if (!TheWaterTransparency->m_additiveBlend) - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader); + Renderer::Set_Shader(ShaderClass::_PresetAlphaShader); else - DX8Wrapper::Set_Shader(ShaderClass::_PresetAdditiveShader); + Renderer::Set_Shader(ShaderClass::_PresetAdditiveShader); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); m_riverTexture->Get_Filter().Set_Mag_Filter(TextureFilterClass::FILTER_TYPE_BEST); m_riverTexture->Get_Filter().Set_Min_Filter(TextureFilterClass::FILTER_TYPE_BEST); m_riverTexture->Get_Filter().Set_Mip_Mapping(TextureFilterClass::FILTER_TYPE_BEST); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices //Setup shroud to render in same pass as water if (m_trapezoidWaterPixelShader) @@ -3369,12 +3369,12 @@ void WaterRenderObjClass::renderSkyBody(Matrix3D *mat) V3=-vRight-vUp; VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Set_Shader(ShaderClass::/*_PresetAdditiveShader*//*_PresetOpaqueShader*/_PresetAlphaShader); + Renderer::Set_Shader(ShaderClass::/*_PresetAdditiveShader*//*_PresetOpaqueShader*/_PresetAlphaShader); // DX8Wrapper::Set_Texture(0,setting->skyBodyTexture); - DX8Wrapper::Set_Texture(0,m_alphaClippingTexture); + Renderer::Set_Texture(0,m_alphaClippingTexture); //draw an infinite sky plane DynamicVBAccessClass vb_access(BUFFER_TYPE_DYNAMIC_DX8,4); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWaterTracks.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWaterTracks.cpp index 8363e0893ed..41e5ffa5370 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWaterTracks.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWaterTracks.cpp @@ -903,13 +903,13 @@ Try improving the fit to vertical surfaces like cliffs. Matrix3D tm(1); ///set to identity Renderer::Set_Transform(RenderTransform_World,tm); //position the water surface - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::Set_Vertex_Buffer(m_vertexBuffer); DX8Wrapper::Set_DX8_Render_State(D3DRS_ZBIAS,8); //Force apply of render states so we can override them. - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); if (TheTerrainRenderObject->getShroud()) { @@ -934,7 +934,7 @@ Try improving the fit to vertical surfaces like cliffs. while( mod ) { if (LastTextureType != mod->m_type) - DX8Wrapper::Set_Texture(0,mod->m_stageZeroTexture); + Renderer::Set_Texture(0,mod->m_stageZeroTexture); Int vertsRendered=mod->render(m_vertexBuffer,m_batchStart); @@ -1323,7 +1323,7 @@ void TestWaterUpdate() Real ydiff=terrainPointEnd.y - terrainPointStart.y; if (sqrt (xdiff * xdiff + ydiff * ydiff) <= waveTypeInfo[currentWaveType].m_finalWidth) { TheDisplay->drawLine(mouseAnchor.x, mouseAnchor.y, screenPoint.x, screenPoint.y,1,0xffccccff); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); ShaderClass::Invalidate(); } diff --git a/Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.cpp b/Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.cpp index 99497bf2a2e..4c4412f5675 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.cpp @@ -179,6 +179,26 @@ void Renderer::Invalidate_Cached_Render_States() DX8Wrapper::Invalidate_Cached_Render_States(); } +void Renderer::Set_Shader(const ShaderClass & shader) +{ + DX8Wrapper::Set_Shader(shader); +} + +void Renderer::Set_Material(const VertexMaterialClass * material) +{ + DX8Wrapper::Set_Material(material); +} + +void Renderer::Set_Texture(unsigned stage, TextureBaseClass * texture) +{ + DX8Wrapper::Set_Texture(stage, texture); +} + +void Renderer::Apply_Render_State_Changes() +{ + DX8Wrapper::Apply_Render_State_Changes(); +} + void Renderer::Set_Transform(RenderTransform transform, const Matrix4x4 & m) { DX8Wrapper::Set_Transform(To_D3D_Transform(transform), m); @@ -218,3 +238,18 @@ void Renderer::Set_Light_Environment(LightEnvironmentClass * light_env) { DX8Wrapper::Set_Light_Environment(light_env); } + +void Renderer::Set_Light(unsigned index, const LightClass & light) +{ + DX8Wrapper::Set_Light(index, light); +} + +void Renderer::Clear_Light(unsigned index) +{ + DX8Wrapper::Set_Light(index, nullptr); +} + +void Renderer::Set_Fog(bool enable, const Vector3 & color, float start, float end) +{ + DX8Wrapper::Set_Fog(enable, color, start, end); +} diff --git a/Core/Libraries/Source/WWVegas/WW3D2/Renderer.h b/Core/Libraries/Source/WWVegas/WW3D2/Renderer.h index f81a2b48d74..15eda13f2a3 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/Renderer.h +++ b/Core/Libraries/Source/WWVegas/WW3D2/Renderer.h @@ -28,10 +28,14 @@ // Forward declarations keep this header includable without pulling in the full // WW3D2 header graph. All W3D classes below are passed by pointer or reference. +class LightClass; class LightEnvironmentClass; class Matrix3D; class Matrix4x4; +class ShaderClass; +class TextureBaseClass; class Vector3; +class VertexMaterialClass; struct RenderViewport { @@ -84,6 +88,11 @@ class Renderer static void Set_Viewport(const RenderViewport & viewport); static void Invalidate_Cached_Render_States(); + static void Set_Shader(const ShaderClass & shader); + static void Set_Material(const VertexMaterialClass * material); + static void Set_Texture(unsigned stage, TextureBaseClass * texture); + static void Apply_Render_State_Changes(); + static void Set_Transform(RenderTransform transform, const Matrix4x4 & m); static void Set_Transform(RenderTransform transform, const Matrix3D & m); static void Get_Transform(RenderTransform transform, Matrix4x4 & m); @@ -93,4 +102,7 @@ class Renderer static void Set_Ambient(const Vector3 & color); static void Set_Light_Environment(LightEnvironmentClass * light_env); + static void Set_Light(unsigned index, const LightClass & light); + static void Clear_Light(unsigned index); + static void Set_Fog(bool enable, const Vector3 & color, float start, float end); }; diff --git a/Core/Libraries/Source/WWVegas/WW3D2/dx8renderer.cpp b/Core/Libraries/Source/WWVegas/WW3D2/dx8renderer.cpp index a1a6b6a1056..38fff92e20e 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/dx8renderer.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/dx8renderer.cpp @@ -1687,7 +1687,7 @@ void DX8TextureCategoryClass::Render() for (unsigned i=0;iGet_Texture_Name().str() : "null")); - DX8Wrapper::Set_Texture(i,Peek_Texture(i)); + Renderer::Set_Texture(i,Peek_Texture(i)); } #ifdef WWDEBUG @@ -1696,7 +1696,7 @@ void DX8TextureCategoryClass::Render() SNAPSHOT_SAY(("Set_Material(%s)",Peek_Material() ? Peek_Material()->Get_Name() : "null")); VertexMaterialClass *vmaterial=(VertexMaterialClass *)Peek_Material(); //ugly cast from const but we'll restore it after changes so okay. -MW - DX8Wrapper::Set_Material(vmaterial); + Renderer::Set_Material(vmaterial); SNAPSHOT_SAY(("Set_Shader(%x)",Get_Shader().Get_Bits())); ShaderClass theShader = Get_Shader(); @@ -1709,16 +1709,16 @@ void DX8TextureCategoryClass::Render() //this will cause sorting errors on this mesh. //theAlphaShader.Set_Depth_Mask(ShaderClass::DEPTH_WRITE_DISABLE); - DX8Wrapper::Set_Shader(theShader); + Renderer::Set_Shader(theShader); if (m_gForceMultiply && theShader.Get_Dst_Blend_Func() == ShaderClass::DSTBLEND_ZERO) { theShader.Set_Dst_Blend_Func(ShaderClass::DSTBLEND_SRC_COLOR); theShader.Set_Src_Blend_Func(ShaderClass::SRCBLEND_ZERO); - DX8Wrapper::Set_Shader(theShader); + Renderer::Set_Shader(theShader); //VertexMaterialClass *material = VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); //DX8Wrapper::Set_Material(material); //REF_PTR_RELEASE(material); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::Set_DX8_Render_State(D3DRS_SRCBLEND,D3DBLEND_DESTCOLOR); } @@ -1805,7 +1805,7 @@ void DX8TextureCategoryClass::Render() LightEnvironmentClass * lenv = mesh->Get_Lighting_Environment(); if (lenv != nullptr) { SNAPSHOT_SAY(("LightEnvironment, lights: %d",lenv->Get_Light_Count())); - DX8Wrapper::Set_Light_Environment(lenv); + Renderer::Set_Light_Environment(lenv); } else { SNAPSHOT_SAY(("No light environment")); @@ -1906,8 +1906,8 @@ void DX8TextureCategoryClass::Render() theAlphaShader = theShader; //keep using additive blending. } vmaterial->Set_Opacity(mesh->Get_Alpha_Override()); - DX8Wrapper::Set_Shader(theAlphaShader); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Set_Shader(theAlphaShader); + Renderer::Apply_Render_State_Changes(); DX8Wrapper::Set_DX8_Render_State(D3DRS_ALPHAREF,(int)((float)0x60*mesh->Get_Alpha_Override())); renderer->Render(mesh->Get_Base_Vertex_Offset()); @@ -1915,7 +1915,7 @@ void DX8TextureCategoryClass::Render() DX8Wrapper::Set_DX8_Render_State(D3DRS_ALPHAREF,0x60); vmaterial->Set_Opacity(oldOpacity); //restore previous value vmaterial->Set_Diffuse(oldDiffuse.X,oldDiffuse.Y,oldDiffuse.Z); - DX8Wrapper::Set_Shader(theShader); //restore previous value + Renderer::Set_Shader(theShader); //restore previous value } else renderer->Render(mesh->Get_Base_Vertex_Offset()); @@ -1924,8 +1924,8 @@ void DX8TextureCategoryClass::Render() { oldMapper->Set_LastUsedSyncTime(oldUVOffsetSyncTime); oldMapper->Set_Current_UV_Offset(oldUVOffset); } - DX8Wrapper::Set_Material(nullptr); //force a reset of vertex material since we secretly changed opacity - DX8Wrapper::Set_Material(vmaterial); //restore previous material. + Renderer::Set_Material(nullptr); //force a reset of vertex material since we secretly changed opacity + Renderer::Set_Material(vmaterial); //restore previous material. } else renderer->Render(mesh->Get_Base_Vertex_Offset()); diff --git a/Core/Libraries/Source/WWVegas/WW3D2/dynamesh.cpp b/Core/Libraries/Source/WWVegas/WW3D2/dynamesh.cpp index 625d8dfd283..b1b077869c0 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/dynamesh.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/dynamesh.cpp @@ -304,26 +304,26 @@ void DynamicMeshModel::Render(RenderInfoClass & rinfo) // Set the DX8 state to the first triangle's state if (texture_array0) { - DX8Wrapper::Set_Texture(0,texture_array0[0]); + Renderer::Set_Texture(0,texture_array0[0]); } else { - DX8Wrapper::Set_Texture(0,MatDesc->Peek_Single_Texture(pass, 0)); + Renderer::Set_Texture(0,MatDesc->Peek_Single_Texture(pass, 0)); } if (texture_array1) { - DX8Wrapper::Set_Texture(1,texture_array1[0]); + Renderer::Set_Texture(1,texture_array1[0]); } else { - DX8Wrapper::Set_Texture(1,MatDesc->Peek_Single_Texture(pass, 1)); + Renderer::Set_Texture(1,MatDesc->Peek_Single_Texture(pass, 1)); } if (material_array) { - DX8Wrapper::Set_Material(material_array[tris[0].I]); + Renderer::Set_Material(material_array[tris[0].I]); } else { - DX8Wrapper::Set_Material(MatDesc->Peek_Single_Material(pass)); + Renderer::Set_Material(MatDesc->Peek_Single_Material(pass)); } if (shader_array) { - DX8Wrapper::Set_Shader(shader_array[0]); + Renderer::Set_Shader(shader_array[0]); } else { - DX8Wrapper::Set_Shader(MatDesc->Get_Single_Shader(pass)); + Renderer::Set_Shader(MatDesc->Get_Single_Shader(pass)); } SphereClass sphere; @@ -384,10 +384,10 @@ void DynamicMeshModel::Render(RenderInfoClass & rinfo) start_tri_idx = next_tri_idx; min_vert_idx = DynamicMeshVNum - 1; max_vert_idx = 0; - if (texture_changed) DX8Wrapper::Set_Texture(0,texture_array0[next_tri_idx]); - if (texture1_changed) DX8Wrapper::Set_Texture(1,texture_array1[next_tri_idx]); - if (material_changed) DX8Wrapper::Set_Material(material_array[tris[next_tri_idx].I]); - if (shader_changed) DX8Wrapper::Set_Shader(shader_array[next_tri_idx]); + if (texture_changed) Renderer::Set_Texture(0,texture_array0[next_tri_idx]); + if (texture1_changed) Renderer::Set_Texture(1,texture_array1[next_tri_idx]); + if (material_changed) Renderer::Set_Material(material_array[tris[next_tri_idx].I]); + if (shader_changed) Renderer::Set_Shader(shader_array[next_tri_idx]); } cur_tri_idx = next_tri_idx; diff --git a/Core/Libraries/Source/WWVegas/WW3D2/line3d.cpp b/Core/Libraries/Source/WWVegas/WW3D2/line3d.cpp index 1beee57313d..ff28fb210d7 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/line3d.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/line3d.cpp @@ -268,10 +268,10 @@ void Line3DClass::Render(RenderInfoClass & rinfo) return; } - DX8Wrapper::Set_Shader(Shader); - DX8Wrapper::Set_Texture(0,nullptr); + Renderer::Set_Shader(Shader); + Renderer::Set_Texture(0,nullptr); VertexMaterialClass *vm=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vm); + Renderer::Set_Material(vm); REF_PTR_RELEASE(vm); Renderer::Set_Transform(RenderTransform_World,Transform); diff --git a/Core/Libraries/Source/WWVegas/WW3D2/matpass.cpp b/Core/Libraries/Source/WWVegas/WW3D2/matpass.cpp index f0a6dbb72b9..df8e560e9a5 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/matpass.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/matpass.cpp @@ -52,6 +52,7 @@ #include "texture.h" #include "statistics.h" #include "dx8wrapper.h" +#include "Renderer.h" bool MaterialPassClass::EnablePerPolygonCulling = true; @@ -117,11 +118,11 @@ MaterialPassClass::~MaterialPassClass() *=============================================================================================*/ void MaterialPassClass::Install_Materials() const { - DX8Wrapper::Set_Material(Peek_Material()); - DX8Wrapper::Set_Shader(Peek_Shader()); + Renderer::Set_Material(Peek_Material()); + Renderer::Set_Shader(Peek_Shader()); for (int i=0;iGet_Max_Textures_Per_Pass();++i) { - DX8Wrapper::Set_Texture(i,Peek_Texture(i)); + Renderer::Set_Texture(i,Peek_Texture(i)); } } diff --git a/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp b/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp index c87714e25b5..c086647bd0c 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp @@ -923,9 +923,9 @@ void PointGroupClass::Render(RenderInfoClass &rinfo) Renderer::Set_Transform(RenderTransform_World,identity); Renderer::Set_Transform(RenderTransform_View,identity); - DX8Wrapper::Set_Material(PointMaterial); - DX8Wrapper::Set_Shader(Shader); - DX8Wrapper::Set_Texture(0,Texture); + Renderer::Set_Material(PointMaterial); + Renderer::Set_Shader(Shader); + Renderer::Set_Texture(0,Texture); // Enable sorting if the primitives are translucent and alpha testing is not enabled. // TheSuperHackers @bugfix stephanmeesters 30/06/2026 However, do not apply sorting to ground-aligned particles. @@ -1853,9 +1853,9 @@ void PointGroupClass::RenderVolumeParticle(RenderInfoClass &rinfo, unsigned int Renderer::Set_Transform(RenderTransform_World,identity); Renderer::Set_Transform(RenderTransform_View,identity); - DX8Wrapper::Set_Material(PointMaterial); - DX8Wrapper::Set_Shader(Shader); - DX8Wrapper::Set_Texture(0,Texture); + Renderer::Set_Material(PointMaterial); + Renderer::Set_Shader(Shader); + Renderer::Set_Texture(0,Texture); // Enable sorting if the primitives are translucent and alpha testing is not enabled. // TheSuperHackers @info Volumetric particles, both billboarded and ground-aligned, must have sorting enabled to diff --git a/Core/Libraries/Source/WWVegas/WW3D2/ringobj.cpp b/Core/Libraries/Source/WWVegas/WW3D2/ringobj.cpp index d35438a6a88..cc4353deb15 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/ringobj.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/ringobj.cpp @@ -532,9 +532,9 @@ void RingRenderObjClass::render_ring(RenderInfoClass & rinfo,const Vector3 & cen } else { RingShader.Set_Texturing (ShaderClass::TEXTURING_DISABLE); } - DX8Wrapper::Set_Shader(RingShader); - DX8Wrapper::Set_Texture(0,RingTexture); - DX8Wrapper::Set_Material(RingMaterial); + Renderer::Set_Shader(RingShader); + Renderer::Set_Texture(0,RingTexture); + Renderer::Set_Material(RingMaterial); // Enable sorting if the primitive is translucent, alpha testing is not enabled, and sorting is enabled globally. const bool sort = (RingShader.Get_Dst_Blend_Func() != ShaderClass::DSTBLEND_ZERO) && (RingShader.Get_Alpha_Test() == ShaderClass::ALPHATEST_DISABLE) && (WW3D::Is_Sorting_Enabled()); diff --git a/Core/Libraries/Source/WWVegas/WW3D2/seglinerenderer.cpp b/Core/Libraries/Source/WWVegas/WW3D2/seglinerenderer.cpp index 6c9d8ba4c25..75368e99dd2 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/seglinerenderer.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/seglinerenderer.cpp @@ -1178,9 +1178,9 @@ void SegLineRendererClass::Render DX8Wrapper::Set_Index_Buffer(ib_access,0); DX8Wrapper::Set_Vertex_Buffer(Verts); - DX8Wrapper::Set_Material(mat); - DX8Wrapper::Set_Texture(0,Texture); - DX8Wrapper::Set_Shader(shader); + Renderer::Set_Material(mat); + Renderer::Set_Texture(0,Texture); + Renderer::Set_Shader(shader); if (sorting) { SortingRendererClass::Insert_Triangles(obj_sphere,0,tidx,0,vnum); diff --git a/Core/Libraries/Source/WWVegas/WW3D2/sortingrenderer.cpp b/Core/Libraries/Source/WWVegas/WW3D2/sortingrenderer.cpp index dcca23d382c..b88d1ef0a5d 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/sortingrenderer.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/sortingrenderer.cpp @@ -365,13 +365,13 @@ void SortingRendererClass::Insert_To_Sorting_Pool(SortingNodeStruct* state) static void Apply_Render_State(RenderStateStruct& render_state) { - DX8Wrapper::Set_Shader(render_state.shader); + Renderer::Set_Shader(render_state.shader); - DX8Wrapper::Set_Material(render_state.material); + Renderer::Set_Material(render_state.material); for (int i=0;iGet_Max_Textures_Per_Pass();++i) { - DX8Wrapper::Set_Texture(i,render_state.Textures[i]); + Renderer::Set_Texture(i,render_state.Textures[i]); } DX8Wrapper::_Set_DX8_Transform(D3DTS_WORLD,render_state.world); @@ -545,7 +545,7 @@ void SortingRendererClass::Flush_Sorting_Pool() DX8Wrapper::Set_Index_Buffer(dyn_ib_access,0); // Override with this buffer (do something to prevent need for this!) DX8Wrapper::Set_Vertex_Buffer(dyn_vb_access); // Override with this buffer (do something to prevent need for this!) - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); unsigned count_to_render=1; unsigned start_index=0; diff --git a/Core/Libraries/Source/WWVegas/WW3D2/sphereobj.cpp b/Core/Libraries/Source/WWVegas/WW3D2/sphereobj.cpp index 8fbc2e15bf3..577c89b5689 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/sphereobj.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/sphereobj.cpp @@ -469,9 +469,9 @@ void SphereRenderObjClass::render_sphere() } else { SphereShader.Set_Texturing (ShaderClass::TEXTURING_DISABLE); } - DX8Wrapper::Set_Shader(SphereShader); - DX8Wrapper::Set_Texture(0,SphereTexture); - DX8Wrapper::Set_Material(SphereMaterial); + Renderer::Set_Shader(SphereShader); + Renderer::Set_Texture(0,SphereTexture); + Renderer::Set_Material(SphereMaterial); // Enable sorting if the primitive is translucent, alpha testing is not enabled, and sorting is enabled globally. const bool sort = (SphereShader.Get_Dst_Blend_Func() != ShaderClass::DSTBLEND_ZERO) && (SphereShader.Get_Alpha_Test() == ShaderClass::ALPHATEST_DISABLE) && (WW3D::Is_Sorting_Enabled()); diff --git a/Core/Libraries/Source/WWVegas/WW3D2/streakRender.cpp b/Core/Libraries/Source/WWVegas/WW3D2/streakRender.cpp index 42e8544d862..85c26cecb9e 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/streakRender.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/streakRender.cpp @@ -1305,7 +1305,7 @@ void StreakRendererClass::RenderStreak VertexMaterialClass *mat; mat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(mat); + Renderer::Set_Material(mat); REF_PTR_RELEASE(mat); // If Texture is non-null enable texturing in shader - otherwise disable. @@ -1370,8 +1370,8 @@ void StreakRendererClass::RenderStreak DX8Wrapper::Set_Index_Buffer(ib_access,0); DX8Wrapper::Set_Vertex_Buffer(Verts); - DX8Wrapper::Set_Texture(0,Texture); - DX8Wrapper::Set_Shader(shader); + Renderer::Set_Texture(0,Texture); + Renderer::Set_Shader(shader); if (sorting) { diff --git a/Core/Tools/W3DView/ScreenCursor.cpp b/Core/Tools/W3DView/ScreenCursor.cpp index 8c358221e59..15218aa171a 100644 --- a/Core/Tools/W3DView/ScreenCursor.cpp +++ b/Core/Tools/W3DView/ScreenCursor.cpp @@ -41,6 +41,7 @@ #include "WW3D2/rinfo.h" #include "WW3D2/texture.h" #include "WW3D2/dx8wrapper.h" +#include "WW3D2/Renderer.h" #include "WW3D2/dx8vertexbuffer.h" #include "WW3D2/dx8indexbuffer.h" #include "WW3D2/sortingrenderer.h" @@ -288,9 +289,9 @@ ScreenCursorClass::Render (RenderInfoClass &rinfo) /* ** Apply the shader and material */ - DX8Wrapper::Set_Material(m_pVertMaterial.Peek()); - DX8Wrapper::Set_Shader(ShaderClass::_PresetATestBlend2DShader); - DX8Wrapper::Set_Texture(0,m_pTexture.Peek()); + Renderer::Set_Material(m_pVertMaterial.Peek()); + Renderer::Set_Shader(ShaderClass::_PresetATestBlend2DShader); + Renderer::Set_Texture(0,m_pTexture.Peek()); DX8Wrapper::Set_Vertex_Buffer(vbaccess); DX8Wrapper::Set_Index_Buffer(ibaccess,0); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp index 8d7f7350f28..3a39849d933 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp @@ -634,7 +634,7 @@ static void RenderVBTile(TextureClass *text, Real ox, Real oy, Real ou, Real ov, DX8Wrapper::Set_Index_Buffer(ib_access,0); DX8Wrapper::Set_Vertex_Buffer(vb_access); - DX8Wrapper::Set_Texture(0, text); + Renderer::Set_Texture(0, text); DX8Wrapper::Set_DX8_Render_State(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); DX8Wrapper::Set_DX8_Render_State(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA ); DX8Wrapper::Set_DX8_Render_State(D3DRS_ALPHABLENDENABLE, TRUE ); @@ -655,9 +655,9 @@ void TestBlendRender(RenderInfoClass & rinfo) } VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); Matrix3D tm(1); //identity Renderer::Set_Transform(RenderTransform_World,tm); @@ -695,21 +695,21 @@ void W3DProjectedShadowManager::flushDecals(W3DShadowTexture *texture, ShadowTyp if (!m_pDev) return; //no D3D Device to render VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Set_Texture(0,texture->getTexture()); + Renderer::Set_Texture(0,texture->getTexture()); // DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); //good for debugging, draws without alpha switch (type) { case SHADOW_DECAL: - DX8Wrapper::Set_Shader(ShaderClass::_PresetMultiplicativeShader); + Renderer::Set_Shader(ShaderClass::_PresetMultiplicativeShader); break; case SHADOW_ALPHA_DECAL: - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlphaShader); + Renderer::Set_Shader(ShaderClass::_PresetAlphaShader); break; case SHADOW_ADDITIVE_DECAL: - DX8Wrapper::Set_Shader(ShaderClass::_PresetAdditiveShader); + Renderer::Set_Shader(ShaderClass::_PresetAdditiveShader); break; } @@ -717,7 +717,7 @@ void W3DProjectedShadowManager::flushDecals(W3DShadowTexture *texture, ShadowTyp // DX8Wrapper::Set_DX8_Render_State(D3DRS_ALPHAFUNC,D3DCMP_GREATEREQUAL); //_PresetAlphaSpriteShader - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices //Alpha Blended Shadows // m_pDev->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); @@ -1400,7 +1400,7 @@ Int W3DProjectedShadowManager::renderShadows(RenderInfoClass & rinfo) //terrain is always visible and affected by all shadows so must render projector->Peek_Material_Pass()->Install_Materials(); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices if (renderProjectedTerrainShadow(shadow, aaBox)) projectionCount++; projector->Peek_Material_Pass()->UnInstall_Materials(); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DVolumetricShadow.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DVolumetricShadow.cpp index 302b7f54fe3..d5a2ac0c5d7 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DVolumetricShadow.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DVolumetricShadow.cpp @@ -3488,13 +3488,13 @@ void W3DVolumetricShadowManager::renderShadows( Bool forceStencilFill ) //Set W3D to some known state VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Texture(0,nullptr); //turn off textures - DX8Wrapper::Set_Texture(1,nullptr); //turn off textures - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Texture(0,nullptr); //turn off textures + Renderer::Set_Texture(1,nullptr); //turn off textures + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices // turn off z writing m_pDev->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL); @@ -3666,7 +3666,7 @@ void W3DVolumetricShadowManager::renderShadows( Bool forceStencilFill ) m_pDev->SetRenderState(D3DRS_ALPHABLENDENABLE , FALSE); m_pDev->SetRenderState(D3DRS_LIGHTING, FALSE); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } else if (forceStencilFill) @@ -3676,15 +3676,15 @@ void W3DVolumetricShadowManager::renderShadows( Bool forceStencilFill ) //Set W3D to some known state VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Texture(0,nullptr); + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices renderStencilShadows(); - DX8Wrapper::Invalidate_Cached_Render_States(); + Renderer::Invalidate_Cached_Render_States(); } } diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBibBuffer.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBibBuffer.cpp index 5f47d7362d7..27d5c25d381 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBibBuffer.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBibBuffer.cpp @@ -57,6 +57,7 @@ #include "W3DDevice/GameClient/W3DDynamicLight.h" #include "WW3D2/camera.h" #include "WW3D2/dx8wrapper.h" +#include "WW3D2/Renderer.h" #include "WW3D2/dx8renderer.h" #include "WW3D2/mesh.h" #include "WW3D2/meshmdl.h" @@ -426,13 +427,13 @@ void W3DBibBuffer::renderBibs() // Setup the vertex buffer, shader & texture. DX8Wrapper::Set_Index_Buffer(m_indexBib,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBib); - DX8Wrapper::Set_Shader(detailAlphaShader); + Renderer::Set_Shader(detailAlphaShader); if (m_curNumNormalBibIndices) { - DX8Wrapper::Set_Texture(0,m_bibTexture); + Renderer::Set_Texture(0,m_bibTexture); DX8Wrapper::Draw_Triangles( 0, m_curNumNormalBibIndices/3, 0, m_curNumNormalBibVertex); } if (m_curNumBibIndices>m_curNumNormalBibIndices) { - DX8Wrapper::Set_Texture(0,m_highlightBibTexture); + Renderer::Set_Texture(0,m_highlightBibTexture); DX8Wrapper::Draw_Triangles( m_curNumNormalBibIndices, (m_curNumBibIndices-m_curNumNormalBibIndices)/3, m_curNumNormalBibVertex, m_curNumBibVertices-m_curNumNormalBibVertex); } diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp index 7d1bdd79387..bd786de3c51 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp @@ -66,6 +66,7 @@ #include "W3DDevice/GameClient/W3DShroud.h" #include "WW3D2/camera.h" #include "WW3D2/dx8wrapper.h" +#include "WW3D2/Renderer.h" #include "WW3D2/dx8renderer.h" #include "WW3D2/mesh.h" #include "WW3D2/meshmdl.h" @@ -131,7 +132,7 @@ are already set. */ void W3DBridge::renderBridge(Bool wireframe) { if (m_visible && m_numPolygons && m_numVertex) { - if (!wireframe) DX8Wrapper::Set_Texture(0,m_bridgeTexture); + if (!wireframe) Renderer::Set_Texture(0,m_bridgeTexture); // Draw all the bridges. DX8Wrapper::Draw_Triangles( m_firstIndex, m_numPolygons, m_firstVertex, m_numVertex); } @@ -1160,16 +1161,16 @@ void W3DBridgeBuffer::drawBridges(CameraClass * camera, Bool wireframe, TextureC return; } - DX8Wrapper::Set_Material(m_vertexMaterial); + Renderer::Set_Material(m_vertexMaterial); // Setup the vertex buffer, shader & texture. DX8Wrapper::Set_Index_Buffer(m_indexBridge,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBridge); - DX8Wrapper::Set_Shader(detailAlphaShader); + Renderer::Set_Shader(detailAlphaShader); #ifdef RTS_DEBUG //DX8Wrapper::Set_Shader(detailShader); // shows alpha clipping. #endif - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); if (!wireframe && cloudTexture) { @@ -1192,12 +1193,12 @@ void W3DBridgeBuffer::drawBridges(CameraClass * camera, Bool wireframe, TextureC if (!wireframe && TheTerrainRenderObject->getShroud()) { //Reset to a known shader. - DX8Wrapper::Invalidate_Cached_Render_States(); - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Set_Material(m_vertexMaterial); + Renderer::Invalidate_Cached_Render_States(); + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Set_Material(m_vertexMaterial); DX8Wrapper::Set_Index_Buffer(m_indexBridge,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBridge); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); //Apply custom shroud projection shader. W3DShaderManager::setTexture(0,TheTerrainRenderObject->getShroud()->getShroudTexture()); W3DShaderManager::setShader(W3DShaderManager::ST_SHROUD_TEXTURE, 0); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp index 1abc84aae9c..cf2e0009fe9 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp @@ -241,9 +241,9 @@ void DebugHintObject::Render(RenderInfoClass & rinfo) SphereClass bounds(Vector3(m_myLoc.x, m_myLoc.y, m_myLoc.z), m_mySize); if (!rinfo.Camera.Cull_Sphere(bounds)) { - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); - DX8Wrapper::Set_Texture(0, nullptr); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); + Renderer::Set_Texture(0, nullptr); DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBufferTile); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DRoadBuffer.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DRoadBuffer.cpp index dd9bc793968..f03afe36e3f 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DRoadBuffer.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DRoadBuffer.cpp @@ -63,6 +63,7 @@ #include "W3DDevice/GameClient/W3DShaderManager.h" #include "WW3D2/camera.h" #include "WW3D2/dx8wrapper.h" +#include "WW3D2/Renderer.h" #include "WW3D2/dx8renderer.h" #include "WW3D2/mesh.h" #include "WW3D2/meshmdl.h" @@ -3334,7 +3335,7 @@ void W3DRoadBuffer::drawRoads(CameraClass * camera, TextureClass *cloudTexture, if (m_roadTypes[i].getNumIndices() == 0) continue; if (wireframe) { m_roadTypes[i].applyTexture(); - DX8Wrapper::Set_Texture(0,nullptr); + Renderer::Set_Texture(0,nullptr); } else { m_roadTypes[i].applyTexture(); } @@ -3374,14 +3375,14 @@ void W3DRoadBuffer::drawRoads(CameraClass * camera, TextureClass *cloudTexture, loadLitRoadsInVertexAndIndexBuffers(pDynamicLightsIterator); if (this->m_curNumRoadIndices == 0) continue; if (wireframe) { - DX8Wrapper::Set_Texture(0,nullptr); + Renderer::Set_Texture(0,nullptr); } else { m_roadTypes[i].applyTexture(); if (cloudTexture) { - DX8Wrapper::Set_Texture(1,cloudTexture); + Renderer::Set_Texture(1,cloudTexture); } } - DX8Wrapper::Set_Shader(detailAlphaShader); + Renderer::Set_Shader(detailAlphaShader); //Draw all the roads. DX8Wrapper::Draw_Triangles( 0, m_curNumRoadIndices/3, 0, m_curNumRoadVertices); } diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DScene.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DScene.cpp index 53de7a8bb57..0d7dd3f2bb5 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DScene.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DScene.cpp @@ -972,7 +972,7 @@ void RTS3DScene::updatePlayerColorPasses() void RTS3DScene::Render(RenderInfoClass & rinfo) { //USE_PERF_TIMER(NonTerrainRender) - DX8Wrapper::Set_Fog(FogEnabled, FogColor, FogStart, FogEnd); + Renderer::Set_Fog(FogEnabled, FogColor, FogStart, FogEnd); //Override the behind building selection if it's not available on current hardware (needs stencil). TheWritableGlobalData->m_enableBehindBuildingMarkers = TheWritableGlobalData->m_enableBehindBuildingMarkers && Renderer::Has_Stencil(); @@ -1263,11 +1263,11 @@ void renderStenciledPlayerColor( UnsignedInt color, UnsignedInt stencilRef, Bool v[2].color = color; v[3].color = color; - DX8Wrapper::Set_Shader(PlayerColorShader); + Renderer::Set_Shader(PlayerColorShader); VertexMaterialClass *vmat=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vmat); + Renderer::Set_Material(vmat); REF_PTR_RELEASE(vmat); - DX8Wrapper::Apply_Render_State_Changes(); //force update all render states + Renderer::Apply_Render_State_Changes(); //force update all render states LPDIRECT3DDEVICE8 m_pDev=DX8Wrapper::_Get_D3D_Device8(); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DStatusCircle.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DStatusCircle.cpp index ad64200679c..e2838260aa1 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DStatusCircle.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DStatusCircle.cpp @@ -318,9 +318,9 @@ void W3DStatusCircle::Render(RenderInfoClass & rinfo) updateCircleVB(); } //Apply the shader and material - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); - DX8Wrapper::Set_Texture(0, nullptr); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); + Renderer::Set_Texture(0, nullptr); DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBufferCircle); setIndex = true; @@ -341,9 +341,9 @@ void W3DStatusCircle::Render(RenderInfoClass & rinfo) } if (!setIndex) { - DX8Wrapper::Set_Material(m_vertexMaterialClass); + Renderer::Set_Material(m_vertexMaterialClass); DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); - DX8Wrapper::Set_Texture(0, nullptr); + Renderer::Set_Texture(0, nullptr); } tm.Make_Identity(); @@ -352,9 +352,9 @@ void W3DStatusCircle::Render(RenderInfoClass & rinfo) Int diffuse = (0xff<<24)|(clr<<16)|(clr<<8)|clr; // b g<<8 r<<16 a<<24. updateScreenVB(diffuse); Renderer::Set_Transform(RenderTransform_World,tm); - DX8Wrapper::Set_Shader(ShaderClass(SC_ADD)); + Renderer::Set_Shader(ShaderClass(SC_ADD)); DX8Wrapper::Set_Vertex_Buffer(m_vertexBufferScreen); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); switch (fade) { default: case ScriptEngine::FADE_ADD: diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/boxrobj.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/boxrobj.cpp index ef33ba4be41..0e04df18475 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/boxrobj.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/boxrobj.cpp @@ -505,9 +505,9 @@ void BoxRenderObjClass::render_box(RenderInfoClass & rinfo,const Vector3 & cente /* ** Apply the shader and material */ - DX8Wrapper::Set_Material(_BoxMaterial); - DX8Wrapper::Set_Shader(_BoxShader); - DX8Wrapper::Set_Texture(0,nullptr); + Renderer::Set_Material(_BoxMaterial); + Renderer::Set_Shader(_BoxShader); + Renderer::Set_Texture(0,nullptr); DX8Wrapper::Set_Index_Buffer(ibaccess,0); DX8Wrapper::Set_Vertex_Buffer(vbaccess); diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp index e8163cdc1ae..0df564993d2 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp @@ -1240,22 +1240,22 @@ void DazzleRenderObjClass::Render_Dazzle(CameraClass* camera) if (halo_poly_count) { DX8Wrapper::Set_Index_Buffer(ib_access,dazzle_vertex_count); - DX8Wrapper::Set_Shader(default_halo_shader); - DX8Wrapper::Set_Texture(0,types[type]->Get_Halo_Texture()); + Renderer::Set_Shader(default_halo_shader); + Renderer::Set_Texture(0,types[type]->Get_Halo_Texture()); DX8Wrapper::Draw_Triangles(0,halo_poly_count,0,vertex_count); } if (dazzle_poly_count) { DX8Wrapper::Set_Index_Buffer(ib_access,0); - DX8Wrapper::Set_Shader(default_dazzle_shader); - DX8Wrapper::Set_Texture(0,types[type]->Get_Dazzle_Texture()); + Renderer::Set_Shader(default_dazzle_shader); + Renderer::Set_Texture(0,types[type]->Get_Dazzle_Texture()); DX8Wrapper::Draw_Triangles(0,dazzle_poly_count,0,vertex_count); } if (lensflare_poly_count) { DX8Wrapper::Set_Index_Buffer(ib_access,dazzle_vertex_count+halo_vertex_count); - DX8Wrapper::Set_Shader(default_dazzle_shader); - DX8Wrapper::Set_Texture(0,lensflare->Get_Texture()); + Renderer::Set_Shader(default_dazzle_shader); + Renderer::Set_Texture(0,lensflare->Get_Texture()); DX8Wrapper::Draw_Triangles(0,lensflare_poly_count,0,vertex_count); } @@ -1467,7 +1467,7 @@ void DazzleLayerClass::Render(CameraClass* camera) camera->Apply(); - DX8Wrapper::Set_Material(nullptr); + Renderer::Set_Material(nullptr); for (unsigned type=0;typeGet_Array()); diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp index eb60894d322..9545580b3de 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/mesh.cpp @@ -828,7 +828,7 @@ void MeshClass::Render_Material_Pass(MaterialPassClass * pass,IndexBufferClass * Vector3 oldEmissive(-1,-1,-1); if (LightEnvironment != nullptr) { - DX8Wrapper::Set_Light_Environment(LightEnvironment); + Renderer::Set_Light_Environment(LightEnvironment); } if (Model->Get_Flag(MeshModelClass::SKIN)) { diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/render2d.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/render2d.cpp index e2f1d319d32..fb4ff755e34 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/render2d.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/render2d.cpp @@ -626,10 +626,10 @@ void Render2DClass::Render() vp.min_z = 0; vp.max_z = 1; Renderer::Set_Viewport(vp); - DX8Wrapper::Set_Texture(0,Texture); + Renderer::Set_Texture(0,Texture); VertexMaterialClass *vm=VertexMaterialClass::Get_Preset(VertexMaterialClass::PRELIT_DIFFUSE); - DX8Wrapper::Set_Material(vm); + Renderer::Set_Material(vm); REF_PTR_RELEASE(vm); Renderer::Set_World_Identity(); @@ -667,8 +667,8 @@ void Render2DClass::Render() if (IsGrayScale) { //special case added to draw grayscale non-alpha blended images. - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaqueShader); - DX8Wrapper::Apply_Render_State_Changes(); //force update of all regular W3D states. + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); + Renderer::Apply_Render_State_Changes(); //force update of all regular W3D states. if (DX8Wrapper::Get_Current_Caps()->Support_Dot3()) { //Override W3D states with customizations for grayscale @@ -695,7 +695,7 @@ void Render2DClass::Render() } } else - DX8Wrapper::Set_Shader(Shader); + Renderer::Set_Shader(Shader); DX8Wrapper::Draw_Triangles(0,Indices.Count()/3,0,Vertices.Count()); Renderer::Set_Transform(RenderTransform_View,view); diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/scene.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/scene.cpp index 3e091867147..1e7a5e4c535 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/scene.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/scene.cpp @@ -198,7 +198,7 @@ void SceneClass::Render(RenderInfoClass & rinfo) // Any stuff that needs to get done before anything else Pre_Render_Processing(rinfo); - DX8Wrapper::Set_Fog(FogEnabled, FogColor, FogStart, FogEnd); + Renderer::Set_Fog(FogEnabled, FogColor, FogStart, FogEnd); if (Get_Extra_Pass_Polygon_Mode()==EXTRA_PASS_DISABLE) { Customized_Render(rinfo); @@ -481,10 +481,10 @@ void SimpleSceneClass::Customized_Render(RenderInfoClass & rinfo) // derived classes should use light environment WWASSERT(rinfo.light_environment==nullptr); // Turn off lights in case we have none - DX8Wrapper::Set_Light(0,nullptr); - DX8Wrapper::Set_Light(1,nullptr); - DX8Wrapper::Set_Light(2,nullptr); - DX8Wrapper::Set_Light(3,nullptr); + Renderer::Clear_Light(0); + Renderer::Clear_Light(1); + Renderer::Clear_Light(2); + Renderer::Clear_Light(3); // (gth) WWShade only works with light environments. We need to upgrade LightEnvironment to // support real point lights, etc. It will likely just evolve into "the n most important" lights @@ -495,7 +495,7 @@ void SimpleSceneClass::Customized_Render(RenderInfoClass & rinfo) { if (count<4) { - DX8Wrapper::Set_Light(count,*(LightClass*)it.Peek_Obj()); + Renderer::Set_Light(count,*(LightClass*)it.Peek_Obj()); } else { // Simple scene only supports 4 global lights diff --git a/GeneralsMD/Code/Tools/WorldBuilder/src/DrawObject.cpp b/GeneralsMD/Code/Tools/WorldBuilder/src/DrawObject.cpp index 3ca07986d06..2e46cd0d6b7 100644 --- a/GeneralsMD/Code/Tools/WorldBuilder/src/DrawObject.cpp +++ b/GeneralsMD/Code/Tools/WorldBuilder/src/DrawObject.cpp @@ -2081,13 +2081,13 @@ if (_skip_drawobject_render) { m_lineRenderer->Enable_Texturing(FALSE); } - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); - DX8Wrapper::Set_Texture(0, nullptr); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); + Renderer::Set_Texture(0, nullptr); DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); Int count=0; Int i; bool linesToRender = false; @@ -2342,7 +2342,7 @@ if (pMapObj->isSelected()) { if (m_feedbackIndexCount>0) { DX8Wrapper::Set_Vertex_Buffer(m_vertexFeedback); DX8Wrapper::Set_Index_Buffer(m_indexFeedback,0); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::Draw_Triangles( 0, m_feedbackIndexCount/3, 0, m_feedbackVertexCount); DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBufferWater); @@ -2357,7 +2357,7 @@ if (pMapObj->isSelected()) { if (m_feedbackIndexCount>0) { DX8Wrapper::Set_Vertex_Buffer(m_vertexFeedback); DX8Wrapper::Set_Index_Buffer(m_indexFeedback,0); - DX8Wrapper::Set_Shader(SC_OPAQUE_Z); + Renderer::Set_Shader(SC_OPAQUE_Z); DX8Wrapper::Set_DX8_Render_State(D3DRS_FILLMODE,D3DFILL_WIREFRAME); DX8Wrapper::Draw_Triangles( 0, m_feedbackIndexCount/3, 0, m_feedbackVertexCount); } @@ -2366,7 +2366,7 @@ if (pMapObj->isSelected()) { if (m_feedbackIndexCount>0) { DX8Wrapper::Set_Vertex_Buffer(m_vertexFeedback); DX8Wrapper::Set_Index_Buffer(m_indexFeedback,0); - DX8Wrapper::Set_Shader(ShaderClass::_PresetAlpha2DShader); + Renderer::Set_Shader(ShaderClass::_PresetAlpha2DShader); DX8Wrapper::Draw_Triangles( 0, m_feedbackIndexCount/3, 0, m_feedbackVertexCount); } } @@ -2378,7 +2378,7 @@ if (pMapObj->isSelected()) { if (m_feedbackIndexCount>0) { DX8Wrapper::Set_Vertex_Buffer(m_vertexFeedback); DX8Wrapper::Set_Index_Buffer(m_indexFeedback,0); - DX8Wrapper::Set_Shader(SC_OPAQUE_Z); + Renderer::Set_Shader(SC_OPAQUE_Z); DX8Wrapper::Set_DX8_Render_State(D3DRS_FILLMODE,D3DFILL_WIREFRAME); // we want a solid ramp DX8Wrapper::Set_DX8_Render_State(D3DRS_LIGHTING, FALSE); // disable lighting DX8Wrapper::Draw_Triangles( 0, m_feedbackIndexCount/3, 0, m_feedbackVertexCount); @@ -2392,7 +2392,7 @@ if (pMapObj->isSelected()) { if (m_feedbackIndexCount>0) { DX8Wrapper::Set_Vertex_Buffer(m_vertexFeedback); DX8Wrapper::Set_Index_Buffer(m_indexFeedback,0); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::Set_DX8_Render_State(D3DRS_CULLMODE, D3DCULL_NONE); DX8Wrapper::Set_DX8_Render_State(D3DRS_FILLMODE,D3DFILL_SOLID); // we want a solid ramp DX8Wrapper::Set_DX8_Render_State(D3DRS_LIGHTING, FALSE); // disable lighting @@ -2410,7 +2410,7 @@ if (pMapObj->isSelected()) { if (m_feedbackIndexCount>0) { DX8Wrapper::Set_Vertex_Buffer(m_vertexFeedback); DX8Wrapper::Set_Index_Buffer(m_indexFeedback,0); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::Set_DX8_Render_State(D3DRS_CULLMODE, D3DCULL_NONE); DX8Wrapper::Set_DX8_Render_State(D3DRS_FILLMODE,D3DFILL_SOLID); // we want a solid ramp DX8Wrapper::Set_DX8_Render_State(D3DRS_LIGHTING, FALSE); // disable lighting