Files
test2/intern/cycles/device/graphics_interop.h
Brecht Van Lommel afad355060 Fix: Properly free Vulkan interop handle for Cycles
Unlike OpenGL and Metal, this handle is not shared, but rather Cycles
has to take ownership of it. This required a fair amount of refactoring
to ensure the handle is closed, ownership is properly transferred, and
the handle is recreated once when the pixel buffer is modified.
2025-05-26 10:59:49 +02:00

31 lines
766 B
C++

/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
*
* SPDX-License-Identifier: Apache-2.0 */
#pragma once
#include "util/types.h"
CCL_NAMESPACE_BEGIN
class GraphicsInteropBuffer;
/* Device-side graphics interoperability support.
*
* Takes care of holding all the handlers needed by the device to implement interoperability with
* the graphics library. */
class DeviceGraphicsInterop {
public:
DeviceGraphicsInterop() = default;
virtual ~DeviceGraphicsInterop() = default;
/* Update this device-side graphics interoperability buffer with the given destination
* resource information. */
virtual void set_buffer(GraphicsInteropBuffer &interop_buffer) = 0;
virtual device_ptr map() = 0;
virtual void unmap() = 0;
};
CCL_NAMESPACE_END