1#pragma once
2
3#include <nn/gfx/detail/gfx_Queue-api.nvn.8.h>
4
5namespace nn::gfx {
6
7template <class TTarget>
8class TQueue : public detail::QueueImpl<TTarget> {
9 NN_NO_COPY(TQueue);
10
11public:
12 typedef QueueInfo InfoType;
13
14 TQueue();
15 void Initialize(TDevice<TTarget>*, const InfoType&);
16 void Finalize(TDevice<TTarget>*);
17 void ExecuteCommand(TCommandBuffer<TTarget>*, TFence<TTarget>*);
18 void Flush();
19 void Sync();
20 void SetSemaphore(TSemaphore<TTarget>*);
21 void SyncSemaphore(const TSemaphore<TTarget>*);
22 void CopyToScanBuffer(TSwapChain<TTarget>*, const TColorTargetView<TTarget>*);
23 void Present(TSwapChain<TTarget>*, int);
24 void SetUserPtr(void*);
25 void* GetUserPtr();
26 const void* GetUserPtr() const;
27};
28
29} // namespace nn::gfx