18bf80f4bSopenharmony_ci/*
28bf80f4bSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
38bf80f4bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
48bf80f4bSopenharmony_ci * you may not use this file except in compliance with the License.
58bf80f4bSopenharmony_ci * You may obtain a copy of the License at
68bf80f4bSopenharmony_ci *
78bf80f4bSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
88bf80f4bSopenharmony_ci *
98bf80f4bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
108bf80f4bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
118bf80f4bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
128bf80f4bSopenharmony_ci * See the License for the specific language governing permissions and
138bf80f4bSopenharmony_ci * limitations under the License.
148bf80f4bSopenharmony_ci */
158bf80f4bSopenharmony_ci
168bf80f4bSopenharmony_ci#include <scene_plugin/namespace.h>
178bf80f4bSopenharmony_ci
188bf80f4bSopenharmony_ci#include <meta/interface/intf_object_registry.h>
198bf80f4bSopenharmony_ci///////////////////////////////////////////////////////////////
208bf80f4bSopenharmony_ci// Specialisations
218bf80f4bSopenharmony_ci///////////////////////////////////////////////////////////////
228bf80f4bSopenharmony_ci
238bf80f4bSopenharmony_ci#include "anim_impl.h"
248bf80f4bSopenharmony_ci#include "camera_impl.h"
258bf80f4bSopenharmony_ci#include "env_impl.h"
268bf80f4bSopenharmony_ci#include "graphicsstate_impl.h"
278bf80f4bSopenharmony_ci#include "light_impl.h"
288bf80f4bSopenharmony_ci#include "material_impl.h"
298bf80f4bSopenharmony_ci#include "mesh_impl.h"
308bf80f4bSopenharmony_ci#include "multimesh_impl.h"
318bf80f4bSopenharmony_ci#include "node_impl.h"
328bf80f4bSopenharmony_ci#include "postprocess_effect_impl.h"
338bf80f4bSopenharmony_ci#include "postprocess_impl.h"
348bf80f4bSopenharmony_ci#include "propertyholder_impl.h"
358bf80f4bSopenharmony_ci#include "render_configuration_impl.h"
368bf80f4bSopenharmony_ci#include "resource_container.h"
378bf80f4bSopenharmony_ci#include "shader_impl.h"
388bf80f4bSopenharmony_ci#include "submesh_impl.h"
398bf80f4bSopenharmony_ci#include "submeshhandler.h"
408bf80f4bSopenharmony_ci#include "textureinfo_impl.h"
418bf80f4bSopenharmony_ci
428bf80f4bSopenharmony_ciSCENE_BEGIN_NAMESPACE()
438bf80f4bSopenharmony_ci
448bf80f4bSopenharmony_civoid RegisterNodes()
458bf80f4bSopenharmony_ci{
468bf80f4bSopenharmony_ci    auto& registry = META_NS::GetObjectRegistry();
478bf80f4bSopenharmony_ci    RegisterNodeImpl();
488bf80f4bSopenharmony_ci    RegisterEnvImpl();
498bf80f4bSopenharmony_ci    RegisterPostprocessImpl();
508bf80f4bSopenharmony_ci    RegisterPostprocessEffectImpl();
518bf80f4bSopenharmony_ci    RegisterRenderConfigurationImpl();
528bf80f4bSopenharmony_ci    RegisterCameraImpl();
538bf80f4bSopenharmony_ci
548bf80f4bSopenharmony_ci    RegisterLightImpl();
558bf80f4bSopenharmony_ci    RegisterMaterialImpl();
568bf80f4bSopenharmony_ci    RegisterMeshImpl();
578bf80f4bSopenharmony_ci    RegisterMultiMeshImpl();
588bf80f4bSopenharmony_ci    RegisterAnimImpl();
598bf80f4bSopenharmony_ci    // not nodes, but data for the nodes
608bf80f4bSopenharmony_ci    RegisterGraphicsStateImpl();
618bf80f4bSopenharmony_ci    RegisterPropertyHolderImpl();
628bf80f4bSopenharmony_ci    RegisterShaderImpl();
638bf80f4bSopenharmony_ci    RegisterSubMeshHandler();
648bf80f4bSopenharmony_ci    RegisterSubMeshImpl();
658bf80f4bSopenharmony_ci    RegisterTextureInfoImpl();
668bf80f4bSopenharmony_ci
678bf80f4bSopenharmony_ci    RegisterResourceContainerImpl();
688bf80f4bSopenharmony_ci}
698bf80f4bSopenharmony_ci
708bf80f4bSopenharmony_civoid UnregisterNodes()
718bf80f4bSopenharmony_ci{
728bf80f4bSopenharmony_ci    auto& registry = META_NS::GetObjectRegistry();
738bf80f4bSopenharmony_ci    UnregisterNodeImpl();
748bf80f4bSopenharmony_ci    UnregisterEnvImpl();
758bf80f4bSopenharmony_ci    UnregisterCameraImpl();
768bf80f4bSopenharmony_ci    UnregisterPostprocessImpl();
778bf80f4bSopenharmony_ci    UnregisterPostprocessEffectImpl();
788bf80f4bSopenharmony_ci    UnregisterRenderConfigurationImpl();
798bf80f4bSopenharmony_ci    UnregisterLightImpl();
808bf80f4bSopenharmony_ci    UnregisterMaterialImpl();
818bf80f4bSopenharmony_ci    UnregisterMeshImpl();
828bf80f4bSopenharmony_ci    UnregisterMultiMeshImpl();
838bf80f4bSopenharmony_ci    UnregisterAnimImpl();
848bf80f4bSopenharmony_ci    // not nodes, but data for the nodes
858bf80f4bSopenharmony_ci    UnregisterGraphicsStateImpl();
868bf80f4bSopenharmony_ci    UnregisterPropertyHolderImpl();
878bf80f4bSopenharmony_ci    UnregisterShaderImpl();
888bf80f4bSopenharmony_ci    UnregisterSubMeshHandler();
898bf80f4bSopenharmony_ci    UnregisterSubMeshImpl();
908bf80f4bSopenharmony_ci    UnregisterTextureInfoImpl();
918bf80f4bSopenharmony_ci
928bf80f4bSopenharmony_ci    UnregisterResourceContainerImpl();
938bf80f4bSopenharmony_ci}
948bf80f4bSopenharmony_ci
958bf80f4bSopenharmony_ciSCENE_END_NAMESPACE()
96