From 472b6d58581ab2b643da54d3315068cdb9fd1a12 Mon Sep 17 00:00:00 2001 From: paul Date: Sun, 14 Oct 2007 16:20:03 +0000 Subject: [PATCH] gtk: fix RawImage_SetAlpha for non X11 systems (at least for windows) git-svn-id: trunk@12463 - --- lcl/interfaces/gtk/gtkobject.inc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lcl/interfaces/gtk/gtkobject.inc b/lcl/interfaces/gtk/gtkobject.inc index d396c27dca..ba585ae103 100644 --- a/lcl/interfaces/gtk/gtkobject.inc +++ b/lcl/interfaces/gtk/gtkobject.inc @@ -2216,7 +2216,15 @@ var for Y := 0 to AHeight - 1 do begin + // bit order for X11 differ from other bit orders, at least it differ from + // win32 and direct_fb + // x11 stores bits in order while others in reversed order + // this difference cause us to write such nice ifdefs here and below + {$ifdef HasX} SrcMask := 1; + {$else} + SrcMask := $80; + {$endif} SrcPtr := SrcLinePtr; DstPtr := DstLinePtr; for x := 0 to AWidth - 1 do @@ -2225,10 +2233,18 @@ var then DstPtr32^ := DstPtr32^ and DstMask else DstPtr32^ := (DstPtr32^ and DstMask) or DstSet; Inc(DstPtr32); + {$ifdef HasX} SrcMask := SrcMask shl 1; + {$else} + SrcMask := SrcMask shr 1; + {$endif} if SrcMask = 0 then begin + {$ifdef HasX} SrcMask := 1; + {$else} + SrcMask := $80; + {$endif} Inc(SrcPtr); end; end;