Java Code Examples for javax.microedition.khronos.egl.EGL10#EGL_RED_SIZE

The following examples show how to use javax.microedition.khronos.egl.EGL10#EGL_RED_SIZE . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GLSurfaceView.java    From EZFilter with MIT License 6 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
                            int alphaSize, int depthSize, int stencilSize) {
    super(new int[]{
            EGL10.EGL_RED_SIZE, redSize,
            EGL10.EGL_GREEN_SIZE, greenSize,
            EGL10.EGL_BLUE_SIZE, blueSize,
            EGL10.EGL_ALPHA_SIZE, alphaSize,
            EGL10.EGL_DEPTH_SIZE, depthSize,
            EGL10.EGL_STENCIL_SIZE, stencilSize,
            EGL10.EGL_NONE});
    mValue = new int[1];
    mRedSize = redSize;
    mGreenSize = greenSize;
    mBlueSize = blueSize;
    mAlphaSize = alphaSize;
    mDepthSize = depthSize;
    mStencilSize = stencilSize;
}
 
Example 2
Source File: GLTextureView.java    From alpha-movie with Apache License 2.0 6 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
                            int alphaSize, int depthSize, int stencilSize) {
    super(new int[] {
            EGL10.EGL_RED_SIZE, redSize,
            EGL10.EGL_GREEN_SIZE, greenSize,
            EGL10.EGL_BLUE_SIZE, blueSize,
            EGL10.EGL_ALPHA_SIZE, alphaSize,
            EGL10.EGL_DEPTH_SIZE, depthSize,
            EGL10.EGL_STENCIL_SIZE, stencilSize,
            EGL10.EGL_NONE});
    mValue = new int[1];
    mRedSize = redSize;
    mGreenSize = greenSize;
    mBlueSize = blueSize;
    mAlphaSize = alphaSize;
    mDepthSize = depthSize;
    mStencilSize = stencilSize;
}
 
Example 3
Source File: GLTextureView.java    From MusicPlayer with GNU General Public License v3.0 6 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
                            int alphaSize, int depthSize, int stencilSize) {
    super(new int[] {
            EGL10.EGL_RED_SIZE, redSize,
            EGL10.EGL_GREEN_SIZE, greenSize,
            EGL10.EGL_BLUE_SIZE, blueSize,
            EGL10.EGL_ALPHA_SIZE, alphaSize,
            EGL10.EGL_DEPTH_SIZE, depthSize,
            EGL10.EGL_STENCIL_SIZE, stencilSize,
            EGL10.EGL_NONE});
    mValue = new int[1];
    mRedSize = redSize;
    mGreenSize = greenSize;
    mBlueSize = blueSize;
    mAlphaSize = alphaSize;
    mDepthSize = depthSize;
    mStencilSize = stencilSize;
}
 
Example 4
Source File: GLTextureView.java    From ZGDanmaku with Apache License 2.0 6 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
                            int alphaSize, int depthSize, int stencilSize) {
    super(new int[] {
            EGL10.EGL_RED_SIZE, redSize,
            EGL10.EGL_GREEN_SIZE, greenSize,
            EGL10.EGL_BLUE_SIZE, blueSize,
            EGL10.EGL_ALPHA_SIZE, alphaSize,
            EGL10.EGL_DEPTH_SIZE, depthSize,
            EGL10.EGL_STENCIL_SIZE, stencilSize,
            EGL10.EGL_NONE});
    mValue = new int[1];
    mRedSize = redSize;
    mGreenSize = greenSize;
    mBlueSize = blueSize;
    mAlphaSize = alphaSize;
    mDepthSize = depthSize;
    mStencilSize = stencilSize;
}
 
Example 5
Source File: GLTextureView.java    From MD360Player4Android with Apache License 2.0 6 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
                            int alphaSize, int depthSize, int stencilSize) {
    super(new int[] {
            EGL10.EGL_RED_SIZE, redSize,
            EGL10.EGL_GREEN_SIZE, greenSize,
            EGL10.EGL_BLUE_SIZE, blueSize,
            EGL10.EGL_ALPHA_SIZE, alphaSize,
            EGL10.EGL_DEPTH_SIZE, depthSize,
            EGL10.EGL_STENCIL_SIZE, stencilSize,
            EGL10.EGL_NONE});
    mValue = new int[1];
    mRedSize = redSize;
    mGreenSize = greenSize;
    mBlueSize = blueSize;
    mAlphaSize = alphaSize;
    mDepthSize = depthSize;
    mStencilSize = stencilSize;
}
 
