mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2024-12-29 11:06:18 +00:00
26 lines
1.1 KiB
Plaintext
26 lines
1.1 KiB
Plaintext
|
%% Copyright 2024, Collabora, Ltd. and the Monado contributors
|
||
|
%% SPDX-License-Identifier: BSL-1.0
|
||
|
|
||
|
%% Out of process, typical behavior (server-side allocation)
|
||
|
sequenceDiagram
|
||
|
box Client Process
|
||
|
participant app
|
||
|
participant cc as client compositor
|
||
|
participant client_native as client process<br/>native compositor<br/>(IPC Stub)
|
||
|
end
|
||
|
box Server Process
|
||
|
participant server_ipc_handler as Server IPC handler
|
||
|
participant server_comp as Server xrt_compositor_native
|
||
|
end
|
||
|
|
||
|
app->>+cc: xrCreateSwapchain
|
||
|
cc->>+client_native: xrt_comp_create_swapchain
|
||
|
client_native->>+server_ipc_handler: xrt_comp_create_swapchain<br/>(IPC call)
|
||
|
server_ipc_handler->>+server_comp: xrt_comp_create_swapchain
|
||
|
server_comp->>-server_ipc_handler: xrt_swapchain impl
|
||
|
server_ipc_handler->>-client_native: swapchain ID and<br/>image handles<br/>(over IPC)
|
||
|
client_native->>-cc: return ipc_swapchain<br/>as inner xrt_swapchain
|
||
|
Note over cc: Keep reference to inner xrt_swapchain in<br>the object we create
|
||
|
Note over cc: Import handles from<br/>inner xrt_swapchain into client API
|
||
|
cc->>-app: return swapchain
|