我试图找到一种在Delphi中在openGL表单上显示简单文本的方法。
我用标签尝试了这个,但它们没有出现。我猜测openGL窗口是在它上面呈现的,所以我试着打电话给Label1.BringToFront;
,但这并没有起作用。
我还听说过一个名为freetype的库,但我找不到信息,如何在Delphi中实现它。
在Delphi中在openGL表单上呈现文本的最简单方法是什么?
答案 0 :(得分:0)
最简单的方法是使用opengl的wglfontbitmaps
const numberchar =128
allocate:
wglMakeCurrent(FDC, FRC);
FFontBase := glGenLists(numberchar);
SelectObject(FDC, FFont.Handle);
wglUseFontBitmaps(FDC,0,128, FFontBase);
draw(atext:ansistring);
glPushAttrib(GL_LIST_BIT);
glListBase(FFontbase);
glCallLists(Length(aText), GL_UNSIGNED_BYTE, Pansichar(aText)); list
glPopAttrib;
free:
glDeleteLists(FFontBase, numberchar);
抽奖代码只是部分的。最好寻找类似代码的教程。
请注意,这只会为您提供基本的非缩放字体。实际上,对于花哨的文本效果,freetype是最常见的路径。
开始使用Delphi和opengl的好地方是http://www.delphigl.com/大部分是德语,但也有一些英语板。
另一种选择(假设你有D2010 +)是朝 DirectX 的方向看。 D2010 +附带一个directx上下文组件。