0

我正在使用 CEGUI 0.8.2。如何从二进制加载所有资源?我已经创建了仅包含所有需要资源的资源 dll,例如用于图像集的.ttf .font .schema .imageset .looknfeel.png。我正在使用 Direct3D 渲染器并且没有图形引擎。我知道如何从存储在硬盘驱动器上的文件中加载资源,但我想将其中一些资源封装到一个 dll 文件中。当前 api 中有一些方法可以从RawDataContainer.

例如

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

但这会加载引用font.ttf的.font xml,那么如何从二进制文件加载所有资源?甚至 .ttf 和 .png 文件?

4

1 回答 1

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
于 2014-02-13T19:30:57.420 回答