Stas_K
Участник
- Регистрация
- 24.01.2006
- Сообщения
- 925
- Реакции
- 2
- Баллы
- 18
Уж не знаю, куда еще обратиться... Инет весь перекопал - решения проблемы не нашел.
Есть функция на Delphi, прорисовывающая объект. На входе – кривая Безье, на выходе – картинка.
Функцию делал фрилансер, получил оплату, теперь не хочет править.
При частом вызове функции приложением отъедается память.
Место, в котором косяк, я нашел – callback-функция, обрабатывающая пересечения:
procedure combineCallback(coords : PTVector; data : PTArray4D;
weight : TArray4F; var dataout : Pointer); stdcall;
var
vertex : PTVector;
begin
GetMem (vertex, SizeOf (TVector));
vertex^[0] := coords[0];
vertex^[1] := coords[1];
vertex^[2] := coords[2];
dataOut := vertex;
end;
В основном коде:
gluTessCallback(Tess, GLU_TESS_COMBINE, @combineCallback);
Выделяется память для vertex, потом не освобождается.
При попытке поставить в конце функции FreeMem(vertex) появляются глюки на изображении.
Как исправить?
Есть функция на Delphi, прорисовывающая объект. На входе – кривая Безье, на выходе – картинка.
Функцию делал фрилансер, получил оплату, теперь не хочет править.
При частом вызове функции приложением отъедается память.
Место, в котором косяк, я нашел – callback-функция, обрабатывающая пересечения:
procedure combineCallback(coords : PTVector; data : PTArray4D;
weight : TArray4F; var dataout : Pointer); stdcall;
var
vertex : PTVector;
begin
GetMem (vertex, SizeOf (TVector));
vertex^[0] := coords[0];
vertex^[1] := coords[1];
vertex^[2] := coords[2];
dataOut := vertex;
end;
В основном коде:
gluTessCallback(Tess, GLU_TESS_COMBINE, @combineCallback);
Выделяется память для vertex, потом не освобождается.
При попытке поставить в конце функции FreeMem(vertex) появляются глюки на изображении.
Как исправить?