|
07.09.2007, 15:16
|
#61
|
Нуждающийся
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: elmax - набросок фреймворка
MoKa
Память "специально" не выделяется. А если средствами Макса выделять память под объекты типов, то как может утечка появится?
Вообще, ни у нигде нет статейки на тему правильной работы с памятью в Максе?
JohnK
3Д не люблю, я казуален до мозга костей. (:
Есть 2Д надстройки над OpenGL для Delphi и C++ (разные). Есть надстройка над HGE для С++, тоже 2Д.
3Д нафиг, у него нет будущего. Это переходное звено между 2Д и Виртуальной Реальностью. (:
На счёт абстракций - так фигли такого-то? Нормальная обстрация, вполне удобоваримая. (:
|
(Offline)
|
|
07.09.2007, 15:19
|
#62
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: elmax - набросок фреймворка
|
(Offline)
|
|
07.09.2007, 15:53
|
#63
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: elmax - набросок фреймворка
elmortem 3Д не люблю. Тоже думаю что 2Д себя не исчерпало.
Я вот тута задумал сделать игрушку. Платформер, аля Марио, но с головоломками и квестовыми лементами на Максе. Если есть желание присоединяйся. А если честно,то одному просто в падлу)))
Про память могу сказать одно. Она очищается и выделяется на лету, так сказано на оффсайте. Правда, говорят в pngloader есть протечка. Если любишь в памяти копаться, то для этого есть memmove, memcopy, GCSuspend и все в этом роде.
|
(Offline)
|
|
07.09.2007, 16:34
|
#64
|
|
Re: elmax - набросок фреймворка
манагер памяти в BMaxе довольно забавный
в общем в любом случае обьекты там надо удалять принудительно
разве что локальные ссылки чистятся хорошо сами
остальному я не доверяю
|
|
|
07.09.2007, 16:46
|
#65
|
Нуждающийся
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: elmax - набросок фреймворка
dimanche13
Если есть хороший художник, то можно обсудить в аське. Если нет, то смысла нет, мне пока есть в что вкладывать время и деньги. (:
jimon
type T1
...
endtype
type T2
field t:T1 = new T1
endtype
global t:T2 = new T2
t = null
Вот такая ситуация как разрулится? t.t. удалится автоматически? Или нужно делать деструктор T2 b там принудительно Null'ить T2.t?
|
(Offline)
|
|
07.09.2007, 16:53
|
#66
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: elmax - набросок фреймворка
**JohnK: Я редактор. Гонор придержи.
Я догадывался что это ты. Будь уж так добр, убери. На своем сайте пожалста, но не здесь. Писал бы чтоли продолжение Spacer-а, если заняться не чем. А не оффтопил других.
|
(Offline)
|
|
07.09.2007, 17:21
|
#67
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: elmax - набросок фреймворка
Хм, а линки во всех других эллементах тоже почистил?
|
(Offline)
|
|
07.09.2007, 17:24
|
#68
|
|
Re: elmax - набросок фреймворка
elmortem
такая да ..
а вот такая нет :
Type T1
Field t:T2
Field mem%[1000]
EndType
Type T2
Field t:T1
Field mem%[1000]
EndType
GCCollect()
DebugLog "start "+GCMemAlloced()
t_1:t1 = New t1
t_2:t2 = New t2
t_1.t = t_2
t_2.t = t_1
t_1 = Null
t_2 = Null
DebugLog "in work "+GCMemAlloced()
GCCollect()
DebugLog "final "+GCMemAlloced()
разруливается ето вот так :
Type T1
Field t:T2
Field mem%[1000]
Method Free()
t = Null
mem = Null
End Method
EndType
Type T2
Field t:T1
Field mem%[1000]
Method Free()
t = Null
mem = Null
End Method
EndType
GCCollect()
DebugLog "start "+GCMemAlloced()
For Local i% = 0 To 100
t_1:t1 = New t1
t_2:t2 = New t2
t_1.t = t_2
t_2.t = t_1
t_1.Free()
t_2.Free()
t_1 = Null
t_2 = Null
Next
DebugLog "in work "+GCMemAlloced()
GCCollect()
DebugLog "final "+GCMemAlloced()
можно конечно переопределять операторы New и Delete
но мне легче было зделать Free - так я 100% избавляюсь от перекрестных ссылок
|
|
|
07.09.2007, 19:10
|
#69
|
Нуждающийся
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: elmax - набросок фреймворка
jimon
Но ведь если в моём варианте t удаляется, то на t.t больше никто не ссылкается и он поидее должен удалиться. Разве не так?
|
(Offline)
|
|
07.09.2007, 19:16
|
#70
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: elmax - набросок фреймворка
Лишняя профилактика не повредит
|
(Offline)
|
|
08.09.2007, 00:00
|
#71
|
|
Re: elmax - набросок фреймворка
elmortem
в твоем варианте - да
но все же, если тебе в одном месте понадобится такая фича,
то ты разве будеш менять >50 типов ?
лутче все сразу продумать и потом не мучать голову
|
|
|
09.09.2007, 23:47
|
#72
|
Нуждающийся
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: elmax - набросок фреймворка
у меня вроде бы не используются перекрёстные ссылки на объекты, не являющиеся основой фреймворка, а оные уничтожаются только при выходе из программы.
Тут небольшой ремонт затеяли, так что релиз альфы будет где-то в среду... (:
|
(Offline)
|
|
10.09.2007, 14:27
|
#73
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: elmax - набросок фреймворка
жду альфу, может пригодиться и в моем проекте)))
|
(Offline)
|
|
15.09.2007, 00:30
|
#74
|
Нуждающийся
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: elmax - набросок фреймворка
И так, "почти-альфа"... (:
Что-то там какие-то косяки с памятью, пока не могу разобраться. Вроде кросс-линков нету, объект удаляю, но он не удаляется нифига. ):
Документацию начну делать, как только свободное время появится. Но если кому не сложно может пока так посмогтрите, может я чего-то просто не вижу и поэтому там память теряется. ):
Version 0.0.6 (14.09.2007)
* Упростилась общая структура движка.
* У CLua теперь есть метод ExecFunc, выполняющий функцию скрипта по имени.
+ GUI контролы чекбокса (CGuiCheck) и изображения (CGuiPicture).
* GUI контролы-кнопки (CGuiButton и CGuiTextButton) поддерживают указание имени функции скрипта на исполнение при нажатии.
+ Добавлен класс, отвечающий за ввод даных (CInput).
|
(Offline)
|
|
15.09.2007, 14:46
|
#75
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: elmax - набросок фреймворка
объявлять не обязательно он и так по умолчанию null. Начальное меню классное! Но глючит неимоверно, прападает тайтл окна(!) при выборе,опять же пункта Second, в окне с вертикальным баром горизонтальные линии становятся красными. Окно ввода имени прибито гвоздями. Порадовали кнопки и радиобоксы. Сам рисовал? Честно говоря, метод Delete вроде как деструктор, мне вызвать никак не удавалось. Ни принудительно ,ни занулив объект. Может поэтому что-то с памятью. Проверь вызывается ли Free/
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
набросок сайта |
jimon |
Болтовня |
4 |
11.04.2007 00:24 |
Часовой пояс GMT +4, время: 17:07.
|