100 Commits

Author SHA1 Message Date
Jack Palevich
3e5a5826c6 Fix glCopyTexSubImage2D inverted texture bug.
This bug only affects the software OpenGL ES
driver.
2010-03-12 17:32:26 -08:00
Mathias Agopian
8f2423e8f3 get rid off the YUV formats at the libui layer 2010-02-16 17:33:37 -08:00
Mathias Agopian
42d99d211f Proper EGLImageKHR error handling
Validate EGLImageKHR format and return an error for unsupported ones.
Also make sure to return an error when binding EGL_NO_IMAGE_KHR to a texture
2010-02-04 17:04:53 -08:00
Mathias Agopian
e304bdd5ee fix [2133133] Software OpenGL ES Lighting is buggy (GL Gears washed out bug)
A typo caused GL_AMBIENT_AND_DIFFUSE to only set the the ambient color.

Fix another typo which caused the viewer position to be wrong for
specular highlights.

Switch back to eye-space lighting, since there are still some issues
with some demos (San Angeles in particular).
2010-02-03 12:13:15 -08:00
Jack Palevich
019fe73ddb Fix ETC1 texture decoding.
etc1_decode_image requires the stride argument to be in bytes, but the
surface->stride field is in pixels. Convert by multiplying by pixel size.
2010-02-02 22:50:39 -08:00
Mathias Agopian
d1f73a2fca implement [2396050] Add ETC1 texture support to AGL 2010-02-02 20:19:54 -08:00
Mathias Agopian
9c84720da0 fix [2397853] glCopyTexImage2D crashes emulator
Fixed a typo which would cause a buffer overflow
2010-02-01 13:45:08 -08:00
Mathias Agopian
ac00ad1b88 fix [2341222] AGL version of glDrawTexxOES doesn't handle "Z" value correctly 2010-01-25 11:49:52 -08:00
Gary King
01f8c06cbe Use correct TLS codepath in graphics libraries
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
2010-01-12 17:35:35 -08:00
Doug Kwan
89fe245e04 Add misssing symbol type directives. 2009-12-08 11:22:38 -08:00
Mathias Agopian
7671c088cd am 77f17095: am 533a2803: Merge change I18ffb549 into eclair
Merge commit '77f17095ed17a6ccc7fc1f1b3ddb31c63bbf66a2' into eclair-mr2-plus-aosp

* commit '77f17095ed17a6ccc7fc1f1b3ddb31c63bbf66a2':
  fix [2069023] STOPSHIP: disable DEBUG_COPYBIT
2009-12-01 18:41:42 -08:00
Mathias Agopian
18ffb5493b fix [2069023] STOPSHIP: disable DEBUG_COPYBIT 2009-11-30 12:10:53 -08:00
Mathias Agopian
8e9af2bd1d am b439f561: am 13feccf5: Merge change I39f0003e into eclair
Merge commit 'b439f561a6aa3900f1850e71a4aa60618af13f90' into eclair-mr2-plus-aosp

* commit 'b439f561a6aa3900f1850e71a4aa60618af13f90':
  fix [2235414] libagl glDeleteBuffers() crashes
2009-11-19 19:12:01 -08:00
Mathias Agopian
39f0003e3a fix [2235414] libagl glDeleteBuffers() crashes
don't dereference null pointers, would happen if one of the array wasn't bound.
2009-11-19 17:32:05 -08:00
Mathias Agopian
da5e90bee4 am 66b5d902: am 27407208: Merge change Icf335098 into eclair
Merge commit '66b5d902a29e08237f16be53a84f9c2472df8493' into eclair-mr2-plus-aosp

* commit '66b5d902a29e08237f16be53a84f9c2472df8493':
  fix [2236865] STOPSHIP: bump soft gl and egl minor version number
2009-11-13 09:26:24 -08:00
Mathias Agopian
cf3350982f fix [2236865] STOPSHIP: bump soft gl and egl minor version number 2009-11-12 15:19:42 -08:00
Mathias Agopian
c6ed8100c2 am 0b9d3ba2: am c421fc2a: Merge change Id09376d1 into eclair
Merge commit '0b9d3ba2feab494e7bbd180b51a4311864d08e13' into eclair-mr2-plus-aosp

* commit '0b9d3ba2feab494e7bbd180b51a4311864d08e13':
  fix [2071412] work around mdp 32-bits fade limitation
2009-11-09 19:38:43 -08:00
Mathias Agopian
d09376d1e2 fix [2071412] work around mdp 32-bits fade limitation
make sure to always specify blits *inside* the source bitmap.
2009-11-09 17:55:59 -08:00
Jean-Baptiste Queru
ac94fbd081 merge from open-source master 2009-11-09 11:00:18 -08:00
Mathias Agopian
36fe3eeaa0 part of fix [2186418] switch passion to 24-bits framebuffer
add support for RGBX_8888 EGLConfigs in the software renderer
(since that's what we're using in the MDP case)
2009-11-04 14:51:18 -08:00
Mathias Agopian
bbf945f3c0 fix [2236832] software OpenGL ES driver doesn't work on sholes
make sure to not pass our fake handles to the real gralloc
2009-11-03 21:08:06 -08:00
Android (Google) Code Review
21977eb0f1 Merge change I56981989 into eclair
* changes:
  fix [2231527] Compatibility with SpaceJunk game (OpenGL)
