这篇教程C++ EnumDisplaySettings函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中EnumDisplaySettings函数的典型用法代码示例。如果您正苦于以下问题:C++ EnumDisplaySettings函数的具体用法?C++ EnumDisplaySettings怎么用?C++ EnumDisplaySettings使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了EnumDisplaySettings函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: GetListOfResolutions// Search for available resolutions - TODO: Move to Common?wxArrayString GetListOfResolutions(){ wxArrayString retlist; retlist.Add("Auto");#ifdef _WIN32 DWORD iModeNum = 0; DEVMODE dmi; ZeroMemory(&dmi, sizeof(dmi)); dmi.dmSize = sizeof(dmi); std::vector<std::string> resos; while (EnumDisplaySettings(NULL, iModeNum++, &dmi) != 0) { char res[100]; sprintf(res, "%dx%d", dmi.dmPelsWidth, dmi.dmPelsHeight); std::string strRes(res); // Only add unique resolutions if (std::find(resos.begin(), resos.end(), strRes) == resos.end()) { resos.push_back(strRes); retlist.Add(StrToWxStr(res)); } ZeroMemory(&dmi, sizeof(dmi)); }#elif defined(HAVE_XRANDR) && HAVE_XRANDR main_frame->m_XRRConfig->AddResolutions(retlist);#elif defined(__APPLE__) CFArrayRef modes = CGDisplayCopyAllDisplayModes(CGMainDisplayID(), NULL); for (CFIndex i = 0; i < CFArrayGetCount(modes); i++) { std::stringstream res; CGDisplayModeRef mode; CFStringRef encoding; size_t w, h; bool is32; mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modes, i); w = CGDisplayModeGetWidth(mode); h = CGDisplayModeGetHeight(mode); encoding = CGDisplayModeCopyPixelEncoding(mode); is32 = CFEqual(encoding, CFSTR(IO32BitDirectPixels)); CFRelease(encoding); if (!is32) continue; if (CGDisplayModeGetIOFlags(mode) & kDisplayModeStretchedFlag) continue; res << w << "x" << h; retlist.Add(res.str()); } CFRelease(modes);#endif return retlist;}
开发者ID:DiamondLord64,项目名称:dolphin-emu,代码行数:57,
示例2: GetScreenModevoid Window::GetScreenMode(){ std::cout<<"Get Screen INfo"<<std::endl; DEVMODE Screen; Screen.dmSize=sizeof(DEVMODE); for(int i=0;EnumDisplaySettings(NULL,i,&Screen);i++){ //LPDWORD BitRequired=0; //LPDWORD StructNb; //EnumMonitorsW(NULL,1,NULL,0,BitRequired,StructNb); //LPBYTE Buffer[(long)*BitRequired]; //EnumMonitorsW(NULL,1,*Buffer,*BitRequired,BitRequired,StructNb); char buff[255]; char buff2[20]; strcpy(buff,"Device:"); strcat(buff,(const char*)Screen.dmDeviceName); std::cout<<buff<<std::endl; WriteToLog(buff,"DEVMOD"); strcpy(buff,"extra bit driver:"); sprintf(buff2,"%i",Screen.dmDriverExtra); strcat(buff,buff2); std::cout<<buff<<std::endl; WriteToLog(buff,"DEVMOD"); //withd et height strcpy(buff,"Width/Height:"); sprintf(buff2,"%u",Screen.dmPelsWidth); strcat(buff,buff2); strcat(buff,"/"); sprintf(buff2,"%u",Screen.dmPelsHeight); strcat(buff,buff2); std::cout<<buff<<std::endl; WriteToLog(buff,"DEVMOD"); //bit par pixel strcpy(buff,"Bit per pixel:"); sprintf(buff2,"%u",Screen.dmBitsPerPel); strcat(buff,buff2); std::cout<<buff<<std::endl; WriteToLog(buff,"DEVMOD"); strcpy(buff,"FramePerSecond:"); sprintf(buff2,"%u",Screen.dmDisplayFrequency); strcat(buff,buff2); std::cout<<buff<<std::endl; WriteToLog(buff,"DEVMOD"); int* Res=new int[2]; Res[0]=Screen.dmPelsWidth; Res[1]=Screen.dmPelsHeight; ResolutionList.push_back(Res); FrameRateList.push_back(Screen.dmDisplayFrequency); } ResolutionList.sort(SortResolution); FrameRateList.sort();}
开发者ID:Qlala,项目名称:Engine,代码行数:56,
示例3: memset int Window::GetDesktopRefreshRate() const { DEVMODE mode; memset(&mode, 0, sizeof(mode)); mode.dmSize = sizeof(mode); if (!EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &mode)) return 60; return mode.dmDisplayFrequency; }
开发者ID:Mikalai,项目名称:punk_project,代码行数:10,
示例4: getPossibleScreenModesvoid getPossibleScreenModes(vector<VideoMode> &out_modes) { DEVMODE dm = {0}; dm.dmSize = sizeof(dm); for (int iModeNum = 0; EnumDisplaySettings(NULL, iModeNum, &dm) != 0; ++iModeNum) { if (dm.dmBitsPerPel == 32/* || dm.dmBitsPerPel == 16*/) { VideoMode mode(dm.dmPelsWidth, dm.dmPelsHeight, dm.dmBitsPerPel, dm.dmDisplayFrequency); out_modes.push_back(mode); } }}
开发者ID:MoLAoS,项目名称:Mandate,代码行数:10,
示例5: deviceInfoForWidgetstatic DEVMODE deviceInfoForWidget(Widget* widget){ DEVMODE deviceInfo; deviceInfo.dmSize = sizeof(DEVMODE); deviceInfo.dmDriverExtra = 0; MONITORINFOEX monitorInfo = monitorInfoForWidget(widget); EnumDisplaySettings(monitorInfo.szDevice, ENUM_CURRENT_SETTINGS, &deviceInfo); return deviceInfo;}
开发者ID:Comcast,项目名称:WebKitForWayland,代码行数:10,
示例6: getrefreshdouble getrefresh() { DEVMODE DevMode; DevMode.dmDriverExtra = 0; if (EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&DevMode)) { return (double)DevMode.dmDisplayFrequency; } else { return 0; }}
开发者ID:Complex501,项目名称:visionegg,代码行数:10,
示例7: IsResolutionSupportedBOOL Window::IsResolutionSupported(int width, int height) { DEVMODE mode; for (int i = 0; EnumDisplaySettings(0, i, &mode); i++) { if (ChangeDisplaySettings(&mode, CDS_TEST) == DISP_CHANGE_SUCCESSFUL) if (width == mode.dmPelsWidth && height == mode.dmPelsHeight) { return TRUE; } } return FALSE;}
开发者ID:PeladoFeo,项目名称:yaPSXe,代码行数:10,
示例8: EnumDisplaySettingsVideoModeInfo DisplayWrapper::dwrapperCurrentVideoMode() { DEVMODE devmode; EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode); VideoModeInfo videoModeInfo; videoModeInfo.width = devmode.dmPelsWidth; videoModeInfo.height = devmode.dmPelsHeight; videoModeInfo.bpp = devmode.dmBitsPerPel; return videoModeInfo;}
开发者ID:dujos,项目名称:cppqt,代码行数:10,
示例9: EnumDisplaySettingsVideoModeInfo DisplayWrapper::dw_currentMode(){ DEVMODE devmode; EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode); VideoModeInfo mode; mode.width = devmode.dmPelsWidth; mode.height = devmode.dmPelsHeight; mode.bpp = devmode.dmBitsPerPel; return mode;}
开发者ID:neoclust,项目名称:jag,代码行数:10,
示例10: adjustWindowvoid adjustWindow(WindowsDesc* winDesc){ HWND hwnd = (HWND)winDesc->handle; if (winDesc->fullScreen) { RECT windowedRect = {}; // Save the old window rect so we can restore it when exiting fullscreen mode. GetWindowRect(hwnd, &windowedRect); winDesc->windowedRect = { (int)windowedRect.left, (int)windowedRect.top, (int)windowedRect.right, (int)windowedRect.bottom }; // Make the window borderless so that the client area can fill the screen. SetWindowLong(hwnd, GWL_STYLE, WS_SYSMENU | WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE); // Get the settings of the primary display. We want the app to go into // fullscreen mode on the display that supports Independent Flip. DEVMODE devMode = {}; devMode.dmSize = sizeof(DEVMODE); EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode); SetWindowPos( hwnd, HWND_TOPMOST, devMode.dmPosition.x, devMode.dmPosition.y, devMode.dmPosition.x + devMode.dmPelsWidth, devMode.dmPosition.y + devMode.dmPelsHeight, SWP_FRAMECHANGED | SWP_NOACTIVATE); ShowWindow(hwnd, SW_MAXIMIZE); } else { // Restore the window's attributes and size. SetWindowLong(hwnd, GWL_STYLE, WS_OVERLAPPEDWINDOW); SetWindowPos( hwnd, HWND_NOTOPMOST, winDesc->windowedRect.left, winDesc->windowedRect.top, winDesc->windowedRect.right - winDesc->windowedRect.left, winDesc->windowedRect.bottom - winDesc->windowedRect.top, SWP_FRAMECHANGED | SWP_NOACTIVATE); if (winDesc->maximized) { ShowWindow(hwnd, SW_MAXIMIZE); } else { ShowWindow(hwnd, SW_NORMAL); } }}
开发者ID:VladSerhiienko,项目名称:The-Forge,代码行数:55,
示例11: GLimp_GetCurrentMode/*** GLimp_GetCurrentMode*/int GLimp_GetCurrentMode( void ){ DEVMODE dm; memset( &dm, 0, sizeof( dm ) ); dm.dmSize = sizeof( dm ); EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &dm ); return VID_GetModeNum( dm.dmPelsWidth, dm.dmPelsHeight );}
开发者ID:Racenet,项目名称:racesow,代码行数:14,
示例12: changeDisplayResvoid changeDisplayRes(int displayIndex){ DEVMODE dm; EnumDisplaySettings(NULL, displayIndex, &dm); if (ChangeDisplaySettings(&dm, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) return; ChangeDisplaySettings(&dm, 0);}
开发者ID:lowlevel86,项目名称:3d-adventure-game-engine,代码行数:11,
示例13: s_video_gdi_server_fullscreenvoid s_video_gdi_server_fullscreen (void){ RECT rect; DEVMODE settings; s_video_gdi_data_t *priv = (s_video_gdi_data_t *) xynth_server->driver->driver_data; if (priv->fullscreen == 0) { EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &priv->dmode); memset(&settings, 0, sizeof(DEVMODE)); settings.dmSize = sizeof(DEVMODE); settings.dmBitsPerPel = priv->bpp_windows; settings.dmPelsWidth = xynth_server->window->surface->width; settings.dmPelsHeight = xynth_server->window->surface->height; settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL; } else { settings.dmSize = sizeof(DEVMODE); settings.dmBitsPerPel = priv->dmode.dmBitsPerPel; settings.dmPelsWidth = priv->dmode.dmPelsWidth; settings.dmPelsHeight = priv->dmode.dmPelsHeight; settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL; } switch (ChangeDisplaySettings(&settings, CDS_FULLSCREEN)) { case DISP_CHANGE_SUCCESSFUL: break; case DISP_CHANGE_BADFLAGS: case DISP_CHANGE_BADMODE: case DISP_CHANGE_BADPARAM: case DISP_CHANGE_FAILED: case DISP_CHANGE_NOTUPDATED: case DISP_CHANGE_RESTART: break; } if (priv->fullscreen == 0) { rect.left = 0; rect.right = xynth_server->window->surface->width; rect.top = 0; rect.bottom = xynth_server->window->surface->height; AdjustWindowRect(&rect, GetWindowLong(priv->hwndMain, GWL_STYLE), FALSE); SetWindowPos(priv->hwndMain, HWND_TOPMOST, rect.left, rect.top, rect.right + 100, rect.bottom + 100, 0); priv->fullscreen = 1; } else { rect.left = 0; rect.right = xynth_server->window->surface->width; rect.top = 0; rect.bottom = xynth_server->window->surface->height; AdjustWindowRect(&rect, GetWindowLong(priv->hwndMain, GWL_STYLE), FALSE); SetWindowPos(priv->hwndMain, HWND_NOTOPMOST, 0, 0, rect.right - rect.left, rect.bottom - rect.top, 0); priv->fullscreen = 0; } UpdateWindow(priv->hwndMain);}
开发者ID:jetlive,项目名称:xynth,代码行数:54,
示例14: GetClientRectvoid GLWindow::changeDisplaySettings(){ RECT screenRect = { }; GetClientRect(GetDesktopWindow(), &screenRect); DEVMODE deviceMode = { }; EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &deviceMode); deviceMode.dmSize = sizeof(DEVMODE); deviceMode.dmPelsWidth = screenRect.right; deviceMode.dmPelsHeight = screenRect.bottom; ChangeDisplaySettings(&deviceMode, CDS_FULLSCREEN);}
开发者ID:alexgaiv,项目名称:lib3d,代码行数:12,
示例15: swprintf_svoid CFixApp::PopulateDialog(){ //Populate the GUI scale combobox for (size_t i = 1; i < 6; i++) { wchar_t szBuf[3]; swprintf_s(szBuf, L"x%Iu", i); ComboBox_AddString(m_hWndCBGUIScales, szBuf); } ComboBox_SetCurSel(m_hWndCBGUIScales, 0); //Populate the resolution combobox DEVMODE dm = {}; dm.dmSize = sizeof(dm); Resolution r= {}; for(DWORD iModeNum = 0; EnumDisplaySettings(NULL, iModeNum, &dm) != FALSE; iModeNum++) { if((dm.dmPelsWidth != r.iX || dm.dmPelsHeight != r.iY) && dm.dmBitsPerPel == 32) //Only add each res once, but don't actually check if it matches the current color depth/refresh rate { r.iX = dm.dmPelsWidth; r.iY = dm.dmPelsHeight; m_Resolutions.push_back(r); wchar_t szBuffer[20]; _snwprintf_s(szBuffer, _TRUNCATE, L"%Iux%Iu", r.iX, r.iY); int iIndex = ComboBox_AddString(m_hWndCBResolutions, szBuffer); ComboBox_SetItemData(m_hWndCBResolutions, iIndex, &(m_Resolutions.back())); } } ComboBox_SetCurSel(m_hWndCBResolutions, 0); //Renderers (based on UnEngineWin.h), requires appInit() to have been called TArray<FRegistryObjectInfo> Classes; Classes.Empty(); UObject::GetRegistryObjects( Classes, UClass::StaticClass(), URenderDevice::StaticClass(), 0 ); for( TArray<FRegistryObjectInfo>::TIterator It(Classes); It; ++It ) { FString Path = It->Object, Left, Right; if( Path.Split(L".",&Left,&Right) ) { const wchar_t* pszDesc = Localize(*Right,L"ClassCaption",*Left); assert(pszDesc); if(ComboBox_FindStringExact(m_hWndCBRenderers, -1, pszDesc) == CB_ERR) { ComboBox_AddString(m_hWndCBRenderers, pszDesc); m_Renderers.emplace_back(static_cast<wchar_t*>(Path.GetCharArray().GetData())); } } }}
开发者ID:mkentie,项目名称:DeusExe,代码行数:53,
示例16: sizeofvoid DisplayWrapper::dw_init(bool filter, int minWidth, int minHeight){ base_height = base_width = 0; base_bpp = 0; DEVMODE devmode; DWORD modenum = 0; VideoModeInfo mode; modes.clear(); modeNames.clear(); // get current display wchar_t *device = NULL; DISPLAY_DEVICE display_device; display_device.cb = sizeof(DISPLAY_DEVICE); if (base_widget) { QDesktopWidget desktop; int screen = desktop.screenNumber(base_widget); if (screen >= 0) { if (EnumDisplayDevices(NULL, screen, &display_device, 0)) { device = display_device.DeviceName; //qDebug() << QString::fromWCharArray(device); } } } // enumerate display modes while (EnumDisplaySettings(device, modenum, &devmode)) { if (devmode.dmPelsWidth >= minWidth && devmode.dmPelsHeight >= minHeight) { modeNames.append(QString("%1 x %2") .arg(devmode.dmPelsWidth) .arg(devmode.dmPelsHeight) ); mode.width = devmode.dmPelsWidth; mode.height = devmode.dmPelsHeight; mode.bpp = devmode.dmBitsPerPel; modes.append(mode); } modenum++; } if (filter) modeNames.removeDuplicates();}
开发者ID:neoclust,项目名称:jag,代码行数:52,
示例17: getAvailableDisplayModes/** * Choose displaymodes using extended codepath (multiple displaydevices) */jobjectArray getAvailableDisplayModes(JNIEnv * env) { int i = 0, j = 0, n = 0;// DISPLAY_DEVICE DisplayDevice; DEVMODE DevMode; jobject *display_mode_objects = NULL; int list_size = 0; jclass displayModeClass; jobjectArray ret; displayModeClass = (*env)->FindClass(env, "org/lwjgl/opengl/DisplayMode"); ZeroMemory(&DevMode, sizeof(DEVMODE));// ZeroMemory(&DisplayDevice, sizeof(DISPLAY_DEVICE)); DevMode.dmSize = sizeof(DEVMODE);// DisplayDevice.cb = sizeof(DISPLAY_DEVICE); /* Multi-monitor stuff commented out since we're only really interested in the primary monitor *//* while(EnumDisplayDevices(NULL, i++, &DisplayDevice, 0) != 0) { // continue if mirroring device if((DisplayDevice.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER) != 0) { continue; } j = 0; while(EnumDisplaySettings((const char *) DisplayDevice.DeviceName, j++, &DevMode) != 0) {*/ while(EnumDisplaySettings(NULL, j++, &DevMode) != 0) { // Filter out indexed modes if (DevMode.dmBitsPerPel > 8 && ChangeDisplaySettings(&DevMode, CDS_FULLSCREEN | CDS_TEST) == DISP_CHANGE_SUCCESSFUL) { jobject displayMode; if (list_size <= n) { list_size += 1; display_mode_objects = (jobject *)realloc(display_mode_objects, sizeof(jobject)*list_size); if (display_mode_objects == NULL) return NULL; } displayMode = createDisplayMode(env, &DevMode); display_mode_objects[n++] = displayMode; } }// } printfDebugJava(env, "Found %d displaymodes", n); ret = (*env)->NewObjectArray(env, n, displayModeClass, NULL); for (i = 0; i < n; i++) { (*env)->SetObjectArrayElement(env, ret, i, display_mode_objects[i]); } free(display_mode_objects); return ret;}
开发者ID:AndroWibowo,项目名称:computer-graphics,代码行数:55,
示例18: sizeofDisplayModeManagerPimpl::DisplayModeManagerPimpl(){ std::set<std::pair<int, int> > unique_resolutions; std::vector<std::pair<int, int> > sorted_modes; DEVMODE display_setting; display_setting.dmSize = sizeof(DEVMODE); EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &display_setting); int i = 0; int bpp; bpp = display_setting.dmBitsPerPel; sorted_modes.push_back(std::make_pair(display_setting.dmPelsWidth, display_setting.dmPelsHeight)); while (EnumDisplaySettings(NULL, i, &display_setting)) { if (display_setting.dmBitsPerPel == bpp) { unique_resolutions.insert(std::make_pair(display_setting.dmPelsWidth, display_setting.dmPelsHeight)); } ++i; } for (std::set<std::pair<int, int> >::iterator it = unique_resolutions.begin(); it != unique_resolutions.end(); ++it) { sorted_modes.push_back(*it); } std::sort(sorted_modes.begin()+1, sorted_modes.end()); mode_count = sorted_modes.size(); modes = new DisplayMode[mode_count]; for (unsigned int i = 0; i < sorted_modes.size(); ++i) { modes[i].width = sorted_modes[i].first; modes[i].height = sorted_modes[i].second; }}
开发者ID:Akranar,项目名称:daguerreo,代码行数:39,
示例19: sizeofvoid NzVideoModeImpl::GetFullscreenModes(std::vector<NzVideoMode>& modes){ DEVMODE win32Mode; win32Mode.dmSize = sizeof(DEVMODE); for (unsigned int i = 0; EnumDisplaySettings(nullptr, i, &win32Mode); ++i) { NzVideoMode mode(win32Mode.dmPelsWidth, win32Mode.dmPelsHeight, static_cast<nzUInt8>(win32Mode.dmBitsPerPel)); // Il existe plusieurs modes avec ces trois caractéristques identiques if (std::find(modes.begin(), modes.end(), mode) == modes.end()) modes.push_back(mode); }}
开发者ID:GuillaumeBelz,项目名称:NazaraEngine,代码行数:13,
示例20: while//! /return Returns a pointer to a list with all video modes supported//! by the gfx adapter.video::IVideoModeList* CIrrDeviceWin32::getVideoModeList(){ if (!VideoModeList.getVideoModeCount()) { // enumerate video modes. DWORD i=0; DEVMODE mode; while (EnumDisplaySettings(NULL, i, &mode)) { VideoModeList.addMode(core::dimension2d<s32>(mode.dmPelsWidth, mode.dmPelsHeight), mode.dmBitsPerPel); ++i; } if (EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &mode)) VideoModeList.setDesktop(mode.dmBitsPerPel, core::dimension2d<s32>(mode.dmPelsWidth, mode.dmPelsHeight)); } return &VideoModeList;}
开发者ID:jivibounty,项目名称:irrlicht,代码行数:24,
示例21: EnumDisplaySettingsvoid GLWindow::initialize(){ isActive = true; isFullscreen = false; windowedMode = 1; fullscreenMode = 0; EnumDisplaySettings (NULL, ENUM_CURRENT_SETTINGS, &nativeMode); videoModes[0] = VideoMode(4*nativeMode.dmPelsWidth/4, 4*nativeMode.dmPelsHeight/4, 32); videoModes[1] = VideoMode(3*nativeMode.dmPelsWidth/4, 3*nativeMode.dmPelsHeight/4, 32); videoModes[2] = VideoMode(2*nativeMode.dmPelsWidth/4, 2*nativeMode.dmPelsHeight/4, 32);}
开发者ID:arrosado,项目名称:2d-engine,代码行数:13,
示例22: ZeroMemory// 获得最大显示模式时屏幕的宽度和高度(以像素为单位)void CContourView::GetLargestDisplayMode( int* pcxBitmap, int* pcyBitmap ){ DEVMODE devmode; int iModeNum = 0; ZeroMemory( &devmode, sizeof( DEVMODE ) ); devmode.dmSize = sizeof( DEVMODE ); while( EnumDisplaySettings( NULL, iModeNum++, &devmode ) ) { *pcxBitmap = max( *pcxBitmap, ( int )devmode.dmPelsWidth ); *pcyBitmap = max( *pcyBitmap, ( int )devmode.dmPelsHeight ); }}
开发者ID:kanbang,项目名称:myexercise,代码行数:14,
示例23: sizeof D3D9VideoOutputInfo::D3D9VideoOutputInfo(IDirect3D9* d3d9device, UINT32 adapterIdx) :mMonitorHandle(0) { IDirect3D9* pD3D = D3D9RenderAPI::getDirect3D9(); D3DADAPTER_IDENTIFIER9 adapterIdentifier; pD3D->GetAdapterIdentifier(adapterIdx, 0, &adapterIdentifier); mName = adapterIdentifier.DeviceName; for (UINT32 i = 0; i < pD3D->GetAdapterModeCount(adapterIdx, D3DFMT_X8R8G8B8); i++) { D3DDISPLAYMODE displayMode; pD3D->EnumAdapterModes(adapterIdx, D3DFMT_X8R8G8B8, i, &displayMode); bool foundVideoMode = false; for (auto videoMode : mVideoModes) { D3D9VideoMode* d3d9videoMode = static_cast<D3D9VideoMode*>(videoMode); UINT32 intRefresh = Math::roundToInt(d3d9videoMode->mRefreshRate); if (d3d9videoMode->mWidth == displayMode.Width && d3d9videoMode->mHeight == displayMode.Height && intRefresh == displayMode.RefreshRate) { foundVideoMode = true; break; } } if (!foundVideoMode) { D3D9VideoMode* videoMode = bs_new<D3D9VideoMode>(displayMode.Width, displayMode.Height, (float)displayMode.RefreshRate, adapterIdx); mVideoModes.push_back(videoMode); } } // Get desktop display mode HMONITOR hMonitor = pD3D->GetAdapterMonitor(adapterIdx); MONITORINFOEX monitorInfo; monitorInfo.cbSize = sizeof(MONITORINFOEX); GetMonitorInfo(hMonitor, &monitorInfo); DEVMODE devMode; devMode.dmSize = sizeof(DEVMODE); devMode.dmDriverExtra = 0; EnumDisplaySettings(monitorInfo.szDevice, ENUM_CURRENT_SETTINGS, &devMode); D3D9VideoMode* desktopVideoMode = bs_new<D3D9VideoMode>(devMode.dmPelsWidth, devMode.dmPelsHeight, (float)devMode.dmDisplayFrequency, adapterIdx); mDesktopVideoMode = desktopVideoMode; }
开发者ID:AlfHub,项目名称:BansheeEngine,代码行数:51,
示例24: get_refresh_rate/** Get the refresh rate for the monitor, in Hz */static intget_refresh_rate(void){ DEVMODE devModes; if (EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devModes)) { /* clamp the value, just in case we get garbage */ return CLAMP(devModes.dmDisplayFrequency, 30, 120); } else { /* reasonable default */ return 60; }}
开发者ID:ChristophHaag,项目名称:mesa-mesa,代码行数:15,
示例25: getNextDisplayResDownint getNextDisplayResDown(int *xScrnRes, int *yScrnRes, int colorDepth){ DEVMODE dm; int displayFound = 0; int i; i = 0; while (EnumDisplaySettings(NULL, i++, &dm)) { if (dm.dmBitsPerPel == colorDepth) if ((dm.dmPelsWidth == *xScrnRes) && (dm.dmPelsHeight == *yScrnRes)) { displayFound = 1; break; } } if (!displayFound) return -1; while (EnumDisplaySettings(NULL, i++, &dm)) { if (dm.dmBitsPerPel == colorDepth) if ((dm.dmPelsWidth < *xScrnRes) || (dm.dmPelsHeight < *yScrnRes)) break; } if ((dm.dmBitsPerPel != colorDepth) || ((dm.dmPelsWidth >= *xScrnRes) && (dm.dmPelsHeight >= *yScrnRes))) return -1; *xScrnRes = dm.dmPelsWidth; *yScrnRes = dm.dmPelsHeight; i--; return i;}
开发者ID:lowlevel86,项目名称:3d-adventure-game-engine,代码行数:37,
示例26: sizeofbool CScreenManager::SetLowResolution(){ if(!m_bInit) { return false; } DEVMODE DevMod; DevMod.dmSize = sizeof(DEVMODE); if (!EnumDisplaySettings(m_MainDevice.DeviceName, ENUM_CURRENT_SETTINGS, &DevMod)) { DoLog("Failed to enum display settings, low resolution canceled", MSG_ERROR); return false; } if( (DevMod.dmPelsWidth <= 1366) || (DevMod.dmPelsWidth <= 768) ) { DoLog("Screen has already a low res, ignore resolution change", MSG_WARNING); return true; } // Flag for what we want to set DevMod.dmFields = (DM_PELSWIDTH | DM_PELSHEIGHT); // Try a 19/9 low res DevMod.dmPelsWidth = 1366; DevMod.dmPelsHeight = 768; if (ChangeDisplaySettings(&DevMod, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) { // Try a 4/3 low res DevMod.dmPelsWidth = 1024; DevMod.dmPelsHeight = 768; if (ChangeDisplaySettings(&DevMod, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) { DoLog("Low resolution display settings not supported, canceled", MSG_ERROR); return false; } } if(ChangeDisplaySettings(&DevMod, 0) != DISP_CHANGE_SUCCESSFUL) { DoLog("Failed to apply low resolution display settings", MSG_ERROR); return false; } m_bIsLowRes = true; return true;}
开发者ID:Skool,项目名称:ardrone-controller_linux,代码行数:49,
注:本文中的EnumDisplaySettings函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ EnumFontFamiliesEx函数代码示例 C++ EnumDisplayMonitors函数代码示例 |