10 #define DUNE_D3D_TOOLS
13 #include <DirectXMath.h>
26 ID3D11Query* frequency_;
30 ID3D11DeviceContext* context_;
37 void create(ID3D11Device* device);
43 void begin(ID3D11DeviceContext* context);
53 void set_debug_name(T* obj,
const CHAR* name)
56 obj->SetPrivateData(WKPDID_D3DDebugObjectName, lstrlenA(name), name);
109 void set_viewport(ID3D11DeviceContext* context,
size_t w,
size_t h);
112 DirectX::XMFLOAT3 max(
const DirectX::XMFLOAT3& a,
const DirectX::XMFLOAT3& b);
115 DirectX::XMFLOAT3 min(
const DirectX::XMFLOAT3& a,
const DirectX::XMFLOAT3& b);
118 bool equal(
const DirectX::XMFLOAT4& a,
const DirectX::XMFLOAT4& b);
129 ID3D11RenderTargetView** rtvs,
134 bool is_srgb(ID3D11ShaderResourceView* rtv);
137 bool is_srgb(DXGI_FORMAT f);
139 void assert_hr_detail(
const HRESULT& hr,
const char* file, DWORD line,
const char* msg);
148 #define assert_hr(x) assert_hr_detail(x, __FILE__, __LINE__, #x)
void create(ID3D11Device *device)
Create a profile_query object.
Definition: d3d_tools.cpp:40
void destroy()
Destroy a profile_query object and free its resources.
Definition: d3d_tools.cpp:53
void begin(ID3D11DeviceContext *context)
Start a GPU time query.
Definition: d3d_tools.cpp:61
float result()
Stop measuring time and return the result in miliseconds.
Definition: d3d_tools.cpp:75
void clear_rtvs(ID3D11DeviceContext *context, ID3D11RenderTargetView **rtvs, size_t num_rtvs, FLOAT *clear_color)
Clear a list of render targets with a color.
Definition: d3d_tools.cpp:154
void set_viewport(ID3D11DeviceContext *context, size_t w, size_t h)
Resize the current viewport.
Definition: d3d_tools.cpp:112
void end()
Stop measuring time.
Definition: d3d_tools.cpp:69
A GPU profiler.
Definition: d3d_tools.h:23
void safe_release(T &obj)
Safely release an object of type T, setting it to nullptr afterwards.
Definition: d3d_tools.h:61
void exchange(T **oldv, T *newv)
Exchange an object of type T with a new one.
Definition: d3d_tools.h:86