|
@@ -2,13 +2,12 @@
|
|
|
|
|
|
{$I zglCustomConfig.cfg}
|
|
|
|
|
|
-// включить USE_MENUGUI в zgl_config
|
|
|
+// включить USE_MENUGUI в zgl_config, чтобы виртуальная клавиатура заработала.
|
|
|
uses
|
|
|
{$IFDEF UNIX}
|
|
|
cthreads,
|
|
|
{$ENDIF}
|
|
|
- {$IFDEF USE_ZENGL_STATIC}
|
|
|
- gegl_menu_gui,
|
|
|
+ {$IFDEF USE_ZENGL_STATIC}
|
|
|
zgl_screen,
|
|
|
zgl_window,
|
|
|
zgl_timers,
|
|
@@ -23,7 +22,10 @@ uses
|
|
|
zgl_file,
|
|
|
zgl_types,
|
|
|
zgl_mouse,
|
|
|
+ {$IfDef USE_VKEYBOARD}
|
|
|
+ gegl_menu_gui,
|
|
|
gegl_draw_gui,
|
|
|
+ {$Endif}
|
|
|
|
|
|
zgl_utils
|
|
|
{$ELSE}
|
|
@@ -34,14 +36,14 @@ uses
|
|
|
var
|
|
|
// dirRes : UTF8String {$IFNDEF MACOSX} = 'data/' {$ENDIF}; // вне демо-версий
|
|
|
dirRes : UTF8String {$IFNDEF MACOSX} = '../data/' {$ENDIF}; // в демо-версиях!!!
|
|
|
+ fntMain: Byte;
|
|
|
|
|
|
procedure Init;
|
|
|
begin
|
|
|
- file_SetPath(''); // если dirRes = '../data/' !!!!! в демо-версиях!!!
|
|
|
// RU: Загружаем данные о шрифте.
|
|
|
// EN: Load the font.
|
|
|
|
|
|
-// fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
|
|
|
+ fntMain := font_LoadFromFile( dirRes + 'font.zfi' );
|
|
|
// RU: Если же текстуры именуются без использования маски вида "$(имя_шрифта)FontName-page$(номер).$(расширение)", то загрузку можно произвести следующим образом(для png):
|
|
|
// EN: If textures were named without special mask - "$(font_name)-page$(number).$(extension)", then use this method to load them(for png):
|
|
|
//for i := 0 to fntMain.Count.Pages - 1 do
|
|
@@ -52,6 +54,7 @@ begin
|
|
|
JoyArrow := tex_LoadFromFile(dirRes + 'arrow.png'); // загрузили текстуру
|
|
|
tex_SetFrameSize(JoyArrow, 64, 64); // и разбили её на части, но в записях не будет указано количество полученных текстур
|
|
|
CreateTouchKeyboard;
|
|
|
+ setFontTextScale(15, fontUse);
|
|
|
end;
|
|
|
|
|
|
procedure Draw;
|
|
@@ -59,18 +62,15 @@ procedure Draw;
|
|
|
r : zglTRect;
|
|
|
s : UTF8String;
|
|
|
begin
|
|
|
-// setFontTextScale(15, fontUse);
|
|
|
-
|
|
|
// RU: ZenGL работает исключительно с кодировкой UTF-8, поэтому весь текст должен быть в UTF-8.
|
|
|
// EN: ZenGL works only with UTF-8 encoding, so all text should be encoded with UTF-8.
|
|
|
|
|
|
- text_Draw( fontUse, 400, 25, 'String with center alignment', TEXT_HALIGN_CENTER );
|
|
|
+ text_Draw( fntMain, 400, 25, 'String with center alignment', TEXT_HALIGN_CENTER );
|
|
|
|
|
|
- text_DrawEx( fontUse, 400, 65, 3, 0, 'Scaling', 255, $FFFFFF, TEXT_HALIGN_CENTER );
|
|
|
+ text_DrawEx( fntMain, 400, 65, 3, 0, 'Scaling', 255, $FFFFFF, TEXT_HALIGN_CENTER );
|
|
|
|
|
|
- setFontTextScale(15, fontUse);
|
|
|
fx2d_SetVCA( $FF0000, $00FF00, $0000FF, $FFFFFF, 255, 255, 255, 255 );
|
|
|
- text_Draw( fontUse, 400, 125, 'Gradient color for every symbol', TEXT_FX_VCA or TEXT_HALIGN_CENTER );
|
|
|
+ text_Draw( fntMain, 400, 125, 'Gradient color for every symbol', TEXT_FX_VCA or TEXT_HALIGN_CENTER );
|
|
|
|
|
|
r.X := 0;
|
|
|
r.Y := 300 - 128;
|
|
@@ -78,7 +78,7 @@ begin
|
|
|
r.H := 256;
|
|
|
|
|
|
pr2d_Rect( r.X, r.Y, r.W, r.H, $FF0000 );
|
|
|
- text_DrawInRect( fontUse, r, 'Simple text rendering in rectangle' + #10 + 'Текст написанный в квадрате');
|
|
|
+ text_DrawInRect( fntMain, r, 'Simple text rendering in rectangle' + #10 + 'Текст написанный в квадрате');
|
|
|
// для использования другой кодировки надо указать Lazarus что страница в кодировке UTF-8
|
|
|
// File setting -> encoding -> UTF-8 with BOM
|
|
|
|
|
@@ -87,14 +87,14 @@ begin
|
|
|
r.W := 192;
|
|
|
r.H := 256;
|
|
|
pr2d_Rect( r.X, r.Y, r.W, r.H, $FF0000 );
|
|
|
- text_DrawInRect( fontUse, r, 'Text rendering using horizontal right alignment and vertical bottom alignment', TEXT_HALIGN_RIGHT or TEXT_VALIGN_BOTTOM );
|
|
|
+ text_DrawInRect( fntMain, r, 'Text rendering using horizontal right alignment and vertical bottom alignment', TEXT_HALIGN_RIGHT or TEXT_VALIGN_BOTTOM );
|
|
|
|
|
|
r.X := 400 - 192;
|
|
|
r.Y := 300 - 128;
|
|
|
r.W := 384;
|
|
|
r.H := 256;
|
|
|
pr2d_Rect( r.X, r.Y, r.W, r.H, $FF0000 );
|
|
|
- text_DrawInRect( fontUse, r, 'This text uses justify alignment and centered vertically. Text which doesn''t fit inside the rectangle will be cropped.',
|
|
|
+ text_DrawInRect( fntMain, r, 'This text uses justify alignment and centered vertically. Text which doesn''t fit inside the rectangle will be cropped.',
|
|
|
TEXT_HALIGN_JUSTIFY or TEXT_VALIGN_CENTER );
|
|
|
|
|
|
r.X := 400 - 320;
|
|
@@ -102,13 +102,13 @@ begin
|
|
|
r.W := 640;
|
|
|
r.H := 128;
|
|
|
pr2d_Rect( r.X, r.Y, r.W, r.H, $FF0000 );
|
|
|
- text_DrawInRect( fontUse, r, 'For starting new line LF symbol can be used' + #10 + 'code of which is equal to 10 and named in Unicode as "Line Feed"',
|
|
|
+ text_DrawInRect( fntMain, r, 'For starting new line LF symbol can be used' + #10 + 'code of which is equal to 10 and named in Unicode as "Line Feed"',
|
|
|
TEXT_HALIGN_CENTER or TEXT_VALIGN_CENTER );
|
|
|
|
|
|
// RU: Выводим количество FPS в правом углу, используя text_GetWidth.
|
|
|
// EN: Render FPS in the top right corner using text_GetWidth.
|
|
|
s := 'FPS: ' + u_IntToStr( zgl_Get( RENDER_FPS ) );
|
|
|
- text_Draw( fontUse, 800 - text_GetWidth( fontUse, s ), 0, s );
|
|
|
+ text_Draw( fntMain, 800 - text_GetWidth( fntMain, s ), 0, s );
|
|
|
end;
|
|
|
|
|
|
{$R *.res}
|