/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file * @kit ArkGraphics2D */ import type { Callback } from './@ohos.base'; /** * Provides functions of applying an independent draw frame rate used for drawing the UI. * * @namespace displaySync * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ declare namespace displaySync { /** * Provides the IntervalInfo interface, which includes timestamp and targetTimestamp. * @interface IntervalInfo * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ interface IntervalInfo { /** * The timestamp means the current drawing frame time. * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ timestamp: number; /** * The timestamp means the next drawing frame time. * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ targetTimestamp: number; } /** * Provides the DisplaySync interface, which can be used to control * the frequency of triggering callback function. * @interface DisplaySync * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ interface DisplaySync { /** * The expected frame rate of dynamical rate range. * If the function isn't be called. The DisplaySync's * minimum/maximum/expected rate default value is 60. * @param { ExpectedFrameRateRange } rateRange - Indicates ExpectedFrameRateRange. * @throws { BusinessError } 401 - Parameter error. Possible causes: *
1. Mandatory parameters are left unspecified. *
2. Incorrect parameters types. *
3. Parameter verification failed. * or check ExpectedFrameRateRange if valid. * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ setExpectedFrameRateRange(rateRange: ExpectedFrameRateRange) : void; /** * Registers a callback with the corresponding query condition by using the handle. * This callback is triggered when DisplaySync dispatching. * @param { 'frame' } type - The type of event to remove the listener for. Must be 'frame'. * @param { Callback } callback - The callback function to be called when DisplaySync dispatching. * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ on(type: 'frame', callback: Callback): void; /** * Deregisters a callback with the corresponding query condition by using the handle. * This callback is triggered when DisplaySync dispatching. * @param { 'frame' } type - The type of event to remove the listener for. Must be 'frame'. * @param { Callback } [callback] - The callback function to remove. If not provided, all callbacks for the given event type * will be removed. * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ off(type: 'frame', callback?: Callback): void; /** * Add DisplaySync to Pipeline. It means that * the callback function be enabled. * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ start(): void; /** * Delete DisplaySync from Pipeline. It means that * the callback function be disabled. * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ stop(): void; } /** * Create a new DisplaySync object. * @returns { DisplaySync } DisplaySync * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 11 */ function create(): DisplaySync; } export default displaySync;