ENG Новый сайт

Расширенный поиск

[ Новые сообщения · Пользователи · Правила ]
Страница 1 из 11
Форум » SpaceEngine » Моддинг и дополнения » Стартовое решение для создания расширений для SE (расширене)
Стартовое решение для создания расширений для 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 с ключами.
Например это может быть ключи, облегчающие отладку расширений, например когда не загружается/не создаётся что-либо. Например приложение после старта сразу загружает расширения, чтобы например можно было отлаживать расширение.

Прикрепляю так же файл с этим документиком и кодом

Ожидаются любые мысли ... smile
Прикрепления: extention.zip(13Kb)
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;


Далее опять надо подумать smile

Может Владимир что-то предложит, если пойдёт на встречу.

Добавлено (02.01.2014, 22:35)
---------------------------------------------
Осталось без внимания.. ну чтож .. очень жаль... Надеялся на поболее внимания.


Сообщение отредактировал ksacvet777 - Четверг, 02.01.2014, 22:35
SpaceEngineerДата: Четверг, 02.01.2014, 23:03 | Сообщение # 4
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: 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 к этому не относиться taunt
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 ()
не в костылях дело, дело в переделке реализации некоторых фич.

Совсем не надо переделывать реализацию фич.
Форум » SpaceEngine » Моддинг и дополнения » Стартовое решение для создания расширений для SE (расширене)
Страница 1 из 11
Поиск:

>