Поиск - Пользователи - Календарь
Полная Версия - Новый редактор Bif и Lbm
The way of war - Форумы > Medieval > Моды на MTW и STW
Страницы: 1, 2, 3
Sturm LS
Уважаемые, модостроители и все остальные!!!

Для Вас был написан новый вариант редактора, основанного на BifEdit'е от RSW и моей разработке конвертера LBM<->BMP. Лежит он на месте конвертера LBM<->BMP на http://modding.twow.ru/read.php?sname=inst...lealias=LBM2BMP. Описание, пока что, от конвертера - описание к редактору скоро будет. А пока, в этом топике я буду отвечать на вопросы о нем. Редактор позволяет производить все необходимые операции с Bif и Lbm файлами.

Приятного редактирования!!!

Sturm LS.
Alan
Блин , это здорово , что у на с появился новый редактор BifEdit' и.т. д.Только для таких , например , как я бестолковых , еще бы пояснения , хоть какие-либо - как с ним работать то ? Не поленись , хоть в общих чертах ...
Sturm LS
2 Alan:
QUOTE (Alan @ там)

Блин , это здорово , что у нас появился новый редактор BifEdit' и.т. д.

Конечно здорово:)

QUOTE

Только для таких , например , как я бестолковых , еще бы пояснения , хоть какие-либо - как с ним работать то ?

Работать с ним предельно просто. В одной оболочке (программе) две утилиты - viewer и editor. Соответственно viewer - для удобного просмотра графики, editor - для операций с содержимым.

Viewer открывается либо из меню (File->Viewer), либо по кнопке toolbar'а (иконка с кактусом и солнышком), либо по hotkey'у (Ctrl+V). Открывшееся окно делится на три части: левая для просмотра изображений; правая нижняя для выбора просматриваемого файла; правая верхняя для просмотра информации о файле. Кликнув левой кнопкой мыши по изображению можно увеличить изображение в два раза (для удобства просмотра), правой - уменьшить в два раза, средней - вернуть к исходному размеру. Если просматривается много кадровый bif-файл, слева снизу появляется панель с кнопками перехода от кадра к кадру.

Editor открывается либо из меню (File->Open; с последующим выбором открываемого файла), либо по кнопке toolbar'а (стандартная иконка "открыть файл"), либо по hotkey'у (Ctrl+O), либо из viewer'а (двойной клик и нажатие "Enter" при выбраном файле). Основное окно editor'а похоже на окно viewer'а (см. выше), а исключением средней и нижней правых частей. Средняя правая часть содержит кнопки операций (есть общии, и специфичные для каждого вида файлов),
нижняя правая название редактируемого файла (в случае bif-файла - еще и записи для каждого кадра). Чтобы узнать, что делает та или иная кнопка - достаточно навести на нее курсор и прочитать (на английском языке, но просто и понятно) в строке статуса или дождаться появления подсказки (тоже smile.gif на английском языке).

QUOTE

Не поленись

Всегда к Вашим услугам. Получилось как и просил -
QUOTE

в общих чертах ...

Полное описание появиться, но через некоторое время. О конкретных вещах - пока, отвечаю в этом топике, так что если что ... спрашивайте!!!
AlexRaven
Отличная идея сделать вьювер! Снимаю шляпу! wink.gif
Теперь бы добавить такие функции: а) выделение нескольких пикселов рамочкой, б) копирование выделенного в) вставление выделенного. Если это реализовать, то ой что будет... biggrin.gif
Sturm LS
2 AlexRaven:

QUOTE (AlexRaven @ там)

Отличная идея сделать вьювер! Снимаю шляпу!

Лучше одень обратно, а то вдруг сверху упадет что... smile.gif

QUOTE

Теперь бы добавить такие функции:

Добавить можно!

QUOTE

а) выделение нескольких пикселов рамочкой
б) копирование выделенного
в) вставление выделенного.

И это, в принципе, реально, но вопрос - зачем? Я не отрицаю необходимость работы с буфером обмена, но может то, что ты хочешь сделать можно выполнить и теми операциями, что уже реализованны?

QUOTE

Если это реализовать, то ой что будет...

Как наберем необходимых функций - напишу новую версию редактора. И ой что будет... Завалят новыми пожеланиями smile.gif (Опять же, я не против, но не все есть смысл делать - например, собственный редактор графики типа PhotoShop или хотя бы Paint - это уже реализованно массой программ)
AlexRaven
2 Sturm LS:
QUOTE (Sturm LS @ там)
И это, в принципе, реально, но вопрос - зачем? Я не отрицаю необходимость работы с буфером обмена, но может то, что ты хочешь сделать можно выполнить и теми операциями, что уже реализованны?

