![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GlScene, Objects
VVV-First © (2005-05-17 14:44:00)Такой вопрос, если я динамически создаю в сцене несколько объктов, то после Scene.destroy освободится память из по них(созданных мною бъектов) , или нужно делать это самостоятельно?
Fosgen (2005-05-30 11:42:00) [21]2 Xeno : Полностью согласен с ситуацией по поводу TGLFreeForm и загруженными 3DS моделями именно с таким положением вещей я и сталкивался... Правда не выяснил что это именно из-за маппинга...
Xeno (2005-05-30 10:31:00) [22]Da Stranger © (19.05.05 17:55) [6]
>Вся памать, выделенная под любые объекты (как статически, так и
>динамически созданные), GLBehaviours, GLEffects (присоединённые
>к объектам GLScene) освобождается достаточно корректно.
Позвольте не согласиться,далеко ходить не надо,в GLScene присутствует
TGLPerlinPFXManager и TGLParticleFXRenderer,освобождение памяти, при их интенсивном использовании, иногда вызывает исключительные ситуации,причём чаще всего всё работает нормально до выгрузки приложения, код не привожу,но думаю те кто пробовал их использовать в своих проектах должны были с этим столкнуться, хотя допускаю мысль что я сам что-то неправильно сделал.
Есть ещё такой-же глюк,но с компонентом TGLFreeForm - при загрузке в него некоторых 3DS моделей с маппингом,тоже может произойти исключительная ситуация при освобождении памяти,насколько я смог разобраться похоже это зависит от модели,GLScene не совсем корректно обрабатывает некоторые вариации 3DS формата...
Fosgen (2005-05-30 09:46:00) [23]2 Da Stranger: Уважаемый если Вы не сталкивались с ситуациями некорректной работы Free - это не значит что их нет. В Дельфе вообще работа с памятью не очень поставлена... Особенно - оптимизация... А насчет исходников - признаюсь - не рылся подробно, но внешне идеальный код не во всех ситуациях работает идеально - факт доказанный временем.
Da Stranger (2005-05-19 17:55:00) [24]Кстати, забыл ответить на оригинальный вопрос...
Вся памать, выделенная под любые объекты (как статически, так и динамически созданные), GLBehaviours, GLEffects (присоединённые к объектам GLScene) освобождается достаточно корректно. Смотрите в TGLScene.Destroy и в TGLBaseSceneObject.Destroy, если не верите.
Автоматически НЕ удаляются объекты, которые можно найти на "Component palette", включая менеджеры эффектов и GLSceneViewer, GLMaterialLibrary и др.
Когда же вы наконец-то научитесь смотреть исходники перед тем, как задавать вопросы... Use the source, guys!!!
Da Stranger (2005-05-19 16:26:00) [25]
> Спору нет Free - безопаснее и к коду менее требовательна,
> только имеет ряд дырок из-за которых не всегда освобождает
> память. Destroy в этом плане надежнее, хотя, однозначно
> придется серъезнее код продумывать.
Что за бред??? Почитай код TObject.Free.
Лучше молчать, чем давать неправильные советы!
Ntdstr (2005-05-19 14:26:00) [26]Пиздец вы долбоёбы! Такую ХЕРНЮписать! Да это же каждый ЛАМЕР
знает!
Xeno (2005-05-19 12:24:00) [27]>VVV-First
Советую какую-нибудь книгу по Delphi, прикупить, там как раз ,в основном, основы подробно разобранны и Free и Destroy и т.д., тогда таких вопросов возникать не будет :)
Fosgen (2005-05-19 10:42:00) [28]Спору нет Free - безопаснее и к коду менее требовательна, только имеет ряд дырок из-за которых не всегда освобождает память. Destroy в этом плане надежнее, хотя, однозначно придется серъезнее код продумывать.
А Scene.Destroy делать не надо - в процедуру завершения приложения Дельфя сама нужный код добавляет и всю память очищает (по документации, конечно). Memory Leaks правда и там есть.
Xeno (2005-05-19 06:51:00) [29]Для освобождения памяти делай Объект.Free, иначе возможно возникновение исключительных ситуауций...