public class EglSurfaceBase extends java.lang.Object implements IEglSurfaceBase
There can be multiple surfaces associated with a single context.
| Modifier and Type | Field and Description |
|---|---|
protected EglCore |
mEglCore |
protected static java.lang.String |
TAG |
| Modifier | Constructor and Description |
|---|---|
protected |
EglSurfaceBase(EglCore eglCore) |
| Modifier and Type | Method and Description |
|---|---|
void |
createOffscreenSurface(int width,
int height)
Creates an off-screen surface.
|
void |
createWindowSurface(java.lang.Object surface)
Creates a window surface.
|
android.opengl.EGLSurface |
getEGLSurface() |
int |
getHeight()
Returns the surface's height, in pixels.
|
int |
getWidth()
Returns the surface's width, in pixels.
|
boolean |
isCurrent() |
void |
makeCurrent()
Makes our EGL context and surface current.
|
void |
makeCurrentReadFrom(EglSurfaceBase readSurface)
Makes our EGL context and surface current for drawing, using the supplied surface
for reading.
|
void |
makeCurrentReadFrom(java.lang.Object readSurface) |
void |
releaseEglSurface()
Release the EGL surface.
|
void |
saveFrame(java.io.File file)
Saves the EGL surface to a file.
|
void |
setPresentationTime(long nsecs)
Sends the presentation time stamp to EGL.
|
boolean |
swapBuffers()
Calls eglSwapBuffers.
|
protected static final java.lang.String TAG
protected EglCore mEglCore
protected EglSurfaceBase(EglCore eglCore)
public void createWindowSurface(java.lang.Object surface)
createWindowSurface in interface IEglSurfaceBasesurface - May be a Surface or SurfaceTexture.public void createOffscreenSurface(int width,
int height)
createOffscreenSurface in interface IEglSurfaceBasepublic int getWidth()
If this is called on a window surface, and the underlying surface is in the process of changing size, we may not see the new size right away (e.g. in the "surfaceChanged" callback). The size should match after the next buffer swap.
getWidth in interface IEglSurfaceBasepublic int getHeight()
getHeight in interface IEglSurfaceBasepublic void releaseEglSurface()
releaseEglSurface in interface IEglSurfaceBasepublic void makeCurrent()
makeCurrent in interface IEglSurfaceBasepublic boolean isCurrent()
isCurrent in interface IEglSurfaceBasepublic void makeCurrentReadFrom(java.lang.Object readSurface)
makeCurrentReadFrom in interface IEglSurfaceBasepublic void makeCurrentReadFrom(EglSurfaceBase readSurface)
public boolean swapBuffers()
swapBuffers in interface IEglSurfaceBasepublic void setPresentationTime(long nsecs)
setPresentationTime in interface IEglSurfaceBasensecs - Timestamp, in nanoseconds.public void saveFrame(java.io.File file)
throws java.io.IOException
Expects that this object's EGL surface is current.
java.io.IOExceptionpublic android.opengl.EGLSurface getEGLSurface()