|
@@ -3095,7 +3095,7 @@ MODULE Raster; (** non-portable *) (* eos, TF **)
|
|
|
|
|
|
(** add components of two (faded) images **)
|
|
|
PROCEDURE Add* (i, j, res: Image);
|
|
|
- VAR y, x, ibit, jbit, rbit, k: LONGINT; iadr, jadr, radr: ADDRESS; ipix, jpix, rpix: Pixel;
|
|
|
+ VAR y, x, ibit, jbit, rbit: LONGINT; iadr, jadr, radr: ADDRESS; ipix, jpix, rpix: Pixel;
|
|
|
BEGIN
|
|
|
ASSERT((i.width = j.width) & (i.height = j.height) & (i.width <= res.width) & (i.height <= res.height), 100);
|
|
|
y := 0;
|
|
@@ -3103,9 +3103,12 @@ MODULE Raster; (** non-portable *) (* eos, TF **)
|
|
|
x := 0; iadr := i.adr + y * i.bpr; ibit := 0; jadr := j.adr + y * j.bpr; jbit := 0; radr := res.adr + y * res.bpr; rbit := 0;
|
|
|
WHILE x < i.width DO
|
|
|
i.fmt.unpack(i.fmt, iadr, ibit, ipix); j.fmt.unpack(j.fmt, jadr, jbit, jpix);
|
|
|
- FOR k := 0 TO 3 DO
|
|
|
- rpix[k] := Clamp[ORD(ipix[k]) + ORD(jpix[k])]
|
|
|
- END;
|
|
|
+
|
|
|
+ rpix[0] := Clamp[ORD(ipix[0]) + ORD(jpix[0])];
|
|
|
+ rpix[1] := Clamp[ORD(ipix[1]) + ORD(jpix[1])];
|
|
|
+ rpix[2] := Clamp[ORD(ipix[2]) + ORD(jpix[2])];
|
|
|
+ rpix[3] := Clamp[ORD(ipix[3]) + ORD(jpix[3])];
|
|
|
+
|
|
|
res.fmt.pack(res.fmt, radr, rbit, rpix);
|
|
|
ibit := ibit + i.fmt.bpp; INC(iadr, ibit); ibit := ibit MOD 8;
|
|
|
jbit := jbit + j.fmt.bpp; INC(jadr, jbit); jbit := jbit MOD 8;
|