2 * Copyright (c) 2024 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali/internal/adaptor/common/adaptor-builder-impl.h>
22 #include <dali/internal/window-system/common/display-utils.h>
24 #if defined(VULKAN_ENABLED)
25 #include <dali/internal/graphics/vulkan/vulkan-graphics-factory.h>
27 #include <dali/internal/graphics/gles/egl-graphics-factory.h>
30 namespace Dali::Internal::Adaptor
34 static AdaptorBuilder* gAdaptorBuilder = nullptr;
36 AdaptorBuilder& AdaptorBuilder::Get(EnvironmentOptions& environmentOptions)
38 if(gAdaptorBuilder == nullptr)
40 gAdaptorBuilder = new AdaptorBuilder(environmentOptions);
42 return *gAdaptorBuilder;
45 void AdaptorBuilder::Finalize()
47 delete gAdaptorBuilder;
48 gAdaptorBuilder = nullptr;
51 AdaptorBuilder::AdaptorBuilder(EnvironmentOptions& environmentOptions)
52 : mEnvironmentOptions(environmentOptions)
54 // Construct Graphics Factory
55 mGraphicsFactory = Utils::MakeUnique<GraphicsFactory>(environmentOptions);
58 GraphicsFactoryInterface& AdaptorBuilder::GetGraphicsFactory() const
60 return *mGraphicsFactory;
63 } // namespace Dali::Internal::Adaptor