Форум: "Media";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];
ВнизКак более корректно удалять поверхности и интерфес DirectDraw Найти похожие ветки
← →
Pete (2002-02-04 09:46) [0]Вообщем, после закрытия, и освобождения поверхностей присваиванием им " nil", то в повторном запуске как-бы притормаживает игра. Или это какой-то глюк DX7/8.
Все поверхности содержат битмапы... HELP ME!!!
← →
Серый (2002-02-04 14:15) [1]Не знаю точно чем помочь, но я освобождаю поверхности вот так:
if Assigned(FDD) then begin
if Assigned(FDDSImage) then begin
FDDSImage._Release;
FDDSImage:=nil;
end;
У меня никаких тормозов после этого не наблюдается.
← →
Pete (2002-02-04 15:27) [2]Ты взял код из книги??????
Просто один в один...
← →
Pete (2002-02-04 16:30) [3]У меня при вызове _Release иногда бывает ошибка.
Можно как нибудь FreeMem или по другому?
← →
Snowman (2002-02-05 00:16) [4]Господа. Рас уж тут зошол разговор о книге... Не подскажите ли какую нибудь книгу, а то статьи опираются на разные юниты дляиспользования DirectX, а некоторые и вовсе компоненты предлагают.
← →
Pete (2002-02-05 08:17) [5]Вроде " DirectX в проектах Delphi" Краснова.
Там описаны DD & D3D. Вполне книжка для начального уровня.
Но есть и сложные вещи. + CD с примерами и всеми юнитами...
← →
Серый (2002-02-05 11:45) [6]А что плохого, что код из книги???
Мне кажется, что придумывать здесь какой-то необычный способ удаления поверхностей незачем.
А насчет книги все верно - код из книги Краснова "DirectX графика в проектах Delphi".
Как мне кажется очень хоршая книга.
← →
Pete (2002-02-05 14:59) [7]Я не говорю, что это плохо...
Просто у меня так не получается корректно...
Функция _Release убивает объект, если счетчик _AddRef равен нулю.
у меня много массивов поверхностей, и т.д. иногда РЕЛИЗ выводит ошибку, и многие поверхности не освобождаются.
Вот в чем проблема...
← →
Серый (2002-02-06 10:31) [8]Насчет счетчика я не согласен, насколько я знаю при создании поверхности счетчик увеличивается на единицу. А если он равен нулю значит и поверхностей никаких нет.
А вообще _Release может вызывать ошибку если поверхность потеряна.
Так что лучше проанализировать какую ошибку возврвщает _Release
Ну а на крайний случай значение счетчика можно увеличить используя AddRef.
← →
Pete (2002-02-06 11:16) [9]ОК! Седня проверю все ошибки и возвращаемые значения.
И напишу что, да как.
← →
Pete (2002-02-07 08:28) [10]Вообщем, хотел посмотреть код возвращаемый
_Release
.
Так он не чего не возврашает, а во время выполнения функции происходит какая-то ошибка, и прога сразу закрывается, не дойдя до нужного места. Мучится не стал, сделал простоNIL
.
Если кто знает еще способы, подскажите.
← →
Pete (2002-02-07 09:30) [11]Как можно по указателю получить объем памяти занимаемый данной поверхностью???
← →
Серый (2002-02-07 10:04) [12]Насчет размера блока памяти незнаю :(
Может кто-нибудь еще подскажет.
Напиши что за ошибка у тебя возникает.
← →
Pete (2002-02-07 10:27) [13]Ошибка по адресу (0хFFFFFF - что-то подобное), и прога закрывается. только в памяти сидит и снять через ctrl-alt-del можно.
Пример:if Assigned(MainSurface) then
begin
hres:=MainSurface._Release;
.
{инициализация ошибки, только до сюда не доходит}
.
MainSurface:=nil;
end;
Вообщем, в первый раз такая проблема.
← →
Серый (2002-02-07 11:32) [14]Вот с этой ошибки и надо было начинать.
Опять же если заглянуть в книгу Краснова, то там написано,
что _Release может вызывать подобные ошибки, и опять же, как написано в книге его можно не использовать.
А вообше конечно в интернете есть и более подробные описания DirectX, хотя не все они правильные.
Но так как изначально вопрос стоял, что после завершения программы комп. тормозит, то получается, что я уже ни чем помочь не могу.А вообще на моем счету 2 игры(простеньких) и одна на стадии зарождения идеи(посложней).Единственное что могу посоветовать уменьшить количество поверхностей(если их много).
На этом у меня все...
← →
Pete (2002-02-07 12:46) [15]Вообщем, комп не тормозит, это оказался глючный комп.
Так только nil"ом пользуюсь и все ОК.
Thank"s за советы. А что за игрушки???? я вот червя пишу.
так, между делом. может кинешь исходники каких-нибудь своих произведений.
← →
Pete (2002-02-07 13:01) [16]Вернее прога не тормозит!!! :))))
← →
Серый (2002-02-07 13:21) [17]Кину но не сегодня. У меня сейчас полная загрузка(готовлюсь к поступлению в ВУЗ).А игры очень даже простые Arkanoid c одним уровнем :) и недоделанные Танки на 2 игроков
← →
Серый (2002-02-07 13:32) [18]А я и исходники найти не могу!
Одни exe"шники остались...
Если найду тогда кину...
А вообще e-mail мой известен(надеюсь на это) так что пиши(если что опять случится)Я не против получения новых знаний.Но только с интернетом у меня плохо так, что на форумах я редко бываю и почту нерегулярно забираю(стихотворение какое-то получилось :)...
← →
Pete (2002-02-07 13:35) [19]Ну да, счастливо...
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c