Sturm LS
Вторник, 15 Июля 2003, 14:46
Уважаемые, модостроители и все остальные!!!Для Вас был написан новый вариант редактора, основанного на BifEdit'е от RSW и моей разработке конвертера LBM<->BMP. Лежит он на месте конвертера LBM<->BMP на
http://modding.twow.ru/read.php?sname=inst...lealias=LBM2BMP. Описание, пока что, от конвертера - описание к редактору скоро будет. А пока, в этом топике я буду отвечать на вопросы о нем. Редактор позволяет производить все необходимые операции с Bif и Lbm файлами.
Приятного редактирования!!!
Sturm LS.
Alan
Среда, 16 Июля 2003, 13:42
Блин , это здорово , что у на с появился новый редактор BifEdit' и.т. д.Только для таких , например , как я бестолковых , еще бы пояснения , хоть какие-либо - как с ним работать то ? Не поленись , хоть в общих чертах ...
Sturm LS
Среда, 16 Июля 2003, 15:17
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-файла - еще и записи для каждого кадра). Чтобы узнать, что делает та или иная кнопка - достаточно навести на нее курсор и прочитать (на английском языке, но просто и понятно) в строке статуса или дождаться появления подсказки (тоже
на английском языке).
Всегда к Вашим услугам. Получилось как и просил -
Полное описание появиться, но через некоторое время. О конкретных вещах - пока, отвечаю в этом топике, так что если что ... спрашивайте!!!
AlexRaven
Среда, 16 Июля 2003, 17:39
Отличная идея сделать вьювер! Снимаю шляпу!

