8 #ifndef hifi_gpu_vk_VKQuery_h
9 #define hifi_gpu_vk_VKQuery_h
12 #include "VKBackend.h"
14 namespace gpu {
namespace vk {
16 class VKQuery :
public VKObject<Query> {
17 using Parent = gpu::vk::VKObject<Query>;
19 static VKQuery* sync(VKBackend& backend,
const Query& query) {
20 VKQuery*
object = Backend::getGPUObject<VKQuery>(query);
25 object =
new VKQuery(backend.shared_from_this(), query);
26 Backend::setGPUObject(query,
object);
32 template <
typename VKQueryType>
33 static uint32_t getId(VKBackend& backend,
const QueryPointer& query) {
55 VKQuery(
const std::weak_ptr<VKBackend>& backend,
const Query& query) : Parent(*backend.lock(), query) {}
57 auto backend = _backend.lock();
58 auto &recycler = backend->getContext().recycler;
59 recycler.queryDeleted(
this);