- thanks to the use of special structures like CSR (Compressed Sparse Row), editing even in software mode becomes incredibly fast (the complexity of the calculation depends only on the number of selected points and is almost independent of the number of all existing points on the scene);
- thanks to the "dirty rectangles" technology, scrolling of background objects occurs almost very quickly, which allows for the rendering of very large sprites (more than 30kx30k pixels) as background objects;
- using multi-threaded processing in conjunction with SIMD optimizations, it is possible to achieve quite decent speed even in software rendering mode.
Supported OS: currently only Windows.
Rendering type: software (OpenGL is used only for outputting the final frame, but shader support is already implemented).
Main modules:
- Fast_AnimK : animation (particles,physics,hair,fluid effects etc.)
- Fast_GL : initializing GLSL shaders
- Fast_Graphics : rendering of primitives (like a line, rectangle,circle), filters, blitters, CSR-sprites processing etc.
- Fast_UI : working with UI/UX elements
- Fast_Scene_Tree : scene object manager
- Fast_SIMD : some SIMD powered routines
- Fast_Threads : working with threads (implementations of multi-threaded variants of some main functions)
- Hot_Keys : key mapping
- Image_Editor : editing sprites (filters, masks, etc.)
- Documentation : descriptions of tools from Draw, AnimK, File
- Performance_Time: measuring the running time of different sections of code
Tools page:
-
Text: drawing text (partially implemented, does not currently support multithreading); -
Brush: reserved for working on sprites on scene (not implemented); -
Spline: drawing curves/splines (it is the most optimized tool of all and has many settings for rendering, optimization, etc.); -
Select Items: editing splines (uses high-performance lazy rendering algorithms and CSR-sprites capabilities); -
Select Background Region: reserved for working with selective edits to the scene canvas (not implemented); -
Post-Process: various layer effects like AlphaBlend, Darken, Blur, Noise, etc. (almost completely implemented only in the source code); -
TileMap: drawing sprites using a black-and-white mask (partially implemented, some work on the collision system); -
Snap Grid: alignment of objects to a grid (only the display of the grid itself is implemented); -
Regular Grid: auxiliary grid for displaying the scale of the scene; -
Game Settings: some basic scene settings such as canvas size, display of some objects (partially implemented);
All units are in active development and will be supplemented as needed.
Executable demo(SprE_ngin_E_2_D.exe) is included, so run-n-fun.
Screenshots:
- Game mode: multithreading, SIMD, 100000 sprites
- Editor mode: spline with 20000000 points
- Editor mode: selected points in spline with 20000000 points
- Editor mode: selected points in splines with 60000000 points
- Editor mode: drawing tilemap, text, etc.
- Turbo Pascal style UI: