Ho questo pezzo di codice
glReadBuffer( GL_FRONT );
glReadPixels( 0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, buffer );
Il che funziona perfettamente in tutte le GPU Nvidia e AMD che ho provato, ma fallisce in quasi tutti i singoli video integrati Intel che ho provato. In realtà funziona in un 945GME molto vecchio, ma fallisce in tutti gli altri. Invece di ottenere uno screenshot, sto effettivamente ottenendo una schermata nera.
Se aiuta, sto lavorando con il motore Doom3 e quel codice è derivato dal codice di acquisizione dello schermo incorporato. A proposito, anche con il gioco originale non riesco comunque a catturare schermate su quei dispositivi Intel. La mia ipotesi è che non stiano implementando correttamente lo standard o qualcosa del genere. C'è una soluzione per questo?