254 Commits

Author SHA1 Message Date
John Reck
1ce46f750a Add ability to make SyncFence from EGL
Bug: 217776226
Test: atest android.graphics.cts.EGL15Test#testEGL15AndroidNativeFence
Change-Id: I5e1356739831f63426521561c45e719fc5f419d9
2022-02-10 19:48:45 -05:00
Bob Badour
de423b7a58 [LSC] Add LOCAL_LICENSE_KINDS to frameworks/base
Added SPDX-license-identifier-Apache-2.0 to:
  drm/java/Android.bp
  graphics/java/Android.bp
  identity/Android.bp
  identity/java/Android.bp
  keystore/java/Android.bp
  location/java/Android.bp
  location/tests/Android.bp
  lowpan/java/Android.bp
  media/mca/effect/java/Android.bp
  media/mca/filterfw/java/Android.bp
  media/mca/filterpacks/java/Android.bp
  mime/java/Android.bp
  mms/java/Android.bp
  opengl/java/Android.bp
  rs/java/Android.bp
  sax/java/Android.bp
  services/tests/servicestests/test-apps/PackageParsingTestManifests/Android.bp
  telecomm/java/Android.bp
  telephony/common/Android.bp
  tests/FlickerTests/test-apps/Android.bp

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
  telephony/java/Android.bp

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all

Exempt-From-Owner-Approval: janitorial work
Change-Id: I2ee0af9ce8f74de2172b359b41d2c52a8b8f7e6c
2021-03-31 19:55:25 -07:00
Anton Hansson
9b2c4a650b Move framework java filegroups into subdirectories
All the java code used to build the framework jar and run metalava
was previously defined in the toplevel Android.bp files. Move these
into the subdirs where the source actually lives.

This simplifies the rules themselves (no path and needless prefix) and
declutters the top level Android.bp.

Test: m
Change-Id: I97086e309eacb879d16facb8497d9940fa5ddaf6
2021-03-30 12:26:55 +01:00
Jeff Sharkey
fab0ab3c9c Improve OWNERS coverage across frameworks/base/.
As general background, OWNERS files expedite code reviews by helping
code authors quickly find relevant reviewers, and they also ensure
that stakeholders are involved in code changes in their areas.

Some teams under frameworks/base/ have been using OWNERS files
successfully for many years, and we're ready to expand them to cover
more areas.  Here's the historical coverage statistics for the last
two years of changes before these new OWNERS changes land:

-- 56% of changes are fully covered by OWNERS
-- 17% of changes are partially covered by OWNERS
-- 25% of changes have no OWNERS coverage

Working closely with team leads, we've now identified clear OWNERS on
a per-package basis, and we're using "include" directives whenever
possible to to simplify future maintenance.  With this extensive
effort, we've now improved our coverage as follows:

-- 98% of changes are fully covered by OWNERS
-- 1% of changes are partially covered by OWNERS
-- 1% of changes have no OWNERS coverage

This specific change is automatically generated by a script from
detailed ownership information confirmed by team leads.

Bug: 174932174
Test: manual
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Merged-In: I9789c97c1de8e5d962b48c29c57d82fe83729eba
Change-Id: I9789c97c1de8e5d962b48c29c57d82fe83729eba
2020-12-08 08:36:27 -07:00
Mathew Inwood
5d123b6775 Add maxTargetSdk restriction to unused APIs.
These are APIs that have @UnsupportedAppUsage but for which we don't
have any evidence of them currently being used, so should be safe to
remove from the unsupported list.

Bug: 170729553
Test: Treehugger
Merged-In: I626caf7c1fe46c5ab1f39c2895b42a34319f771a
Change-Id: I54e5ecd11e76ca1de3c5893e3a98b0108e735413
2020-11-04 09:45:53 +00:00
Artur Satayev
9a5c3105dd Replace dalvik..UnsupportedAppUsage annotation.
The new annotation to be used is android.compat.annotation.UnsupportedAppUsage.

Test: m
Bug: 145132366
Change-Id: Ib2101605fb385b4f778893e5181a954dccbea037
Exempt-From-Owner-Approval: roll-forward previously approved change
2020-01-23 18:35:07 +00:00
Artur Satayev
2ebb31c00c Use new UnsupportedAppUsage annotation.
Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library.

