1 #ifndef DALI_INTERNAL_ENVIRONMENT_CONFIGURATION_MANAGER_H
2 #define DALI_INTERNAL_ENVIRONMENT_CONFIGURATION_MANAGER_H
5 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
36 class ThreadController;
39 * This class retrieves and caches the system configuration.
42 class ConfigurationManager
49 ConfigurationManager( std::string systemCachePath, EglGraphics* eglGraphics, ThreadController* threadController );
52 * @brief Virtual Destructor for interface cleanup
54 virtual ~ConfigurationManager();
57 * @brief Retrieve all keys from the config file if the file exists.
59 void RetrieveKeysFromConfigFile( const std::string& configFilePath );
62 * @brief Get the maximum texture size.
63 * @return The maximum texture size
65 unsigned int GetMaxTextureSize();
68 * @brief Check whether multiple window is supported
69 * @return Whether multiple window is supported
71 bool IsMultipleWindowSupported();
73 // Deleted copy constructor.
74 ConfigurationManager( const ConfigurationManager& ) = delete;
76 // Deleted move constructor.
77 ConfigurationManager( const ConfigurationManager&& ) = delete;
79 // Deleted assignment operator.
80 ConfigurationManager& operator=( const ConfigurationManager& ) = delete;
82 // Deleted move assignment operator.
83 ConfigurationManager& operator=( const ConfigurationManager&& ) = delete;
87 std::string mSystemCacheFilePath; ///< The path of system cache file
88 EglGraphics* mEglGraphics; ///< EGL graphics
89 ThreadController* mThreadController; ///< The thread controller
90 unsigned int mMaxTextureSize; ///< The largest texture that the GL can handle
91 bool mIsMultipleWindowSupported:1; ///< Whether multiple window is supported by the GLES
92 bool mMaxTextureSizeCached:1; ///< Whether we have checked the maximum texture size
93 bool mIsMultipleWindowSupportedCached:1; ///< Whether we have checked the support of multiple window
100 #endif // DALI_INTERNAL_ENVIRONMENT_CONFIGURATION_MANAGER_H