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);
27 backend._queries.insert(
object);
33 template <
typename VKQueryType>
34 static uint32_t getId(VKBackend& backend,
const QueryPointer& query) {
56 VKQuery(
const std::weak_ptr<VKBackend>& backend,
const Query& query) : Parent(*backend.lock(), query) {}
58 auto backend = _backend.lock();
59 auto &recycler = backend->getContext().recycler;
60 recycler.queryDeleted(
this);