android.opengl.EGLContext#android.opengl.EGL14源码实例Demo

下面列出了android.opengl.EGLContext#android.opengl.EGL14 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Telegram   文件: EGLSurfaceTexture.java
private static EGLContext createEGLContext(
    EGLDisplay display, EGLConfig config, @SecureMode int secureMode) {
  int[] glAttributes;
  if (secureMode == SECURE_MODE_NONE) {
    glAttributes = new int[] {EGL14.EGL_CONTEXT_CLIENT_VERSION, 2, EGL14.EGL_NONE};
  } else {
    glAttributes =
        new int[] {
          EGL14.EGL_CONTEXT_CLIENT_VERSION,
          2,
          EGL_PROTECTED_CONTENT_EXT,
          EGL14.EGL_TRUE,
          EGL14.EGL_NONE
        };
  }
  EGLContext context =
      EGL14.eglCreateContext(
          display, config, android.opengl.EGL14.EGL_NO_CONTEXT, glAttributes, 0);
  if (context == null) {
    throw new GlException("eglCreateContext failed");
  }
  return context;
}
 
源代码2 项目: TelePlus-Android   文件: EGLSurfaceTexture.java
private static EGLConfig chooseEGLConfig(EGLDisplay display) {
  EGLConfig[] configs = new EGLConfig[1];
  int[] numConfigs = new int[1];
  boolean success =
      EGL14.eglChooseConfig(
          display,
          EGL_CONFIG_ATTRIBUTES,
          /* attrib_listOffset= */ 0,
          configs,
          /* configsOffset= */ 0,
          /* config_size= */ 1,
          numConfigs,
          /* num_configOffset= */ 0);
  if (!success || numConfigs[0] <= 0 || configs[0] == null) {
    throw new GlException(
        Util.formatInvariant(
            /* format= */ "eglChooseConfig failed: success=%b, numConfigs[0]=%d, configs[0]=%s",
            success, numConfigs[0], configs[0]));
  }

  return configs[0];
}
 
源代码3 项目: PhotoMovie   文件: GLMovieRecorder.java
/**
 * Discards all resources held by this class, notably the EGL context.  Also releases the
 * Surface that was passed to our constructor.
 */
public void release() {
    if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) {
        EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE,
                EGL14.EGL_NO_CONTEXT);
        EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
        EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
        EGL14.eglReleaseThread();
        EGL14.eglTerminate(mEGLDisplay);
    }

    mSurface.release();

    mEGLDisplay = EGL14.EGL_NO_DISPLAY;
    mEGLContext = EGL14.EGL_NO_CONTEXT;
    mEGLSurface = EGL14.EGL_NO_SURFACE;

    mSurface = null;
}
 
源代码4 项目: AndroidVideoSamples   文件: InputSurface.java
/**
 * Discard all resources held by this class, notably the EGL context. Also releases the Surface that was passed to our constructor.
 */
public void release() {
   if ( EGL14.eglGetCurrentContext().equals( mEGLContext ) ) {
      // Clear the current context and surface to ensure they are discarded immediately.
      EGL14.eglMakeCurrent( mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT );
   }
   EGL14.eglDestroySurface( mEGLDisplay, mEGLSurface );
   EGL14.eglDestroyContext( mEGLDisplay, mEGLContext );
   // EGL14.eglTerminate(mEGLDisplay);
   mSurface.release();
   // null everything out so future attempts to use this object will cause an NPE
   mEGLDisplay = null;
   mEGLContext = null;
   mEGLSurface = null;
   mSurface = null;
}
 
源代码5 项目: unity-ads-android   文件: GLSurfaceView.java
private int[] filterConfigSpec(int[] configSpec) {
	if (mEGLContextClientVersion != 2 && mEGLContextClientVersion != 3) {
		return configSpec;
	}
	/* We know none of the subclasses define EGL_RENDERABLE_TYPE.
	 * And we know the configSpec is well formed.
	 */
	int len = configSpec.length;
	int[] newConfigSpec = new int[len + 2];
	System.arraycopy(configSpec, 0, newConfigSpec, 0, len-1);
	newConfigSpec[len-1] = EGL10.EGL_RENDERABLE_TYPE;
	if (mEGLContextClientVersion == 2) {
		newConfigSpec[len] = EGL14.EGL_OPENGL_ES2_BIT;  /* EGL_OPENGL_ES2_BIT */
	} else {
		newConfigSpec[len] = EGLExt.EGL_OPENGL_ES3_BIT_KHR; /* EGL_OPENGL_ES3_BIT_KHR */
	}
	newConfigSpec[len+1] = EGL10.EGL_NONE;
	return newConfigSpec;
}
 