Example 6
Source File: GLTextureView.java    From EZFilter with MIT License 6 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
                            int alphaSize, int depthSize, int stencilSize) {
    super(new int[]{
            EGL10.EGL_RED_SIZE, redSize,
            EGL10.EGL_GREEN_SIZE, greenSize,
            EGL10.EGL_BLUE_SIZE, blueSize,
            EGL10.EGL_ALPHA_SIZE, alphaSize,
            EGL10.EGL_DEPTH_SIZE, depthSize,
            EGL10.EGL_STENCIL_SIZE, stencilSize,
            EGL10.EGL_NONE});
    mValue = new int[1];
    mRedSize = redSize;
    mGreenSize = greenSize;
    mBlueSize = blueSize;
    mAlphaSize = alphaSize;
    mDepthSize = depthSize;
    mStencilSize = stencilSize;
}
 
Example 7
Source File: GLSurfaceView.java    From unity-ads-android with Apache License 2.0 6 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
							int alphaSize, int depthSize, int stencilSize) {
	super(new int[] {
			EGL10.EGL_RED_SIZE, redSize,
			EGL10.EGL_GREEN_SIZE, greenSize,
			EGL10.EGL_BLUE_SIZE, blueSize,
			EGL10.EGL_ALPHA_SIZE, alphaSize,
			EGL10.EGL_DEPTH_SIZE, depthSize,
			EGL10.EGL_STENCIL_SIZE, stencilSize,
			EGL10.EGL_NONE});
	mValue = new int[1];
	mRedSize = redSize;
	mGreenSize = greenSize;
	mBlueSize = blueSize;
	mAlphaSize = alphaSize;
	mDepthSize = depthSize;
	mStencilSize = stencilSize;
}
 
Example 8
Source File: TextureVideoView.java    From texturevideoview with Apache License 2.0 5 votes vote down vote up
/**
 * Clears the surface texture by attaching a GL context and clearing it.
 * Code taken from <a href="http://stackoverflow.com/a/31582209">Hugo Gresse's answer on stackoverflow.com</a>.
 */
private void clearSurface() {
    if (mSurface == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
        return;
    }

    EGL10 egl = (EGL10) EGLContext.getEGL();
    EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
    egl.eglInitialize(display, null);

    int[] attribList = {
        EGL10.EGL_RED_SIZE, 8,
        EGL10.EGL_GREEN_SIZE, 8,
        EGL10.EGL_BLUE_SIZE, 8,
        EGL10.EGL_ALPHA_SIZE, 8,
        EGL10.EGL_RENDERABLE_TYPE, EGL10.EGL_WINDOW_BIT,
        EGL10.EGL_NONE, 0,      // placeholder for recordable [@-3]
        EGL10.EGL_NONE
    };
    EGLConfig[] configs = new EGLConfig[1];
    int[] numConfigs = new int[1];
    egl.eglChooseConfig(display, attribList, configs, configs.length, numConfigs);
    EGLConfig config = configs[0];
    EGLContext context = egl.eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT, new int[]{
        12440, 2, EGL10.EGL_NONE
    });
    EGLSurface eglSurface = egl.eglCreateWindowSurface(display, config, mSurface, new int[]{
        EGL10.EGL_NONE
    });

    egl.eglMakeCurrent(display, eglSurface, eglSurface, context);
    GLES20.glClearColor(0, 0, 0, 1);
    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
    egl.eglSwapBuffers(display, eglSurface);
    egl.eglDestroySurface(display, eglSurface);
    egl.eglMakeCurrent(display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
    egl.eglDestroyContext(display, context);
    egl.eglTerminate(display);
}
 
Example 9
Source File: EGL.java    From video-player with MIT License 5 votes vote down vote up
public ComponentSizeChooser(int redSize, int greenSize, int blueSize, int alphaSize, int depthSize, int stencilSize) {
  super(new int[]{EGL10.EGL_RED_SIZE, redSize, EGL10.EGL_GREEN_SIZE, greenSize, EGL10.EGL_BLUE_SIZE, blueSize, EGL10.EGL_ALPHA_SIZE, alphaSize, EGL10.EGL_DEPTH_SIZE, depthSize, EGL10.EGL_STENCIL_SIZE, stencilSize, EGL10.EGL_NONE});
  mValue = new int[1];
  mRedSize = redSize;
  mGreenSize = greenSize;
  mBlueSize = blueSize;
  mAlphaSize = alphaSize;
  mDepthSize = depthSize;
  mStencilSize = stencilSize;
}
 
Example 10
Source File: RGB888ConfigChooser.java    From ParticlesDrawable with Apache License 2.0 5 votes vote down vote up
RGB888ConfigChooser(@Nullable final EGLConfigChooserCallback callback) {
    super("RGB888ConfigChooser", new int[]{
            EGL10.EGL_RED_SIZE, 8,
            EGL10.EGL_GREEN_SIZE, 8,
            EGL10.EGL_BLUE_SIZE, 8,
            EGL10.EGL_DEPTH_SIZE, 0,
            EGL10.EGL_RENDERABLE_TYPE, 4,
            EGL10.EGL_NONE
    }, callback);
}
 
Example 11
Source File: OutputSurface.java    From AndroidVideoSamples with Apache License 2.0 5 votes vote down vote up
/**
 * Prepares EGL. We want a GLES 2.0 context and a surface that supports pbuffer.
 */
