mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-14 18:23:52 +01:00
3f5f731c42
This needs to be temlpated because we'll be moving EmitCs to the common implementation as well, and make EmitCsChunk non-virtual.
57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <type_traits>
|
|
|
|
#include "d3d11_include.h"
|
|
|
|
#include "../dxvk/dxvk_annotation.h"
|
|
#include "../dxvk/dxvk_device.h"
|
|
|
|
namespace dxvk {
|
|
|
|
class D3D11DeferredContext;
|
|
class D3D11ImmediateContext;
|
|
|
|
template<typename ContextType>
|
|
class D3D11UserDefinedAnnotation final : public IDXVKUserDefinedAnnotation {
|
|
constexpr static bool IsDeferred = std::is_same_v<ContextType, D3D11DeferredContext>;
|
|
public:
|
|
|
|
D3D11UserDefinedAnnotation(
|
|
ContextType* container,
|
|
const Rc<DxvkDevice>& dxvkDevice);
|
|
|
|
~D3D11UserDefinedAnnotation();
|
|
|
|
D3D11UserDefinedAnnotation (const D3D11UserDefinedAnnotation&) = delete;
|
|
D3D11UserDefinedAnnotation& operator = (const D3D11UserDefinedAnnotation&) = delete;
|
|
|
|
ULONG STDMETHODCALLTYPE AddRef();
|
|
|
|
ULONG STDMETHODCALLTYPE Release();
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryInterface(
|
|
REFIID riid,
|
|
void** ppvObject);
|
|
|
|
INT STDMETHODCALLTYPE BeginEvent(
|
|
D3DCOLOR Color,
|
|
LPCWSTR Name);
|
|
|
|
INT STDMETHODCALLTYPE EndEvent();
|
|
|
|
void STDMETHODCALLTYPE SetMarker(
|
|
D3DCOLOR Color,
|
|
LPCWSTR Name);
|
|
|
|
BOOL STDMETHODCALLTYPE GetStatus();
|
|
|
|
private:
|
|
|
|
ContextType* m_container;
|
|
int32_t m_eventDepth;
|
|
bool m_annotationsEnabled;
|
|
};
|
|
|
|
}
|