Method

MaplibreNativeFfiMapattach_wayland_surface

Declaration [src]

MaplibreNativeFfiRenderSession*
maplibre_native_ffi_map_attach_wayland_surface (
  MaplibreNativeFfiMap* self,
  MaplibreNativeFfiWaylandSurfaceDescriptor* descriptor,
  MaplibreNativeFfiVulkanDevice* device,
  MaplibreNativeFfiRenderSessionAttachOptions* options,
  GError** error
)

Description [src]

Creates a session that presents the map to a Wayland surface, with a graphics context that the library creates.

A Vulkan build presents with device, or, when device is null, with a device that the library creates. An OpenGL build uses an EGL context on the display, and device must be null. Attach with MAPLIBRE_NATIVE_FFI_RENDER_DRIVER_CORE_WORKER.

The session presents without waiting for the compositor, so demand at most one frame per display refresh.

Keep the surface until a release or replacement of the target, or a detach of the session, completes. Keep the display connected until the session’s detach completes. In an OpenGL build, if you also use EGL on the display, initialize it before you attach.

The object is ready once maplibre_native_ffi_render_session_ready_async finishes, which fails with the errors that the completion reports.

See mln_map_attach_wayland_surface in the C API reference.

It fails with these errors:

  • MAPLIBRE_NATIVE_FFI_ERROR_UNSUPPORTED when you created device without MaplibreNativeFfiVulkanDeviceOptions:presentation.
  • MAPLIBRE_NATIVE_FFI_ERROR_UNSUPPORTED when the GPU or the Vulkan loader can’t present to Wayland.
  • MAPLIBRE_NATIVE_FFI_ERROR_NATIVE_ERROR when the library can’t create the graphics context or present to the surface.

Parameters

descriptor

Type: MaplibreNativeFfiWaylandSurfaceDescriptor

No description available.

The data is owned by the caller of the method.
device

Type: MaplibreNativeFfiVulkanDevice

The handle, or NULL.

The argument can be NULL.
The data is owned by the caller of the method.
options

Type: MaplibreNativeFfiRenderSessionAttachOptions

No description available.

The data is owned by the caller of the method.
error

Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will be left initialized to NULL by the method if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: MaplibreNativeFfiRenderSession

The new object, or NULL with error set.

The caller of the method takes ownership of the returned data, and is responsible for freeing it.