1#pragma once
2
3#include <nn/gfx/detail/gfx_DataContainer.h>
4#include <nn/gfx/gfx_QueueData-api.nvn.8.h>
5
6namespace nn::gfx {
7
8class QueueInfo;
9
10namespace detail {
11
12template <>
13class QueueImpl<ApiVariationNvn8> : public DataContainer<QueueImplData<ApiVariationNvn8>> {
14 NN_NO_COPY(QueueImpl);
15
16public:
17 typedef QueueInfo InfoType;
18
19 QueueImpl();
20 ~QueueImpl();
21 void Initialize(DeviceImpl<ApiVariationNvn8>*, const InfoType&);
22 void Finalize(DeviceImpl<ApiVariationNvn8>*);
23 void ExecuteCommand(CommandBufferImpl<ApiVariationNvn8>*, FenceImpl<ApiVariationNvn8>*);
24 void Flush() const;
25 void Sync() const;
26 void SetSemaphore(SemaphoreImpl<ApiVariationNvn8>*);
27 void SyncSemaphore(const SemaphoreImpl<ApiVariationNvn8>*);
28 void CopyToScanBuffer(SwapChainImpl<ApiVariationNvn8>*,
29 const ColorTargetViewImpl<ApiVariationNvn8>*);
30 void Present(SwapChainImpl<ApiVariationNvn8>*, int);
31};
32
33} // namespace detail
34} // namespace nn::gfx