Loading cmds/dumpstate/dumpstate.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -793,6 +793,9 @@ void Dumpstate::PrintHeader() const { if (module_metadata_version != 0) { printf("Module Metadata version: %" PRId64 "\n", module_metadata_version); } printf("SDK extension versions [r=%s s=%s]\n", android::base::GetProperty("build.version.extensions.r", "-").c_str(), android::base::GetProperty("build.version.extensions.s", "-").c_str()); printf("Kernel: "); DumpFileToFd(STDOUT_FILENO, "", "/proc/version"); Loading cmds/installd/otapreopt_chroot.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,11 @@ static int otapreopt_chroot(const int argc, char **arg) { // want it for product APKs. Same notes as vendor above. TryExtraMount("product", arg[2], "/postinstall/product"); // Try to mount the system_ext partition. update_engine doesn't do this for // us, but we want it for system_ext APKs. Same notes as vendor and product // above. TryExtraMount("system_ext", arg[2], "/postinstall/system_ext"); constexpr const char* kPostInstallLinkerconfig = "/postinstall/linkerconfig"; // Try to mount /postinstall/linkerconfig. we will set it up after performing the chroot if (mount("tmpfs", kPostInstallLinkerconfig, "tmpfs", 0, nullptr) != 0) { Loading include/android/imagedecoder.h +32 −15 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ */ /** * @defgroup ImageDecoder * @defgroup ImageDecoder Android Image Decoder * * Functions for converting encoded images into RGBA pixels. * Loading Loading @@ -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); Loading @@ -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 Loading Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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( Loading Loading @@ -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} Loading @@ -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); Loading Loading @@ -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. */ Loading @@ -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. * Loading @@ -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. * Loading Loading @@ -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. * Loading Loading @@ -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. * Loading Loading @@ -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. Loading Loading @@ -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, }; Loading Loading @@ -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, }; Loading Loading @@ -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. Loading include/android/sensor.h +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -928,7 +928,7 @@ 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 Loading include/android/surface_texture.h +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading
cmds/dumpstate/dumpstate.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -793,6 +793,9 @@ void Dumpstate::PrintHeader() const { if (module_metadata_version != 0) { printf("Module Metadata version: %" PRId64 "\n", module_metadata_version); } printf("SDK extension versions [r=%s s=%s]\n", android::base::GetProperty("build.version.extensions.r", "-").c_str(), android::base::GetProperty("build.version.extensions.s", "-").c_str()); printf("Kernel: "); DumpFileToFd(STDOUT_FILENO, "", "/proc/version"); Loading
cmds/installd/otapreopt_chroot.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,11 @@ static int otapreopt_chroot(const int argc, char **arg) { // want it for product APKs. Same notes as vendor above. TryExtraMount("product", arg[2], "/postinstall/product"); // Try to mount the system_ext partition. update_engine doesn't do this for // us, but we want it for system_ext APKs. Same notes as vendor and product // above. TryExtraMount("system_ext", arg[2], "/postinstall/system_ext"); constexpr const char* kPostInstallLinkerconfig = "/postinstall/linkerconfig"; // Try to mount /postinstall/linkerconfig. we will set it up after performing the chroot if (mount("tmpfs", kPostInstallLinkerconfig, "tmpfs", 0, nullptr) != 0) { Loading
include/android/imagedecoder.h +32 −15 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ */ /** * @defgroup ImageDecoder * @defgroup ImageDecoder Android Image Decoder * * Functions for converting encoded images into RGBA pixels. * Loading Loading @@ -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); Loading @@ -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 Loading Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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( Loading Loading @@ -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} Loading @@ -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); Loading Loading @@ -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. */ Loading @@ -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. * Loading @@ -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. * Loading Loading @@ -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. * Loading Loading @@ -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. * Loading Loading @@ -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. Loading Loading @@ -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, }; Loading Loading @@ -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, }; Loading Loading @@ -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. Loading
include/android/sensor.h +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -928,7 +928,7 @@ 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 Loading
include/android/surface_texture.h +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading