1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00
OpenDX/src/d3d11/d3d11_buffer.h
Philip Rebohle bdce9a69fb [d3d11] Map() optimization removed, needs buffer renaming
The naive optimization to use staging buffers rather than actual mapping
turned out to be no more efficient than the previous approach. In order
to achieve good performance, buffer renaming must be implemented instead.
2017-12-14 12:29:41 +01:00

61 lines
1.5 KiB
C++

#pragma once
#include <dxvk_device.h>
#include "d3d11_device_child.h"
#include "d3d11_interfaces.h"
namespace dxvk {
class D3D11Device;
class D3D11DeviceContext;
class D3D11Buffer : public D3D11DeviceChild<ID3D11Buffer> {
public:
D3D11Buffer(
D3D11Device* device,
IDXGIBufferResourcePrivate* resource,
const D3D11_BUFFER_DESC& desc);
~D3D11Buffer();
HRESULT STDMETHODCALLTYPE QueryInterface(
REFIID riid,
void** ppvObject) final;
void STDMETHODCALLTYPE GetDevice(
ID3D11Device **ppDevice) final;
void STDMETHODCALLTYPE GetType(
D3D11_RESOURCE_DIMENSION *pResourceDimension) final;
UINT STDMETHODCALLTYPE GetEvictionPriority() final;
void STDMETHODCALLTYPE SetEvictionPriority(UINT EvictionPriority) final;
void STDMETHODCALLTYPE GetDesc(
D3D11_BUFFER_DESC *pDesc) final;
HRESULT Map(
D3D11DeviceContext* pContext,
D3D11_MAP MapType,
UINT MapFlags,
D3D11_MAPPED_SUBRESOURCE* pMappedSubresource);
void Unmap(
D3D11DeviceContext* pContext);
Rc<DxvkBuffer> GetDXVKBuffer();
private:
Com<D3D11Device> m_device;
Com<IDXGIBufferResourcePrivate> m_resource;
D3D11_BUFFER_DESC m_desc;
};
}