Exemplo n.º 1
0
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());
        }
    }
}
Exemplo n.º 2
0
/*!
 * \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));
}