carrotsПеренеси свою реализацию в файл lazarus/lcl/interfaces/gtk/gtkwidgetset.inc футкция 
function TGtkWidgetSet.StretchCopyArea(DestDC: HDC; X, Y, Width, Height: Integer;
Из rasterimage.inc 
- Код: Выделить всё
- procedure TRasterImage.Draw(DestCanvas: TCanvas; const DestRect: TRect);
 .....
 StretchMaskBlt(DestDC, // Ссылается на function TGtkWidgetSet.StretchMaskBlt( из gtkwinapi.inc, а затем StretchCopyArea(
 ....
 
Вызов идет из function TGtkWidgetSet.StretchMaskBlt(
и из function TGtkWidgetSet.StretchBlt(
Учти там параметры.
Короче StretchMaskBlt для каждого виджетсет реализуется своя, а ключи условной компиляции в rasterimage.inc не действуют.
И еще, я не понял зачем заливать один пиксел :       
- Код: Выделить всё
- ...
 SrcBmp.SetSize(RWidth,RHeight);
 SrcBmp.Canvas.FillRect(0,0,1,1); // ??????  Может нужно всю площадь канвы очистить, тогда и шума не будет в старой версии Лазаруса?
 ...