Bug: 145132366
Test: m && diff unsupportedappusage_index.csv \
      git diff HEAD^ HEAD | grep '^[+-][^+-]' | grep -v '.import'

Change-Id: I853372f3c6fef905553bb31be4f1bb48df735f7a
2020-01-08 16:06:00 +00:00
Automerger Merge Worker
90dc909c3a Merge "Revert "Use new UnsupportedAppUsage annotation."" am: edf7ce4f38 am: 019286764f am: f6253ef435
Change-Id: Id33f64eb9c8aa7d68cc52f7359b4f0a3d2675d8a
2019-12-19 12:13:32 +00:00
Austin Wang
a63a2c0130 Revert "Use new UnsupportedAppUsage annotation."
This reverts commit a5264903e22bc741add895133474ea13a370de4c.

Reason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=git_master&target=sdk_phone_armv7-sdk&lkgb=6083299&lkbb=6085371&fkbb=6083313, bug b/146533269

Change-Id: Ie5b031d7b277cf0e09b0a9776b26bf74f5f69e70
2019-12-19 06:38:19 +00:00
Automerger Merge Worker
277353090c Merge "Use new UnsupportedAppUsage annotation." am: 1385dca8f6 am: 068a9faf3d am: c7f44bacbe
Change-Id: I30839db2fe99ba4670ec1b39d5e64540fdd15f69
2019-12-18 16:31:41 +00:00
Artur Satayev
a5264903e2 Use new UnsupportedAppUsage annotation.
Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library.

Bug: 145132366
Test: m && diff unsupportedappusage_index.csv \
      git diff HEAD^ HEAD | grep '^[+-][^+-]' | grep -v '.import'
Change-Id: I087bb1cecbe59f1cf0c2e770c735d7a433722c6f
2019-12-18 12:07:36 +00:00
Artur Satayev
751e55114c Add @UnsupportedAppUsage annotations for greylist.
go/cleanup-greylist-txt

These have already been greylisted, however due to bugs/omissions in the tooling have been kept in go/greylist-txt instead of being annotated in the code.

This is partial merge of aosp/Id6c1f5e403a0e66edb1102ee45f3bf19f244fb09. Telephony greylist cleanup has been done separately. Note that annotations outside of frameworks/base/ have been merged from AOSP.

Bug: 137350495
Test: m
Exempt-From-Owner-Approval: merge
Change-Id: I015c466e8b69cc0fed5e9d394ba865aad11d8ba6
2019-11-19 15:05:35 +00:00
Artur Satayev
fc46be7dbd Add @UnsupportedAppUsage annotations for greylist.
go/cleanup-greylist-txt

These have already been greylisted, however due to bugs/omissions in the tooling have been kept in go/greylist-txt instead of being annotated in the code.

Bug: 137350495
Test: m

Change-Id: Id6c1f5e403a0e66edb1102ee45f3bf19f244fb09
Merged-In: Id6c1f5e403a0e66edb1102ee45f3bf19f244fb09
2019-11-08 16:17:13 +00:00
Derek Sollenberger
9ca5bbe39f Create C API for accessing android.graphics.Bitmap in native code.
Restrict access to SkBitmap for libandroid_runtime.so to be only within
the boundaries of the graphics module.

Test: CtsUiRenderingTestCases
Bug: 137655431
Change-Id: I4d0ea227e91d22068966513c4e3a55021b9e924f
2019-09-10 14:50:02 -04:00
Courtney Goeltzenleuchter
43ef0c3d9b EGLAttrib requires special handling in JNI
EGLAttrib is defined for a C / C++ interface and is
intended to be the size of a pointer. That can change
depending on which abi the code is built for but Java doesn't
have a way of dealing with such types. Java defines EGLAttrib
as a jlong, so need to convert jlong to 32bit when running on
a 32bit device.

Bug: 124382141
Test: atest --all-abi CtsGraphicsTestCases:EGL15Test
Change-Id: I966f6a3716b2710e17d10e0d0cb58314853675e0
2019-04-04 11:02:54 -06:00
Leon Scroggins III
71fae62f5f Pass Bitmap's native instance to JNI where feasible
Test: CtsGraphicsTestCases, CtsUiRenderingTestCases,
      CtsRenderscriptTestCases