Так легче оружие и щиты перекидывать. В фотошопе можно, но муторно - слишком много однообразных действий - отнимают время! А здесь можно сделать так: функция вставить на все фреймы на тоже место, что и в первом - и вуаля! 5 секунд и готово.
Смотри в общем, наше дело предложить, ваше - отказаца. wink.gif
Sturm LS
2 AlexRaven:

QUOTE (AlexRaven @ там)

Так легче оружие и щиты перекидывать. В фотошопе можно, но муторно - слишком много однообразных действий - отнимают время! А здесь можно сделать так: функция вставить на все фреймы на тоже место, что и в первом - и вуаля! 5 секунд и готово.

Автоматизация пакетных действий?! Понимаю - сделать можно, нужно только продумать как по аккуратнее реализовать.

QUOTE

Смотри в общем, наше дело предложить, ваше - отказаца.

Оказатся - конечно, наше дело, и никому его не отдадим smile.gif
А за идею спасибо - реализуем, пусть всем будет удобнее!!!
AlexRaven
2 Sturm LS:
QUOTE (Sturm LS @ там)
Автоматизация пакетных действий?! Понимаю - сделать можно, нужно только продумать как по аккуратнее реализовать.

А там так и получается. Вот тебе поподробней. Например, размер фрейма 512х512 и нам надо скопировать объект, левая верхняя координата к-го в точке 100х150, правая верхняя - 200х150, левая нижняя - 100х175 и правая нижняя - 200х175. Можно сделать инструмент как в шопе, а можно тупо задавать в окошке эти координаты, указав углы прямоугольника. А дальше либо копировать в буфер, чтобы поместить в другой файл или скопировать выделение в этом же файле на все фреймы по тем же координатам.
Вот-с, собстно, что хотелось бы. wink.gif Попробуй, будет сложно, то и фиг с ним. Не будет у нас юнитов с новым оружием, а то и вообще новых юнитов и не увидит их никто никогда и будет всем грустно и скучно... biggrin.gif
Sturm LS
2 AlexRaven:
QUOTE (AlexRaven @ там)

А там так и получается.

Я имел ввиду, что ты хочешь избавиться от однообразных действий

QUOTE

Вот тебе поподробней. Например, размер фрейма 512х512 и нам надо скопировать объект, левая верхняя координата к-го в точке 100х150, правая верхняя - 200х150, левая нижняя - 100х175 и правая нижняя - 200х175. Можно сделать инструмент как в шопе, а можно тупо задавать в окошке эти координаты, указав углы прямоугольника. А дальше либо копировать в буфер, чтобы поместить в другой файл или скопировать выделение в этом же файле на все фреймы по тем же координатам.

Вообще то, принцип хранения изображения юнитов тактической карты мне известен, но спасибо за пояснение своей мысли smile.gif

QUOTE

Вот-с, собстно, что хотелось бы. Попробуй, будет сложно, то и фиг с ним.

Понятно. Постараемся!

QUOTE

Не будет у нас юнитов с новым оружием, а то и вообще новых юнитов и не увидит их никто никогда и будет всем грустно и скучно...

Бедные мы, несчастные... Никто нас не пожалеет... smile.gif
Sturm LS
2 AlexRaven:

Тут подумалось - а может сделать отдельный утилиту (в составе редактора, как viewer и editor) для редактирования изображений юнитов тактической карты?
AlexRaven
2 Sturm LS:
QUOTE (Sturm LS @ там)
Тут подумалось - а может сделать отдельный утилиту (в составе редактора, как viewer и editor) для редактирования изображений юнитов тактической карты?

Хозяин - барин. wink.gif
Sturm LS
2 AlexRaven:
Ладно, посмотрим...

Sturm LS
2 AlexRaven:

Редактор обновился (сейчас написал письмо SlipJ'у, чтобы положить на сайт). Сделал что хотели - но по своему smile.gif

QUOTE (AlexRaven @ там)

а) выделение нескольких пикселов рамочкой,
б) копирование выделенного

Не сделано - проще в любом редакторе вырезать/нарисовать и сохранить в виде отдельного BMP.

QUOTE

в) вставление выделенного.

Реализованна вставка любого BMP-файла в нужную область (с растяжением/сужением) одного/всех кадров.

QUOTE

Если это реализовать, то ой что будет... 

Дело за Вами... smile.gif
AlexRaven
2 Sturm LS:
Отлично! Скачаем, заценим, похвалим, покритикуем... wink.gif
Sturm LS
2 AlexRaven:
QUOTE (AlexRaven @ там)

Отлично! Скачаем, заценим, похвалим, покритикуем...


Ну, как? Понравилась "игрушка"?!!
Sturm LS
2 Alan:
2 ALL:


