Commit Graph

300 Commits

Author SHA1 Message Date
Mathias Agopian
2cb90b3cc5 am 73e17015: Merge change I8d2de438 into eclair
Merge commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694' into eclair-mr2

* commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694':
  fix [2143798] Need to figure out how to do video
2009-10-29 01:26:48 -07:00
Mathias Agopian
2ad8ec50a5 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
32216166f1 added GL test for textured lines 2009-10-28 02:09:21 -07:00
Mathias Agopian
54ba51dff2 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
Jack Palevich
3901f6bd04 am a9046729: am a2ec1f4c: am 8f89a1a3: Merge change Ic620a52b into eclair
Merge commit 'a904672996c60c4ec50439a8d2be04fd9bd6444c'

* commit 'a904672996c60c4ec50439a8d2be04fd9bd6444c':
  Add size checks for glBufferData and glBufferSubData
2009-10-23 17:55:49 -07:00
Jack Palevich
ef1839094d am 8f89a1a3: Merge change Ic620a52b into eclair
Merge commit '8f89a1a360465e08e81ceca3cb3042606a98668b' into eclair-mr2

* commit '8f89a1a360465e08e81ceca3cb3042606a98668b':
  Add size checks for glBufferData and glBufferSubData
2009-10-23 17:39:47 -07:00
Jack Palevich
5afdc87704 Add size checks for glBufferData and glBufferSubData
Without the size checks it's possible for calls to glBufferData
and glBufferSubData to read off the end of the Buffer object's
data, which can cause page faults.

Fix end-of-line characters for the "spec" files. (That's why
every line of these files is changed.)

Enhance our code emitter to properly handle bounds checks for
possibly-null pointers.
2009-10-21 11:02:44 -07:00
Mathias Agopian
1594854d7e am 18dc8826: am 992f4802: am b34d5d52: Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
Merge commit '18dc8826a2c7244a7a61c9c53113516416db4714'

* commit '18dc8826a2c7244a7a61c9c53113516416db4714':
  Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
2009-10-19 16:43:15 -07:00
Mathias Agopian
dcf9e8cf5d am b34d5d52: Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
Merge commit 'b34d5d527596102ae7a040d787e4d8c336bf192b' into eclair-mr2

* commit 'b34d5d527596102ae7a040d787e4d8c336bf192b':
  Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
2009-10-19 16:27:37 -07:00
Mathias Agopian
673d2dbaae Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
this will be needed for SMP, but would improve dispatching GL calls a bit
on armv6 and above.
2009-10-19 16:13:46 -07:00
Mathias Agopian
f39c13329b am 5a4c7a61: am 60714539: am 62df88bc: Merge change I0953c1d5 into eclair
Merge commit '5a4c7a61da8f8586a535661c73ce4681cb9bf111'

* commit '5a4c7a61da8f8586a535661c73ce4681cb9bf111':
  fix [2153873] EGL-1.4 software implementation misses surface attributes
2009-10-19 15:55:51 -07:00
Mathias Agopian
feb0959742 am 62df88bc: Merge change I0953c1d5 into eclair
Merge commit '62df88bcc95a714c1d5035471dfe7fe0ddd9d50b' into eclair-mr2

* commit '62df88bcc95a714c1d5035471dfe7fe0ddd9d50b':
  fix [2153873] EGL-1.4 software implementation misses surface attributes
2009-10-19 15:33:59 -07:00
Android (Google) Code Review
898300890d 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
51f234aa2b am a4aa677d: am b263450f: am 3662f9ee: Merge change Ide4c8cbc into eclair
Merge commit 'a4aa677db36651e806f38e8aa7e8532da4f06b0d'

* commit 'a4aa677db36651e806f38e8aa7e8532da4f06b0d':
  fix [2151588] glTexSubImage2D() allows pixel format conversion
