1 #ifndef __DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_CONTAINER_H__
2 #define __DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_CONTAINER_H__
5 * Copyright (c) 2014 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/common/buffer-index.h>
23 #include <dali/internal/common/owner-container.h>
33 class RenderInstruction;
36 * Class to encapsulate double buffered render instruction data
38 class RenderInstructionContainer
45 RenderInstructionContainer();
50 ~RenderInstructionContainer();
53 * Reset the container index and reserve space in the container if needed
54 * @param bufferIndex to reset
55 * @param capacityRequired in the container
57 void ResetAndReserve( BufferIndex bufferIndex, size_t capacityRequired );
60 * Return the count of instructions in the container
61 * @param bufferIndex to use
62 * @return the count of elements
64 size_t Count( BufferIndex bufferIndex );
67 * Get a reference to the next instruction
68 * @param bufferIndex to use
70 RenderInstruction& GetNextInstruction( BufferIndex bufferIndex );
73 * Get a reference to the instruction at index
74 * @param bufferIndex to use
77 RenderInstruction& At( BufferIndex bufferIndex, size_t index );
81 unsigned int mIndex[ 2 ]; ///< count of the elements that have been added
82 typedef OwnerContainer< RenderInstruction* > InstructionContainer;
83 InstructionContainer mInstructions[ 2 ]; /// Double buffered instruction lists
87 } // namespace SceneGraph
89 } // namespace Internal
93 #endif // __DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_CONTAINER_H__