A tiny high-performance Lua library for adding drawing layers and Z-axis ordering to any graphics framework.
deep is a lightweight Lua library that adds drawing layers and Z-axis management to graphics frameworks like Love2D. It replaces manual sorting of draw calls with a queue-based system where developers schedule actions with integer Z indices, which are then executed in precise order, simplifying rendering logic.
Lua developers, particularly those using Love2D or other Lua graphics frameworks for game development or real-time applications, who need efficient and organized rendering of layered graphics.
Developers choose deep for its minimal API (just three functions), high performance with low overhead, and framework-agnostic design that abstracts complex Z-sorting into an intuitive queue-based system, reducing boilerplate code.
Adds drawing layers to Love2D (or any Lua framework)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
With only three functions—new, queue, and draw—deep is incredibly easy to learn and integrate, reducing boilerplate code as highlighted in the README's 'Philosophy'.
It works with any Lua graphics framework, not just Love2D, offering flexibility for various projects, as stated in the 'Key Features'.
Designed for efficiency with minimal overhead, making it suitable for real-time applications like games, as emphasized in the 'Key Features'.
Enables creation of multiple independent layers (e.g., background, UI) that can be drawn sequentially, simplifying rendering logic, as shown in the 'Usage' example.
Actions must be queued every frame, even for static objects, which can lead to repetitive code and increased development time for dynamic scenes.
The queue function strictly requires integer Z values, disallowing floats and potentially limiting fine-grained depth control in complex renderings.
As a minimal library, deep lacks built-in support for common game development needs like automatic sorting or batch rendering, requiring custom implementations.