Commit Graph

63 Commits

Author SHA1 Message Date
Hiroshi Yamauchi
4e7de461c1 Replace JNI primitive array critical calls with non-critical ones.
The glgen part.

Bug: 19235243
Change-Id: I69dfa84f15366808b964517c1ba270ddeb3c5940
2015-05-12 14:24:23 -07:00
Dan Albert
ad0f52fc2b Fix pointer-to-int and int-to-pointer warnings.
Change-Id: If534cbcf2c3e644270572cbf829ba9b5acab29e6
2015-02-23 10:45:27 -08:00
Jesse Hall
4aaa39358f Merge "Avoid overwriting EGL14.EGL_NO_SURFACE" 2014-12-02 00:34:51 +00:00
Sangkyu Lee
7290c24354 Avoid overwriting EGL14.EGL_NO_SURFACE
Both EGL14 and EGLExt have the same initialization codes for
EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT and EGL14.EGL_NO_DISPLAY.
Since EGLExt is initialized later, they are overwritten by EGLExt's
initialization codes.
Therefore, EGL_NO_SURFACE returned by methods in EGL14 is not
actually EGL14.EGL_NO_SURFACE object and it makes several problems in
handling error cases.
For instance, "Let's fish" game application cannot be run on L.

To solve the problem, this patch makes EGL14.EGL_NO_SURFACE,
EGL14.EGL_NO_CONTEXT and EGL14.EGL_NO_DISPLAY initialized just once.

Change-Id: Icce878164ff0b715ad2b5a2cd038a9616c7cf1e9
2014-11-25 10:46:06 +09:00
Andreas Gampe
b5da0d78d2 Frameworks/native: Add pragmas to glgen headers
The code currently being generated by glgen is not the cleanest, but
we would like to get core/jni onto -Werror. Thus add pragmas turning
off warnings locally to the C headers.

Also fix signed-comparison in two functions.

Longer term TODO: Emit clean code.

Change-Id: Iee8582f8c0c1de076d64851d3b6ca467afd5bc43
2014-11-12 10:10:12 -08:00
Jesse Hall
391109083f opengl: Fix include style in generated JNI code
Bug: 15028495
Change-Id: Ie38d398751a374f11bef8944a2aa0f8311934911
2014-05-20 13:31:05 -07:00
Jesse Hall
0232d3d11c opengl: Un-hide GLES31 and GLES31Ext classes
Bug: 15028495
Change-Id: Iaac1e8d2ad5ea840d728a78804e2566be18a4340
2014-05-20 13:31:05 -07:00
Jesse Hall
16f0392874 opengl: Add GLES31 and GLES31Ext class templates
Bug: 15028495
Change-Id: I276d04f029d441e092428fad72f09ca15e1d233a
2014-05-20 13:31:05 -07:00
Jesse Hall
2fc72d1c02 opengl: Fix whitespace in Java templates
Someone fixed these in the generated code, so re-generating even with
no other changes caused diffs. Better to just fix it at the source.

Bug: 15028495
Change-Id: I248f9796d4e3d904c4c0dc15be5f8de231df7285
2014-05-18 15:34:04 -07:00
Narayan Kamath
2c95c57b62 am 3e599252: am 93e6a48b: Merge "AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY"
* commit '3e599252c0f5a8e70f4b8d4ab5baffb7e5b0b0e1':
  AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY
2014-02-27 13:29:42 +00:00
Ashok Bhat
d61b48c090 AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY
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: I0d7e9ca5410b0dd893eacc02aac40956908e4f25
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-26 19:06:27 +00:00
Narayan Kamath
d6b4e78dca am aa01ad91: am aaa27fd5: Merge "Use reinterpret_cast when an integer is cast to a pointer"
* commit 'aa01ad91cd22304fd15810f241c67ebb59e90c04':
  Use reinterpret_cast when an integer is cast to a pointer
2014-02-25 13:17:12 +00:00
Narayan Kamath
ab7b4fe490 am 097b5991: am e5c99bf3: Merge "Use long for pointers in opengl/EGL classes"
* commit '097b59919f01d7b057d252d23cb96ce5fcdd9469':
  Use long for pointers in opengl/EGL classes
2014-02-25 13:17:11 +00:00
Narayan Kamath
aaa27fd5a0 Merge "Use reinterpret_cast when an integer is cast to a pointer" 2014-02-25 13:05:49 +00:00
Ashok Bhat
d8f096114d Use reinterpret_cast when an integer is cast to a pointer
Change-Id: I5adcd59f58c029f7b2b596f4826d8ea69fb9bba6
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-24 14:34:16 +00:00
Ashok Bhat
ab6fc2a86f Use long for pointers in opengl/EGL classes
EGL classes in frameworks/base have to be updated 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.

To allow the above changes in frameworks/base EGL classes,
corresponding code generation mechanism in frameworks/native has
been updated.

Change-Id: I5d0a62e10c20ccf05f610d6608b8dfb6414b5116
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-24 14:27:44 +00:00
Narayan Kamath
9076fa78d2 Merge "Update EGL codegen to be in sync with frameworks/base" 2014-02-21 14:27:36 +00:00
Ashok Bhat
fb913cdb47 Update GLES codegen to be in sync with frameworks/base
Patch from synergydev with commit-id 01994c79 changed
core/jni/com_google_android_gles_jni_GLImpl.cpp in the
frameworks/base. However the corresponding code snippet
in frameworks/native was not updated. This patch addresses
the issue.

Change-Id: I89c3d88de832efc8cbbe682c8a7ff7dfbef99db3
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-20 19:56:50 +00:00
Ashok Bhat
8e472fb443 Update EGL codegen to be in sync with frameworks/base
Patch from Takeshi Aimi with commit-id f9337377 changed
core/jni/android_opengl_EGL14.cpp in the frameworks/base.
However the corresponding code snippet in frameworks/
native was not updated. This patch addresses the issue.

Change-Id: I40bcc43d36d7ab4e0db4a73556a4f7480c7431c1
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-20 19:33:15 +00:00
Andy McFadden
50166d1173 Hide three malformed GL bindings
They were replaced with correct bindings a while back, but the
broken methods weren't hidden.

Also, pick up two changes that were made to the generated code
rather than the source.

Bug 6006380

Change-Id: Ibfe9a5f2e13e745f8d82116d1b4d8c2d025ac830
2014-02-19 10:27:24 -08:00
Mathias Agopian
db89edc94b All consumers now take an IGraphicBufferConsumer instead of a BufferQueue
this means they only have access to the consumer end of
the interface. we had a lot of code that assumed consumers
where holding a BufferQueue (i.e.: both ends), so most of
this change is untangling in fix that

Bug: 9265647
Change-Id: Ic2e2596ee14c7535f51bf26d9a897a0fc036d22c
2013-08-06 20:05:36 +00:00
Jesse Hall
16b4f33d2b am 958ef3d7: am c8639351: Generate new EGLExt class
* commit '958ef3d79c48ddef3afa5327f7ed15a5ecfd2d1d':
  Generate new EGLExt class
2013-05-02 13:49:25 -07:00
Jesse Hall
c86393510c Generate new EGLExt class
Initially populated with EGL_ANDROID_presentation_time (moved from the
EGL14 class) and the ES-relevant parts of EGL_KHR_create_context.

Bug: 8678160
Change-Id: Ifed2ee3da264ca701ae1f4b309a0758f7fcc3acc
2013-05-02 13:44:29 -07:00
Jesse Hall
c59db7fdfe am 34c0fb18: am cc8f8ad3: Merge "Fix glGetUniformIndices JNI prototype" into jb-mr2-dev
* commit '34c0fb183767b80e93a7cd77233ead5fe50bd822':
  Fix glGetUniformIndices JNI prototype
2013-04-30 19:34:49 -07:00
Jesse Hall
46fc9cb60c Fix glGetUniformIndices JNI prototype
Bug: 8657863
Change-Id: I130d1b54d0cbd1f8613d3108482526d05d73d9e4
2013-04-29 16:01:56 -07:00
Andy McFadden
42137d2e72 Fix range check
The getarray() function checks to see if there's enough room in
the buffer, but it's using a byte count for the available size
and a possibly non-byte count for the space required.  Dividing
down by the unit size corrects the problem.

