215 Commits

Author SHA1 Message Date
Pablo Ceballos
dce45fd66b Merge "Add missing OpenGLES 3.1 bitfield constants." 2015-10-27 17:57:28 +00:00
Pablo Ceballos
a4d4e82927 Remove GLTrace support
GLTrace is defunct, it does not support newer GL features, breaks
security requirements, and has no supported tooling now that Eclipse
is at end of life.

Bug 22329852

Change-Id: I64c58464f8c2c7ae6125f5d5c7884e3fd34d68ea
2015-10-06 15:18:40 -07:00
Pablo Ceballos
3cdc93c6b4 Add missing OpenGLES 3.1 bitfield constants.
Bug 23892570

Change-Id: I92c7bb9bafb84259bdc42927193e989a6a95d4df
2015-09-29 23:25:54 +00:00
Chris Craik
59b429d106 Add tracing to GLSurfaceView
bug:21195272

Change-Id: I96bce6d6021fc720c73993202ba90997b0fc0e09
2015-06-08 17:40:00 -07:00
John Reck
f4faeac352 Cleanup Bitmap JNI attempt #2
Original version missed a spot

This reverts commit c02977e3bbfaaedcb1b1d67e1692becc7dddd59b.

Change-Id: I56244ce10d709fcdef42a001fe4c6ba7b6bbb04d
2015-03-05 13:56:16 -08:00
Chad Jones
c02977e3bb Revert "Cleanup Bitmap JNI"
This reverts commit b2915245b74b3b5541b123e38403f8e26426b4b7.

Change-Id: Idd7d7f33eec4ea5024c83de6b10d3d1a6ab2b17a
2015-03-05 19:34:26 +00:00
John Reck
b2915245b7 Cleanup Bitmap JNI
Fix a bunch of places where mNativeBitmap was being
poked at directly, switch them either to the NDK API
or to GraphicsJNI where it made sense

Change-Id: I6b3df3712d6497cba828c2d3012e725cb4ebb64d
2015-03-05 09:55:02 -08:00
John Reck
77e4a5250f Re-allow suppressing onDetachedFromWindow
Bug: 17578553

Games seem to be doing this to prevent destruction of their
GL contexts, and they assume it works even if it doesn't. However,
GLSurfaceView is clunky here, so while the app is doing something
questionable we don't really offer a better way. For now revert
back to kitkat behavior.

Change-Id: Icfa9e496279b9cfa47f9bc7f6848d9313caed0d5
2014-10-01 10:38:07 -07:00
John Reck
f47a594f52 Fix onTrimMemory for HardwareRenderer
Also fixes detachFunctor possibly drawing after return

 Bug: 15189843
 Bug: 15990672

Change-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3
2014-06-30 16:36:26 -07:00
Jesse Hall
61b2dfe224 opengl: Un-hide GLES31 and GLES31Ext classes
Bug: 15028495
Change-Id: Icda236ee12a06ef2eb9902253d272dee2b61f6ef
2014-05-21 21:04:20 -07:00
Jesse Hall
7ab63acdd0 opengl: Add GLES31 and GLES31Ext classes
Bug: 15028495
Change-Id: Ie967c1938060edb42864dd48efa668ae7bf5cd76
2014-05-21 21:04:20 -07:00
Jesse Hall
4660c9e064 am 43cea7ea: am 650a8860: am fc3c6a0e: Merge "EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested."
* commit '43cea7eadbcb3930887eadfa3f278e1a666449d0':
  EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.
2014-04-21 19:49:40 +00:00
Jin Zhebin
28a5c59357 EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.
OpenGL ES have 3 configuration: 1(EGL10.EGL_RENDERABLE_TYPE),
2(EGL_OPENGL_ES2_BIT), 3(EGL_OPENGL_ES3_BIT_KHR). The driver
should be get the according configuration parameter.
Now 1 is set to driver when Configuration 3 is set from user.
Specification EGL_OPENGL_ES3_BIT_KHR is set to driver when a OpenGL
ES 3 context is requested in setEGLContextClientVersion().

Change-Id: I980d9d8dbe5754295f8329fcf9378962d669fa89
Signed-off-by: Jin Zhebin <zhebinx.jin@intel.com>
Signed-off-by: bdeng3X <bingx.deng@intel.com>
2014-04-15 05:11:58 +08:00
John Reck
b14dfe20ef Revert "Revert "Workaround apps not calling super.onDetachedFromWindow()""
This reverts commit bac16fae7e6fceb1e516252ede673844b772e7c3.

