10
11
12
13
14
15
16
17
18
21
22
23
24QQuickGraphicsDevice::QQuickGraphicsDevice()
25 : d(
new QQuickGraphicsDevicePrivate)
30
31
32void QQuickGraphicsDevice::detach()
38
39
40QQuickGraphicsDevice::QQuickGraphicsDevice(
const QQuickGraphicsDevice &other)
47
48
49QQuickGraphicsDevice &QQuickGraphicsDevice::operator=(
const QQuickGraphicsDevice &other)
51 qAtomicAssign(d, other.d);
56
57
58QQuickGraphicsDevice::~QQuickGraphicsDevice()
65
66
67
68bool QQuickGraphicsDevice::isNull()
const
70 return d->type == QQuickGraphicsDevicePrivate::Type::Null;
74
75
76
77
78
79
80
81
82
83#if QT_CONFIG(opengl) || defined(Q_QDOC)
84QQuickGraphicsDevice QQuickGraphicsDevice::fromOpenGLContext(QOpenGLContext *context)
86 QQuickGraphicsDevice dev;
87 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
88 d->type = QQuickGraphicsDevicePrivate::Type::OpenGLContext;
89 d->u.context = context;
95
96
97
98
99
100
101
102
103
104
105
106#if defined(Q_OS_WIN) || defined(Q_QDOC)
107QQuickGraphicsDevice QQuickGraphicsDevice::fromAdapter(quint32 adapterLuidLow,
108 qint32 adapterLuidHigh,
111 QQuickGraphicsDevice dev;
112 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
113 d->type = QQuickGraphicsDevicePrivate::Type::Adapter;
114 d->u.adapter = { adapterLuidLow, adapterLuidHigh, featureLevel };
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135#if defined(Q_OS_WIN) || defined(Q_QDOC)
136QQuickGraphicsDevice QQuickGraphicsDevice::fromDeviceAndContext(
void *device,
void *context)
138 QQuickGraphicsDevice dev;
139 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
140 d->type = QQuickGraphicsDevicePrivate::Type::DeviceAndContext;
141 d->u.deviceAndContext = { device, context };
147
148
149
150
151
152
153
154
155
156
157#if QT_CONFIG(metal) || defined(Q_QDOC)
158QQuickGraphicsDevice QQuickGraphicsDevice::fromDeviceAndCommandQueue(MTLDevice *device,
159 MTLCommandQueue *commandQueue)
161 QQuickGraphicsDevice dev;
162 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
163 d->type = QQuickGraphicsDevicePrivate::Type::DeviceAndCommandQueue;
164 d->u.deviceAndCommandQueue = { device, commandQueue };
170
171
172
173
174
175
176
177
178
179#if QT_CONFIG(vulkan) || defined(Q_QDOC)
180QQuickGraphicsDevice QQuickGraphicsDevice::fromPhysicalDevice(VkPhysicalDevice physicalDevice)
182 QQuickGraphicsDevice dev;
183 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
184 d->type = QQuickGraphicsDevicePrivate::Type::PhysicalDevice;
185 d->u.physicalDevice = { physicalDevice };
191
192
193
194
195
196
197
198
199
200
201#if QT_CONFIG(vulkan) || defined(Q_QDOC)
202QQuickGraphicsDevice QQuickGraphicsDevice::fromDeviceObjects(VkPhysicalDevice physicalDevice,
204 int queueFamilyIndex,
207 QQuickGraphicsDevice dev;
208 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
209 d->type = QQuickGraphicsDevicePrivate::Type::DeviceObjects;
210 d->u.deviceObjects = { physicalDevice, device, queueFamilyIndex, queueIndex };
216
217
218
219
220
221
222
223
224
225QQuickGraphicsDevice QQuickGraphicsDevice::fromRhi(QRhi *rhi)
227 QQuickGraphicsDevice dev;
228 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
229 d->type = QQuickGraphicsDevicePrivate::Type::Rhi;
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249QQuickGraphicsDevice QQuickGraphicsDevice::fromRhiAdapter(QRhiAdapter *adapter)
251 QQuickGraphicsDevice dev;
252 QQuickGraphicsDevicePrivate *d = QQuickGraphicsDevicePrivate::get(&dev);
253 d->type = QQuickGraphicsDevicePrivate::Type::RhiAdapter;
254 d->u.rhiAdapter = adapter;
258QQuickGraphicsDevicePrivate::QQuickGraphicsDevicePrivate()
263QQuickGraphicsDevicePrivate::QQuickGraphicsDevicePrivate(
const QQuickGraphicsDevicePrivate &other)