- Removed legacy push constant structures and functions for better clarity and maintainability.
- Introduced new `text_push_constants_t` structure for text rendering with optimized layout.
- Implemented dual stage push constant analysis to support separate layouts for vertex and fragment shaders.
- Added functions to generate push constant structures and fill functions based on shader reflection.
- Enhanced static checks for push constant layouts to ensure compatibility and correctness.
- Updated templates to accommodate new dual stage push constant generation.
- Added support detection for procedural vertex shaders based on push constant layout.
- Introduced `imager_shader` class for rendering images with various scaling modes using GPU shaders.
- Implemented `scrollbar_shader` class for customizable scrollbar rendering with support for vertical and horizontal orientations.
- Added vertex structure template for automatic generation of vertex input structures based on shader reflection.
- Enhanced interaction capabilities for scrollbars, including drag-and-drop functionality and visibility management.
- Provided default styles and configuration options for both image and scrollbar widgets.
- Removed references to `post_effect_applicator` from `render_tree_executor.h`, `shared_render_resources.cpp`, and `shared_render_resources.h`.
- Eliminated `post_effect_command_t` and related functions from `render_collector.cpp` and `render_collector.h`.
- Deleted `post_process.h` and its associated implementation, simplifying the widget structure.
- Updated custom shader widgets to reflect changes in effect handling.
- Adjusted various widget classes to remove unused intrinsic size methods.
- Enhanced shader generation templates to include push constant base member information for better validation.
- Implemented a fullscreen quad vertex shader for post-processing effects.
- Added a noise fragment shader to apply noise effects to textures.
- Created a vignette fragment shader for darkening corners of the screen.
- Developed a canvas widget to manage child widgets with anchor points and flexible sizing.
- Introduced an effect chain widget to apply multiple post-processing effects in sequence.
- Added overlay widget to position child widgets with alignment and padding options.
- Implemented a post effect widget to apply effects like blur, vignette, and color adjustments to child widgets.
- Provided convenience functions for easily applying common effects to widgets.
- Replaced string concatenation with Jinja2 templates for improved maintainability and readability.
- Added new template files for struct definitions, buffer helpers, and buffer manager.
- Introduced a template loader to manage Jinja2 rendering and custom filters.
- Updated the README and documentation to reflect the new template system.
- Added comprehensive tests to ensure output consistency with the previous implementation.
- Maintained full API compatibility with existing functions.