aboutsummaryrefslogtreecommitdiff
path: root/src/instance_context.hh
blob: 2f448b41f796aff7cf93c7f053fa6945dc641033 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef INSTANCE_CONTEXT_HH_
#define INSTANCE_CONTEXT_HH_

#include <vulkan/utility/vk_dispatch_table.h>

#include <memory>
#include <unordered_map>

#include "context.hh"

namespace low_latency {

class LayerContext;
class PhysicalDeviceContext;

struct InstanceContext final : public Context {

    const LayerContext& layer;

    const VkInstance instance;
    const VkuInstanceDispatchTable vtable;

    std::unordered_map<void*, std::shared_ptr<PhysicalDeviceContext>>
        physical_devices;

  public:
    InstanceContext(const LayerContext& parent_context,
                    const VkInstance& instance,
                    VkuInstanceDispatchTable&& vtable);
    virtual ~InstanceContext();
};

}; // namespace low_latency

#endif