Имеется некий экземпляр интерфейсного типа Tex1.
- Код: Выделить всё
begin
Tex1 := Render.Material.Texture.Load('map_dxt_gen.xtx');
Tex1 := Render.Material.Texture.Load('map_dxt_mip5.xtx');
Tex1 := Render.Material.Texture.Load('test.xtx');
LogOut('Main Loop: Begin');
end;
Delphi начинает высвобождать все "потерянные" интерфейсы при выходе из процедуры:
+ "map_dxt_gen.xtx"
+ "map_dxt_mip5.xtx"
+ "test.xtx"
Main Loop: Begin
- "map_dxt_mip5.xtx"
- "map_dxt_gen.xtx"
FPC же в свою очередь начинает мудрить:
+ "map_dxt_gen.xtx"
- "map_dxt_gen.xtx"
+ "map_dxt_mip5.xtx"
+ "test.xtx"
Main Loop: Begin
- "map_dxt_mip5.xtx"
Т.е. некоторые объекты в FPC высвобождаются прямо при потере указателя, другие по выходу из процедурки.
Можно ли заставить это дело работать на обоих компиляторах однозначно? )
И ещё вопрос.
- Код: Выделить всё
Tex1 := Render.Material.Texture.Load('map_dxt_gen.xtx');
Tex1 := nil;
Tex1 := Render.Material.Texture.Load('map_dxt_mip5.xtx');
Tex1 := nil;
Tex1 := Render.Material.Texture.Load('test.xtx');
Никак на вышеуказанных логах не отражается. Можно ли как-то моментально убить интерфейс?