2009-10-19 15:04:54 -07:00
Mathias Agopian
2058da44e9 am 220f052f: am cf4ff740: am 639d69fe: Merge change I88d11cfb into eclair
Merge commit '220f052f6103655e08cba6cfb1dc542b81ffab11'

* commit '220f052f6103655e08cba6cfb1dc542b81ffab11':
  one step towards fixing [2071412] work around mdp 32-bits fade limitation
2009-10-19 15:04:36 -07:00
Mathias Agopian
0985f6a4ea fix [2153873] EGL-1.4 software implementation misses surface attributes 2009-10-19 14:46:27 -07:00
Mathias Agopian
edd3ac3a88 am 3662f9ee: Merge change Ide4c8cbc into eclair
Merge commit '3662f9ee5be3113b57693e1495fd83a2f5c7200c' into eclair-mr2

* commit '3662f9ee5be3113b57693e1495fd83a2f5c7200c':
  fix [2151588] glTexSubImage2D() allows pixel format conversion
2009-10-19 14:42:00 -07:00
Mathias Agopian
980a23abb4 am 639d69fe: Merge change I88d11cfb into eclair
Merge commit '639d69fe8799ac2fa0bbf7560229531377ccc0f4' into eclair-mr2

* commit '639d69fe8799ac2fa0bbf7560229531377ccc0f4':
  one step towards fixing [2071412] work around mdp 32-bits fade limitation
2009-10-19 14:41:48 -07:00
Android (Google) Code Review
e614aeaf32 Merge change Ide4c8cbc into eclair
* changes:
  fix [2151588] glTexSubImage2D() allows pixel format conversion
2009-10-19 17:31:52 -04:00
Mathias Agopian
d13e46158a fix [2151588] glTexSubImage2D() allows pixel format conversion 2009-10-19 14:23:02 -07:00
Mathias Agopian
6dbedd7519 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
Mathias Agopian
30c01a679d am 1ed0e43d: am 93942a5b: am 69fba87a: Merge change I6fc56997 into eclair
Merge commit '1ed0e43dac155db048ccc9152dc9425506099957'

* commit '1ed0e43dac155db048ccc9152dc9425506099957':
  fix [2187212] add support for GLESv2 dispatch based on TLS
2009-10-16 15:02:41 -07:00
Mathias Agopian
537728fcd3 am 69fba87a: Merge change I6fc56997 into eclair
Merge commit '69fba87ac16d1c10da81fc3213ae169c755797f4' into eclair-mr2

* commit '69fba87ac16d1c10da81fc3213ae169c755797f4':
  fix [2187212] add support for GLESv2 dispatch based on TLS
2009-10-16 14:33:10 -07:00
Mathias Agopian
618fa10949 fix [2187212] add support for GLESv2 dispatch based on TLS
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]
2009-10-14 02:06:37 -07:00
Jack Palevich
91d8ee34a7 am 09e7ef8a: am a5bfe52d: Merge change Ib3558f35 into eclair-mr2
Merge commit '09e7ef8aadb480349e9f63dcab155cb466296e92'

* commit '09e7ef8aadb480349e9f63dcab155cb466296e92':
  Make our choice of surface explicit.
2009-10-13 20:10:19 -07:00
Jack Palevich
d594fe1740 Make our choice of surface explicit. 2009-10-13 19:52:44 -07:00
Jack Palevich
9f73b7a5e4 am 65cc9418: am 332c7934: Merge change I69e21f5f into eclair-mr2
Merge commit '65cc9418af489bd98f3417f165b6837656383a1c'

* commit '65cc9418af489bd98f3417f165b6837656383a1c':
  GLDual test application.
2009-10-13 17:11:22 -07:00
Dima Zavin
1d8399bcd5 am 0b2dd95d: am 0c559a4b: am 98b3def2: Merge change I6261ab54 into eclair
Merge commit '0b2dd95d2ead61241688a121ae1c6a5092149ef6'

* commit '0b2dd95d2ead61241688a121ae1c6a5092149ef6':
  Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"