Теперь бы добавить такие функции: а) выделение нескольких пикселов рамочкой, б) копирование выделенного в) вставление выделенного. Если это реализовать, то ой что будет...
Sturm LS
Четверг, 17 Июля 2003, 6:31
2 AlexRaven:
| QUOTE (AlexRaven @ там) |
Отличная идея сделать вьювер! Снимаю шляпу!
|
Лучше одень обратно, а то вдруг сверху упадет что... 
| QUOTE |
Теперь бы добавить такие функции:
|
Добавить можно!
| QUOTE |
а) выделение нескольких пикселов рамочкой б) копирование выделенного в) вставление выделенного.
|
И это, в принципе, реально, но вопрос - зачем? Я не отрицаю необходимость работы с буфером обмена, но может то, что ты хочешь сделать можно выполнить и теми операциями, что уже реализованны?
| QUOTE |
Если это реализовать, то ой что будет...
|
Как наберем необходимых функций - напишу новую версию редактора. И ой что будет... Завалят новыми пожеланиями
(Опять же, я не против, но не все есть смысл делать - например, собственный редактор графики типа PhotoShop или хотя бы Paint - это уже реализованно массой программ)
AlexRaven
Четверг, 17 Июля 2003, 9:05
2 Sturm LS:
| QUOTE (Sturm LS @ там) |
| И это, в принципе, реально, но вопрос - зачем? Я не отрицаю необходимость работы с буфером обмена, но может то, что ты хочешь сделать можно выполнить и теми операциями, что уже реализованны? |
Так легче оружие и щиты перекидывать. В фотошопе можно, но муторно - слишком много однообразных действий - отнимают время! А здесь можно сделать так: функция вставить на все фреймы на тоже место, что и в первом - и вуаля! 5 секунд и готово.
Смотри в общем, наше дело предложить, ваше - отказаца.
Sturm LS
Четверг, 17 Июля 2003, 9:55
2 AlexRaven:
| QUOTE (AlexRaven @ там) |
Так легче оружие и щиты перекидывать. В фотошопе можно, но муторно - слишком много однообразных действий - отнимают время! А здесь можно сделать так: функция вставить на все фреймы на тоже место, что и в первом - и вуаля! 5 секунд и готово.
|
Автоматизация пакетных действий?! Понимаю - сделать можно, нужно только продумать как по аккуратнее реализовать.
| QUOTE |
Смотри в общем, наше дело предложить, ваше - отказаца.
|
Оказатся - конечно, наше дело, и никому его не отдадим 
А за идею спасибо - реализуем, пусть всем будет удобнее!!!
AlexRaven
Четверг, 17 Июля 2003, 10:31
2 Sturm LS:
| QUOTE (Sturm LS @ там) |
| Автоматизация пакетных действий?! Понимаю - сделать можно, нужно только продумать как по аккуратнее реализовать. |
А там так и получается. Вот тебе поподробней. Например, размер фрейма 512х512 и нам надо скопировать объект, левая верхняя координата к-го в точке 100х150, правая верхняя - 200х150, левая нижняя - 100х175 и правая нижняя - 200х175. Можно сделать инструмент как в шопе, а можно тупо задавать в окошке эти координаты, указав углы прямоугольника. А дальше либо копировать в буфер, чтобы поместить в другой файл или скопировать выделение в этом же файле на все фреймы по тем же координатам.
Вот-с, собстно, что хотелось бы.
Попробуй, будет сложно, то и фиг с ним. Не будет у нас юнитов с новым оружием, а то и вообще новых юнитов и не увидит их никто никогда и будет всем грустно и скучно...
Sturm LS
Четверг, 17 Июля 2003, 10:54
2 AlexRaven:
| QUOTE (AlexRaven @ там) |
А там так и получается.
|
Я имел ввиду, что ты хочешь избавиться от однообразных действий
| QUOTE |
Вот тебе поподробней. Например, размер фрейма 512х512 и нам надо скопировать объект, левая верхняя координата к-го в точке 100х150, правая верхняя - 200х150, левая нижняя - 100х175 и правая нижняя - 200х175. Можно сделать инструмент как в шопе, а можно тупо задавать в окошке эти координаты, указав углы прямоугольника. А дальше либо копировать в буфер, чтобы поместить в другой файл или скопировать выделение в этом же файле на все фреймы по тем же координатам.
|
Вообще то, принцип хранения изображения юнитов тактической карты мне известен, но спасибо за пояснение своей мысли 
| QUOTE |
Вот-с, собстно, что хотелось бы. Попробуй, будет сложно, то и фиг с ним.
|
Понятно. Постараемся!
| QUOTE |
Не будет у нас юнитов с новым оружием, а то и вообще новых юнитов и не увидит их никто никогда и будет всем грустно и скучно...
|
Бедные мы, несчастные... Никто нас не пожалеет...
Sturm LS
Пятница, 18 Июля 2003, 6:39
2 AlexRaven:
Тут подумалось - а может сделать отдельный утилиту (в составе редактора, как viewer и editor) для редактирования изображений юнитов тактической карты?
AlexRaven
Пятница, 18 Июля 2003, 14:31
2 Sturm LS:
| QUOTE (Sturm LS @ там) |
| Тут подумалось - а может сделать отдельный утилиту (в составе редактора, как viewer и editor) для редактирования изображений юнитов тактической карты? |
Хозяин - барин.
Sturm LS
Пятница, 18 Июля 2003, 14:33
2 AlexRaven:
Ладно, посмотрим...
Sturm LS
Понедельник, 21 Июля 2003, 9:12
2 AlexRaven:
Редактор обновился (сейчас написал письмо SlipJ'у, чтобы положить на сайт). Сделал что хотели - но по своему

| QUOTE (AlexRaven @ там) |
а) выделение нескольких пикселов рамочкой, б) копирование выделенного
|
Не сделано - проще в любом редакторе вырезать/нарисовать и сохранить в виде отдельного BMP.
| QUOTE |
в) вставление выделенного.
|
Реализованна вставка любого BMP-файла в нужную область (с растяжением/сужением) одного/всех кадров.
| QUOTE |
Если это реализовать, то ой что будет...
|
Дело за Вами... 
AlexRaven
Понедельник, 21 Июля 2003, 15:40
2 Sturm LS:
Отлично! Скачаем, заценим, похвалим, покритикуем...
Sturm LS
Вторник, 22 Июля 2003, 14:09
2 AlexRaven:
| QUOTE (AlexRaven @ там) |
Отлично! Скачаем, заценим, похвалим, покритикуем...
|
Ну, как? Понравилась "игрушка"?!!
Sturm LS
Понедельник, 28 Июля 2003, 11:56
2 Alan:
2 ALL:
| QUOTE (Sturm LS @ там) |
Полное описание появиться, но через некоторое время. О конкретных вещах - пока, отвечаю в этом топике, так что если что ... спрашивайте!!!
|
Описание появилось. Пользуйтесь. Вопросы по прежнему сюда.
Engineer
Суббота, 16 Августа 2003, 8:09
2 Sturm LS:
| QUOTE (Sturm LS @ там) |
| Описание появилось. Пользуйтесь. Вопросы по прежнему сюда. |
Да. Спасибо. Вот теперь давай про твою библиотечку компонент поговорим. А то я уже захотел встроить просмотр и редактирование BIF-ов в редактор и пока не разобрался.
Дашь описание интерфейса компонентов? Или хотя бы исходники, чтоб самому разобраться? Что то я торможу без инструкций.
Sturm LS
Вторник, 19 Августа 2003, 6:54
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
Вторник, 19 Августа 2003, 9:22
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 перенести, чтоб он не ругался.
Вообще говоря, может когда нибудь и опубликуешь исходники компонента и исходники своего замечательного редактора отдельно? Прямо в своей статье на подсайте по моддингу в разделе инструментов? Здесь, на форуме, есть ещё программисты, - многим будет интересно. (Мне, например, - хоть я и не программист
)
Kirill
Вторник, 19 Августа 2003, 9:59
Присоединяюсь
Sturm LS
Вторник, 19 Августа 2003, 11:02
2 Engineer:
| QUOTE (Engineer @ там) |
Спасибо.
|
"Мои года, мое богатство ..." 
| QUOTE (Engineer @ там) |
LBM, как я понимаю, обрабатывается аналогично, кроме номеров фрейма???
|
Верно.
| QUOTE (Engineer @ там) |
Надо, а то у меня Delphi ругаются на отсутствие DCU-файлов, да и разбираться лучше с исходниками. Если не жаль, вышли пожалуйста их на: wwtp@aha.ru Хочу их на Delphi 7.0 перенести, чтоб он не ругался.
|
Выслал три письма с исходниками (пояснения в письмах). Пользуйся.
| QUOTE (Engineer @ там) |
Вообще говоря, может когда нибудь и опубликуешь исходники компонента и исходники своего замечательного редактора отдельно? Прямо в своей статье на подсайте по моддингу в разделе инструментов? Здесь, на форуме, есть ещё программисты, - многим будет интересно. (Мне, например, - хоть я и не программист )
|
Публикацией, если не против, займись сам, пожалуйста. Мне для "народа", ни чего не жалко, просто сайт вроде TWoW - тебе и карты в брюки
За одно и в статье порядок наведи - там не очень понятно что к чему относится.
Sturm LS
Вторник, 19 Августа 2003, 11:05
2 Kirill:
| QUOTE (Kirill @ там) |
Присоединяюсь
|
Так ведь, я же писал в приват: что нужно - спрашивай.
Engineer
Среда, 20 Августа 2003, 5:47
2 Sturm LS:
| QUOTE (Sturm LS @ там) |
| Так ведь, я же писал в приват: что нужно - спрашивай. |
Видимо он про исходники. Их я, кстати, уже получил, спасибо. Разберусь сам и тогда опубликую в разделе инструментов. Kirill, - тебе их выслать тоже на майл да?
А ругается Delphi на библиотеку потому что нет родных для него объектных файлов DCU. Видимо надо подключить для компилятора С-шные объектники директивой $L, они ведь стандартные интеловские. Я просто ещё не пробовал этого сделать, а С-билдер у меня не установлен и я не знаю может ли он дать инструкцию линкеру готовить объектники прямо для Delphi (Delphi так как раз может - DCU либо С либо С++ обьектники). Sturm LS - если С-билдер это может, то попробуешь для Delphi объектники тоже выложить?
Kirill
Среда, 20 Августа 2003, 6:09
2 Engineer:
Да, пожалуйста.
Engineer
Среда, 20 Августа 2003, 7:53
2 Kirill:
| QUOTE (Kirill @ там) |
2 Engineer: Да, пожалуйста. |
Ладно, вечером доберусь до них и отправлю... А ты С-шные обьектники в Дельфи вставлял? Или, может, проще посмотреть что там в dll-ке у Sturm-а и прямо её использовать?
Sturm LS
Среда, 20 Августа 2003, 8:12
2 Engineer:
| QUOTE (Engineer @ там) |
Sturm LS - если С-билдер это может, то попробуешь для Delphi объектники тоже выложить?
|
Я этим никогда не занимался (не было необходимости), а сегодня "полазил" по форумам Builder'а и Delphi - вроде бы, говорят, что это невозможно...
2 All:
Если кто знает как с этим справиться - поделитесь.
Engineer
Четверг, 21 Августа 2003, 7:51
2 Sturm LS:
| QUOTE (Sturm LS @ там) |
Я этим никогда не занимался (не было необходимости), а сегодня "полазил" по форумам Builder'а и Delphi - вроде бы, говорят, что это невозможно... 2 All: Если кто знает как с этим справиться - поделитесь. |
Ну как так невозможно? Я же делал уже нечто подобное. Вообще то, я полагал что обьявления интерфейса компонент должно быть в самой bpl-ке, но если уж её не хватает, то ругань компилятора на отсутствие DCU означает всего лишь необходимость перевода соответствующих Си-шных файлов заголовков (*.h) на паскаль, с последующей генерацией из них DCU. Этого вполне достаточно и я так уже делал. В нашем случае, как я понимаю, достаточно перевести и сделать паскалевские файлы: BIFImage.h, LBMImage.h и DDFListBox.h. Могу по твоим исходникам и попробовать сделать такой перевод. Мне, правда, несколько не хватает знания С++ синтаксиса, но всё же попробую. Структуры вроде уже перевел, сейчас с декларациями всех этих указателей разбираюсь. О результате сообщу дополнительно, а может Kirill меня обгонит...
Конечно можно использовать и прямо продекларированную DLL, но в этом случае есть трудности с импортом классов, мы сможем пользоваться только вызовом конкретных функций, так что изготовить новые хедеры - это правильный путь.
Kirill
Четверг, 21 Августа 2003, 8:24
2 Engineer:
Обгоню, когда исходники у меня будут

