PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : F: win32, opengl pixel formate enumerieren


Chris Lux
2006-03-08, 12:25:51
Hi,
ich sitze gerade daran für meine projekt applikation alle beschleunigten opengl formate zu enumerieren. ist auch alles nicht so wild. das problem ist, dass ich nur formate analysieren kann (wglGetPixelFormatAttribiv), welche die selbe farbtiefe haben, wie die von windows aktuell eingestellte. einzige möglichkeit, die ich sehe ist kurzzeitiges für die zeit der analyse umschalten in einen anderen displaymodus (ChangeDisplaySettingsEx).

gibt es eine möglichkeit das wirkliche umschalten zu verhindern? glview (http://www.realtech-vr.com/glview/) macht das scheinbar ohne umschalten. im code, der dabei ist kann ich aber nichts besonderes ausmachen, sie schalten genauso den displaymode um, nur wenn glview gestartet wird kommt es nicht zu dem reelen umschalten (dh der screen flackert nicht kurz ein paar mal auf).

ideen?

umschalten realisiere ich gerade so:

DEVMODE tmp_dev_mode;
memset(&tmp_dev_mode, 0, sizeof(DEVMODE));

// select first available device mode from the list
tmp_dev_mode.dmSize = sizeof(DEVMODE);
tmp_dev_mode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY;
tmp_dev_mode.dmBitsPerPel = out_dev_mode_it->first;
tmp_dev_mode.dmPelsWidth = out_dev_mode_it->second._avail_device_modes[0]._width;
tmp_dev_mode.dmPelsHeight = out_dev_mode_it->second._avail_device_modes[0]._height;
tmp_dev_mode.dmDisplayFrequency = 60;//out_dev_mode_it->second._avail_device_modes[0]._refresh_rate;

if (ChangeDisplaySettingsEx(disp_device.DeviceName, &tmp_dev_mode, NULL, CDS_FULLSCREEN, NULL) != DISP_CHANGE_SUCCESSFUL) {

Sgt. Nukem
2006-03-21, 14:21:28
IIRC kannst Du ChangeDisplaySettings(Ex) per Parameter mitteilen, daß das Umschalten nur SIMULIERT werden soll.