我正在使用CEGUI 0.8.2。如何从二进制加载所有资源?我创建了仅包含所有资源的资源dll,例如 .ttf .font .schema .imageset .looknfeel 和 .png for imageset。我正在使用Direct3D渲染器而没有图形引擎。我知道如何从存储在硬盘驱动器上的文件加载资源,但我想将其中一些资源封装到一个dll文件中。当前api中有一些方法可以从RawDataContainer
加载它。
e.g。
FontManager::getSingleton().createFromContainer(rawFont);
但是这会加载引用font.ttf的.font xml,那么如何从二进制文件加载所有资源?甚至.ttf和.png文件?
答案 0 :(得分:2)
我从官方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