This is significantly faster than passing the Java object down and then
calling a JNI method to retrieve the pointer. See
https://buganizer.corp.google.com/issues/16656908#comment19

In some cases this changes what used to be native crashes (due to
android::BitmapWrapper:assertValid's LOG_ALWAYS_FATAL_IF) into
NullPointerExceptions (if a caller used a null Bitmap).

In addition:
- Remove unnecessary JNIEnv param from toBitmap(jlong)
- Change instances of toBitmap(JNIEnv*, jobject) to the above
- Replace calls to GraphicsJNI::getSkBitmap() to inline calls to
  toBitmap/getSkBitmap
- make Canvas#nInitRaster @FastNative (FIXME: Could these be
  @CriticalNative?)

Change-Id: I6194097be1b6e6952eba70e1e7052a5a250eed93
2019-03-27 13:39:23 -04:00
Courtney Goeltzenleuchter
986992f2cd Make EGL15 class final
Updates from API review feedback.
Bug: 118296391
Test: manually inspect code

Change-Id: If79f03497e77dfce65909a734bafbb6e08c39155
2018-10-24 09:25:55 -06:00
Courtney Goeltzenleuchter
6e8c60ccc1 Add EGL15: eglCreateImage, eglDestroyImage
Also change eglCreatePlatformPixmapSurface to throw an
unsupported extension rather than call the native function
which will return an error indicating it's unsupported.

Bug: 80297325
Test: atest CtsGraphicsTestCases:EGL15Test
Change-Id: I94f2d39678515fdacf9b2fccd1c531365930ad1b
2018-10-23 07:44:56 -06:00
Courtney Goeltzenleuchter
367ed8b190 Update to EGL 1.5
Test: compile
Bug: 80239516
Change-Id: I1c00ac5e55900260b724e1c298edca15f87f3a01
(cherry picked from commit 63584195b9d15daa9973d280381fd619cd7a0f89)
2018-10-16 14:10:20 -06:00
Mathew Inwood
b6c9782f5a Add @UnsupportedAppUsage annotations
For packages:
  javax.microedition.khronos.opengles
  javax.microedition.khronos.egl

This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.

Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@

Bug: 110868826
Test: m
Change-Id: I3615f60789c14c44284c896c3a9ea291100dff8e
2018-08-17 15:23:54 +01:00
Mathew Inwood
c04326d7ca Add @UnsupportedAppUsage annotations
For packages:
  android.opengl

This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.

Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@

Bug: 110868826
Test: m
Change-Id: I747cf5d5e6e211dc368545472fee65fd20cdae74
2018-08-09 17:38:56 +01:00
Mike Reed
287a1310ac remove unused private field
Test: CtsGraphicsTests

Change-Id: I611f5dc127636f67dc219ef15adc0a591a72a95e
2017-05-01 10:22:44 -04:00
John Reck
e7f4286c8a Workaround apps that override surfaceCreated
Fixes: 34512969
Test: manual, tested repro in bug and verified
basic GLSurfaceView usage in ApiDemos works
without warnings

Change-Id: I0ce9128874af681e9cfbd3b0b2ef5e2df7080154
2017-04-21 17:14:45 -07:00
Ricardo Loo
5e490d677a docs: Update gluUnProject parameter description. am: 232c4900ac am: cb6a5fc0f3 am: 94122af913
am: 7ade93fedf

Change-Id: Ifbdb0953222e7d2a5dd1a61ba1cf7880573563a2
2017-02-06 21:00:33 +00:00
Ricardo Loo
232c4900ac docs: Update gluUnProject parameter description.
Adding missing variable in the output vector.

Originally reported in
http://code.google.com/p/android/issues/detail?id=25143

Change-Id: I91d9ce7e53a9d9cdd890899a0edd49830d533b9b

Bug: 5991013
2017-02-03 18:40:27 -06:00
Kalle Raita
ebce2a7680 Add EGL_RECORDABLE_ANDROID enum in EGLExt
Test: CtsMediaTestCases on N5X
Bug: 29402583
Change-Id: I2520fdc51d363998d4404b033722fabf0d839113
2017-01-12 10:26:05 -08:00
Robert Carr
25cfa13483 Provide non-blocking SurfaceView draw notification path.
SurfaceView needs to notify the window manager that
drawing has been completed, so that animations and such
can begin. Currently this is implemented through
having the SurfaceView user block in surfaceRedrawNeeded
(called from  UI thread) until a frame has been completed.
This blocking can be unnecessary serialization during startup, and
also clumsy to implement for some users.

