| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
General enhancments.
For details about TextureSequence/GLMediaPlayer shader collaboration w/ your own shader source,
see TextureSequence and TexCubeES2 / MovieSimple demo.
TextureSequence allows implementations to provide their own texture lookup function
which may provide color space conversion (YUV) .. or other runtime hw-accel features.
Have a look at the next commit, which provides an Libav/FFMpeg implementation w/ YUV/RGB shader conversion.
MovieCube adds keyboard control (Android: firm touch on display to launch keyboard, don't break it though :)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
translation. Minor fixes for mouse as well.
- AndroidNewtEventFactory
- Android -> NEWT KeyCodes, leave out control keys like HOME, BACK, .. TBD ..
- We don't consume the key event, in case we cannot map it,
so the Android OS has a chance to handle the control keys.
- Key-Release generates a Key Typed event.
- Key/Mouse translate Android time-base (upTime) to Unix.
- AndroidWindow
- set our onKeyListener, using above tranlator
- setFocusable(true) and setFocusableInTouchMode(true) on our SurfaceView,
otherwise no key event will be delivered.
Note: 'requestFocus()' must also be called on the view for key input!
- Test: NEWTGearsES2Activity, which launches the soft key via:
InputMethodManager mgr = (InputMethodManager) win.getAndroidView().getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); // shows keyboard ..
and requests the focus of the view for input.
|
|
|
|
|
|
|
| |
notify method being called.
This happens on android, where we just react on an already happened screen rotate.
W/o animation suspend GL rendering could be disturbed or the thread could starve.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
GLMediaPlayer impl. to be compiled (LGPL terms)
Libav header:
libavutil 51.22.1
libavformat 53.21.0
libavcodec 53.35.0
.. just to ease our compile time setup.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generalize shader source storage type to CharSequence[]
Benefits:
- Allows code injection and general shader source editing (before compilation)
- Uses mutable StringBuilder only if editing is intended, hence reduces memory footprint
and String conversion at compilation in such case.
- ShaderCode.create(..) factory methods add nw attribute 'mutableStringBuilder'
if true method returns a mutable StringBuilder instance
which can be edited later on at the costs of a String conversion when passing to
'glShaderSource(int, int, String[], IntBuffer)'.
If <code>false</code> method returns an immutable <code>String</code> instance,
which can be passed to {@link GL2ES2#glShaderSource(int, int, String[], IntBuffer)}
at no additional costs.
- New 'edit' methods in ShaderCode: '
- int insertShaderSource(int shaderIdx, String tag, int fromIndex, CharSequence data);
- int insertShaderSource(int shaderIdx, int position, CharSequence data);
|
|
|
|
| |
prepare for shader code injection.
|
|
|
|
| |
Capabilities/GLContext API 'toString(StringBuilder)'
|
| |
|
|
|
|
| |
c9066a6df7a0b8612a8a0b3e5c8977268a1257e8), no destruction on surface size change.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Texture
- Add TextureSequence, base interface of GLMediaPlayer to genralize texture streams
- TextureSequence / GLMediaPlayer: Use inner classes for event and texture data
- getLastTexture() shall never return 'null', initialization of TextureSequence (initGLStream(..), etc)
shall provide a TextureFrame w/ the stream's dimension.
- GLMediaPlayerImpl.createTexImageImpl() y-flip defaults to 'false'
impl. shall define y-flip, if required.
- Added MovieCube demo
- Fix Texture: initialize aspectRation for 'wrapping' ctor
-
|
|
|
|
|
| |
- growBuffer() was using '(osize+additional) * components' -> 'osize + (additional * components )'
- added jogl.debug.GLArrayData - notifying growBuffer()
|
|
|
|
| |
atomic JAR and not core)
|
|
|
|
|
|
|
|
| |
- Partially reverting commit de2b129a56335262a44a05541a3ab2e35668cc6e
- ProjectFloat and FloatUtil must reside in core, not util
- Moved slice2float -> GlueGen's Buffers
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
isProgramExecStatusValid()
isProgramValid() was testing whether the linkx status is valid
and whether the executable environment is valid for the shader, see glValidateProgram().
glValidateProgram() may fail on some implementations in some circumstances (APX2500 and Tegra2)
and indeed require all resources are set for execution of the shader program (glDraw*).
This is not a requirement for issueing useProgram(), hence removed this test
and made it available explicit for debugging purposes: isProgramExecStatusValid().
|
|
|
|
| |
resume, Sync LauncherUtil
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLMediaPlayer:
Merging 'initStream()' and 'initGL()' to 'initGLStream()' due to incompatible/buggy implementations (Android/Tegra)
requiring the GL texture being setup before preparing the stream.
This also implies that w/o an GL context we cannot fetch the stream information (size, ..)
hence we need to evaluate this detail (FIXME).
'getNextTexture(GL gl, boolean blocking)' can request the impl. to block
GLMediaEventListener:
The TextureFrame not yet available, adding 'when'
|
|
|
|
|
|
|
|
|
|
| |
functions: eglCreateImageKHR, eglCreatePbufferFromClientBuffer
Unique typedef for: EGLConfig, EGLContext, EGLDisplay, EGLSurface,
EGLNativeDisplayType, EGLNativeWindowType, EGLNativePixmapType,
EGLImageKHR, GLeglImageOES and EGLSyncKHR
allowing to render them individually opaque (long) and keep EGLClientBuffer as NIO buffer.
|
|
|
|
| |
GL_OES_EGL_image_external for plain ES2.
|
| |
|
|
|
|
| |
incl. unit tests; Test/Demos: Use PNG snapshots.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PNGJ Version 0.85 (1 April 2012)
Apache 2.0 License
http://code.google.com/p/pngj/
Merged code:
- Changed namespace ar.com.hjg.pngj -> jogamp.opengl.util.pngj
to avoid collision when using a different version of PNGJ.
- Removed test and lossy packages and helper classes
to reduce footprint.
License information is added in main LICENSE.txt file.
|
| |
|
|
|
|
| |
Move texture to jogl jar/apk for accessibility.
|
|
|
|
|
| |
- Factory falls back to NullGLMediaPlayer allowing to test on platforms where no player is available.
- MovieSimple (c) to JogAmp since it is no more derived from the old project.
|
|
|
|
| |
usage; writeFile() restricted to GL2GL3, not GL2.
|
|
|
|
| |
gluUnProject and gluPickMatrix
|
| |
|
|
|
|
| |
connected URL. API doc: Useing html table for state chart
|
| |
|
|
|
|
| |
GL_OES_EGL_image_external extension if requested, use proper texture unit
|
|
|
|
| |
requestFocus and focusChanged is always forced
|
|
|
|
|
|
|
|
| |
00: One movie view, centered, no effects
01: Two movie views (Main + HUD) using same GLMediaPlayer [texture] and stream
02: Two movie views (Main + HUD) each using own GLMediaPlayer and stream
|
|
|
|
|
|
|
|
|
| |
initStream(URL) + initGL(GL)) .. IllegalStateException if wrong. Using internet streams of BigBuckBunny, if avail.
- Splitting the initialization in stream and GL allows using the stream information (eg: size, ..)
for setting the GLDrawable properties ..
- Make the impl. more bullet proof ..
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Activity adds 2 NEWT GLWindow's in a ViewGroup,
one main view and one small HUD view.
Both GLWindow contain one GLEventListener playing the same stream using GLMediaPlayer
one with no effect, one w/ a gradient color effect.
The stream's URL is currently hardcoded 'file:///mnt/sdcard/Movies/BigBuckBunny_320x180.mp4'.
Upper half of main window:
- click start/pause video
- drag rotate video
Lower half of main window:
- drag bwd/fwd in the stream (seek)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Android API 14
- Introduce states
- Customize / Access texture target,count,features.
- Expose TextureFrame.
- Use 'long' for all time values in msec.
- Mark information optional in API doc (fps, bps, ..)
|
|
|
|
| |
the Android API JAR for android specifics.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
android.view.Window reference and use from AndroidWindow; Force transparency flag; Multiple NEWT Windows in Activity.
AndroidWindow:
- Force transparency flag to EGL Capabilities chooser (see commit 0d12af05128da433aa7b6767ba5a7f6ee9bce6c4)
- Keep androidFormat besides nativeFormat, used to determine transparency flag and recreation.
- Move transparency style selection from AndroidWindow.instantiationFinished() -> NewtBaseActivity.setContentView(..)
- Remove AndroidWindow.becomeContentViewOf(..) and add it's fullscreen layout features to NewtBaseActivity.setContentView(..)
NewtBaseActivity:
- General support for multiple NEWT windows.
- Adding functionality removed from AndroidWindow - see above
- Adding 'addContentView(..)' and 'registerNEWTWindow(..)' which, besides 'setContentView(..)'
performs registration of the NEWT window for the 'onDestroy()' method.
The 'add*' and 'set*' variant also handle layout etc.
- Add direct methods to set fullscreen feature and transparency theme.
|
| |
|
|
|
|
| |
Add convenience coord transfer method to buffer.
|
|
|
|
|
|
|
| |
through transparency flag from higher API
The above is necessary to reflect transparency in chosen Capabilities from a higher level API (native windowing)
in case the EGL impl. does not (buggy). This is currently true for Android.
|