2009-10-13 17:02:02 -07:00
Jack Palevich
9bd30f05e8 GLDual test application.
Draws two images at once, one GL based, one GL2 based.
2009-10-13 14:56:00 -07:00
Eric Fischer
1c03325f36 am 94f3a363: Merge branch \'eclair-plus-aosp\' of ssh://android-git.corp.google.com:29418/platform/frameworks/base into eclair-mr2-plus-aosp
Merge commit '94f3a36326ddecaa09787d795451b0a229fe111c'

* commit '94f3a36326ddecaa09787d795451b0a229fe111c':
  Remove STOPSHIP BT logging.
  BT API security audit: fix a couple of permission mistakes.
  Fix issue #2175693: Add vmallocinfo to dumpstate
  add a way to easily catch and log GL errors (compile time flag)
  GPS: Fix problem with SUPL when SUPL APN is already active.
  Import revised translations.  DO NOT MERGE
  Fix issue 2174002: After rejecting Call when device ringtone is mute and playing music, audio is not transfered to BT device.
  Import revised translations.  DO NOT MERGE
2009-10-13 12:04:49 -07:00
android-build SharedAccount
e66dfa02cc merged d7c18d7672f3ecbbcb2f5bec92fe54dd990cb8dd, w/conflict in opengl/tests/copybits/Android.mk 2009-10-12 12:23:37 -07:00
Dima Zavin
1533d8eabc am 98b3def2: Merge change I6261ab54 into eclair
Merge commit '98b3def2983e78409002cf406574bbc8eeef8bfd' into eclair-mr2

* commit '98b3def2983e78409002cf406574bbc8eeef8bfd':
  Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"
2009-10-12 12:08:19 -07:00
Mathias Agopian
360c033029 am c5b09d8a: am 4ac45597: Merge change I15b0ebb9 into eclair
Merge commit 'c5b09d8a5f7bbf9545b1f2b2d69920fd115d3ecd'

* commit 'c5b09d8a5f7bbf9545b1f2b2d69920fd115d3ecd':
  a simple test app for gralloc
2009-10-12 11:19:04 -07:00
Jack Palevich
791212da2b am 7d638292: Merge change Ib4285d22 into eclair-mr2
Merge commit '7d638292969687ed4557d36e741e1275d2052fb0'

* commit '7d638292969687ed4557d36e741e1275d2052fb0':
  Change way we choose EGL surfaces to be compatible with the native
2009-10-12 11:18:32 -07:00
Christoffer Gurell
97640b9320 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
Dima Zavin
4445712fd4 Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"
This reverts commit ed5ecdba36648973be3033a045e2ece8bf039e4a.
2009-10-09 18:23:08 -07:00
Eric Fischer
c76f474549 Merge branch 'eclair-plus-aosp' of ssh://android-git.corp.google.com:29418/platform/frameworks/base into eclair-mr2-plus-aosp 2009-10-08 17:52:53 -07:00
Mathias Agopian
25194ea410 am 846322a9: Merge change Ib96df854 into eclair
Merge commit '846322a9ae5ef8155cca0059d3f64d718516ca13' into eclair-mr2

* commit '846322a9ae5ef8155cca0059d3f64d718516ca13':
  add a way to easily catch and log GL errors (compile time flag)
2009-10-08 17:36:06 -07:00
Mathias Agopian
7d21a745ac add a way to easily catch and log GL errors (compile time flag) 2009-10-08 15:58:11 -07:00
Mathias Agopian
661bda98e4 am 9d6a685b: Merge changes I430cf57b,I51f02f67,I464f13f3 into eclair
Merge commit '9d6a685ba939f413a8d3e1e97627593aa1cdf6cb' into eclair-mr2

* commit '9d6a685ba939f413a8d3e1e97627593aa1cdf6cb':
  fix [2168528] enable glTexImage2D code path in SF for software-only buffers
  fix [2168531] have software-only gralloc buffer side-step the HAL
  fix [2167050] glTexImage2D code path buggy in SurfaceFlinger
