mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-16 12:17:34 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
37
gfx/vr/osvr/ClientKit/ClientKitC.h
Normal file
37
gfx/vr/osvr/ClientKit/ClientKitC.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/** @file
|
||||
@brief Header
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@date 2014
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2014 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_ClientKitC_h_GUID_8D7DF104_892D_4CB5_2302_7C6BB5BC985C
|
||||
#define INCLUDED_ClientKitC_h_GUID_8D7DF104_892D_4CB5_2302_7C6BB5BC985C
|
||||
|
||||
#include <osvr/ClientKit/ContextC.h>
|
||||
#include <osvr/ClientKit/InterfaceC.h>
|
||||
#include <osvr/ClientKit/InterfaceCallbackC.h>
|
||||
#include <osvr/ClientKit/SystemCallbackC.h>
|
||||
|
||||
#endif
|
||||
96
gfx/vr/osvr/ClientKit/ContextC.h
Normal file
96
gfx/vr/osvr/ClientKit/ContextC.h
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
/** @file
|
||||
@brief Header
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@todo Apply annotation macros
|
||||
|
||||
@date 2014
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2014 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_ContextC_h_GUID_3790F330_2425_4486_4C9F_20C300D7DED3
|
||||
#define INCLUDED_ContextC_h_GUID_3790F330_2425_4486_4C9F_20C300D7DED3
|
||||
|
||||
/* Internal Includes */
|
||||
#include <osvr/ClientKit/Export.h>
|
||||
#include <osvr/Util/APIBaseC.h>
|
||||
#include <osvr/Util/ReturnCodesC.h>
|
||||
#include <osvr/Util/AnnotationMacrosC.h>
|
||||
#include <osvr/Util/StdInt.h>
|
||||
#include <osvr/Util/ClientOpaqueTypesC.h>
|
||||
|
||||
/* Library/third-party includes */
|
||||
/* none */
|
||||
|
||||
/* Standard includes */
|
||||
/* none */
|
||||
|
||||
OSVR_EXTERN_C_BEGIN
|
||||
|
||||
/** @addtogroup ClientKit
|
||||
@{
|
||||
*/
|
||||
|
||||
/** @brief Initialize the library.
|
||||
|
||||
@param applicationIdentifier A null terminated string identifying your
|
||||
application. Reverse DNS format strongly suggested.
|
||||
@param flags initialization options (reserved) - pass 0 for now.
|
||||
|
||||
@returns Client context - will be needed for subsequent calls
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ClientContext osvrClientInit(
|
||||
const char applicationIdentifier[], uint32_t flags OSVR_CPP_ONLY(= 0));
|
||||
|
||||
/** @brief Updates the state of the context - call regularly in your mainloop.
|
||||
|
||||
@param ctx Client context
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientUpdate(OSVR_ClientContext ctx);
|
||||
|
||||
/** @brief Checks to see if the client context is fully started up and connected
|
||||
properly to a server.
|
||||
|
||||
If this reports that the client context is not OK, there may not be a server
|
||||
running, or you may just have to call osvrClientUpdate() a few times to
|
||||
permit startup to finish. The return value of this call will not change from
|
||||
failure to success without calling osvrClientUpdate().
|
||||
|
||||
@param ctx Client context
|
||||
|
||||
@return OSVR_RETURN_FAILURE if not yet fully connected/initialized, or if
|
||||
some other error (null context) occurs.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientCheckStatus(OSVR_ClientContext ctx);
|
||||
|
||||
/** @brief Shutdown the library.
|
||||
@param ctx Client context
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientShutdown(OSVR_ClientContext ctx);
|
||||
|
||||
/** @} */
|
||||
OSVR_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
506
gfx/vr/osvr/ClientKit/DisplayC.h
Normal file
506
gfx/vr/osvr/ClientKit/DisplayC.h
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
/** @file
|
||||
@brief Header
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@date 2015
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2015 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_DisplayC_h_GUID_8658EDC9_32A2_49A2_5F5C_10F67852AE74
|
||||
#define INCLUDED_DisplayC_h_GUID_8658EDC9_32A2_49A2_5F5C_10F67852AE74
|
||||
|
||||
/* Internal Includes */
|
||||
#include <osvr/ClientKit/Export.h>
|
||||
#include <osvr/Util/APIBaseC.h>
|
||||
#include <osvr/Util/ReturnCodesC.h>
|
||||
#include <osvr/Util/ClientOpaqueTypesC.h>
|
||||
#include <osvr/Util/RenderingTypesC.h>
|
||||
#include <osvr/Util/MatrixConventionsC.h>
|
||||
#include <osvr/Util/Pose3C.h>
|
||||
#include <osvr/Util/BoolC.h>
|
||||
#include <osvr/Util/RadialDistortionParametersC.h>
|
||||
|
||||
/* Library/third-party includes */
|
||||
/* none */
|
||||
|
||||
/* Standard includes */
|
||||
/* none */
|
||||
|
||||
OSVR_EXTERN_C_BEGIN
|
||||
/** @addtogroup ClientKit
|
||||
@{
|
||||
@name Display API
|
||||
@{
|
||||
*/
|
||||
|
||||
/** @brief Opaque type of a display configuration. */
|
||||
typedef struct OSVR_DisplayConfigObject *OSVR_DisplayConfig;
|
||||
|
||||
/** @brief Allocates a display configuration object populated with data from the
|
||||
OSVR system.
|
||||
|
||||
Before this call will succeed, your application will need to be correctly
|
||||
and fully connected to an OSVR server. You may consider putting this call in
|
||||
a loop alternating with osvrClientUpdate() until this call succeeds.
|
||||
|
||||
Data provided by a display configuration object:
|
||||
|
||||
- The logical display topology (number and relationship of viewers, eyes,
|
||||
and surfaces), which remains constant throughout the life of the
|
||||
configuration object. (A method of notification of change here is TBD).
|
||||
- Pose data for viewers (not required for rendering) and pose/view data for
|
||||
eyes (used for rendering) which is based on tracker data: if used, these
|
||||
should be queried every frame.
|
||||
- Projection matrix data for surfaces, which while in current practice may
|
||||
be relatively unchanging, we are not guaranteeing them to be constant:
|
||||
these should be queried every frame.
|
||||
- Video-input-relative viewport size/location for a surface: would like this
|
||||
to be variable, but probably not feasible. If you have input, please
|
||||
comment on the dev mailing list.
|
||||
- Per-surface distortion strategy priorities/availabilities: constant. Note
|
||||
the following, though...
|
||||
- Per-surface distortion strategy parameters: variable, request each frame.
|
||||
(Could make constant with a notification if needed?)
|
||||
|
||||
Important note: While most of this data is immediately available if you are
|
||||
successful in getting a display config object, the pose-based data (viewer
|
||||
pose, eye pose, eye view matrix) needs tracker state, so at least one (and in
|
||||
practice, typically more) osvrClientUpdate() must be performed before a new
|
||||
tracker report is available to populate that state. See
|
||||
osvrClientCheckDisplayStartup() to query if all startup data is available.
|
||||
|
||||
@todo Decide if relative viewport should be constant in a display config,
|
||||
and update docs accordingly.
|
||||
|
||||
@todo Decide if distortion params should be constant in a display config,
|
||||
and update docs accordingly.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed or some other
|
||||
error occurred, in which case the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetDisplay(OSVR_ClientContext ctx, OSVR_DisplayConfig *disp);
|
||||
|
||||
/** @brief Frees a display configuration object. The corresponding context must
|
||||
still be open.
|
||||
|
||||
If you fail to call this, it will be automatically called as part of
|
||||
clean-up when the corresponding context is closed.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if a null config was passed, or if the given
|
||||
display object was already freed.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientFreeDisplay(OSVR_DisplayConfig disp);
|
||||
|
||||
/** @brief Checks to see if a display is fully configured and ready, including
|
||||
having received its first pose update.
|
||||
|
||||
Once this first succeeds, it will continue to succeed for the lifetime of
|
||||
the display config object, so it is not necessary to keep calling once you
|
||||
get a successful result.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if a null config was passed, or if the given
|
||||
display config object was otherwise not ready for full use.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientCheckDisplayStartup(OSVR_DisplayConfig disp);
|
||||
|
||||
/** @brief A display config can have one or more display inputs to pass pixels
|
||||
over (HDMI/DVI connections, etc): retrieve the number of display inputs in
|
||||
the current configuration.
|
||||
|
||||
@param disp Display config object.
|
||||
@param[out] numDisplayInputs Number of display inputs in the logical display
|
||||
topology, **constant** throughout the active, valid lifetime of a display
|
||||
config object.
|
||||
|
||||
@sa OSVR_DisplayInputCount
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in
|
||||
which case the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientGetNumDisplayInputs(
|
||||
OSVR_DisplayConfig disp, OSVR_DisplayInputCount *numDisplayInputs);
|
||||
|
||||
/** @brief Retrieve the pixel dimensions of a given display input for a display
|
||||
config
|
||||
|
||||
@param disp Display config object.
|
||||
@param displayInputIndex The zero-based index of the display input.
|
||||
@param[out] width Width (in pixels) of the display input.
|
||||
@param[out] height Height (in pixels) of the display input.
|
||||
|
||||
The out parameters are **constant** throughout the active, valid lifetime of
|
||||
a display config object.
|
||||
|
||||
@sa OSVR_DisplayDimension
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in
|
||||
which case the output arguments are unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientGetDisplayDimensions(
|
||||
OSVR_DisplayConfig disp, OSVR_DisplayInputCount displayInputIndex,
|
||||
OSVR_DisplayDimension *width, OSVR_DisplayDimension *height);
|
||||
|
||||
/** @brief A display config can have one (or theoretically more) viewers:
|
||||
retrieve the viewer count.
|
||||
|
||||
@param disp Display config object.
|
||||
@param[out] viewers Number of viewers in the logical display topology,
|
||||
**constant** throughout the active, valid lifetime of a display config
|
||||
object.
|
||||
|
||||
@sa OSVR_ViewerCount
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetNumViewers(OSVR_DisplayConfig disp, OSVR_ViewerCount *viewers);
|
||||
|
||||
/** @brief Get the pose of a viewer in a display config.
|
||||
|
||||
Note that there may not necessarily be any surfaces rendered from this pose
|
||||
(it's the unused "center" eye in a stereo configuration, for instance) so
|
||||
only use this if it makes integration into your engine or existing
|
||||
applications (not originally designed for stereo) easier.
|
||||
|
||||
Will only succeed if osvrClientCheckDisplayStartup() succeeds.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was
|
||||
yet available, in which case the pose argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientGetViewerPose(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_Pose3 *pose);
|
||||
|
||||
/** @brief Each viewer in a display config can have one or more "eyes" which
|
||||
have a substantially similar pose: get the count.
|
||||
|
||||
@param disp Display config object.
|
||||
@param viewer Viewer ID
|
||||
@param[out] eyes Number of eyes for this viewer in the logical display
|
||||
topology, **constant** throughout the active, valid lifetime of a display
|
||||
config object
|
||||
|
||||
@sa OSVR_EyeCount
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientGetNumEyesForViewer(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount *eyes);
|
||||
|
||||
/** @brief Get the "viewpoint" for the given eye of a viewer in a display
|
||||
config.
|
||||
|
||||
Will only succeed if osvrClientCheckDisplayStartup() succeeds.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param[out] pose Room-space pose (not relative to pose of the viewer)
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was
|
||||
yet available, in which case the pose argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetViewerEyePose(OSVR_DisplayConfig disp, OSVR_ViewerCount viewer,
|
||||
OSVR_EyeCount eye, OSVR_Pose3 *pose);
|
||||
|
||||
/** @brief Get the view matrix (inverse of pose) for the given eye of a
|
||||
viewer in a display config - matrix of **doubles**.
|
||||
|
||||
Will only succeed if osvrClientCheckDisplayStartup() succeeds.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)
|
||||
@param[out] mat Pass a double[::OSVR_MATRIX_SIZE] to get the transformation
|
||||
matrix from room space to eye space (not relative to pose of the viewer)
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was
|
||||
yet available, in which case the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientGetViewerEyeViewMatrixd(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_MatrixConventions flags, double *mat);
|
||||
|
||||
/** @brief Get the view matrix (inverse of pose) for the given eye of a
|
||||
viewer in a display config - matrix of **floats**.
|
||||
|
||||
Will only succeed if osvrClientCheckDisplayStartup() succeeds.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)
|
||||
@param[out] mat Pass a float[::OSVR_MATRIX_SIZE] to get the transformation
|
||||
matrix from room space to eye space (not relative to pose of the viewer)
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was
|
||||
yet available, in which case the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientGetViewerEyeViewMatrixf(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_MatrixConventions flags, float *mat);
|
||||
|
||||
/** @brief Each eye of each viewer in a display config has one or more surfaces
|
||||
(aka "screens") on which content should be rendered.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param[out] surfaces Number of surfaces (numbered [0, surfaces - 1]) for the
|
||||
given viewer and eye. **Constant** throughout the active, valid lifetime of
|
||||
a display config object.
|
||||
|
||||
@sa OSVR_SurfaceCount
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrClientGetNumSurfacesForViewerEye(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount *surfaces);
|
||||
|
||||
/** @brief Get the dimensions/location of the viewport **within the display
|
||||
input** for a surface seen by an eye of a viewer in a display config. (This
|
||||
does not include other video inputs that may be on a single virtual desktop,
|
||||
etc. or explicitly account for display configurations that use multiple
|
||||
video inputs. It does not necessarily indicate that a viewport in the sense
|
||||
of glViewport must be created with these parameters, though the parameter
|
||||
order matches for convenience.)
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param[out] left Output: Distance in pixels from the left of the video input
|
||||
to the left of the viewport.
|
||||
@param[out] bottom Output: Distance in pixels from the bottom of the video
|
||||
input to the bottom of the viewport.
|
||||
@param[out] width Output: Width of viewport in pixels.
|
||||
@param[out] height Output: Height of viewport in pixels.
|
||||
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output arguments are unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetRelativeViewportForViewerEyeSurface(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface, OSVR_ViewportDimension *left,
|
||||
OSVR_ViewportDimension *bottom, OSVR_ViewportDimension *width,
|
||||
OSVR_ViewportDimension *height);
|
||||
|
||||
/** @brief Get the index of the display input for a surface seen by an eye of a
|
||||
viewer in a display config.
|
||||
|
||||
This is the OSVR-assigned display input: it may not (and in practice,
|
||||
usually will not) match any platform-specific display indices. This function
|
||||
exists to associate surfaces with video inputs as enumerated by
|
||||
osvrClientGetNumDisplayInputs().
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param[out] displayInput Zero-based index of the display input pixels for
|
||||
this surface are tranmitted over.
|
||||
|
||||
This association is **constant** throughout the active, valid lifetime of a
|
||||
display config object.
|
||||
|
||||
@sa osvrClientGetNumDisplayInputs(),
|
||||
osvrClientGetRelativeViewportForViewerEyeSurface()
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which
|
||||
case the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetViewerEyeSurfaceDisplayInputIndex(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface, OSVR_DisplayInputCount *displayInput);
|
||||
|
||||
/** @brief Get the projection matrix for a surface seen by an eye of a viewer
|
||||
in a display config. (double version)
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param near Distance from viewpoint to near clipping plane - must be
|
||||
positive.
|
||||
@param far Distance from viewpoint to far clipping plane - must be positive
|
||||
and not equal to near, typically greater than near.
|
||||
@param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)
|
||||
@param[out] matrix Output projection matrix: supply an array of 16
|
||||
(::OSVR_MATRIX_SIZE) doubles.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetViewerEyeSurfaceProjectionMatrixd(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface, double near, double far,
|
||||
OSVR_MatrixConventions flags, double *matrix);
|
||||
|
||||
/** @brief Get the projection matrix for a surface seen by an eye of a viewer
|
||||
in a display config. (float version)
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param near Distance to near clipping plane - must be nonzero, typically
|
||||
positive.
|
||||
@param far Distance to far clipping plane - must be nonzero, typically
|
||||
positive and greater than near.
|
||||
@param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)
|
||||
@param[out] matrix Output projection matrix: supply an array of 16
|
||||
(::OSVR_MATRIX_SIZE) floats.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetViewerEyeSurfaceProjectionMatrixf(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface, float near, float far,
|
||||
OSVR_MatrixConventions flags, float *matrix);
|
||||
|
||||
/** @brief Get the clipping planes (positions at unit distance) for a surface
|
||||
seen by an eye of a viewer
|
||||
in a display config.
|
||||
|
||||
This is only for use in integrations that cannot accept a fully-formulated
|
||||
projection matrix as returned by
|
||||
osvrClientGetViewerEyeSurfaceProjectionMatrixf() or
|
||||
osvrClientGetViewerEyeSurfaceProjectionMatrixd(), and may not necessarily
|
||||
provide the same optimizations.
|
||||
|
||||
As all the planes are given at unit (1) distance, before passing these
|
||||
planes to a consuming function in your application/engine, you will typically
|
||||
divide them by your near clipping plane distance.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param[out] left Distance to left clipping plane
|
||||
@param[out] right Distance to right clipping plane
|
||||
@param[out] bottom Distance to bottom clipping plane
|
||||
@param[out] top Distance to top clipping plane
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output arguments are unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetViewerEyeSurfaceProjectionClippingPlanes(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface, double *left, double *right, double *bottom,
|
||||
double *top);
|
||||
|
||||
/** @brief Determines if a surface seen by an eye of a viewer in a display
|
||||
config requests some distortion to be performed.
|
||||
|
||||
This simply reports true or false, and does not specify which kind of
|
||||
distortion implementations have been parameterized for this display. For
|
||||
each distortion implementation your application supports, you'll want to
|
||||
call the corresponding priority function to find out if it is available.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param[out] distortionRequested Output parameter: whether distortion is
|
||||
requested. **Constant** throughout the active, valid lifetime of a display
|
||||
config object.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientDoesViewerEyeSurfaceWantDistortion(OSVR_DisplayConfig disp,
|
||||
OSVR_ViewerCount viewer,
|
||||
OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface,
|
||||
OSVR_CBool *distortionRequested);
|
||||
|
||||
/** @brief Returns the priority/availability of radial distortion parameters for
|
||||
a surface seen by an eye of a viewer in a display config.
|
||||
|
||||
If osvrClientDoesViewerEyeSurfaceWantDistortion() reports false, then the
|
||||
display does not request distortion of any sort, and thus neither this nor
|
||||
any other distortion strategy priority function will report an "available"
|
||||
priority.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param[out] priority Output: the priority level. Negative values
|
||||
(canonically OSVR_DISTORTION_PRIORITY_UNAVAILABLE) indicate this technique
|
||||
not available, higher values indicate higher preference for the given
|
||||
technique based on the device's description. **Constant** throughout the
|
||||
active, valid lifetime of a display config object.
|
||||
|
||||
@return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case
|
||||
the output argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetViewerEyeSurfaceRadialDistortionPriority(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface, OSVR_DistortionPriority *priority);
|
||||
|
||||
/** @brief Returns the radial distortion parameters, if known/requested, for a
|
||||
surface seen by an eye of a viewer in a display config.
|
||||
|
||||
Will only succeed if osvrClientGetViewerEyeSurfaceRadialDistortionPriority()
|
||||
reports a non-negative priority.
|
||||
|
||||
@param disp Display config object
|
||||
@param viewer Viewer ID
|
||||
@param eye Eye ID
|
||||
@param surface Surface ID
|
||||
@param[out] params Output: the parameters for radial distortion
|
||||
|
||||
@return OSVR_RETURN_FAILURE if this surface does not have these parameters
|
||||
described, or if invalid parameters were passed, in which case the output
|
||||
argument is unmodified.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetViewerEyeSurfaceRadialDistortion(
|
||||
OSVR_DisplayConfig disp, OSVR_ViewerCount viewer, OSVR_EyeCount eye,
|
||||
OSVR_SurfaceCount surface, OSVR_RadialDistortionParameters *params);
|
||||
|
||||
/** @}
|
||||
@}
|
||||
*/
|
||||
|
||||
OSVR_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
138
gfx/vr/osvr/ClientKit/Export.h
Normal file
138
gfx/vr/osvr/ClientKit/Export.h
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
/** @file
|
||||
@brief Automatically-generated export header - do not edit!
|
||||
|
||||
@date 2016
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
// Copyright 2016 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_EXPORT_H
|
||||
#define OSVR_CLIENTKIT_EXPORT_H
|
||||
|
||||
#ifdef OSVR_CLIENTKIT_STATIC_DEFINE
|
||||
# define OSVR_CLIENTKIT_EXPORT
|
||||
# define OSVR_CLIENTKIT_NO_EXPORT
|
||||
#endif
|
||||
|
||||
/* Per-compiler advance preventative definition */
|
||||
#if defined(__BORLANDC__) || defined(__CODEGEARC__) || defined(__HP_aCC) || \
|
||||
defined(__PGI) || defined(__WATCOMC__)
|
||||
/* Compilers that don't support deprecated, according to CMake. */
|
||||
# ifndef OSVR_CLIENTKIT_DEPRECATED
|
||||
# define OSVR_CLIENTKIT_DEPRECATED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Check for attribute support */
|
||||
#if defined(__INTEL_COMPILER)
|
||||
/* Checking before GNUC because Intel implements GNU extensions,
|
||||
* so it chooses to define __GNUC__ as well. */
|
||||
# if __INTEL_COMPILER >= 1200
|
||||
/* Intel compiler 12.0 or newer can handle these attributes per CMake */
|
||||
# define OSVR_CLIENTKIT_EXPORT_HEADER_SUPPORTS_ATTRIBUTES
|
||||
# endif
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
|
||||
/* GCC 4.2+ */
|
||||
# define OSVR_CLIENTKIT_EXPORT_HEADER_SUPPORTS_ATTRIBUTES
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Per-platform defines */
|
||||
#if defined(_MSC_VER)
|
||||
/* MSVC on Windows */
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_EXPORT
|
||||
# ifdef osvrClientKit_EXPORTS
|
||||
/* We are building this library */
|
||||
# define OSVR_CLIENTKIT_EXPORT __declspec(dllexport)
|
||||
# else
|
||||
/* We are using this library */
|
||||
# define OSVR_CLIENTKIT_EXPORT __declspec(dllimport)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_DEPRECATED
|
||||
# define OSVR_CLIENTKIT_DEPRECATED __declspec(deprecated)
|
||||
#endif
|
||||
|
||||
#elif defined(_WIN32) && defined(__GNUC__)
|
||||
/* GCC-compatible on Windows */
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_EXPORT
|
||||
# ifdef osvrClientKit_EXPORTS
|
||||
/* We are building this library */
|
||||
# define OSVR_CLIENTKIT_EXPORT __attribute__((dllexport))
|
||||
# else
|
||||
/* We are using this library */
|
||||
# define OSVR_CLIENTKIT_EXPORT __attribute__((dllimport))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_DEPRECATED
|
||||
# define OSVR_CLIENTKIT_DEPRECATED __attribute__((__deprecated__))
|
||||
#endif
|
||||
|
||||
#elif defined(OSVR_CLIENTKIT_EXPORT_HEADER_SUPPORTS_ATTRIBUTES) || \
|
||||
(defined(__APPLE__) && defined(__MACH__))
|
||||
/* GCC4.2+ compatible (assuming something *nix-like) and Mac OS X */
|
||||
/* (The first macro is defined at the top of the file, if applicable) */
|
||||
/* see https://gcc.gnu.org/wiki/Visibility */
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_EXPORT
|
||||
/* We are building/using this library */
|
||||
# define OSVR_CLIENTKIT_EXPORT __attribute__((visibility("default")))
|
||||
#endif
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_NO_EXPORT
|
||||
# define OSVR_CLIENTKIT_NO_EXPORT __attribute__((visibility("hidden")))
|
||||
#endif
|
||||
|
||||
#ifndef OSVR_CLIENTKIT_DEPRECATED
|
||||
# define OSVR_CLIENTKIT_DEPRECATED __attribute__((__deprecated__))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* End of platform ifdefs */
|
||||
|
||||
/* fallback def */
|
||||
#ifndef OSVR_CLIENTKIT_EXPORT
|
||||
# define OSVR_CLIENTKIT_EXPORT
|
||||
#endif
|
||||
|
||||
/* fallback def */
|
||||
#ifndef OSVR_CLIENTKIT_NO_EXPORT
|
||||
# define OSVR_CLIENTKIT_NO_EXPORT
|
||||
#endif
|
||||
|
||||
/* fallback def */
|
||||
#ifndef OSVR_CLIENTKIT_DEPRECATED_EXPORT
|
||||
# define OSVR_CLIENTKIT_DEPRECATED_EXPORT OSVR_CLIENTKIT_EXPORT OSVR_CLIENTKIT_DEPRECATED
|
||||
#endif
|
||||
|
||||
/* fallback def */
|
||||
#ifndef OSVR_CLIENTKIT_DEPRECATED_NO_EXPORT
|
||||
# define OSVR_CLIENTKIT_DEPRECATED_NO_EXPORT OSVR_CLIENTKIT_NO_EXPORT OSVR_CLIENTKIT_DEPRECATED
|
||||
#endif
|
||||
|
||||
/* Clean up after ourselves */
|
||||
#undef OSVR_CLIENTKIT_EXPORT_HEADER_SUPPORTS_ATTRIBUTES
|
||||
|
||||
#endif
|
||||
75
gfx/vr/osvr/ClientKit/InterfaceC.h
Normal file
75
gfx/vr/osvr/ClientKit/InterfaceC.h
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
/** @file
|
||||
@brief Header
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@date 2014
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2014 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_InterfaceC_h_GUID_D90BBAA6_AD62_499D_C023_2F6ED8987C17
|
||||
#define INCLUDED_InterfaceC_h_GUID_D90BBAA6_AD62_499D_C023_2F6ED8987C17
|
||||
|
||||
/* Internal Includes */
|
||||
#include <osvr/ClientKit/Export.h>
|
||||
#include <osvr/Util/APIBaseC.h>
|
||||
#include <osvr/Util/ReturnCodesC.h>
|
||||
#include <osvr/Util/AnnotationMacrosC.h>
|
||||
#include <osvr/Util/ClientOpaqueTypesC.h>
|
||||
|
||||
/* Library/third-party includes */
|
||||
/* none */
|
||||
|
||||
/* Standard includes */
|
||||
/* none */
|
||||
|
||||
OSVR_EXTERN_C_BEGIN
|
||||
/** @addtogroup ClientKit
|
||||
@{
|
||||
*/
|
||||
|
||||
/** @brief Get the interface associated with the given path.
|
||||
@param ctx Client context
|
||||
@param path A resource path (null-terminated string)
|
||||
@param[out] iface The interface object. May be freed when no longer needed,
|
||||
otherwise it will be freed when the context is closed.
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientGetInterface(OSVR_ClientContext ctx, const char path[],
|
||||
OSVR_ClientInterface *iface);
|
||||
|
||||
/** @brief Free an interface object before context closure.
|
||||
|
||||
@param ctx Client context
|
||||
@param iface The interface object
|
||||
|
||||
@returns OSVR_RETURN_SUCCESS unless a null context or interface was passed
|
||||
or the given interface was not found in the context (i.e. had already been
|
||||
freed)
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientFreeInterface(OSVR_ClientContext ctx, OSVR_ClientInterface iface);
|
||||
|
||||
/** @} */
|
||||
OSVR_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
77
gfx/vr/osvr/ClientKit/InterfaceCallbackC.h
Normal file
77
gfx/vr/osvr/ClientKit/InterfaceCallbackC.h
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
/** @file
|
||||
@brief Header
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@date 2014
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2014 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_InterfaceCallbacksC_h_GUID_8F16E6CB_F998_4ABC_5B6B_4FC1E4B71BC9
|
||||
#define INCLUDED_InterfaceCallbacksC_h_GUID_8F16E6CB_F998_4ABC_5B6B_4FC1E4B71BC9
|
||||
|
||||
/* Internal Includes */
|
||||
#include <osvr/ClientKit/Export.h>
|
||||
#include <osvr/Util/APIBaseC.h>
|
||||
#include <osvr/Util/ReturnCodesC.h>
|
||||
#include <osvr/Util/AnnotationMacrosC.h>
|
||||
#include <osvr/Util/ClientOpaqueTypesC.h>
|
||||
#include <osvr/Util/ClientCallbackTypesC.h>
|
||||
|
||||
/* Library/third-party includes */
|
||||
/* none */
|
||||
|
||||
/* Standard includes */
|
||||
/* none */
|
||||
|
||||
OSVR_EXTERN_C_BEGIN
|
||||
|
||||
#define OSVR_INTERFACE_CALLBACK_METHOD(TYPE) \
|
||||
/** @brief Register a callback for TYPE reports on an interface */ \
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrRegister##TYPE##Callback( \
|
||||
OSVR_ClientInterface iface, OSVR_##TYPE##Callback cb, void *userdata);
|
||||
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Pose)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Position)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Orientation)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Velocity)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(LinearVelocity)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(AngularVelocity)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Acceleration)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(LinearAcceleration)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(AngularAcceleration)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Button)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Analog)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Imaging)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Location2D)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(Direction)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(EyeTracker2D)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(EyeTracker3D)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(EyeTrackerBlink)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(NaviVelocity)
|
||||
OSVR_INTERFACE_CALLBACK_METHOD(NaviPosition)
|
||||
|
||||
#undef OSVR_INTERFACE_CALLBACK_METHOD
|
||||
|
||||
OSVR_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
79
gfx/vr/osvr/ClientKit/InterfaceStateC.h
Normal file
79
gfx/vr/osvr/ClientKit/InterfaceStateC.h
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/** @file
|
||||
@brief Header
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@date 2014
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2014 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_InterfaceStateC_h_GUID_8F85D178_74B9_4AA9_4E9E_243089411408
|
||||
#define INCLUDED_InterfaceStateC_h_GUID_8F85D178_74B9_4AA9_4E9E_243089411408
|
||||
|
||||
/* Internal Includes */
|
||||
#include <osvr/ClientKit/Export.h>
|
||||
#include <osvr/Util/APIBaseC.h>
|
||||
#include <osvr/Util/ReturnCodesC.h>
|
||||
#include <osvr/Util/AnnotationMacrosC.h>
|
||||
#include <osvr/Util/ClientOpaqueTypesC.h>
|
||||
#include <osvr/Util/ClientReportTypesC.h>
|
||||
#include <osvr/Util/TimeValueC.h>
|
||||
|
||||
/* Library/third-party includes */
|
||||
/* none */
|
||||
|
||||
/* Standard includes */
|
||||
/* none */
|
||||
|
||||
OSVR_EXTERN_C_BEGIN
|
||||
|
||||
#define OSVR_CALLBACK_METHODS(TYPE) \
|
||||
/** @brief Get TYPE state from an interface, returning failure if none \
|
||||
* exists */ \
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode osvrGet##TYPE##State( \
|
||||
OSVR_ClientInterface iface, struct OSVR_TimeValue *timestamp, \
|
||||
OSVR_##TYPE##State *state);
|
||||
|
||||
OSVR_CALLBACK_METHODS(Pose)
|
||||
OSVR_CALLBACK_METHODS(Position)
|
||||
OSVR_CALLBACK_METHODS(Orientation)
|
||||
OSVR_CALLBACK_METHODS(Velocity)
|
||||
OSVR_CALLBACK_METHODS(LinearVelocity)
|
||||
OSVR_CALLBACK_METHODS(AngularVelocity)
|
||||
OSVR_CALLBACK_METHODS(Acceleration)
|
||||
OSVR_CALLBACK_METHODS(LinearAcceleration)
|
||||
OSVR_CALLBACK_METHODS(AngularAcceleration)
|
||||
OSVR_CALLBACK_METHODS(Button)
|
||||
OSVR_CALLBACK_METHODS(Analog)
|
||||
OSVR_CALLBACK_METHODS(Location2D)
|
||||
OSVR_CALLBACK_METHODS(Direction)
|
||||
OSVR_CALLBACK_METHODS(EyeTracker2D)
|
||||
OSVR_CALLBACK_METHODS(EyeTracker3D)
|
||||
OSVR_CALLBACK_METHODS(EyeTrackerBlink)
|
||||
OSVR_CALLBACK_METHODS(NaviVelocity)
|
||||
OSVR_CALLBACK_METHODS(NaviPosition)
|
||||
|
||||
#undef OSVR_CALLBACK_METHODS
|
||||
|
||||
OSVR_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
47
gfx/vr/osvr/ClientKit/SystemCallbackC.h
Normal file
47
gfx/vr/osvr/ClientKit/SystemCallbackC.h
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/** @file
|
||||
@brief Header
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@date 2014
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2014 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_SystemCallbackC_h_GUID_543F3F04_343E_4389_08A0_DEA988EC23F7
|
||||
#define INCLUDED_SystemCallbackC_h_GUID_543F3F04_343E_4389_08A0_DEA988EC23F7
|
||||
|
||||
/* Internal Includes */
|
||||
#include <osvr/ClientKit/Export.h>
|
||||
#include <osvr/Util/APIBaseC.h>
|
||||
#include <osvr/Util/ReturnCodesC.h>
|
||||
#include <osvr/Util/AnnotationMacrosC.h>
|
||||
|
||||
/* Library/third-party includes */
|
||||
/* none */
|
||||
|
||||
/* Standard includes */
|
||||
/* none */
|
||||
|
||||
OSVR_EXTERN_C_BEGIN
|
||||
OSVR_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
75
gfx/vr/osvr/ClientKit/TransformsC.h
Normal file
75
gfx/vr/osvr/ClientKit/TransformsC.h
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
/** @file
|
||||
@brief Header controlling the OSVR transformation hierarchy
|
||||
|
||||
Must be c-safe!
|
||||
|
||||
@date 2015
|
||||
|
||||
@author
|
||||
Sensics, Inc.
|
||||
<http://sensics.com/osvr>
|
||||
*/
|
||||
|
||||
/*
|
||||
// Copyright 2015 Sensics, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_TransformsC_h_GUID_5B5B7438_42D4_4095_E48A_90E2CC13498E
|
||||
#define INCLUDED_TransformsC_h_GUID_5B5B7438_42D4_4095_E48A_90E2CC13498E
|
||||
|
||||
/* Internal Includes */
|
||||
#include <osvr/ClientKit/Export.h>
|
||||
#include <osvr/Util/APIBaseC.h>
|
||||
#include <osvr/Util/ReturnCodesC.h>
|
||||
#include <osvr/Util/ClientOpaqueTypesC.h>
|
||||
|
||||
/* Library/third-party includes */
|
||||
/* none */
|
||||
|
||||
/* Standard includes */
|
||||
/* none */
|
||||
|
||||
OSVR_EXTERN_C_BEGIN
|
||||
|
||||
/** @addtogroup ClientKit
|
||||
@{
|
||||
*/
|
||||
|
||||
/** @brief Updates the internal "room to world" transformation (applied to all
|
||||
tracker data for this client context instance) based on the user's head
|
||||
orientation, so that the direction the user is facing becomes -Z to your
|
||||
application. Only rotates about the Y axis (yaw).
|
||||
|
||||
Note that this method internally calls osvrClientUpdate() to get a head pose
|
||||
so your callbacks may be called during its execution!
|
||||
|
||||
@param ctx Client context
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientSetRoomRotationUsingHead(OSVR_ClientContext ctx);
|
||||
|
||||
/** @brief Clears/resets the internal "room to world" transformation back to an
|
||||
identity transformation - that is, clears the effect of any other
|
||||
manipulation of the room to world transform.
|
||||
|
||||
@param ctx Client context
|
||||
*/
|
||||
OSVR_CLIENTKIT_EXPORT OSVR_ReturnCode
|
||||
osvrClientClearRoomToWorldTransform(OSVR_ClientContext ctx);
|
||||
|
||||
/** @} */
|
||||
OSVR_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue