【发布时间】:2018-10-04 09:36:57
【问题描述】:
#include <iostream>
#include <SFML/Graphics.hpp>
int main()
{
int desktopwidth = sf::VideoMode::getDesktopMode().width;
int desktopheight = sf::VideoMode::getDesktopMode().height;
sf::ContextSettings settings;settings.antialiasingLevel = 8;
sf::RenderWindow window(sf::VideoMode(desktopwidth, desktopheight), "Texture Transforming!", sf::Style::Fullscreen, settings);
while (window.isOpen())
{
sf::Image image;
if (!(image.loadFromFile("texture.jpg")))
std::cout << "Cannot load image"; //Load Image
sf::Texture texture;
texture.loadFromImage(image); //Load Texture from image
sf::Sprite sprite;
sprite.setTexture(texture);
sprite.setTextureRect({ 0, 0, desktopwidth, desktopheight });
window.clear();
window.draw(sprite);
window.display();
}
return 0;
}
我想要做的是当屏幕大于图像时将纹理拉伸到屏幕的全尺寸。使用 setTextureRect 我所做的只是将最后一个像素拉伸到新的大小,这对于我想要做的事情来说并不是一个很好的外观,因为图像调整大小已被删除,有没有人知道调整图像大小或转换纹理的方法大小/比例?
【问题讨论】:
-
Resizing in SFML 2.0的可能重复