2009-10-06 19:17:44 -07:00
Mathias Agopian
3330b20303 fix [2167050] glTexImage2D code path buggy in SurfaceFlinger
When EGLImage extension is not available, SurfaceFlinger will fallback to using
glTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an
extra copy. However this code path has never been exercised and had some bugs
which this patch fix.

Mainly the scale factor wasn't computed right when falling back on glDrawElements.
We also fallback to this mode of operation if a buffer doesn't have the adequate
usage bits for EGLImage usage.

This changes only code that is currently not executed. Some refactoring was needed to
keep the change clean. This doesn't change anything functionaly.
2009-10-06 17:00:25 -07:00
Doug Kwan
4633c49daa Add back missing shared libraries used in executables in link commands. These
executables have calls to some shared libraries without explicitly linking
them.  Currently it works as linker links these libraries via dependencies of
other libraries.  This is fragile and not the right thing to do.
2009-10-04 19:27:57 -07:00
Mathias Agopian
d11f60ec4f am 4ac45597: Merge change I15b0ebb9 into eclair
Merge commit '4ac45597fb70ca4f268cb1920fcb2de61aff4a3d' into eclair-mr2

* commit '4ac45597fb70ca4f268cb1920fcb2de61aff4a3d':
  a simple test app for gralloc
2009-10-04 15:14:32 -07:00
Jack Palevich
99dd08fc36 Change way we choose EGL surfaces to be compatible with the native
window surface.
2009-10-02 14:43:51 -07:00
Mathias Agopian
7460160b80 a simple test app for gralloc 2009-10-01 17:23:05 -07:00
Jack Palevich
f38bce2387 Add a simple test of OpenGL ES 1.x. 2009-09-30 14:17:12 -07:00
Android (Google) Code Review
e9321e3abb Merge change I8018f091 into eclair
* changes:
  Add very simple input path. Fix end-of-line issues.
2009-09-30 09:15:16 -04:00
Jack Palevich
e5810d1f98 Add very simple input path. Fix end-of-line issues. 2009-09-30 06:14:24 -07:00
Jack Palevich
38d3c2a850 Don't ask for pbuffer support, because we don't use any pbuffers. 2009-09-28 18:28:07 -07:00
Jack Palevich
34329eed2c Print out EGL configuration info for the config we've chosen.
Don't ask for PBuffer support, since we don't actually use pbuffers,
and some drivers might not support them.
2009-09-28 18:22:01 -07:00
Jack Palevich
d9872bf424 Print out all available EGL configurations. 2009-09-28 16:34:45 -07:00
Mathias Agopian
56fa27572a 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
Dima Zavin
7695a5865e egl: temporarily also include eglTerminate->eglInitialize hack for 8k
Change-Id: Id5c51e54e733b24e5d5d5de0dcca84ac53afd3a9
Signed-off-by: Dima Zavin <dima@android.com>
2009-09-26 01:00:49 -07:00
Jack Palevich
f1006c23c6 Fix build. 2009-09-25 19:55:07 -07:00
Jack Palevich
43123766f5 Tighten up sample code.
- Still fails to work; don't know why.
2009-09-25 19:07:31 -07:00
Jack Palevich
18e24f9525 Use EGLUtils to simplify choosing a configuration.
Doesn't actually select anything, possibly due to device driver errors.
2009-09-25 16:25:19 -07:00
Mathias Agopian
c5f0155d7f OpenGL ES doesn't allow glColorPointer with a size parameter other than 4 2009-09-24 14:22:29 -07:00
Jack Palevich
bc4a4177a3 Make tritex test run with latest OpenGL driver.
Use EGLUtils::selectConfigForNativeWindow to select a legitimate
configuration. (Before now we had been selecting an incorrect
configuration, but the older drivers let us get away with it.)

