XGameStreamingGetStreamPhysicalDimensions

Get the physical dimensions of the video stream as it renders on the streaming client.

Syntax

HRESULT XGameStreamingGetStreamPhysicalDimensions(
         XGameStreamingClientId client,
         uint32_t* horizontalMm,
         uint32_t* verticalMm
)

Parameters

client   _In_
Type: XGameStreamingClientId

The client to query the physical size of.

horizontalMm   _Out_
Type: uint32_t*

The size in millimeters of the horizontal axis of the video stream.

verticalMm   _Out_
Type: uint32_t*

The size in millimeters of the vertical axis of the video stream.

Return value

Type: HRESULT

Returns S_OK if successful; otherwise, returns an error code.

Potential Errors

Error Code Error Value Reason for Error
E_GAMESTREAMING_NOT_INITIALIZED 0x89245400 The XGameStreaming runtime has not been initialized. Call XGameStreamingInitialize before calling other APIs.
E_GAMESTREAMING_CLIENT_NOT_CONNECTED 0x89245401 The specified client is not connected.
E_GAMESTREAMING_NO_DATA 0x89245402 The requested data is not available. The data may be available later.

For a list of error codes, see Error Codes.

Remarks

You can use this method to determine whether the stream will be sent to a smaller device (for example, a smartphone).

This allows you to present a more player friendly, device–appropriate experience (for example, by using a larger font size) based on the device size.

If you want the game to respond to changes in the physical dimensions of the stream, then you should register a callback via XGameStreamingRegisterClientPropertiesChanged.

Example

The following code example demonstrates how to use the XGameStreamingGetStreamPhysicalDimensions function to find the smallest dimensions for a streaming client.

void GetSmallestStreamingClient(uint32_t& widthMm, uint32_t& heightMm)
    {
        // If we don't know what the smallest client is, then search through them to find it
        if (m_smallestClient == XGameStreamingNullClientId)
        {
            for (const auto client : m_streamingClients)
            {
                if (client.clientId != XGameStreamingNullClientId)
                {
                    uint32_t clientWidthMm = 0;
                    uint32_t clientHeightMm = 0;
                    if (SUCCEEDED(XGameStreamingGetStreamPhysicalDimensions(client.clientId, &clientWidthMm, &clientHeightMm)))
                    {
                        if (clientWidthMm < m_smallestClientWidthMm)
                        {
                            m_smallestClientWidthMm = clientWidthMm;
                            m_smallestClientHeightMm = clientHeightMm;
                        }
                    }
                }
            }
        }

        widthMm = m_smallestClientWidthMm;
        heightMm = m_smallestClientHeightMm;
    }

Requirements

Header: xgamestreaming.h

Library: xgameruntimelib

Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles

See also

XGameStreaming
XGameStreamingRegisterClientPropertiesChanged
XGameStreaming