summaryrefslogtreecommitdiffstats
path: root/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Fix incorrect name in eglSwapBuffers log wrapper"Jesse Hall2013-12-151-1/+1
|\
| * Fix incorrect name in eglSwapBuffers log wrapperBrian Harris2013-12-101-1/+1
| | | | | | | | | | | | | | Correctly identify eglSwapBuffers in EGLLogWrapper, which had been labeled as "eglInitialize". Change-Id: I67c61e100e2f84400ceebc28712f036e5a055017
* | Merge "Fix wrapper equals()"Andy McFadden2013-06-246-6/+4
|\ \
| * | Fix wrapper equals()Andy McFadden2013-06-216-6/+4
| |/ | | | | | | | | | | | | | | Make it faster and correcter. Bug 9204146 Change-Id: Ieeb97b72005e831ec6b94fc24ed2c3bc03307c2a
* | Minor fixes to android.opengl.MatrixAndy McFadden2013-06-211-40/+68
|/ | | | | | | | | | | | | | | | | | | | This has a minor API change: deprecation of the nullary constructor. The class is entirely composed of static methods, and was written without a constructor, but the compiler dutifully generated a default implementation and the API tool slurped it up. The other changes are to the documentation: - Added warnings about the use of overlapping input and output on certain methods. - Fixed a few inaccuracies (e.g. transposeM() returns a transposed matrix, not an inverted matrix). - Tidied up the formatting. - Generally placated the consistency hobgoblins. Bug 8868762 Change-Id: Ie3f86b98c477d8dc82d9dcaa311959bd4d191359
* Add android.opengl.EGLExt class for EGL extensionsJesse Hall2013-05-012-8/+46
| | | | | | | | | | | | | Add the ES-relevant constants from the EGL_KHR_create_context extension. These allow apps to check which EGLConfigs (if any) support ES3 contexts. Otherwise, the app has to create a context with an EGLConfig and then check whether it is an ES2 or ES3 context. Also move eglSetPresentationTimeANDROID from EGL14 to EGLExt, since it's an extension function. It's new in API 18. Bug: 8678160 Change-Id: I3cba6e59ebb0a3a4c4012aa54a36b940c288bcec
* Revert all recent GLSurfaceView changes.Jeff Brown2013-04-191-397/+662
| | | | | | | | | | | | | | | | | | | | | | Several issues have been identified that will need to be resolved carefully before we attempt to make similar changes. 1. Some applications make assumptions about the fact that all Runnables posted with queueEvent() will be executed before the next draw. Because the Choreographer may post messages in the past (due at the frame time), these Runnables were not always running at the expected time. 2. Some applications apparently hijack the GLThread and try to run their own Looper on it. This obviously won't work if we are already running one of our own. We may need to add new rendering modes or target API checks to provide an opportunity for applications to opt-in to the changes in the future. Bug: 8649804 Change-Id: I6289c3392a98cdbfaf28c7f4f7a8040f2138a3b4
* Fix change of behavior in Looper.quit().Jeff Brown2013-04-181-10/+6
| | | | | | | | | | | | | | | | | It seems some applications rely on Looper.quit() terminating the loop immediately without processing all messages. Rather than risk breaking them, make the safer behavior optional. Also take care to properly drain the message queue before quitting so that all of the Message instances are recycled. This may help release storage sooner in case the Looper doesn't get GC'd promptly and its remaining queue of undelivered messages sticks around. Improve docs on runWithScissors. Bug: 8596303 Change-Id: I8cbeb6f7a5f6b8e618b5109f87a03defc1486b9f
* don't trigger a render when setting the rendermodeMathias Agopian2013-04-181-8/+29
| | | | | | | | also don't cache the rendermode, to mimic the older behaviour. Bug: 8656076 Change-Id: Id9383852bed073927db2364f7ac30a1be28b4cd8
* Merge "Unhide android.opengl.GLES30 class and contents" into jb-mr2-devJesse Hall2013-04-162-1/+1
|\
| * Unhide android.opengl.GLES30 class and contentsJesse Hall2013-04-152-1/+1
| | | | | | | | | | Bug: 8566953 Change-Id: I5273fb3bff642da5ff1eecb5899e8051402b19ca
* | Merge "Add android.opengl.GLES30, hidden for now" into jb-mr2-devJesse Hall2013-04-162-3/+1801
|\ \ | |/
| * Add android.opengl.GLES30, hidden for nowJesse Hall2013-04-152-3/+1801
| | | | | | | | | | Bug: 8566953 Change-Id: Ia5a01d5e857b4fce12a451e2dcab0359758ad648
* | Don't draw synchronously in onResume()Mathias Agopian2013-04-101-1/+1
|/ | | | | | | | | | | | | this could cause a dead-lock if the applicaltion's draw implementation blocks until something happenson the main ui thread. note: we're still doing this synchronous draw in onWindowResize() because that's what the previous implementation did. Technically, it has the same problem. Bug: 8586305 Change-Id: I782568289cc9419346aeea73775d86faa28b3058
* rework GLSurfaceView so it can use the choreographerMathias Agopian2013-04-091-660/+378
| | | | | | | | | | | | | | | | | | GLSurfaceView will now automatically use the Choreographer to schedule render updates on VSYNC. This happens only in RENDERMODE_CONTINUOUSLY. GLSurfaceView was rewriten to use a Looper and a HandlerThread instead of a custom thread. The basic mode of operation is unchanged, however the implementation is largely different. Removed support for older GPUs which had a limited number of contexts. Bug: 8485730 Change-Id: I7b270f7ad7bb1259e858429054b1c8c9cc159dc6
* Fix createSurface / eglCreateWindowSurface race.Jack Palevich2013-03-181-2/+13
| | | | | | | | | | Previously we could have returned from createSurface on the main thread before calling eglCreateWindowSurface on the GLThread. That could lead to a problem because the surface could be destroyed before eglCreateWindowSurface got a chance to run. Bug: 8328715 Change-Id: I273149f7d4b165abbe218a91ff54083f3f498cb0
* Publish new MediaCodec APIAndy McFadden2013-03-071-1/+0
| | | | | | | | | | Un-hide two new methods in MediaCodec, one new constant, and a new EGL extension. Bug 7991062 Bug 8191230 Change-Id: I028669132d9ffda1e4b34a561bab3997bbd7dae5
* Add eglPresentationTimeANDROIDAndy McFadden2013-03-051-0/+9
| | | | | | | | Added EGL extension to set a timestamp on a surface. Bug 8191230 Change-Id: Ie73bd7d1217348c9c64b8c68da38d671d48355f7
* regenerate GLES java bindingsMathias Agopian2013-02-252-80/+0
| | | | | | | | | - added most missing validation checks - glGet* validation reimplement from khronos documentation Bug: 7402895 Change-Id: I92a805bb1aba1600d3372dc2db22eab08c975d7f
* regenerate egl/gles stubs from glgenMathias Agopian2013-02-221-2/+2
| | | | | | those are minor cosmetic changes. Change-Id: I84ee5383577f0ca33ed7cc32d03e53c1475f068d
* DdmServer: add controls for OpenGL tracingSiva Velusamy2012-12-191-5/+2
| | | | | | Add a new JDWP packet to allow control of OpenGL tracing. Change-Id: Ic89e2f6299238a612df2f914581049f2cbba088c
* GLSurfaceView defaults to 888 instead of 565Mathias Agopian2012-09-181-6/+6
| | | | Change-Id: Ie00fe578136365031e4bb878a04b68dc40e24b9e
* Rename UserId to UserHandle.Dianne Hackborn2012-08-161-2/+2
| | | | | | This is the start of turning this into a formal public API. Change-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0
* Enable use of Surface as a native window in EGL14 wrapper.Jeff Brown2012-08-081-1/+3
| | | | Change-Id: Ia3546fd02f9b60d4505fbc0602522b95e3e5b6be
* Improve gradientsRomain Guy2012-07-311-2/+2
| | | | | | Avoid using textures for common gradients (two stops from 0.0 to 1.0) Change-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a
* Fix android.opengl.Matrix frustum's generationRomain Guy2012-07-301-4/+3
| | | | | | External bug report: http://code.google.com/p/android/issues/detail?id=35646 Change-Id: I845783c05da46855f0c1d824c9a367f0e4673b85
* 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 files that moved to frameworks/nativeMathias Agopian2012-03-07293-75622/+0
| | | | Change-Id: I140d291e520097b1148930f736823650e08488f7
* fixup hardcoded include paths for new projectMathias Agopian2012-03-071-2/+2
| | | | Change-Id: Id443ec5c99bb4d7653905f1be1f72a029e0cf087
* Merge "gltrace: Send vertex attribute data after glDraw() call."Siva Velusamy2012-03-067-51/+418
|\
| * gltrace: Send vertex attribute data after glDraw() call.Siva Velusamy2012-03-017-51/+418
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables tracing of vertex attribute data that is specified using glVertexAttribPointer(). At the time the glVertexAttribPointer() call is made, we only receive a pointer in client space, without any indication of the size (# of attributes). This size is known only at the time of the glDraw() call. This patch generates a new message glVertexAttribPointerData() when a draw call is issued that contains the vertex attribute data. A glDrawArrays() call directly gives the size of data to copy. A glDrawElements() call gives the indices to copy. In such a case, all data between the min & max indices drawn are copied and sent to the host. To support glDrawElements() with an element array buffer, this patch also adds state that maintains a copy of all element array buffers. Change-Id: I434da794a0aa9ada8e7474e219ffb1d79b183ecf
* | fixup include pathsMathias Agopian2012-03-0520-29/+24
|/ | | | | | | - remove unneeded include deps - remove some hardcoded include paths Change-Id: Ifae0e2b2d738e0f94f8525c45be78f4227ce1673
* Add tracing to various graphics components.Jamie Gennis2012-02-271-0/+5
| | | | | | | This change adds ATRACE call tracing to BufferQueue, SurfaceTextureClient, SurfaceTexture, SurfaceFlinger, Layer, and EGL. Change-Id: I9d75ed26f5a3f0d1af635da38289520134cfbbb7
* libagl shouldn't export anythingMathias Agopian2012-02-271-18/+640
| | | | Change-Id: Ia823dbc56aab2a0b8a6063df4348fe6baac124c6
* Merge "gltrace: Make code 64-bit safe."Siva Velusamy2012-02-274-555/+2118
|\
| * gltrace: Make code 64-bit safe.Siva Velusamy2012-02-274-555/+2118
| | | | | | | | | | | | | | | | | | Currently, the trace API passes the pointers that need to be patched up via 32 bit integers. Such code will not be 64 bit safe. This patch sends all pointers in a separate array of pointers for the fixup calls to read from. Change-Id: If975333f11a6f6f9a74fba57de328affaed452a5