private void eglSetup( int width, int height ) {
   mEGL = (EGL10) EGLContext.getEGL();
   mEGLDisplay = mEGL.eglGetDisplay( EGL10.EGL_DEFAULT_DISPLAY );
   if ( !mEGL.eglInitialize( mEGLDisplay, null ) ) {
      throw new RuntimeException( "unable to initialize EGL10" );
   }
   // Configure EGL for pbuffer and OpenGL ES 2.0. We want enough RGB bits
   // to be able to tell if the frame is reasonable.
   int[] attribList = { EGL10.EGL_RED_SIZE, 8, EGL10.EGL_GREEN_SIZE, 8, EGL10.EGL_BLUE_SIZE, 8, EGL10.EGL_SURFACE_TYPE, EGL10.EGL_PBUFFER_BIT, EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, EGL10.EGL_NONE };
   EGLConfig[] configs = new EGLConfig[1];
   int[] numConfigs = new int[1];
   if ( !mEGL.eglChooseConfig( mEGLDisplay, attribList, configs, 1, numConfigs ) ) {
      throw new RuntimeException( "unable to find RGB888+pbuffer EGL config" );
   }
   // Configure context for OpenGL ES 2.0.
   int[] attrib_list = { EGL14.EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE };
   mEGLContext = mEGL.eglCreateContext( mEGLDisplay, configs[0], EGL10.EGL_NO_CONTEXT, attrib_list );
   checkEglError( "eglCreateContext" );
   if ( mEGLContext == null ) {
      throw new RuntimeException( "null context" );
   }
   // Create a pbuffer surface. By using this for output, we can use glReadPixels
   // to test values in the output.
   int[] surfaceAttribs = { EGL10.EGL_WIDTH, width, EGL10.EGL_HEIGHT, height, EGL10.EGL_NONE };
   mEGLSurface = mEGL.eglCreatePbufferSurface( mEGLDisplay, configs[0], surfaceAttribs );
   checkEglError( "eglCreatePbufferSurface" );
   if ( mEGLSurface == null ) {
      throw new RuntimeException( "surface was null" );
   }
}
 
Example 12
Source File: EGLConfigAttrs.java    From AAVT with Apache License 2.0 5 votes vote down vote up
int[] build(){
    return new int[] {
            EGL10.EGL_SURFACE_TYPE, surfaceType,      //渲染类型
            EGL10.EGL_RED_SIZE, red,  //指定RGB中的R大小(bits)
            EGL10.EGL_GREEN_SIZE, green, //指定G大小
            EGL10.EGL_BLUE_SIZE, blue,  //指定B大小
            EGL10.EGL_ALPHA_SIZE, alpha, //指定Alpha大小,以上四项实际上指定了像素格式
            EGL10.EGL_DEPTH_SIZE, depth, //指定深度缓存(Z Buffer)大小
            EGL10.EGL_RENDERABLE_TYPE, renderType, //指定渲染api类别, 如上一小节描述,这里或者是硬编码的4(EGL14.EGL_OPENGL_ES2_BIT)
            EGL10.EGL_NONE };  //总是以EGL14.EGL_NONE结尾
}
 
Example 13
Source File: VisualizerRenderer.java    From MusicVisualization with Apache License 2.0 4 votes vote down vote up
private boolean initGL(SurfaceTexture texture) {
    mEgl10 = (EGL10) EGLContext.getEGL();

    mEglDisplay = mEgl10.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
    if (mEglDisplay == EGL10.EGL_NO_DISPLAY) return false;

    int[] version = new int[2];
    if (!mEgl10.eglInitialize(mEglDisplay, version)) return false;

    int[] configsCount = new int[1];
    EGLConfig[] configs = new EGLConfig[1];
    int[] configSpec = {
            EGL10.EGL_RENDERABLE_TYPE,
            EGL_OPENGL_ES2_BIT,
            EGL10.EGL_RED_SIZE, 8,
            EGL10.EGL_GREEN_SIZE, 8,
            EGL10.EGL_BLUE_SIZE, 8,
            EGL10.EGL_ALPHA_SIZE, 8,
            EGL10.EGL_DEPTH_SIZE, 0,
            EGL10.EGL_STENCIL_SIZE, 0,
            EGL10.EGL_NONE
    };

    EGLConfig eglConfig = null;
    if (!mEgl10.eglChooseConfig(mEglDisplay, configSpec, configs, 1, configsCount)) {
        return false;
    } else if (configsCount[0] > 0) {
        eglConfig = configs[0];
    }
    if (eglConfig == null) return false;

    mEglContext = mEgl10.eglCreateContext(
            mEglDisplay, eglConfig, EGL10.EGL_NO_CONTEXT,
            new int[]{EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE});
    mEglSurface = mEgl10.eglCreateWindowSurface(mEglDisplay, eglConfig, texture, null);

    if (mEglSurface == null || mEglSurface == EGL10.EGL_NO_SURFACE) return false;
    if (!mEgl10.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) return false;

    return true;
}
 
