1 #ifndef DALI_INTERNAL_BASE_GRAPHICS_INTERFACE_H
2 #define DALI_INTERNAL_BASE_GRAPHICS_INTERFACE_H
5 * Copyright (c) 2018 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.
22 #include <dali/internal/system/common/environment-options.h>
23 #include <dali/integration-api/core-enumerations.h>
35 * Factory interface for creating Graphics Factory implementation
37 class GraphicsInterface
45 : mDepthBufferRequired( Integration::DepthBufferAvailable::FALSE ),
46 mStencilBufferRequired( Integration::StencilBufferAvailable::FALSE ),
47 mPartialUpdateAvailable( Integration::PartialUpdateAvailable::FALSE )
52 * Initialize the graphics interface
53 * @param[in] environmentOptions The environment options.
55 virtual void Initialize( EnvironmentOptions* environmentOptions ) = 0;
58 * Destroy the Graphics Factory implementation
60 virtual void Destroy() = 0;
63 * Get whether the depth buffer is required
64 * @return TRUE if the depth buffer is required
66 Integration::DepthBufferAvailable& GetDepthBufferRequired()
68 return mDepthBufferRequired;
72 * Get whether the stencil buffer is required
73 * @return TRUE if the stencil buffer is required
75 Integration::StencilBufferAvailable GetStencilBufferRequired()
77 return mStencilBufferRequired;
81 * Get whether the partial update is available
82 * @return TRUE if the partial update is available
84 Integration::PartialUpdateAvailable PartialUpdateAvailable()
86 return mPartialUpdateAvailable;
91 * Virtual protected destructor - no deletion through this interface
93 virtual ~GraphicsInterface() {};
98 Integration::DepthBufferAvailable mDepthBufferRequired; ///< Whether the depth buffer is required
99 Integration::StencilBufferAvailable mStencilBufferRequired; ///< Whether the stencil buffer is required
100 Integration::PartialUpdateAvailable mPartialUpdateAvailable; ///Whether the partial update is available
109 #endif // DALI_INTERNAL_BASE_GRAPHICS_INTERFACE_H