Стартовое решение для создания расширений для SE
|
|
ksacvet777 | Дата: Вторник, 31.12.2013, 11:57 | Сообщение # 1 |
Космический турист
Группа: Пользователи
Российская Федерация
Сообщений: 32
Награды: 0
Статус: Offline
| Пример. В дистрибутиве se есть (будет в случае одобрения автором se) папка extentions, в которой и находятся расширения. Когда приложение запускается оно проверяет существование папки. Если есть тогда ищет все расширения (в windows это могут быть те же DLL), загружает их и инициализирует в порядке инициализации (приоритет инициализации получают из расширения).
В комплект входит самая базовая математика. Можно добавить ещё. Моя матлиба вот она: http://code.google.com/p/gbmath/. Могу взять оттуда с поправками.
ИТАК КОД: Код базовое расширение http://codepaste.ru/16678/
Код адаптер http://codepaste.ru/16679/
Что требуется от Владимира ? Совсем немного! Просто он помещает класс с реализацией абстрактников к себе и прописывает реализацию.
Класс адаптер для расширений. Чтобы пояснить что это такое лучше примером:
Код //! space engine extentions namespace sse { //! Это находится в extentions SDK class IAdaptor { public: //! некоторое для выполнение чего-либо, или получения. virtual void DoSome(int param1, int param2) =0; };
}
/** это автор кладёт к себе в исходники и прописывает реализацию абстрактников */ class AdaptorImplement: public see::IAdaptor { public: AdaptorImplement() {} ~AdaptorImplement() {}
// virtual void DoSome(int param1, int param2) { // do code. Тут заполняется автором. } };
Вопросы. Что должно быть в адаптере ? Какие методы ?
Вопрос решается в обсуждении. Чтобы не дергать инженера, можно прописать методы про запас, сразу же.
Так как их наверняка будет много, то предусмотреть их группировку по префиксу . Например методы системные будут начинаться с SYS_ ( virtual float SYS_GetTime() =0; )
Методы для изображений с IMG_ (virtual void IMG_CreateImageFromFile(void** , size_t*, size_t*, const wchar*) =0;)
Возможность запускать приложение se с ключами. Например это может быть ключи, облегчающие отладку расширений, например когда не загружается/не создаётся что-либо. Например приложение после старта сразу загружает расширения, чтобы например можно было отлаживать расширение.
Прикрепляю так же файл с этим документиком и кодом
Ожидаются любые мысли ...
|
|
| |
SHW | Дата: Вторник, 31.12.2013, 13:25 | Сообщение # 2 |
Строитель Миров
Группа: Команда SE
Нидерланды
Сообщений: 618
Награды: 10
Статус: Offline
| Это пока всё слишком абстрактно. Надо больше конкретики.
Win7 Pro x64 Intel Core2Quad 2.5GHz 4GiB RAM NVidia GForce 9800 1 GiB
|
|
| |
ksacvet777 | Дата: Четверг, 02.01.2014, 22:35 | Сообщение # 3 |
Космический турист
Группа: Пользователи
Российская Федерация
Сообщений: 32
Награды: 0
Статус: Offline
| Цитата SHW (  ) Это пока всё слишком абстрактно. Надо больше конкретики. ну да!. Так и есть !
К примеру можно попробовать реализовать постпроцессы (кто-то тут просил).
Что приходит в голову: группа методов: * Системные методы. Получить сис. папку, папку приложения, процессор инфу и т.д. и пр. подобное системное. Под виндой это просто сделать, но планируется же кроссплатформенность ? хотя бы под линукс. (ISYS_)
* Сохранение, загрузка изображений, создание текстур и пр. подобное (IMG_).
* Создание/сохранение моделей (сетей) из массива вершин/индексов (MESH_).
* Добавить/удалить обр. вызов для , например как сказано выше, для постотрисовки (ADCB_). Код virtual void AddCallback_PostDraw(FUNC func, void* userdata) =0;
Далее опять надо подумать
Может Владимир что-то предложит, если пойдёт на встречу.
Добавлено (02.01.2014, 22:35) --------------------------------------------- Осталось без внимания.. ну чтож .. очень жаль... Надеялся на поболее внимания.
Сообщение отредактировал ksacvet777 - Четверг, 02.01.2014, 22:35 |
|
| |
SpaceEngineer | Дата: Четверг, 02.01.2014, 23:03 | Сообщение # 4 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Для создания SDK ещё рановато. Структура движка не очень хороша для этого, многое надо переделать.
|
|
| |
ksacvet777 | Дата: Пятница, 03.01.2014, 14:31 | Сообщение # 5 |
Космический турист
Группа: Пользователи
Российская Федерация
Сообщений: 32
Награды: 0
Статус: Offline
| Цитата SpaceEngineer (  ) Для создания SDK ещё рановато. Структура движка не очень хороша для этого, многое надо переделать. Сколько ни переделывай, а идеальной структуры/архитектуры всё равно не будет. Тут костыль, там костыль - это нормально. Идеальная архитектура у тех, кто ничего не делал.
|
|
| |
mr-coloboc | Дата: Пятница, 03.01.2014, 19:53 | Сообщение # 6 |
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 268
Награды: 0
Статус: Offline
| ksacvet777, неа. до идеала можно довести любую простую структуру. хотя... SE к этому не относиться
|
|
| |
NuclearCHE | Дата: Пятница, 03.01.2014, 20:58 | Сообщение # 7 |
Первооткрыватель
Группа: Пользователи
Российская Федерация
Сообщений: 435
Награды: 0
Статус: Offline
| ksacvet777, не в костылях дело, дело в переделке реализации некоторых фич.
Config: Gigabyte GTX 770 (2048 MB/256 bit) , Intel Core i5 2400 3,1GHz, 8Gb DDR3, W10 x64
|
|
| |
ksacvet777 | Дата: Воскресенье, 05.01.2014, 11:28 | Сообщение # 8 |
Космический турист
Группа: Пользователи
Российская Федерация
Сообщений: 32
Награды: 0
Статус: Offline
| Цитата NuclearCHE (  ) не в костылях дело, дело в переделке реализации некоторых фич. Совсем не надо переделывать реализацию фич.
|
|
| |