源代码6 项目: phoenix   文件: OutputSurface.java
/**
 * Discard all resources held by this class, notably the EGL context.
 */
public void release() {
    if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) {
        EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
        EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
        EGL14.eglReleaseThread();
        EGL14.eglTerminate(mEGLDisplay);
    }
    mSurface.release();
    // this causes a bunch of warnings that appear harmless but might confuse someone:
    //  W BufferQueue: [unnamed-3997-2] cancelBuffer: BufferQueue has been abandoned!
    //mSurfaceTexture.release();
    mEGLDisplay = EGL14.EGL_NO_DISPLAY;
    mEGLContext = EGL14.EGL_NO_CONTEXT;
    mEGLSurface = EGL14.EGL_NO_SURFACE;
    mTextureRender = null;
    mSurface = null;
    mSurfaceTexture = null;
}
 
源代码7 项目: MockCamera   文件: EglCore.java
/**
 * Discards all resources held by this class, notably the EGL context.  This must be
 * called from the thread where the context was created.
 * <p/>
 * On completion, no context will be current.
 */
public void release() {
    if (eGLDisplay != EGL14.EGL_NO_DISPLAY) {
        // Android is unusual in that it uses a reference-counted EGLDisplay.  So for
        // every eglInitialize() we need an eglTerminate().
        EGL14.eglMakeCurrent(eGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE,
                EGL14.EGL_NO_CONTEXT);
        EGL14.eglDestroyContext(eGLDisplay, eGLContext);
        EGL14.eglReleaseThread();
        EGL14.eglTerminate(eGLDisplay);
    }

    eGLDisplay = EGL14.EGL_NO_DISPLAY;
    eGLContext = EGL14.EGL_NO_CONTEXT;
    eGLConfig = null;
}
 
源代码8 项目: LiveMultimedia   文件: InputSurface.java
/**
 * Discard all resources held by this class, notably the EGL context.  Also releases the
 * Surface that was passed to our constructor.
 */
public void release() {
    if (EGL14.eglGetCurrentContext().equals(mEGLContext)) {
        // Clear the current context and surface to ensure they are discarded immediately.
        EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE,
                EGL14.EGL_NO_CONTEXT);
    }
    EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
    EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
    //EGL14.eglTerminate(mEGLDisplay);

    mSurface.release();

    // null everything out so future attempts to use this object will cause an NPE
    mEGLDisplay = null;
    mEGLContext = null;
    mEGLSurface = null;

    mSurface = null;
}
 
源代码9 项目: Mp4Composer-android   文件: DecoderSurface.java
/**
 * Discard all resources held by this class, notably the EGL context.
 */
void release() {
    if (eglDisplay != EGL14.EGL_NO_DISPLAY) {
        EGL14.eglDestroySurface(eglDisplay, eglSurface);
        EGL14.eglDestroyContext(eglDisplay, eglContext);
        EGL14.eglReleaseThread();
        EGL14.eglTerminate(eglDisplay);
    }
    surface.release();
    previewTexture.release();
    // this causes a bunch of warnings that appear harmless but might confuse someone:
    //  W BufferQueue: [unnamed-3997-2] cancelBuffer: BufferQueue has been abandoned!
    //surfaceTexture.release();
    eglDisplay = EGL14.EGL_NO_DISPLAY;
    eglContext = EGL14.EGL_NO_CONTEXT;
    eglSurface = EGL14.EGL_NO_SURFACE;
    filter.release();
    filter = null;
    surface = null;
    previewTexture = null;
}
 
