Advertisement
SilverTES

SFML 2.4.1 : simple Resizable Window

Nov 11th, 2016
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. //
  2. //-lsfml-graphics-s
  3. //-lsfml-window-s
  4. //-lsfml-audio-s
  5. //-lsfml-network-s
  6. //-lsfml-system-s
  7. //-lz
  8. //-lwinmm
  9. //-lopengl32
  10. //-lfreetype
  11. //-ljpeg
  12. //-lgdi32
  13. //-luser32
  14. //-lkernel32
  15. //-lcomctl32
  16. //-lopenal32
  17. //-lflac
  18. //-lvorbisenc
  19. //-lvorbisfile
  20. //-logg
  21. //-lws2_32
  22.  
  23. // #define SFML_STATIC
  24.  
  25. #include <SFML/Graphics.hpp>
  26. #include <SFML/Network.hpp>
  27. #include <iostream>
  28.  
  29. // Charge une image depuis une URL
  30. sf::Texture dlpicture(std::string host, std::string uri)
  31. {
  32.     sf::Http http(host);
  33.     sf::Http::Request request(uri);
  34.  
  35.     auto response = http.sendRequest(request);
  36.     auto data = response.getBody();
  37.  
  38.     sf::Texture text;
  39.     text.loadFromMemory(data.data(), data.length());
  40.  
  41.     return text;
  42. }
  43.  
  44. int main()
  45. {
  46.     sf::RenderWindow winRender(sf::VideoMode(1280, 720), "Resize test");
  47.  
  48.     sf::View view(winRender.getDefaultView());
  49.  
  50.     sf::Texture      texture;
  51.     sf::Sprite       sprite;
  52.  
  53.     //texture.loadFromImage(image);
  54.  
  55.     texture = dlpicture("www.sfml-dev.org", "download/goodies/sfml-logo-small.png");
  56.     texture.setSmooth(false);
  57.  
  58.     sprite.setTexture(texture);
  59.  
  60.  
  61.     while (winRender.isOpen())
  62.     {
  63.         sf::Event event;
  64.  
  65.         while (winRender.pollEvent(event))
  66.         {
  67.             if (event.type == sf::Event::Closed)
  68.                 winRender.close();
  69.  
  70.             if ((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Escape))
  71.                 winRender.close();
  72.  
  73.             if (event.type == sf::Event::Resized)
  74.                 winRender.setView(view = sf::View(sf::FloatRect(0.f, 0.f,
  75.                         static_cast<float>(winRender.getSize().x),
  76.                         static_cast<float>(winRender.getSize().y))));
  77.         }
  78.  
  79.         winRender.clear();
  80.  
  81.         //sprite.setScale(2,2);
  82.         sprite.setPosition(winRender.getSize().x/2 - texture.getSize().x/2, winRender.getSize().y/2 - texture.getSize().y/2);
  83.         winRender.draw(sprite);
  84.  
  85.         sf::RectangleShape rectangle;
  86.         rectangle.setPosition(10, 10);
  87.         rectangle.setSize(sf::Vector2f(winRender.getSize().x-20, winRender.getSize().y-20));
  88.         rectangle.setFillColor(sf::Color(25,155,156,55));
  89.         rectangle.setOutlineColor(sf::Color(205,205,20,200));
  90.         rectangle.setOutlineThickness(2);
  91.         winRender.draw(rectangle);
  92.  
  93.         winRender.display();
  94.     }
  95.  
  96.     return EXIT_SUCCESS;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement