如何用delphi在openGL中渲染简单的2d文本?

时间:2014-01-13 13:20:15

标签: delphi opengl text fonts

我试图找到一种在Delphi中在openGL表单上显示简单文本的方法。 我用标签尝试了这个,但它们没有出现。我猜测openGL窗口是在它上面呈现的,所以我试着打电话给Label1.BringToFront;,但这并没有起作用。 我还听说过一个名为freetype的库,但我找不到信息,如何在Delphi中实现它。 在Delphi中在openGL表单上呈现文本的最简单方法是什么?

1 个答案:

答案 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上下文组件。