summaryrefslogtreecommitdiffstats
path: root/opengl/libs
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* fix [2187212] add support for GLESv2 dispatch based on TLSMathias Agopian2009-10-1413-565/+523
| | | | | | | | | | | | | Instead of using a different function pointer table for ES 1.x and ES 2.x, we use a single one that is the union (sort|uniq) of both tables. Two instances of this table are initialized with pointers to GL ES 1.x and GL ES 2.x entry-points. When a context is created, we store its version number and when it is bound to a thread we set the approruiate table based on the stored version. This introduce no penalty while dispatching gl calls to the right API version. [Pending Dr No approval for MR1]
* Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"Dima Zavin2009-10-091-4/+0
| | | | This reverts commit ed5ecdba36648973be3033a045e2ece8bf039e4a.
* add a way to easily catch and log GL errors (compile time flag)Mathias Agopian2009-10-081-3/+21
|
* egl: temporarily also include eglTerminate->eglInitialize hack for 8kDima Zavin2009-09-261-0/+4
| | | | | Change-Id: Id5c51e54e733b24e5d5d5de0dcca84ac53afd3a9 Signed-off-by: Dima Zavin <dima@android.com>
* log an error when loading an existing GL driver failsMathias Agopian2009-09-201-5/+14
|
* fix a bug recently introduced where EGL couldn't be initialized again after ↵Mathias Agopian2009-08-242-76/+120
| | | | it had been terminated once
* first step for fixing [2066786] EGL object lifetime management doesn't ↵Mathias Agopian2009-08-211-71/+243
| | | | | | | | | | | | | | | | respect the EGL spec this change fixes the lifetime mgt of EGLSurface, EGLContext and EGLImageKHR in the EGL wrapper. EGLDisplay is still somewhat bogus and libagl's EGL is still incorrect. The idea of the change is that EGL objects are put in a list when created and removed when destroyed. Before each use, we first verify if the object is in the list and if so a reference is taken and kept for the scope of the whole EGL API being called, if not, an error is returned. Upon object destruction, the object is simply marked as "terminated" (this is not protected by a lock because it doesn't really matter). This flag is only used to deny access to the object by other APIs while it's still valid (for instance current or being used by another function in another thread). A reference is also removed and the object can then actually be destroyed when going out of scope.
* fix a bug in ComponentSizeChooser where it could pick a software EGLConfig ↵Mathias Agopian2009-08-201-2/+2
| | | | | | instead of a better h/w one. We now just try to honor the stencil / depth buffer "at least", while doing a "shortest distance" on the colors.
* fix bug [2021677] egl driver unloaded after eglTerminate() is calledMathias Agopian2009-08-173-105/+100
| | | | | | | | | | refactored the code so that: - EGL APIs that can be called before or after eglInitialize() will work by loading the drivers first - make eglGetDisplay() a lot more efficient - make sure that EGL drivers are loaded in a thread-safe way - don't unload the drivers upon calling eglTerminate(), they're now never unloaded, since there is no safe way to do it (some thread could be running) - updated our EGL version to 1.4 - return better error codes if errors happen during initialization
* Better error handling in EGL extensionsMathias Agopian2009-08-121-11/+9
|
* log opengl-call-with-no-context only once per thread, instead of for each ↵Mathias Agopian2009-07-311-2/+9
| | | | function call
* GLESv2 couldn't be loaded due to wrong path specificationMathias Agopian2009-07-291-1/+1
|
* am 46e28db8: Merge change 6713 into donutAndroid (Google) Code Review2009-07-091-1/+1
|\ | | | | | | | | | | | | Merge commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6' * commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6': fix for [1969185] valgrind errors in new gl stuff
| * fix for [1969185] valgrind errors in new gl stuffMathias Agopian2009-07-091-1/+1
| |
| * fix [1942438] eglGetCurrentSurface() returns bogus valueMathias Agopian2009-06-241-3/+5
| |
| * make sure to fail to software when the h/w renderer cannot be initializedMathias Agopian2009-05-201-0/+5
| |
| * libGLESv1_CM.so doesn't need to depend on libutils or libuiMathias Agopian2009-05-181-1/+1
| |
* | Make opengl loader use an absolute path.Marco Nelissen2009-07-071-1/+1
| |
* | Add eglGetRenderBufferANDROID() extension, which returns the current render ↵Mathias Agopian2009-06-252-0/+18
| | | | | | | | buffer as an android_native_buffer_t*
* | fix [1942438] eglGetCurrentSurface() returns bogus valueMathias Agopian2009-06-251-3/+5
| |
* | remove some spurious debuging LOGDMathias Agopian2009-06-031-1/+1
| |
* | fix/clean these Android.mk following dbort and joeo's commentsMathias Agopian2009-06-032-10/+8
| |
* | implement a real loader for EGL driversMathias Agopian2009-05-287-140/+476
| | | | | | | | | | we now look for a config file in /system/lib/egl/egl.cfg that describes the association of a display to a driver. these drivers are named: /system/lib/egl/lib{[EGL|GLESv1_CM|GLESv2] | GLES}_$TAG.so
* | Added most of the support needed for GLES 2.xMathias Agopian2009-05-2716-358/+962
| |
* | remove libEGL and libGLESv1_CM dependencies on libutils and libuiMathias Agopian2009-05-173-218/+3
| |
* | Merge commit 'goog/master' into merge_masterMathias Agopian2009-05-145-4/+18
|\ \ | |/ | | | | | | | | | | Conflicts: opengl/libagl/Android.mk opengl/libs/Android.mk opengl/libs/egl_impl.h
| * should help fix the Simulator build.Mathias Agopian2009-05-131-2/+2
| |
| * remove the gl{Vertex|Color|TexCoord|Normal}PointerBounds() "extension" fro ↵Mathias Agopian2009-05-081-0/+11
| | | | | | | | eglext.h
| * should fix the build.Mathias Agopian2009-05-081-1/+1
| |
| * only export the GL entry-points, hide everything else.Mathias Agopian2009-05-082-0/+6
| | | | | | | | | | | | | | | | Conflicts: opengl/libagl/Android.mk opengl/libs/Android.mk opengl/libs/egl_impl.h
* | fix EGL extension string namesMathias Agopian2009-05-071-2/+2
| |
* | created an new EGL extension called ANDROID_swap_rectangleMathias Agopian2009-05-072-0/+25
| | | | | | | | | | | | ANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing. However, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.
* | Merge commit 'goog/master' into merge_masterMathias Agopian2009-04-3012-1922/+915
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | Conflicts: libs/surfaceflinger/Layer.cpp libs/surfaceflinger/SurfaceFlinger.cpp opengl/libagl/egl.cpp opengl/libs/EGL/egl.cpp opengl/libs/GLES_CM/gl.cpp opengl/libs/GLES_CM/gl_api.in opengl/libs/gl_entries.in opengl/libs/tools/glapigen
| * oops forgot to remove a LOGD when loading an opengl driverMathias Agopian2009-04-241-1/+1
| |
| * Make sure to map undefined OES functions to their non-OES counterpart if it ↵Mathias Agopian2009-04-231-3/+27
| | | | | | | | exists.
| * use gl.h to generate the *.in files. we are now supporting the full gl.h and ↵Mathias Agopian2009-04-2311-861/+877
| | | | | | | | glext.h apis.
| * integrate some OpenGL ES changes back from master_gl in preparation of ↵Mathias Agopian2009-04-239-1491/+745
| | | | | | | | opening GLES to the NDK.
| * Automated import from //branches/donutburger/...@142484,142484Jack Palevich2009-03-241-15/+20
| |
* | Integrate from //sandbox/mathias/donut/...@145728Mathias Agopian2009-04-109-478/+934
| | | | | | | | SurfaceFlinger rework for new EGL driver model support.
* | Automated import from //branches/master/...@142578,142578Jack Palevich2009-03-251-15/+20
|/