Seenkao 3 лет назад
Родитель
Сommit
1d9aa4bc96
1 измененных файлов с 80 добавлено и 0 удалено
  1. 80 0
      Zengl_SRC/demos/Android/05 - Primitives/jni/demo05.lpr

+ 80 - 0
Zengl_SRC/demos/Android/05 - Primitives/jni/demo05.lpr

@@ -0,0 +1,80 @@
+library demo05;
+
+{$I zglCustomConfig.cfg}
+
+uses
+  zgl_application,
+  zgl_screen,
+  zgl_window,
+  zgl_timers,
+  zgl_fx,
+  zgl_render_2d,
+  zgl_primitives_2d,
+  zgl_types,
+  zgl_math_2d,
+  gegl_color,
+  zgl_utils;
+
+var
+  calc   : Integer;
+  points : array[ 0..359 ] of zglTPoint2D;
+
+procedure Init;
+  var
+    i : Integer;
+begin
+  zgl_Enable( CORRECT_RESOLUTION );
+  scr_CorrectResolution( 800, 600 );
+
+  for i := 0 to 359 do
+    begin
+      points[ i ].X := 400 + m_Cos( i ) * ( 96 + random( 32 ) );
+      points[ i ].Y := 300 + m_Sin( i ) * ( 96 + random( 32 ) );
+    end;
+end;
+
+procedure Draw;
+  var
+    i : Integer;
+begin
+  // RU: Устанавливаем цвет и альфу для каждой вершины.
+  // EN: Set color and alpha for each vertex.
+  fx2d_SetVCA( $FF0000, $00FF00, $0000FF, $FFFFFF, 255, 255, 255, 255 );
+  // RU: Рисуем прямоугольник с заливкой(флаг PR2D_FILL) с использованием отдельных цветов для каждой вершины(флаг FX2D_VCA).
+  // EN: Render filled rectangle(flag PR2D_FILL) and use different colors for each vertex(flag FX2D_VCA).
+  pr2d_Rect( 0, 0, 800, 600, {$IfDef OLD_METHODS}$000000, 255,{$Else}cl_Black,{$EndIf} FX2D_VCA or PR2D_FILL );
+
+  // RU: Рисуем в центре экрана круг с радиусом 128 пиксела.
+  // EN: Render circle in the center of screen with radius 128 pixels.
+  pr2d_Circle( 400, 300, 128, {$IfDef OLD_METHODS}$ffffff, 155,{$Else}cl_White05,{$EndIf} 32, PR2D_FILL );
+
+  INC( calc );
+  if calc > 359 Then calc := 0;
+  points[ calc ].X := 400 + m_Cos( calc ) * ( 96 + random( 32 ) );
+  points[ calc ].Y := 300 + m_Sin( calc ) * ( 96 + random( 32 ) );
+  // RU: Рисуем линии внутри круга.
+  // EN: Render lines inside the circle.
+  for i := 0 to 359 do
+    pr2d_Line( 400, 300, points[ i ].X, points[ i ].Y, {$IfDef OLD_METHODS}$00FFFF, 255{$Else}cl_Yellow{$EndIf} );
+
+  // RU: Рисуем эллипсы с заливкой и без, со сглаженными контурами(флаг PR2D_SMOOTH).
+  // EN: Render filled ellipses with smoothed edges(flag PR2D_SMOOTH).
+  pr2d_Ellipse( 400 + 300, 300, 64, 256, {$IfDef OLD_METHODS}$FFFFFF, 128,{$Else}cl_White05,{$EndIf} 32, PR2D_FILL or PR2D_SMOOTH );
+  pr2d_Ellipse( 400 + 300, 300, 64, 256, {$IfDef OLD_METHODS}$000000, 255,{$Else}cl_Black,{$EndIf} 32, PR2D_SMOOTH );
+
+  pr2d_Ellipse( 400 - 300, 300, 64, 256, {$IfDef OLD_METHODS}$FFFFFF, 128,{$Else}cl_White05,{$EndIf} 32, PR2D_FILL or PR2D_SMOOTH );
+  pr2d_Ellipse( 400 - 300, 300, 64, 256, {$IfDef OLD_METHODS}$000000, 255,{$Else}cl_Black,{$EndIf} 32, PR2D_SMOOTH );
+end;
+
+procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
+begin
+  zgl_Reg( SYS_LOAD, @Init );
+  zgl_Reg( SYS_DRAW, @Draw );
+
+  scr_SetOptions();
+end;
+
+exports
+  Java_zengl_android_ZenGL_Main,
+  {$I android_export.inc}
+End.