From e641323de2bd262fbc6bd4adf2299f5c0c7b33c0 Mon Sep 17 00:00:00 2001 From: Rodolfo Osvaldo Bogado Date: Thu, 23 Sep 2010 02:17:48 +0000 Subject: i know still a lot to fix and much work to do but sometimes experiments are fun :) for all the plugins implemented per pixel lighting, this will make games that uses lighting a lot nice. (just look at mario sunshine and compare :)) for dx9: implemented temporal anaglyph stereo: just grab your red-cyan glasses and enjoy. stereo calibration: use stereo separation ( distance of the point from you are looking) and Focal Angle: the angle necessary to focus in one particular object. this settings are different in every games as they use different depth ranges. please for any regression and bug introduced by this commit. if you ask why i did not implement stereo in dx11 and opengl the reason is one: they don't work right when i have more time will try to find a way to make them work. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6224 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/VideoCommon/Src/XFStructs.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Source/Core/VideoCommon/Src/XFStructs.cpp') diff --git a/Source/Core/VideoCommon/Src/XFStructs.cpp b/Source/Core/VideoCommon/Src/XFStructs.cpp index 670e4bf188..b505351aff 100644 --- a/Source/Core/VideoCommon/Src/XFStructs.cpp +++ b/Source/Core/VideoCommon/Src/XFStructs.cpp @@ -36,6 +36,7 @@ void LoadXFReg(u32 transferSize, u32 baseAddress, u32 *pData) { VertexManager::Flush(); VertexShaderManager::InvalidateXFRange(address, address + transferSize); + PixelShaderManager::InvalidateXFRange(address, address + transferSize); //PRIM_LOG("xfmem write: 0x%x-0x%x\n", address, address+transferSize); memcpy_gc((u32*)&xfmem[address], &pData[i], transferSize*4); @@ -111,6 +112,7 @@ void LoadXFReg(u32 transferSize, u32 baseAddress, u32 *pData) VertexManager::Flush(); xfregs.colChans[chan].ambColor = data; VertexShaderManager::SetMaterialColor(chan, data); + PixelShaderManager::SetMaterialColor(chan, data); } break; } @@ -124,6 +126,7 @@ void LoadXFReg(u32 transferSize, u32 baseAddress, u32 *pData) VertexManager::Flush(); xfregs.colChans[chan].matColor = data; VertexShaderManager::SetMaterialColor(address - XFMEM_SETCHAN0_AMBCOLOR, data); + PixelShaderManager::SetMaterialColor(address - XFMEM_SETCHAN0_AMBCOLOR, data); } break; } @@ -217,6 +220,7 @@ void LoadIndexedXF(u32 val, int array) VertexManager::Flush(); VertexShaderManager::InvalidateXFRange(address, address+size); + PixelShaderManager::InvalidateXFRange(address, address+size); //PRIM_LOG("xfmem iwrite: 0x%x-0x%x\n", address, address+size); for (int i = 0; i < size; i++) -- cgit v1.2.3