Refactor Push Constants and Add Dual Stage Support

- 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.
This commit is contained in:
daiqingshuang
2025-12-25 21:04:39 +08:00
parent 630864663a
commit 5a8d62f841
22 changed files with 1537 additions and 249 deletions

View File

@@ -63,9 +63,9 @@ int main(int argc, char* argv[]) {
new_widget<overlay>()[
new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),
// 圆形遮罩 + 模糊效果 (使用新的 blur_widget)
new_widget<basic_mask_widget>()[
// new_widget<basic_mask_widget>()[
new_widget<blur_widget>()->set_radius(40.0f)
] | align(alignment::center_left)
// ] | align(alignment::center_left)
]
// new_widget<overlay>()[
// new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),