【发布时间】:2014-01-21 09:03:48
【问题描述】:
我正在使用 C 语言在 OpenGL ES 2.0 中工作。(不是 Android) 我想改变 egl 表面的大小,以便我可以同时在屏幕上渲染两个不同的上下文。
是否可以调整 egl 表面的大小?
【问题讨论】:
我正在使用 C 语言在 OpenGL ES 2.0 中工作。(不是 Android) 我想改变 egl 表面的大小,以便我可以同时在屏幕上渲染两个不同的上下文。
是否可以调整 egl 表面的大小?
【问题讨论】:
正在使用什么平台/窗口系统?窗口表面来自“窗口”——因此取决于窗口系统——例如,如果使用 X,它将来自客户端窗口。如果使用全屏“NULL”窗口系统,则为帧缓冲区的大小。如果是 Qt,一个 widgetsurface 或类似的。
使用 NULL 系统的示例如下:
https://github.com/prabindh/sgxperf/blob/master/sgxperf_gles20_vg.cpp
回答 - EGL 仅指已创建的窗口,因此无法自行调整其大小。当客户端窗口调整大小时,EGL 必须更新其内部,而不是反过来。
您可以使用 glviewport 来定位屏幕的不同区域。
【讨论】: