BlackShark
Release 4.0
يعد Black Shark Graphics Engine محركًا بسيطًا ثنائي الأبعاد وثلاثي الأبعاد مكتوبًا بلغة Pascal للمطورين لإنتاج تطبيقات باستخدام الرسومات المسرَّعة بالأجهزة. وهو يدعم لازاروس (الإصدار >= 2.0) ودلفي. إنه مشروع شاب ومتاح مجانًا ولديه حاليًا ناقل تطوير في المجال ثنائي الأبعاد. بالإضافة إلى ذلك، إذا أردت، يمكنك إنشاء كائنات ثلاثية الأبعاد (راجع أمثلة الاختبارات TBSTestMesh، TBSTestEarth في وحدة bs.test.mesh.pas). الغرض الرئيسي من المشروع هو إنشاء أبسط الكيانات للوصول البسيط إلى قدرات OpenGL API ضمن الإصدار >= ES2.
Shark.org
مستودع
قناة التليجرام
+ support for the Android OS has been added; see a test project: "./tests/lazarus/Android/Hello BlackShark /jni/ BlackShark .lpr"
and its application-wrapper project for Android Studio: "./tests/lazarus/Android/Hello BlackShark "; your also need
to create 'assets' directory and copy to it all folders from 'bin', for except other platforms folders (such as
'Win32' and 'Win64'); for compilation to ARM architecture you need change in 'build.gradle' file value 'x86_64'
to 'armeabi' and select 'Arm' build profile for the project in IDE Lazarus (Options->Compiler Options->Build modes));
+ support for the Ultibo OS has been added; see a test project: "./tests/lazarus/Ultibo/BSApplication/BSApplication.lpr";
for its compilation use this IDE: https://github.com/ultibohub/Core/releases/download/2.5.037/Ultibo-Core-2.5.037-Beetroot.exe;
+ on Raspberry OS it just has been run without special implementation;
+ high DPI support for default GUI sizes;
+ adaptive FPS was improved for the pure Black Shark application;
+ TBTable - some fixes;
+ refactoring of gl-context creation, bs.font, bs.renderer (multiple passes were fixed), bs.config (save and load implementations were added), bs.gui.chat.
+ improve TPath:
+ a support of multi color;
+ draws strokes if to set property StrokeLength > 0;
+ because of it changes in TPath, TPathMultiColored was marked as deprecated;
+ BSConfig.MaxFPS switched on for "tests/delphi/VCL/AppTestVCL" and "tests/lazarus/LazTests" projects;
+ now default behavior for T BlackShark Viewport - if BSConfig.MaxFPS is switched off then redraw occurs only when it receives events from OS.
+ all dependencies on LCL/VCL/FMX were removed from all units, for except "bs.viewport"
+ a new pure Black Shark application (see examples "/tests/delphi/BSApplication" and "/tests/lazarus/BSApplication"); it is also supported by delphi for linux target compilation;
+ a new own system of windows (see example "bs.test.windows.TBSTestWindows" through command line parameters in "BSApplicatoin");
+ a performance was improved for applications based on T BlackShark ViewPort (LCL/VCL);
+ a new own decoder of PNG images;
+ automatically support of 32-bit indexes was added for the mesh (for high polygonal meshes); if amount indexes to occur more 65536, then buffer indexes translates from 16-bit to 32-bit format;
+ bs.font - range errors were fixed (appeared in mode compiling "Range check error");
+ a new property "bs.renderer.T BlackShark Renderer.FPS";
+ improve performance for TPath and its descendants: a path with thickness 1 pixel draws through GL_LINE_STRIP;
+ bs.align - a fix for right/bottom anchor;
+ https://t.me/BSharkGE
+ loader of 3d-scenes and 3d-objects for COLLADA free specification (for example see TBSTestCollada);
+ implementation of skeletal animation;
+ instancing 2d primitives implemented by T BlackShark Instancing2d (for example see TBSTestInstancing2d);
+ itself color was linked for an every instance in bs.instancing.T BlackShark Instancing;
+ in bs.canvas.TArc:
+ a new porperty bs.canvas.TArc.Position2dCenter;
+ a new property TArc.InterpolateFactor; it allows to adjust degree of smoothing;
+ in bs.canvas.TPath:
+ added a possibility to draw by arc (for example see TBSTestCanvasPathArc);
+ a new property of curve smoothing InterpolateFactor;
+ a new class TPathMultiColored - the path in which can set itself color for an every point;
+ in TBSTest:
+ possibility to move camera and key events;
+ virtual methods for mouse input;
+ added new actions above the camera by mouse: rotate and move;
+ added a new property Allow3dManipulationByMouse;
+ platform-dependent binary resources were divided by directory;
+ new approach for using of shaders - selection of uniforms when they assigned to object instead explicit type conversion of the shader and get need uniform;
+ new virtual method in bs.shader.T BlackShark Shader.DefaultName; it allows don't remember a name of a file for every shader;
+ TheXmlWriter - a few bugfixes;
+ TBSpinEdit, TBScrollBar - added pending scroll (begins in second after hold a button);
+ egl initialization fixed (EGLint define was wrong in header);
- remove wgl;
+ TBCustomTable - generic method was removed because FPC 3.2.0 couldn't to compile it, only FPC 3.2.1;
+ TBCustomTable - wrong motion of cursor of selection moved by keyboard (up/down) was fixed;
+ TBCheckBox - remove very bad forgotten line;
+ T BlackShark KDTree - min and max boundary reduced to (-max(single); max(single)), otherwise FPC couldn't to copy limit values from double to single;
+ new multisampling option: BSConfig.MultiSamplingSamples;
+ improve KD-tree test: added motion of objects, option of drawing of nodes the tree in every second, help-panel;
+ TBSTestScrollBox - brought back to normal state;
- TBSTestMemo, TBSTestTrueTypeSmiles - excluded until because are not ready (TBSTestTrueTypeSmiles on Linux);
+ license agreement was changed from custom on free LGPL;
+ a support of hardware multisampling was added;
+ FMX viewport support was added, I ran it only, while is not tested widely yet;
+ the canvas (TBCanvas) and its objects:
+ a new common mechanism of scale;
+ options of align: anchors, margins, paddings, and patterns of align (TObjectAlign) were implemented;
+ TFreeShape - a free shape builder with closed counters (see gallery);
+ TFog - a simple rectangle background with a custom shader;
+ TCanvasLayout - invisible and is not utilizing GPU resources rectangle object;
+ TPath - added drag-drop for reference points;
+ TrapezeRound;
+ TMultiColoredShape;
+ TColorSelector;
+ TBiColoredSolidLines;
- T BlackShark Pen was removed;
+ new controls:
+ TBEdit;
+ TBSpinEdit;
+ TObjectInspector;
+ TBForm;
+ TBColorDialog;
+ TBCustomColorBox;
+ TBTrackBar;
+ TBGroupBox;
+ TBCheckBox;
+ TBTable;
+ TBComboBox;
+ quality fonts rasterisation was a few improved;
+ RTTI format translated from binary to xml for possibility compare differencies by VCS;
+ KD-Tree was implemented with T BlackShark KDTree;
+ refactoring of the TBScene:
+ rendering was taken out to bs.renderer;
+ translated to KD-tree;
+ refactoring controls: TBScrolledWindow, TBScrollBar, TBButton;
+ added a new class THashTable<K, V> to bs.collection;
+ context initialization:
+ translated to a shared context;
+ smart initialization - without eglChooseConfig by selection of attributes from desirable to supported;
+ management of fonts, textures and shaders was translated to global mode, now they are have common manadgers for all contexts;
+ new project for autotests (AutoTests.dpr);
+ new methods in T BlackShark ViewPort for support of autotests (beginning from "Test");
+ updated libEGL and libGLESv2 libraries for Windows;
+ an option hardware multisampling was placed to BSConfig.Multisampling;
+ now by default only one thread is run for animations and events (the same global GuiThread) (see bs.thread.CreateThreads); you can change it in any time;
+ lot of bugs were fixed in space bs.scheme;
إصدار ثانوي جديد 1.02؛
الإصدار الأول!