Change-Id: I61e997b23fac1aa984129fdc0328426ff8891bdd
2014-03-06 14:12:35 -08:00
Bart Sears
bac16fae7e Revert "Workaround apps not calling super.onDetachedFromWindow()"
Requested by jreck to fix the build.

This reverts commit 198d20842a537f3df3584ea084e74220e172b086.

Change-Id: I733065cc124b59bf914034f5bac5e2e951a5b604
2014-03-06 21:09:51 +00:00
John Reck
198d20842a Workaround apps not calling super.onDetachedFromWindow()
Bug: 13338698
 Move the releasing of hardware resources to a new
 @hide onDetachedFromWindowInternal

Change-Id: I52b4e6ba4d5b3ce20b89cabffa248d1d780e3e81
2014-03-06 12:40:49 -08:00
Narayan Kamath
80009c0298 Fix bad link tag in javadoc.
Java7 javadoc tools seem to accept this without complaint
but not all targets use java7 yet.

Change-Id: Ib025d12550f5fd68edce5760747f9225a2be50c6
2014-02-28 14:06:44 +00:00
Narayan Kamath
1801b180da API changes for 64 bit platforms.
EGLObjectHandle.<init>(int) and int EGLObjectHandle.getHandle()
have now been deprecated and replaced with variants that take
and return java longs.

bug: 13181704
Change-Id: I67bef5fbf064e85205b8a85e00f91f4ffcf60d19
2014-02-27 14:17:48 +00:00
Narayan Kamath
e5f98941ba am 7aec4109: am 7aeb4307: am 2525acf5: am e4dae5f2: Merge "AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY"
* commit '7aec4109c53371e69bec111c69767810f45c301c':
  AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY
2014-02-27 13:33:23 +00:00
Ashok Bhat
64d38d9f48 AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY
Note that files changed in this patch have been automatically
generated by running frameworks/native/opengl/tools/glgen/gen
script

This will allow eglGetDisplay(int) to work on both 32-bit and
64-bit systems when EGL_DEFAULT_DISPLAY is passed as a parameter.

Change-Id: Idf27d6e00d623d331bb2d4d7f85fa450e0db26c9
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-26 19:07:54 +00:00
John Spurlock
a77cf87354 Merge "Tabs -> spaces in frameworks/base." 2014-02-25 19:57:33 +00:00
John Spurlock
8a985d24ce Tabs -> spaces in frameworks/base.
Change-Id: I5a84e8e93ac99b5ed0212b37bf66efa5e53864be
2014-02-25 09:49:29 -05:00
Narayan Kamath
58908b02f3 am d8410d38: am 614b00de: am a88abfb3: am 6ab07fac: Merge "Use long for pointers in opengl/EGL classes"
* commit 'd8410d38cf2eb133dab29aec722dce862584d115':
  Use long for pointers in opengl/EGL classes
2014-02-25 13:20:47 +00:00
Ashok Bhat
84bbeb9e0c Use long for pointers in opengl/EGL classes
Note that files changed in this patch have been automatically
generated by running frameworks/native/opengl/tools/glgen/gen script

This patch updates EGL classes in frameworks/base to support
64-bit platforms. Key changes in the EGL classes include

[x] EGLObjectHandle class - EGLObjectHandle class has two public
    methods (constructor and getHandle) that assume handles are
    32-bit. They have not been changed. Instead, two new hidden
    methods (EGLObjectHandle(long) and getNativeHandle) have been
    added.

[x] EG14 class - Two public methods eglGetDisplay and
    eglCreatePbufferFromClientBuffer assume that handles are 32-bit.
    They have been changed to throw unsupported operation exception
    on non 32-bit machines. Two new methods eglGetDisplay(long)
    and eglCreatePbufferFromClientBuffer(...long buffer..) have
    been added to support 64-bit handles.

Change-Id: I9e0f064e5b33700eb0baa2e1841a21f931f7a765
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-24 15:50:22 +00:00
Andy McFadden
9ba6ecb275 Hide three malformed GL bindings
They were replaced with correct bindings a while back, but the
broken methods weren't hidden.

Bug 6006380

