Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Проекты > Проекты на BlitzMax

Ответ
 
Опции темы
Старый 07.09.2007, 11:16   #61
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

MoKa
Память "специально" не выделяется. А если средствами Макса выделять память под объекты типов, то как может утечка появится?
Вообще, ни у нигде нет статейки на тему правильной работы с памятью в Максе?

JohnK
3Д не люблю, я казуален до мозга костей. (:
Есть 2Д надстройки над OpenGL для Delphi и C++ (разные). Есть надстройка над HGE для С++, тоже 2Д.
3Д нафиг, у него нет будущего. Это переходное звено между 2Д и Виртуальной Реальностью. (:

На счёт абстракций - так фигли такого-то? Нормальная обстрация, вполне удобоваримая. (:
(Offline)
 
Ответить с цитированием
Старый 07.09.2007, 11:19   #62
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: elmax - набросок фреймворка

Вот:
http://johnk.3dn.ru/publ/1-1-0-3
Правда для версии 1.14.
(Offline)
 
Ответить с цитированием
Старый 07.09.2007, 11:53   #63
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

elmortem 3Д не люблю. Тоже думаю что 2Д себя не исчерпало.
Я вот тута задумал сделать игрушку. Платформер, аля Марио, но с головоломками и квестовыми лементами на Максе. Если есть желание присоединяйся. А если честно,то одному просто в падлу)))

Про память могу сказать одно. Она очищается и выделяется на лету, так сказано на оффсайте. Правда, говорят в pngloader есть протечка. Если любишь в памяти копаться, то для этого есть memmove, memcopy, GCSuspend и все в этом роде.
(Offline)
 
Ответить с цитированием
Старый 07.09.2007, 12:34   #64
jimon
 
Сообщений: n/a
Re: elmax - набросок фреймворка

манагер памяти в BMaxе довольно забавный
в общем в любом случае обьекты там надо удалять принудительно
разве что локальные ссылки чистятся хорошо сами
остальному я не доверяю
 
Ответить с цитированием
Старый 07.09.2007, 12:46   #65
elmortem
Нуждающийся
 
Регистрация: 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, 12:53   #66
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

**JohnK: Я редактор. Гонор придержи.

Я догадывался что это ты. Будь уж так добр, убери. На своем сайте пожалста, но не здесь. Писал бы чтоли продолжение Spacer-а, если заняться не чем. А не оффтопил других.
(Offline)
 
Ответить с цитированием
Старый 07.09.2007, 13:21   #67
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Re: elmax - набросок фреймворка

Хм, а линки во всех других эллементах тоже почистил?
(Offline)
 
Ответить с цитированием
Старый 07.09.2007, 13:24   #68
jimon
 
Сообщений: n/a
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, 15:10   #69
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

jimon
Но ведь если в моём варианте t удаляется, то на t.t больше никто не ссылкается и он поидее должен удалиться. Разве не так?
(Offline)
 
Ответить с цитированием
Старый 07.09.2007, 15:16   #70
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: elmax - набросок фреймворка

Лишняя профилактика не повредит
(Offline)
 
Ответить с цитированием
Старый 07.09.2007, 20:00   #71
jimon
 
Сообщений: n/a
Re: elmax - набросок фреймворка

elmortem
в твоем варианте - да
но все же, если тебе в одном месте понадобится такая фича,
то ты разве будеш менять >50 типов ?
лутче все сразу продумать и потом не мучать голову
 
Ответить с цитированием
Старый 09.09.2007, 19:47   #72
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: elmax - набросок фреймворка

у меня вроде бы не используются перекрёстные ссылки на объекты, не являющиеся основой фреймворка, а оные уничтожаются только при выходе из программы.

Тут небольшой ремонт затеяли, так что релиз альфы будет где-то в среду... (:
(Offline)
 
Ответить с цитированием
Старый 10.09.2007, 10:27   #73
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

жду альфу, может пригодиться и в моем проекте)))
(Offline)
 
Ответить с цитированием
Старый 14.09.2007, 20:30   #74
elmortem
Нуждающийся
 
Регистрация: 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, 10:46   #75
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: elmax - набросок фреймворка

Field Gui:CGui = Null
объявлять не обязательно он и так по умолчанию null. Начальное меню классное! Но глючит неимоверно, прападает тайтл окна(!) при выборе,опять же пункта Second, в окне с вертикальным баром горизонтальные линии становятся красными. Окно ввода имени прибито гвоздями. Порадовали кнопки и радиобоксы. Сам рисовал? Честно говоря, метод Delete вроде как деструктор, мне вызвать никак не удавалось. Ни принудительно ,ни занулив объект. Может поэтому что-то с памятью. Проверь вызывается ли Free/
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
набросок сайта jimon Болтовня 4 10.04.2007 20:24


Часовой пояс GMT +1, время: 12:13.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com