just don't measure things in pixels.
use the size of the screen as parameter to zooming and positioning elements.
example:
#include <SFML/Graphics.hpp>
int main(){
sf::Vector2i resolution;
std::cout << "Enter Width of the window: ";
std::cin >> resolution.x;
std::cout << "Enter Height of the window: ";
std::cin >> resolution.y;
sf::RenderWindow window(sf::VideoMode(resolution.x, resolution.y), "SFML window");
sf::RectangleShape rect1(sf::Vector2f(resolution.x*0.49, resolution.y*0.49));
sf::RectangleShape rect2(sf::Vector2f(resolution.x*0.29, resolution.y*0.49));
rect1.setPosition(resolution.x*0.01, resolution.y*0.01);
rect2.setPosition(resolution.x*0.7, resolution.y*0.5);
rect1.setFillColor(sf::Color::Green);
rect2.setFillColor(sf::Color::Red);
while (window.isOpen()){
sf::Event event;
while (window.pollEvent(event)){
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(rect1);
window.draw(rect2);
window.display();
}
return 0;
}
the rectangles always have proportional position and size, no matter what the resolution is.
you can use this to set up the view size, sprites, and everything else.
edit: http://forums.na.leagueoflegends.com/board/showthread.php?t=2806186
geez, is that true? sounds like a severe design flaw to me :P