GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
vr::IVRTrackedCamera Class Reference

#include <openvr_mingw.h>

Public Member Functions

const char * GetCameraErrorNameFromEnum (vr::EVRTrackedCameraError eCameraError)
vr::EVRTrackedCameraError HasCamera (vr::TrackedDeviceIndex_t nDeviceIndex, bool *pHasCamera)
vr::EVRTrackedCameraError GetCameraFrameSize (vr::TrackedDeviceIndex_t nDeviceIndex, vr::EVRTrackedCameraFrameType eFrameType, uint32_t *pnWidth, uint32_t *pnHeight, uint32_t *pnFrameBufferSize)
vr::EVRTrackedCameraError GetCameraIntrinsics (vr::TrackedDeviceIndex_t nDeviceIndex, vr::EVRTrackedCameraFrameType eFrameType, vr::HmdVector2_t *pFocalLength, vr::HmdVector2_t *pCenter)
vr::EVRTrackedCameraError GetCameraProjection (vr::TrackedDeviceIndex_t nDeviceIndex, vr::EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, vr::HmdMatrix44_t *pProjection)
vr::EVRTrackedCameraError AcquireVideoStreamingService (vr::TrackedDeviceIndex_t nDeviceIndex, vr::TrackedCameraHandle_t *pHandle)
vr::EVRTrackedCameraError ReleaseVideoStreamingService (vr::TrackedCameraHandle_t hTrackedCamera)
vr::EVRTrackedCameraError GetVideoStreamFrameBuffer (vr::TrackedCameraHandle_t hTrackedCamera, vr::EVRTrackedCameraFrameType eFrameType, void *pFrameBuffer, uint32_t nFrameBufferSize, vr::CameraVideoStreamFrameHeader_t *pFrameHeader, uint32_t nFrameHeaderSize)
vr::EVRTrackedCameraError GetVideoStreamTextureSize (vr::TrackedDeviceIndex_t nDeviceIndex, vr::EVRTrackedCameraFrameType eFrameType, vr::VRTextureBounds_t *pTextureBounds, uint32_t *pnWidth, uint32_t *pnHeight)
vr::EVRTrackedCameraError GetVideoStreamTextureD3D11 (vr::TrackedCameraHandle_t hTrackedCamera, vr::EVRTrackedCameraFrameType eFrameType, void *pD3D11DeviceOrResource, void **ppD3D11ShaderResourceView, vr::CameraVideoStreamFrameHeader_t *pFrameHeader, uint32_t nFrameHeaderSize)
vr::EVRTrackedCameraError GetVideoStreamTextureGL (vr::TrackedCameraHandle_t hTrackedCamera, vr::EVRTrackedCameraFrameType eFrameType, vr::glUInt_t *pglTextureId, vr::CameraVideoStreamFrameHeader_t *pFrameHeader, uint32_t nFrameHeaderSize)
vr::EVRTrackedCameraError ReleaseVideoStreamTextureGL (vr::TrackedCameraHandle_t hTrackedCamera, vr::glUInt_t glTextureId)

Member Function Documentation

◆ AcquireVideoStreamingService()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::AcquireVideoStreamingService ( vr::TrackedDeviceIndex_t nDeviceIndex,
vr::TrackedCameraHandle_t * pHandle )
inline

Acquiring streaming service permits video streaming for the caller. Releasing hints the system that video services do not need to be maintained for this client. If the camera has not already been activated, a one time spin up may incur some auto exposure as well as initial streaming frame delays. The camera should be considered a global resource accessible for shared consumption but not exclusive to any caller. The camera may go inactive due to lack of active consumers or headset idleness.

◆ GetCameraErrorNameFromEnum()

const char * vr::IVRTrackedCamera::GetCameraErrorNameFromEnum ( vr::EVRTrackedCameraError eCameraError)
inline

Returns a string for an error

◆ GetCameraFrameSize()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::GetCameraFrameSize ( vr::TrackedDeviceIndex_t nDeviceIndex,
vr::EVRTrackedCameraFrameType eFrameType,
uint32_t * pnWidth,
uint32_t * pnHeight,
uint32_t * pnFrameBufferSize )
inline

Gets size of the image frame.

◆ GetCameraIntrinsics()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::GetCameraIntrinsics ( vr::TrackedDeviceIndex_t nDeviceIndex,
vr::EVRTrackedCameraFrameType eFrameType,
vr::HmdVector2_t * pFocalLength,
vr::HmdVector2_t * pCenter )
inline

◆ GetCameraProjection()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::GetCameraProjection ( vr::TrackedDeviceIndex_t nDeviceIndex,
vr::EVRTrackedCameraFrameType eFrameType,
float flZNear,
float flZFar,
vr::HmdMatrix44_t * pProjection )
inline

◆ GetVideoStreamFrameBuffer()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::GetVideoStreamFrameBuffer ( vr::TrackedCameraHandle_t hTrackedCamera,
vr::EVRTrackedCameraFrameType eFrameType,
void * pFrameBuffer,
uint32_t nFrameBufferSize,
vr::CameraVideoStreamFrameHeader_t * pFrameHeader,
uint32_t nFrameHeaderSize )
inline

Copies the image frame into a caller's provided buffer. The image data is currently provided as RGBA data, 4 bytes per pixel. A caller can provide null for the framebuffer or frameheader if not desired. Requesting the frame header first, followed by the frame buffer allows the caller to determine if the frame as advanced per the frame header sequence. If there is no frame available yet, due to initial camera spinup or re-activation, the error will be VRTrackedCameraError_NoFrameAvailable. Ideally a caller should be polling at ~16ms intervals

◆ GetVideoStreamTextureD3D11()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::GetVideoStreamTextureD3D11 ( vr::TrackedCameraHandle_t hTrackedCamera,
vr::EVRTrackedCameraFrameType eFrameType,
void * pD3D11DeviceOrResource,
void ** ppD3D11ShaderResourceView,
vr::CameraVideoStreamFrameHeader_t * pFrameHeader,
uint32_t nFrameHeaderSize )
inline

Access a shared D3D11 texture for the specified tracked camera stream. The camera frame type VRTrackedCameraFrameType_Undistorted is not supported directly as a shared texture. It is an interior subregion of the shared texture VRTrackedCameraFrameType_MaximumUndistorted. Instead, use GetVideoStreamTextureSize() with VRTrackedCameraFrameType_Undistorted to determine the proper interior subregion bounds along with GetVideoStreamTextureD3D11() with VRTrackedCameraFrameType_MaximumUndistorted to provide the texture. The VRTrackedCameraFrameType_MaximumUndistorted will yield an image where the invalid regions are decoded by the alpha channel having a zero component. The valid regions all have a non-zero alpha component. The subregion as described by VRTrackedCameraFrameType_Undistorted guarantees a rectangle where all pixels are valid.

◆ GetVideoStreamTextureGL()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::GetVideoStreamTextureGL ( vr::TrackedCameraHandle_t hTrackedCamera,
vr::EVRTrackedCameraFrameType eFrameType,
vr::glUInt_t * pglTextureId,
vr::CameraVideoStreamFrameHeader_t * pFrameHeader,
uint32_t nFrameHeaderSize )
inline

Access a shared GL texture for the specified tracked camera stream

◆ GetVideoStreamTextureSize()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::GetVideoStreamTextureSize ( vr::TrackedDeviceIndex_t nDeviceIndex,
vr::EVRTrackedCameraFrameType eFrameType,
vr::VRTextureBounds_t * pTextureBounds,
uint32_t * pnWidth,
uint32_t * pnHeight )
inline

Gets size of the image frame.

◆ HasCamera()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::HasCamera ( vr::TrackedDeviceIndex_t nDeviceIndex,
bool * pHasCamera )
inline

For convenience, same as tracked property request Prop_HasCamera_Bool

◆ ReleaseVideoStreamingService()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::ReleaseVideoStreamingService ( vr::TrackedCameraHandle_t hTrackedCamera)
inline

◆ ReleaseVideoStreamTextureGL()

vr::EVRTrackedCameraError vr::IVRTrackedCamera::ReleaseVideoStreamTextureGL ( vr::TrackedCameraHandle_t hTrackedCamera,
vr::glUInt_t glTextureId )
inline

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