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 )
53 virtual ~GraphicsInterface() {}
56 * Initialize the graphics interface
57 * @param[in] environmentOptions The environment options.
59 virtual void Initialize( EnvironmentOptions* environmentOptions ) = 0;
62 * Destroy the Graphics Factory implementation
64 virtual void Destroy() = 0;
67 * Get whether the depth buffer is required
68 * @return TRUE if the depth buffer is required
70 Integration::DepthBufferAvailable& GetDepthBufferRequired()
72 return mDepthBufferRequired;
76 * Get whether the stencil buffer is required
77 * @return TRUE if the stencil buffer is required
79 Integration::StencilBufferAvailable GetStencilBufferRequired()
81 return mStencilBufferRequired;
87 Integration::DepthBufferAvailable mDepthBufferRequired; ///< Whether the depth buffer is required
88 Integration::StencilBufferAvailable mStencilBufferRequired; ///< Whether the stencil buffer is required
97 #endif // DALI_INTERNAL_BASE_GRAPHICS_INTERFACE_H