Example 14
Source File: ConfigChooser.java    From tilt-game-android with MIT License 4 votes vote down vote up
public ConfigChooser(final int pRequestedRedSize, final int pRequestedGreenSize, final int pRequestedBlueSize, final int pRequestedAlphaSize, final int pRequestedDepthSize, final int pRequestedStencilSize, final boolean pRequestedMultiSampling) {
	this.mRequestedRedSize = pRequestedRedSize;
	this.mRequestedGreenSize = pRequestedGreenSize;
	this.mRequestedBlueSize = pRequestedBlueSize;
	this.mRequestedAlphaSize = pRequestedAlphaSize;
	this.mRequestedDepthSize = pRequestedDepthSize;
	this.mRequestedStencilSize = pRequestedStencilSize;
	this.mRequestedMultiSampling = pRequestedMultiSampling;

	this.mMultiSampleEGLConfig = new int[] {
		EGL10.EGL_RED_SIZE, pRequestedRedSize,
		EGL10.EGL_GREEN_SIZE, pRequestedGreenSize,
		EGL10.EGL_BLUE_SIZE, pRequestedBlueSize,
		EGL10.EGL_ALPHA_SIZE, pRequestedAlphaSize,
		EGL10.EGL_DEPTH_SIZE, pRequestedDepthSize,
		EGL10.EGL_STENCIL_SIZE, pRequestedStencilSize,
		EGL10.EGL_RENDERABLE_TYPE, ConfigChooser.EGL_GLES2_BIT,
		EGL10.EGL_SAMPLE_BUFFERS, 1,
		EGL10.EGL_SAMPLES, ConfigChooser.MULTISAMPLE_COUNT,
		EGL10.EGL_NONE
	};

	this.mNvidiaCoverageMultiSampleEGLConfig = new int[] {
		EGL10.EGL_RED_SIZE, pRequestedRedSize,
		EGL10.EGL_GREEN_SIZE, pRequestedGreenSize,
		EGL10.EGL_BLUE_SIZE, pRequestedBlueSize,
		EGL10.EGL_ALPHA_SIZE, pRequestedAlphaSize,
		EGL10.EGL_DEPTH_SIZE, pRequestedDepthSize,
		EGL10.EGL_STENCIL_SIZE, pRequestedStencilSize,
		EGL10.EGL_RENDERABLE_TYPE, ConfigChooser.EGL_GLES2_BIT,
		ConfigChooser.EGL_COVERAGE_BUFFERS_NV, 1,
		ConfigChooser.EGL_COVERAGE_SAMPLES_NV, ConfigChooser.MULTISAMPLE_COUNT,
		EGL10.EGL_NONE
	};

	this.mDefaultEGLConfig = new int[] {
		EGL10.EGL_RED_SIZE, pRequestedRedSize,
		EGL10.EGL_GREEN_SIZE, pRequestedGreenSize,
		EGL10.EGL_BLUE_SIZE, pRequestedBlueSize,
		EGL10.EGL_ALPHA_SIZE, pRequestedAlphaSize,
		EGL10.EGL_DEPTH_SIZE, pRequestedDepthSize,
		EGL10.EGL_STENCIL_SIZE, pRequestedStencilSize,
		EGL10.EGL_RENDERABLE_TYPE, ConfigChooser.EGL_GLES2_BIT,
		EGL10.EGL_NONE
	};
}
 
Example 15
Source File: OutputSurface.java    From SimpleVideoEditor with Apache License 2.0 4 votes vote down vote up
/**
 * Prepares EGL.  We want a GLES 2.0 context and a surface that supports pbuffer.
 */
private void eglSetup(int width, int height) {
    mEGL = (EGL10) EGLContext.getEGL();
    mEGLDisplay = mEGL.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
    if (!mEGL.eglInitialize(mEGLDisplay, null)) {
        throw new RuntimeException("unable to initialize EGL10");
    }
    // Configure EGL for pbuffer and OpenGL ES 2.0.  We want enough RGB bits
    // to be able to tell if the frame is reasonable.
    int[] attribList = {
            EGL10.EGL_RED_SIZE, 8,
            EGL10.EGL_GREEN_SIZE, 8,
            EGL10.EGL_BLUE_SIZE, 8,
            EGL10.EGL_SURFACE_TYPE, EGL10.EGL_PBUFFER_BIT,
            EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
            EGL10.EGL_NONE
    };
    EGLConfig[] configs = new EGLConfig[1];
    int[] numConfigs = new int[1];
    if (!mEGL.eglChooseConfig(mEGLDisplay, attribList, configs, 1, numConfigs)) {
        throw new RuntimeException("unable to find RGB888+pbuffer EGL config");
    }
    // Configure context for OpenGL ES 2.0.
    int[] attrib_list = {
            EGL14.EGL_CONTEXT_CLIENT_VERSION, 2,
            EGL10.EGL_NONE
    };
    mEGLContext = mEGL.eglCreateContext(mEGLDisplay, configs[0], EGL10.EGL_NO_CONTEXT,
            attrib_list);
    checkEglError("eglCreateContext");
    if (mEGLContext == null) {
        throw new RuntimeException("null context");
    }
    // Create a pbuffer surface.  By using this for output, we can use glReadPixels
    // to test values in the output.
    int[] surfaceAttribs = {
            EGL10.EGL_WIDTH, width,
            EGL10.EGL_HEIGHT, height,
            EGL10.EGL_NONE
    };
    mEGLSurface = mEGL.eglCreatePbufferSurface(mEGLDisplay, configs[0], surfaceAttribs);
    checkEglError("eglCreatePbufferSurface");
    if (mEGLSurface == null) {
        throw new RuntimeException("surface was null");
    }
}
 
