Skip to main content
Version: 0.9.0 (next)

QarRenderSenderInit Struct

Rendering stream sender configuration. More...

Declaration​

struct QarRenderSenderInit { ... }

Included Headers​

Public Member Attributes Index​

const QarAppVolumeId *app_volume_id
QarPixelFormatcolor_format

Color pixel format. More...

QarPixelFormatdepth_format

Depth pixel format. More...

boolenable_auto_reconnects
QarRenderFrameViewframe_views[QAR_MAX_FRAME_VIEWS]
size_tframe_views_count
QarGraphicsAPIgraphics_api
QarStructureHeaderheader

Extensible header; see the backend-specific stream parameter structs. More...

QarPeerIdpeer_id
QarFrameLayouttexture_layout

Frame layout configuration. More...

Description​

Rendering stream sender configuration.

Backend-specific graphics context/device configuration is supplied through header.next. Exactly one extension is required for a GPU API:

  • QAR_GRAPHICS_API_D3D11 requires QarStreamParamsD3D11.
  • QAR_GRAPHICS_API_OPENGL requires exactly one of QarStreamParamsOpenGlEgl, QarStreamParamsOpenGlWgl or QarStreamParamsOpenGlGlx, whichever matches the context you own.
  • QAR_GRAPHICS_API_VULKAN requires QarStreamParamsVulkan. QAR_GRAPHICS_API_CPU supports no extension and requires header.next to be null. The selected extension's header.next must also be null.

Definition at line 1761 of file qar_streaming.h.

Public Member Attributes​

app_volume_id​

const QarAppVolumeId* QarRenderSenderInit::app_volume_id

Required. The app volume this stream is displayed in, which is what places it in the session's shared 3D scene. Create the volume first with qar_app_volumes_get_or_create() and pass the id it wrote out; a stream without one is not positioned in the scene and no viewer can show it.

It also defines the sender's app content space: every pose, hand joint, radius and velocity the sender hands the application is in it. While the volume does not resolve, the sender hands out nothing: begin-frame fails with QAR_STATUS_RENDERING_PRODUCER_APP_VOLUME_UNRESOLVED and the hands are reported untracked.

NULL is rejected with QAR_STATUS_APP_VOLUME_INVALID_ID.

Definition at line 1809 of file qar_streaming.h.

color_format​

QarPixelFormat QarRenderSenderInit::color_format

Color pixel format.

Definition at line 1812 of file qar_streaming.h.

depth_format​

QarPixelFormat QarRenderSenderInit::depth_format

Depth pixel format.

Definition at line 1815 of file qar_streaming.h.

enable_auto_reconnects​

bool QarRenderSenderInit::enable_auto_reconnects

In case of stream failure caused by network issue or other side crash we will automatically restart stream and try to recreate a stream transparently in the background

Definition at line 1777 of file qar_streaming.h.

frame_views​

QarRenderFrameView QarRenderSenderInit::frame_views[QAR_MAX_FRAME_VIEWS]

Array of views in the single video frame.

The order is guaranteed. The views of the layout (qar_render_sender_layout()) and of every frame this sender hands back (qar_render_sender_frame_*()) come in exactly the order declared here, each with the eye and data_type declared at its position. Textures come in the order the views first use them: one per view for QAR_FRAME_LAYOUT_SEPARATED_TEXTURES, one per data type for side by side and layered, and each view's texture_index names its texture. A view the frame layout provides but you did not declare follows the declared ones.

Definition at line 1793 of file qar_streaming.h.

frame_views_count​

size_t QarRenderSenderInit::frame_views_count

Definition at line 1794 of file qar_streaming.h.

graphics_api​

QarGraphicsAPI QarRenderSenderInit::graphics_api

Selects the backend and therefore the matching optional header extension.

Definition at line 1819 of file qar_streaming.h.

header​

QarStructureHeader QarRenderSenderInit::header

Extensible header; see the backend-specific stream parameter structs.

Definition at line 1764 of file qar_streaming.h.

peer_id​

QarPeerId QarRenderSenderInit::peer_id

Required. The peer this stream renders for - the headset or viewer that will receive these frames, never this process' own peer id. See "Basic flow" in api.h for how to find target peer ids.

qar_peer_id_unique() does not produce a usable value here: it mints a fresh id belonging to no peer, so a stream created with one is negotiated with nobody and never produces a frame.

Definition at line 1772 of file qar_streaming.h.

texture_layout​

QarFrameLayout QarRenderSenderInit::texture_layout

Frame layout configuration.

Definition at line 1780 of file qar_streaming.h.


The documentation for this struct was generated from the following file:


Generated via doxygen2docusaurus 2.2.1 by Doxygen 1.9.8.