QUOTE (Sturm LS @ там)

Полное описание появиться, но через некоторое время. О конкретных вещах - пока, отвечаю в этом топике, так что если что ... спрашивайте!!!


Описание появилось. Пользуйтесь. Вопросы по прежнему сюда.
Engineer
2 Sturm LS:
QUOTE (Sturm LS @ там)
Описание появилось. Пользуйтесь. Вопросы по прежнему сюда.


Да. Спасибо. Вот теперь давай про твою библиотечку компонент поговорим. А то я уже захотел встроить просмотр и редактирование BIF-ов в редактор и пока не разобрался.

Дашь описание интерфейса компонентов? Или хотя бы исходники, чтоб самому разобраться? Что то я торможу без инструкций. ph34r.gif
Sturm LS
2 Engineer:
QUOTE (Engineer @ там)

Да.


Хорошо.
QUOTE (Engineer @ там)

Спасибо.


Всегда пожалуйста.
QUOTE (Engineer @ там)

Вот теперь давай про твою библиотечку компонент поговорим. А то я уже захотел встроить просмотр и редактирование BIF-ов в редактор и пока не разобрался.


Как и обещал, всегда готов к диалогу.
QUOTE (Engineer @ там)

Дашь описание интерфейса компонентов? Или хотя бы исходники, чтоб самому разобраться? Что то я торможу без инструкций. 

Как я писал в приват Кирилу, описания нет (надо сделать, но лень). Исходники выслать могу, но они почти нечитабельны (сам не сразу вспоминаю что к чему).
Простейшие действия делаются так:
1) На форму помещаешь компонент BIFImage.
2) В коде исполняемом во время работы приложения (не на стадии проектирования) используешь метод LoadFromFile () - параметр один текстовая строка с полным путем к bif-файлу.
3) После загрузки файла в память, можно вывести изображение любого фрейма методом SaveFrameToBmp - параметра два: номер фрейма (начиная с 1, а не с 0) и указатель на структуру TBitmap, которую потом можно отобразить где угодно, в том числе и сохранить ввиде bmp-файла.
4) Можно заменить изображение любого фрейма методом LoadFrameFromBmp - параметров пять: номер фрейма (начиная с 1, а не с 0), ширина и высота картинки, указатель на структуру TBitmap (в которую предварительно загруженна картинка) и флаг изменения изображения (0 - оригинальный размер с обрезанием по размерам bif-файла, 1 - растянута/сжата до размеров bif-файла, 2 - пропорционально растянута/сжата до размеров bif-файла, 3 - оригинальный размер).

В основном, вот так. Если что-то конкретное - спрашивай еще.

P.S. Поздравляю с наступившим!!! Извиняюсь, что не сразу ответил - "упала" сеть - надо было настроить, на ответы времени не было.

P.P.S. Если исходники все-таки нужны, напиши.
Engineer
2 Sturm LS:

QUOTE (Sturm LS @ там)
P.S. Поздравляю с наступившим!!! Извиняюсь, что не сразу ответил - "упала" сеть - надо было настроить, на ответы времени не было.

Спасибо.

QUOTE (Sturm LS @ там)
В основном, вот так. Если что-то конкретное - спрашивай еще.

LBM, как я понимаю, обрабатывается аналогично, кроме номеров фрейма???

QUOTE (Sturm LS @ там)
P.P.S. Если исходники все-таки нужны, напиши.

Надо, а то у меня Delphi ругаются на отсутствие DCU-файлов, да и разбираться лучше с исходниками. Если не жаль, вышли пожалуйста их на: wwtp@aha.ru Хочу их на Delphi 7.0 перенести, чтоб он не ругался.

Вообще говоря, может когда нибудь и опубликуешь исходники компонента и исходники своего замечательного редактора отдельно? Прямо в своей статье на подсайте по моддингу в разделе инструментов? Здесь, на форуме, есть ещё программисты, - многим будет интересно. (Мне, например, - хоть я и не программист cool.gif )
Kirill
Присоединяюсь
Sturm LS
2 Engineer:
QUOTE (Engineer @ там)

Спасибо.


"Мои года, мое богатство ..." smile.gif
QUOTE (Engineer @ там)

LBM, как я понимаю, обрабатывается аналогично, кроме номеров фрейма???


Верно.
QUOTE (Engineer @ там)

Надо, а то у меня Delphi ругаются на отсутствие DCU-файлов, да и разбираться лучше с исходниками. Если не жаль, вышли пожалуйста их на: wwtp@aha.ru Хочу их на Delphi 7.0 перенести, чтоб он не ругался.


Выслал три письма с исходниками (пояснения в письмах). Пользуйся.
QUOTE (Engineer @ там)

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