Example 16
Source File: ExtractMpegFramesTest.java    From Android-MediaCodec-Examples with Apache License 2.0 4 votes vote down vote up
/**
 * Prepares EGL.  We want a GLES 2.0 context and a surface that supports pbuffer.
 */
private void eglSetup() {
    final int EGL_OPENGL_ES2_BIT = 0x0004;
    final int EGL_CONTEXT_CLIENT_VERSION = 0x3098;

    mEGLDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
    if (mEGLDisplay == EGL10.EGL_NO_DISPLAY) {
        throw new RuntimeException("unable to get EGL14 display");
    }
    int[] version = new int[2];
    if (!mEgl.eglInitialize(mEGLDisplay, version)) {
        mEGLDisplay = null;
        throw new RuntimeException("unable to initialize EGL14");
    }

    // Configure EGL for pbuffer and OpenGL ES 2.0, 24-bit RGB.
    int[] attribList = {
            EGL10.EGL_RED_SIZE, 8,
            EGL10.EGL_GREEN_SIZE, 8,
            EGL10.EGL_BLUE_SIZE, 8,
            EGL10.EGL_ALPHA_SIZE, 8,
            EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
            EGL10.EGL_SURFACE_TYPE, EGL10.EGL_PBUFFER_BIT,
            EGL10.EGL_NONE
    };
    EGLConfig[] configs = new EGLConfig[1];
    int[] numConfigs = new int[1];
    if (!mEgl.eglChooseConfig(mEGLDisplay, attribList, configs, configs.length,
            numConfigs)) {
        throw new RuntimeException("unable to find RGB888+recordable ES2 EGL config");
    }

    // Configure context for OpenGL ES 2.0.
    int[] attrib_list = {
            EGL_CONTEXT_CLIENT_VERSION, 2,
            EGL10.EGL_NONE
    };
    mEGLContext = mEgl.eglCreateContext(mEGLDisplay, configs[0], EGL10.EGL_NO_CONTEXT,
            attrib_list);
    checkEglError("eglCreateContext");
    if (mEGLContext == null) {
        throw new RuntimeException("null context");
    }

    // Create a pbuffer surface.
    int[] surfaceAttribs = {
            EGL10.EGL_WIDTH, mWidth,
            EGL10.EGL_HEIGHT, mHeight,
            EGL10.EGL_NONE
    };
    mEGLSurface = mEgl.eglCreatePbufferSurface(mEGLDisplay, configs[0], surfaceAttribs);
    checkEglError("eglCreatePbufferSurface");
    if (mEGLSurface == null) {
        throw new RuntimeException("surface was null");
    }
}
 