Bug 8713753

Change-Id: Id42c0df65c3233dcc5f76d05e229f7d40d4c1f99
2013-04-25 15:58:25 -07:00
Jesse Hall
c0d184b8c1 Subclass GLES30 from GLES20, @Deprecate GL_STENCIL_INDEX
Bug: 8566953
Change-Id: I66085c300a8658a4018796645257edb73be94719
2013-04-15 16:42:21 -07:00
Jesse Hall
4f6693080c Special-case glGetActiveUniformBlockName
Bug: 8566953
Change-Id: Ic9b3be9fa0136495633ee3b1c38583cfa315942a
2013-04-10 22:00:39 -07:00
Jesse Hall
fa4c1170ac Special-case glGetStringi
Modeled on the existing glGetString special-case.

Bug: 8566953
Change-Id: Icc6b23ab53b00510368900ad99c92028253dc797
2013-04-10 22:00:33 -07:00
Jesse Hall
1c8b8e8b8e Special-case glMapBufferRange
Updating the generator to handle GLvoid*/java.nio.Buffer return values
probably wouldn't be too hard, but this is the only function that
needs it currently.

Bug: 8566953
Change-Id: I359a951136ab479ab576ce2e5a2881b937b7e8c9
2013-04-10 22:00:26 -07:00
Jesse Hall
610bbf2b6f Special-case glGetBufferPointerv
Bug: 8566953
Change-Id: I11a7394eb46f229fd3ae716e77487a45bac6ed53
2013-04-10 22:00:18 -07:00
Jesse Hall
27c86b9623 Special-case glGetUniformIndices
Bug: 8566953
Change-Id: Ic8bcd03e8d41a81f48d603f67ce2046a4afa1561
2013-04-10 22:00:18 -07:00
Jesse Hall
31f6edc21b Special-case glGetTransformFeedbackVarying
Just a search-and-replace on the glGetActiveAttrib special-case, since
they have the same signature and parameter handling.

Bug: 8566953
Change-Id: I40834d6f32bf9ecb39718df29036aa2d1bbfa07a
2013-04-10 22:00:18 -07:00
Jesse Hall
552a620482 Special-case glTransformFeedbackVaryings
Bug: 8566953
Change-Id: I02a1548aebc12bd3599903029bfd2e4ccea53211
2013-04-10 22:00:18 -07:00
Jesse Hall
071fc66059 Add buffer object versions of several functions
Some of these are new ES3 functions, some are existing ES2 functions
that can now use the new pixel pack/unpack buffer bindings.

glDrawElementsInstanced needs a special case since the pointer/offset
arg isn't the last one like the generator assumes.

Bug: 8566953
Change-Id: I638a36b0a31aefcb5bfee6f4d049348223045103
2013-04-10 22:00:17 -07:00
Jesse Hall
2d9faafa23 Add ES3 functions and constants, difficult ones commented out
This change adds ES3 functions to GLES30.spec, disabling any that
require non-trivial changes for the generator to handle.

Steps taken to add these:
- Copy ES3 function declarations from gl3.h
- Remove GL_APICALL, GL_APIENTRY, and semicolon from each declaration
- Add whitespace around parens and *s as required by the parser
- Comment out functions that the generator doesn't understand or that
  it generates bad Java interfaces for (by inspection).

Bug: 8566953
Change-Id: Iaaef7d53e24f9a576759dbba72cd206bae1c1276
2013-04-10 22:00:17 -07:00
Jesse Hall
63ed38dc52 Generate GLES30 class, just a clone of GLES20 for now
Bug: 8566953
Change-Id: I6fad880344b9c247de4018711ea7cb6eb1a609d6
2013-04-10 08:34:54 -07:00
Mathias Agopian
bf13ba5e77 add some missing parameter validation in GLES java bindings
- added support for comments in checks.spec
- added most missing checks
- added and commented with // special-cased functions
- added and commented with # functions that are still missing validation checks
- moved glGet* to a special case and updated all the "pnames" from the khronos spec
- changed ifcheck to default to 1 value. this allows us to simplify the checks.spec file
  and handle unknown pnames automatically (they'll be validated against 1 value, if
  it happens to need more, the call will go through but the validation will not
  happen).
