Witem, na potrzebny pewnego programu, potrzebuję wycinać kawałek pewnego okna na bieżąco i rysować go za pomocą SFML w innym oknie.
W moim przypadku oknem z którego będę chciał wyciąć kawałek jest google chrome.
Znajduję to okno tą funkcją:
hwnd = FindWindow(NULL, "Nowa Karta - Google Chrome");
if (hwnd == NULL)
return 1;
Problem pojawia się tutaj taki, że nie wiem jak w efektywny sposób pobierać piksele z tego okna.
GetPixel(hdc, x, y); jest zbyt wolny. Najlepiej żeby wyświetlany obraz był jakby kopią tego co się dzieje w przeglądarce.
Pozdrawiam.
PS. Dla ludzi nie znających SFML.
sf::Image ma metodę
loadFromMemory(void *, std::size_t);
Czyli że zapewne musiałbym tam przekazać HBITMAP oraz wielkość tej bitmapy, tylko że skoro HBITMAP to po prostu HANDLE, czyli void*, to sizeof() nie działa, a WinAPI to ja zbytnio nie ogarniam.