Страница 1 из 1

временные файлы

СообщениеДобавлено: Чт окт 29, 2009 1:51 pm
szura
Добрый день.

В продолжение общения по email пишу тут.

Но имею трабл и вопрос:
при загрузке эмиттеров типа частиц Circle Of Flame из demo.ptc создаются
некие временные файлы размером 16 килобайт. mp0, mp1, mp2....

Поясняю...
Если анимация эмиттера начианется не с начала (Magic_GetInterval1
возвращает число большее 0), то враппер при первом обращении к
эмиттеру сдвигает позицию анимации до этого первого интервала, чтобы
пользователь его сразу мог увидеть на экране. Потом
враппер запоминает результат (полное состояние спецэффекта) во временный
файл. Это нужно для того, чтобы при перезапуске эмиттера не выполнять
расчеты по перемещению позиции анимации, а сразу взять результат.

И не удаляются по завершении приложения.

Вообще-то должно удаляться. Я специально проверил - у меня файлы
удалились.

Что это такое и Как с этим бороться?

В данном случае бороться надо только с "неудаляемостью" этих файлов.
А чтобы эти файлы не создавались, вы можете в редакторе поставить
"Первая граница интервала видимости"=0, но эффект от этого несколько
изменится.

И всё же.
В какой момент Magic Particles API удаляет эти временные файлы, и что может быть я делаю не то, раз они у меня не удаляются.

Re: временные файлы

СообщениеДобавлено: Чт окт 29, 2009 2:26 pm
Odin_KG
В какой момент Magic Particles API удаляет эти временные файлы, и что может быть я делаю не то, раз они у меня не удаляются.

API этим не занимается - это делает враппер.

В класс MP_Emitter есть переменная:
Код: Выделить всё
MP_String copy_file;      // файл с копией

сюда записывается имя файла, куда снимается копия частиц.

удаление происходит в деструкторе класса:
Код: Выделить всё
MP_Emitter::~MP_Emitter()
{
   if (!copy_file.empty())
   {
      remove(copy_file.c_str());
      copy_file="";
   }

   Magic_UnloadEmitter(emitter);
}


В общем-то у вас есть полностью открытый код враппера и вы можете прошагать этот момент отладчиком - возможно после ваших манипуляций деструктор больше не вызывается. Могу еще предположить такую ситуацию, что у вас когда-то приложение завершилось аварийно и созданные файлы остались не стёртыми, а враппер удаляет только те файлы, которые он создал при запуске (правда, вам нужно было бы ptc-файл поменять для получения такой ошибки). В общем последнее маловероятно.

Re: временные файлы

СообщениеДобавлено: Чт окт 29, 2009 3:05 pm
szura
Да, и вправду всё оказалось банально. :D
Позабыл delete свой менеджер.

Re: временные файлы

СообщениеДобавлено: Чт окт 29, 2009 3:17 pm
Odin_KG
Позабыл delete свой менеджер.

Бывает :)