private void InitializeProxy() { int[] gpuHandles = new int[NvapiMaxPhysicalGpus]; int[] outputIds = new int[NvapiMaxPhysicalGpus]; enumeratePhsyicalGPUs(gpuHandles); foreach (int gpuHandle in gpuHandles) { if (gpuHandle != 0) { NvSystemType systemType = getGpuSystemType(gpuHandle); if (systemType == NvSystemType.NvSystemTypeUnknown) { MessageBox.Show(NvidiaDynamicVibranceProxy.NvapiErrorSystypeUnknown, "vibranceGUI Error", MessageBoxButtons.OK, MessageBoxIcon.Error); _vibranceInfo.isInitialized = false; return; } } } 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); NvDisplayDvcInfo info = new NvDisplayDvcInfo(); if (getDVCInfo(ref info, _vibranceInfo.defaultHandle)) { if (info.currentLevel != _vibranceInfo.userVibranceSettingDefault) { setDVCLevel(_vibranceInfo.defaultHandle, _vibranceInfo.userVibranceSettingDefault); } } _vibranceInfo.isInitialized = true; }
static extern bool getDVCInfo(ref NvDisplayDvcInfo info, int defaultHandle);