static void GetGraphicsDriverInfo(str::Str<char>& s) { // the info is in registry in: // HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000\ // Device Description REG_SZ (same as DriverDesc, so we don't read it) // DriverDesc REG_SZ // DriverVersion REG_SZ // UserModeDriverName REG_MULTI_SZ // // There can be more than one driver, they are in 0000, 0001 etc. for (int i=0; ; i++) { ScopedMem<WCHAR> key(str::Format(GFX_DRIVER_KEY_FMT, i)); ScopedMem<WCHAR> v1(ReadRegStr(HKEY_LOCAL_MACHINE, key, L"DriverDesc")); // I assume that if I can't read the value, there are no more drivers if (!v1) break; ScopedMem<char> v1a(str::conv::ToUtf8(v1)); s.AppendFmt("Graphics driver %d\r\n", i); s.AppendFmt(" DriverDesc: %s\r\n", v1.Get()); v1.Set(ReadRegStr(HKEY_LOCAL_MACHINE, key, L"DriverVersion")); if (v1) { v1a.Set(str::conv::ToUtf8(v1)); s.AppendFmt(" DriverVersion: %s\r\n", v1a.Get()); } v1.Set(ReadRegStr(HKEY_LOCAL_MACHINE, key, L"UserModeDriverName")); if (v1) { v1a.Set(str::conv::ToUtf8(v1)); s.AppendFmt(" UserModeDriverName: %s\r\n", v1a.Get()); } } }
/*! * \brief LAArmadillo::substract * Substract v2 from v1 * \param result * \param v1 * \param v2 */ void LAArmadillo::substract(OiVec &result, const OiVec &v1, const OiVec &v2){ int vecSize = v1.getSize(); arma::vec v1a(vecSize), v2a(vecSize); this->oiVec2Arma(v1a, v1); this->oiVec2Arma(v2a, v2); this->arma2OiVec(result, (v1a - v2a)); }