public VibranceProxy(bool isSilenced = false) { try { VibranceInfo = new VIBRANCE_INFO(); bool ret = initializeLibrary(); int[] gpuHandles = new int[NVAPI_MAX_PHYSICAL_GPUS]; int[] outputIds = new int[NVAPI_MAX_PHYSICAL_GPUS]; enumeratePhsyicalGPUs(gpuHandles); EnumerateDisplayHandles(); VibranceInfo.activeOutput = getActiveOutputs(gpuHandles, outputIds); StringBuilder buffer = new StringBuilder(64); char[] sz = new char[64]; getGpuName(gpuHandles, buffer); VibranceInfo.szGpuName = buffer.ToString(); VibranceInfo.defaultHandle = enumerateNvidiaDisplayHandle(0); NV_DISPLAY_DVC_INFO info = new NV_DISPLAY_DVC_INFO(); if (getDVCInfo(ref info, VibranceInfo.defaultHandle)) { if (info.currentLevel != VibranceInfo.userVibranceSettingDefault) { setDVCLevel(VibranceInfo.defaultHandle, VibranceInfo.userVibranceSettingDefault); } } VibranceInfo.isInitialized = true; } catch (Exception) { MessageBox.Show(VibranceProxy.NVAPI_ERROR_INIT_FAILED); } }
static extern bool getDVCInfo(ref NV_DISPLAY_DVC_INFO info, int defaultHandle);