作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我旋转我的设备并且我的应用程序收到 APP_CMD_CONFIG_CHANGED
,我尝试使用以下内容更新我的 OpenGL 视口(viewport):
EGLint width;
EGLint height;
eglQuerySurface(display,surface,EGL_WIDTH,&width);
eglQuerySurface(display,surface,EGL_HEIGHT,&height);
glViewport(0,0,width,height);
MY_LOG_MACRO2("New window size: %d x %d",width,height);
ANativeWindow
获取大小我没有太多运气。任何一个。
APP_CMD_CONFIG_CHANGED
之后等待几帧,大小总是正确的。每帧查询大小,不考虑
APP_CMD_CONFIG_CHANGED
,并检查它是否已更改似乎也有效,但感觉不对。
最佳答案
为了检测屏幕方向的变化,我决定不要捕捉 APP_CMD_CONFIG_CHANGED
, 但请调用 eglQuerySurface()
每一帧。如果屏幕尺寸值与保存的值不匹配,则屏幕方向已更改。
两次调用eglQuerySurface()
获取宽度和高度大约需要 10 微秒(调用 10000 次时为 100 毫秒),因此它不会降低性能,并且 100% 保证将处理屏幕旋转。
我认为这个解决方案比在 APP_CMD_CONFIG_CHANGED
之后等待几帧要好。 .顺便说一句,将设备旋转 180 度(倒置)会导致得到 APP_CMD_CONFIG_CHANGED
事件,但实际上没有更改屏幕方向,并且不应执行与调整大小相关的操作。
关于opengl-es - eglQuerySurface 给出错误的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7603945/
当我旋转我的设备并且我的应用程序收到 APP_CMD_CONFIG_CHANGED ,我尝试使用以下内容更新我的 OpenGL 视口(viewport): EGLint width; EGLint h
我是一名优秀的程序员,十分优秀!