源代码10 项目: TelePlus-Android   文件: EGLSurfaceTexture.java
private static EGLContext createEGLContext(
    EGLDisplay display, EGLConfig config, @SecureMode int secureMode) {
  int[] glAttributes;
  if (secureMode == SECURE_MODE_NONE) {
    glAttributes = new int[] {EGL14.EGL_CONTEXT_CLIENT_VERSION, 2, EGL14.EGL_NONE};
  } else {
    glAttributes =
        new int[] {
          EGL14.EGL_CONTEXT_CLIENT_VERSION,
          2,
          EGL_PROTECTED_CONTENT_EXT,
          EGL14.EGL_TRUE,
          EGL14.EGL_NONE
        };
  }
  EGLContext context =
      EGL14.eglCreateContext(
          display, config, android.opengl.EGL14.EGL_NO_CONTEXT, glAttributes, 0);
  if (context == null) {
    throw new GlException("eglCreateContext failed");
  }
  return context;
}
 
源代码11 项目: CameraRecorder-android   文件: EGLBase.java
private void destroyContext() {
    if (DEBUG) Log.v(TAG, "destroyContext:");

    if (!EGL14.eglDestroyContext(eglDisplay, eglContext)) {
        Log.e("destroyContext", "display:" + eglDisplay + " context: " + eglContext);
        Log.e(TAG, "eglDestroyContex:" + EGL14.eglGetError());
    }
    eglContext = EGL14.EGL_NO_CONTEXT;
    if (defaultContext != EGL14.EGL_NO_CONTEXT) {
        if (!EGL14.eglDestroyContext(eglDisplay, defaultContext)) {
            Log.e("destroyContext", "display:" + eglDisplay + " context: " + defaultContext);
            Log.e(TAG, "eglDestroyContex:" + EGL14.eglGetError());
        }
        defaultContext = EGL14.EGL_NO_CONTEXT;
    }
}
 
源代码12 项目: sealrtc-android   文件: EglCore.java
/**
 * Discards all resources held by this class, notably the EGL context. This must be called from
 * the thread where the context was created.
 *
 * <p>On completion, no context will be current.
 */
public void release() {
    if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) {
        // Android is unusual in that it uses a reference-counted EGLDisplay.  So for
        // every eglInitialize() we need an eglTerminate().
        EGL14.eglMakeCurrent(
                mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT);
        EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
        EGL14.eglReleaseThread();
        EGL14.eglTerminate(mEGLDisplay);
    }

    mEGLDisplay = EGL14.EGL_NO_DISPLAY;
    mEGLContext = EGL14.EGL_NO_CONTEXT;
    mEGLConfig = null;
}
 
源代码13 项目: MegviiFacepp-Android-SDK   文件: EGLBase.java
/**
	 * change context to draw this window surface
	 * @return
	 */
	private boolean makeCurrent(final EGLSurface surface) {
//		if (DEBUG) Log.v(TAG, "makeCurrent:");
        if (mEglDisplay == null) {
            if (DEBUG) Log.d(TAG, "makeCurrent:eglDisplay not initialized");
        }
        if (surface == null || surface == EGL14.EGL_NO_SURFACE) {
            final int error = EGL14.eglGetError();
            if (error == EGL14.EGL_BAD_NATIVE_WINDOW) {
                Log.e(TAG, "makeCurrent:returned EGL_BAD_NATIVE_WINDOW.");
            }
            return false;
        }
        // attach EGL renderring context to specific EGL window surface
        if (!EGL14.eglMakeCurrent(mEglDisplay, surface, surface, mEglContext)) {
            Log.w(TAG, "eglMakeCurrent:" + EGL14.eglGetError());
            return false;
        }
        return true;
	}
 
源代码14 项目: UVCCameraZxing   文件: EGLBase.java
private void destroyContext() {
if (DEBUG) Log.v(TAG, "destroyContext:");

      if (!EGL14.eglDestroyContext(mEglDisplay, mEglContext)) {
          Log.e("destroyContext", "display:" + mEglDisplay + " context: " + mEglContext);
          Log.e(TAG, "eglDestroyContex:" + EGL14.eglGetError());
      }
      mEglContext = EGL14.EGL_NO_CONTEXT;
      if (mDefaultContext != EGL14.EGL_NO_CONTEXT) {
       if (!EGL14.eglDestroyContext(mEglDisplay, mDefaultContext)) {
           Log.e("destroyContext", "display:" + mEglDisplay + " context: " + mDefaultContext);
           Log.e(TAG, "eglDestroyContex:" + EGL14.eglGetError());
       }
       mDefaultContext = EGL14.EGL_NO_CONTEXT;
      }
  }
 