Example 17
Source File: ViEAndroidGLES20.java    From webrtc-app-mono with BSD 3-Clause "New" or "Revised" License 4 votes vote down vote up
private void printConfig(EGL10 egl, EGLDisplay display,
        EGLConfig config) {
    int[] attributes = {
            EGL10.EGL_BUFFER_SIZE,
            EGL10.EGL_ALPHA_SIZE,
            EGL10.EGL_BLUE_SIZE,
            EGL10.EGL_GREEN_SIZE,
            EGL10.EGL_RED_SIZE,
            EGL10.EGL_DEPTH_SIZE,
            EGL10.EGL_STENCIL_SIZE,
            EGL10.EGL_CONFIG_CAVEAT,
            EGL10.EGL_CONFIG_ID,
            EGL10.EGL_LEVEL,
            EGL10.EGL_MAX_PBUFFER_HEIGHT,
            EGL10.EGL_MAX_PBUFFER_PIXELS,
            EGL10.EGL_MAX_PBUFFER_WIDTH,
            EGL10.EGL_NATIVE_RENDERABLE,
            EGL10.EGL_NATIVE_VISUAL_ID,
            EGL10.EGL_NATIVE_VISUAL_TYPE,
            0x3030, // EGL10.EGL_PRESERVED_RESOURCES,
            EGL10.EGL_SAMPLES,
            EGL10.EGL_SAMPLE_BUFFERS,
            EGL10.EGL_SURFACE_TYPE,
            EGL10.EGL_TRANSPARENT_TYPE,
            EGL10.EGL_TRANSPARENT_RED_VALUE,
            EGL10.EGL_TRANSPARENT_GREEN_VALUE,
            EGL10.EGL_TRANSPARENT_BLUE_VALUE,
            0x3039, // EGL10.EGL_BIND_TO_TEXTURE_RGB,
            0x303A, // EGL10.EGL_BIND_TO_TEXTURE_RGBA,
            0x303B, // EGL10.EGL_MIN_SWAP_INTERVAL,
            0x303C, // EGL10.EGL_MAX_SWAP_INTERVAL,
            EGL10.EGL_LUMINANCE_SIZE,
            EGL10.EGL_ALPHA_MASK_SIZE,
            EGL10.EGL_COLOR_BUFFER_TYPE,
            EGL10.EGL_RENDERABLE_TYPE,
            0x3042 // EGL10.EGL_CONFORMANT
    };
    String[] names = {
            "EGL_BUFFER_SIZE",
            "EGL_ALPHA_SIZE",
            "EGL_BLUE_SIZE",
            "EGL_GREEN_SIZE",
            "EGL_RED_SIZE",
            "EGL_DEPTH_SIZE",
            "EGL_STENCIL_SIZE",
            "EGL_CONFIG_CAVEAT",
            "EGL_CONFIG_ID",
            "EGL_LEVEL",
            "EGL_MAX_PBUFFER_HEIGHT",
            "EGL_MAX_PBUFFER_PIXELS",
            "EGL_MAX_PBUFFER_WIDTH",
            "EGL_NATIVE_RENDERABLE",
            "EGL_NATIVE_VISUAL_ID",
            "EGL_NATIVE_VISUAL_TYPE",
            "EGL_PRESERVED_RESOURCES",
            "EGL_SAMPLES",
            "EGL_SAMPLE_BUFFERS",
            "EGL_SURFACE_TYPE",
            "EGL_TRANSPARENT_TYPE",
            "EGL_TRANSPARENT_RED_VALUE",
            "EGL_TRANSPARENT_GREEN_VALUE",
            "EGL_TRANSPARENT_BLUE_VALUE",
            "EGL_BIND_TO_TEXTURE_RGB",
            "EGL_BIND_TO_TEXTURE_RGBA",
            "EGL_MIN_SWAP_INTERVAL",
            "EGL_MAX_SWAP_INTERVAL",
            "EGL_LUMINANCE_SIZE",
            "EGL_ALPHA_MASK_SIZE",
            "EGL_COLOR_BUFFER_TYPE",
            "EGL_RENDERABLE_TYPE",
            "EGL_CONFORMANT"
    };
    int[] value = new int[1];
    for (int i = 0; i < attributes.length; i++) {
        int attribute = attributes[i];
        String name = names[i];
        if (egl.eglGetConfigAttrib(display, config, attribute, value)) {
            Log.w(TAG, String.format("  %s: %d\n", name, value[0]));
        } else {
            // Log.w(TAG, String.format("  %s: failed\n", name));
            while (egl.eglGetError() != EGL10.EGL_SUCCESS);
        }
    }
}
 
