本文整理汇总了C++中sp::getDisplayInfo方法的典型用法代码示例。如果您正苦于以下问题:C++ sp::getDisplayInfo方法的具体用法?C++ sp::getDisplayInfo怎么用?C++ sp::getDisplayInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sp
的用法示例。
在下文中一共展示了sp::getDisplayInfo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: klaatu_init_graphics
void klaatu_init_graphics(int *width, int *height)
{
android::DisplayInfo display_info;
printf("initting klaatu graphics\n");
// initial part shamelessly stolen from klaatu-api
static EGLint sDefaultContextAttribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };
static EGLint sDefaultConfigAttribs[] = {
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8,
EGL_DEPTH_SIZE, 16, EGL_STENCIL_SIZE, 8, EGL_NONE };
mSession = new android::SurfaceComposerClient();
int status = mSession->getDisplayInfo(0, &display_info);
*width = display_info.w;
*height = display_info.h;
mControl = mSession->createSurface(0,
*width, *height, android::PIXEL_FORMAT_RGB_888, 0);
android::SurfaceComposerClient::openGlobalTransaction();
mControl->setLayer(0x40000000);
android::SurfaceComposerClient::closeGlobalTransaction();
mAndroidSurface = mControl->getSurface();
EGLNativeWindowType eglWindow = mAndroidSurface.get();
mEglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
ASSERT_EQ(EGL_SUCCESS, eglGetError());
ASSERT_NE(EGL_NO_DISPLAY, mEglDisplay);
EGLint majorVersion, minorVersion;
EXPECT_TRUE(eglInitialize(mEglDisplay, &majorVersion, &minorVersion));
ASSERT_EQ(EGL_SUCCESS, eglGetError());
EGLint numConfigs = 0;
EGLConfig mGlConfig;
EXPECT_TRUE(eglChooseConfig(mEglDisplay, sDefaultConfigAttribs, &mGlConfig, 1, &numConfigs));
mEglSurface = eglCreateWindowSurface(mEglDisplay, mGlConfig, eglWindow, NULL);
ASSERT_EQ(EGL_SUCCESS, eglGetError());
ASSERT_NE(EGL_NO_SURFACE, mEglSurface);
mEglContext = eglCreateContext(mEglDisplay, mGlConfig, EGL_NO_CONTEXT, sDefaultContextAttribs);
ASSERT_EQ(EGL_SUCCESS, eglGetError());
ASSERT_NE(EGL_NO_CONTEXT, mEglContext);
EXPECT_TRUE(eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext));
ASSERT_EQ(EGL_SUCCESS, eglGetError());
}
示例2: createNativeWindowSurfaceFlinger
EGLNativeWindowType QEglFSPandaHooks::createNativeWindowSurfaceFlinger(const QSize &size, const QSurfaceFormat &)
{
Q_UNUSED(size);
mSession = new SurfaceComposerClient();
DisplayInfo dinfo;
int status=0;
status = mSession->getDisplayInfo(0, &dinfo);
mControl = mSession->createSurface(
0, dinfo.w, dinfo.h, PIXEL_FORMAT_RGB_888);
SurfaceComposerClient::openGlobalTransaction();
mControl->setLayer(0x40000000);
// mControl->setAlpha(1);
SurfaceComposerClient::closeGlobalTransaction();
mAndroidSurface = mControl->getSurface();
EGLNativeWindowType eglWindow = mAndroidSurface.get();
return eglWindow;
}