UC-win/Road的主画面上想要显示任意文本,可以实现吗?
可以。UC-win/Road SDK中,为了在主画面的显示屏上通过OpenGL进行各种描绘,准备有被称为PaintHUD的函数。其中通过调用SDK的文本显示程序库功能,可继续宁文本显示。下述记载了相关代码。再者,关于PaintHUD的处理,请参考SDK的样品插件中的SpeedMeterPlugin。
procedure ????.PaintHUD;
var
sp : TPoint3D;
wp : TPoint3D;
cw : Integer;
ch : Integer;
begin
cw := winRoadApplication.mainForm.openGL.Width;
ch := winRoadApplication.mainForm.openGL.Height;
F8TextResetSettings;
F8TextSetFontName( 'Sinsun' );
F8TextSetFontSize( 40 ); // 像素单位
F8TextSetFontColor( clRed );
F8Text2DModeBegin( cw, ch ); // 指定画面大小
F8TextSetAlignment( _alignCenter ); // 字符串的标准位置
F8TextStartFrom( 0.5 * cw, 5 ); // 书写位置
glDisable( GL_LIGHTING );
glEnable( GL_BLEND );
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
glColor4d( 0.0, 0.5, 1.0, 0.5 );
glBegin( GL_QUADS );
glVertex3f( 0.0, 0.0, -1.0 );
glVertex3f( 0.0, 2 * 40 + 10, -1.0 );
glVertex3f( cw, 2 * 40 + 10, -1.0 );
glVertex3f( cw, 0.0, -1.0 );
glEnd;
F8TextOut( 'Message Test' ); // 描绘
F8Text2DModeEnd; // 结束
glEnable( GL_LIGHTING );
glDisable( GL_COLOR_MATERIAL );
end; |
|
|