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); // ?????? Может нужно всю площадь канвы очистить, тогда и шума не будет в старой версии Лазаруса?
...