Das sollte gehen:
glReadPixels(0,0,viewport[2],viewport[3],GL_BGRA,GL_UNSIGNED_BYTE,@pixels[0]);
Versuche mal folgendes:
Delphi-Quellcode:
procedure TForm31.Button1Click(Sender: TObject);
var pixels : array of byte;
begin
SetLength(pixels, 100);
showmessage(format('Adress of a pixels %p Adress of pixels[0] : %p', [@pixels, @pixels[0]]));
end;
Die Adresse von Pixels ist nicht dieselbe wie von Pixels[0]! Kann ja nicht sein da auch eine dynamisches Array der Länge 0 existieren kann,