diff options
author | Scott Lobdell <slobdell@google.com> | 2021-04-25 19:53:06 +0000 |
---|---|---|
committer | Rob Seymour <rseymour@google.com> | 2021-05-06 22:32:25 +0000 |
commit | afbe732519a96ff0a42a1c98bd59fd04080b4a96 (patch) | |
tree | 9ca836d438ca47756e4761ee4b844b85bd7e8857 /include | |
parent | 7a303d6e8135bbd0a32075986c9f7083e0fbef23 (diff) | |
parent | 7132116dfd8bdb9c5b505db8d8a27526a4e889d8 (diff) |
Merge SP1A.210425.001
Change-Id: I219cc0af128876534b77a72c36979fa1fe08ba13
Diffstat (limited to 'include')
-rw-r--r-- | include/android/bitmap.h | 1 | ||||
-rw-r--r-- | include/android/choreographer.h | 5 | ||||
-rw-r--r-- | include/android/font.h | 6 | ||||
-rw-r--r-- | include/android/font_matcher.h | 14 | ||||
-rw-r--r-- | include/android/imagedecoder.h | 47 | ||||
-rw-r--r-- | include/android/sensor.h | 47 | ||||
-rw-r--r-- | include/android/sharedmem.h | 10 | ||||
-rw-r--r-- | include/android/surface_control.h | 72 | ||||
-rw-r--r-- | include/android/surface_texture.h | 8 | ||||
-rw-r--r-- | include/android/thermal.h | 8 | ||||
-rw-r--r-- | include/android/trace.h | 2 | ||||
-rw-r--r-- | include/android/window.h | 5 |
12 files changed, 160 insertions, 65 deletions
diff --git a/include/android/bitmap.h b/include/android/bitmap.h index a70dffd756..6704a1ddf2 100644 --- a/include/android/bitmap.h +++ b/include/android/bitmap.h @@ -241,6 +241,7 @@ typedef struct AHardwareBuffer AHardwareBuffer; * * Available since API level 30. * + * @param env Handle to the JNI environment pointer. * @param bitmap Handle to an android.graphics.Bitmap. * @param outBuffer On success, is set to a pointer to the * {@link AHardwareBuffer} associated with bitmap. This acquires diff --git a/include/android/choreographer.h b/include/android/choreographer.h index cc5420e239..b743f491e4 100644 --- a/include/android/choreographer.h +++ b/include/android/choreographer.h @@ -32,6 +32,11 @@ __BEGIN_DECLS struct AChoreographer; +/** + * Opaque type that provides access to an AChoreographer object. + * + * A pointer can be obtained using {@link AChoreographer_getInstance()}. + */ typedef struct AChoreographer AChoreographer; /** diff --git a/include/android/font.h b/include/android/font.h index a172618829..8a3a474f25 100644 --- a/include/android/font.h +++ b/include/android/font.h @@ -189,7 +189,7 @@ const char* _Nonnull AFont_getFontFilePath(const AFont* _Nonnull font) __INTRODU * Available since API level 29. * * \param font a font object. Passing NULL is not allowed. - * \return a positive integer less than or equal to {@link ASYSTEM_FONT_MAX_WEIGHT} is returned. + * \return a positive integer less than or equal to {@link AFONT_WEIGHT_MAX} is returned. */ uint16_t AFont_getWeight(const AFont* _Nonnull font) __INTRODUCED_IN(29); @@ -241,7 +241,7 @@ size_t AFont_getCollectionIndex(const AFont* _Nonnull font) __INTRODUCED_IN(29); * In this case, AFont_getAxisCount returns 2 and AFont_getAxisTag * and AFont_getAxisValue will return following values. * \code{.cpp} - * AFont* font = AFontIterator_next(ite); + * AFont* font = ASystemFontIterator_next(ite); * * // Returns the number of axes * AFont_getAxisCount(font); // Returns 2 @@ -289,7 +289,7 @@ uint32_t AFont_getAxisTag(const AFont* _Nonnull font, uint32_t axisIndex) * * \param font a font object. Passing NULL is not allowed. * \param axisIndex an index to the font variation settings. Passing value larger than or - * equal to {@link ASYstemFont_getAxisCount} is not allwed. + * equal to {@link AFont_getAxisCount} is not allowed. * \return a float value for the given font variation setting. */ float AFont_getAxisValue(const AFont* _Nonnull font, uint32_t axisIndex) diff --git a/include/android/font_matcher.h b/include/android/font_matcher.h index 49e478c2f3..4417422687 100644 --- a/include/android/font_matcher.h +++ b/include/android/font_matcher.h @@ -36,7 +36,7 @@ * // Simple font query for the ASCII character. * std::vector<uint16_t> text = { 'A' }; * AFontMatcher* matcher = AFontMatcher_create("sans-serif"); - * ASystemFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); + * AFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); * // runLength will be 1 and the font will points a valid font file. * AFontMatcher_destroy(matcher); * @@ -44,17 +44,17 @@ * std::vector<uint16_t> text = { 0x9AA8 }; * AFontMatcher* matcher = AFontMatcher_create("sans-serif"); * AFontMatcher_setLocales(matcher, "zh-CN,ja-JP"); - * ASystemFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); + * AFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); * // runLength will be 1 and the font will points a Simplified Chinese font. * AFontMatcher_setLocales(matcher, "ja-JP,zh-CN"); - * ASystemFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); + * AFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); * // runLength will be 1 and the font will points a Japanese font. * AFontMatcher_destroy(matcher); * * // Querying font for text/color emoji * std::vector<uint16_t> text = { 0xD83D, 0xDC68, 0x200D, 0x2764, 0xFE0F, 0x200D, 0xD83D, 0xDC68 }; * AFontMatcher* matcher = AFontMatcher_create("sans-serif"); - * ASystemFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); + * AFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); * // runLength will be 8 and the font will points a color emoji font. * AFontMatcher_destroy(matcher); * @@ -62,7 +62,7 @@ * // 0x05D0 is a Hebrew character and 0x0E01 is a Thai character. * std::vector<uint16_t> text = { 0x05D0, 0x0E01 }; * AFontMatcher* matcher = AFontMatcher_create("sans-serif"); - * ASystemFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); + * AFont* font = AFontMatcher_match(text.data(), text.length(), &runLength); * // runLength will be 1 and the font will points a Hebrew font. * AFontMatcher_destroy(matcher); * \endcode @@ -146,7 +146,7 @@ void AFontMatcher_destroy(AFontMatcher* _Nonnull matcher) __INTRODUCED_IN(29); /** * Set font style to matcher. * - * If this function is not called, the matcher performs with {@link ASYSTEM_FONT_WEIGHT_NORMAL} + * If this function is not called, the matcher performs with {@link AFONT_WEIGHT_NORMAL} * with non-italic style. * * Available since API level 29. @@ -206,7 +206,7 @@ void AFontMatcher_setFamilyVariant( * \param textLength a length of the given text buffer. This must not be zero. * \param runLengthOut if not null, the font run length will be filled. * \return a font to be used for given text and params. You need to release the returned font by - * ASystemFont_close when it is no longer needed. + * AFont_close when it is no longer needed. */ AFont* _Nonnull AFontMatcher_match( const AFontMatcher* _Nonnull matcher, diff --git a/include/android/imagedecoder.h b/include/android/imagedecoder.h index ee1eee2be6..8d1bf99fe7 100644 --- a/include/android/imagedecoder.h +++ b/include/android/imagedecoder.h @@ -15,7 +15,7 @@ */ /** - * @defgroup ImageDecoder + * @defgroup ImageDecoder Android Image Decoder * * Functions for converting encoded images into RGBA pixels. * @@ -261,7 +261,8 @@ int AImageDecoder_createFromBuffer(const void* _Nonnull buffer, size_t length, /** * Delete the AImageDecoder. - * + * @param decoder {@link AImageDecoder} object created with one of AImageDecoder_createFrom... + * functions. * Available since API level 30. */ void AImageDecoder_delete(AImageDecoder* _Nullable decoder) __INTRODUCED_IN(30); @@ -276,6 +277,7 @@ void AImageDecoder_delete(AImageDecoder* _Nullable decoder) __INTRODUCED_IN(30); * Available since API level 30. * * @param format {@link AndroidBitmapFormat} to use for the output. + * @param decoder an {@link AImageDecoder} object. * @return {@link ANDROID_IMAGE_DECODER_SUCCESS} on success or a value * indicating the reason for the failure. On failure, the * {@link AImageDecoder} uses the format it was already planning @@ -307,6 +309,7 @@ int AImageDecoder_setAndroidBitmapFormat(AImageDecoder* _Nonnull decoder, * * Available since API level 30. * + * @param decoder an {@link AImageDecoder} object. * @param unpremultipliedRequired Pass true to leave the pixels unpremultiplied. * @return {@link ANDROID_IMAGE_DECODER_SUCCESS} on success or a value * indicating the reason for the failure. @@ -335,6 +338,7 @@ int AImageDecoder_setUnpremultipliedRequired(AImageDecoder* _Nonnull decoder, * * Available since API level 30. * + * @param decoder an {@link AImageDecoder} object. * @param dataspace The {@link ADataSpace} to decode into. An ADataSpace * specifies how to interpret the colors. By default, * AImageDecoder will decode into the ADataSpace specified by @@ -373,6 +377,7 @@ int AImageDecoder_setDataSpace(AImageDecoder* _Nonnull decoder, int32_t dataspac * * Available since API level 30. * + * @param decoder an {@link AImageDecoder} object. * @param width Width of the output (prior to cropping). * This will affect future calls to * {@link AImageDecoder_getMinimumStride}, which will now return @@ -404,6 +409,7 @@ int AImageDecoder_setTargetSize(AImageDecoder* _Nonnull decoder, int32_t width, * * Available since API level 30. * + * @param decoder an {@link AImageDecoder} object. * @param sampleSize A subsampling rate of the original image. Must be greater * than or equal to 1. A sampleSize of 2 means to skip every * other pixel/line, resulting in a width and height that are @@ -437,6 +443,7 @@ int AImageDecoder_computeSampledSize(const AImageDecoder* _Nonnull decoder, int * * Available since API level 30. * + * @param decoder an {@link AImageDecoder} object. * @param crop Rectangle describing a crop of the decode. It must be contained inside of * the (possibly scaled, by {@link AImageDecoder_setTargetSize}) * image dimensions. This will affect future calls to @@ -475,6 +482,8 @@ typedef struct AImageDecoderHeaderInfo AImageDecoderHeaderInfo; * This is owned by the {@link AImageDecoder} and will be destroyed when the * AImageDecoder is destroyed via {@link AImageDecoder_delete}. * + * @param decoder an {@link AImageDecoder} object. + * * Available since API level 30. */ const AImageDecoderHeaderInfo* _Nonnull AImageDecoder_getHeaderInfo( @@ -562,7 +571,7 @@ int32_t AImageDecoderHeaderInfo_getDataSpace( /** * Return the minimum stride that can be used in - * {@link AImageDecoder_decodeImage). + * {@link AImageDecoder_decodeImage}. * * This stride provides no padding, meaning it will be exactly equal to the * width times the number of bytes per pixel for the {@link AndroidBitmapFormat} @@ -571,6 +580,8 @@ int32_t AImageDecoderHeaderInfo_getDataSpace( * If the output is scaled (via {@link AImageDecoder_setTargetSize}) and/or * cropped (via {@link AImageDecoder_setCrop}), this takes those into account. * + * @param decoder an {@link AImageDecoder} object. + * * Available since API level 30. */ size_t AImageDecoder_getMinimumStride(AImageDecoder* _Nonnull decoder) __INTRODUCED_IN(30); @@ -664,6 +675,8 @@ int AImageDecoder_decodeImage(AImageDecoder* _Nonnull decoder, * A single frame GIF is considered to *not* be animated. This may require * seeking past the first frame to verify whether there is a following frame. * + * @param decoder an {@link AImageDecoder} object. + * * Errors: * - returns false if |decoder| is null. */ @@ -671,7 +684,7 @@ bool AImageDecoder_isAnimated(AImageDecoder* _Nonnull decoder) __INTRODUCED_IN(31); enum { - /* + /** * Reported by {@link AImageDecoder_getRepeatCount} if the * animation should repeat forever. * @@ -696,6 +709,7 @@ enum { * an image with only one frame (i.e. {@link AImageDecoder_isAnimated} returns * false) if the encoded image contains a repeat count. * + * @param decoder an {@link AImageDecoder} object. * @return Number of times to repeat on success or a value * indicating the reason for the failure. * @@ -725,6 +739,7 @@ int32_t AImageDecoder_getRepeatCount(AImageDecoder* _Nonnull decoder) * skipping frames in an image with such frames may not produce the correct * results. * + * @param decoder an {@link AImageDecoder} object. * @return {@link ANDROID_IMAGE_DECODER_SUCCESS} on success or a value * indicating the reason for the failure. * @@ -755,6 +770,7 @@ int AImageDecoder_advanceFrame(AImageDecoder* _Nonnull decoder) * the end of the animation or an error or in the middle of the * animation. * + * @param decoder an {@link AImageDecoder} object. * @return {@link ANDROID_IMAGE_DECODER_SUCCESS} on success or a value * indicating the reason for the failure. * @@ -847,7 +863,7 @@ int64_t AImageDecoderFrameInfo_getDuration( /** * The rectangle of the image (within 0, 0, - * {@link AImageDecoder_getWidth}, {@link AImageDecoder_getHeight}) + * {@link AImageDecoderHeaderInfo_getWidth}, {@link AImageDecoderHeaderInfo_getHeight}) * updated by this frame. * * Introduced in API 31. @@ -905,15 +921,15 @@ bool AImageDecoderFrameInfo_hasAlphaWithinBounds( * sequential client does not need this. */ enum { - // No disposal. The following frame will be drawn directly - // on top of this one. + /// No disposal. The following frame will be drawn directly + /// on top of this one. ANDROID_IMAGE_DECODER_DISPOSE_OP_NONE = 1, - // The frame’s rectangle is cleared to transparent (by AImageDecoder) - // before decoding the next frame. + /// The frame’s rectangle is cleared to transparent (by AImageDecoder) + /// before decoding the next frame. ANDROID_IMAGE_DECODER_DISPOSE_OP_BACKGROUND = 2, - // The frame’s rectangle is reverted to the prior frame before decoding - // the next frame. This is handled by AImageDecoder, unless - // {@link AImageDecoder_setInternallyHandleDisposePrevious} is set to false. + /// The frame’s rectangle is reverted to the prior frame before decoding + /// the next frame. This is handled by AImageDecoder, unless + /// {@link AImageDecoder_setInternallyHandleDisposePrevious} is set to false. ANDROID_IMAGE_DECODER_DISPOSE_OP_PREVIOUS = 3, }; @@ -948,10 +964,10 @@ int32_t AImageDecoderFrameInfo_getDisposeOp( * sequential client does not need this. */ enum { - // This frame replaces existing content. This corresponds - // to webp’s “do not blend”. + /// This frame replaces existing content. This corresponds + /// to webp’s “do not blend”. ANDROID_IMAGE_DECODER_BLEND_OP_SRC = 1, - // This frame blends with the previous frame. + /// This frame blends with the previous frame. ANDROID_IMAGE_DECODER_BLEND_OP_SRC_OVER = 2, }; @@ -1002,6 +1018,7 @@ int32_t AImageDecoderFrameInfo_getBlendOp( * When asked to decode frame i+1, AImageDecoder will now assume that * the client provided i-1 in |pixels|. * + * @param decoder an {@link AImageDecoder} object. * @param handleInternally Whether AImageDecoder will internally * handle ANDROID_IMAGE_DECODER_DISPOSE_OP_PREVIOUS * frames. diff --git a/include/android/sensor.h b/include/android/sensor.h index 92b79c75ff..9dc6983e50 100644 --- a/include/android/sensor.h +++ b/include/android/sensor.h @@ -228,8 +228,8 @@ enum { * * If a device supports the sensor additional information feature, it will * report additional information events via {@link ASensorEvent} and will - * have {@link ASensorEvent#type} set to - * {@link ASENSOR_TYPE_ADDITIONAL_INFO} and {@link ASensorEvent#sensor} set + * have the type of {@link ASensorEvent} set to + * {@link ASENSOR_TYPE_ADDITIONAL_INFO} and the sensor of {@link ASensorEvent} set * to the handle of the reporting sensor. * * Additional information reports consist of multiple frames ordered by @@ -428,6 +428,10 @@ typedef struct ADynamicSensorEvent { } ADynamicSensorEvent; typedef struct AAdditionalInfoEvent { + /** + * Event type, such as ASENSOR_ADDITIONAL_INFO_BEGIN, ASENSOR_ADDITIONAL_INFO_END and others. + * Refer to {@link ASENSOR_TYPE_ADDITIONAL_INFO} for the expected reporting behavior. + */ int32_t type; int32_t serial; union { @@ -436,12 +440,22 @@ typedef struct AAdditionalInfoEvent { }; } AAdditionalInfoEvent; +/** + * Information that describes a sensor event, refer to + * <a href="/reference/android/hardware/SensorEvent">SensorEvent</a> for additional + * documentation. + */ /* NOTE: changes to this struct has to be backward compatible */ typedef struct ASensorEvent { int32_t version; /* sizeof(struct ASensorEvent) */ - int32_t sensor; - int32_t type; - int32_t reserved0; + int32_t sensor; /** The sensor that generates this event */ + int32_t type; /** Sensor type for the event, such as {@link ASENSOR_TYPE_ACCELEROMETER} */ + int32_t reserved0; /** do not use */ + /** + * The time in nanoseconds at which the event happened, and its behavior + * is identical to <a href="/reference/android/hardware/SensorEvent#timestamp"> + * SensorEvent::timestamp</a> in Java API. + */ int64_t timestamp; union { union { @@ -653,9 +667,10 @@ int ASensorManager_createHardwareBufferDirectChannel( /** * Destroy a direct channel * - * Destroy a direct channel previously created using {@link ASensorManager_createDirectChannel}. - * The buffer used for creating direct channel does not get destroyed with - * {@link ASensorManager_destroy} and has to be close or released separately. + * Destroy a direct channel previously created by using one of + * ASensorManager_create*DirectChannel() derivative functions. + * Note that the buffer used for creating the direct channel does not get destroyed with + * ASensorManager_destroyDirectChannel and has to be closed or released separately. * * Available since API level 26. * @@ -701,7 +716,7 @@ void ASensorManager_destroyDirectChannel(ASensorManager* manager, int channelId) * \param channelId channel id (a positive integer) returned from * {@link ASensorManager_createSharedMemoryDirectChannel} or * {@link ASensorManager_createHardwareBufferDirectChannel}. - * + * \param rate one of predefined ASENSOR_DIRECT_RATE_... that is supported by the sensor. * \return positive token for success or negative error code. */ int ASensorManager_configureDirectReport(ASensorManager* manager, @@ -718,7 +733,7 @@ int ASensorManager_configureDirectReport(ASensorManager* manager, * \param queue {@link ASensorEventQueue} for sensor event to be report to. * \param sensor {@link ASensor} to be enabled. * \param samplingPeriodUs sampling period of sensor in microseconds. - * \param maxBatchReportLatencyus maximum time interval between two batch of sensor events are + * \param maxBatchReportLatencyUs maximum time interval between two batches of sensor events are * delievered in microseconds. For sensor streaming, set to 0. * \return 0 on success or a negative error code on failure. */ @@ -778,7 +793,7 @@ int ASensorEventQueue_hasEvents(ASensorEventQueue* queue); * Retrieve next available events from the queue to a specified event array. * * \param queue {@link ASensorEventQueue} to get events from - * \param events pointer to an array of {@link ASensorEvents}. + * \param events pointer to an array of {@link ASensorEvent}. * \param count max number of event that can be filled into array event. * \return number of events returned on success; negative error code when * no events are pending or an error has occurred. @@ -798,7 +813,7 @@ ssize_t ASensorEventQueue_getEvents(ASensorEventQueue* queue, ASensorEvent* even * Request that {@link ASENSOR_TYPE_ADDITIONAL_INFO} events to be delivered on * the given {@link ASensorEventQueue}. * - * Sensor data events are always delivered to the {@ASensorEventQueue}. + * Sensor data events are always delivered to the {@link ASensorEventQueue}. * * The {@link ASENSOR_TYPE_ADDITIONAL_INFO} events will be returned through * {@link ASensorEventQueue_getEvents}. The client is responsible for checking @@ -890,7 +905,7 @@ bool ASensor_isWakeUpSensor(ASensor const* sensor) __INTRODUCED_IN(21); * * \param sensor a {@link ASensor} to denote the sensor to be checked. * \param channelType Channel type constant, either - * {@ASENSOR_DIRECT_CHANNEL_TYPE_SHARED_MEMORY} + * {@link ASENSOR_DIRECT_CHANNEL_TYPE_SHARED_MEMORY} * or {@link ASENSOR_DIRECT_CHANNEL_TYPE_HARDWARE_BUFFER}. * \returns true if sensor supports the specified direct channel type. */ @@ -913,15 +928,15 @@ int ASensor_getHighestDirectReportRateLevel(ASensor const* sensor) __INTRODUCED_ * Returns the sensor's handle. * * The handle identifies the sensor within the system and is included in the - * {@link ASensorEvent#sensor} field of sensor events, including those sent with type + * sensor field of {@link ASensorEvent}, including those sent with type * {@link ASENSOR_TYPE_ADDITIONAL_INFO}. * * A sensor's handle is able to be used to map {@link ASENSOR_TYPE_ADDITIONAL_INFO} events to the * sensor that generated the event. * * It is important to note that the value returned by {@link ASensor_getHandle} is not the same as - * the value returned by the Java API {@link android.hardware.Sensor#getId} and no mapping exists - * between the values. + * the value returned by the Java API <a href="/reference/android/hardware/Sensor#getId()"> + * android.hardware.Sensor's getId()</a> and no mapping exists between the values. * * Available since API level 29. */ diff --git a/include/android/sharedmem.h b/include/android/sharedmem.h index 7994aa9914..e0a8045d41 100644 --- a/include/android/sharedmem.h +++ b/include/android/sharedmem.h @@ -59,9 +59,10 @@ extern "C" { * * Use close() to release the shared memory region. * - * Use {@link android.os.ParcelFileDescriptor} to pass the file descriptor to - * another process. File descriptors may also be sent to other processes over a Unix domain - * socket with sendmsg and SCM_RIGHTS. See sendmsg(3) and cmsg(3) man pages for more information. + * Use <a href="/reference/android/os/ParcelFileDescriptor">android.os.ParcelFileDescriptor</a> + * to pass the file descriptor to another process. File descriptors may also be sent to other + * processes over a Unix domain socket with sendmsg and SCM_RIGHTS. See sendmsg(3) and + * cmsg(3) man pages for more information. * * If you intend to share this file descriptor with a child process after * calling exec(3), note that you will need to use fcntl(2) with FD_SETFD @@ -71,7 +72,8 @@ extern "C" { * * \param name an optional name. * \param size size of the shared memory region - * \return file descriptor that denotes the shared memory; -1 and sets errno on failure, or -EINVAL if the error is that size was 0. + * \return file descriptor that denotes the shared memory; + * -1 and sets errno on failure, or -EINVAL if the error is that size was 0. */ int ASharedMemory_create(const char *name, size_t size) __INTRODUCED_IN(26); diff --git a/include/android/surface_control.h b/include/android/surface_control.h index c5e3587517..b7eafcd6cd 100644 --- a/include/android/surface_control.h +++ b/include/android/surface_control.h @@ -147,6 +147,28 @@ typedef struct ASurfaceTransactionStats ASurfaceTransactionStats; typedef void (*ASurfaceTransaction_OnComplete)(void* context, ASurfaceTransactionStats* stats) __INTRODUCED_IN(29); + +/** + * The ASurfaceTransaction_OnCommit callback is invoked when transaction is applied and the updates + * are ready to be presented. This callback will be invoked before the + * ASurfaceTransaction_OnComplete callback. + * + * \param context Optional context provided by the client that is passed into the callback. + * + * \param stats Opaque handle that can be passed to ASurfaceTransactionStats functions to query + * information about the transaction. The handle is only valid during the callback. + * Present and release fences are not available for this callback. Querying them using + * ASurfaceTransactionStats_getPresentFenceFd and ASurfaceTransactionStats_getPreviousReleaseFenceFd + * will result in failure. + * + * THREADING + * The transaction committed callback can be invoked on any thread. + * + * Available since API level 31. + */ +typedef void (*ASurfaceTransaction_OnCommit)(void* context, ASurfaceTransactionStats* stats) + __INTRODUCED_IN(31); + /** * Returns the timestamp of when the frame was latched by the framework. Once a frame is * latched by the framework, it is presented at the following hardware vsync. @@ -161,6 +183,8 @@ int64_t ASurfaceTransactionStats_getLatchTime(ASurfaceTransactionStats* surface_ * The recipient of the callback takes ownership of the fence and is responsible for closing * it. If a device does not support present fences, a -1 will be returned. * + * This query is not valid for ASurfaceTransaction_OnCommit callback. + * * Available since API level 29. */ int ASurfaceTransactionStats_getPresentFenceFd(ASurfaceTransactionStats* surface_transaction_stats) @@ -218,6 +242,8 @@ int64_t ASurfaceTransactionStats_getAcquireTime(ASurfaceTransactionStats* surfac * The client must ensure that all pending refs on a buffer are released before attempting to reuse * this buffer, otherwise synchronization errors may occur. * + * This query is not valid for ASurfaceTransaction_OnCommit callback. + * * Available since API level 29. */ int ASurfaceTransactionStats_getPreviousReleaseFenceFd( @@ -236,6 +262,16 @@ void ASurfaceTransaction_setOnComplete(ASurfaceTransaction* transaction, void* c ASurfaceTransaction_OnComplete func) __INTRODUCED_IN(29); /** + * Sets the callback that will be invoked when the updates from this transaction are applied and are + * ready to be presented. This callback will be invoked before the ASurfaceTransaction_OnComplete + * callback. + * + * Available since API level 31. + */ +void ASurfaceTransaction_setOnCommit(ASurfaceTransaction* transaction, void* context, + ASurfaceTransaction_OnCommit func) __INTRODUCED_IN(31); + +/** * Reparents the \a surface_control from its old parent to the \a new_parent surface control. * Any children of the reparented \a surface_control will remain children of the \a surface_control. * @@ -329,39 +365,53 @@ void ASurfaceTransaction_setGeometry(ASurfaceTransaction* transaction, __INTRODUCED_IN(29); /** - * \param source The sub-rect within the buffer's content to be rendered inside the surface's area - * The surface's source rect is clipped by the bounds of its current buffer. The source rect's width - * and height must be > 0. + * Bounds the surface and its children to the bounds specified. The crop and buffer size will be + * used to determine the bounds of the surface. If no crop is specified and the surface has no + * buffer, the surface bounds is only constrained by the size of its parent bounds. + * + * \param crop The bounds of the crop to apply. * * Available since API level 31. */ -void ASurfaceTransaction_setSourceRect(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, const ARect& source) +void ASurfaceTransaction_setCrop(ASurfaceTransaction* transaction, + ASurfaceControl* surface_control, const ARect& crop) __INTRODUCED_IN(31); /** - * \param destination Specifies the rect in the parent's space where this surface will be drawn. The - * post source rect bounds are scaled to fit the destination rect. The surface's destination rect is - * clipped by the bounds of its parent. The destination rect's width and height must be > 0. + * Specifies the position in the parent's space where the surface will be drawn. + * + * \param x The x position to render the surface. + * \param y The y position to render the surface. * * Available since API level 31. */ void ASurfaceTransaction_setPosition(ASurfaceTransaction* transaction, - ASurfaceControl* surface_control, const ARect& destination) + ASurfaceControl* surface_control, int32_t x, int32_t y) __INTRODUCED_IN(31); /** * \param transform The transform applied after the source rect is applied to the buffer. This - * parameter should be set to 0 for no transform. To specify a transfrom use the + * parameter should be set to 0 for no transform. To specify a transform use the * NATIVE_WINDOW_TRANSFORM_* enum. * * Available since API level 31. */ -void ASurfaceTransaction_setTransform(ASurfaceTransaction* transaction, +void ASurfaceTransaction_setBufferTransform(ASurfaceTransaction* transaction, ASurfaceControl* surface_control, int32_t transform) __INTRODUCED_IN(31); /** + * Sets an x and y scale of a surface with (0, 0) as the centerpoint of the scale. + * + * \param xScale The scale in the x direction. Must be greater than 0. + * \param yScale The scale in the y direction. Must be greater than 0. + * + * Available since API level 31. + */ +void ASurfaceTransaction_setScale(ASurfaceTransaction* transaction, + ASurfaceControl* surface_control, float xScale, float yScale) + __INTRODUCED_IN(31); +/** * Parameter for ASurfaceTransaction_setBufferTransparency(). */ enum { diff --git a/include/android/surface_texture.h b/include/android/surface_texture.h index 4757254cc0..9ae211ea14 100644 --- a/include/android/surface_texture.h +++ b/include/android/surface_texture.h @@ -86,8 +86,8 @@ ANativeWindow* ASurfaceTexture_acquireANativeWindow(ASurfaceTexture* st) __INTRO /** * Attach the SurfaceTexture to the OpenGL ES context that is current on the calling thread. A * new OpenGL ES texture object is created and populated with the SurfaceTexture image frame - * that was current at the time of the last call to {@link #detachFromGLContext}. This new - * texture is bound to the GL_TEXTURE_EXTERNAL_OES texture target. + * that was current at the time of the last call to {@link ASurfaceTexture_detachFromGLContext}. + * This new texture is bound to the GL_TEXTURE_EXTERNAL_OES texture target. * * This can be used to access the SurfaceTexture image contents from multiple OpenGL ES * contexts. Note, however, that the image contents are only accessible from one OpenGL ES @@ -106,8 +106,8 @@ int ASurfaceTexture_attachToGLContext(ASurfaceTexture* st, uint32_t texName) __I * Detach the SurfaceTexture from the OpenGL ES context that owns the OpenGL ES texture object. * This call must be made with the OpenGL ES context current on the calling thread. The OpenGL * ES texture object will be deleted as a result of this call. After calling this method all - * calls to {@link #updateTexImage} will fail until a successful call to {@link #attachToGLContext} - * is made. + * calls to {@link ASurfaceTexture_updateTexImage} will fail until a successful call to + * {@link ASurfaceTexture_attachToGLContext} is made. * * This can be used to access the SurfaceTexture image contents from multiple OpenGL ES * contexts. Note, however, that the image contents are only accessible from one OpenGL ES diff --git a/include/android/thermal.h b/include/android/thermal.h index 0ea13d3a8d..32580badc0 100644 --- a/include/android/thermal.h +++ b/include/android/thermal.h @@ -60,6 +60,10 @@ extern "C" { #endif +/** + * Thermal status used in function {@link AThermal_getCurrentThermalStatus} and + * {@link AThermal_StatusCallback}. + */ enum AThermalStatus { /** Error in thermal status. */ ATHERMAL_STATUS_ERROR = -1, @@ -194,10 +198,10 @@ int AThermal_unregisterThermalStatusListener(AThermalManager *manager, * * The value returned is a non-negative float that represents how much of the thermal envelope * is in use (or is forecasted to be in use). A value of 1.0 indicates that the device is - * (or will be) throttled at {@link #THERMAL_STATUS_SEVERE}. Such throttling can affect the + * (or will be) throttled at {@link #ATHERMAL_STATUS_SEVERE}. Such throttling can affect the * CPU, GPU, and other subsystems. Values may exceed 1.0, but there is no implied mapping * to specific thermal levels beyond that point. This means that values greater than 1.0 - * may correspond to {@link #THERMAL_STATUS_SEVERE}, but may also represent heavier throttling. + * may correspond to {@link #ATHERMAL_STATUS_SEVERE}, but may also represent heavier throttling. * * A value of 0.0 corresponds to a fixed distance from 1.0, but does not correspond to any * particular thermal status or temperature. Values on (0.0, 1.0] may be expected to scale diff --git a/include/android/trace.h b/include/android/trace.h index dcefffb20d..d11158bb74 100644 --- a/include/android/trace.h +++ b/include/android/trace.h @@ -91,7 +91,7 @@ void ATrace_beginAsyncSection(const char* sectionName, int32_t cookie) __INTRODU * * Available since API level 29. * - * \param methodName The method name to appear in the trace. + * \param sectionName The method name to appear in the trace. * \param cookie Unique identifier for distinguishing simultaneous events */ void ATrace_endAsyncSection(const char* sectionName, int32_t cookie) __INTRODUCED_IN(29); diff --git a/include/android/window.h b/include/android/window.h index 436bf3a830..c1448646b6 100644 --- a/include/android/window.h +++ b/include/android/window.h @@ -103,8 +103,9 @@ enum { * bar) while this window is displayed. This allows the window to * use the entire display space for itself -- the status bar will * be hidden when an app window with this flag set is on the top - * layer. A fullscreen window will ignore a value of {@link - * AWINDOW_SOFT_INPUT_ADJUST_RESIZE}; the window will stay + * layer. A fullscreen window will ignore a value of + * <a href="/reference/android/view/WindowManager.LayoutParams#SOFT_INPUT_ADJUST_RESIZE"> + * SOFT_INPUT_ADJUST_RESIZE</a>; the window will stay * fullscreen and will not resize. */ AWINDOW_FLAG_FULLSCREEN = 0x00000400, |