SFML community forums

Help => Window => Topic started by: ronag on September 02, 2010, 10:47:03 pm

Title: Selecting Display Device
Post by: ronag on September 02, 2010, 10:47:03 pm
Let's say my computer is connected to two display devices (monitors).

I would like too select which one my full screen SFML window is displayed on.

Is this possible?
Title: Selecting Display Device
Post by: Laurent on September 03, 2010, 08:37:19 am
Nop.
Title: Selecting Display Device
Post by: ronag on September 03, 2010, 04:49:24 pm
Figured it out-

Here is how to do it in windows at least.

Code: [Select]
DISPLAY_DEVICE dDevice;
memset(&dDevice,0,sizeof(dDevice));
dDevice.cb = sizeof(dDevice);

std::vector<DISPLAY_DEVICE> displayDevices;
for(int n = 0; EnumDisplayDevices(NULL, n, &dDevice, NULL); ++n)
{
displayDevices.push_back(dDevice);
memset(&dDevice,0,sizeof(dDevice));
dDevice.cb = sizeof(dDevice);
}

if(screenIndex_ >= displayDevices.size())
BOOST_THROW_EXCEPTION(out_of_range() << arg_name_info("screenIndex_"));

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

if(!EnumDisplaySettings(displayDevices[screenIndex_].DeviceName, ENUM_CURRENT_SETTINGS, &devmode))
BOOST_THROW_EXCEPTION(invalid_operation() << arg_name_info("screenIndex_") << msg_info("EnumDisplaySettings"));

screenWidth_ = devmode.dmPelsWidth;
screenHeight_ = devmode.dmPelsHeight;
screenX_ = devmode.dmPosition.x;
screenY_ = devmode.dmPosition.y;


pWindow_.reset(new sf::Window());
pWindow_->Create(sf::VideoMode(width, height, 32), "My window", windowed_ ? sf::Style::Titlebar : sf::Style::Fullscreen);
pWindow_->ShowMouseCursor(false);
pWindow_->SetPosition(screenX_, screenY_);
pWindow_->SetSize(screenWidth_, screenHeight_);