Refactor rendering pipeline by removing post effect applicator
- 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.
This commit is contained in:
@@ -9,9 +9,10 @@
|
||||
#include "render/text/font_manager.h"
|
||||
#include "ui/widgets/imager.h"
|
||||
#include "ui/widgets/mask.h"
|
||||
#include "ui/widgets/post_process.h"
|
||||
#include "ui/widgets/text_widget.h"
|
||||
#include "ui/widgets/text_input/text_input.h"
|
||||
// 新的后效 widget 系统
|
||||
#include "ui/widgets/custom_shader/effects/effects.h"
|
||||
|
||||
using namespace mirage;
|
||||
|
||||
@@ -37,8 +38,8 @@ int main(int argc, char* argv[]) {
|
||||
// 获取上下文提供者来访问资源管理器
|
||||
auto* ctx = app.get_context_provider();
|
||||
|
||||
// auto texture_id = ctx->get_texture_manager()->load_texture("D:\\G2uY1fJa8AAOucs.jpg").value();
|
||||
const auto texture_id = ctx->get_texture_manager()->load_texture("D:\\screenshot-20251128-165627.png").value();
|
||||
auto texture_id = ctx->get_texture_manager()->load_texture("D:\\G2uY1fJa8AAOucs.jpg").value();
|
||||
// const auto texture_id = ctx->get_texture_manager()->load_texture("D:\\screenshot-20251128-165627.png").value();
|
||||
const auto text_size_i = ctx->get_texture_manager()->get_texture(texture_id)->size();
|
||||
const auto tex_size = text_size_i.cast<float>();
|
||||
|
||||
@@ -58,31 +59,35 @@ int main(int argc, char* argv[]) {
|
||||
new_widget<text_input>()->font_id(font_id).font_size(24),
|
||||
new_widget<overlay>()[
|
||||
new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),
|
||||
// 圆形遮罩
|
||||
// 圆形遮罩 + 模糊效果 (使用新的 blur_widget)
|
||||
new_widget<mask>()[
|
||||
// 模糊效果 (blur)
|
||||
new_widget<post_process>()->blur(40.0f)
|
||||
new_widget<blur_widget>()->set_radius(40.0f)
|
||||
]->circle() | align(alignment::center_left)
|
||||
],
|
||||
new_widget<overlay>()[
|
||||
new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),
|
||||
new_widget<post_process>()->vignette()
|
||||
// 暗角效果 (使用新的 vignette_widget)
|
||||
new_widget<vignette_widget>()->set_radius(0.5f).set_softness(0.5f)
|
||||
],
|
||||
new_widget<overlay>()[
|
||||
new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),
|
||||
new_widget<post_process>()->chromatic_aberration(10, 1)
|
||||
// 色差效果 (使用新的 chromatic_aberration_widget)
|
||||
new_widget<chromatic_aberration_widget>()->set_offset(vec2f_t{0.01f, 0.0f})
|
||||
],
|
||||
new_widget<overlay>()[
|
||||
new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),
|
||||
new_widget<post_process>()->noise(20.0f, 1.f, true)
|
||||
// 噪点效果 (使用新的 noise_widget)
|
||||
new_widget<noise_widget>()->set_amount(0.2f).set_grain_size(1.0f)
|
||||
],
|
||||
new_widget<overlay>()[
|
||||
new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),
|
||||
new_widget<post_process>()->color_adjust(0.1f, 1.5f, 1.5f, 2.2f)
|
||||
// 颜色调整效果 (使用新的 color_adjust_widget)
|
||||
new_widget<color_adjust_widget>()->set_brightness(0.1f).set_contrast(1.5f).set_saturation(1.5f).set_gamma(2.2f)
|
||||
],
|
||||
new_widget<overlay>()[
|
||||
new_widget<imager>()->texture_id(texture_id).source_size(tex_size).scale(scale_mode::contain),
|
||||
new_widget<post_process>()->color_tint(color::from_rgba(255, 100, 100, 255), 0.3f, blend_mode::overlay)
|
||||
// 色调效果 (使用新的 color_tint_widget)
|
||||
new_widget<color_tint_widget>()->set_tint_color(color{1.0f, 0.4f, 0.4f, 0.3f}).set_blend_mode(4) // Overlay 模式
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user