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 mPartialUpdateRequired( Integration::PartialUpdateAvailable::FALSE )
54 virtual ~GraphicsInterface() {}
57 * Initialize the graphics interface
58 * @param[in] environmentOptions The environment options.
60 virtual void Initialize( EnvironmentOptions* environmentOptions ) = 0;
63 * Destroy the Graphics Factory implementation
65 virtual void Destroy() = 0;
68 * Get whether the depth buffer is required
69 * @return TRUE if the depth buffer is required
71 Integration::DepthBufferAvailable& GetDepthBufferRequired()
73 return mDepthBufferRequired;
77 * Get whether the stencil buffer is required
78 * @return TRUE if the stencil buffer is required
80 Integration::StencilBufferAvailable GetStencilBufferRequired()
82 return mStencilBufferRequired;
86 * Get whether the stencil buffer is required
87 * @return TRUE if the stencil buffer is required
89 Integration::PartialUpdateAvailable GetPartialUpdateRequired()
91 return mPartialUpdateRequired;
96 Integration::DepthBufferAvailable mDepthBufferRequired; ///< Whether the depth buffer is required
97 Integration::StencilBufferAvailable mStencilBufferRequired; ///< Whether the stencil buffer is required
98 Integration::PartialUpdateAvailable mPartialUpdateRequired; ///< Whether the partial update is required
107 #endif // DALI_INTERNAL_BASE_GRAPHICS_INTERFACE_H