本文整理汇总了C++中eglReleaseThread函数的典型用法代码示例。如果您正苦于以下问题:C++ eglReleaseThread函数的具体用法?C++ eglReleaseThread怎么用?C++ eglReleaseThread使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了eglReleaseThread函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: eglReleaseThread
/* EGLBoolean eglReleaseThread ( void ) */
static jboolean
android_eglReleaseThread
(JNIEnv *_env, jobject _this) {
EGLBoolean _returnValue = (EGLBoolean) 0;
_returnValue = eglReleaseThread();
return (jboolean)_returnValue;
}
示例2: MainL
static void MainL()
{
CActiveScheduler* sched=NULL;
sched=new(ELeave) CActiveScheduler;
CActiveScheduler::Install(sched);
#ifdef __WINS__
// Construct and destroy a process-wide state object in emulator builds.
// This will cause initialisation of PLS for EGL and SgDriver
// and allow checking for leaks in tests
if(!eglReleaseThread())
{
// Call to eglReleaseThread failed
User::Leave(KErrGeneral);
}
#endif //__WINS__
CTestEGLRefServer* server = NULL;
// Create the CTestServer derived server
TRAPD(err, server = CTestEGLRefServer::NewL());
if(!err)
{
// Sync with the client and enter the active scheduler
RProcess::Rendezvous(KErrNone);
sched->Start();
}
delete server;
delete sched;
}
示例3: eglRelease_l
/*
* Releases EGL. How we do that depends on the type of test we're
* running.
*/
bool eglRelease_l() {
if (mEglDisplay == EGL_NO_DISPLAY) {
ALOGW("No display to release");
return false;
}
switch (mTestType) {
case TEST_CORRECT:
eglTerminate(mEglDisplay);
eglReleaseThread();
break;
case TEST_NO_RELEASE_CURRENT:
eglDestroyContext(mEglDisplay, mEglContext);
eglDestroySurface(mEglDisplay, mEglSurface);
eglTerminate(mEglDisplay);
break;
default:
ALOGE("Unknown test type %d", mTestType);
break;
}
int err = eglGetError();
if (err != EGL_SUCCESS) {
ALOGW("eglRelease failed: 0x%x", err);
return false;
}
return true;
}
示例4: freeSdkEnv
/**
* Free SdkEnv resource
*/
int freeSdkEnv(SdkEnv *env)
{
if (NULL == env) {
return -1;
}
if (env->egl.display != EGL_NO_DISPLAY) {
eglMakeCurrent(env->egl.display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
if (env->egl.context != EGL_NO_CONTEXT) {
eglDestroyContext(env->egl.display, env->egl.context);
}
if (env->egl.surface != EGL_NO_SURFACE) {
eglDestroySurface(env->egl.display, env->egl.surface);
}
eglTerminate(env->egl.display);
eglReleaseThread();
}
env->egl.display = EGL_NO_DISPLAY;
env->egl.context = EGL_NO_CONTEXT;
env->egl.surface = EGL_NO_SURFACE;
if (ACTIVE_PATH == env->userData.active
&& NULL != env->userData.inputPath) {
free (env->userData.inputPath);
env->userData.inputPath = NULL;
}
if (ACTIVE_PARAM == env->userData.active
&& NULL != env->userData.param) {
Bitmap_t *img = (Bitmap_t *) env->userData.param;
freeBitmap (img);
env->userData.param = NULL;
}
if (NULL != env->userCmd) {
freeChrbuf (env->userCmd);
env->userCmd = NULL;
}
if (NULL != env->userData.inputPath) {
free (env->userData.inputPath);
env->userData.inputPath = NULL;
}
if (NULL != env->userData.outputPath) {
free (env->userData.outputPath);
env->userData.outputPath = NULL;
}
releaseShader(env);
if (OFF_SCREEN_RENDER == env->type) {
glDeleteFramebuffers (1, &env->handle.fboIdx);
glDeleteTextures (1, &env->handle.texture2Idx);
}
freeEffectCmd(&env->effectCmd);
free (env);
}
示例5: gst_gl_context_egl_destroy_context
static void
gst_gl_context_egl_destroy_context (GstGLContext * context)
{
GstGLContextEGL *egl;
egl = GST_GL_CONTEXT_EGL (context);
gst_gl_context_egl_activate (context, FALSE);
if (egl->egl_surface) {
eglDestroySurface (egl->egl_display, egl->egl_surface);
egl->egl_surface = EGL_NO_SURFACE;
}
if (egl->egl_context) {
eglDestroyContext (egl->egl_display, egl->egl_context);
egl->egl_context = NULL;
}
egl->window_handle = 0;
eglReleaseThread ();
if (egl->display_egl) {
gst_object_unref (egl->display_egl);
egl->display_egl = NULL;
}
}
示例6: eglMakeCurrent
window_t::~window_t()
{
eglMakeCurrent(egldisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
assert(eglGetError() == EGL_SUCCESS);
eglTerminate(egldisplay);
assert(eglGetError() == EGL_SUCCESS);
eglReleaseThread();
}
示例7: eglMakeCurrent
void GLCVUtils::GLEnd (void)
{
eglMakeCurrent(egldisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglTerminate(egldisplay);
eglReleaseThread ();
return;
}
示例8: fini_egl
void fini_egl(struct display *display)
{
/* Required, otherwise segfault in egl_dri2.c: dri2_make_current()
* on eglReleaseThread(). */
eglMakeCurrent(display->egl.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglTerminate(display->egl.dpy);
eglReleaseThread();
}
示例9: deinit
void deinit(void)
{
PS_destruct(tiger);
eglMakeCurrent(egldisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
assert(eglGetError() == EGL_SUCCESS);
eglTerminate(egldisplay);
assert(eglGetError() == EGL_SUCCESS);
eglReleaseThread();
}
示例10: eglDestroyStreamKHR
// -----------------------------------------------------------------------------
WindowOffscreenEGL::~WindowOffscreenEGL()
{
if (m_stream != EGL_NO_STREAM_KHR)
eglDestroyStreamKHR(m_display, m_stream);
if (m_surface != EGL_NO_SURFACE)
eglDestroySurface(m_display, m_surface);
eglDestroyContext(m_display, m_context);
eglTerminate(m_display);
eglReleaseThread();
}
示例11: egl_state_destroy
static void
egl_state_destroy(struct egl_state *egl)
{
/* Required, otherwise segfault in egl_dri2.c: dri2_make_current()
* on eglReleaseThread(). */
eglMakeCurrent(egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE,
EGL_NO_CONTEXT);
eglTerminate(egl->dpy);
eglReleaseThread();
free(egl);
}
示例12: screen_stop_events
void CCEGLView::release()
{
screen_stop_events(m_screenContext);
bps_shutdown();
if (m_eglDisplay != EGL_NO_DISPLAY)
{
eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
}
if (m_eglSurface != EGL_NO_SURFACE)
{
eglDestroySurface(m_eglDisplay, m_eglSurface);
m_eglSurface = EGL_NO_SURFACE;
}
if (m_eglContext != EGL_NO_CONTEXT)
{
eglDestroyContext(m_eglDisplay, m_eglContext);
m_eglContext = EGL_NO_CONTEXT;
}
if (m_eglDisplay != EGL_NO_DISPLAY)
{
eglTerminate(m_eglDisplay);
m_eglDisplay = EGL_NO_DISPLAY;
}
if (m_screenWindow)
{
screen_destroy_window(m_screenWindow);
m_screenWindow = NULL;
}
if (m_screenEvent)
{
screen_destroy_event(m_screenEvent);
m_screenEvent = NULL;
}
if (m_screenContext)
{
screen_destroy_context(m_screenContext);
m_screenContext = NULL;
}
eglReleaseThread();
m_isGLInitialized = false;
exit(0);
}
示例13: deinit
void deinit(void)
{
printf("Cleaning up...\n");
eglMakeCurrent(egldisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
assert(eglGetError() == EGL_SUCCESS);
eglDestroyContext(egldisplay, eglcontext);
eglDestroySurface(egldisplay, eglsurface);
fsl_destroywindow(eglNativeWindow, eglNativeDisplayType);
eglTerminate(egldisplay);
assert(eglGetError() == EGL_SUCCESS);
eglReleaseThread();
}
示例14: mali_uninit
static void mali_uninit(struct MPGLContext *ctx)
{
struct priv *p = ctx->priv;
if (p->egl_surface) {
eglMakeCurrent(p->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
EGL_NO_CONTEXT);
eglDestroySurface(p->egl_display, p->egl_surface);
}
if (p->egl_context)
eglDestroyContext(p->egl_display, p->egl_context);
eglReleaseThread();
}
示例15: releaseGlContext_wayland
static void releaseGlContext_wayland(MPGLContext *ctx)
{
GL *gl = ctx->gl;
struct egl_context * egl_ctx = ctx->priv;
gl->Finish();
eglMakeCurrent(egl_ctx->egl.dpy, NULL, NULL, EGL_NO_CONTEXT);
eglDestroyContext(egl_ctx->egl.dpy, egl_ctx->egl.ctx);
eglTerminate(egl_ctx->egl.dpy);
eglReleaseThread();
wl_egl_window_destroy(egl_ctx->egl_window);
egl_ctx->egl.ctx = NULL;
}