Files
asarium efdd4fae68 Add interface for viewport management
This separates OpenGL context creation from window creation and also
allows to implement multiple viewports in the future.
2016-08-19 17:44:17 +02:00

56 lines
1.2 KiB
C++

#include "headtracking/trackir.h"
#include "headtracking/trackirpublic.h"
#include "osapi/osapi.h"
#include <SDL_syswm.h>
namespace headtracking
{
namespace trackir
{
TrackIRProvider::TrackIRProvider()
{
auto window = os::getSDLMainWindow();
if (window == nullptr)
{
throw internal::HeadTrackingException("TrackIR is only available with a valid window!");
}
// calling the function that will init all the function pointers for TrackIR stuff (Swifty)
int trackIrInitResult = _trackIRDll.Init(window);
if (trackIrInitResult != SCP_INITRESULT_SUCCESS)
{
mprintf(("TrackIR Init Failed - %d\n", trackIrInitResult));
throw internal::HeadTrackingException("Failed to initialize TrackIR");
}
}
TrackIRProvider::~TrackIRProvider()
{
}
bool TrackIRProvider::query(HeadTrackingStatus* statusOut)
{
_trackIRDll.Query();
statusOut->pitch = _trackIRDll.GetPitch();
statusOut->roll = _trackIRDll.GetRoll();
statusOut->yaw = _trackIRDll.GetYaw();
statusOut->x = _trackIRDll.GetX();
statusOut->y = _trackIRDll.GetY();
statusOut->z = _trackIRDll.GetZ();
return true;
}
SCP_string TrackIRProvider::getName()
{
return "TrackIR";
}
}
}