源代码15 项目: MockCamera   文件: EglCore.java
@Override
protected void finalize() throws Throwable {
    try {
        if (eGLDisplay != EGL14.EGL_NO_DISPLAY) {
            // We're limited here -- finalizers don't run on the thread that holds
            // the EGL state, so if a surface or context is still current on another
            // thread we can't fully release it here.  Exceptions thrown from here
            // are quietly discarded.  Complain in the log file.
            Log.w(TAG, "WARNING: EglCore was not explicitly released -- state may be leaked");
            release();
        }
    } finally {
        super.finalize();
    }
}
 
源代码16 项目: Tok-Android   文件: EGLBase.java
public void release() {
    LogUtil.i(TAG, "release:");
    if (mEglDisplay != EGL14.EGL_NO_DISPLAY) {
        destroyContext();
        EGL14.eglTerminate(mEglDisplay);
        EGL14.eglReleaseThread();
    }
    mEglDisplay = EGL14.EGL_NO_DISPLAY;
    mEglContext = EGL14.EGL_NO_CONTEXT;
}
 
源代码17 项目: libcommon   文件: EGLBase14.java
private EGLContext createContext(final Context sharedContext,
    	final EGLConfig config, final int version) {

		if (DEBUG) Log.v(TAG, "createContext:version=" + version);

        final int[] attrib_list = {
        	EGL14.EGL_CONTEXT_CLIENT_VERSION, version,
        	EGL14.EGL_NONE
        };
		final EGLContext context = EGL14.eglCreateContext(mEglDisplay,
			config, sharedContext.eglContext, attrib_list, 0);
//		checkEglError("eglCreateContext");
        return context;
    }
 
源代码18 项目: Tok-Android   文件: EGLBase.java
private void init(EGLContext shared_context, final boolean with_depth_buffer,
    final boolean isRecordable) {
    LogUtil.i(TAG, "init:");
    if (mEglDisplay != EGL14.EGL_NO_DISPLAY) {
        throw new RuntimeException("EGL already set up");
    }

    mEglDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
    if (mEglDisplay == EGL14.EGL_NO_DISPLAY) {
        throw new RuntimeException("eglGetDisplay failed");
    }

    final int[] version = new int[2];
    if (!EGL14.eglInitialize(mEglDisplay, version, 0, version, 1)) {
        mEglDisplay = null;
        throw new RuntimeException("eglInitialize failed");
    }

    shared_context = shared_context != null ? shared_context : EGL14.EGL_NO_CONTEXT;
    if (mEglContext == EGL14.EGL_NO_CONTEXT) {
        mEglConfig = getConfig(with_depth_buffer, isRecordable);
        if (mEglConfig == null) {
            throw new RuntimeException("chooseConfig failed");
        }
        // create EGL rendering context
        mEglContext = createContext(shared_context);
    }
    // confirm whether the EGL rendering context is successfully created
    final int[] values = new int[1];
    EGL14.eglQueryContext(mEglDisplay, mEglContext, EGL14.EGL_CONTEXT_CLIENT_VERSION, values,
        0);
    LogUtil.i(TAG, "EGLContext created, client version " + values[0]);
    makeDefault();    // makeCurrent(EGL14.EGL_NO_SURFACE);
}
 
源代码19 项目: webrtc_android   文件: EglBase14Impl.java
@Override
public void makeCurrent() {
  checkIsNotReleased();
  if (eglSurface == EGL14.EGL_NO_SURFACE) {
    throw new RuntimeException("No EGLSurface - can't make current");
  }
  synchronized (EglBase.lock) {
    if (!EGL14.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)) {
      throw new RuntimeException(
          "eglMakeCurrent failed: 0x" + Integer.toHexString(EGL14.eglGetError()));
    }
  }
}
 
源代码20 项目: RtmpPublisher   文件: EglCore.java
/**
 * Finds a suitable EGLConfig.
 *
 * @param flags Bit flags from constructor.
 * @param version Must be 2 or 3.
 */
