Reason
The current system is an outdated relic of v1, and although it has been patched several times, we cannot support more than one shader, let alone various features like Scissor.
It is also impossible to implement ZLayer, which is a critical issue for the UI and for managing entity rendering.
The current batches are also incorrect and do not provide optimization due to the lack of continuity in the rendering commands.
What need
We need to implement a command pattern for our custom graphics module, which will be used to generate batches and call OpenGL rendering. This approach will also allow us to reduce our dependence on a specific API, and implementing other APIs (such as Vulkan and DirectX) will be less of a hassle.
Reason
The current system is an outdated relic of v1, and although it has been patched several times, we cannot support more than one shader, let alone various features like Scissor.
It is also impossible to implement ZLayer, which is a critical issue for the UI and for managing entity rendering.
The current batches are also incorrect and do not provide optimization due to the lack of continuity in the rendering commands.
What need
We need to implement a command pattern for our custom graphics module, which will be used to generate batches and call OpenGL rendering. This approach will also allow us to reduce our dependence on a specific API, and implementing other APIs (such as Vulkan and DirectX) will be less of a hassle.