Публикацией, если не против, займись сам, пожалуйста. Мне для "народа", ни чего не жалко, просто сайт вроде TWoW - тебе и карты в брюки smile.gif За одно и в статье порядок наведи - там не очень понятно что к чему относится.
Sturm LS
2 Kirill:
QUOTE (Kirill @ там)

Присоединяюсь


Так ведь, я же писал в приват: что нужно - спрашивай.
Engineer
2 Sturm LS:
QUOTE (Sturm LS @ там)
Так ведь, я же писал в приват: что нужно - спрашивай.

smile.gif Видимо он про исходники. Их я, кстати, уже получил, спасибо. Разберусь сам и тогда опубликую в разделе инструментов. Kirill, - тебе их выслать тоже на майл да?

sad.gif А ругается Delphi на библиотеку потому что нет родных для него объектных файлов DCU. Видимо надо подключить для компилятора С-шные объектники директивой $L, они ведь стандартные интеловские. Я просто ещё не пробовал этого сделать, а С-билдер у меня не установлен и я не знаю может ли он дать инструкцию линкеру готовить объектники прямо для Delphi (Delphi так как раз может - DCU либо С либо С++ обьектники). Sturm LS - если С-билдер это может, то попробуешь для Delphi объектники тоже выложить?
Kirill
2 Engineer:
Да, пожалуйста.
Engineer
2 Kirill:
QUOTE (Kirill @ там)
2 Engineer:
Да, пожалуйста.

Ладно, вечером доберусь до них и отправлю... А ты С-шные обьектники в Дельфи вставлял? Или, может, проще посмотреть что там в dll-ке у Sturm-а и прямо её использовать?
Sturm LS
2 Engineer:
QUOTE (Engineer @ там)

Sturm LS - если С-билдер это может, то попробуешь для Delphi объектники тоже выложить?


Я этим никогда не занимался (не было необходимости), а сегодня "полазил" по форумам Builder'а и Delphi - вроде бы, говорят, что это невозможно...


2 All:
Если кто знает как с этим справиться - поделитесь.
Engineer
2 Sturm LS:
QUOTE (Sturm LS @ там)
Я этим никогда не занимался (не было необходимости), а сегодня "полазил" по форумам Builder'а и Delphi - вроде бы, говорят, что это невозможно...
2 All:
Если кто знает как с этим справиться - поделитесь.

Ну как так невозможно? Я же делал уже нечто подобное. Вообще то, я полагал что обьявления интерфейса компонент должно быть в самой bpl-ке, но если уж её не хватает, то ругань компилятора на отсутствие DCU означает всего лишь необходимость перевода соответствующих Си-шных файлов заголовков (*.h) на паскаль, с последующей генерацией из них DCU. Этого вполне достаточно и я так уже делал. В нашем случае, как я понимаю, достаточно перевести и сделать паскалевские файлы: BIFImage.h, LBMImage.h и DDFListBox.h. Могу по твоим исходникам и попробовать сделать такой перевод. Мне, правда, несколько не хватает знания С++ синтаксиса, но всё же попробую. Структуры вроде уже перевел, сейчас с декларациями всех этих указателей разбираюсь. О результате сообщу дополнительно, а может Kirill меня обгонит...

Конечно можно использовать и прямо продекларированную DLL, но в этом случае есть трудности с импортом классов, мы сможем пользоваться только вызовом конкретных функций, так что изготовить новые хедеры - это правильный путь. cool.gif
Kirill
2 Engineer:
Обгоню, когда исходники у меня будут smile.gif Может быть sad.gif
Engineer
2 Kirill:
QUOTE (Kirill @ там)
2 Engineer:
Обгоню, когда исходники у меня будут  Может быть


Давно бы были, sad.gif но у меня форум глючит, а по твоему старому майлу не прошодит, что-то.... Давай сюда свой майл текстом, ладно?
Engineer
QUOTE (Kirill @ Aug 21 2003, 11:24 AM)
2 Engineer:
Обгоню, когда исходники у меня будут smile.gif Может быть sad.gif

2 Kirill:
Ладно, не дождался твоего майла или это у меня глюки, так что, с любезного разрешения автора (Sturm LS), выкладываю исходники прямо тут. Потом перенесу их в статью про инструменты.

Докладываю ещё и свою заготовку перевода BifImage.pas, - много я чего ещё не успел, но канва вроде есть. Или ты по новой станешь переделывать?
Короче, сделаешь правильные заголовки, загрузи их сюда же, пожалуйста, тогда проверим и в статейной по моддингу-инструменты опубликуем готовые компоненты и исходники автора отдельно.
Sturm LS
2 Engineer:
QUOTE (Engineer @ там)

Ну как так невозможно?