- refactored the cpp headers in to a common header + GLES version specific
  header

Bug: 7402895
Change-Id: Ib5c68ca0ca416407b4cfa36e3a21901b2d6263ab
2013-02-25 16:50:51 -08:00
Mathias Agopian
54c2818abe update glgen to take into account recent changes
- it looks like UserId has been renamed to UserHandle in the
framework.
- also for some reason I don't understand glgen didn't seem
to be up to date with respect to the generated bindings in the tree.
It's like the bindings were generated with a more recent version of
glgen (maybe it was never checked in). So we fix that here.

Change-Id: Ie49522ebf67fcab9213246b4d93500e37a3cbc05
2013-02-22 20:04:22 -08:00
Mathias Agopian
e3c697fb92 Refactoring: Rename SurfaceTextureClient to Surface
Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
2013-02-14 19:19:05 -08:00
Andy McFadden
2adaf04fab Rename ISurfaceTexture and SurfaceTexture
The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: Ia03e468888025b5cae3c0ee1995434515dbea387
2012-12-18 13:10:48 -08:00
Thomas Tafertshofer
62a0a2a8ca Updated eglCreateWindowSurface stub for glgen
Updates the stub for eglCreateWindowSurface
to accept Surface as a native window.

Change-Id: I9ff7f68ad9ae4ff10439588aaef138b4564d959e
2012-08-09 11:30:58 -07:00
Thomas Tafertshofer
55b4e553c8 glgen stubs to fix bad methods in gles20 bindings
this adds correct versions of the broken GLES20 methods
glGetShaderSource, glGetActiveAttrib and glGetActiveUniform.
the old broken methods are still there and need to be @hide later.

Bug: 6006380
Change-Id: Ide74242ada54b85459b459ae4f20cd26a23c7610
2012-07-19 16:58:40 -07:00
Mathias Agopian
df5cbd7622 Merge "OpenGL bindings fix for methods with iobuffer args" 2012-07-18 18:31:41 -07:00
Thomas Tafertshofer
c5ee93e5fe Remove @hide from the generated EGL 1.4 API
Change-Id: Ia5707533fcf1186ef648b8a4e25987f5e7e7dea3
2012-07-13 17:43:19 -07:00
Thomas Tafertshofer
e58a97b5d7 OpenGL bindings fix for methods with iobuffer args
This changes generation of the OpenGL bindings to prevent
crashes of methods with more then one nio buffer argument.

Bug: 6772416
Change-Id: I4eff25c2f568dea78a6ffd3e95ff4620ab4b3b7d
2012-07-12 11:23:02 -07:00
Thomas Tafertshofer
66a42db8cb improve glgen tool to support EGL1.4
- added EGL1.4 bindings generation
- fixed bugs in GLES bindings

Bug: 6709865
Change-Id: I04ac63f652e1968a51eb833f47e00336ea449980
2012-07-10 15:49:43 -07:00
Jamie Gennis
9c6c6992e0 GLES: add image external enums
This change adds Java definitions for the enums of the
GL_OES_EGL_image_external OpenGL ES extension.

Bug: 3482193
Change-Id: Ib50326f8be9b9cc9021753855c3846ddcdc5eaa2
2011-11-15 11:35:46 -08:00
Elliott Hughes
9875750593 Kill the global references in the OpenGL wrappers.
Just use jniThrowException instead. Note that it would be trivial to throw
seemingly more appropriate exceptions (NullPointerException and
OutOfMemoryException in particular), but I'm only attempting to preserve
existing behavior here.

I also found shadowing bugs in some of the special-case functions, which
would previously always have leaked memory.

This also moves an accidental change to a generated file (ActivityThread ->
AppGlobals) into the generator, so it won't be overwritten in future.

Change-Id: Iab570310b568cb406c60dd0e2b8211f8a36ae590
2011-04-11 15:31:20 -07:00
Dan Bornstein
22b03897a8 Fix newlines in this file.
They were CRLF instead of just LF.

Change-Id: I2d06d19b4d8ca969527d93bd996103c161e48a79
2010-12-07 16:23:05 -08:00