1 #ifndef DALI_INTERNAL_SCENE_GRAPH_SCENE_H
2 #define DALI_INTERNAL_SCENE_GRAPH_SCENE_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.
21 #include <dali/integration-api/scene.h>
22 #include <dali/integration-api/gl-defines.h>
23 #include <dali/internal/render/gl-resources/context.h>
24 #include <dali/internal/render/common/render-instruction-container.h>
36 class RenderInstructionContainer;
44 * @param[in] surface The render surface
54 * Creates a scene object in the GPU.
55 * @param[in] context The GL context
57 void Initialize( Context& context );
60 * Called by RenderManager to inform the scene that the context has been destroyed
62 void GlContextDestroyed();
65 * Gets the context holding the GL state of rendering for the scene
68 Context* GetContext();
71 * Gets the render instructions for the scene
72 * @return the render instructions
74 RenderInstructionContainer& GetRenderInstructions();
78 Context* mContext; ///< The context holding the GL state of rendering for the scene
80 // Render instructions describe what should be rendered during RenderManager::RenderScene()
81 // Update manager updates instructions for the next frame while we render the current one
83 RenderInstructionContainer mInstructions; ///< Render instructions for the scene
87 } // namespace SceneGraph
89 } // namespace Internal
94 #endif // DALI_INTERNAL_SCENE_GRAPH_SCENE_H