Converted the source to C++ so we can call selectConfigForNativeWindow.
2009-09-24 12:19:05 -07:00
Jack Palevich
9195835537 Create samples showing how to call OpenGL from JNI libraries. 2009-09-23 14:48:07 -07:00
Mathias Agopian
8c17384a5e log an error when loading an existing GL driver fails 2009-09-20 16:07:26 -07:00
Jack Palevich
9ec24af0e8 Draw a green triangle using OpenGL 2.0 APIs. 2009-09-18 18:27:37 -07:00
Jack Palevich
058777592d Add additional error checking, exit early if errors occur. 2009-09-17 10:59:23 -07:00
Jack Palevich
13e68424fb Add EGL call error checking. 2009-09-16 11:08:43 -07:00
Jack Palevich
cfa316b9e7 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
Jason Sams
493220dcb8 Simple app to create a gl2 context and dump the strings. 2009-09-01 20:41:05 -07:00
Martin Storsjo
e03eaa1551 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
d914215edf 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
7e05c0e886 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
a69e0ed4a3 fix a bug recently introduced where EGL couldn't be initialized again after it had been terminated once 2009-08-24 21:47:13 -07:00
Mathias Agopian
9429e9c8ad first step for fixing [2066786] EGL object lifetime management doesn't 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.
2009-08-21 19:45:44 -07:00
Mathias Agopian
baca89c06a fix a bug in ComponentSizeChooser where it could pick a software EGLConfig 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.
2009-08-20 19:09:34 -07:00
Mathias Agopian
0696a57229 better error handling in EGL 2009-08-20 00:12:56 -07:00
Mathias Agopian
923c661a86 fix bug [2021677] egl driver unloaded after eglTerminate() is called
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
2009-08-17 18:07:06 -07:00
Mathias Agopian
24e5f52901 Better error handling in EGL extensions 2009-08-12 21:18:15 -07:00
Mathias Agopian
5221271375 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
Android (Google) Code Review
d2a6788876 Merge change 20893
* changes:
  show that we need to glClear to be fast(er)
2009-08-11 20:51:07 -07:00
Android (Google) Code Review
8717ff585e Merge change 20892
* changes:
  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."
