当前位置: 首页>>代码示例>>C++>>正文


C++ eglReleaseThread函数代码示例

本文整理汇总了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;
}
开发者ID:shashlik,项目名称:old-gentroid-frameworks-base,代码行数:8,代码来源:android_opengl_EGL14.cpp

示例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;
	}
开发者ID:cdaffara,项目名称:symbiandump-os1,代码行数:29,代码来源:egltestrefserver.cpp

示例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;
    }
开发者ID:tempbottle,项目名称:InDashNet.Open.UN2000,代码行数:32,代码来源:EGLCleanup_test.cpp

示例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);
}
开发者ID:zhangkari,项目名称:imagesdk,代码行数:63,代码来源:imgsdk.c

示例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;
  }
}
开发者ID:GrokImageCompression,项目名称:gst-plugins-bad,代码行数:27,代码来源:gstglcontext_egl.c

示例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();
 }
开发者ID:a320-fmc,项目名称:fmc,代码行数:8,代码来源:window.cpp

示例7: eglMakeCurrent

void GLCVUtils::GLEnd (void)
{
	eglMakeCurrent(egldisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
	eglTerminate(egldisplay);
	eglReleaseThread ();
	
	return;
}
开发者ID:andrecurvello,项目名称:gesture-recognition,代码行数:8,代码来源:glcvutils.cpp

示例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();
    }
开发者ID:projectionist,项目名称:snow,代码行数:9,代码来源:egl.hpp

示例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();
}
开发者ID:drichardson,项目名称:brewmaster,代码行数:9,代码来源:openvc.c

示例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();
}
开发者ID:MadBiceps,项目名称:gmsl_driver,代码行数:12,代码来源:WindowEGL.cpp

示例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);
}
开发者ID:bpeel,项目名称:weston,代码行数:12,代码来源:subsurfaces.c

示例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);
}
开发者ID:ChengYe,项目名称:cocosjson,代码行数:53,代码来源:CCEGLView.cpp

示例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();	
}
开发者ID:barajas,项目名称:interfaz,代码行数:12,代码来源:Yi.c

示例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();
}
开发者ID:Ionic,项目名称:mpv,代码行数:13,代码来源:context_mali_fbdev.c

示例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;
}
开发者ID:zerix,项目名称:mpv,代码行数:13,代码来源:gl_wayland.c


注:本文中的eglReleaseThread函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。