Просто я пробежался, по быстрому, по форумам - там на вопросы типа: как использовать С++ исходники в Delphi, ответ один - переписать. В Builder'е, все "облазил" - нет возможности сделать dcu. Я в Delphi, непосредствено, не работал - поэтому не знаю. Если ты говоришь, что это сделать можно - значит так и есть.
QUOTE (Engineer @ там)

Мне, правда, несколько не хватает знания С++ синтаксиса, но всё же попробую.


Если что, поможем.
Engineer
2 Sturm LS:
QUOTE (Sturm LS @ там)
там на вопросы типа: как использовать С++ исходники в Delphi, ответ один - переписать.

Вообще то есть готовый конвертор исходников С++ в Дельфи от сайта Dr.Bob. Неплохой, хотя и шибко путаный. В качестве подстрочника можно использовать. Я как то перевордил в Дельфи одну промышленную библиотечку, - помучился изрядно, но всё стабильно заработало. Хотя в С++ есть некоторые конструкции не переводимые принципиально, - те же переопределяемые для разных значений константы, например.
rolleyes.gif Думаю Kirill быстрее переведет заголовки файлов, у него С-шная практика видать куда больше моей. А тогда и документации другой не надо, - все вызовы как на ладони.

А в Дельфях можно готовить сатндартные DCU, объектники С или С++ - это задается в опциях линкера проекта, так что обратная совместимость всяко уже есть.
{
Linker output
_______________________________________
Specifies the output from the linker.
_______________________________________
Option Effect
_______________________________________
Generate DCUs Output standard Delphi DCU format files.
Generate C object files Create a C object file for linking with a C program (no name mangling).
Generate C++ object files Create a C++ object file for linking with C++ (uses C++ name mangling).
Include namespaces Puts information into namespaces and mangles the namespace (the name of the unit) into the symbol. This must be checked if sharing code with C++. (This option is enabled if Generate C++ object files is checked.)
Export all symbols Creates dynamically linkable exports for exported functions in the project. It is for use when generating object files for packages that will be linked into C++ applications. (This option is enabled if Generate C++ object files is checked.
}

Можно, насколько я знаю и прицепить к проекту Дельфи объектник стандартного формата, просто указав его:
{
The $L parameter instructs the compiler to link the named file with the program or unit being compiled. The $L directive is used to link with code written in other languages for procedures and functions declared to be external. The named file must be an Intel relocatable object file (.OBJ file). The default extension for filename is .OBJ. If filename does not specify a directory path, then, in addition to searching for the file in the same directory as the current module, Delphi searches in the directories specified in the Search path input box on the Directories/Conditionals page of the Project|Options dialog box (or in the directories specified in the -O option on the DCC32 command line).
}
Хотя этот способ я не пробовал.
Sturm LS
2 Engineer:

В общем, пробежался я еще раз по Builder'у - возможности сделать dcu не нашел. "Компиленные обектники" лежат в архиве - можешь попробовать их "слинковать".
Engineer
QUOTE (Sturm LS @ Aug 22 2003, 09:39 AM)
2 Engineer:

В общем, пробежался я еще раз по Builder'у - возможности сделать dcu не нашел. "Компиленные обектники" лежат в архиве - можешь попробовать их "слинковать".

2Sturm LS:
******************************************
Жаль, но дело не в этом. Я разумеется пробовал их подлинковать сразу же. Проблема в том что для Delphi все эти Си-шные имена и декларации с "собачками", "волнами" и прочим мусором в названиях функций не годятся. То есть объектник линкуется, а на имена начинает ругаться. Может я просто не разобрался, но у меня так и не вышло.
Поэтому, скорее всего, придется действительно переписывать заголовки библиотеки твоих компонентов, - надеюсь у Kirilla на будет с этим проблем.

А пока я выкладываю заголовочный файл Дельфей в комплекте с твоим dll-м, - пользуйтесь господа пока хоть этим. Если откомментируешь эти вызовы или хотя бы укажешь вместо моих безликих "arg#" осмысленные имена аргументов, можно будет нормально пользоваться пока хоть твоей dll-кой. Вроде и так понятно, но вопросы всё же есть.
Engineer
2 Kirill:
Ну как, попробовал прописать хедеры? Поделишься? У меня как-то всё руки не доходят...
Kirill
2 Engineer:
Да вот винт только-только поменял, таr что... то же самое sad.gif
Engineer
2 Kirill:
QUOTE (Kirill @ там)
2 Engineer:
Да вот винт только-только поменял, таr что... то же самое

Ага, ну ладно. Я вот хедер к dll-ке вроде сделал, а к обьектникам компонента только заготовку начал, - она там и лежит, не успел ещё даже вызовы потипам на указатели поменять. Если успеешь раньше меня, клади всё сюда. Шибко охота редактор доделать с картинками.
Ronin
Господа, у меня вопрос по поводу конвертора и просмотрщика MedConstrKit, сделанного Sturm LSом. По омему это лучшая фича, которую я на сайте видел и для работы с Bifами и с Lbsами. Но есть у нее один прикол - эта программа неуклонно приращивает файлы подкачки при просмотре анимации.... у мине на машине гектар оперативы и эта програмка, будучи единственно запущеной за 10 менут повергла машину в шок...Вы этого не замечали у себя ? Решена ли эта проблема ? (нет, можно конечно ее просто закрывать и открывать заново при достижении критического арзмера файлов.., но это же не решение, тем более, что я думаю там ничего сложного... просто автор в цыкле забыл чень-ть выгрузить.... )Sturm LS, ваши комментарии ? и будит ли продолжение с новыми удобными фичами ?(например отображение привьюшек, дерева каталогов)
AlexRaven
2 Ronin:
Я ее постоянно юзаю, ничего такого не замечал. 256 метров оперативки, 1 гиг кэша на винте (жестко задан)... При этом одновременно еще и фотошоп, да еще и Медиевал (гама в смысле)... винда ХР... хотя и на МЕ все ништяк было.
ЛЮБИТЕЛЬ
QUOTE (AlexRaven @ там)
Я ее постоянно юзаю, ничего такого не замечал. 256 метров оперативки, 1 гиг кэша на винте (жестко задан)... При этом одновременно еще и фотошоп, да еще и Медиевал (гама в смысле)... винда ХР... хотя и на МЕ все ништяк было.

Все тоже , только 512DDR , более минуты задержек не бывает blink.gif И то это при работе с огромными картами blink.gif
Sturm LS
2 Ronin:
QUOTE (Ronin @ там)

Господа, у меня вопрос по поводу конвертора и просмотрщика MedConstrKit, сделанного Sturm LSом. По моему это лучшая фича, которую я на сайте видел и для работы с Bifами и с Lbsами.


Спасибо, я старался, что бы было удобно.
QUOTE (Ronin @ там)

Но есть у нее один прикол - эта программа неуклонно приращивает файлы подкачки при просмотре анимации.... у мине на машине гектар оперативы и эта програмка, будучи единственно запущеной за 10 менут повергла машину в шок...


С этого момента можно по подробнее (что за ситуация, что запущенно, что за OS, что за "железо")?
QUOTE (Ronin @ там)

Вы этого не замечали у себя ?


Нет, ни разу. Был другой момент, но выловить его не удалось, а пользователи не сообщали.
QUOTE (Ronin @ там)

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


Как только проясним ситуацию (см. выше), посмотрим, что можно сделать.
QUOTE (Ronin @ там)

Sturm LS, ваши комментарии ?


Да все, в общем то, просто. Программа считывает весь файл в память, разбивая его на часть (заголовок, палитра, массив адресов кадров, каждый кадр в отдельности). При этом, объем занимаемой памяти чуть больше, чем размер считываемого файла. При открытии кадра, его "тело" декодируется и помещается в созданный в памяти BMP-файл, который отображается в окне. При открытии следующего кадра, BMP-файл стирается и создается опять. Так как все операции производятся в памяти - то, теоретически, память может "захламляться". Однако при неоднократном просмотре файлов игры (даже "монструозных" - Epic.BIF, 100monsl.BIF, 100monsr.BIF, StandMon.BIF, LUKUPMAP2.LBM и т.п.), ни каких проблем с памятью и "свопом" не замеченно.
QUOTE (Ronin @ там)

... и будит ли продолжение с новыми удобными фичами ?(например отображение привьюшек, дерева каталогов)


И с этого момента, если можно, по конкретнее. Я уже писал:
QUOTE (Sturm LS @ там)

Как наберем необходимых функций - напишу новую версию редактора

Так что, поясни свои мысли, а за нами - не заржавеет!
Ronin
в кратце - запускал прогу и на "чистой" машине и с запущеными приложениями(Мах, фотошоп) на двух системах - ХР профэшнл и ХР шоум эдишн. Системы - 1га оперативы ддр 400 и 256ддр, камени атлон 2.5 и атлон 1.6...
- результат адин и тот же. При запуске порграммы - усе нормально, при порсмотре картинок - тоже. НО когда я начинаю порсматривать анимации (запускаю на проигрывание например 12 кадров бифа) за каждый цыкл проигрывания файлы подкачки приростают на 2 метра...Очищаютса толлько при выключении программы...
Можитт ты таки забыл очистить память в цыкле просмотрщика ?

а по поводу того, чего еще хателось бы - так это было бы не плохо в просмотрщике лазание по директориям сделать в виде стандартного дерева... ато пути не видно... -но в принцыпе мы - люди порсты е и так юзаем с благодарностью.... ) еще бы хотелось бы иметь возможность видеть привьюшки файлов (как это сделано в папках винды )
Sturm LS
2 Ronin:
QUOTE (Ronin @ там)

