Screenshot vom aktiven Fenster oder Programm mit OpenGL machen ?
-
Hallo kann man mit OpenGL ein Screenshot von einem aktiven Fenster oder Programm machen ?
Wenn ja welche Funkionen muss ich da benutzen ?
-
-
Da hab ich schon gesucht aber nichts brauchbares gefunden -.-
-
-
bool r = true; int viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); int width = viewport[2]; int height = viewport[3]; int size = (width*height)*3; u8* data = new u8[size]; GLint alignment = 0; glGetIntegerv(GL_PACK_ALIGNMENT, &alignment); glPixelStorei(GL_PACK_ALIGNMENT, 1); glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, data); glPixelStorei(GL_PACK_ALIGNMENT, alignment); FIBITMAP* dib = FreeImage_ConvertFromRawBits(data, width, height, 3*width, 24, 0xFF0000, 0x00FF00, 0x0000FF, false); if ( FreeImage_Save(FIF_PNG, dib, filename) == FALSE ) { r = false; ErrorBox(std::string("Cannot save screenshot to '") + filename + std::string("'.")); } FreeImage_Unload(dib); return r;
Aus der Praxis und im Einsatz. Geht wunderbar.
-
GL schrieb:
Hallo kann man mit OpenGL ein Screenshot von einem aktiven Fenster oder Programm machen ?
Hoert sich fuer mich nicht so an als seien "OpenGL" und das "aktive Fenster" das gleiche Programm...