diff options
| author | Jason Maskell <[email protected]> | 2016-05-16 15:00:36 +0200 |
|---|---|---|
| committer | Jason Maskell <[email protected]> | 2016-05-16 15:00:36 +0200 |
| commit | 3eb017d032e0c542401ea202f7a62b7c7ddcd498 (patch) | |
| tree | 6470077bdc344f1493778976917f7217a3159707 /test/d3d11/ocean_surface.cpp | |
| parent | Project now compiles with Cmake. (diff) | |
| download | waveworks_archive-3eb017d032e0c542401ea202f7a62b7c7ddcd498.tar.xz waveworks_archive-3eb017d032e0c542401ea202f7a62b7c7ddcd498.zip | |
Added the test_d3d11 app to the solution. Not compiling yet, mostly a paranoia commit.
Diffstat (limited to 'test/d3d11/ocean_surface.cpp')
| -rw-r--r-- | test/d3d11/ocean_surface.cpp | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/test/d3d11/ocean_surface.cpp b/test/d3d11/ocean_surface.cpp index 06d3759..b382eae 100644 --- a/test/d3d11/ocean_surface.cpp +++ b/test/d3d11/ocean_surface.cpp @@ -31,10 +31,11 @@ #include "SDKmisc.h" #include "GFSDK_WaveWorks_D3D_Util.h" +#include "DDSTextureLoader.h" #pragma warning(disable:4127) -extern HRESULT LoadFile(LPCTSTR FileName, ID3DXBuffer** ppBuffer); +extern HRESULT LoadFile(LPCTSTR FileName, ID3DBlob** ppBuffer); OceanSurface::OceanSurface() { @@ -174,7 +175,7 @@ HRESULT OceanSurface::init(const OceanSurfaceParameters& params) { TCHAR path[MAX_PATH]; V_RETURN(DXUTFindDXSDKMediaFileCch(path, MAX_PATH, TEXT("..\\Media\\ocean_surface_d3d11.fxo"))); - ID3DXBuffer* pEffectBuffer = NULL; + ID3DBlob* pEffectBuffer = NULL; V_RETURN(LoadFile(path, &pEffectBuffer)); V_RETURN(D3DX11CreateEffectFromMemory(pEffectBuffer->GetBufferPointer(), pEffectBuffer->GetBufferSize(), 0, m_pd3dDevice, &m_pOceanFX)); pEffectBuffer->Release(); @@ -275,8 +276,10 @@ HRESULT OceanSurface::init(const OceanSurfaceParameters& params) TCHAR path[MAX_PATH]; V_RETURN(DXUTFindDXSDKMediaFileCch(path, MAX_PATH, TEXT("..\\Media\\reflect_cube.dds"))); ID3D11Resource* pD3D11Resource = NULL; - V_RETURN(D3DX11CreateTextureFromFile(m_pd3dDevice, path, NULL, NULL, &pD3D11Resource, NULL)); - V_RETURN(m_pd3dDevice->CreateShaderResourceView(pD3D11Resource, NULL, &m_pCubeMap)); + + + V_RETURN(DirectX::CreateDDSTextureFromFile(m_pd3dDevice, static_cast<const wchar_t *>(path), &pD3D11Resource, &m_pCubeMap)); +// V_RETURN(m_pd3dDevice->CreateShaderResourceView(pD3D11Resource, NULL, &m_pCubeMap)); SAFE_RELEASE(pD3D11Resource); } @@ -285,8 +288,8 @@ HRESULT OceanSurface::init(const OceanSurfaceParameters& params) TCHAR path[MAX_PATH]; V_RETURN(DXUTFindDXSDKMediaFileCch(path, MAX_PATH, TEXT("..\\Media\\foam_intensity_perlin2.dds"))); ID3D11Resource* pD3D11Resource = NULL; - V_RETURN(D3DX11CreateTextureFromFile(m_pd3dDevice, path, NULL, NULL, &pD3D11Resource, NULL)); - V_RETURN(m_pd3dDevice->CreateShaderResourceView(pD3D11Resource, NULL, &m_pFoamIntensityMap)); + V_RETURN(DirectX::CreateDDSTextureFromFile(m_pd3dDevice, static_cast<const wchar_t *>(path), &pD3D11Resource, &m_pFoamIntensityMap)); +// V_RETURN(m_pd3dDevice->CreateShaderResourceView(pD3D11Resource, NULL, &m_pFoamIntensityMap)); SAFE_RELEASE(pD3D11Resource); } @@ -295,8 +298,8 @@ HRESULT OceanSurface::init(const OceanSurfaceParameters& params) TCHAR path[MAX_PATH]; V_RETURN(DXUTFindDXSDKMediaFileCch(path, MAX_PATH, TEXT("..\\Media\\foam.dds"))); ID3D11Resource* pD3D11Resource = NULL; - V_RETURN(D3DX11CreateTextureFromFile(m_pd3dDevice, path, NULL, NULL, &pD3D11Resource, NULL)); - V_RETURN(m_pd3dDevice->CreateShaderResourceView(pD3D11Resource, NULL, &m_pFoamDiffuseMap)); + V_RETURN(DirectX::CreateDDSTextureFromFile(m_pd3dDevice, static_cast<const wchar_t *>(path), &pD3D11Resource, &m_pFoamDiffuseMap)); +// V_RETURN(m_pd3dDevice->CreateShaderResourceView(pD3D11Resource, NULL, &m_pFoamDiffuseMap)); SAFE_RELEASE(pD3D11Resource); } @@ -326,14 +329,15 @@ void OceanSurface::createFresnelMap() // B channel: // A channel: - float cos_a = i / (FLOAT)BICOLOR_TEX_SIZE; - float fresnel = D3DXFresnelTerm(cos_a, 1.33f); - DWORD weight = (DWORD)(fresnel * 255); - - fresnel = powf(1 / (1 + cos_a), m_params.sky_blending); - DWORD refl_fresnel = (DWORD)(fresnel * 255); - - buffer[i] = (weight) | (refl_fresnel << 8); + // TODO: FIX ME - COMPLETELY BROKEN WITH new DirectXMath FresnelTerm thingy +// float cos_a = i / (FLOAT)BICOLOR_TEX_SIZE; +// float fresnel = XMFresnelTerm(cos_a, 1.33f); +// DWORD weight = (DWORD)(fresnel * 255); +// +// fresnel = powf(1 / (1 + cos_a), m_params.sky_blending); +// DWORD refl_fresnel = (DWORD)(fresnel * 255); +// +// buffer[i] = (weight) | (refl_fresnel << 8); } D3D11_TEXTURE1D_DESC texDesc; @@ -357,14 +361,14 @@ void OceanSurface::createFresnelMap() SAFE_RELEASE(pTextureResource); } -void OceanSurface::renderWireframe(ID3D11DeviceContext* pDC, const D3DXMATRIX& matView, const D3DXMATRIX& matProj, GFSDK_WaveWorks_SimulationHandle hSim, GFSDK_WaveWorks_SavestateHandle hSavestate, BOOL freeze_cam) +void OceanSurface::renderWireframe(ID3D11DeviceContext* pDC, const XMMATRIX& matView, const XMMATRIX& matProj, GFSDK_WaveWorks_SimulationHandle hSim, GFSDK_WaveWorks_SavestateHandle hSavestate, BOOL freeze_cam) { // Matrices - D3DXMATRIX matVP = matView * matProj; + XMMATRIX matVP = matView * matProj; m_pRenderSurfaceMatViewProjVariable->SetMatrix((FLOAT*)&matVP); // Wireframe color - D3DXVECTOR4 patch_color(1, 1, 1, 1); + XMFLOAT4 patch_color(1, 1, 1, 1); m_pRenderSurfacePatchColorVariable->SetFloatVector((FLOAT*)&patch_color); D3D11_VIEWPORT vp; @@ -382,7 +386,7 @@ void OceanSurface::renderWireframe(ID3D11DeviceContext* pDC, const D3DXMATRIX& m GFSDK_WaveWorks_Savestate_RestoreD3D11(hSavestate, pDC); } -void OceanSurface::renderShaded(ID3D11DeviceContext* pDC, const D3DXMATRIX& matView, const D3DXMATRIX& matProj, GFSDK_WaveWorks_SimulationHandle hSim, GFSDK_WaveWorks_SavestateHandle hSavestate, BOOL freeze_cam) +void OceanSurface::renderShaded(ID3D11DeviceContext* pDC, const XMMATRIX& matView, const XMMATRIX& matProj, GFSDK_WaveWorks_SimulationHandle hSim, GFSDK_WaveWorks_SavestateHandle hSavestate, BOOL freeze_cam) { m_pRenderSurfaceColorMapVariable->SetResource(m_pBicolorMap); m_pRenderSurfaceCubeMapVariable->SetResource(m_pCubeMap); @@ -394,7 +398,7 @@ void OceanSurface::renderShaded(ID3D11DeviceContext* pDC, const D3DXMATRIX& matV m_pRenderSurfaceWaterColorVariable->SetFloatVector((FLOAT*)&m_params.waterbody_color); // Matrices - D3DXMATRIX matVP = matView * matProj; + XMMATRIX matVP = matView * matProj; m_pRenderSurfaceMatViewProjVariable->SetMatrix((FLOAT*)&matVP); D3D11_VIEWPORT vp; |