无法在GOP图形(UE FI)中使用set_pixel函数打印文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在GOP图形(UE FI)中使用set_pixel函数打印文本相关的知识,希望对你有一定的参考价值。

实际上我有一个.efi应用程序(打算是一个非常早期的内核),设置图形以及其他东西,我用这个图形来制作一个“set_pixel”函数,几天前我需要打印文本。 经过几天的研究,我发现我唯一的解决方案是用这个“set_pixel”函数和我做的其他一些派生(“draw_line”等)来编写我需要使用的所有字符。 你可以想象,这是一个非常乏味和缓慢的任务,还有另一个解决方案,而不是“手工”写下所有字符?导入字体并使用它的方法?提前致谢!

答案

这是我自己的解决方案。

我以头文件的形式创建了一个简单的字体(现在不完整......)。然后我使用这个函数来将一个字符绘制到GOP缓冲区中:

void drawChar(uint32_t *buffer, uint32_t x, uint32_t y, uint32_t color, wchar_t charcode) {
    extern wchar_t font_system_8x16[KAOS_FONTS_SIZE];
    wchar_t p = charcode * 128 - 128; // Size of a font's character
    for (int l = 0; l < 16; l++) {
        for (int c = 0; c < 8; c++) {
            if (font_system_8x16[p] == 1) {
                drawPoint(buffer, x + c, y + l, color);
            }

            p++;
        }
    }
}

https://bitbucket.org/cgerardin/kaos/src/0e6c92e02d549969ae8c8c7ee58af32e78ad1206/src/fonts/system-8x16.h?at=master&fileviewer=file-view-default

随意获得灵感。

编辑:要更快地生成头文件,请查看此C header file with bitmapped fonts

以上是关于无法在GOP图形(UE FI)中使用set_pixel函数打印文本的主要内容,如果未能解决你的问题,请参考以下文章

(转载)(官方)UE4--图形编程

什么是闭合GOP和开放GOP?

[引擎开发] 渲染架构与高级图形编程

[引擎开发] 渲染架构与高级图形编程

如何计算文件 H264 的 GOP 大小

基于GOP的时域滤波