-
Notifications
You must be signed in to change notification settings - Fork 3
/
DeviceObjectRegistry.h
41 lines (37 loc) · 1.14 KB
/
DeviceObjectRegistry.h
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
36
37
38
39
40
41
#pragma once
#include "DeviceArray.h"
#include "DeviceCopyableObjects.h"
namespace visionaray
{
struct DeviceCopyableObjects
{
// One TLS per world
DeviceObjectArray<dco::TLS> TLSs;
DeviceObjectArray<dco::World> worlds; // TODO: move TLSs and EPS in here!
DeviceObjectArray<dco::Group> groups;
DeviceObjectArray<dco::Surface> surfaces;
DeviceObjectArray<dco::Instance> instances;
DeviceObjectArray<dco::Geometry> geometries;
DeviceObjectArray<dco::Material> materials;
DeviceObjectArray<dco::Sampler> samplers;
DeviceObjectArray<dco::Volume> volumes;
DeviceObjectArray<dco::SpatialField> spatialFields;
DeviceObjectArray<dco::Light> lights;
DeviceObjectArray<dco::Frame> frames;
};
struct DeviceObjectRegistry
{
dco::TLS *TLSs{nullptr};
dco::World *worlds{nullptr};
dco::Group *groups{nullptr};
dco::Surface *surfaces{nullptr};
dco::Instance *instances{nullptr};
dco::Geometry *geometries{nullptr};
dco::Material *materials{nullptr};
dco::Sampler *samplers{nullptr};
dco::Volume *volumes{nullptr};
dco::SpatialField *spatialFields{nullptr};
dco::Light *lights{nullptr};
dco::Frame *frames{nullptr};
};
} // visionaray