Я решил, что принял решение повторно ответить на мой вопрос, я буду считать, что моя проблема решена на 80% Во-первых, окно рендеринга инициализируется в режиме ' sf :: Style :: fullscreen ', экземпляр VideoMode () все еще пуст и равен основному Посмотреть экземпляр.
worldView(RenderWindow.getDefaultView()).
Это небольшое решение привело меня к изображению background (которое я загружал в программу раньше), потому что в основной логике c моего приложения Я могу получить экземпляр окна рендеринга с помощью экземпляра контекста. Для получения дополнительной информации вы можете проверить официальную документацию SFML для sf :: Context .
// 2d vector to store window dimension as unsigned int's.
sf::Vector2u size = context.RenderWindow->getSize();
После этого я создаю двумерный sf :: Vector2u двумерного кордината, в котором хранится текущий размер полноэкранного окна .
На этом шаге я бы центрировал его фон с помощью функции , чтобы центрировать объекты по его координатам и границам происхождения .
mBackgroundSprite.setPosition(size.x / 2u, size.y / 2u);
centerObject(mBackgroundImg);
.
.
.
// In this case is a sprite image.
void centerOrigin(sf::Sprite& sprite)
{
sprite.setOrigin(std::floor(sprite.getLocalBounds().left + sprite.getLocalBounds().width / 2.f),
std::floor(sprite.getLocalBounds().top + sprite.getLocalBounds().height / 2.f));
};
В этот момент, когда изображение находится в центре, я могу начать размещать остальные элементы с относительными позициями, например, иметь ссылку. Большинство объектов неправильно масштабируются, но это может быть удобно для многих компьютеров ...