в кратце - запускал прогу и на "чистой" машине и с запущеными приложениями(Мах, фотошоп) на двух системах - ХР профэшнл и ХР шоум эдишн. Системы - 1га оперативы ддр 400 и 256ддр, камени атлон 2.5 и атлон 1.6...
- результат адин и тот же. При запуске порграммы - усе нормально, при порсмотре картинок - тоже. НО когда я начинаю порсматривать анимации (запускаю на проигрывание например 12 кадров бифа) за каждый цыкл проигрывания файлы подкачки приростают на 2 метра...Очищаютса толлько при выключении программы...


Так. Картины это не прояснило blink.gif . Что интересно, анимация - это последовательный перебор кадров. Это тоже самое что и просмотр отдельных картинок. С XP не пробывал, работаю под 2000 AS - ничего подобного, ни разу не видел unsure.gif .
QUOTE (Ronin @ там)

Можитт ты таки забыл очистить память в цыкле просмотрщика ?


Тогда бы, и при просмотре отдельных картинок было бы тоже самое, но ты пишешь - что это не так!
QUOTE (Ronin @ там)

а по поводу того, чего еще хателось бы - так это было бы не плохо в просмотрщике лазание по директориям сделать в виде стандартного дерева... ато пути не видно... -но в принцыпе мы - люди порсты е и так юзаем с благодарностью.... )


