summaryrefslogtreecommitdiff
path: root/opengl/java
AgeCommit message (Collapse)Author
2011-11-15Fix potential GLThread / GLSurfaceView memory leak.Jack Palevich
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
2011-11-15GLES: add image external enumsJamie Gennis
This change adds Java definitions for the enums of the GL_OES_EGL_image_external OpenGL ES extension. Bug: 3482193 Change-Id: Ib50326f8be9b9cc9021753855c3846ddcdc5eaa2
2011-11-11am cb0db030: Merge branch \'ics-mr1-plus-aosp\' of ↵Akwasi Boateng
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.
2011-11-10Terminate EGL when an app goes in the backgroundRomain Guy
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
2011-11-07Merge "Properly passing an unused variable through."Alex Sakhartchouk
2011-11-03Properly passing an unused variable through.Alex Sakhartchouk
Change-Id: Ie49b5855bfca4e202ed41b6167a899832e99d728
2011-10-31am 74b2b954: am 09848bc8: Merge "docs: add developer guide cross references, ↵Joe Fernandez
Project ACRE, round 3" into ics-mr0 * commit '74b2b9547329a0b05e0bd5701057696007b854bb': docs: add developer guide cross references, Project ACRE, round 3
2011-10-29am 09848bc8: Merge "docs: add developer guide cross references, Project ↵Joe Fernandez
ACRE, round 3" into ics-mr0 * commit '09848bc89de999416e2de82a7693b2deec6bf802': docs: add developer guide cross references, Project ACRE, round 3
2011-10-28Destroy and recreate the EGL surface when the surface size changes.Jack Palevich
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
2011-10-28docs: add developer guide cross references, Project ACRE, round 3Joe Fernandez
Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
2011-10-14Work around race condition when shutting down a surface flinger surface.Jack Palevich
Works around b/4588890 Change-Id: Ie0cf1f212686aec93cda85bf112f4b7ab4197256
2011-09-20Avoid allocating temporary memory for Matrix operations.Jack Palevich
Also fix a bug where Matrix.invertM was not returning false when the matrix could not be inverted. Change-Id: I68b172032093d9f257e88c802de936633bb4912c
2011-08-24Add OpenGL backend to ImageWallpaperRomain Guy
Bug #5204874 Currently disabled. Change-Id: I5e7b35dce2981b0691f107e39c6394b260466543
2011-08-01fix an issue where the screen could be stale after a surface size changeMathias Agopian
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
2011-07-12fix typo in a commentMathias Agopian
Change-Id: If913611a65e8b578021e9f9a9546f05e0ce6ef44
2011-06-15Properly refcount SurfaceTexture in the JNI layer.Romain Guy
Change-Id: I4b4c8020c13b8d6ce0d302fe42410033bf5785a6
2011-05-02Allows to render with an OpenGL context inside a TextureView.Romain Guy
Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
2011-04-21Fix typo in Matrix.mPerspective.Jack Palevich
(Introduced by a copy-and-paste mistake when factoring out a common expression. D'Oh!) Change-Id: I5e97dde2d2f4564fc74ba69bfa4a2f9db44c8873
2011-04-21Add utility method Matrix.perspectiveMJack Palevich
Change-Id: Ic9d5e5d967bbc08acc524c5092ce61a1cdbfd360
2011-04-11Kill the global references in the OpenGL wrappers.Elliott Hughes
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
2011-03-07Fix EGL JNI bugsRomain Guy
Bug #3461349 Before this change, eglGetCurrent*() could not be used to compare contexts, displays and surfaces at the Dalvik level. Change-Id: I442037dae37bc357b64810ab10c779b5754e9153
2011-02-07Extend recycled bitmap check to all GLUtils APIs.Jack Palevich
Change-Id: I9ea0022b167af2153190b6642aa303232e257379
2011-02-02Throw an exception when trying to upload a recycled bitmap.Jack Palevich
Previously we would upload garbage. Change-Id: Id785792a16f9d24685687f4e6b64ec893ccad225
2011-01-27Add GL11ExtensionPack support to GLDebugWrapperJack Palevich
Allows calling GL11ExtensionPack APIs in a GL context that has been wrapped for debugging. Change-Id: Ib0695b51a92f5dcce32db8b0dc7ee948e5059e7f
2011-01-18Unhide GLSurfaceView.get/setPreserveEGLContextOnPauseJack Palevich
Change-Id: I882b8fa7888e2baae41c81b75af7fc1f639d38d6
2011-01-14Add support for preserving EGL contexts when pausing / resuming.Jack Palevich
Hidden for now. Change-Id: I350576c11960a1aa232da7aebc5c6ec60ff796b5
2010-12-07These files had an older header.Dan Bornstein
This patch replaces the file headers with the approved Android header text. Change-Id: I63cbd21e9112dab404158fb65f74bc6ca5b07eac
2010-10-27Preserve the render mode when recreating the render thread.Jack Palevich
Change-Id: I67a12a9598d3ef099bef8727411891614b1bc3f7
2010-10-26Allow a GLSurfaceView to be reattached to a window.Jack Palevich
This approach is more backwards-compatible than the previous attempt. The onDetachedFromWindow case is unchanged from the "classic" GLSurfaceView behavior, except that we don't throw a NPE if the renderer has never been set. Change-Id: Ia8103a73366ddb13be44f16b789c929e75ddc792
2010-10-25Do not exit the GLSurfaceView thread when detached from a window.Jack Palevich
Allows a GLSurfaceView to be removed from a window and later reattached to a window. Change-Id: I2b44f35d0c95404b13912782df8877953609a5d0
2010-08-25reserve android.opengl.GLWallpaperService name for future useMathias Agopian
Change-Id: I7a217593a1ca39214dda26ddb3af3ddc30a8a95a
2010-07-13Fix deadlock when switching between two GLSurfaceViewsJack Palevich
Some devices only support a single active EGL context. On those devices, when a second activity that uses a GLSurfaceView is started in the same process, the second activity can potentially hang in GLSurfaceView.onWindowResize waiting for its GLSurfaceView render thread to draw a frame. The second activity's render thread is waiting to acquire an EGL context, but the first activity's render thread doesn't know it should release the EGL context. The fix is to detect the potential hang, and ask the first activity's render thread to release the EGL context. Change-Id: Ibb342c68772297744c973bcf5010581cd132db67
2010-06-24Some ActivityThread/ActivityManager cleanup.Dianne Hackborn
- Move PackageInfo out of ActivityThread, renaming to LoadedApk. - Rename some of the other PacakgeInfo inner classes to better represent what they are. - Rename HistoryRecord to ActivityRecord. - Introduce AppGlobals, to eventually let ActivityThread become package scoped. Change-Id: Ib714c54ceb3cdbb525dce3db9505f31042e88cf0
2010-06-22Add OpenGL ES 2.0 VBO versions glDrawElements and glVertexAttribPointer.Jack Palevich
Change-Id: Id0069535e97fe96eef74e4d0c1d19b010061fe3b
2010-05-24fix [2677468] some 3rd party GL ES apps get a 32-bits surface by default and ↵Mathias Agopian
fail force all SurfaceView to 565 Change-Id: I8ebfa1239d8e4fa097c2e544677fb92fa20b39bd
2010-04-19Quietly handle EGL_BAD_NATIVE_WINDOW errorsJack Palevich
We believe these errors happen when the window manager has told surface flinger to close the native window. If this error happens while we are creating the EGL surface we exit the render loop (and therefore exit the render thread.) If the error happens while swapping the surface we ignore it. In either situation, we expect that the application is about to be shut down by the window manager, so it should not be necessary to try and recover from the error.
2010-03-27Turn off logging.Jack Palevich
2010-03-25GLSurfaceView pause and resume now synchronizeJack Palevich
with the GLThread. We used to just set the mPaused state and return, now we wait until the rendering thread signals that it has noticed the change in pause state. This makes Pause/Resume more consistent with other UI-thread-to-GLThread event communication. This change was made in the hope of fixing some race conditions observed in monkey testing.
2010-03-25Turn off thread logging (too many messages.)Jack Palevich
Leave some other logging on for the monkey test.
2010-03-25Add logging of GLSurfaceView pause/resume calls.Jack Palevich
Turn on GLSurfaceView logging, so we can get better information in the monkey tests. Change-Id: Ifec0101f8a00ab09037dc9f7a1496fa1a374cc08
2010-03-24Improve our EGL management when pausing / resuming.Jack Palevich
We now release the EGL context when pausing. This is required to reduce the chance of running out of contexts on devices which support a limited number of active EGL contexts. Someday we may implement a global EGL context manager that will allow us to let EGL contexts persist until another activity needs an EGL context. But for now, without such a manager, we take the conservative approach. Separately, we now terminate EGL when pausing on Sapphire. This is a requirement of the Sapphire OpenGL driver.
2010-03-23GLSurfaceView: Log egl failuresJack Palevich
Decode the EGL error code when throwing exceptions.
2010-03-15Improve eglSwapBuffers error handling.Jack Palevich
We now distinguish EGL_CONTEXT_LOST errors from other kinds of errors. We return "true" if the swap completes successfully, "false" if the swap fails due to EGL_CONTEXT_LOST, and throw a RuntimeException if the swap fails due to any other cause. If eglSwapBuffers succeeds, we now avoid calling eglGetError at all, which means we avoid clearing any EGL errors that might already have been pending before eglSwapBuffers is called.
2010-03-11Add correct copyright headers to multiple filesKenny Root
Format for the list of changes shows the origin commit reference followed by the file name. 33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java 33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java 133776-p9 core/java/android/app/IntentService.java 127013-p9 core/java/android/appwidget/AppWidgetHost.java 27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java 60765-p9 core/java/android/content/SyncResult.java 43920-p9 core/java/android/content/pm/ActivityInfo.java 43920-p9 core/java/android/content/pm/ApplicationInfo.java 43920-p9 core/java/android/content/pm/InstrumentationInfo.java 43920-p9 core/java/android/content/pm/PackageInfo.java 44103-p9 core/java/android/content/pm/PackageItemInfo.java 68960-p9 core/java/android/content/pm/PackageStats.java 43920-p9 core/java/android/content/pm/ResolveInfo.java 43920-p9 core/java/android/content/pm/ServiceInfo.java 60641-p9 core/java/android/content/res/Configuration.java 60734-p9 core/java/android/content/res/TypedArray.java 137672-p9 core/java/android/inputmethodservice/ExtractButton.java 123112-p9 core/java/android/inputmethodservice/ExtractEditText.java 119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java 112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java 115078-p9 core/java/android/os/BatteryStats.java 124790-p9 core/java/android/text/style/UpdateAppearance.java 45083-p9 core/java/android/view/RawInputEvent.java 101491-p9 core/java/android/view/inputmethod/EditorInfo.java 114701-p9 core/java/android/view/inputmethod/ExtractedText.java 123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java 119291-p9 core/java/com/android/internal/os/HandlerCaller.java 129279-p9 core/java/com/android/internal/os/PkgUsageStats.java 114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java 114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java 84364-p9 opengl/java/android/opengl/EGLLogWrapper.java 11355-p9 opengl/tools/glgen/src/CFunc.java 11355-p9 opengl/tools/glgen/src/CType.java 11355-p9 opengl/tools/glgen/src/CodeEmitter.java 11355-p9 opengl/tools/glgen/src/GenerateGL.java 11355-p9 opengl/tools/glgen/src/JFunc.java 11355-p9 opengl/tools/glgen/src/JType.java 11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java 11355-p9 opengl/tools/glgen/src/ParameterChecker.java 57236-p9 services/java/com/android/server/status/AnimatedImageView.java 66754-p9 services/java/com/android/server/status/CloseDragHandle.java 57188-p9 services/java/com/android/server/status/DateView.java 46928-p9 services/java/com/android/server/status/ExpandedView.java 70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java 45968-p9 services/java/com/android/server/status/IconData.java 57470-p9 services/java/com/android/server/status/IconMerger.java 82719-p9 services/java/com/android/server/status/LatestItemView.java 45968-p9 services/java/com/android/server/status/NotificationData.java 66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java 57458-p9 services/java/com/android/server/status/NotificationViewList.java 45968-p9 services/java/com/android/server/status/StatusBarException.java 45968-p9 services/java/com/android/server/status/StatusBarIcon.java 46130-p9 services/java/com/android/server/status/StatusBarNotification.java 45968-p9 services/java/com/android/server/status/StatusBarView.java 46199-p9 services/java/com/android/server/status/Ticker.java 62286-p9 services/java/com/android/server/status/TickerView.java 57188-p9 services/java/com/android/server/status/TrackingView.java 86041-p9 telephony/java/android/telephony/PhoneStateListener.java 87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java 136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java 34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java 55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java 127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java 129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java 25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java 46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java 77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java 9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java 53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java 93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java 328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java 307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java 307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java eb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java 49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java a2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java 3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java 5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java c4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java 9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java 21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java 4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java 4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java e540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java 192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java 1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java 27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java 560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java 560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java 560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java 1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java 1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java 1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java 69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java c028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java 7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java 7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java 7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java df8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java Copyright header moved to top in following file: core/tests/coretests/src/android/widget/ListViewTest.java Change-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418
2010-03-06Clarify the default algorithm used to choose an EGLConfig.Jack Palevich
Explicitly default to an RGB_565 android.view.Surface.
2010-03-06Fix inverted release-EGLContext-on-pause logic.Jack Palevich
This works around a bug in the "Q3Dimension MSM7500" driver. That driver only supports a single active EGLContext, so we must release and restore the EGLContext when pausing and unpausing. Unfortunately the test for deciding whether to release the context was inverted. We were releasing the context on every device besides the MSM7500 devices, which was a performance drain, and we were not releasing the context on the MSM7500, which meant the underlying driver bug was not worked around. Now we release the EGL context when pausing only on the devices that have the bug.
2010-01-28Implement the GL11ExtensionPack APIs.Jack Palevich
2010-01-18Decouple the EGL context lifetime from the EGL surface lifetime.Jack Palevich
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.
2009-12-31Fix javadoc typos.Jack Palevich
2009-12-31A library for encoding and decoding ETC1 textures.Jack Palevich
The ETC1 compressed texture format is commonly supported by OpenGL ES 2.0-capable devices.