Change-Id: I3432d37a6bf411bbd2b3ea363749e32fcff28672
2014-02-19 10:34:54 -08:00
Ashok Bhat
863f98bbb3 Use long to store pointers in GLES_JNI/EGL classes
Change-Id: I43b32f2a85c07b3f59c57e28e3d03e8d1cabcd8b
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-01-31 16:27:30 +00:00
Jesse Hall
a0ab49bb52 Merge "Fix incorrect name in eglSwapBuffers log wrapper" 2013-12-15 00:11:21 +00:00
Brian Harris
544604098c Fix incorrect name in eglSwapBuffers log wrapper
Correctly identify eglSwapBuffers in EGLLogWrapper, which had been
labeled as "eglInitialize".

Change-Id: I67c61e100e2f84400ceebc28712f036e5a055017
2013-12-10 15:36:46 -08:00
Andy McFadden
066bdcfe83 Merge "Fix wrapper equals()" 2013-06-24 17:42:25 +00:00
Andy McFadden
a017553638 Fix wrapper equals()
Make it faster and correcter.

Bug 9204146

Change-Id: Ieeb97b72005e831ec6b94fc24ed2c3bc03307c2a
2013-06-21 16:21:05 -07:00
Andy McFadden
043d13ad4b Minor fixes to android.opengl.Matrix
This has a minor API change: deprecation of the nullary constructor.
The class is entirely composed of static methods, and was written
without a constructor, but the compiler dutifully generated a
default implementation and the API tool slurped it up.

The other changes are to the documentation:

 - Added warnings about the use of overlapping input and output
   on certain methods.
 - Fixed a few inaccuracies (e.g. transposeM() returns a transposed
   matrix, not an inverted matrix).
 - Tidied up the formatting.
 - Generally placated the consistency hobgoblins.

Bug 8868762

Change-Id: Ie3f86b98c477d8dc82d9dcaa311959bd4d191359
2013-06-21 14:49:23 -07:00
Jesse Hall
0c79d808cb Add android.opengl.EGLExt class for EGL extensions
Add the ES-relevant constants from the EGL_KHR_create_context
extension. These allow apps to check which EGLConfigs (if any) support
ES3 contexts. Otherwise, the app has to create a context with an
EGLConfig and then check whether it is an ES2 or ES3 context.

Also move eglSetPresentationTimeANDROID from EGL14 to EGLExt, since it's an
extension function. It's new in API 18.

Bug: 8678160
Change-Id: I3cba6e59ebb0a3a4c4012aa54a36b940c288bcec
2013-05-01 13:46:58 -07:00
Jeff Brown
f48b03296c Revert all recent GLSurfaceView changes.
Several issues have been identified that will need to be
resolved carefully before we attempt to make similar changes.

1. Some applications make assumptions about the fact that all
   Runnables posted with queueEvent() will be executed before
   the next draw.  Because the Choreographer may post messages
   in the past (due at the frame time), these Runnables were
   not always running at the expected time.

2. Some applications apparently hijack the GLThread and try
   to run their own Looper on it.  This obviously won't work
   if we are already running one of our own.

We may need to add new rendering modes or target API checks
to provide an opportunity for applications to opt-in to the
changes in the future.

Bug: 8649804
Change-Id: I6289c3392a98cdbfaf28c7f4f7a8040f2138a3b4
2013-04-19 17:19:53 -07:00
Jeff Brown
8b60e45147 Fix change of behavior in Looper.quit().
It seems some applications rely on Looper.quit() terminating the
loop immediately without processing all messages.  Rather than
risk breaking them, make the safer behavior optional.

Also take care to properly drain the message queue before quitting
so that all of the Message instances are recycled.  This may
help release storage sooner in case the Looper doesn't get GC'd
promptly and its remaining queue of undelivered messages sticks
around.

Improve docs on runWithScissors.

Bug: 8596303
Change-Id: I8cbeb6f7a5f6b8e618b5109f87a03defc1486b9f
2013-04-18 19:04:39 -07:00
Mathias Agopian
78bc203312 don't trigger a render when setting the rendermode
also don't cache the rendermode, to mimic the older
behaviour.

