2D移植完成

This commit is contained in:
2026-09-03 12:38:51 +08:00
parent 57aff3568c
commit d46eea203e
24 changed files with 1318 additions and 772 deletions
+11 -3
View File
@@ -5,6 +5,7 @@
#include <cstdlib>
#include <memory>
namespace {
/* The process exits only from the asynchronous Scene completion boundary. */
using namespace aethera;
using namespace aethera::render_2d;
@@ -28,15 +29,22 @@ int main() {
.set<Prop_Tag>(&Abs_Axis::Prop::pixel_length, -80.0)
.set<Prop_Tag>(&Abs_Axis::Prop::orientation, Axis_Orientation::vertical)
.set<Prop_Tag>(&Numeric_Axis::Prop::coordinate_range, Axis_Range{-100.0, 0.0});
auto* frequency = frequency_builder.build().release(); /* 进程测试独占拥有;completion 退出进程后由 OS 回收。 */
auto* power = power_builder.build().release(); /* 进程测试独占拥有;completion 退出进程后由 OS 回收。 */
auto frequency = frequency_builder.build();
auto power = power_builder.build();
Spectrum::Builder spectrum_builder(*frequency, *power);
spectrum_builder
.set<Prop_Tag>(&Spectrum::Prop::frequency_range, Axis_Range{0.0, 100.0})
.set<Prop_Tag>(&Spectrum::Prop::partition_count, 4U)
.set<Spectrum_Frame_Tag>([](Spectrum::Frame& frame) { frame.samples = {-100.0, -50.0, -10.0}; });
auto spectrum = spectrum_builder.build();
/* 两根轴并行完成后再进入 Spectrum 的四分区子图。 */
Dag_Relation<aethera::render_2d::scene::Renderable>::Builder dag_builder;
dag_builder.add({1}, model_proxy<aethera::render_2d::scene::Renderable>(std::move(spectrum)));
dag_builder
.add({1}, model_proxy<aethera::render_2d::scene::Renderable>(std::move(frequency)))
.add({2}, model_proxy<aethera::render_2d::scene::Renderable>(std::move(power)))
.add({3}, model_proxy<aethera::render_2d::scene::Renderable>(std::move(spectrum)))
.add_dependency({3}, {1})
.add_dependency({3}, {2});
auto dag = dag_builder.build();
if (!dag) return 2;
Render_Scene_2D::Builder scene_builder;