diff options
| author | Mathew Maidment <mathew1800@gmail.com> | 2016-02-16 21:47:38 -0500 |
|---|---|---|
| committer | Mathew Maidment <mathew1800@gmail.com> | 2016-02-16 21:47:38 -0500 |
| commit | 2e35e7930226b1d5a6bfe8421126883e0390e4a3 (patch) | |
| tree | a4249370546b9b693c5067d84d5f7570d467e724 /Source/Core/VideoBackends/D3D/NativeVertexFormat.cpp | |
| parent | d4b67be2885fa8496cc275454599ec1a1651a3f5 (diff) | |
| parent | 932dd14418fec0661e7ecc3850c46e3e9caee082 (diff) | |
Merge pull request #3643 from lioncash/inclass
NativeVertexFormat: Minor changes
Diffstat (limited to 'Source/Core/VideoBackends/D3D/NativeVertexFormat.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D/NativeVertexFormat.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/Source/Core/VideoBackends/D3D/NativeVertexFormat.cpp b/Source/Core/VideoBackends/D3D/NativeVertexFormat.cpp index be29d9fbfe..0e0b27c031 100644 --- a/Source/Core/VideoBackends/D3D/NativeVertexFormat.cpp +++ b/Source/Core/VideoBackends/D3D/NativeVertexFormat.cpp @@ -2,6 +2,8 @@ // Licensed under GPLv2+ // Refer to the license.txt file included. +#include <array> + #include "VideoBackends/D3D/D3DBase.h" #include "VideoBackends/D3D/D3DBlob.h" #include "VideoBackends/D3D/D3DState.h" @@ -14,16 +16,17 @@ namespace DX11 class D3DVertexFormat : public NativeVertexFormat { - D3D11_INPUT_ELEMENT_DESC m_elems[32]; - UINT m_num_elems; - - ID3D11InputLayout* m_layout; - public: D3DVertexFormat(const PortableVertexDeclaration& vtx_decl); ~D3DVertexFormat() { SAFE_RELEASE(m_layout); } - void SetupVertexPointers(); + void SetupVertexPointers() override; + +private: + std::array<D3D11_INPUT_ELEMENT_DESC, 32> m_elems{}; + UINT m_num_elems = 0; + + ID3D11InputLayout* m_layout = nullptr; }; NativeVertexFormat* VertexManager::CreateNativeVertexFormat(const PortableVertexDeclaration& vtx_decl) @@ -57,10 +60,9 @@ DXGI_FORMAT VarToD3D(VarType t, int size, bool integer) } D3DVertexFormat::D3DVertexFormat(const PortableVertexDeclaration& _vtx_decl) - : m_num_elems(0), m_layout(nullptr) { this->vtx_decl = _vtx_decl; - memset(m_elems, 0, sizeof(m_elems)); + const AttributeFormat* format = &_vtx_decl.position; if (format->enable) @@ -134,7 +136,7 @@ void D3DVertexFormat::SetupVertexPointers() // changes. D3DBlob* vs_bytecode = DX11::VertexShaderCache::GetActiveShaderBytecode(); - HRESULT hr = DX11::D3D::device->CreateInputLayout(m_elems, m_num_elems, vs_bytecode->Data(), vs_bytecode->Size(), &m_layout); + HRESULT hr = DX11::D3D::device->CreateInputLayout(m_elems.data(), m_num_elems, vs_bytecode->Data(), vs_bytecode->Size(), &m_layout); if (FAILED(hr)) PanicAlert("Failed to create input layout, %s %d\n", __FILE__, __LINE__); DX11::D3D::SetDebugObjectName((ID3D11DeviceChild*)m_layout, "input layout used to emulate the GX pipeline"); } |
