Создать изображение окна программы и сохранить в формате PNG

Хотелось бы при нажатии на кнопку программа делала снимок окна (в том разрешении в котором было открыто окно программы) и сохраняла в папку, чтобы в дальнейшем можно было воспользоваться. Подскажите каким образом можно это сделать и чтобы это сочеталось с SFML. Если это вообще возможно в том варианте в котором я описал:)

visual studio 2015 / c++ / sfml

#include <SFML\Graphics.hpp>
#include <iostream>
//#include <Windows.h>
//using namespace std;
using namespace sf;

struct Struct_SizeWindow {
int W = 1500, H = 1000, size = 1;
int w = size*W, h = size*H;
}; Struct_SizeWindow SizeWindow;

int main() {
RenderWindow window(VideoMode(SizeWindow.w, SizeWindow.h), "");
window.setPosition(Vector2i(500, 300));

int xPrimary = 0, yPrimary = 0, sizeShape = 4;

while (window.isOpen()) {

    Vector2i PosXY = Mouse::getPosition(window);
    Vector2f pos = window.mapPixelToCoords(PosXY);
    Vector2i pos2 = Mouse::getPosition(window);

    int x = pos.x / SizeWindow.size;
    int y = pos.y / SizeWindow.size;

    Vertex line[] = {
        Vertex(Vector2f(xPrimary, yPrimary)),
        Vertex(Vector2f(x, y))
    }; xPrimary = x; yPrimary = y;

    Event event;

    while (window.pollEvent(event)) {
        if (event.type == Event::Closed)
            window.close();
    }

    for (int i = 0; i < 2; i++) {
        window.draw(line, 2, sf::Lines);  window.display();
    }
}

}


Ответы (0 шт):