summaryrefslogtreecommitdiffstats
path: root/opengl/libs
Commit message (Collapse)AuthorAgeFilesLines
* Clean up use of HAVE_ANDROID_OSKenny Root2011-02-161-1/+1
| | | | | | | | HAVE_ANDROID_OS was defined as "1" for targets, but never defined as "0" for non-targets. Changing them to #ifdef should be safe and matches all the other uses of HAVE_ANDROID_OS throughout the system. Change-Id: I82257325a8ae5e4e4371ddfc4dbf51cea8ea0abb
* Clear all EGL errors when entering EGL funcs.Jamie Gennis2011-01-311-4/+3
| | | | | | | | | This changes the clearError function in the EGL wrapper layer to simply call eglGetError(). That should clear any pending errors from all the underlying EGL implementations, which is needed to correctly report the error for the most recently called EGL function. Change-Id: Iad19c69f0c5305e873f3c2f96d353280d31f7b61
* egl: clear error on function entryMichael I. Gold2011-01-251-1/+92
| | | | | | | | Clear the current thread error state on entry to API functions as mandated by the EGL 1.4 specification, section 3.1. glGetError returns additional information about the "most recent EGL function". Change-Id: Ic24c64b39294ffc1a4e43fa72663e076b9d7decf
* egl: fix GetProcAddress for EGLimage extensionsMichael I. Gold2011-01-161-0/+33
| | | | | | | | Return wrappers from GetProcAddress for glEGLImageTargetTexture2DOES and glEGLImageTargetRenderbufferStorageOES which unwrap the EGLimage handle before calling through to the implementation. Change-Id: I2f5b180ab3ccdb28a4f510a2bd8c2eee941a84df
* egl: expose EGLimage extensionsMichael I. Gold2011-01-161-0/+2
| | | | | | | | Add EGL_KHR_gl_texture_cubemap_image and EGL_KHR_gl_renderbuffer_image to the static EGL extension string since these require no new APIs beyond what is already required. Change-Id: I2d1fde86b19bb9eee46b3b977f51784a17cfcc3c
* egl: fixes for object refcountsMichael I. Gold2010-12-231-20/+31
| | | | | | | | eglMakeCurrent() would only deref the previous surfaces if the old and new contexts were the same. eglTerminate() should not touch TLS. eglReleaseThread() needs to unbind the current context. Change-Id: I213b8be77b1a23b5a8a6afaac60643662c8aa010
* am 054ae782: am e1752f41: Merge "fix [3258603] \'Quadrant\' benchmark ↵Mathias Agopian2010-12-081-2/+2
|\ | | | | | | | | | | | | crashes inside eglQueryContext on GB/Crespo" into gingerbread * commit '054ae78245fe9b4c14bbc372ae77cd0a977ded73': fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/Crespo
| * fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/CrespoMathias Agopian2010-12-081-2/+2
| | | | | | | | | | | | | | eglQueryContext(..., EGL_CONFIG_ID, ...) is dereferencing an uninitialized pointer due to a typo. Change-Id: I100addf3150f19cb6dfbce9987fb5239dd240878
* | am 0484a673: am daef0a04: Merge "[3229973, 3247470, ...] set ↵Mathias Agopian2010-12-061-8/+25
|\ \ | |/ | | | | | | | | | | EGLNativeWindowSurface\'s format in EGL" into gingerbread * commit '0484a673c5839d2be9e615e52c6a45febdf1127b': [3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGL
| * [3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGLMathias Agopian2010-12-031-8/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (there are multiple bugs this should fix) we now use the EGL_NATIVE_VISUAL_ID of a config to set the ANativeWindow's format from eglCreateWindowSurface(), this guarantees that the surface's format will match whatever EGLConfig the user chose. this should fix all current and future config/surface format mismatch and allow users to easily select 32-bits surfaces. Change-Id: I3835d0eb70c75eeecded3c3509a0a8207554c98b
| * DO NOT MERGE. workaround [3177481] eglGetProcAddress() returns the wrong ↵Mathias Agopian2010-11-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | pointer for some GL extensions We just make sure eglGetProcAddress() will return NULL for glEGLImageTargetTexture2DOES glEGLImageTargetRenderbufferStorageOES which is better than returning the address of the wrong implementation. the correct fix is more involved. Change-Id: I585a1f40e564f862e5dd382224609ccd069cd3b5
* | Trace glUniformXXv and glUniformMatrixXfv calls.Jack Palevich2010-10-271-30/+138
| | | | | | | | Change-Id: I653021d2174fa1a7343d10b0fd2c29b3e5147be6
* | OpenGL tracing.Jack Palevich2010-10-269-6/+1441
| | | | | | | | | | | | | | | | Enable with: adb shell setprop debug.egl.trace 1 Change-Id: Icfbc795f5260141510975228e72234e9aab56a85
* | am 4eb1ad5e: am 524a6d8e: Merge "better fix for [3028370] GL get error ↵Mathias Agopian2010-09-233-9/+4
|\ \ | |/ | | | | | | | | | | | | | | should return a valid error if no context is bound." into gingerbread Merge commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e' * commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e': better fix for [3028370] GL get error should return a valid error if no context is bound.
| * better fix for [3028370] GL get error should return a valid error if no ↵Mathias Agopian2010-09-233-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | context is bound. it turns out that we cannot return INVALID_OPERATION from glGetError() because the GL spec says that it must be called in a loop until it returns GL_NO_ERROR. now, we always return 0 from GL functions called from a thread with no context bound. This means that glGetError() will return NO_ERROR in this case, which is better than returning a random value (which could trap the app in a loop). if this happens in the main thread of a process, we LOG an error message once. Change-Id: Id59620e675a890286ef62a257c02b06e0fdcaf69
* | am 9c4d7d67: am 5c6c5c7a: fix [3028370] GL get error should return a valid ↵Mathias Agopian2010-09-231-0/+9
|\ \ | |/ | | | | | | | | | | | | | | error if no context is bound. Merge commit '9c4d7d677097981a349c718902e29050dad3d59f' * commit '9c4d7d677097981a349c718902e29050dad3d59f': fix [3028370] GL get error should return a valid error if no context is bound.
| * fix [3028370] GL get error should return a valid error if no context is bound.Mathias Agopian2010-09-231-0/+9
| | | | | | | | | | | | | | glGetError() will now always return GL_INVALID_OPERATION if called from a thread with no GL context bound. Change-Id: I28ba458871db051bb4f5a26668a1fa123526869c
* | am d01ce192: am 9d5fac51: Merge "fix small bug in EGL error management" into ↵Mathias Agopian2010-09-221-2/+4
|\ \ | |/ | | | | | | | | | | | | | | gingerbread Merge commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124' * commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124': fix small bug in EGL error management
| * fix small bug in EGL error managementMathias Agopian2010-09-211-2/+4
| | | | | | | | | | | | | | make sure to clear our EGL implementation's error when returning an error from an underlying implementation Change-Id: Ibce4726cef1f900e4c7f16002345d7a07f8cdf41
* | Merge "fix typo EGL_NO_IMAGE_KHR -> EGL_NO_SYNC_KHR"Mathias Agopian2010-09-221-4/+4
|\ \
| * | fix typo EGL_NO_IMAGE_KHR -> EGL_NO_SYNC_KHRMathias Agopian2010-09-211-4/+4
| | | | | | | | | | | | Change-Id: I38c87803e32030918f2deb06381eabce0faa870c
* | | am 5c746522: am 181e5ea8: Merge "support loading EGL libraries from ↵Brian Swetland2010-09-202-14/+16
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | /vendor/lib/egl as well as /system/lib/egl" into gingerbread Merge commit '5c7465220d52c64c87fe4566fe109c649ec5c4f7' * commit '5c7465220d52c64c87fe4566fe109c649ec5c4f7': support loading EGL libraries from /vendor/lib/egl as well as /system/lib/egl
| * support loading EGL libraries from /vendor/lib/egl as well as /system/lib/eglBrian Swetland2010-09-202-14/+16
| | | | | | | | Change-Id: Idd9ca85ce3ba6c92234375071b53e5365e689062
* | Add support for KHR_fence_syncMathias Agopian2010-09-102-0/+132
| | | | | | | | Change-Id: Ie2771b5869c9c8dcf5ecf9318e2ee6d4d1cd5cc9
* | am a9ff29b5: am 6808e6a8: Merge "Fix a few typos in EGL wrapper" into ↵Mathias Agopian2010-09-091-2/+2
|\ \ | |/ | | | | | | | | | | | | | | gingerbread Merge commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0' * commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0': Fix a few typos in EGL wrapper
| * Fix a few typos in EGL wrapperMathias Agopian2010-09-091-2/+2
| | | | | | | | Change-Id: I3b815ca6ec334ca12088f9721eece33df42b2e46
| * cleanup EGL a bit. remove unused extension.Mathias Agopian2010-08-271-19/+0
| | | | | | | | Change-Id: Ia87120b076ab1bf7b28f06087878d8161fb46c88
* | Add KHR_gl_texture_2D_image extension string.Mathias Agopian2010-08-271-0/+1
| |
* | cleanup EGL a bit. remove unused extension.Mathias Agopian2010-08-271-19/+0
| | | | | | | | Change-Id: I7758bc7d6dc2e70fc3590fe939ebf71fbcde7059
* | am a4ed1c67: am 1e4aa48c: Merge "fix [2912927] Can\'t get NV_draw_path ↵Romain Guy2010-08-161-2/+3
|\ \ | |/ | | | | | | | | | | | | | | extension to work" into gingerbread Merge commit 'a4ed1c6788ead0324106d76f497233ee42a1f1ac' * commit 'a4ed1c6788ead0324106d76f497233ee42a1f1ac': fix [2912927] Can't get NV_draw_path extension to work
| * fix [2912927] Can't get NV_draw_path extension to workMathias Agopian2010-08-131-2/+3
| | | | | | | | | | | | | | there was a problem with eglGetProcAddress() which would only work with GLES 1.x contexts. Change-Id: I4747671cbf7ed469bb471a377f1d6f36550d24df
* | am 553a333d: am 603a34ee: Merge "improve a bit the implementation of ↵Mathias Agopian2010-08-101-86/+32
|\ \ | |/ | | | | | | | | | | | | | | eglGetProcAddress" into gingerbread Merge commit '553a333d4446bb34330da92f02daa515dc597939' * commit '553a333d4446bb34330da92f02daa515dc597939': improve a bit the implementation of eglGetProcAddress
| * improve a bit the implementation of eglGetProcAddressMathias Agopian2010-08-091-86/+32
| | | | | | | | Change-Id: Ie07f33ae2162830df1e4f3d3b5e00fcfb8c350d6
* | Fix tons of bugs and add new text rendering support.Romain Guy2010-08-101-2/+18
|/ | | | Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
* fix [2421247] implement eglGetProcAddress(), needed in the ndkMathias Agopian2010-08-024-51/+233
| | | | Change-Id: I5027a27b43c0dd449a404024087853ca05bb8e4e
* fix [2870926] Issue 9802: EGL wrapper has not been implemented correctly for ↵Mathias Agopian2010-07-261-98/+138
| | | | | | | | | | | | | | | | | | | | | | | eglQuerySurface(). rework how our EGL wrapper manages EGLConfig: - we now store the EGLConfig with the EGLSurface and EGLContext so that we can have easy access to it from eglQueryContext and eglQuerySurface. - EGLConfig now are an index into a sorted table of egl_config_t, we use a binary search to retrieve our EGLConfig (the index) from the implementation's EGLConfig. - egl_config_t keeps track of the implementation's index, EGLConfig and CONFIG_ID as well as our CONFIG_ID. In many ways, this implementation is simpler and more robust, as it doesn't assume anything about the number of implementations nor what EGLConfig is made of (the previous code assumed EGLConfig didn't usem more than 24-bits). Change-Id: Id5abe923aacb6e1fd2b63bd8c15d7b04ae824922
* Fix a bug that prevented the creation of EGL shared contexts.Jamie Gennis2010-07-021-0/+4
| | | | Change-Id: I6b0ec5ef86abdd4e9083067ba297107cfb094df3
* update GL ES stub libraries with the new GL ES headersMathias Agopian2010-06-095-58/+268
| | | | Change-Id: I83be94049ddfe3fd7f5bee71a21172ade1498dd5
* fix a crasher in our EGL wrapper when attrib_list is NULL in eglChooseConfigMathias Agopian2010-05-171-4/+6
| | | | | | | the EGL specification states that this should be treated as though it was an empty list terminated with EGL_NONE. Change-Id: I294104370a86b5e5c34c7bcf15c5459eab464631
* small cleanup. gEGLImpl should have been staticMathias Agopian2010-04-092-1/+2
| | | | | | | also added a ctor to initialized it in case we use it ont he stack one day. Change-Id: I2736b9bce3d8ba3b74fd029de4c18cca2cdbbf60
* Fix Android's glEGLImageTargetRenderbufferOES() wrapperMathias Agopian2010-03-292-2/+2
| | | | | | | glEGLImageTargetRenderbufferOES() pass the wrapped EGLImage to the implementation, rather than the unwrapped one. Change-Id: I149f9ed73e6ab9089110600e1db4311ba7a8c83a
* Implement eglInitialize / eglTerminate reference countingJack Palevich2010-03-151-1/+4
| | | | | | | | | | | | | | | | | Previously we imlpemented the standard semantics for eglInitialize / eglTerminate, which are that eglInitialize may be called any number of times, but the first call to eglTerminate will terminate the display. Now we follow reference-countins semantics, which means that eglTerminate will only terminate the display when the reference count returns to zero. This change allows EGL to be used by multiple independently written modules in the same process. (Otherwise there is no way for the independent modules to coordinate their use of the display.)
* fix [2189862] Race condition in eglIntialize and eglDestroyMathias Agopian2010-02-051-3/+16
| | | | | there is now a lock protext a perticular display. it's held during initialization and destruction.
* fix [2303866] eglMakeCurrent doesn't return all error messages described in ↵Mathias Agopian2010-01-251-3/+3
| | | | the spec
* Use correct TLS codepath in graphics librariesGary King2010-01-121-0/+11
| | | | | | | 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
* A library for encoding and decoding ETC1 textures.Jack Palevich2009-12-312-0/+700
| | | | | The ETC1 compressed texture format is commonly supported by OpenGL ES 2.0-capable devices.
* Implement Matrix Palette extension.Jack Palevich2009-12-081-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* fix[2222341] Soft reset while going back from camcorder settingsMathias Agopian2009-10-301-1/+1
| | | | | | add a way to convert a mapped "pushbuffer" buffer to a gralloc handle which then can be safely used by surfaceflinger, without including gralloc_priv.h
* return proper error code from eglCreateImageKHRMathias Agopian2009-10-291-4/+24
|
* Use the TLS register if HAVE_ARM_TLS_REGISTER is definedMathias Agopian2009-10-193-6/+34
| | | | | this will be needed for SMP, but would improve dispatching GL calls a bit on armv6 and above.