diff options
| author | Jason Maskell <[email protected]> | 2016-05-25 16:02:23 +0200 |
|---|---|---|
| committer | Jason Maskell <[email protected]> | 2016-05-25 16:02:23 +0200 |
| commit | 69f624cfc22c361a8162f57df4a71e4324805717 (patch) | |
| tree | 245e0e5ebcb120fc573eb44d82755c1456e0d519 /src/Mesh.cpp | |
| parent | Added OpenGL sample - compiles and runs but doesn't work. (diff) | |
| download | waveworks_archive-69f624cfc22c361a8162f57df4a71e4324805717.tar.xz waveworks_archive-69f624cfc22c361a8162f57df4a71e4324805717.zip | |
Excised D3D9 and 10 support from library.
Diffstat (limited to 'src/Mesh.cpp')
| -rw-r--r-- | src/Mesh.cpp | 365 |
1 files changed, 0 insertions, 365 deletions
diff --git a/src/Mesh.cpp b/src/Mesh.cpp index 36480d5..1fc0da0 100644 --- a/src/Mesh.cpp +++ b/src/Mesh.cpp @@ -36,100 +36,6 @@ #endif using namespace sce; -#if WAVEWORKS_ENABLE_D3D9 -//////////////////////////////////////////////////////////////////////////////// -// D3D9 implementation -//////////////////////////////////////////////////////////////////////////////// -class NVWaveWorks_MeshD3D9 : public NVWaveWorks_Mesh -{ -public: - - ~NVWaveWorks_MeshD3D9(); - - HRESULT LockVertexBuffer(LPVOID* ppData); - HRESULT UnlockVertexBuffer(); - - HRESULT LockIndexBuffer(LPDWORD* ppData); - HRESULT UnlockIndexBuffer(); - - virtual HRESULT Draw( Graphics_Context* pGC, - PrimitiveType PrimType, - INT BaseVertexIndex, - UINT MinIndex, - UINT NumVertices, - UINT StartIndex, - UINT PrimitiveCount, - const UINT* pShaderInputMappings - ); - - virtual HRESULT PreserveState(Graphics_Context* pGC, GFSDK_WaveWorks_Savestate* pSavestateImpl); - -private: - - friend class NVWaveWorks_Mesh; // For creation - NVWaveWorks_MeshD3D9( LPDIRECT3DDEVICE9 pD3DDevice, - LPDIRECT3DVERTEXDECLARATION9 pDecl, - LPDIRECT3DVERTEXBUFFER9 pVertexBuffer, - LPDIRECT3DINDEXBUFFER9 pIndexBuffer, - UINT VertexStride - ); - - LPDIRECT3DDEVICE9 m_pd3dDevice; - LPDIRECT3DVERTEXDECLARATION9 m_pDecl; - LPDIRECT3DVERTEXBUFFER9 m_pVB; - LPDIRECT3DINDEXBUFFER9 m_pIB; - UINT m_VertexStride; - - // Revoked copy/assign - NVWaveWorks_MeshD3D9(const NVWaveWorks_MeshD3D9&); - NVWaveWorks_MeshD3D9& operator=(const NVWaveWorks_MeshD3D9&); -}; -#endif - -#if WAVEWORKS_ENABLE_D3D10 -//////////////////////////////////////////////////////////////////////////////// -// D3D10 implementation -//////////////////////////////////////////////////////////////////////////////// -class NVWaveWorks_MeshD3D10 : public NVWaveWorks_Mesh -{ -public: - - ~NVWaveWorks_MeshD3D10(); - - virtual HRESULT Draw( Graphics_Context* pGC, - PrimitiveType PrimType, - INT BaseVertexIndex, - UINT MinIndex, - UINT NumVertices, - UINT StartIndex, - UINT PrimitiveCount, - const UINT* pShaderInputMappings - ); - - virtual HRESULT PreserveState(Graphics_Context* pGC, GFSDK_WaveWorks_Savestate* pSavestateImpl); - -private: - - friend class NVWaveWorks_Mesh; // For creation - NVWaveWorks_MeshD3D10( ID3D10Device* pD3DDevice, - ID3D10InputLayout* pLayout, - ID3D10Buffer* pVertexBuffer, - ID3D10Buffer* pIndexBuffer, - UINT VertexStride - ); - - ID3D10Device* m_pd3dDevice; - ID3D10InputLayout* m_pLayout; - ID3D10Buffer* m_pVB; - ID3D10Buffer* m_pIB; - UINT m_VertexStride; - - // Revoked copy/assign - NVWaveWorks_MeshD3D10(const NVWaveWorks_MeshD3D10&); - NVWaveWorks_MeshD3D10& operator=(const NVWaveWorks_MeshD3D10&); -}; -#endif - #if WAVEWORKS_ENABLE_D3D11 //////////////////////////////////////////////////////////////////////////////// // D3D11 implementation @@ -258,112 +164,6 @@ private: NVWaveWorks_MeshGL2& operator=(const NVWaveWorks_MeshGL2&); }; #endif -HRESULT NVWaveWorks_Mesh::CreateD3D9( IDirect3DDevice9* D3D9_ONLY(pD3DDev), - const D3DVERTEXELEMENT9* D3D9_ONLY(pVertexElements), - UINT D3D9_ONLY(VertexStride), - const void* D3D9_ONLY(pVertData), - UINT D3D9_ONLY(NumVerts), - const DWORD* D3D9_ONLY(pIndexData), - UINT D3D9_ONLY(NumIndices), - NVWaveWorks_Mesh** D3D9_ONLY(ppMesh) - ) -{ -#if WAVEWORKS_ENABLE_D3D9 - HRESULT hr; - - LPDIRECT3DVERTEXDECLARATION9 pDecl = NULL; - V_RETURN(pD3DDev->CreateVertexDeclaration(pVertexElements, &pDecl)); - - LPDIRECT3DVERTEXBUFFER9 pVB = NULL; - V_RETURN(pD3DDev->CreateVertexBuffer(NumVerts * VertexStride, D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &pVB, NULL)); - - LPDIRECT3DINDEXBUFFER9 pIB = NULL; - V_RETURN(pD3DDev->CreateIndexBuffer(NumIndices * sizeof(DWORD), D3DUSAGE_WRITEONLY, D3DFMT_INDEX32, D3DPOOL_DEFAULT, &pIB, NULL)); - - NVWaveWorks_MeshD3D9* pMesh = new NVWaveWorks_MeshD3D9(pD3DDev, pDecl, pVB, pIB, VertexStride); - - pDecl->Release(); - pVB->Release(); - pIB->Release(); - - void* pV = NULL; - V_RETURN(pMesh->LockVertexBuffer(&pV)); - memcpy(pV, pVertData, VertexStride * NumVerts); - V_RETURN(pMesh->UnlockVertexBuffer()); - - DWORD* pI = NULL; - V_RETURN(pMesh->LockIndexBuffer(&pI)); - memcpy(pI, pIndexData, sizeof(DWORD) * NumIndices); - V_RETURN(pMesh->UnlockIndexBuffer()); - - *ppMesh = pMesh; - - return S_OK; -#else - return E_FAIL; -#endif -} - -HRESULT NVWaveWorks_Mesh::CreateD3D10( ID3D10Device* D3D10_ONLY(pD3DDev), - const D3D10_INPUT_ELEMENT_DESC * D3D10_ONLY(pInputElementDescs), - UINT D3D10_ONLY(NumElements), - const void * D3D10_ONLY(pShaderBytecodeWithInputSignature), - SIZE_T D3D10_ONLY(BytecodeLength), - UINT D3D10_ONLY(VertexStride), - const void* D3D10_ONLY(pVertData), - UINT D3D10_ONLY(NumVerts), - const DWORD* D3D10_ONLY(pIndexData), - UINT D3D10_ONLY(NumIndices), - NVWaveWorks_Mesh** D3D10_ONLY(ppMesh) - ) -{ -#if WAVEWORKS_ENABLE_D3D10 - HRESULT hr; - - ID3D10InputLayout* pLayout = NULL; - V_RETURN(pD3DDev->CreateInputLayout(pInputElementDescs, NumElements, pShaderBytecodeWithInputSignature, BytecodeLength, &pLayout)); - - ID3D10Buffer* pVB = NULL; - D3D10_BUFFER_DESC vbDesc; - vbDesc.ByteWidth = NumVerts * VertexStride; - vbDesc.Usage = D3D10_USAGE_IMMUTABLE; - vbDesc.BindFlags = D3D10_BIND_VERTEX_BUFFER; - vbDesc.CPUAccessFlags = 0; - vbDesc.MiscFlags = 0; - - D3D10_SUBRESOURCE_DATA vSrd; - vSrd.pSysMem = pVertData; - vSrd.SysMemPitch = 0; - vSrd.SysMemSlicePitch = 0; - - V_RETURN(pD3DDev->CreateBuffer(&vbDesc, &vSrd, &pVB)); - - ID3D10Buffer* pIB = NULL; - D3D10_BUFFER_DESC ibDesc; - ibDesc.ByteWidth = NumIndices * sizeof(DWORD); - ibDesc.Usage = D3D10_USAGE_IMMUTABLE; - ibDesc.BindFlags = D3D10_BIND_INDEX_BUFFER; - ibDesc.CPUAccessFlags = 0; - ibDesc.MiscFlags = 0; - - D3D10_SUBRESOURCE_DATA iSrd; - iSrd.pSysMem = pIndexData; - iSrd.SysMemPitch = 0; - iSrd.SysMemSlicePitch = 0; - - V_RETURN(pD3DDev->CreateBuffer(&ibDesc, &iSrd, &pIB)); - - *ppMesh = new NVWaveWorks_MeshD3D10(pD3DDev, pLayout, pVB, pIB, VertexStride); - - pLayout->Release(); - pVB->Release(); - pIB->Release(); - - return S_OK; -#else - return E_FAIL; -#endif -} HRESULT NVWaveWorks_Mesh::CreateD3D11( ID3D11Device* D3D11_ONLY(pD3DDev), const D3D11_INPUT_ELEMENT_DESC * D3D11_ONLY(pInputElementDescs), @@ -468,171 +268,6 @@ HRESULT NVWaveWorks_Mesh::CreateGnm(UINT GNM_ONLY(VertexStride), #endif } -#if WAVEWORKS_ENABLE_D3D9 -NVWaveWorks_MeshD3D9::~NVWaveWorks_MeshD3D9() -{ - m_pd3dDevice->Release(); - m_pDecl->Release(); - m_pVB->Release(); - m_pIB->Release(); -} - -HRESULT NVWaveWorks_MeshD3D9::LockVertexBuffer(LPVOID* ppData) -{ - return m_pVB->Lock(0,0,ppData,0); -} - -HRESULT NVWaveWorks_MeshD3D9::UnlockVertexBuffer() -{ - return m_pVB->Unlock(); -} - -HRESULT NVWaveWorks_MeshD3D9::LockIndexBuffer(LPDWORD* ppData) -{ - return m_pIB->Lock(0,0,(VOID**)ppData,0); -} - -HRESULT NVWaveWorks_MeshD3D9::UnlockIndexBuffer() -{ - return m_pIB->Unlock(); -} - -HRESULT NVWaveWorks_MeshD3D9::PreserveState(Graphics_Context* /*pGC not used*/, GFSDK_WaveWorks_Savestate* pSavestateImpl) -{ - HRESULT hr; - - V_RETURN(pSavestateImpl->PreserveD3D9Streams()); - - return S_OK; -} - -HRESULT NVWaveWorks_MeshD3D9::Draw( Graphics_Context* /*pGC not used*/, - PrimitiveType PrimType, - INT BaseVertexIndex, - UINT MinIndex, - UINT NumVertices, - UINT StartIndex, - UINT PrimitiveCount, - const UINT* /* not used: pShaderInputMappings*/ - ) -{ - HRESULT hr; - - V_RETURN(m_pd3dDevice->SetVertexDeclaration(m_pDecl)); - V_RETURN(m_pd3dDevice->SetStreamSource(0, m_pVB, 0, m_VertexStride)); - V_RETURN(m_pd3dDevice->SetIndices(m_pIB)); - - D3DPRIMITIVETYPE d3dPrimType = D3DPT_FORCE_DWORD; - switch(PrimType) - { - case PT_TriangleStrip: - d3dPrimType = D3DPT_TRIANGLESTRIP; - break; - case PT_TriangleList: - d3dPrimType = D3DPT_TRIANGLELIST; - break; - default: - return E_FAIL; - } - - V_RETURN(m_pd3dDevice->DrawIndexedPrimitive(d3dPrimType, BaseVertexIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount)); - - return S_OK; -} - -NVWaveWorks_MeshD3D9::NVWaveWorks_MeshD3D9( LPDIRECT3DDEVICE9 pD3DDevice, - LPDIRECT3DVERTEXDECLARATION9 pDecl, - LPDIRECT3DVERTEXBUFFER9 pVertexBuffer, - LPDIRECT3DINDEXBUFFER9 pIndexBuffer, - UINT VertexStride - ) : - m_pd3dDevice(pD3DDevice), - m_pDecl(pDecl), - m_pVB(pVertexBuffer), - m_pIB(pIndexBuffer), - m_VertexStride(VertexStride) -{ - m_pd3dDevice->AddRef(); - m_pDecl->AddRef(); - m_pVB->AddRef(); - m_pIB->AddRef(); -} -#endif - -#if WAVEWORKS_ENABLE_D3D10 -NVWaveWorks_MeshD3D10::~NVWaveWorks_MeshD3D10() -{ - m_pd3dDevice->Release(); - m_pLayout->Release(); - m_pVB->Release(); - m_pIB->Release(); -} - -HRESULT NVWaveWorks_MeshD3D10::PreserveState(Graphics_Context* /*pGC not used*/, GFSDK_WaveWorks_Savestate* pSavestateImpl) -{ - HRESULT hr; - - V_RETURN(pSavestateImpl->PreserveD3D10Streams()); - - return S_OK; -} - -HRESULT NVWaveWorks_MeshD3D10::Draw( Graphics_Context* /*pGC not used*/, - PrimitiveType PrimType, - INT BaseVertexIndex, - UINT /*MinIndex*/, - UINT /*NumVertices*/, - UINT StartIndex, - UINT PrimitiveCount, - const UINT* /* not used: pShaderInputMappings*/ - ) -{ - const UINT VBOffset = 0; - m_pd3dDevice->IASetVertexBuffers(0, 1, &m_pVB, &m_VertexStride, &VBOffset); - m_pd3dDevice->IASetIndexBuffer(m_pIB, DXGI_FORMAT_R32_UINT, 0); - m_pd3dDevice->IASetInputLayout(m_pLayout); - - D3D10_PRIMITIVE_TOPOLOGY d3dPrimTopology = D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED; - UINT IndexCount = 0; - switch(PrimType) - { - case PT_TriangleStrip: - d3dPrimTopology = D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP; - IndexCount = 2 + PrimitiveCount; - break; - case PT_TriangleList: - d3dPrimTopology = D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST; - IndexCount = 3 * PrimitiveCount; - break; - default: - return E_FAIL; - } - - m_pd3dDevice->IASetPrimitiveTopology(d3dPrimTopology); - m_pd3dDevice->DrawIndexed(IndexCount, StartIndex, BaseVertexIndex); - - return S_OK; -} - -NVWaveWorks_MeshD3D10::NVWaveWorks_MeshD3D10( ID3D10Device* pD3DDevice, - ID3D10InputLayout* pLayout, - ID3D10Buffer* pVertexBuffer, - ID3D10Buffer* pIndexBuffer, - UINT VertexStride - ) : - m_pd3dDevice(pD3DDevice), - m_pLayout(pLayout), - m_pVB(pVertexBuffer), - m_pIB(pIndexBuffer), - m_VertexStride(VertexStride) -{ - m_pd3dDevice->AddRef(); - m_pLayout->AddRef(); - m_pVB->AddRef(); - m_pIB->AddRef(); -} -#endif - #if WAVEWORKS_ENABLE_D3D11 NVWaveWorks_MeshD3D11::~NVWaveWorks_MeshD3D11() { |