

If an application registers a callback for this choreographer instance when no new callbacks were previously registered, that callback is guaranteed to be dispatched. The same callback may be registered multiple times, provided that a different data pointer is provided each time. The data pointer provided will be passed to the callback function when it's called. Registers a callback to be run when the display refresh rate changes. SurfaceFlinger attempts to follow the chosen frame timeline, by not applying transactions or latching buffers before the desired presentation time.The preferred frame timeline is the default frame timeline that the platform scheduled for the app, based on device configuration.Alternatively, for apps that do not choose a frame timeline, their frame would be presented at the earliest possible timeline. Apps can choose a frame timeline from the AChoreographerFrameCallbackData payload, depending on the frame deadline they can meet when rendering the frame and their desired presentation time, and subsequently notify SurfaceFlinger of the choice.The callback is called when it is the time to start the frame with an AChoreographerFrameCallbackData payload: information about multiple possible frame timelines.The app posts an AChoreographer_vsyncCallback to Choreographer to run on the next frame.This is the C version of the object in Java.Īs of API level 33, apps can follow proper frame pacing and even choose a future frame to render. ANeuralNetworksSymmPerChannelQuantParamsĬhoreographer coordinates the timing of frame rendering.ACameraManager_ExtendedAvailabilityListener.ACameraCaptureSession_logicalCamera_captureCallbacksV2.ACameraCaptureSession_logicalCamera_captureCallbacks.ACameraCaptureSession_captureCallbacksV2.