Ну, тут просто все зависит от предпочтений: я больше люблю интерфейс наподобии commander'ов (NC, DN, VC, WC, TC), а ты, видимо, explorer'а.
Переделать интерфейс, конечно можно, но на работоспособность программы это не повлияет. Впрочем, если это действительно так важно для тебя, можно и сделать (типа специал едишан) smile.gif .
QUOTE (Ronin @ там)

еще бы хотелось бы иметь возможность видеть привьюшки файлов (как это сделано в папках винды )


Тут тоже все просто - чтобы показать "превьюхи", нужно просканировать все файлы (подходящих типов), каждый открыть, считать и декодировать первый кадр (или единственный), сохранить его где-то (в памяти или на диске). В итоге: падение, и так не очень большой, скорости; затраты ресурсов. Получается, что зайдя в директорию MTW//Textures//campmap//, ты ждешь минут 30 (самое меньшее), чтобы увидеть "превьюхи" карты (во всех разрешениях), только для того, чтобы зайти в поддиректорию MTW//Textures//campmap//Castleflags// и посмотреть флаги замков. Согласись не очень продуктивно smile.gif .

Не подумай, что я омазываюсь или хаю твои идеи biggrin.gif . Вовсе нет! Я действительно хочу, чтобы программа была удобна и тебе, просто кое-что помимо видимого удобства, несет в себе и ненужные затраты. (О "превьюхах" я и сам думал, но по здравому размышлению - отказался)
Engineer
QUOTE (Sturm LS @ там)
Я действительно хочу, чтобы программа была удобна и тебе, просто кое-что помимо видимого удобства, несет в себе и ненужные затраты. (О "превьюхах" я и сам думал, но по здравому размышлению - отказался)

Ну, скажем, чекбоксик "превью" и просмотр одного только выбраного файла не слишком бы дело затормозил. Хотя, конечно, карта так будет листаться минут надцать....
Sturm LS
2 Engineer:
QUOTE (Engineer @ там)

Ну, скажем, чекбоксик "превью" и просмотр одного только выбраного файла не слишком бы дело затормозил. Хотя, конечно, карта так будет листаться минут надцать....


Хорошо, не будем друг друга уговаривать. Скажите где, в интерфейсе программы (в каком окне, в каком месте окна), вы хотите видеть "превью", и предложите тех. реализацию (как включать - чекбоксом или как; где хранить - в памяти или на диске). А мне сделать не сложно, просто я в этом необходимости не увидел.
Ronin
QUOTE (Sturm LS @ там)
Впрочем, если это действительно так важно для тебя, можно и сделать (типа специал едишан)

упаси Господь! я и так схаваю! не стоит трудов )))
Sturm LS
2 Engineer:
2 Ronin:
QUOTE (Ronin @ там)

упаси Господь! я и так схаваю! не стоит трудов )))


Так чего, будем чего-нибудь делать?
Sturm LS
2 Engineer:
QUOTE (Engineer @ там)

