summaryrefslogtreecommitdiffstats
path: root/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Decouple the EGL context lifetime from the EGL surface lifetime.Jack Palevich2010-01-181-31/+81
| | | | | | The EGL context is now preserved when possible. Previously we would destroy it whenever the EGL surface was destroyed. Preserving the EGL context preserves loaded textures and VBO resources.
* Use correct TLS codepath in graphics librariesGary King2010-01-122-0/+16
| | | | | | | Duplicate ARCH_ARM_HAVE_TLS_REGISTER BoardConfig to proprocessor HAVE_ARM_TLS_REGISTER define from Bionic's libc Android.mk to ensure that OpenGL libraries (libEGL, libGLESv1_CM, libGLESv2, libGLES_android) use the correct codepath in bionic_tls.h for accessing the TLS address
* Deprecate fill_parent and introduce match_parent.Romain Guy2010-01-081-4/+4
| | | | Bug: #2361749.
* Do not use a user tag on apps, as it is ignored.Jean-Baptiste Queru2010-01-063-3/+3
| | | | | | | | | | The build system does not honor user tags on apps, and setting it is misleading. This removes the confusion by making the makefiles behave like they read. Change-Id: I7c5feba1c7d07f915b97dd098584f29938a4c885
* Fix javadoc typos.Jack Palevich2009-12-312-2/+2
|
* A library for encoding and decoding ETC1 textures.Jack Palevich2009-12-315-0/+1171
| | | | | The ETC1 compressed texture format is commonly supported by OpenGL ES 2.0-capable devices.
* Print OpenGL version and extension information.Jack Palevich2009-12-241-144/+152
| | | | | | Something happened to the line endings, adding a blank line after most lines of text. I repaired the damage, but in the process some blank lines have been added / removed.
* Fix merge conflict markers that accidentally got checked in.Jack Palevich2009-12-211-5/+1
| | | | (They were in a comment, so it wasn't detected by the compiler.)
* Fix bug 2325244 screen turns black for a brief period of timeJack Palevich2009-12-211-0/+29
| | | | | | | | | | | | | | | | The problem was a black first frame when creating a surface, or a garbage frame when the surface was resized. The cause was lack of synchronization between the render thread and the UI thread. The UI thread would typically return before the render thread had a chance to draw its first frame. The fix was to make the UI thread wait until at least one frame had been rendered by the rendering thread. The waiting is done in the surfaceChanged method because we know that surfaceChanged will be called in both the surface created and surface changed cases.
* am 74befcc7: am 981ccfbb: Implement Matrix Palette extension.Jack Palevich2009-12-101-14/+13
|\ | | | | | | | | | | | | Merge commit '74befcc7fd721ca34f60bf75e18ce6faaab37aef' * commit '74befcc7fd721ca34f60bf75e18ce6faaab37aef': Implement Matrix Palette extension.
| * am 981ccfbb: Implement Matrix Palette extension.Jack Palevich2009-12-0916-64/+302
| |\ | | | | | | | | | | | | | | | | | | Merge commit '981ccfbbfd737e2bdf0cedec0089975f91fd4e0a' into eclair-mr2-plus-aosp * commit '981ccfbbfd737e2bdf0cedec0089975f91fd4e0a': Implement Matrix Palette extension.
| | * Implement Matrix Palette extension.Jack Palevich2009-12-0916-64/+302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support for formerly-unimplemented methods: glCurrentPaletteMatrixOES glLoadPaletteFromModelViewMatrixOES glMatrixIndexPointerOES glWeightPointerOES The bulk of the changes are related to implementing the two PointerOES methods, which are implemented pretty much the same way as the existing Pointer methods were implemented. This change also changes the way glPointSizePointerOES is implemented, making it act like all the other Pointer methods. (Previously it was not handling non-direct-buffer arguments correctly.) Fixes bug 2308625 "Support matrix palette skinning in JSR239 and related APIs" Also updated GLLogWraper to fix two bugs in GLLogWrapper that were discovered while testing matrix palette skinning support: a) Handle trying to print the contents of null-but-enabled buffers. (It's not legal to draw with null-but-enabled buffers, and in fact some OpenGL drivers will crash if you try to render in this state, but there's no reason the GLLogWrapper should crash while trying to debug this situation. b) Don't read off the end of a vertex buffer with non-zero position when printing the entire contents of the vertex buffer. Now we only print from the current position to the end of the buffer.
* | | resolved conflicts for merge of fac57636 to masterJack Palevich2009-12-101-13/+14
|\ \ \ | |/ /
| * | am aa396b96: Unhide the Android OpenGL ES 2.0 APIJack Palevich2009-12-094-65/+91
| |\ \ | | |/ | | | | | | | | | | | | | | | Merge commit 'aa396b9610f339cf280159144fbea47506f060e7' into eclair-mr2-plus-aosp * commit 'aa396b9610f339cf280159144fbea47506f060e7': Unhide the Android OpenGL ES 2.0 API
| | * Unhide the Android OpenGL ES 2.0 APIJack Palevich2009-12-094-65/+91
| | | | | | | | | | | | | | | | | | Add a Matrix.setLookAtM method for computing a look-at viewing transform. Change GLU.lookAt to use Matrix.setLook.
| * | am 0dce2dd2: Extend GLSurfaceView to make it easy to create an OpenGL ES 2.0 ↵Jack Palevich2009-12-093-223/+64
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | context Merge commit '0dce2dd26699e4dbfba8b8c5ea01f7fd03369e02' into eclair-mr2-plus-aosp * commit '0dce2dd26699e4dbfba8b8c5ea01f7fd03369e02': Extend GLSurfaceView to make it easy to create an OpenGL ES 2.0 context
| | * Extend GLSurfaceView to make it easy to create an OpenGL ES 2.0 contextJack Palevich2009-12-093-223/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a new method, GLSurfaceView.setEGLContextClientVersion. Clients call this method to define which level of OpenGL ES support they want. This method only affects the default behavior of GLSurfaceView. If clients have supplied their own EGLContextFactory or EGLConfigChooser then they are on their own if they want to create an OpenGL ES 2.0 context. This API is currently hidden. Update the gl2_java test to use this new API. Update the gl2_java test's AndroidManifest.xml file to indicate that it requires OpenGL ES 2.0.
| * | am 3608891b: Add a Java API for OpenGL ES 2.0.Jack Palevich2009-12-0923-13/+3194
| |\ \ | | |/ | | | | | | | | | | | | | | | Merge commit '3608891b83af9fbd1af9b9a411f2a90e52353ff8' into eclair-mr2-plus-aosp * commit '3608891b83af9fbd1af9b9a411f2a90e52353ff8': Add a Java API for OpenGL ES 2.0.
| | * Add a Java API for OpenGL ES 2.0.Jack Palevich2009-12-0923-13/+3194
| | | | | | | | | | | | | | | | | | Currently this API is hidden. Add a test program.
* | | Merge change I5ddc721dAndroid (Google) Code Review2009-12-092-0/+3
|\ \ \ | | | | | | | | | | | | | | | | * changes: Add misssing symbol type directives.
| * | | Add misssing symbol type directives.Doug Kwan2009-12-082-0/+3
| | | |
* | | | Merge change Ibe6eac82Android (Google) Code Review2009-12-0816-64/+302
|\ \ \ \ | |/ / / |/| | | | | | | | | | | * changes: Implement Matrix Palette extension.
| * | | Implement Matrix Palette extension.Jack Palevich2009-12-0816-64/+302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support for formerly-unimplemented methods: glCurrentPaletteMatrixOES glLoadPaletteFromModelViewMatrixOES glMatrixIndexPointerOES glWeightPointerOES The bulk of the changes are related to implementing the two PointerOES methods, which are implemented pretty much the same way as the existing Pointer methods were implemented. This change also changes the way glPointSizePointerOES is implemented, making it act like all the other Pointer methods. (Previously it was not handling non-direct-buffer arguments correctly.) Fixes bug 2308625 "Support matrix palette skinning in JSR239 and related APIs" Also updated GLLogWraper to fix two bugs in GLLogWrapper that were discovered while testing matrix palette skinning support: a) Handle trying to print the contents of null-but-enabled buffers. (It's not legal to draw with null-but-enabled buffers, and in fact some OpenGL drivers will crash if you try to render in this state, but there's no reason the GLLogWrapper should crash while trying to debug this situation. b) Don't read off the end of a vertex buffer with non-zero position when printing the entire contents of the vertex buffer. Now we only print from the current position to the end of the buffer.
* | | | am 9196034b: am 30d90523: Merge changes Id682ab72,I9bb4dbae into eclair-mr2Jack Palevich2009-12-072-18/+45
|\ \ \ \ | |/ / / |/| / / | |/ / | | | | | | | | | | | | Merge commit '9196034b84c48844799a2904ef3ce31f18ee748e' * commit '9196034b84c48844799a2904ef3ce31f18ee748e': Improve error message thrown when eglCreateContext fails. Improve error reporting by always returning the public
| * | am 30d90523: Merge changes Id682ab72,I9bb4dbae into eclair-mr2Jack Palevich2009-12-042-18/+45
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | Merge commit '30d905235074f343ebac6002408ab5c2b360ea14' into eclair-mr2-plus-aosp * commit '30d905235074f343ebac6002408ab5c2b360ea14': Improve error message thrown when eglCreateContext fails. Improve error reporting by always returning the public
| | * Improve error message thrown when eglCreateContext fails.Jack Palevich2009-12-041-1/+1
| | |
| | * Improve error reporting by always returning the publicJack Palevich2009-12-041-17/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EGL10.EGL_NO_XXX objects for displays, surfaces, and contexts. This allows clients to compare the returned object against the public EGL10.EGL_NO_XXX object using a simple == operation. This fixes bug 2303947 "Java layer EGL API makes it difficult to tell when certain methods have failed"
| | * the vertex index should be "first + i".Li Wenhao2009-12-021-1/+1
| | |
* | | am 7671c088: am 77f17095: am 533a2803: Merge change I18ffb549 into eclairMathias Agopian2009-12-011-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit '7671c088cd5e6ce938c89939f55ead6629bd6516' * commit '7671c088cd5e6ce938c89939f55ead6629bd6516': fix [2069023] STOPSHIP: disable DEBUG_COPYBIT
| * | am 77f17095: am 533a2803: Merge change I18ffb549 into eclairMathias Agopian2009-12-011-1/+1
| |\ \ | | |/ | | | | | | | | | | | | | | | Merge commit '77f17095ed17a6ccc7fc1f1b3ddb31c63bbf66a2' into eclair-mr2-plus-aosp * commit '77f17095ed17a6ccc7fc1f1b3ddb31c63bbf66a2': fix [2069023] STOPSHIP: disable DEBUG_COPYBIT
| | * am 533a2803: Merge change I18ffb549 into eclairMathias Agopian2009-12-011-1/+1
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Merge commit '533a2803506cc4f196403fdfafd948bd4f8e60d9' into eclair-mr2 * commit '533a2803506cc4f196403fdfafd948bd4f8e60d9': fix [2069023] STOPSHIP: disable DEBUG_COPYBIT
| | | * fix [2069023] STOPSHIP: disable DEBUG_COPYBITMathias Agopian2009-11-301-1/+1
| | | |
* | | | Unhide the Android OpenGL ES 2.0 APIJack Palevich2009-11-274-65/+91
| | | | | | | | | | | | | | | | | | | | | | | | Add a Matrix.setLookAtM method for computing a look-at viewing transform. Change GLU.lookAt to use Matrix.setLook.
* | | | am 85a9498a: am 9c0b39c4: am ca00dee2: Merge change I5aa3adcf into eclairJack Palevich2009-11-251-2/+6
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | Merge commit '85a9498a2f33d62a4313a3561b5468456974696e' * commit '85a9498a2f33d62a4313a3561b5468456974696e': Improve the exception message text by including eglGetError().
| * | | am 9c0b39c4: am ca00dee2: Merge change I5aa3adcf into eclairJack Palevich2009-11-251-2/+6
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Merge commit '9c0b39c47efade5ee2303a8f8ffbd9cf87c2c841' into eclair-mr2-plus-aosp * commit '9c0b39c47efade5ee2303a8f8ffbd9cf87c2c841': Improve the exception message text by including eglGetError().
| | * | am ca00dee2: Merge change I5aa3adcf into eclairJack Palevich2009-11-251-2/+6
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | Merge commit 'ca00dee21425882619aef4ecbe3e0d08de0544e5' into eclair-mr2 * commit 'ca00dee21425882619aef4ecbe3e0d08de0544e5': Improve the exception message text by including eglGetError().
| | | * Improve the exception message text by including eglGetError().Jack Palevich2009-11-251-2/+6
| | | | | | | | | | | | | | | | Should help us track down the cause of bug 2285187
* | | | am 8e9af2bd: am b439f561: am 13feccf5: Merge change I39f0003e into eclairMathias Agopian2009-11-191-12/+24
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | Merge commit '8e9af2bd1d600cd2c69c88c7d60c7d455921677e' * commit '8e9af2bd1d600cd2c69c88c7d60c7d455921677e': fix [2235414] libagl glDeleteBuffers() crashes
| * | | am b439f561: am 13feccf5: Merge change I39f0003e into eclairMathias Agopian2009-11-191-12/+24
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Merge commit 'b439f561a6aa3900f1850e71a4aa60618af13f90' into eclair-mr2-plus-aosp * commit 'b439f561a6aa3900f1850e71a4aa60618af13f90': fix [2235414] libagl glDeleteBuffers() crashes
| | * | am 13feccf5: Merge change I39f0003e into eclairMathias Agopian2009-11-191-12/+24
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | Merge commit '13feccf592d6870b41b3b8a0a31d2abefad0d7ae' into eclair-mr2 * commit '13feccf592d6870b41b3b8a0a31d2abefad0d7ae': fix [2235414] libagl glDeleteBuffers() crashes
| | | * fix [2235414] libagl glDeleteBuffers() crashesMathias Agopian2009-11-191-12/+24
| | | | | | | | | | | | | | | | don't dereference null pointers, would happen if one of the array wasn't bound.
* | | | Extend GLSurfaceView to make it easy to create an OpenGL ES 2.0 contextJack Palevich2009-11-193-223/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a new method, GLSurfaceView.setEGLContextClientVersion. Clients call this method to define which level of OpenGL ES support they want. This method only affects the default behavior of GLSurfaceView. If clients have supplied their own EGLContextFactory or EGLConfigChooser then they are on their own if they want to create an OpenGL ES 2.0 context. This API is currently hidden. Update the gl2_java test to use this new API. Update the gl2_java test's AndroidManifest.xml file to indicate that it requires OpenGL ES 2.0.
* | | | Add a Java API for OpenGL ES 2.0.Jack Palevich2009-11-1923-13/+3194
| | | | | | | | | | | | | | | | | | | | | | | | Currently this API is hidden. Add a test program.
* | | | am 8d0e1472: am a822f02b: resolved conflicts for merge of dc49acb0 to eclair-mr2Jack Palevich2009-11-171-133/+129
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | Merge commit '8d0e14723312a9f8286ba95cc559ee000eab1b82' * commit '8d0e14723312a9f8286ba95cc559ee000eab1b82': More GLSurfaceView cleanup.
| * | | am a822f02b: resolved conflicts for merge of dc49acb0 to eclair-mr2Jack Palevich2009-11-161-133/+129
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Merge commit 'a822f02bb9c7f5bf2e3fa3cb63effc391be158c5' into eclair-mr2-plus-aosp * commit 'a822f02bb9c7f5bf2e3fa3cb63effc391be158c5': More GLSurfaceView cleanup.
| | * | resolved conflicts for merge of dc49acb0 to eclair-mr2Jack Palevich2009-11-171-133/+129
| | |\ \ | | | |/
| | | * More GLSurfaceView cleanup.Jack Palevich2009-11-161-134/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + The mDone flag is now a pair of flags: mShouldExit and mExited. The problem with mDone was that it meant "had been asked to exit", but was being used by some observers as "had exited". Using two variables means that observers can observe either "had been asked to exit" or "had exited", as they prefer. + Simplyify where we check for mShouldExit. We now check for it at the top of our innermost guardedRun while loop. + requestExitAndWait now waits for mExited to be set to true to know that a thread has exited, rather than using join(). This means we can use wait() for the check, which releases the sGLThreadManager monitor, avoiding a potential deadlock. + move the event queue into the sGLThreadManager monitor. This avoids having to acquire two locks in order to enque/deque events, which also avoids the potential for lock ordering deadlocks. + Simplify the event dequeueing code. We now deque one event each time through the main GLSurfaceView loop. Events still have priority over rendering, so there isn't any semantic change, it just cleans up the code. + Avoid trying to acquire an egl Surface if we're paused. + To simplify reasoning about the code, call sGLThreadManager.notifyAll() in every case where we modify one of the variables that's protected by the sGLThreadManager monitor. It would be slightly more efficient to only notify when we change variables that could cause a thread to wait(), but then we would have to redo our analysis every time we change any code. + Clean up the logic for creating the EGL surface and then calling the renderer's onSurfaceCreated / onSurfaceChanged methods. + Implement work-around for bug 2263168 "Need to draw twice after screen rotation..."
* | | | am da5e90be: am 66b5d902: am 27407208: Merge change Icf335098 into eclairMathias Agopian2009-11-132-2/+2
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | Merge commit 'da5e90bee443129511e231e9078a134626b87541' * commit 'da5e90bee443129511e231e9078a134626b87541': fix [2236865] STOPSHIP: bump soft gl and egl minor version number
| * | | am 66b5d902: am 27407208: Merge change Icf335098 into eclairMathias Agopian2009-11-132-2/+2
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Merge commit '66b5d902a29e08237f16be53a84f9c2472df8493' into eclair-mr2-plus-aosp * commit '66b5d902a29e08237f16be53a84f9c2472df8493': fix [2236865] STOPSHIP: bump soft gl and egl minor version number
| | * | am 27407208: Merge change Icf335098 into eclairMathias Agopian2009-11-122-2/+2
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | Merge commit '274072089ceff6eacb9ccfb59290a18f43739c87' into eclair-mr2 * commit '274072089ceff6eacb9ccfb59290a18f43739c87': fix [2236865] STOPSHIP: bump soft gl and egl minor version number