Test: GLSurfaceView and takeSurface API Demos, android.server.cts.SurfaceViewTests
Bug: 31850030
Change-Id: Idda02098a635f25cf392f2d59a3abbe54a1d64d4
2017-01-09 10:44:58 -08:00
Romain Guy
986af188b6 Guarantee that glMapBufferRange/glGetBufferPointv return a ByteBuffer
Bug: 24950082
Test: CtsGraphicsTestCases
Change-Id: I2835128bbd5d1b8a234324323c74eca6e55d8726
2016-11-30 17:14:57 -08:00
Romain Guy
1f071dd8c3 Deprecate eglCreatePixmapSurface
This function was never properly supported. It had partial support in our JNI
layer in EGL10 but not implementation in EGL14. It has never been tested and
it is unlikely that drivers support pixmap rendering.

Bug: 11257511
Test: CtsGraphicsTestCases
Change-Id: I209fff470c715cd97148a32b2f41ecf7e5283bab
2016-11-30 10:20:29 -08:00
John Reck
a6546e47d9 Merge \"Merge \\"update GlSurfaceView:onPause/Resume docs\\" into nyc-mr1-dev am: ee557b2b99\" into nyc-mr1-dev-plus-aosp
am: acfdf0eab5

Change-Id: I533118b55db988d8498b08806b3bb360b7a65deb
2016-07-01 22:09:47 +00:00
John Reck
cf89019e50 update GlSurfaceView:onPause/Resume docs
fixes: 22448595

Also delete some epically outdated code to
match the documented behavior

Change-Id: I2bb5b475433ebff8ca82db385e228fef11e32e20
2016-06-29 14:40:42 -07:00
Aurimas Liutikas
35ff3b3e9d Correct spelling error in GLSurfaceView.
Bug:
https://code.google.com/p/android/issues/detail?id=56762

Change-Id: I55f8000a6f29172dadd99221ad5ffe3789a3500a
2016-06-07 16:10:40 -07:00
John Reck
fd3cee138e Make surfaceRedrawNeeded forgiving
Fixes: 27071678

It's semi-common for apps to not realize surfaceRedrawNeeded
is a callback they can (and should) be handling, so have it be
more tolerant in lifecycle handling.

Specifically allow a renderer to have not yet been set on
GLSurfaceView, even though it was supposed to have been set already.
Apps are overriding the other lifecycle methods that require this
(created, changed, an destroyed) but not noticing this method.

Change-Id: I6cebca541eeec6e9949bdb55f687b095768a17b2
2016-04-18 13:26:48 -07:00
Pablo Ceballos
86a27f343c Merge "Fix glGetTransformFeedbackVarying JNI" into nyc-dev 2016-02-29 22:58:56 +00:00
Pablo Ceballos
68981ff03b Add glReadPixels with buffer-offset argument
- For reading into PBOs on GLES3, add an overloaded version of
  glReadPixels that takes an offset argument.

Bug 18878609

Change-Id: I744483deab6358a66b0dc5e87be1ae2b96560ac1
2016-02-22 11:50:31 -08:00
Pablo Ceballos
59fb43e7bd Fix glGetTransformFeedbackVarying JNI
- Deprecate the broken version that takes a byte argument.
- Implement a new version that takes a byte buffer argument.

Bug 19478262

Change-Id: I5ea4f11940e93b5964b66dbf5700b7ff8b80339e
2016-02-09 16:09:28 -08:00
Robert Carr
d4393b2897 Fix reentrant deadlock in GLSurfaceView.
It is possible for clients to call SurfaceView
methods e.g. setFormat from the GLSurfaceView#Renderer
drawFrame callback. In this case, SurfaceView#updatewindow
will understand that a redraw is required, and will request
it back to GLSurfaceView. Remember, we are still on the GLThread
though (from the drawFrame callback). So these methods
(requestRenderAndWait, windowSizeChanged), need to be reentrant.
Also fix a data race around mWantRenderNotification, which was
accessed out of lock.

