Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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