本文整理汇总了C++中egl_display_ptr类的典型用法代码示例。如果您正苦于以下问题:C++ egl_display_ptr类的具体用法?C++ egl_display_ptr怎么用?C++ egl_display_ptr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了egl_display_ptr类的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: eglGpuPerfHintQCOM
EGLBoolean eglGpuPerfHintQCOM(EGLDisplay dpy, EGLContext ctx, EGLint *attrib_list)
{
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
ContextRef _c(dp.get(), ctx);
if ((ctx != EGL_NO_CONTEXT) && !_c.get()) {
// ctx is not valid
return setError(EGL_BAD_CONTEXT, EGL_FALSE);
}
egl_context_t * c = NULL;
c = get_context(ctx);
EGLint result = EGL_FALSE;
egl_connection_t* const cnx = &gEGLImpl;
if (cnx->dso && cnx->egl.eglGpuPerfHintQCOM) {
result = cnx->egl.eglGpuPerfHintQCOM(
dp->disp.dpy,
c->context,
attrib_list);
}
return result;
}
开发者ID:AsteroidOS,项目名称:android_frameworks_native,代码行数:25,代码来源:eglApi.cpp
示例2: eglCreateContext
EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config,
EGLContext share_list, const EGLint *attrib_list)
{
clearError();
egl_connection_t* cnx = NULL;
const egl_display_ptr dp = validate_display_connection(dpy, cnx);
if (dp) {
if (share_list != EGL_NO_CONTEXT) {
if (!ContextRef(dp.get(), share_list).get()) {
return setError(EGL_BAD_CONTEXT, EGL_NO_CONTEXT);
}
egl_context_t* const c = get_context(share_list);
share_list = c->context;
}
EGLContext context = cnx->egl.eglCreateContext(
dp->disp.dpy, config, share_list, attrib_list);
if (context != EGL_NO_CONTEXT) {
// figure out if it's a GLESv1 or GLESv2
int version = 0;
if (attrib_list) {
while (*attrib_list != EGL_NONE) {
GLint attr = *attrib_list++;
GLint value = *attrib_list++;
if (attr == EGL_CONTEXT_CLIENT_VERSION) {
if (value == 1) {
version = egl_connection_t::GLESv1_INDEX;
} else if (value == 2 || value == 3) {
version = egl_connection_t::GLESv2_INDEX;
}
}
};
}
egl_context_t* c = new egl_context_t(dpy, context, config, cnx,
version);
#if EGL_TRACE
if (getEGLDebugLevel() > 0)
GLTrace_eglCreateContext(version, c);
#endif
return c;
} else {
EGLint error = eglGetError();
ALOGE_IF(error == EGL_SUCCESS,
"eglCreateContext(%p, %p, %p, %p) returned EGL_NO_CONTEXT "
"but no EGL error!",
dpy, config, share_list, attrib_list);
}
}
return EGL_NO_CONTEXT;
}
开发者ID:AospPlus,项目名称:android_frameworks_native,代码行数:50,代码来源:eglApi.cpp
示例3: eglBeginFrame
void EGLAPI eglBeginFrame(EGLDisplay dpy, EGLSurface surface) {
ATRACE_CALL();
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) {
return;
}
SurfaceRef _s(dp.get(), surface);
if (!_s.get()) {
setError(EGL_BAD_SURFACE, EGL_FALSE);
return;
}
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:15,代码来源:eglApi.cpp
示例4: eglCopyBuffers
EGLBoolean eglCopyBuffers( EGLDisplay dpy, EGLSurface surface,
NativePixmapType target)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
SurfaceRef _s(dp.get(), surface);
if (!_s.get())
return setError(EGL_BAD_SURFACE, EGL_FALSE);
egl_surface_t const * const s = get_surface(surface);
return s->cnx->egl.eglCopyBuffers(dp->disp.dpy, s->surface, target);
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:15,代码来源:eglApi.cpp
示例5: eglQueryContext
EGLBoolean eglQueryContext( EGLDisplay dpy, EGLContext ctx,
EGLint attribute, EGLint *value)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
ContextRef _c(dp.get(), ctx);
if (!_c.get()) return setError(EGL_BAD_CONTEXT, EGL_FALSE);
egl_context_t * const c = get_context(ctx);
return c->cnx->egl.eglQueryContext(
dp->disp.dpy, c->context, attribute, value);
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:16,代码来源:eglApi.cpp
示例6: eglQuerySurface
EGLBoolean eglQuerySurface( EGLDisplay dpy, EGLSurface surface,
EGLint attribute, EGLint *value)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
SurfaceRef _s(dp.get(), surface);
if (!_s.get())
return setError(EGL_BAD_SURFACE, EGL_FALSE);
egl_surface_t const * const s = get_surface(surface);
return s->cnx->egl.eglQuerySurface(
dp->disp.dpy, s->surface, attribute, value);
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:16,代码来源:eglApi.cpp
示例7: eglUnlockSurfaceKHR
EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy, EGLSurface surface)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
SurfaceRef _s(dp.get(), surface);
if (!_s.get())
return setError(EGL_BAD_SURFACE, EGL_FALSE);
egl_surface_t const * const s = get_surface(surface);
if (s->cnx->egl.eglUnlockSurfaceKHR) {
return s->cnx->egl.eglUnlockSurfaceKHR(dp->disp.dpy, s->surface);
}
return setError(EGL_BAD_DISPLAY, EGL_FALSE);
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:17,代码来源:eglApi.cpp
示例8: eglDestroySurface
EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
SurfaceRef _s(dp.get(), surface);
if (!_s.get())
return setError(EGL_BAD_SURFACE, EGL_FALSE);
egl_surface_t * const s = get_surface(surface);
EGLBoolean result = s->cnx->egl.eglDestroySurface(dp->disp.dpy, s->surface);
if (result == EGL_TRUE) {
_s.terminate();
}
return result;
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:18,代码来源:eglApi.cpp
示例9: eglDestroyContext
EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp)
return EGL_FALSE;
ContextRef _c(dp.get(), ctx);
if (!_c.get())
return setError(EGL_BAD_CONTEXT, EGL_FALSE);
egl_context_t * const c = get_context(ctx);
EGLBoolean result = c->cnx->egl.eglDestroyContext(dp->disp.dpy, c->context);
if (result == EGL_TRUE) {
_c.terminate();
}
return result;
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:19,代码来源:eglApi.cpp
示例10: eglReleaseTexImage
EGLBoolean eglReleaseTexImage(
EGLDisplay dpy, EGLSurface surface, EGLint buffer)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
SurfaceRef _s(dp.get(), surface);
if (!_s.get())
return setError(EGL_BAD_SURFACE, EGL_FALSE);
egl_surface_t const * const s = get_surface(surface);
if (s->cnx->egl.eglReleaseTexImage) {
return s->cnx->egl.eglReleaseTexImage(
dp->disp.dpy, s->surface, buffer);
}
return setError(EGL_BAD_SURFACE, EGL_FALSE);
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:19,代码来源:eglApi.cpp
示例11: eglQueryString
const char* eglQueryString(EGLDisplay dpy, EGLint name)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return (const char *) NULL;
switch (name) {
case EGL_VENDOR:
return dp->getVendorString();
case EGL_VERSION:
return dp->getVersionString();
case EGL_EXTENSIONS:
return dp->getExtensionString();
case EGL_CLIENT_APIS:
return dp->getClientApiString();
}
return setError(EGL_BAD_PARAMETER, (const char *)0);
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:19,代码来源:eglApi.cpp
示例12: eglSwapBuffers
EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface draw)
{
ATRACE_CALL();
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
SurfaceRef _s(dp.get(), draw);
if (!_s.get())
return setError(EGL_BAD_SURFACE, EGL_FALSE);
#if EGL_TRACE
if (gEGLDebugLevel > 0)
GLTrace_eglSwapBuffers(dpy, draw);
#endif
egl_surface_t const * const s = get_surface(draw);
if (CC_UNLIKELY(dp->finishOnSwap)) {
uint32_t pixel;
egl_context_t * const c = get_context( egl_tls_t::getContext() );
if (c) {
// glReadPixels() ensures that the frame is complete
s->cnx->hooks[c->version]->gl.glReadPixels(0,0,1,1,
GL_RGBA,GL_UNSIGNED_BYTE,&pixel);
}
}
EGLBoolean result = s->cnx->egl.eglSwapBuffers(dp->disp.dpy, s->surface);
if (CC_UNLIKELY(dp->traceGpuCompletion)) {
EGLSyncKHR sync = EGL_NO_SYNC_KHR;
{
sync = eglCreateSyncKHR(dpy, EGL_SYNC_FENCE_KHR, NULL);
}
if (sync != EGL_NO_SYNC_KHR) {
FrameCompletionThread::queueSync(sync);
}
}
return result;
}
开发者ID:Proshivalskiy,项目名称:MT6582_kernel_source,代码行数:43,代码来源:eglApi.cpp
示例13: eglBeginFrame
void EGLAPI eglBeginFrame(EGLDisplay dpy, EGLSurface surface) {
ATRACE_CALL();
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) {
return;
}
SurfaceRef _s(dp.get(), surface);
if (!_s.get()) {
setError(EGL_BAD_SURFACE, EGL_FALSE);
return;
}
int64_t timestamp = systemTime(SYSTEM_TIME_MONOTONIC);
egl_surface_t const * const s = get_surface(surface);
native_window_set_buffers_timestamp(s->win.get(), timestamp);
}
开发者ID:Proshivalskiy,项目名称:MT6582_kernel_source,代码行数:20,代码来源:eglApi.cpp
示例14: eglPresentationTimeANDROID
EGLBoolean eglPresentationTimeANDROID(EGLDisplay dpy, EGLSurface surface,
EGLnsecsANDROID time)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) {
return EGL_FALSE;
}
SurfaceRef _s(dp.get(), surface);
if (!_s.get()) {
setError(EGL_BAD_SURFACE, EGL_FALSE);
return EGL_FALSE;
}
egl_surface_t const * const s = get_surface(surface);
native_window_set_buffers_timestamp(s->win.get(), time);
return EGL_TRUE;
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:21,代码来源:eglApi.cpp
示例15: eglCreateImageKHR
EGLImageKHR eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target,
EGLClientBuffer buffer, const EGLint *attrib_list)
{
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_NO_IMAGE_KHR;
ContextRef _c(dp.get(), ctx);
egl_context_t * const c = _c.get();
EGLImageKHR result = EGL_NO_IMAGE_KHR;
egl_connection_t* const cnx = &gEGLImpl;
if (cnx->dso && cnx->egl.eglCreateImageKHR) {
result = cnx->egl.eglCreateImageKHR(
dp->disp.dpy,
c ? c->context : EGL_NO_CONTEXT,
target, buffer, attrib_list);
}
return result;
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:21,代码来源:eglApi.cpp
示例16: eglSwapBuffers
EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface draw)
{
ATRACE_CALL();
clearError();
const egl_display_ptr dp = validate_display(dpy);
if (!dp) return EGL_FALSE;
SurfaceRef _s(dp.get(), draw);
if (!_s.get())
return setError(EGL_BAD_SURFACE, EGL_FALSE);
#if EGL_TRACE
gl_hooks_t const *trace_hooks = getGLTraceThreadSpecific();
if (getEGLDebugLevel() > 0) {
if (trace_hooks == NULL) {
if (GLTrace_start() < 0) {
ALOGE("Disabling Tracer for OpenGL ES");
setEGLDebugLevel(0);
} else {
// switch over to the trace version of hooks
EGLContext ctx = egl_tls_t::getContext();
egl_context_t * const c = get_context(ctx);
if (c) {
setGLHooksThreadSpecific(c->cnx->hooks[c->version]);
GLTrace_eglMakeCurrent(c->version, c->cnx->hooks[c->version], ctx);
}
}
}
GLTrace_eglSwapBuffers(dpy, draw);
} else if (trace_hooks != NULL) {
// tracing is now disabled, so switch back to the non trace version
EGLContext ctx = egl_tls_t::getContext();
egl_context_t * const c = get_context(ctx);
if (c) setGLHooksThreadSpecific(c->cnx->hooks[c->version]);
GLTrace_stop();
}
#endif
egl_surface_t const * const s = get_surface(draw);
if (CC_UNLIKELY(dp->traceGpuCompletion)) {
EGLSyncKHR sync = eglCreateSyncKHR(dpy, EGL_SYNC_FENCE_KHR, NULL);
if (sync != EGL_NO_SYNC_KHR) {
FrameCompletionThread::queueSync(sync);
}
}
if (CC_UNLIKELY(dp->finishOnSwap)) {
uint32_t pixel;
egl_context_t * const c = get_context( egl_tls_t::getContext() );
if (c) {
// glReadPixels() ensures that the frame is complete
s->cnx->hooks[c->version]->gl.glReadPixels(0,0,1,1,
GL_RGBA,GL_UNSIGNED_BYTE,&pixel);
}
}
return s->cnx->egl.eglSwapBuffers(dp->disp.dpy, s->surface);
}
开发者ID:AOSPLUS,项目名称:frameworks_native,代码行数:61,代码来源:eglApi.cpp
注:本文中的egl_display_ptr类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论