2009-11-03 18:04:49 -05:00
Mathias Agopian
5698198967 fix [2231527] Compatibility with SpaceJunk game (OpenGL)
we treated all lights as local lights when transforming their
position back to object space.
2009-11-02 18:33:08 -08:00
Mathias Agopian
36d0184e08 fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
we lost the concept of vertical stride when moving video playback to EGLImage.
Here we bring it back in a somewhat hacky-way that will work only for the
softgl/mdp backend.
2009-11-02 17:48:33 -08:00
Iliyan Malchev
8c0eb9a6eb libagl: silence a LOGD
Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-10-30 18:29:08 -07:00
Mathias Agopian
f007a2faa1 return proper error code from eglCreateImageKHR 2009-10-29 16:45:41 -07:00
Mathias Agopian
85ade33edc fix [2071412] work around mdp 32-bits fade limitation
in the case where we fade a 32-bits surface (ie: GL_MODULATE w/ a,a,a,a + blending),
we first make a copy of the background into a RGB buffer, then we blend the 32-bits
surface as usual (without the alpha component), and finally blend the copy of
the background on top with 1-a. This uses a lot of bandwidth, but no CPU time.
2009-10-28 14:49:44 -07:00
Mathias Agopian
9042b4564d fix [2143798] Need to figure out how to do video
Use EGLImageKHR instead of copybit directly.
    We now have the basis to use streaming YUV textures (well, in fact
    we already are). When/if we use the GPU instead of the MDP we'll
    need to make sure it supports the appropriate YUV format.

    Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported
2009-10-27 13:13:29 -07:00
Android (Google) Code Review
62df88bcc9 Merge change I0953c1d5 into eclair
* changes:
  fix [2153873] EGL-1.4 software implementation misses surface attributes
2009-10-19 18:27:47 -04:00
Mathias Agopian
0953c1d5e1 fix [2153873] EGL-1.4 software implementation misses surface attributes 2009-10-19 14:46:27 -07:00
Android (Google) Code Review
3662f9ee5b Merge change Ide4c8cbc into eclair
* changes:
  fix [2151588] glTexSubImage2D() allows pixel format conversion
2009-10-19 17:31:52 -04:00
Mathias Agopian
78811906c3 fix [2151588] glTexSubImage2D() allows pixel format conversion 2009-10-19 14:23:02 -07:00
Mathias Agopian
88d11cfbfc one step towards fixing [2071412] work around mdp 32-bits fade limitation
simplify the GL_MODULATE case and allow blending disabled with RGBA texture
2009-10-16 18:24:12 -07:00
Christoffer Gurell
4a783af6ec Fix obvious typo bug in egl.cpp
can (and does sometimes) lead to accessing array with -1 as index
2009-10-12 11:57:27 +02:00
Mathias Agopian
594d02e54a fix [2147737] Pixel Flinger needs to set EGL_RENDERABLE_TYPE to EGL_OPENGL_ES_BIT
Also set max swap interval to 1, which is the only supported value currently.
2009-09-27 20:18:16 -07:00
Mathias Agopian
2ddccd1649 OpenGL ES doesn't allow glColorPointer with a size parameter other than 4 2009-09-24 14:22:29 -07:00
Jack Palevich
fb5ea2e579 AGL's glCompressedTexImage2D now checks the imageSize parameter.
This parameter indicates how many bytes of the image data are valid.

Previously this parameter was ignored.
2009-09-10 17:13:28 -07:00
Martin Storsjo
c0dea96491 Calculate specular lighting correctly
Since the lighting calculations are done in object space, the vector
from the object to the viewer also needs to be transformed to object
space.
2009-08-25 18:35:54 -07:00
Martin Storsjo
4f31af9346 If FLAGS_2D_PROJECTION is set, the MVP matrices need updating when changing the viewport. 2009-08-25 18:35:03 -07:00
Android Code Review
46ba1c964f Merge change 11093
* changes:
  If FLAGS_2D_PROJECTION is set, the MVP matrices need updating when changing the viewport.
2009-08-25 14:37:28 -07:00
Mathias Agopian
ffbc864329 better error handling in EGL 2009-08-20 00:12:56 -07:00
Mathias Agopian
5cec4742b3 second take, hopefully this time it doesn't break one of the builds: "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything." 2009-08-11 23:32:29 -07:00
Fred Quintana
64e89a8aff Revert "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything."
This reverts commit 8b76a0ac6fbf07254629ed1ea86af014d5abe050.
2009-08-11 20:49:35 -07:00
Mathias Agopian
8b76a0ac6f SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.
This change makes SurfaceHolder.setType(GPU) obsolete (it's now ignored).
Added an API to android_native_window_t to allow extending the functionality without ever breaking binary compatibility. This is used to implement the new set_usage() API. This API needs to be called by software renderers because the default is to use usage flags suitable for h/w.
2009-08-11 16:12:56 -07:00
Martin Storsjo
79ad0e6623 Calculate specular lighting correctly
Since the lighting calculations are done in object space, the vector
from the object to the viewer also needs to be transformed to object
space.
2009-08-11 18:01:14 +02:00
Martin Storsjo
1ac3b5ff60 If FLAGS_2D_PROJECTION is set, the MVP matrices need updating when changing the viewport. 2009-08-10 13:03:59 +02:00
Mathias Agopian
f1e5b0d4e5 add support for RGBX_8888 2009-08-07 20:55:14 -07:00
Mathias Agopian
abac01052c be more robust when errors occur upon EGL surface creation (ie: don't crash) 2009-07-31 14:47:00 -07:00
Mathias Agopian
5b5c914487 fixed some issues with the software renderer when surfaces are made current.
there was several issues:
- when a surface was made non-current, the last frame wasn't shown and the buffer could stay locked
- when a surface was made current the 2nd time, it would not dequeue a new buffer

now, queue/dequeue are done when the surface is made current.

for this to work, a new query() hook had to be added on android_native_window_t, it allows to retrieve some attributes of a window (currently only width and height).
2009-07-30 18:14:56 -07:00
Jean-Baptiste Queru
61e4248f8f merge from donut 2009-07-29 14:57:05 -07:00