Может быть
Engineer
Четверг, 21 Августа 2003, 9:45
2 Kirill:
| QUOTE (Kirill @ там) |
2 Engineer: Обгоню, когда исходники у меня будут Может быть |
Давно бы были,
но у меня форум глючит, а по твоему старому майлу не прошодит, что-то.... Давай сюда свой майл текстом, ладно?
Engineer
Четверг, 21 Августа 2003, 10:50
| QUOTE (Kirill @ Aug 21 2003, 11:24 AM) |
2 Engineer: Обгоню, когда исходники у меня будут Может быть |
2 Kirill:
Ладно, не дождался твоего майла или это у меня глюки, так что, с любезного разрешения автора (Sturm LS), выкладываю исходники прямо тут. Потом перенесу их в статью про инструменты.
Докладываю ещё и свою заготовку перевода BifImage.pas, - много я чего ещё не успел, но канва вроде есть. Или ты по новой станешь переделывать?
Короче, сделаешь правильные заголовки, загрузи их сюда же, пожалуйста, тогда проверим и в статейной по моддингу-инструменты опубликуем готовые компоненты и исходники автора отдельно.
Sturm LS
Четверг, 21 Августа 2003, 13:48
2 Engineer:
| QUOTE (Engineer @ там) |
Ну как так невозможно?
|
Просто я пробежался, по быстрому, по форумам - там на вопросы типа: как использовать С++ исходники в Delphi, ответ один - переписать. В Builder'е, все "облазил" - нет возможности сделать dcu. Я в Delphi, непосредствено, не работал - поэтому не знаю. Если ты говоришь, что это сделать можно - значит так и есть.
| QUOTE (Engineer @ там) |
Мне, правда, несколько не хватает знания С++ синтаксиса, но всё же попробую.
|
Если что, поможем.
Engineer
Четверг, 21 Августа 2003, 14:21
2 Sturm LS:
| QUOTE (Sturm LS @ там) |
| там на вопросы типа: как использовать С++ исходники в Delphi, ответ один - переписать. |
Вообще то есть готовый конвертор исходников С++ в Дельфи от сайта Dr.Bob. Неплохой, хотя и шибко путаный. В качестве подстрочника можно использовать. Я как то перевордил в Дельфи одну промышленную библиотечку, - помучился изрядно, но всё стабильно заработало. Хотя в С++ есть некоторые конструкции не переводимые принципиально, - те же переопределяемые для разных значений константы, например.
Думаю 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
Пятница, 22 Августа 2003, 6:39
2 Engineer:
В общем, пробежался я еще раз по Builder'у - возможности сделать dcu не нашел. "Компиленные обектники" лежат в архиве - можешь попробовать их "слинковать".
Engineer
Пятница, 22 Августа 2003, 9:58
| QUOTE (Sturm LS @ Aug 22 2003, 09:39 AM) |
2 Engineer:
В общем, пробежался я еще раз по Builder'у - возможности сделать dcu не нашел. "Компиленные обектники" лежат в архиве - можешь попробовать их "слинковать". |
2Sturm LS:
******************************************
Жаль, но дело не в этом. Я разумеется пробовал их подлинковать сразу же. Проблема в том что для Delphi все эти Си-шные имена и декларации с "собачками", "волнами" и прочим мусором в названиях функций не годятся. То есть объектник линкуется, а на имена начинает ругаться. Может я просто не разобрался, но у меня так и не вышло.
Поэтому, скорее всего, придется действительно переписывать заголовки библиотеки твоих компонентов, - надеюсь у Kirilla на будет с этим проблем.
А пока я выкладываю заголовочный файл Дельфей в комплекте с твоим dll-м, - пользуйтесь господа пока хоть этим. Если откомментируешь эти вызовы или хотя бы укажешь вместо моих безликих "arg#" осмысленные имена аргументов, можно будет нормально пользоваться пока хоть твоей dll-кой. Вроде и так понятно, но вопросы всё же есть.
Engineer
Четверг, 28 Августа 2003, 9:53
2 Kirill:
Ну как, попробовал прописать хедеры? Поделишься? У меня как-то всё руки не доходят...
Kirill
Пятница, 29 Августа 2003, 4:53
2 Engineer:
Да вот винт только-только поменял, таr что... то же самое
Engineer
Пятница, 29 Августа 2003, 6:13
2 Kirill:
| QUOTE (Kirill @ там) |
2 Engineer: Да вот винт только-только поменял, таr что... то же самое |
Ага, ну ладно. Я вот хедер к dll-ке вроде сделал, а к обьектникам компонента только заготовку начал, - она там и лежит, не успел ещё даже вызовы потипам на указатели поменять. Если успеешь раньше меня, клади всё сюда. Шибко охота редактор доделать с картинками.
Ronin
Пятница, 24 Октября 2003, 16:05
Господа, у меня вопрос по поводу конвертора и просмотрщика MedConstrKit, сделанного Sturm LSом. По омему это лучшая фича, которую я на сайте видел и для работы с Bifами и с Lbsами. Но есть у нее один прикол - эта программа неуклонно приращивает файлы подкачки при просмотре анимации.... у мине на машине гектар оперативы и эта програмка, будучи единственно запущеной за 10 менут повергла машину в шок...Вы этого не замечали у себя ? Решена ли эта проблема ? (нет, можно конечно ее просто закрывать и открывать заново при достижении критического арзмера файлов.., но это же не решение, тем более, что я думаю там ничего сложного... просто автор в цыкле забыл чень-ть выгрузить.... )Sturm LS, ваши комментарии ? и будит ли продолжение с новыми удобными фичами ?(например отображение привьюшек, дерева каталогов)
AlexRaven
Пятница, 24 Октября 2003, 16:38
2 Ronin:
Я ее постоянно юзаю, ничего такого не замечал. 256 метров оперативки, 1 гиг кэша на винте (жестко задан)... При этом одновременно еще и фотошоп, да еще и Медиевал (гама в смысле)... винда ХР... хотя и на МЕ все ништяк было.
ЛЮБИТЕЛЬ
Пятница, 24 Октября 2003, 18:04
| QUOTE (AlexRaven @ там) |
| Я ее постоянно юзаю, ничего такого не замечал. 256 метров оперативки, 1 гиг кэша на винте (жестко задан)... При этом одновременно еще и фотошоп, да еще и Медиевал (гама в смысле)... винда ХР... хотя и на МЕ все ништяк было. |
Все тоже , только 512DDR , более минуты задержек не бывает
И то это при работе с огромными картами
Sturm LS
Понедельник, 27 Октября 2003, 7:43
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
Понедельник, 27 Октября 2003, 14:47
в кратце - запускал прогу и на "чистой" машине и с запущеными приложениями(Мах, фотошоп) на двух системах - ХР профэшнл и ХР шоум эдишн. Системы - 1га оперативы ддр 400 и 256ддр, камени атлон 2.5 и атлон 1.6...
- результат адин и тот же. При запуске порграммы - усе нормально, при порсмотре картинок - тоже. НО когда я начинаю порсматривать анимации (запускаю на проигрывание например 12 кадров бифа) за каждый цыкл проигрывания файлы подкачки приростают на 2 метра...Очищаютса толлько при выключении программы...
Можитт ты таки забыл очистить память в цыкле просмотрщика ?
а по поводу того, чего еще хателось бы - так это было бы не плохо в просмотрщике лазание по директориям сделать в виде стандартного дерева... ато пути не видно... -но в принцыпе мы - люди порсты е и так юзаем с благодарностью.... ) еще бы хотелось бы иметь возможность видеть привьюшки файлов (как это сделано в папках винды )
Sturm LS
Понедельник, 27 Октября 2003, 15:20
2 Ronin:
| QUOTE (Ronin @ там) |
в кратце - запускал прогу и на "чистой" машине и с запущеными приложениями(Мах, фотошоп) на двух системах - ХР профэшнл и ХР шоум эдишн. Системы - 1га оперативы ддр 400 и 256ддр, камени атлон 2.5 и атлон 1.6... - результат адин и тот же. При запуске порграммы - усе нормально, при порсмотре картинок - тоже. НО когда я начинаю порсматривать анимации (запускаю на проигрывание например 12 кадров бифа) за каждый цыкл проигрывания файлы подкачки приростают на 2 метра...Очищаютса толлько при выключении программы...
|
Так. Картины это не прояснило
. Что интересно, анимация - это последовательный перебор кадров. Это тоже самое что и просмотр отдельных картинок. С XP не пробывал, работаю под 2000 AS - ничего подобного, ни разу не видел
.
| QUOTE (Ronin @ там) |
Можитт ты таки забыл очистить память в цыкле просмотрщика ?
|
Тогда бы, и при просмотре отдельных картинок было бы тоже самое, но ты пишешь - что это не так!
| QUOTE (Ronin @ там) |
а по поводу того, чего еще хателось бы - так это было бы не плохо в просмотрщике лазание по директориям сделать в виде стандартного дерева... ато пути не видно... -но в принцыпе мы - люди порсты е и так юзаем с благодарностью.... )
|
Ну, тут просто все зависит от предпочтений: я больше люблю интерфейс наподобии commander'ов (NC, DN, VC, WC, TC), а ты, видимо, explorer'а.
Переделать интерфейс, конечно можно, но на работоспособность программы это не повлияет. Впрочем, если это действительно так важно для тебя, можно и сделать (типа специал едишан)
.
| QUOTE (Ronin @ там) |
еще бы хотелось бы иметь возможность видеть привьюшки файлов (как это сделано в папках винды )
|
Тут тоже все просто - чтобы показать "превьюхи", нужно просканировать все файлы (подходящих типов), каждый открыть, считать и декодировать первый кадр (или единственный), сохранить его где-то (в памяти или на диске). В итоге: падение, и так не очень большой, скорости; затраты ресурсов. Получается, что зайдя в директорию MTW//Textures//campmap//, ты ждешь минут 30 (самое меньшее), чтобы увидеть "превьюхи" карты (во всех разрешениях), только для того, чтобы зайти в поддиректорию MTW//Textures//campmap//Castleflags// и посмотреть флаги замков. Согласись не очень продуктивно
.
Не подумай, что я омазываюсь или хаю твои идеи
. Вовсе нет! Я действительно хочу, чтобы программа была удобна и тебе, просто кое-что помимо видимого удобства, несет в себе и ненужные затраты. (О "превьюхах" я и сам думал, но по здравому размышлению - отказался)
Engineer
Понедельник, 27 Октября 2003, 20:54
| QUOTE (Sturm LS @ там) |
| Я действительно хочу, чтобы программа была удобна и тебе, просто кое-что помимо видимого удобства, несет в себе и ненужные затраты. (О "превьюхах" я и сам думал, но по здравому размышлению - отказался) |
Ну, скажем, чекбоксик "превью" и просмотр одного только выбраного файла не слишком бы дело затормозил. Хотя, конечно, карта так будет листаться минут надцать....
Sturm LS
Вторник, 28 Октября 2003, 7:26
2 Engineer:
| QUOTE (Engineer @ там) |
Ну, скажем, чекбоксик "превью" и просмотр одного только выбраного файла не слишком бы дело затормозил. Хотя, конечно, карта так будет листаться минут надцать....
|
Хорошо, не будем друг друга уговаривать. Скажите где, в интерфейсе программы (в каком окне, в каком месте окна), вы хотите видеть "превью", и предложите тех. реализацию (как включать - чекбоксом или как; где хранить - в памяти или на диске). А мне сделать не сложно, просто я в этом необходимости не увидел.
Ronin
Вторник, 28 Октября 2003, 9:33
| QUOTE (Sturm LS @ там) |
| Впрочем, если это действительно так важно для тебя, можно и сделать (типа специал едишан) |
упаси Господь! я и так схаваю! не стоит трудов )))
Sturm LS
Среда, 29 Октября 2003, 8:19
2 Engineer:
2 Ronin:
| QUOTE (Ronin @ там) |
упаси Господь! я и так схаваю! не стоит трудов )))
|
Так чего, будем чего-нибудь делать?
Sturm LS
Понедельник, 03 Ноября 2003, 8:40
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
Суббота, 13 Декабря 2003, 21:22
2 Sturm LS:
Оппаньки. Пропустил твоё сообщение

.
Я вообще то делал так. Сперва 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 "my.bpl" name "функция такая-то" (взяв экспортную декларацию С++), все свойства/методы видятся (в CodeGuard), все компилируется, при попытке обращения к свойствам не унаследованным вылетает с ошибкой доступа в память |
Ага, значит вот в чём дело было.
Хм. Что-то проскакивало такое, но уже не помню. Пойду пороюсь, может найду чего. В именах и типах, говоришь, всё соответствует, - нет ошибок?
Sturm LS
Понедельник, 15 Декабря 2003, 8:20
2 Engineer:
Там все еще злее - Делаю dll'ку, куда пихаю форму с Bif-компонентом, в dll'ке пишу экспортную функцию, которая получает имя файла-bif, имя файла-bmp, номер кадра, считывает нужный кадр файла-bif, пишет его в файл-bmp. В Дельфи подключаю, проект нормально собирается, при запуске выдает внутреннюю ошибку, работает, записывает bmp'хи, при закрытии приложение вываливается в отладчик Дельфи. При запуске приложения не из Дельфи, сразу вываливается в отладчик по умолчанию.
Я в шоке!
Это архивная версия.
Здесь расположена полная версия этой страницы.