CEGUI — загрузка ресурсов из DLL

Я использую CEGUI 0.8.2. Как я могу загрузить все ресурсы из двоичного файла? Я создал ресурс только DLL, содержащий все необходимые ресурсы, такие как .ttf .font .schema .imageset .looknfeel а также .PNG для набора изображений. Я использую Direct3D рендерер и без графического движка. Я знаю, как загружать ресурсы из файлов, хранящихся на жестком диске, но я хочу инкапсулировать некоторые из этих ресурсов в файл DLL. В текущем API есть несколько способов загрузить его из RawDataContainer,

например

FontManager::getSingleton().createFromContainer(rawFont);

но это загружает .font xml, который ссылается на font.ttf, так как загрузить ВСЕ ресурсы из двоичного файла? даже файлы .ttf и .png?

0

Решение

Я получил информацию с официального форума cegui, что единственный способ сделать это — создать собственного провайдера ресурсов путем расширения ResourceProvider класс и реализовать loadRawDataContainer функция. Затем вы должны вручную инициализировать систему Cegui вместо вызова bootstrapSystem функция.

Ручная инициализация:

guiRenderer = &Direct3D11Renderer::create(device, context);
if (System::getSingletonPtr()) CEGUI_THROW(InvalidRequestException("CEGUI::System object is already initialised."));
System::create(*guiRenderer, &ceguiResourceProvider); // inject custom resource provider
2

Другие решения

Других решений пока нет …