Example 18
Source File: MultiSampleEGLConfigChooser.java    From android-RoundedTextureView with Apache License 2.0 4 votes vote down vote up
@Override public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
  // try to find a normal configuration first.
  int[] configSpec = {
      EGL10.EGL_RED_SIZE, r, EGL10.EGL_GREEN_SIZE, g, EGL10.EGL_BLUE_SIZE, b,
      EGL10.EGL_ALPHA_SIZE, a, EGL10.EGL_DEPTH_SIZE, depth, EGL10.EGL_STENCIL_SIZE, stencil,
      EGL10.EGL_RENDERABLE_TYPE, renderableType, EGL10.EGL_SAMPLE_BUFFERS, 1, EGL10.EGL_SAMPLES,
      multisample, EGL10.EGL_NONE
  };
  value = new int[1];
  if (!egl.eglChooseConfig(display, configSpec, null, 0, value)) {
    throw new IllegalArgumentException("eglChooseConfig failed");
  }
  int numConfigs = value[0];

  // No normal multisampling config was found. Try to create a
  // converage multisampling configuration, for the nVidia Tegra2.
  // See the EGL_NV_coverage_sample documentation.
  if (numConfigs <= 0 && multisample > 1) {
    final int EGL_COVERAGE_BUFFERS_NV = 0x30E0;
    final int EGL_COVERAGE_SAMPLES_NV = 0x30E1;

    configSpec = new int[] {
        EGL10.EGL_RED_SIZE, r, EGL10.EGL_GREEN_SIZE, g, EGL10.EGL_BLUE_SIZE, b,
        EGL10.EGL_ALPHA_SIZE, a, EGL10.EGL_DEPTH_SIZE, depth, EGL10.EGL_STENCIL_SIZE, stencil,
        EGL10.EGL_RENDERABLE_TYPE, renderableType, EGL_COVERAGE_BUFFERS_NV, 1,
        EGL_COVERAGE_SAMPLES_NV, multisample, EGL10.EGL_NONE
    };

    if (!egl.eglChooseConfig(display, configSpec, null, 0, value)) {
      throw new IllegalArgumentException("2nd eglChooseConfig failed");
    }
    numConfigs = value[0];

    // Give up, try without multisampling.
    if (numConfigs <= 0) {
      configSpec = new int[] {
          EGL10.EGL_RED_SIZE, r, EGL10.EGL_GREEN_SIZE, g, EGL10.EGL_BLUE_SIZE, b,
          EGL10.EGL_ALPHA_SIZE, a, EGL10.EGL_DEPTH_SIZE, depth, EGL10.EGL_STENCIL_SIZE, stencil,
          EGL10.EGL_RENDERABLE_TYPE, renderableType, EGL10.EGL_NONE
      };

      if (!egl.eglChooseConfig(display, configSpec, null, 0, value)) {
        throw new IllegalArgumentException("3rd eglChooseConfig failed");
      }
      numConfigs = value[0];

      if (numConfigs <= 0) {
        throw new IllegalArgumentException("No configs match configSpec");
      }
    } else {
      usesCoverageAa = true;
      Log.i(TAG, "usesCoverageAa");
    }
  }

  // Get all matching configurations.
  EGLConfig[] configs = new EGLConfig[numConfigs];
  if (!egl.eglChooseConfig(display, configSpec, configs, numConfigs, value)) {
    throw new IllegalArgumentException("data eglChooseConfig failed");
  }

  // CAUTION! eglChooseConfigs returns configs with higher bit depth
  // first: Even though we asked for rgb565 configurations, rgb888
  // configurations are considered to be "better" and returned first.
  // You need to explicitly filter the data returned by eglChooseConfig!
  int index = -1;
  for (int i = 0; i < configs.length; ++i) {
    if (findConfigAttrib(egl, display, configs[i], EGL10.EGL_RED_SIZE, 0) == r) {
      index = i;
      break;
    }
  }
  if (index == -1) {
    Log.i(TAG, "Did not find sane config, using first");
  }
  EGLConfig config = configs.length > 0 ? configs[index] : null;
  if (config == null) {
    throw new IllegalArgumentException("No config chosen");
  }
  return config;
}
 
Example 19
Source File: ViEAndroidGLES20.java    From CSipSimple with GNU General Public License v3.0 4 votes vote down vote up
private void printConfig(EGL10 egl, EGLDisplay display,
        EGLConfig config) {
    int[] attributes = {
            EGL10.EGL_BUFFER_SIZE,
            EGL10.EGL_ALPHA_SIZE,
            EGL10.EGL_BLUE_SIZE,
            EGL10.EGL_GREEN_SIZE,
            EGL10.EGL_RED_SIZE,
            EGL10.EGL_DEPTH_SIZE,
            EGL10.EGL_STENCIL_SIZE,
            EGL10.EGL_CONFIG_CAVEAT,
            EGL10.EGL_CONFIG_ID,
            EGL10.EGL_LEVEL,
            EGL10.EGL_MAX_PBUFFER_HEIGHT,
            EGL10.EGL_MAX_PBUFFER_PIXELS,
            EGL10.EGL_MAX_PBUFFER_WIDTH,
            EGL10.EGL_NATIVE_RENDERABLE,
            EGL10.EGL_NATIVE_VISUAL_ID,
            EGL10.EGL_NATIVE_VISUAL_TYPE,
            0x3030, // EGL10.EGL_PRESERVED_RESOURCES,
            EGL10.EGL_SAMPLES,
            EGL10.EGL_SAMPLE_BUFFERS,
            EGL10.EGL_SURFACE_TYPE,
            EGL10.EGL_TRANSPARENT_TYPE,
            EGL10.EGL_TRANSPARENT_RED_VALUE,
            EGL10.EGL_TRANSPARENT_GREEN_VALUE,
            EGL10.EGL_TRANSPARENT_BLUE_VALUE,
            0x3039, // EGL10.EGL_BIND_TO_TEXTURE_RGB,
            0x303A, // EGL10.EGL_BIND_TO_TEXTURE_RGBA,
            0x303B, // EGL10.EGL_MIN_SWAP_INTERVAL,
            0x303C, // EGL10.EGL_MAX_SWAP_INTERVAL,
            EGL10.EGL_LUMINANCE_SIZE,
            EGL10.EGL_ALPHA_MASK_SIZE,
            EGL10.EGL_COLOR_BUFFER_TYPE,
            EGL10.EGL_RENDERABLE_TYPE,
            0x3042 // EGL10.EGL_CONFORMANT
    };
    String[] names = {
            "EGL_BUFFER_SIZE",
            "EGL_ALPHA_SIZE",
            "EGL_BLUE_SIZE",
            "EGL_GREEN_SIZE",
            "EGL_RED_SIZE",
            "EGL_DEPTH_SIZE",
            "EGL_STENCIL_SIZE",
            "EGL_CONFIG_CAVEAT",
            "EGL_CONFIG_ID",
            "EGL_LEVEL",
            "EGL_MAX_PBUFFER_HEIGHT",
            "EGL_MAX_PBUFFER_PIXELS",
            "EGL_MAX_PBUFFER_WIDTH",
            "EGL_NATIVE_RENDERABLE",
            "EGL_NATIVE_VISUAL_ID",
            "EGL_NATIVE_VISUAL_TYPE",
            "EGL_PRESERVED_RESOURCES",
            "EGL_SAMPLES",
            "EGL_SAMPLE_BUFFERS",
            "EGL_SURFACE_TYPE",
            "EGL_TRANSPARENT_TYPE",
            "EGL_TRANSPARENT_RED_VALUE",
            "EGL_TRANSPARENT_GREEN_VALUE",
            "EGL_TRANSPARENT_BLUE_VALUE",
            "EGL_BIND_TO_TEXTURE_RGB",
            "EGL_BIND_TO_TEXTURE_RGBA",
            "EGL_MIN_SWAP_INTERVAL",
            "EGL_MAX_SWAP_INTERVAL",
            "EGL_LUMINANCE_SIZE",
            "EGL_ALPHA_MASK_SIZE",
            "EGL_COLOR_BUFFER_TYPE",
            "EGL_RENDERABLE_TYPE",
            "EGL_CONFORMANT"
    };
    int[] value = new int[1];
    for (int i = 0; i < attributes.length; i++) {
        int attribute = attributes[i];
        String name = names[i];
        if (egl.eglGetConfigAttrib(display, config, attribute, value)) {
            Log.w(TAG, String.format("  %s: %d\n", name, value[0]));
        } else {
            // Log.w(TAG, String.format("  %s: failed\n", name));
            while (egl.eglGetError() != EGL10.EGL_SUCCESS);
        }
    }
}
 
