|
15 | 15 | namespace egl |
16 | 16 | { |
17 | 17 |
|
| 18 | +template <> |
| 19 | +CompositorTiming FromEGLenum<CompositorTiming>(EGLenum from) |
| 20 | +{ |
| 21 | + switch (from) |
| 22 | + { |
| 23 | + case EGL_COMPOSITE_DEADLINE_ANDROID: |
| 24 | + return CompositorTiming::CompositeDeadline; |
| 25 | + case EGL_COMPOSITE_INTERVAL_ANDROID: |
| 26 | + return CompositorTiming::CompositInterval; |
| 27 | + case EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID: |
| 28 | + return CompositorTiming::CompositToPresentLatency; |
| 29 | + default: |
| 30 | + return CompositorTiming::InvalidEnum; |
| 31 | + } |
| 32 | +} |
| 33 | + |
| 34 | +EGLenum ToEGLenum(CompositorTiming from) |
| 35 | +{ |
| 36 | + switch (from) |
| 37 | + { |
| 38 | + case CompositorTiming::CompositeDeadline: |
| 39 | + return EGL_COMPOSITE_DEADLINE_ANDROID; |
| 40 | + case CompositorTiming::CompositInterval: |
| 41 | + return EGL_COMPOSITE_INTERVAL_ANDROID; |
| 42 | + case CompositorTiming::CompositToPresentLatency: |
| 43 | + return EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID; |
| 44 | + default: |
| 45 | + UNREACHABLE(); |
| 46 | + return 0; |
| 47 | + } |
| 48 | +} |
| 49 | + |
18 | 50 | template <> |
19 | 51 | MessageType FromEGLenum<MessageType>(EGLenum from) |
20 | 52 | { |
@@ -131,4 +163,60 @@ EGLenum ToEGLenum(TextureFormat from) |
131 | 163 | } |
132 | 164 | } |
133 | 165 |
|
| 166 | +template <> |
| 167 | +Timestamp FromEGLenum<Timestamp>(EGLenum from) |
| 168 | +{ |
| 169 | + switch (from) |
| 170 | + { |
| 171 | + case EGL_REQUESTED_PRESENT_TIME_ANDROID: |
| 172 | + return Timestamp::RequestedPresentTime; |
| 173 | + case EGL_RENDERING_COMPLETE_TIME_ANDROID: |
| 174 | + return Timestamp::RenderingCompleteTime; |
| 175 | + case EGL_COMPOSITION_LATCH_TIME_ANDROID: |
| 176 | + return Timestamp::CompositionLatchTime; |
| 177 | + case EGL_FIRST_COMPOSITION_START_TIME_ANDROID: |
| 178 | + return Timestamp::FirstCompositionStartTime; |
| 179 | + case EGL_LAST_COMPOSITION_START_TIME_ANDROID: |
| 180 | + return Timestamp::LastCompositionStartTime; |
| 181 | + case EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID: |
| 182 | + return Timestamp::FirstCompositionGPUFinishedTime; |
| 183 | + case EGL_DISPLAY_PRESENT_TIME_ANDROID: |
| 184 | + return Timestamp::DisplayPresentTime; |
| 185 | + case EGL_DEQUEUE_READY_TIME_ANDROID: |
| 186 | + return Timestamp::DequeueReadyTime; |
| 187 | + case EGL_READS_DONE_TIME_ANDROID: |
| 188 | + return Timestamp::ReadsDoneTime; |
| 189 | + default: |
| 190 | + return Timestamp::InvalidEnum; |
| 191 | + } |
| 192 | +} |
| 193 | + |
| 194 | +EGLenum ToEGLenum(Timestamp from) |
| 195 | +{ |
| 196 | + switch (from) |
| 197 | + { |
| 198 | + case Timestamp::RequestedPresentTime: |
| 199 | + return EGL_REQUESTED_PRESENT_TIME_ANDROID; |
| 200 | + case Timestamp::RenderingCompleteTime: |
| 201 | + return EGL_RENDERING_COMPLETE_TIME_ANDROID; |
| 202 | + case Timestamp::CompositionLatchTime: |
| 203 | + return EGL_COMPOSITION_LATCH_TIME_ANDROID; |
| 204 | + case Timestamp::FirstCompositionStartTime: |
| 205 | + return EGL_FIRST_COMPOSITION_START_TIME_ANDROID; |
| 206 | + case Timestamp::LastCompositionStartTime: |
| 207 | + return EGL_LAST_COMPOSITION_START_TIME_ANDROID; |
| 208 | + case Timestamp::FirstCompositionGPUFinishedTime: |
| 209 | + return EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID; |
| 210 | + case Timestamp::DisplayPresentTime: |
| 211 | + return EGL_DISPLAY_PRESENT_TIME_ANDROID; |
| 212 | + case Timestamp::DequeueReadyTime: |
| 213 | + return EGL_DEQUEUE_READY_TIME_ANDROID; |
| 214 | + case Timestamp::ReadsDoneTime: |
| 215 | + return EGL_READS_DONE_TIME_ANDROID; |
| 216 | + default: |
| 217 | + UNREACHABLE(); |
| 218 | + return 0; |
| 219 | + } |
| 220 | +} |
| 221 | + |
134 | 222 | } // namespace egl |
0 commit comments