Bug: 26770615
Change-Id: Ic66a36c886ae0b085dd456a4220f0d4f270fb016
2016-01-26 18:26:46 +00:00
Robert Carr
2b3bf720bf Implement surfaceRedrawNeeded for GLSurfaceView
GLSurfaceView was not supporting the surfaceRedrawNeeded protocol
which leads to issues with report draw. Thus far this has mostly
been fine as the main surface will not render
a transparent hole until the SurfaceView has finished drawing. However
in the case of SurfaceView replacement the hole in the parent surface
will be preexisting and we must be able to tell that our new SurfaceView
has actually drawn before removing the replacee. This is part of a
series of fixes to 26070641.

Bug: 26070641
Change-Id: Iecc16647f9979aa057449e8bafa540885881ed64
2016-01-08 15:13:54 -08:00
Pablo Ceballos
38c1a7e732 Add GLES32 class and JNI
Change-Id: I05ff0c14a35f51c2015edbd762dc9e6fe43347b9
2015-12-18 13:12:58 -08:00
Pablo Ceballos
dce45fd66b Merge "Add missing OpenGLES 3.1 bitfield constants." 2015-10-27 17:57:28 +00:00
Pablo Ceballos
a4d4e82927 Remove GLTrace support
GLTrace is defunct, it does not support newer GL features, breaks
security requirements, and has no supported tooling now that Eclipse
is at end of life.

Bug 22329852

Change-Id: I64c58464f8c2c7ae6125f5d5c7884e3fd34d68ea
2015-10-06 15:18:40 -07:00
Pablo Ceballos
3cdc93c6b4 Add missing OpenGLES 3.1 bitfield constants.
Bug 23892570

Change-Id: I92c7bb9bafb84259bdc42927193e989a6a95d4df
2015-09-29 23:25:54 +00:00
Chris Craik
59b429d106 Add tracing to GLSurfaceView
bug:21195272

Change-Id: I96bce6d6021fc720c73993202ba90997b0fc0e09
2015-06-08 17:40:00 -07:00
John Reck
f4faeac352 Cleanup Bitmap JNI attempt #2
Original version missed a spot

This reverts commit c02977e3bbfaaedcb1b1d67e1692becc7dddd59b.

Change-Id: I56244ce10d709fcdef42a001fe4c6ba7b6bbb04d
2015-03-05 13:56:16 -08:00
Chad Jones
c02977e3bb Revert "Cleanup Bitmap JNI"
This reverts commit b2915245b74b3b5541b123e38403f8e26426b4b7.

Change-Id: Idd7d7f33eec4ea5024c83de6b10d3d1a6ab2b17a
2015-03-05 19:34:26 +00:00
John Reck
b2915245b7 Cleanup Bitmap JNI
Fix a bunch of places where mNativeBitmap was being
poked at directly, switch them either to the NDK API
or to GraphicsJNI where it made sense

Change-Id: I6b3df3712d6497cba828c2d3012e725cb4ebb64d
2015-03-05 09:55:02 -08:00
John Reck
77e4a5250f Re-allow suppressing onDetachedFromWindow
Bug: 17578553

Games seem to be doing this to prevent destruction of their
GL contexts, and they assume it works even if it doesn't. However,
GLSurfaceView is clunky here, so while the app is doing something
questionable we don't really offer a better way. For now revert
back to kitkat behavior.

Change-Id: Icfa9e496279b9cfa47f9bc7f6848d9313caed0d5
2014-10-01 10:38:07 -07:00
John Reck
f47a594f52 Fix onTrimMemory for HardwareRenderer
Also fixes detachFunctor possibly drawing after return

 Bug: 15189843
 Bug: 15990672

Change-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3
2014-06-30 16:36:26 -07:00
Jesse Hall
61b2dfe224 opengl: Un-hide GLES31 and GLES31Ext classes
Bug: 15028495
Change-Id: Icda236ee12a06ef2eb9902253d272dee2b61f6ef
2014-05-21 21:04:20 -07:00
Jesse Hall
7ab63acdd0 opengl: Add GLES31 and GLES31Ext classes
Bug: 15028495
Change-Id: Ie967c1938060edb42864dd48efa668ae7bf5cd76
2014-05-21 21:04:20 -07:00