Ну как так невозможно? Я же делал уже нечто подобное. Вообще то, я полагал что обьявления интерфейса компонент должно быть в самой bpl-ке, но если уж её не хватает, то ругань компилятора на отсутствие DCU означает всего лишь необходимость перевода соответствующих Си-шных файлов заголовков (*.h) на паскаль, с последующей генерацией из них DCU. Этого вполне достаточно и я так уже делал. В нашем случае, как я понимаю, достаточно перевести и сделать паскалевские файлы: BIFImage.h, LBMImage.h и DDFListBox.h.

QUOTE (Engineer @ там)

Жаль, но дело не в этом. Я разумеется пробовал их подлинковать сразу же. Проблема в том что для Delphi все эти Си-шные имена и декларации с "собачками", "волнами" и прочим мусором в названиях функций не годятся. То есть объектник линкуется, а на имена начинает ругаться. Может я просто не разобрался, но у меня так и не вышло.
Поэтому, скорее всего, придется действительно переписывать заголовки библиотеки твоих компонентов


Может чего присоветуешь: Напоролся на следующую проблему -
заголовок с обявлением класса пререписал на Pascal,
при компиляции ругается на отсутствие реализации методов,
сделал обьявление методов как export,
ругается на отсутсвие методов в export,
сделал обьявление методов как export "my.bpl",
ругается на отсутсвие функции такой-то в my.bpl,
сделал обьявление методов как export "my.bpl" name "функция такая-то" (взяв экспортную декларацию С++),
все свойства/методы видятся (в CodeGuard), все компилируется, при попытке обращения к свойствам не унаследованным вылетает с ошибкой доступа в память (все унаследованные и не переопределенные свойства вполне работают).
Запарился, ничего не понимаю, но не сдамся!!!
Буду еще чего-нибудь пробывать - НУ НИ МОЖЕТ ОНО БЫТЬ СОВСЕМ НЕ СОВМЕСТИМЫМ!
Engineer
2 Sturm LS:
Оппаньки. Пропустил твоё сообщение sad.gif.
Я вообще то делал так. Сперва Delphi-йским tdump.exe смотрел на конкретную DLL-ку чтобы определить имена функций и синтаксис вызова. Получаем нечто вроде:
QUOTE
Exports from Bif.dll
  22 exported name(s), 22 export addresse(s).  Ordinal base is 1.
  Sorted by Name:
    RVA      Ord. Hint Name
    -------- ---- ---- ----
    00003838  12 0000 __fastcall EndianSwapL(long *)
    0000385C  13 0001 __fastcall EndianSwapW(unsigned short *)


Потом писал новый хедер для вызова функций из дельфей. Сначала всякие приведения типов, указательные типы для использования в сишных вызовах, и сами функции. Что-то вроде:
QUOTE

  function HdaAddNtf(hg: Longint;var ht: Longint; ntf: PChar): Longint; stdcall; external 'fixtools.dll' name 'HdaAddNtf@12';

или вот, попроще как:
QUOTE

var eda_query_item_size: function(gnum: GNUM; t: THANDLE): INT16; cdecl;

Всё обячно работало. Ну разве что где-нибудь СИшный синтаксис не переводится или имя процедуры не то.

QUOTE (Sturm LS @ там)
заголовок с обявлением класса пререписал на Pascal,

Ну да, и включил его в проект Дельфей - всё так.

QUOTE (Sturm LS @ там)
сделал обьявление методов как export,
ругается на отсутсвие методов в export,

А name по своей DLL-ке или обьектнику правильные сделал?

QUOTE (Sturm LS @ там)
сделал обьявление методов как export &quot;my.bpl&quot; name &quot;функция такая-то&quot; (взяв экспортную декларацию С++),
все свойства/методы видятся (в CodeGuard), все компилируется, при попытке обращения к свойствам не унаследованным вылетает с ошибкой доступа в память

Ага, значит вот в чём дело было. sad.gif Хм. Что-то проскакивало такое, но уже не помню. Пойду пороюсь, может найду чего. В именах и типах, говоришь, всё соответствует, - нет ошибок?
Sturm LS
2 Engineer:
Там все еще злее - Делаю dll'ку, куда пихаю форму с Bif-компонентом, в dll'ке пишу экспортную функцию, которая получает имя файла-bif, имя файла-bmp, номер кадра, считывает нужный кадр файла-bif, пишет его в файл-bmp. В Дельфи подключаю, проект нормально собирается, при запуске выдает внутреннюю ошибку, работает, записывает bmp'хи, при закрытии приложение вываливается в отладчик Дельфи. При запуске приложения не из Дельфи, сразу вываливается в отладчик по умолчанию.
Я в шоке!
Это архивная версия. Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2012 Invision Power Services, Inc.