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 )
51 * Initialize the graphics interface
52 * @param[in] environmentOptions The environment options.
54 virtual void Initialize( EnvironmentOptions* environmentOptions ) = 0;
57 * Destroy the Graphics Factory implementation
59 virtual void Destroy() = 0;
62 * Get whether the depth buffer is required
63 * @return TRUE if the depth buffer is required
65 Integration::DepthBufferAvailable& GetDepthBufferRequired()
67 return mDepthBufferRequired;
71 * Get whether the stencil buffer is required
72 * @return TRUE if the stencil buffer is required
74 Integration::StencilBufferAvailable GetStencilBufferRequired()
76 return mStencilBufferRequired;
81 * Virtual protected destructor - no deletion through this interface
83 virtual ~GraphicsInterface() {};
88 Integration::DepthBufferAvailable mDepthBufferRequired; ///< Whether the depth buffer is required
89 Integration::StencilBufferAvailable mStencilBufferRequired; ///< Whether the stencil buffer is required
98 #endif // DALI_INTERNAL_BASE_GRAPHICS_INTERFACE_H