summaryrefslogtreecommitdiffstats
path: root/opengl/java
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge "Make HardwareRenderer able to target generic Surface objects"Romain Guy2012-07-241-2/+3
|\
| * Make HardwareRenderer able to target generic Surface objectsRomain Guy2012-07-241-2/+3
| | | | | | | | Change-Id: I4b7199a1eb30e0df354ae12c4819adc69db5df40
* | updated gles20 bindings, fixes broken methodsThomas Tafertshofer2012-07-191-0/+42
|/ | | | | | | | | this adds correct versions of the broken GLES20 methods glGetShaderSource, glGetActiveAttrib and glGetActiveUniform. the old functions are still there and need to be @hide later. Bug: 6006380 Change-Id: I8127a77c4b89aa8a9a54bea88774077535e2139d
* EGL 1.4 API without @hideThomas Tafertshofer2012-07-136-64/+62
| | | | Change-Id: If03d23082b011aaba41594712601495dcbd70f6a
* EGL 1.4 bindings generated by glgenThomas Tafertshofer2012-07-106-0/+643
| | | | Change-Id: I1c3da57101f4ea089a12f1796f25b72d6852141e
* Improve GLSurfaceView Pausing.Jack Palevich2012-04-161-2/+12
| | | | | | | | | | | | | | | | | When pausing we want to do three separate things, in order: + release the EGL surface + optionally release the EGL context + optionally terminate Egl Previously we would only do these things if we had an EGL surface. But it is possible that we don't have an EGL Surface, but still have an EGL context. And in that situation we still want to release the EGL context. Now we check the preconditions for the three cases separately. Bug: 6338235 Change-Id: I804683b3d5c136cc98ea3f5051067eea18152ddf
* Notify monitor waiters when changing mSurfaceIsBad value.Jack Palevich2012-04-101-2/+9
| | | | | | | Otherwise the waiters might not wake up, leading to ANRs. Bug: 6307843 Change-Id: I0646b4e8368f80dbff46342f75709992796973fd
* Try to survive a failure return from eglMakeCurrent.Jack Palevich2012-03-291-14/+25
| | | | | | | | | | Assume a failure in eglMakeCurrent occurs because the SurfaceView surface has been destroyed. See b/6257956 for an example of this failure happening during rotation stress testing. Change-Id: I4618703b5291aba3a3f0c6bd83c3435a67b97d33
* Make GLSurfaceView handle eglSwapBuffers errors more robustly.Jack Palevich2012-03-291-34/+31
| | | | | | | | | | | | | | | | | | | | | | | | A careful reading of the EGL spec, as well as experience with many different EGL drivers, has shown that it is error prone to attempt to discriminate between different error conditions. We now treat any error besides EGL_CONTEXT_LOST as an indication that the EGL context is in a bad state, most likely due to the window manager having removed the underlying surface flinger surface. In addition, we changed the way we deal with this kind of error: Previously we would ignore the error and keep rendering. But if the EGL context and surface has become invalid, it would be better to stop drawing. We now stop drawing until the surface view surface is recreated. See b/6032663 for an example of this problem affecting the GMM app, but note that GMM is using their own version of GLSurfaceView, so this change won't help them directly. They'll have to make a similar change to their version of GLSurfaceView. Change-Id: Iffe3e1e3a3c7a91d03140fd34391eadeaecf777e Signed-off-by: Jack Palevich <jackpal@google.com>
* Merge "Package restrictions per user"Amith Yamasani2012-03-221-1/+2
|\
| * Package restrictions per userAmith Yamasani2012-03-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Packages can be enabled/disabled per user. This requires maintaining stopped/launched states and enabled / disabled components and packages per user. Refactored pm.Settings and PackageSettingsBase to keep track of states per user. Migrated the stopped-packages.xml to users/<u>/package-restrictions.xml Changed intent resolution to handle individual user restrictions. Bunch of IPackageManager calls now have a userId argument. Make AppWidgetService handle removals of packages. Added some tests for pm.Settings and PackageManager. Change-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861
* | Merge "Remove EGL context limit for Adreno GPUs."Jack Palevich2012-03-221-2/+6
|\ \
| * | Remove EGL context limit for Adreno GPUs.Jack Palevich2012-03-191-2/+6
| |/ | | | | | | | | | | | | | | | | | | | | | | This change allows Adreno GPUs to have multiple EGL contexts. We had to limit this in earlier versions of Android due to limitations in the Adreno GPU driver (only 8 EGL contexts allowed system wide.) That brand of GPU has improved its EGL drivers to support multiple EGL contexts in more recent versions of their drivers used on more recent versions of Android. Bug: 6142005 Change-Id: Id3030466be9a3d9fbe728f1785378c1f05da98fe
* | Ignore EGL_BAD_CURRENT_SURFACE errors from eglSwapBuffersJack Palevich2012-03-151-4/+8
|/ | | | | | | | | | | | | | | Certain EGL device drivers are generating this error, so we need to survive it. (It's not clear from the EGL spec whether this is a legitimate error code, but since it's being generated we need to handle it.) Remove logging of expected errors from elSwapBuffers. We expect these errors to happen, and are handeling them by ignoring them. No need to clutter the logs. Bug: 6083241 Change-Id: If17dcfbb68d3009b92cf95a448728ccb47023b51
* Expose a function to set OpenGL Trace level.Siva Velusamy2012-03-091-2/+11
| | | | | | | This patch adds a function setGlDebugLevel() to libEGL, and exposes it to the Java layer at android.opengl.GLUtils.enableTracing(). Change-Id: Ia5abb130bc32fcfe3ab25b0a0a5283a54c54f357
* Remove unused private APIsRomain Guy2012-02-174-655/+0
| | | | Change-Id: Ib22005c7ed9923120089a1f1c806bca55bb90967
* am ea54d0dc: am 723218b4: Merge "Hide ManagedEGLContext until we are sure ↵Romain Guy2011-11-211-0/+2
|\ | | | | | | | | | | | | this is the correct API." into ics-mr1 * commit 'ea54d0dc0dfeef5560fea04667804413d522025f': Hide ManagedEGLContext until we are sure this is the correct API.
| * Hide ManagedEGLContext until we are sure this is the correct API.Romain Guy2011-11-211-0/+2
| | | | | | | | Change-Id: If54942d342ca8ea348e10231b2aed3e5d3bd701b
* | am c26e4d18: am 8cd39e3a: Merge "Notify views when EGL resources are about ↵Romain Guy2011-11-211-3/+2
|\ \ | |/ | | | | | | | | | | to be destroyed Bug #5639899" into ics-mr1 * commit 'c26e4d18a20ab0b3e769fb3e547994f1c27d6713': Notify views when EGL resources are about to be destroyed Bug #5639899
| * Notify views when EGL resources are about to be destroyedRomain Guy2011-11-211-3/+2
| | | | | | | | | | | | Bug #5639899 Change-Id: I7c5d8bebf02294426f5b3ab1358a31c38a4fd064
* | am 0272e600: am a37a78e2: Merge "GLES: add image external enums" into ics-mr1Jamie Gennis2011-11-181-0/+4
|\ \ | |/ | | | | | | * commit '0272e60060162d2c32aec02d9cd1414dbbe14782': GLES: add image external enums
| * Merge "GLES: add image external enums" into ics-mr1Jamie Gennis2011-11-171-0/+4
| |\
| | * GLES: add image external enumsJamie Gennis2011-11-151-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This change adds Java definitions for the enums of the GL_OES_EGL_image_external OpenGL ES extension. Bug: 3482193 Change-Id: Ib50326f8be9b9cc9021753855c3846ddcdc5eaa2
* | | Merge "Fix potential GLThread / GLSurfaceView memory leak."Jack Palevich2011-11-171-51/+105
|\ \ \
| * | | Fix potential GLThread / GLSurfaceView memory leak.Jack Palevich2011-11-151-51/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now a leak was possible under the following scenario: Create a GLSurfaceView Register a renderer (this automatically starts a GLThread). Discard the GLSurfaceView without installing it in the view system. This scenario can occur when a device is rotated rapidly from orientation A to orientation B to orientation C. In that scenario, orientation B's GLSurfaceView might be discarded without ever being attached to a window. If this issue had been identified before GLSurfaceView had clients, one possible fix would have been to delay the construction of the GLThread until the GLSurfaceView was attached to a window. Unfortunately, it's too late, and so making that change would lead to observable changes in behavior, possibly breaking some clients. Instead, fixed by making GLThread and EGLHelper static classes that hold onto a weak reference to the GLSurfaceView. This allows the GLSurfaceView to be garbage collected when it is no longer used, even if the GLThread is active. GLSurfaceView's finalize method will manually stop the GLThread if it is still running when the GLSurfaceView exits. Part of this change was to remove the Renderer reference from GLThread, because Renderer is a user-supplied class that could contain a reference chain that points back to the GLSurfaceView. Fixes b/5606613 "GLSurfaceView that's never added to a window will leak threads and views, can leak activities" Change-Id: Iafdc329eb6e9e40062358e7c119f5547ffe23d5e
* | | | am 9aa6bd1c: am 717a25dc: Add new ManagedEGLContext class to help apps ↵Dianne Hackborn2011-11-171-0/+136
|\ \ \ \ | |/ / / |/| / / | |/ / | | | | | | | | | participate in memory trimming. * commit '9aa6bd1c34fe3583fe31f283a6415e84fec12567': Add new ManagedEGLContext class to help apps participate in memory trimming.
| * | Add new ManagedEGLContext class to help apps participate in memory trimming.Dianne Hackborn2011-11-161-0/+136
| |/ | | | | | | | | | | | | | | | | This class provides an API for an application to know when it is time to destroy its EGL context when memory is being trimmed. By having this in the framework, we can still detect whether it will be useful to destroy any EGL contexts (because we know if doing so will destroy all of them). Change-Id: I1eac8d640052778052926b875c7928008f752182
* | am cb0db030: Merge branch \'ics-mr1-plus-aosp\' of ↵Akwasi Boateng2011-11-113-1/+18
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ssh://android-git:29418/platform/frameworks/base into ics-mr1-plus-aosp * commit 'cb0db0306b5849a35d3d99eea1b34ce019c6f0d8': Make the overridden ImageView#setVisibility remotable Clamp non-monotonic stats instead of dropping. DO NOT MERGE. Fix leak in LayoutTransition Fix lastVisible/global rects Fix Wimax-less build. Fix leak in LayoutTransition Deferring wallpaper update to improve workspace scrolling (issue 5506959) Terminate EGL when an app goes in the background boot animation is dithered and scaled Fix NdefRecord byte-stream constructor. PopupWindow dismiss() can get into a recursive loop. Fold WiMAX state into the mobile RSSI. Remove dedicated wimax icon to fix RSSI layout.
| * Terminate EGL when an app goes in the backgroundRomain Guy2011-11-103-1/+18
| | | | | | | | | | | | | | | | This does not happen on high end gfx devices. This happens only if only one EGL context is initialized in the current process. Change-Id: Ibd1737efdf84eef8a84108b05795440d1ae9964e
* | Merge "Properly passing an unused variable through."Alex Sakhartchouk2011-11-071-1/+1
|\ \
| * | Properly passing an unused variable through.Alex Sakhartchouk2011-11-031-1/+1
| | | | | | | | | | | | Change-Id: Ie49b5855bfca4e202ed41b6167a899832e99d728
* | | am 74b2b954: am 09848bc8: Merge "docs: add developer guide cross references, ↵Joe Fernandez2011-10-313-1/+25
|\ \ \ | |/ / |/| / | |/ | | | | | | Project ACRE, round 3" into ics-mr0 * commit '74b2b9547329a0b05e0bd5701057696007b854bb': docs: add developer guide cross references, Project ACRE, round 3
| * am 09848bc8: Merge "docs: add developer guide cross references, Project ↵Joe Fernandez2011-10-293-1/+25
| |\ | | | | | | | | | | | | | | | | | | ACRE, round 3" into ics-mr0 * commit '09848bc89de999416e2de82a7693b2deec6bf802': docs: add developer guide cross references, Project ACRE, round 3
| | * docs: add developer guide cross references, Project ACRE, round 3Joe Fernandez2011-10-283-1/+25
| | | | | | | | | | | | Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
* | | Destroy and recreate the EGL surface when the surface size changes.Jack Palevich2011-10-281-30/+30
|/ / | | | | | | | | | | | | | | | | | | | | | | Details: + Split EGLHelper.createSurface into two methods. + Add a separate flag for specifying when to create the GlInterface. + destroy and recreate the EGL surface when the surface size changes + Remove no-longer-needed work-around for b/2263168. This fixes b/2263168 Change-Id: I0d2596527e3c8dabacdd8a8e427531eaefe7d266
* | Work around race condition when shutting down a surface flinger surface.Jack Palevich2011-10-141-3/+17
|/ | | | | | Works around b/4588890 Change-Id: Ie0cf1f212686aec93cda85bf112f4b7ab4197256
* Avoid allocating temporary memory for Matrix operations.Jack Palevich2011-09-201-80/+111
| | | | | | | Also fix a bug where Matrix.invertM was not returning false when the matrix could not be inverted. Change-Id: I68b172032093d9f257e88c802de936633bb4912c
* Add OpenGL backend to ImageWallpaperRomain Guy2011-08-241-1/+48
| | | | | | | | Bug #5204874 Currently disabled. Change-Id: I5e7b35dce2981b0691f107e39c6394b260466543
* fix an issue where the screen could be stale after a surface size changeMathias Agopian2011-08-011-0/+10
| | | | | | | | | | | | | | | | | | some GLES drivers dequeue buffers before a frame is started (which is allowed), which can cause a that frame to be rendered into a buffer of the wrong size. Such buffer will be ignored by the compositor. If the application draws only once after a size change, the screen might stay in this stale state. this can be avoided by telling the GL driver to purge all its pending buffers, which is done by making the surface not current and then current again. this solution is specific to android, but acceptable because handled solely in the framework. Bug: 2263168 Change-Id: I3d3c9a019979a9186e329d3160fa54adac78d3f7
* fix typo in a commentMathias Agopian2011-07-121-1/+1
| | | | Change-Id: If913611a65e8b578021e9f9a9546f05e0ce6ef44
* Properly refcount SurfaceTexture in the JNI layer.Romain Guy2011-06-151-2/+2
| | | | Change-Id: I4b4c8020c13b8d6ce0d302fe42410033bf5785a6
* Allows to render with an OpenGL context inside a TextureView.Romain Guy2011-05-021-4/+14
| | | | Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
* Fix typo in Matrix.mPerspective.Jack Palevich2011-04-211-1/+1
| | | | | | | (Introduced by a copy-and-paste mistake when factoring out a common expression. D'Oh!) Change-Id: I5e97dde2d2f4564fc74ba69bfa4a2f9db44c8873
* Add utility method Matrix.perspectiveMJack Palevich2011-04-211-2/+37
| | | | Change-Id: Ic9d5e5d967bbc08acc524c5092ce61a1cdbfd360
* Kill the global references in the OpenGL wrappers.Elliott Hughes2011-04-1112-175/+187
| | | | | | | | | | | | | | | Just use jniThrowException instead. Note that it would be trivial to throw seemingly more appropriate exceptions (NullPointerException and OutOfMemoryException in particular), but I'm only attempting to preserve existing behavior here. I also found shadowing bugs in some of the special-case functions, which would previously always have leaked memory. This also moves an accidental change to a generated file (ActivityThread -> AppGlobals) into the generator, so it won't be overwritten in future. Change-Id: Iab570310b568cb406c60dd0e2b8211f8a36ae590
* Fix EGL JNI bugsRomain Guy2011-03-073-0/+47
| | | | | | | | | Bug #3461349 Before this change, eglGetCurrent*() could not be used to compare contexts, displays and surfaces at the Dalvik level. Change-Id: I442037dae37bc357b64810ab10c779b5754e9153
* Extend recycled bitmap check to all GLUtils APIs.Jack Palevich2011-02-071-0/+18
| | | | Change-Id: I9ea0022b167af2153190b6642aa303232e257379
* Throw an exception when trying to upload a recycled bitmap.Jack Palevich2011-02-021-0/+3
| | | | | | Previously we would upload garbage. Change-Id: Id785792a16f9d24685687f4e6b64ec893ccad225
* Add GL11ExtensionPack support to GLDebugWrapperJack Palevich2011-01-273-1/+721
| | | | | | | Allows calling GL11ExtensionPack APIs in a GL context that has been wrapped for debugging. Change-Id: Ib0695b51a92f5dcce32db8b0dc7ee948e5059e7f
* Unhide GLSurfaceView.get/setPreserveEGLContextOnPauseJack Palevich2011-01-181-2/+0
| | | | Change-Id: I882b8fa7888e2baae41c81b75af7fc1f639d38d6