#include "application.h" #include "modifier_helper.h" #include "containers/overlay.h" #include "containers/scroll_box.h" #include "image/texture_manager.h" #include "widgets/imager.h" #include "widgets/mask.h" #include "widgets/post_process.h" using namespace mirage; int main(int argc, char* argv[]) { app::application app; app::application_config config; config.title = "Test Thread"; config.width = 800; config.height = 600; config.enable_multithreading = true; config.target_fps = 240; config.enable_validation = true; config.vsync = true; config.triple_buffering = false; config.adaptive_sync = true; if (!app.initialize(config)) { return -1; } // auto texture_id = app.texture_mgr()->load_texture("D:\\G2uY1fJa8AAOucs.jpg").value(); auto texture_id = app.texture_mgr()->load_texture("D:\\screenshot-20251128-165627.png").value(); auto tex_size = app.texture_mgr()->get_texture(texture_id)->size().cast(); auto root_widget = new_widget()[ new_widget()[ new_widget()->texture(texture_id).source_size(tex_size).scale(scale_mode::contain), // 圆形遮罩 new_widget()[ // 模糊效果 (blur) new_widget()->blur(40.0f) ]->circle() | align(alignment::center_left) ], new_widget()[ new_widget()->texture(texture_id).source_size(tex_size).scale(scale_mode::contain), new_widget()->vignette() ], new_widget()[ new_widget()->texture(texture_id).source_size(tex_size).scale(scale_mode::contain), new_widget()->chromatic_aberration(10, 1) ], new_widget()[ new_widget()->texture(texture_id).source_size(tex_size).scale(scale_mode::contain), new_widget()->noise(20.0f, 1.f, true) ], new_widget()[ new_widget()->texture(texture_id).source_size(tex_size).scale(scale_mode::contain), new_widget()->color_adjust(0.1f, 1.5f, 1.5f, 2.2f) ], new_widget()[ new_widget()->texture(texture_id).source_size(tex_size).scale(scale_mode::contain), new_widget()->color_tint(color::from_rgba(255, 100, 100, 255), 0.3f, blend_mode::overlay) ] ]; app.set_root_widget(root_widget.ptr()); app.run(); }