Skip to content

Instantly share code, notes, and snippets.

@Bromeon
Created September 27, 2015 20:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Bromeon/6c60546f8a1d8fe6f0e8 to your computer and use it in GitHub Desktop.
Save Bromeon/6c60546f8a1d8fe6f0e8 to your computer and use it in GitHub Desktop.
Shows multiple monitors in use
// (C) Jan Haller, September 2015
#include <SFML/Window.hpp>
#include <iostream>
std::ostream& operator<< (std::ostream& stream, const sf::IntRect& rect)
{
return stream << "(x: " << rect.left << ", y: " << rect.top
<< ", w: " << rect.width << ", h: " << rect.height << ")";
}
std::ostream& operator<< (std::ostream& stream, const sf::VideoMode& mode)
{
return stream << mode.width << " x " << mode.height << " (" << mode.bitsPerPixel << " bpp)";
}
int main()
{
std::cout << "Number of connected Screens: " << sf::Screen::count() << "\n";
// display all supported fullscreen resolutions for all monitors
for (unsigned int index = 0; index < sf::Screen::count(); ++index)
{
sf::Screen screen = sf::Screen::get(index);
std::cout
<< "\n\n=================================================="
<< "\nScreen #" << index
<< "\n--------------------------------------------------"
<< "\nName: " << screen.name.toAnsiString()
<< "\nPrimary: " << std::boolalpha << screen.isPrimary
<< "\nFramerate: " << screen.refreshRate << " Hz"
<< "\nDPI: (x: " << screen.dpi.x << ", y: " << screen.dpi.y << ")"
<< "\nWorking area: " << screen.workingArea
<< "\nBounds: " << screen.bounds << "\n";
const std::vector<sf::VideoMode>& modes = screen.fullscreenModes;
std::cout << "\nValid resolutions:";
for (std::size_t i = 0; i < modes.size(); ++i)
std::cout << "\n* " << modes[i];
std::cout << "\n\nDesktop mode:\n* " << screen.desktopMode << std::endl;
}
sf::VideoMode videoMode(640, 480, 32, 1);
sf::Window window(videoMode, "Multi Monitor Example!" /*, sf::Style::Fullscreen*/);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed
|| event.type == sf::Event::KeyReleased && event.key.code == sf::Keyboard::Escape)
return 0;
}
window.display();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment