//----------------------------------------------------------------------------- D3D9StereoDriverBridge::D3D9StereoDriverBridge(StereoModeType stereoMode) { mPimpl = NULL; mIsNvapiInitialized = false; mStereoMode = stereoMode; if (SMT_FRAME_SEQUENTIAL != mStereoMode) return; // Both initialize and set driver mode need to be called to determine whether NVIDIA stereo is available NvAPI_Status nvStatus = NvAPI_Initialize(); if (NVAPI_OK == nvStatus) nvStatus = NvAPI_Stereo_SetDriverMode(NVAPI_STEREO_DRIVER_MODE_DIRECT); if (NVAPI_OK == nvStatus) { NvAPI_ShortString nvapiStatusMessage; NvAPI_GetErrorMessage(nvStatus, nvapiStatusMessage); mIsNvapiInitialized = true; mPimpl = new D3D9StereoDriverNVIDIA(); } else { // Assume the AMD implementation, since the device must be created before verifying AMD QBS mPimpl = new D3D9StereoDriverAMD(); } }
/* This function is used to print to the command line a text message describing the nvapi error and quits */ void nvapi_error(NvAPI_Status status) { NvAPI_ShortString szDesc = { 0 }; NvAPI_GetErrorMessage(status, szDesc); LL_WARNS() << szDesc << LL_ENDL; //should always trigger when asserts are enabled //llassert(status == NVAPI_OK); }
String^ NvAPI::GetErrorMessage(Status nr) { NvAPI_ShortString desc; if (NvAPI_GetErrorMessage((NvAPI_Status) nr, desc) == NVAPI_OK) { return gcnew String(desc); } return String::Empty; }
int PyNvAPI_CheckError(const NvAPI_Status st) { int res = st != NVAPI_OK; if (res) { NvAPI_ShortString szDesc; NvAPI_GetErrorMessage(st, szDesc); PyErr_SetString(PyExc_NvAPIError, szDesc); } return res; }
//--------------------------------------------------------------------- D3D11StereoDriverBridge::~D3D11StereoDriverBridge() { if (NULL != mPimpl) { delete mPimpl; mPimpl = NULL; } if (mIsNvapiInitialized) { NvAPI_Status nvStatus = NvAPI_Unload(); NvAPI_ShortString nvapiStatusMessage; NvAPI_GetErrorMessage(nvStatus, nvapiStatusMessage); } }
VOID LogEvent(__in PWSTR str, __in int status) { switch (GraphicsType) { case NvidiaGraphics: { if (NvAPI_GetErrorMessage != NULL) { PPH_STRING nvPhString = NULL; PPH_STRING statusString = NULL; NvAPI_ShortString nvString = { 0 }; NvAPI_GetErrorMessage((NvStatus)status, nvString); nvPhString = PhCreateStringFromAnsi(nvString); statusString = PhFormatString(str, nvPhString->Buffer); PhLogMessageEntry(PH_LOG_ENTRY_MESSAGE, statusString); PhDereferenceObject(statusString); PhDereferenceObject(nvPhString); } else { PPH_STRING string = PhCreateString(L"gfxinfo: (LogEvent) NvAPI_GetErrorMessage was not initialized."); PhLogMessageEntry(PH_LOG_ENTRY_MESSAGE, string); PhDereferenceObject(string); } } break; case AtiGraphics: { //PPH_STRING string = PhFormatString(str, status); //PhLogMessageEntry(PH_LOG_ENTRY_MESSAGE, string); //PhDereferenceObject(string); } break; } }
//--------------------------------------------------------------------- D3D11StereoDriverBridge::D3D11StereoDriverBridge(StereoModeType stereoMode) { mPimpl = NULL; mIsNvapiInitialized = false; mStereoMode = stereoMode; if (SMT_FRAME_SEQUENTIAL != mStereoMode) return; NvAPI_Status nvStatus = NvAPI_Initialize(); if (NVAPI_OK == nvStatus) { NvAPI_ShortString nvapiStatusMessage; NvAPI_GetErrorMessage(nvStatus, nvapiStatusMessage); mIsNvapiInitialized = true; mPimpl = new D3D11StereoDriverNVIDIA(); } else { // Assume the AMD implementation, since the device must be created before verifying AMD QBS mPimpl = new D3D11StereoDriverAMD(); } }