Показать сообщение отдельно
Старый 14.11.2011, 15:32   #1
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Написал c# враппер

Учитывая что нету никаких локальных контейнеров с индексацией по указателям на сущности, то менеджера сущностей соответственно нету.
К чему это ведёт:
Surface surf1 = mesh.GetSurface(1);
Surface surf2 = mesh.GetSurface(1);
В результате surf1 не будет равна surf2, это будут отдельные два объекта, невзирая на то что в памяти есть уже этот самый сюрфейс, и указатель на него (handle) у них одинаковый.
Это не экономно к памяти, и приведёт к большим затратам, порой к катастрофическим если класс объекта будет не маленьким. Постоянно вызывать конструктор и т.п.

Классы начинаются с "Т" - это что, blitzmax style? Сейчас так никто не пишет.
Также использование "_" для приватных переменных объекта, в C# давно никто не юзает тоже. Т.к. почти везде рекомендуется ВСЕ переменные держать в виде приватных мемберов, и писать для доступа к ним аксессоры. Таким образом использование "_" становится не нужным, иначе все переменные будут его иметь, и какой тогда в этом смысл?
Ещё по стилю, куча переменных с заглавных букв - это уже вообще ни в какие ворота.. Используй camelCase, без _.

Относительно многих файлов, их нужно почистить. Например TBlend.cs имеет uses'ы, которые там вообще не нужны.

Наименование Namespace'а, вообще ни как не соответствует тому что это такое. Он должен говорить что в этом именном пространстве, а не какой-то "Х???".

Куча объектов создаваемых в TEntity, когда не факт что хоть один будет юзаться.

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

Снова: с памятью у тебя огромные косяки, там создаются куча объектов, и каждый раз пересоздаются снова и снова, что вообще не нужно.
Во многих местах ты попытался как-то "изменить" структуру и подход к использованию движка, но это должно быть не в ущерб, и интуитивно.

В общем, как начало - неплохо, но для продолжения нужно много чего изменить и привезти в порядок.
Если ты так хочешь иметь эти все объекты (типо TJoints) в энтитях, то хотя бы инициализируй их в аксессорах к этим фиелдам, чтобы не было лишних созданий.

В общем, много над чем есть работать. Где тех доки по тому что это и как это вообще работает?
Снова никакой документации вообще.
(Offline)
 
Ответить с цитированием