改结构

This commit is contained in:
2026-08-29 01:23:45 +08:00
parent e61542092e
commit e2cd28a93a
60 changed files with 839 additions and 876 deletions
@@ -14,8 +14,5 @@ void Render_Scene_2D::activate_view() {
void Render_Scene_2D::deactivate_view() {
double_buffer::detail::Internal_Access::get(this).set_view_active(this, false);
}
void Render_Scene_2D::reset_diagnostics() {
double_buffer::detail::Internal_Access::get(this).reset_diagnostics(this);
}
}
@@ -50,7 +50,6 @@ struct Render_Scene_2D : Def<Render_Scene_2D, Scene,
*/
void activate_view();
void deactivate_view();
void reset_diagnostics();
};
}
#include "Render_Scene_2D.ipp"
@@ -86,7 +86,6 @@ struct Render_Scene_2D::Private : Prev_Private {
Object* object, not_null<Frame_2D*> frame,
Frame_Callback callback);
template <Attached Object> void set_view_active(Object* object, bool active);
template <Attached Object> void reset_diagnostics(Object* object);
/* CRTP 覆盖:Builder 挂接最终 Private 后安装二维 Scene 的无虚函数业务分派。 */
template <Attached Object>
void bind_private_crtp(Object* object);
@@ -469,15 +468,6 @@ void Render_Scene_2D::Private::dispatch_events(Object* object, Size viewport,
}
}
template <Attached Object>
void Render_Scene_2D::Private::reset_diagnostics(Object* object) {
double_buffer::detail::Internal_Access::publish_state<Scene::Base_Tag, &Scene::State::event_statistics>(object,
[this](State_Access<typename Object::State> states) {
event_statistics.reset();
auto& state = states.template get<Scene::Base_Tag>();
state.event_statistics = {};
});
}
template <Attached Object>
void Render_Scene_2D::Private::set_view_active(Object* object, bool active) {
double_buffer::detail::Internal_Access::set<&Prop::view_active>(object, active);
}