Registriert seit: 31. Aug 2005
1.622 Beiträge
FreePascal / Lazarus
|
Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]
2. Jan 2009, 21:40
Ersetzte die MoveTo Zeilen mal Schritt für Schritt durch die folgenden Codeschnipsel und schildere was passiert:
1.
Delphi-Quellcode:
var
pc1, pc2: PCardinal;
x, y: integer;
begin
for y := 0 to bmp.Height - 1 do
begin
pc1 := bmp.Scanline[y];
pc2 := ABitmap.Scanline(y);
for x := 0 to bmp.Width - 1 do
begin
pc1^ := $FF0000FF; //Blaues Bitmap, Alpha $FF
inc(pc1);
inc(pc2);
end;
end;
end;
2.
Delphi-Quellcode:
var
pc1, pc2: PCardinal;
x, y: integer;
begin
for y := 0 to bmp.Height - 1 do
begin
pc1 := bmp.Scanline[y];
pc2 := ABitmap.Scanline(y);
for x := 0 to bmp.Width - 1 do
begin
pc1^ := $FFFFFFFF; //Weißes Bitmap, Alpha $FF
inc(pc1);
inc(pc2);
end;
end;
end;
3.
Delphi-Quellcode:
var
pc1, pc2: PCardinal;
x, y: integer;
begin
for y := 0 to bmp.Height - 1 do
begin
pc1 := bmp.Scanline[y];
pc2 := ABitmap.Scanline(y);
for x := 0 to bmp.Width - 1 do
begin
pc1^ := pc2^ or $000000FF; //Inhalt ABitmap, Alpha $FF
inc(pc1);
inc(pc2);
end;
end;
end;
4.
Delphi-Quellcode:
var
pc1, pc2: PCardinal;
x, y: integer;
begin
for y := 0 to bmp.Height - 1 do
begin
pc1 := bmp.Scanline[y];
pc2 := ABitmap.Scanline(y);
for x := 0 to bmp.Width - 1 do
begin
pc1^ := pc2^; //Inhalt ABitmap, Alpha $FF
inc(pc1);
inc(pc2);
end;
end;
end;
Andreas "Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
|
|
Zitat
|