Blender V5.0
metal/graphics_interop.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2025 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#ifdef WITH_METAL
6
9
11
13
14class MetalDevice;
15class MetalDeviceQueue;
16
17class MetalDeviceGraphicsInterop : public DeviceGraphicsInterop {
18 public:
19 explicit MetalDeviceGraphicsInterop(MetalDeviceQueue *queue);
20
21 MetalDeviceGraphicsInterop(const MetalDeviceGraphicsInterop &other) = delete;
22 MetalDeviceGraphicsInterop(MetalDeviceGraphicsInterop &&other) noexcept = delete;
23
24 ~MetalDeviceGraphicsInterop() override;
25
26 MetalDeviceGraphicsInterop &operator=(const MetalDeviceGraphicsInterop &other) = delete;
27 MetalDeviceGraphicsInterop &operator=(MetalDeviceGraphicsInterop &&other) = delete;
28
29 void set_buffer(GraphicsInteropBuffer &interop_buffer) override;
30
31 device_ptr map() override;
32 void unmap() override;
33
34 protected:
35 MetalDeviceQueue *queue_ = nullptr;
36 MetalDevice *device_ = nullptr;
37
38 /* Native handle. */
39 MetalDevice::MetalMem mem_;
40 size_t size_ = 0;
41
42 /* The destination was requested to be cleared. */
43 bool need_zero_ = false;
44};
45
47
48#endif
btGeneric6DofConstraint & operator=(btGeneric6DofConstraint &other)
#define CCL_NAMESPACE_END
uint64_t device_ptr
Definition types_base.h:44