private EGLConfig getConfig(int flags, int version) {
    int renderableType = EGL14.EGL_OPENGL_ES2_BIT;
    if (version >= 3) {
        renderableType |= EGLExt.EGL_OPENGL_ES3_BIT_KHR;
    }

    // The actual surface is generally RGBA or RGBX, so situationally omitting alpha
    // doesn't really help.  It can also lead to a huge performance hit on glReadPixels()
    // when reading into a GL_RGBA buffer.
    int[] attribList = {
            EGL14.EGL_RED_SIZE, 8,
            EGL14.EGL_GREEN_SIZE, 8,
            EGL14.EGL_BLUE_SIZE, 8,
            EGL14.EGL_ALPHA_SIZE, 8,
            //EGL14.EGL_DEPTH_SIZE, 16,
            //EGL14.EGL_STENCIL_SIZE, 8,
            EGL14.EGL_RENDERABLE_TYPE, renderableType,
            EGL14.EGL_NONE, 0,      // placeholder for recordable [@-3]
            EGL14.EGL_NONE
    };
    if ((flags & FLAG_RECORDABLE) != 0) {
        attribList[attribList.length - 3] = EGL_RECORDABLE_ANDROID;
        attribList[attribList.length - 2] = 1;
    }
    EGLConfig[] configs = new EGLConfig[1];
    int[] numConfigs = new int[1];
    if (!EGL14.eglChooseConfig(mEGLDisplay, attribList, 0, configs, 0, configs.length,
            numConfigs, 0)) {
        Log.w(TAG, "unable to find RGB8888 / " + version + " EGLConfig");
        return null;
    }
    return configs[0];
}
 
源代码21 项目: Pix-Art-Messenger   文件: InputSurface.java
/**
 * Discard all resources held by this class, notably the EGL context.  Also releases the
 * Surface that was passed to our constructor.
 */
public void release() {
    if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) {
        EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
        EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
        EGL14.eglReleaseThread();
        EGL14.eglTerminate(mEGLDisplay);
    }
    mSurface.release();
    mEGLDisplay = EGL14.EGL_NO_DISPLAY;
    mEGLContext = EGL14.EGL_NO_CONTEXT;
    mEGLSurface = EGL14.EGL_NO_SURFACE;
    mSurface = null;
}
 
源代码22 项目: UltraGpuImage   文件: EglBase14.java
@Override
public void createPbufferSurface(int width, int height) {
  checkIsNotReleased();
  if (eglSurface != EGL14.EGL_NO_SURFACE) {
    throw new RuntimeException("Already has an EGLSurface");
  }
  int[] surfaceAttribs = {EGL14.EGL_WIDTH, width, EGL14.EGL_HEIGHT, height, EGL14.EGL_NONE};
  eglSurface = EGL14.eglCreatePbufferSurface(eglDisplay, eglConfig, surfaceAttribs, 0);
  if (eglSurface == EGL14.EGL_NO_SURFACE) {
    throw new RuntimeException("Failed to create pixel buffer surface with size " + width + "x"
        + height + ": 0x" + Integer.toHexString(EGL14.eglGetError()));
  }
}
 
源代码23 项目: phoenix   文件: OutputSurface.java
/**
 * Checks for EGL errors.
 */
private void checkEglError(String msg) {
    int error;
    if ((error = EGL14.eglGetError()) != EGL14.EGL_SUCCESS) {
        throw new RuntimeException(msg + ": EGL error: 0x" + Integer.toHexString(error));
    }
}
 
源代码24 项目: PhotoMovie   文件: EglCore.java
/**
 * Makes our EGL context current, using the supplied "draw" and "read" surfaces.
 */
public void makeCurrent(EGLSurface drawSurface, EGLSurface readSurface) {
    if (mEGLDisplay == EGL14.EGL_NO_DISPLAY) {
        // called makeCurrent() before create?
        Log.d(TAG, "NOTE: makeCurrent w/o display");
    }
    if (!EGL14.eglMakeCurrent(mEGLDisplay, drawSurface, readSurface, mEGLContext)) {
        throw new RuntimeException("eglMakeCurrent(draw,read) failed");
    }
}
 