Example 20
Source File: GLRender.java    From LiveBlurListView with Apache License 2.0 4 votes vote down vote up
public GLRender(int width, int height) {
	
	int[] version = new int[2];   
	EGLConfig[] configs = new EGLConfig[1];  
	int[] num_config = new int[1];  

	int[] configSpec ={  
			EGL10.EGL_SURFACE_TYPE, EGL10.EGL_PBUFFER_BIT,   
			EGL10.EGL_RED_SIZE, 8,  
			EGL10.EGL_GREEN_SIZE, 8,  
			EGL10.EGL_BLUE_SIZE, 8,  
			EGL10.EGL_ALPHA_SIZE, 8,  
			EGL10.EGL_NONE   
	};  

	int attribListPbuffer[] = {  
			EGL10.EGL_WIDTH, width,  
			EGL10.EGL_HEIGHT, height,  
			EGL10.EGL_NONE  
	};
	
	mEgl = (EGL10)EGLContext.getEGL();
	mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);

	mEgl.eglInitialize(mEglDisplay, version);

	mEgl.eglChooseConfig(mEglDisplay, configSpec, configs, 1, num_config);

	EGLConfig mEglConfig = configs[0];

	mEglContext = mEgl.eglCreateContext(mEglDisplay, mEglConfig, EGL10.EGL_NO_CONTEXT, null);
	if (mEglContext == EGL10.EGL_NO_CONTEXT) {
		Log.d(TAG, "EGL_NO_CONTEXT");
	}

	mEglPBSurface = mEgl.eglCreatePbufferSurface(mEglDisplay, mEglConfig, attribListPbuffer);
	if (mEglPBSurface == EGL10.EGL_NO_SURFACE) {
		int errorcode = mEgl.eglGetError();
		switch(errorcode) {
		case EGL10.EGL_BAD_DISPLAY:
			Log.d(TAG, "EGL_BAD_DISPLAY");
			break;
		case EGL10.EGL_NOT_INITIALIZED:
			Log.d(TAG, "EGL_NOT_INITIALIZED");
			break;
		case EGL10.EGL_BAD_CONFIG:
			Log.d(TAG, "EGL_BAD_CONFIG");
			break;
		case EGL10.EGL_BAD_ATTRIBUTE:
			Log.d(TAG, "EGL_BAD_ATTRIBUTE");
			break;
		case EGL10.EGL_BAD_ALLOC:
			Log.d(TAG, "EGL_BAD_ALLOC");
			break;
		case EGL10.EGL_BAD_MATCH:
			Log.d(TAG, "EGL_BAD_MATCH");
			break;
		}				
	}


	if (!mEgl.eglMakeCurrent(mEglDisplay, mEglPBSurface, mEglPBSurface, mEglContext)) {
		Log.d(TAG, "bind failed code:" + mEgl.eglGetError());
	}

	mGL = (GL10) mEglContext.getGL();
	PixelBuffer = IntBuffer.allocate(width * height);
}