diff options
| author | Halldor Fannar <[email protected]> | 2017-02-09 15:26:47 +0000 |
|---|---|---|
| committer | Halldor Fannar <[email protected]> | 2017-02-09 15:26:47 +0000 |
| commit | b814d180089b1e5415f89554e46de2edd978a592 (patch) | |
| tree | b6a61b518e2b567c7d485913a7fca54f6719bc5c /include/ansel/Session.h | |
| parent | Initial commit (diff) | |
| download | anselsdk-b814d180089b1e5415f89554e46de2edd978a592.tar.xz anselsdk-b814d180089b1e5415f89554e46de2edd978a592.zip | |
First publish of the SDK.
Diffstat (limited to 'include/ansel/Session.h')
| -rw-r--r-- | include/ansel/Session.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/include/ansel/Session.h b/include/ansel/Session.h new file mode 100644 index 0000000..53520e4 --- /dev/null +++ b/include/ansel/Session.h @@ -0,0 +1,105 @@ +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and related documentation and +// any modifications thereto. Any use, reproduction, disclosure, or +// distribution of this software and related documentation without an express +// license agreement from NVIDIA Corporation is strictly prohibited. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright 2015 NVIDIA Corporation. All rights reserved. + +#pragma once +#include <ansel/Defines.h> + +namespace ansel +{ + struct SessionConfiguration + { + // User can move the camera during session + bool isTranslationAllowed; + // Camera can be rotated during session + bool isRotationAllowed; + // FoV can be modified during session + bool isFovChangeAllowed; + // Game is paused during session + bool isPauseAllowed; + // Game allows highres capture during session + bool isHighresAllowed; + // Game allows 360 capture during session + bool is360MonoAllowed; + // Game allows 360 stereo capture during session + bool is360StereoAllowed; + // Game allows capturing pre-tonemapping raw HDR buffer + bool isRawAllowed; + // The speed at which camera moves in the world, initialized with a value given in Configuration + float translationalSpeedInWorldUnitsPerSecond; + // The speed at which camera rotates, initialized with a value given in Configuration + float rotationalSpeedInDegreesPerSecond; + + SessionConfiguration() + { + isTranslationAllowed = true; + isRotationAllowed = true; + isFovChangeAllowed = true; + isPauseAllowed = true; + isHighresAllowed = true; + is360MonoAllowed = true; + is360StereoAllowed = true; + isRawAllowed = true; + } + }; + + enum StartSessionStatus + { + kDisallowed = 0, + kAllowed + }; + + enum CaptureType + { + kCaptureType360Mono = 0, + kCaptureType360Stereo, + kCaptureTypeSuperResolution, + kCaptureTypeStereo + }; + + struct CaptureConfiguration + { + CaptureType captureType; + }; + + typedef StartSessionStatus(*StartSessionCallback)(SessionConfiguration& settings, void* userPointer); + typedef void(*StopSessionCallback)(void* userPointer); + typedef void(*StartCaptureCallback)(const CaptureConfiguration&, void* userPointer); + typedef void(*StopCaptureCallback)(void* userPointer); + + // Starts a session if there is not one already active. This function can be used to trigger + // Ansel via any method that the game chooses (key combination, controller input, etc) + ANSEL_SDK_API void startSession(); + + // Stops current session if there is one active. This function needs to be used if the + // startSession function was used to implement custom activation method. The same custom + // activation method needs to used to deactivate Ansel. If for instance left-stick pressed + // was used for startSession then the same should be used for stopping the Ansel session. + // This function can also be used if Ansel session needs to be interrupted + // (for instance an online game where connection loss is experienced and needs to be + // reported). + ANSEL_SDK_API void stopSession(); +}
\ No newline at end of file |