1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-04 01:29:26 +01:00

[d3d8] Refactor D3D8Vertex/IndexBuffer implementation

This commit is contained in:
WinterSnowfall 2025-01-09 11:32:59 +02:00 committed by Philip Rebohle
parent 13ec120289
commit 639f815432
3 changed files with 54 additions and 20 deletions

38
src/d3d8/d3d8_buffer.cpp Normal file
View File

@ -0,0 +1,38 @@
#include "d3d8_buffer.h"
#include "d3d8_device.h"
namespace dxvk {
// D3D8VertexBuffer
D3D8VertexBuffer::D3D8VertexBuffer(
D3D8Device* pDevice,
Com<d3d9::IDirect3DVertexBuffer9>&& pBuffer,
D3DPOOL Pool,
DWORD Usage)
: D3D8VertexBufferBase(pDevice, std::move(pBuffer), Pool, Usage) {
}
D3DRESOURCETYPE STDMETHODCALLTYPE D3D8VertexBuffer::GetType() { return D3DRTYPE_VERTEXBUFFER; }
HRESULT STDMETHODCALLTYPE D3D8VertexBuffer::GetDesc(D3DVERTEXBUFFER_DESC* pDesc) {
return GetD3D9()->GetDesc(reinterpret_cast<d3d9::D3DVERTEXBUFFER_DESC*>(pDesc));
}
// D3D8IndexBuffer
D3D8IndexBuffer::D3D8IndexBuffer(
D3D8Device* pDevice,
Com<d3d9::IDirect3DIndexBuffer9>&& pBuffer,
D3DPOOL Pool,
DWORD Usage)
: D3D8IndexBufferBase(pDevice, std::move(pBuffer), Pool, Usage) {
}
D3DRESOURCETYPE STDMETHODCALLTYPE D3D8IndexBuffer::GetType() { return D3DRTYPE_INDEXBUFFER; }
HRESULT STDMETHODCALLTYPE D3D8IndexBuffer::GetDesc(D3DINDEXBUFFER_DESC* pDesc) {
return GetD3D9()->GetDesc(reinterpret_cast<d3d9::D3DINDEXBUFFER_DESC*>(pDesc));
}
}

View File

@ -50,9 +50,11 @@ namespace dxvk {
} }
protected: protected:
const D3D8Options* m_options; const D3D8Options* m_options;
const D3DPOOL m_pool; const D3DPOOL m_pool;
const DWORD m_usage; const DWORD m_usage;
}; };
@ -65,15 +67,11 @@ namespace dxvk {
D3D8Device* pDevice, D3D8Device* pDevice,
Com<d3d9::IDirect3DVertexBuffer9>&& pBuffer, Com<d3d9::IDirect3DVertexBuffer9>&& pBuffer,
D3DPOOL Pool, D3DPOOL Pool,
DWORD Usage) DWORD Usage);
: D3D8VertexBufferBase(pDevice, std::move(pBuffer), Pool, Usage) {
}
D3DRESOURCETYPE STDMETHODCALLTYPE GetType() final { return D3DRTYPE_VERTEXBUFFER; } D3DRESOURCETYPE STDMETHODCALLTYPE GetType() final;
HRESULT STDMETHODCALLTYPE GetDesc(D3DVERTEXBUFFER_DESC* pDesc) { HRESULT STDMETHODCALLTYPE GetDesc(D3DVERTEXBUFFER_DESC* pDesc);
return GetD3D9()->GetDesc(reinterpret_cast<d3d9::D3DVERTEXBUFFER_DESC*>(pDesc));
}
}; };
@ -86,15 +84,12 @@ namespace dxvk {
D3D8Device* pDevice, D3D8Device* pDevice,
Com<d3d9::IDirect3DIndexBuffer9>&& pBuffer, Com<d3d9::IDirect3DIndexBuffer9>&& pBuffer,
D3DPOOL Pool, D3DPOOL Pool,
DWORD Usage) DWORD Usage);
: D3D8IndexBufferBase(pDevice, std::move(pBuffer), Pool, Usage) {
}
D3DRESOURCETYPE STDMETHODCALLTYPE GetType() final { return D3DRTYPE_INDEXBUFFER; } D3DRESOURCETYPE STDMETHODCALLTYPE GetType() final;
HRESULT STDMETHODCALLTYPE GetDesc(D3DINDEXBUFFER_DESC* pDesc) final { HRESULT STDMETHODCALLTYPE GetDesc(D3DINDEXBUFFER_DESC* pDesc) final;
return GetD3D9()->GetDesc(reinterpret_cast<d3d9::D3DINDEXBUFFER_DESC*>(pDesc));
}
}; };
} }

View File

@ -1,6 +1,7 @@
d3d8_res = wrc_generator.process('version.rc') d3d8_res = wrc_generator.process('version.rc')
d3d8_src = [ d3d8_src = [
'd3d8_buffer.cpp',
'd3d8_device.cpp', 'd3d8_device.cpp',
'd3d8_interface.cpp', 'd3d8_interface.cpp',
'd3d8_main.cpp', 'd3d8_main.cpp',