源代码25 项目: In77Camera   文件: EGLBase.java
private void destroyWindowSurface(EGLSurface surface) {
	if (DEBUG) Log.v(TAG, "destroySurface:");

       if (surface != EGL14.EGL_NO_SURFACE) {
       	EGL14.eglMakeCurrent(mEglDisplay,
       		EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT);
       	EGL14.eglDestroySurface(mEglDisplay, surface);
       }
       surface = EGL14.EGL_NO_SURFACE;
       if (DEBUG) Log.v(TAG, "destroySurface:finished");
}
 
源代码26 项目: VideoRecorder   文件: EglCore.java
/**
 * Finds a suitable EGLConfig.
 *
 * @param flags Bit flags from constructor.
 * @param version Must be 2 or 3.
 */
private EGLConfig getConfig(int flags, int version) {
    int renderableType = EGL14.EGL_OPENGL_ES2_BIT;
    if (version >= 3) {
        renderableType |= EGLExt.EGL_OPENGL_ES3_BIT_KHR;
    }

    // The actual surface is generally RGBA or RGBX, so situationally omitting alpha
    // doesn't really help.  It can also lead to a huge performance hit on glReadPixels()
    // when reading into a GL_RGBA buffer.
    int[] attribList = {
            EGL14.EGL_RED_SIZE, 8,
            EGL14.EGL_GREEN_SIZE, 8,
            EGL14.EGL_BLUE_SIZE, 8,
            EGL14.EGL_ALPHA_SIZE, 8,
            //EGL14.EGL_DEPTH_SIZE, 16,
            //EGL14.EGL_STENCIL_SIZE, 8,
            EGL14.EGL_RENDERABLE_TYPE, renderableType,
            EGL14.EGL_NONE, 0,      // placeholder for recordable [@-3]
            EGL14.EGL_NONE
    };
    if ((flags & FLAG_RECORDABLE) != 0) {
        attribList[attribList.length - 3] = EGL_RECORDABLE_ANDROID;
        attribList[attribList.length - 2] = 1;
    }
    EGLConfig[] configs = new EGLConfig[1];
    int[] numConfigs = new int[1];
    if (!EGL14.eglChooseConfig(mEGLDisplay, attribList, 0, configs, 0, configs.length,
            numConfigs, 0)) {
        Log.w(TAG, "unable to find RGB8888 / " + version + " EGLConfig");
        return null;
    }
    return configs[0];
}
 
源代码27 项目: mobile-ar-sensor-logger   文件: EglCore.java
/**
 * Makes no context current.
 */
public void makeNothingCurrent() {
    if (!EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE,
            EGL14.EGL_NO_CONTEXT)) {
        throw new RuntimeException("eglMakeCurrent failed");
    }
}
 
源代码28 项目: UltraGpuImage   文件: EglBase14.java
@Override
public void release() {
  checkIsNotReleased();
  releaseSurface();
  detachCurrent();
  EGL14.eglDestroyContext(eglDisplay, eglContext);
  EGL14.eglReleaseThread();
  EGL14.eglTerminate(eglDisplay);
  eglContext = EGL14.EGL_NO_CONTEXT;
  eglDisplay = EGL14.EGL_NO_DISPLAY;
  eglConfig = null;
}
 
源代码29 项目: libcommon   文件: EGLBase14.java
/**
	 * EGLレンダリングコンテキストとスレッドの紐付けを解除する
	 */
	@Override
	public void makeDefault() {
//		if (DEBUG) Log.v(TAG, "makeDefault:");
        if (!EGL14.eglMakeCurrent(mEglDisplay,
        	EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT)) {

            Log.w("TAG", "makeDefault" + EGL14.eglGetError());
        }
	}
 
源代码30 项目: In77Camera   文件: EGLBase.java
private EGLSurface createWindowSurface(final Object nativeWindow) {
	if (DEBUG) Log.v(TAG, "createWindowSurface:nativeWindow=" + nativeWindow);

       final int[] surfaceAttribs = {
               EGL14.EGL_NONE
       };
	EGLSurface result = null;
	try {
		result = EGL14.eglCreateWindowSurface(mEglDisplay, mEglConfig, nativeWindow, surfaceAttribs, 0);
	} catch (final IllegalArgumentException e) {
		Log.e(TAG, "eglCreateWindowSurface", e);
	}
	return result;
}