Bug: 8656076
Change-Id: Id9383852bed073927db2364f7ac30a1be28b4cd8
2013-04-18 14:47:44 -07:00
Jesse Hall
c7bdd50c97 Merge "Unhide android.opengl.GLES30 class and contents" into jb-mr2-dev 2013-04-16 22:17:20 +00:00
Jesse Hall
811d373444 Merge "Add android.opengl.GLES30, hidden for now" into jb-mr2-dev 2013-04-16 21:32:36 +00:00
Jesse Hall
58d80c53c0 Unhide android.opengl.GLES30 class and contents
Bug: 8566953
Change-Id: I5273fb3bff642da5ff1eecb5899e8051402b19ca
2013-04-15 17:38:36 -07:00
Jesse Hall
d830e74ff4 Add android.opengl.GLES30, hidden for now
Bug: 8566953
Change-Id: Ia5a01d5e857b4fce12a451e2dcab0359758ad648
2013-04-15 17:37:33 -07:00
Mathias Agopian
ab814a6472 Don't draw synchronously in onResume()
this could cause a dead-lock if the applicaltion's draw
implementation blocks until something happenson the main
ui thread.

note: we're still doing this synchronous draw in onWindowResize() because
that's what the previous implementation did. Technically, it has the
same problem.

Bug: 8586305
Change-Id: I782568289cc9419346aeea73775d86faa28b3058
2013-04-10 12:33:15 -07:00
Mathias Agopian
57d019e222 rework GLSurfaceView so it can use the choreographer
GLSurfaceView will now automatically use the Choreographer to
schedule render updates on VSYNC. This happens only in
RENDERMODE_CONTINUOUSLY.

GLSurfaceView was rewriten to use a Looper and a HandlerThread
instead of a custom thread.

The basic mode of operation is unchanged, however the implementation
is largely different.

Removed support for older GPUs which had a limited number of contexts.

Bug: 8485730

Change-Id: I7b270f7ad7bb1259e858429054b1c8c9cc159dc6
2013-04-09 17:55:32 -07:00
Jack Palevich
ea62b95e7c Fix createSurface / eglCreateWindowSurface race.
Previously we could have returned from createSurface on the main thread
before calling eglCreateWindowSurface on the GLThread. That could lead
to a problem because the surface could be destroyed before
eglCreateWindowSurface got a chance to run.

Bug: 8328715
Change-Id: I273149f7d4b165abbe218a91ff54083f3f498cb0
2013-03-18 22:55:27 -07:00
Andy McFadden
34f17dd1f6 Publish new MediaCodec API
Un-hide two new methods in MediaCodec, one new constant, and a new
EGL extension.

Bug 7991062
Bug 8191230

Change-Id: I028669132d9ffda1e4b34a561bab3997bbd7dae5
2013-03-07 14:20:46 -08:00
Andy McFadden
0c361e9d3c Add eglPresentationTimeANDROID
Added EGL extension to set a timestamp on a surface.

Bug 8191230

Change-Id: Ie73bd7d1217348c9c64b8c68da38d671d48355f7
2013-03-05 11:16:10 -08:00
Mathias Agopian
15284dee8e regenerate GLES java bindings
- added most missing validation checks
    - glGet* validation reimplement from khronos documentation

    Bug: 7402895

Change-Id: I92a805bb1aba1600d3372dc2db22eab08c975d7f
2013-02-25 16:48:44 -08:00
Mathias Agopian
89be00bcda regenerate egl/gles stubs from glgen
those are minor cosmetic changes.

Change-Id: I84ee5383577f0ca33ed7cc32d03e53c1475f068d
2013-02-22 20:08:06 -08:00
Siva Velusamy
0c1761bd37 DdmServer: add controls for OpenGL tracing
Add a new JDWP packet to allow control of OpenGL tracing.

Change-Id: Ic89e2f6299238a612df2f914581049f2cbba088c
2012-12-19 16:31:56 -08:00
Mathias Agopian
29e0bd2f5a GLSurfaceView defaults to 888 instead of 565
Change-Id: Ie00fe578136365031e4bb878a04b68dc40e24b9e
2012-09-18 15:36:10 -07:00
Dianne Hackborn
f02b60aa4f Rename UserId to UserHandle.
This is the start of turning this into a formal public API.

Change-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0
2012-08-16 12:46:38 -07:00
Jeff Brown
1296c63bf1 Enable use of Surface as a native window in EGL14 wrapper.
Change-Id: Ia3546fd02f9b60d4505fbc0602522b95e3e5b6be
2012-08-08 18:23:59 -07:00