-
Notifications
You must be signed in to change notification settings - Fork 13
/
OsvrRenderingPlugin.h
85 lines (63 loc) · 2.73 KB
/
OsvrRenderingPlugin.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/** @file
@brief Header
@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.
#pragma once
#include "PluginConfig.h"
#include "Unity/IUnityGraphics.h"
#include "Unity/IUnityInterface.h"
#include <osvr/RenderKit/RenderKitGraphicsTransforms.h>
#include <osvr/Util/ClientOpaqueTypesC.h>
#include <osvr/Util/ReturnCodesC.h>
#include <osvr/ResetYaw/ResetYaw.h>
typedef void(UNITY_INTERFACE_API *DebugFnPtr)(const char *);
extern "C" {
// No apparent UpdateDistortionMeshes symbol found?
/// @todo These are all the exported symbols, and they all are decorated to use
/// stdcall - yet somehow the managed code refers to some as cdecl. Either those
/// functions are never getting used, or something else is happening there.
UNITY_INTERFACE_EXPORT OSVR_ReturnCode UNITY_INTERFACE_API
ConstructRenderBuffers();
UNITY_INTERFACE_EXPORT OSVR_ReturnCode UNITY_INTERFACE_API
CreateRenderManagerFromUnity(OSVR_ClientContext context);
UNITY_INTERFACE_EXPORT OSVR_Pose3 UNITY_INTERFACE_API GetEyePose(int eye);
UNITY_INTERFACE_EXPORT osvr::renderkit::OSVR_ProjectionMatrix
UNITY_INTERFACE_API
GetProjectionMatrix(int eye);
UNITY_INTERFACE_EXPORT UnityRenderingEvent UNITY_INTERFACE_API
GetRenderEventFunc();
UNITY_INTERFACE_EXPORT osvr::renderkit::OSVR_ViewportDescription
UNITY_INTERFACE_API
GetViewport(int eye);
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API LinkDebug(DebugFnPtr d);
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API OnRenderEvent(int eventID);
/// @todo should return OSVR_ReturnCode
UNITY_INTERFACE_EXPORT int UNITY_INTERFACE_API
SetColorBufferFromUnity(void *texturePtr, int eye);
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API
SetFarClipDistance(double distance);
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API SetIPD(double ipdMeters);
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API
SetNearClipDistance(double distance);
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API ShutdownRenderManager();
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API
UnityPluginLoad(IUnityInterfaces *unityInterfaces);
UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API UnityPluginUnload();
// UpdateDistortionMesh no longer exported - buggy, not used.
} // extern "C"