|
|
目前正在汉化一款D3D软件。它自己封装了文字引擎。它的过程大概如下:
预先定义该软件会使用的各种字体,有几种字体就做成几个bitmap存放于硬盘上。
因为只是显示英文。bitmip非常小。显示文字的时候从bitmap直接生成texture
现在我要显示中文,把思路改成这样:
首先内存中会有一个查找表。存放汉字。并且每个汉字会有一个bitmap(该bitmap与汉字大小一样大)。然后维护了一张纹理,该纹理里有查找表里已有的汉字bitmap后形成的纹理。
然后我的汉字有十几个字体大小之类的分类,我的查找表就应该有相应的个数。
我觉得我的这个思路没有问题。就是没办法证明这样搞的效率是不是很高。并且我在运行的过程中出现在运行错误。
相关部分思路与伪代码如下 :
1,创建设备Device
2,检查有多少类句子(文字)需要写入纹理
while(类--)
{
m_pDevice->CreateTexture( TEXTURESIZE, TEXTURESIZE, 1, 0,
D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, &(fontData[fontNumber].pTexture) ,NULL) )
....其他处理
}
现在遇到的问题是这样的:
while循环中,第1次没有问题。,纹理正确形成。第2次就报出异常。“未将对像引用实例化”
|
|