diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp index 5b4e4aa683d..a973bdb8193 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/BaseHeightMap.cpp @@ -2313,9 +2313,9 @@ 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_Transform(RenderTransform_World,Matrix3D(true)); @@ -2499,9 +2499,9 @@ 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_Transform(RenderTransform_World,Matrix3D(true)); @@ -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..5af8fa801a4 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/FlatHeightMap.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/FlatHeightMap.cpp @@ -486,7 +486,7 @@ 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(); @@ -497,8 +497,8 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) 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,7 +550,7 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) for (pass=0; passgetDynamicLights()); @@ -616,7 +616,7 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) DX8Wrapper::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,7 +624,7 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) TheTerrainTracksRenderObjClassSystem->flush(); ShaderClass::Invalidate(); - DX8Wrapper::Apply_Render_State_Changes(); + Renderer::Apply_Render_State_Changes(); m_waypointBuffer->drawWaypoints(rinfo); @@ -635,7 +635,7 @@ void FlatHeightMapRenderObjClass::Render(RenderInfoClass & rinfo) DX8Wrapper::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..4a3aa35a9b3 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp @@ -1922,7 +1922,7 @@ 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(); @@ -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,7 +2029,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) if (!doMultiPassWireFrame) //multi-pass wireframe doesn't use regular shaders. { if (m_disableTextures ) { - DX8Wrapper::Set_Shader(ShaderClass::_PresetOpaque2DShader); + Renderer::Set_Shader(ShaderClass::_PresetOpaque2DShader); DX8Wrapper::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], @@ -2087,7 +2087,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) 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()); @@ -2109,7 +2109,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) DX8Wrapper::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); @@ -2139,7 +2139,7 @@ void HeightMapRenderObjClass::Render(RenderInfoClass & rinfo) DX8Wrapper::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,17 +2338,17 @@ 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); + Renderer::Set_Shader(shader); DX8Wrapper::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 diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp index 41f01e4e42b..24382eab53a 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); + Renderer::Set_Material(m_vertexMaterialClass); DX8Wrapper::Set_Texture(0, nullptr); - DX8Wrapper::Apply_Render_State_Changes(); + 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..5a06c69b75e 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,7 +125,7 @@ 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); 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..857a40f8ae1 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); + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); DX8Wrapper::Set_Texture(0,nullptr); - 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_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); + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); DX8Wrapper::Set_Texture(0,nullptr); - 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_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); + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); DX8Wrapper::Set_Texture(0,nullptr); - 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_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); + Renderer::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::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); + Renderer::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::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,7 +1220,7 @@ 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 @@ -1228,14 +1228,14 @@ Int ShroudTextureShader::set(Int stage) { #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); @@ -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()); 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); @@ -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. @@ -2307,7 +2307,7 @@ Int RoadShaderPixelShader::set(Int pass) { DX8Wrapper::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 ); @@ -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() @@ -2411,7 +2411,7 @@ Int RoadShader2Stage::set(Int pass) //First stage always contains base texture. DX8Wrapper::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); @@ -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)); @@ -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); @@ -3608,7 +3608,7 @@ Int FlatTerrainShaderPixelShader::set(Int pass) DX8Wrapper::Set_Texture(0, W3DShaderManager::getShaderTexture(2)); DX8Wrapper::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..e18ef6b6d2d 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); + Renderer::Set_Shader(shader); DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + Renderer::Apply_Render_State_Changes(); //force update of view and projection matrices struct _TRANS_LIT_TEX_VERTEX { Vector4 p; @@ -453,7 +453,7 @@ 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); //Need these states in case texture is non-power-of-2 @@ -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..3858c941ecc 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 @@ -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/W3DTerrainTracks.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainTracks.cpp index 2d68bdb127c..cb33149db8d 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); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp index 9ebc508789c..e34aa7392d6 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp @@ -1574,7 +1574,7 @@ 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); + Renderer::Set_Shader(detailAlphaShader); DX8Wrapper::Set_Texture(0,m_treeTexture); DynamicIBAccessClass ib_access(BUFFER_TYPE_DYNAMIC_DX8, 6); //draw an infinite sky plane @@ -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); 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..5fa9ad74c40 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(); @@ -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); @@ -1793,7 +1793,7 @@ void WaterRenderObjClass::drawSea(RenderInfoClass & rinfo) DX8Wrapper::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,7 +2062,7 @@ 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); @@ -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,7 +2162,7 @@ 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); @@ -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,7 +2369,7 @@ 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 @@ -2377,17 +2377,17 @@ void WaterRenderObjClass::renderWaterMesh() DX8Wrapper::Set_Texture(0,setting->waterTexture); DX8Wrapper::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 @@ -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--; @@ -2933,18 +2933,18 @@ void WaterRenderObjClass::setupFlatWaterShader() DX8Wrapper::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,9 +3369,9 @@ 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); diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWaterTracks.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWaterTracks.cpp index 8363e0893ed..1d7f6a2b2f5 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()) { @@ -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..bbb4484b878 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.cpp @@ -179,6 +179,21 @@ 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::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 +233,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..32a3f7bb77b 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/Renderer.h +++ b/Core/Libraries/Source/WWVegas/WW3D2/Renderer.h @@ -28,10 +28,13 @@ // 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 Vector3; +class VertexMaterialClass; struct RenderViewport { @@ -84,6 +87,10 @@ 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 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 +100,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..0e82ed825df 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/dx8renderer.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/dx8renderer.cpp @@ -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..9e2d387de09 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/dynamesh.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/dynamesh.cpp @@ -316,14 +316,14 @@ void DynamicMeshModel::Render(RenderInfoClass & rinfo) } 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; @@ -386,8 +386,8 @@ void DynamicMeshModel::Render(RenderInfoClass & rinfo) 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 (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..bdefebcfe1e 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); + Renderer::Set_Shader(Shader); DX8Wrapper::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..78fe4cba4e4 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,8 +118,8 @@ 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)); diff --git a/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp b/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp index c87714e25b5..61c5d4f6cec 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/pointgr.cpp @@ -923,8 +923,8 @@ 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); + Renderer::Set_Material(PointMaterial); + Renderer::Set_Shader(Shader); DX8Wrapper::Set_Texture(0,Texture); // Enable sorting if the primitives are translucent and alpha testing is not enabled. @@ -1853,8 +1853,8 @@ 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); + Renderer::Set_Material(PointMaterial); + Renderer::Set_Shader(Shader); DX8Wrapper::Set_Texture(0,Texture); // Enable sorting if the primitives are translucent and alpha testing is not enabled. diff --git a/Core/Libraries/Source/WWVegas/WW3D2/ringobj.cpp b/Core/Libraries/Source/WWVegas/WW3D2/ringobj.cpp index d35438a6a88..1ee5a7db528 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); + Renderer::Set_Shader(RingShader); DX8Wrapper::Set_Texture(0,RingTexture); - DX8Wrapper::Set_Material(RingMaterial); + 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..5ed0283b801 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); + Renderer::Set_Material(mat); DX8Wrapper::Set_Texture(0,Texture); - DX8Wrapper::Set_Shader(shader); + 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..1355cf3a8f8 100644 --- a/Core/Libraries/Source/WWVegas/WW3D2/sortingrenderer.cpp +++ b/Core/Libraries/Source/WWVegas/WW3D2/sortingrenderer.cpp @@ -365,9 +365,9 @@ 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) { @@ -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..d797a75dddd 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); + Renderer::Set_Shader(SphereShader); DX8Wrapper::Set_Texture(0,SphereTexture); - DX8Wrapper::Set_Material(SphereMaterial); + 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..0eb0ed1dcb6 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. @@ -1371,7 +1371,7 @@ 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_Shader(shader); if (sorting) { diff --git a/Core/Tools/W3DView/ScreenCursor.cpp b/Core/Tools/W3DView/ScreenCursor.cpp index 8c358221e59..d67c6a31974 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,8 +289,8 @@ ScreenCursorClass::Render (RenderInfoClass &rinfo) /* ** Apply the shader and material */ - DX8Wrapper::Set_Material(m_pVertMaterial.Peek()); - DX8Wrapper::Set_Shader(ShaderClass::_PresetATestBlend2DShader); + Renderer::Set_Material(m_pVertMaterial.Peek()); + Renderer::Set_Shader(ShaderClass::_PresetATestBlend2DShader); DX8Wrapper::Set_Texture(0,m_pTexture.Peek()); DX8Wrapper::Set_Vertex_Buffer(vbaccess); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp index 8d7f7350f28..76b4c5aabf4 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp @@ -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,7 +695,7 @@ 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()); @@ -703,13 +703,13 @@ void W3DProjectedShadowManager::flushDecals(W3DShadowTexture *texture, ShadowTyp 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..7543400f2ec 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); + Renderer::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::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); + Renderer::Set_Shader(ShaderClass::_PresetOpaqueShader); DX8Wrapper::Set_Texture(0,nullptr); - DX8Wrapper::Apply_Render_State_Changes(); //force update of view and projection matrices + 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..467126744d3 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,7 +427,7 @@ 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); DX8Wrapper::Draw_Triangles( 0, m_curNumNormalBibIndices/3, 0, m_curNumNormalBibVertex); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp index 7d1bdd79387..d15ee0364c3 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" @@ -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..b4e7d2021b6 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp @@ -241,8 +241,8 @@ 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); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::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..94f1ce4da65 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" @@ -3381,7 +3382,7 @@ void W3DRoadBuffer::drawRoads(CameraClass * camera, TextureClass *cloudTexture, DX8Wrapper::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..8076b68adbc 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DStatusCircle.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DStatusCircle.cpp @@ -318,8 +318,8 @@ void W3DStatusCircle::Render(RenderInfoClass & rinfo) updateCircleVB(); } //Apply the shader and material - DX8Wrapper::Set_Material(m_vertexMaterialClass); - DX8Wrapper::Set_Shader(m_shaderClass); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::Set_Texture(0, nullptr); DX8Wrapper::Set_Index_Buffer(m_indexBuffer,0); DX8Wrapper::Set_Vertex_Buffer(m_vertexBufferCircle); @@ -341,7 +341,7 @@ 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); } @@ -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..459c9e16d3b 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/boxrobj.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/boxrobj.cpp @@ -505,8 +505,8 @@ void BoxRenderObjClass::render_box(RenderInfoClass & rinfo,const Vector3 & cente /* ** Apply the shader and material */ - DX8Wrapper::Set_Material(_BoxMaterial); - DX8Wrapper::Set_Shader(_BoxShader); + Renderer::Set_Material(_BoxMaterial); + Renderer::Set_Shader(_BoxShader); DX8Wrapper::Set_Texture(0,nullptr); DX8Wrapper::Set_Index_Buffer(ibaccess,0); diff --git a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp index e8163cdc1ae..8be4eeb688b 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp @@ -1240,21 +1240,21 @@ 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); + Renderer::Set_Shader(default_halo_shader); DX8Wrapper::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); + Renderer::Set_Shader(default_dazzle_shader); DX8Wrapper::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); + Renderer::Set_Shader(default_dazzle_shader); DX8Wrapper::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_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..a7c3f6e26ea 100644 --- a/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/render2d.cpp +++ b/GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/render2d.cpp @@ -629,7 +629,7 @@ void Render2DClass::Render() DX8Wrapper::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..a7ed425f0dc 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); + Renderer::Set_Material(m_vertexMaterialClass); + Renderer::Set_Shader(m_shaderClass); DX8Wrapper::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