2009-08-11 20:50:32 -07:00
Mathias Agopian
6c06ffc6d0 show that we need to glClear to be fast(er) 2009-08-11 20:50:20 -07:00
Fred Quintana
b2fd4665e6 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
687bea2359 option to use drawtexture at compile time 2009-08-11 20:12:18 -07:00
Mathias Agopian
cba73d3210 fix and extend the filter test a bit 2009-08-11 19:55:31 -07:00
Mathias Agopian
df37b62c62 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
b94878cfb6 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
Mathias Agopian
1d3bcd6e21 workaround a bug in the SGX driver that would prevent eglGetConfig to work properly 2009-08-10 16:48:22 -07:00
Martin Storsjo
924cba8056 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
dfbec0e282 add support for RGBX_8888 2009-08-07 20:55:14 -07:00
Mathias Agopian
0928e31cc7 minor code clean-up 2009-08-07 16:38:10 -07:00
Mathias Agopian
653870d5e9 update most gl tests to use EGLUtils 2009-08-06 16:26:15 -07:00
Mathias Agopian
6cf50a770d added two EGL helpers for selecting a config matching a certain pixelformat or native window type 2009-08-06 16:05:39 -07:00
Mathias Agopian
1c3561e8d8 added a gl swapinterval test 2009-08-05 17:38:49 -07:00
Mathias Agopian
591018aaf9 opengl tests 2009-08-05 12:22:29 -07:00
Mathias Agopian
d274eae545 log opengl-call-with-no-context only once per thread, instead of for each function call 2009-07-31 16:23:03 -07:00
Mathias Agopian
cf81c84e43 be more robust when errors occur upon EGL surface creation (ie: don't crash) 2009-07-31 14:47:00 -07:00
Mathias Agopian
cb6b904164 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
dee1b302ed merge from donut 2009-07-29 14:57:05 -07:00
Jean-Baptiste Queru
02f54246f5 donut snapshot 2009-07-29 14:25:07 -07:00
Mathias Agopian
574c16f9f8 GLESv2 couldn't be loaded due to wrong path specification 2009-07-29 11:10:29 -07:00
Jean-Baptiste Queru
9261bae1d2 Merge korg/donut into korg/master 2009-07-25 21:15:25 -07:00
Jean-Baptiste Queru
4d3b5c1e36 donut snapshot 2009-07-21 11:16:54 -07:00
Jean-Baptiste Queru
77de619c05 Merge commit 'goog/readonly-korg-master' into merge_korg_master
* commit 'goog/readonly-korg-master':
  Fixed Android issue #400, where the Intent documentation was inaccurate in a number of places, undoubtedly causing untold grief to innumerable masses.
  Bug Fixed for libagl.
2009-07-16 14:54:11 -07:00
Mathias Agopian
f13901eaa9 remove libagl's dependency on gralloc_priv.h 2009-07-15 18:53:32 -07:00
Mathias Agopian
8e5fb52a1d this header file is not needed anymore 2009-07-14 14:50:44 -07:00
Android (Google) Code Review
2521f47c4d am 46e28db8: Merge change 6713 into donut
Merge commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6'

* commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6':
  fix for [1969185] valgrind errors in new gl stuff
2009-07-09 17:35:26 -07:00
Mathias Agopian
dacd7a33c4 fix for [1969185] valgrind errors in new gl stuff 2009-07-09 17:33:15 -07:00
Marco Nelissen
fc865658b4 Make opengl loader use an absolute path. 2009-07-07 16:18:18 -07:00
Shin-ichiro KAWASAKI
4cce5bd5cc Bug Fixed for libagl. 2009-07-07 19:14:13 +09:00
Mathias Agopian
295eff2008 fix a bug where gl didn't always fallback to software when copybit failed. minor optimizations to copybit codepath. 2009-06-29 16:36:49 -07:00
Mathias Agopian
240c9fe59e use copybit for eglSwapBuffers() copy-back operations 2009-06-25 15:39:25 -07:00
Android (Google) Code Review
defcf8020d Merge change 5352 into donut
* changes:
  fix [1942438] eglGetCurrentSurface() returns bogus value
2009-06-25 13:22:55 -07:00
Mathias Agopian
8d2e83b9f4 Add eglGetRenderBufferANDROID() extension, which returns the current render buffer as an android_native_buffer_t* 2009-06-25 00:02:44 -07:00
Mathias Agopian
af74213546 fix [1942438] eglGetCurrentSurface() returns bogus value 2009-06-25 00:01:11 -07:00
Mathias Agopian
f51f9c8af3 fix [1942438] eglGetCurrentSurface() returns bogus value 2009-06-24 23:59:16 -07:00
Mathias Agopian
5911aa9510 copybit now uses a native_handle_t* instead of a fd/offset 2009-06-24 20:39:16 -07:00
Mathias Agopian
4c4b387afb merge master in master_gl 2009-06-24 18:31:21 -07:00
Mathias Agopian
e7829b8656 fix a bug where copybit would be rejected in landscape mode 2009-06-23 19:50:41 -07:00
Mathias Agopian
9f8b0c9097 Android now has its own EGL extension block (yay) 0x3140-0x314F. EGL_NATIVE_BUFFER_ANDROID now maps to 0x3140 instead of using the staging range 2009-06-23 14:05:35 -07:00
Android (Google) Code Review
60491bc2bf am 4fb69770: Merge change 5024 into donut
Merge commit '4fb69770e70352c987cc79414db7a03b52296ca7'

* commit '4fb69770e70352c987cc79414db7a03b52296ca7':
  Remove opengl tests from tests build
2009-06-22 22:04:57 -07:00
Android (Google) Code Review
952663ef57 am 5277103d: Merge change 5035 into donut
Merge commit '5277103db9033226814edc8fcba6f4ba4e846678'

* commit '5277103db9033226814edc8fcba6f4ba4e846678':
  add glTexParameteri() and fix glTexParameteriv()
2009-06-22 22:04:12 -07:00
Android (Google) Code Review
610f4dbe21 Merge change 5024 into donut
* changes:
  Remove opengl tests from tests build
2009-06-22 18:30:40 -07:00
Mathias Agopian
b12f99b315 add glTexParameteri() and fix glTexParameteriv() 2009-06-22 18:09:09 -07:00
Sriram Raman
8c1127fbe3 Remove opengl tests from tests build 2009-06-22 17:22:12 -07:00
Mathias Agopian
7272add7a5 we were not fetching the texture coords in the copybit case, so we were using garbage 2009-06-18 19:31:07 -07:00
Mathias Agopian
aa6e88b808 fix/add some comments 2009-06-17 21:58:18 -07:00
Mathias Agopian
6d2cad2c6c s/w OpenGL no detects and handles all any combinations of triangle fans corresponding to a rectangle
this allows fallback to faster copybit code in almost all cases.
2009-06-17 21:18:56 -07:00
Mathias Agopian
cf251b9e3b fix a scissor bug in the GLES-on-top-of copybit code 2009-06-16 18:08:29 -07:00
Mathias Agopian
b6822d7a3e Merge commit 'goog/master' into merge_master 2009-06-16 12:38:55 -07:00
Android (Google) Code Review
168f3c5201 am b4f7592b: Merge change 4299 into donut
Merge commit 'b4f7592b03c8424302c10e61474b0e2d0a71a630'

* commit 'b4f7592b03c8424302c10e61474b0e2d0a71a630':
  Allow pre-Donut apps to use indirect Buffers in GL11 Pointer methods.
  Fix IntentFilter constructor to properly process the action parameter.
2009-06-16 08:37:21 -07:00
Jack Palevich
c96812cb27 Allow pre-Donut apps to use indirect Buffers in GL11 Pointer methods.
Apps targeting Donut and newer will throw an exception.

We use a heuristic to determine whether an app is pre-Donut or not:
We take the address space's __progname, and use that as the application's
package name. For simple applications this is correct.
2009-06-15 21:03:24 -07:00
Mathias Agopian
0a3139a21e fix a bug where copybit only renders in the first buffer when used with s/w GL 2009-06-10 16:15:32 -07:00
Mathias Agopian
7e2a937c4f revive the copybit test. 2009-06-09 21:38:08 -07:00
Mathias Agopian
1a0c4cd5d8 Merge commit 'goog/master' into merge_master 2009-06-05 15:45:39 -07:00
Mathias Agopian
9648c1a2b9 make sure clear the draw and read EGLSurface when eglMakeCurrent() is called for unbinding from the thread 2009-06-03 19:00:53 -07:00
Mathias Agopian
f909cb6c69 remove some spurious debuging LOGD 2009-06-03 18:30:22 -07:00
Mathias Agopian
acdebe352d fix/clean these Android.mk following dbort and joeo's comments 2009-06-03 18:26:58 -07:00
Mathias Agopian
bee8b90e6e am cede1ed3: fix [1610840] Positional light doesn\'t work correctly on emulator
Merge commit 'cede1ed3e1721dc4a697a540388ef0f4b51c60eb'

* commit 'cede1ed3e1721dc4a697a540388ef0f4b51c60eb':
  fix [1610840] Positional light doesn't work correctly on emulator
2009-06-03 15:12:30 -07:00
Android (Google) Code Review
a35197e104 am 5de674e1: Merge change 3013 into donut
Merge commit '5de674e1cbd6e43b6d7954ccacf5cd709b30265d'

* commit '5de674e1cbd6e43b6d7954ccacf5cd709b30265d':
  Adding missing callback onJsConfirm to dismiss any confirmation dialogs
  fix a bug in GL lighting where the specular component could be ommited when vertex material was disabled.
2009-06-03 15:12:28 -07:00
Mathias Agopian
69ca17a124 fix [1610840] Positional light doesn't work correctly on emulator
This bug was introduced when lighting computations was changed from eye-space to object-space.
The light position need to be transformed back to object-space each time the modelview matrix changes which requires us to compute the inverse of the modelview matrix. This computation was done with the assumption that normals where transformed (which was the case when the computation was made in eye-space), however, normals only require the inverse of the upper 3x3 matrix while transforming positions requires the inverse of the whole matrix.
This caused the interesting behavior that lights were more-or-less transformed properly, but not translated at all, which caused improper lighting with directional lights in particular.

There was also another smaller bug affecting directional lights: when vertices are read, only the active component are read, the other ones are ignored, later, the transformation operations are set up to ignore the unset values, howver, in the case of lighting, we use the vertex in object space (that is, before it is transformed), and therefore were using uninitalized values; in particular w.
2009-06-03 15:09:52 -07:00
Android (Google) Code Review
2216b95610 Merge change 3013 into donut
* changes:
  fix a bug in GL lighting where the specular component could be ommited when vertex material was disabled.
2009-06-03 15:07:26 -07:00
Android (Google) Code Review
cddc40a4f3 am 5f784df5: Merge change 3011 into donut
Merge commit '5f784df5680e07f6cbc5d929560dfadc0e22db3b'

* commit '5f784df5680e07f6cbc5d929560dfadc0e22db3b':
  simplify this test
2009-06-02 22:56:05 -07:00
Mathias Agopian
50aba6d31d fix a bug in GL lighting where the specular component could be ommited when vertex material was disabled.
the specular enable flag wasn't computed in that case.
2009-06-02 22:51:09 -07:00
Mathias Agopian
17836acabf simplify this test 2009-06-02 18:35:48 -07:00
Android (Google) Code Review
cb1ae92655 am 7728be03: Merge change 2896 into donut
Merge commit '7728be035f5b3b814ef4455d1742d069dbcffb61'

* commit '7728be035f5b3b814ef4455d1742d069dbcffb61':
  added a test that exhibits some lighting issues in the software renderer. see external bug 1709
2009-06-02 00:36:42 -07:00
Mathias Agopian
4d661eb62c added a test that exhibits some lighting issues in the software renderer. see external bug 1709 2009-06-01 18:59:44 -07:00
Mathias Agopian
de58697644 implement a real loader for EGL drivers
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
2009-05-28 20:31:40 -07:00
Mathias Agopian
b1a39d67be Added most of the support needed for GLES 2.x 2009-05-27 20:38:06 -07:00
Mathias Agopian
a3d66a834f minor modifications to the official GLES 2.x headers
- changed glTexImage2D() declaration so it matches that of GLES 1.x; otherwise we can't include both headers (!!!)
- added parameter names to the declaration of some extensions (this is needed by glapigen and glentrygen)
2009-05-27 20:32:20 -07:00
Mathias Agopian
48efd95015 add GLES 2.x headers 2009-05-27 20:31:18 -07:00
Mathias Agopian
310f8da0c3 merge master to master_gl 2009-05-22 02:16:08 -07:00
Android (Google) Code Review
e6b922ab30 am bb7b7b31: Merge change 2152 into donut
Merge commit 'bb7b7b316a6a15f4df6af3c62a293920c68c7b00'

* commit 'bb7b7b316a6a15f4df6af3c62a293920c68c7b00':
  make sure to fail to software when the h/w renderer cannot be initialized
2009-05-20 22:44:06 -07:00
Mathias Agopian
5c846bd6cf make sure to fail to software when the h/w renderer cannot be initialized 2009-05-20 17:58:36 -07:00