1 #ifndef DALI_INTERNAL_ADAPTOR_FRAME_TIME_STAMP_H
2 #define DALI_INTERNAL_ADAPTOR_FRAME_TIME_STAMP_H
5 * Copyright (c) 2021 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.
31 * Simple structure to hold information about an event in time
32 * within Dali. For example when rendering started.
36 static const unsigned int BUFFER_NOT_USED = 2; ///< no index buffer was used
45 * @param frame the frame number
46 * @param microseconds the time from a monotonic clock
47 * @param bufferIndex double buffered index used for performing an update / render
49 FrameTimeStamp(unsigned int frame, uint64_t microseconds, unsigned int bufferIndex = BUFFER_NOT_USED);
53 * @param bufferIndex double buffered index used for performing an update / render
55 FrameTimeStamp(unsigned int bufferIndex);
58 * @param start start time
60 * @return difference in microseconds between two time stamps
62 static unsigned int MicrosecondDiff(const FrameTimeStamp& start, const FrameTimeStamp& end);
64 unsigned int frame; ///< Frame number ( not always available)
65 uint64_t microseconds; ///< Microsecond time stamp
66 unsigned int bufferIndex; ///< The double buffered index used for performing an update / render
68 } // namespace Adaptor
70 } // namespace Internal
74 #endif // DALI_INTERNAL_ADAPTOR_FRAME_TIME_STAMP_H