Ich lese jetzt jeden Pixel mit Pixels[x, y] aus.
Code: Alles auswählen
var
tx, ty: integer;
TexturData1: array of Longword;
procedure TForm1.InitScene;
var
x, y: integer;
p:Pointer;
begin
tx := Image1.Picture.Width;
ty := Image1.Picture.Height;
SetLength(TexturData1, tx * ty);
for x := 0 to tx - 1 do for y := 0 to ty - 1 do begin
TexturData1[y * tx + x] := Image1.Picture.Bitmap.Canvas.Pixels[x, y];
end;
p:=pointer(TexturData1);
// p:=Pointer(Image1.Picture.Bitmap.); // Schön währe, wen man direkt zugreifen könnte.
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tx, ty, 0, GL_RGBA, GL_UNSIGNED_BYTE, p);// Hier wird der Pointer gebraucht